New debug functions log_printcanon and log_printsexp.
[gnupg.git] / common / estream.h
index 5c5e216..e3c28fe 100644 (file)
@@ -1,5 +1,5 @@
 /* estream.h - Extended stream I/O Library
- * Copyright (C) 2004, 2005, 2006, 2007, 2010 g10 Code GmbH
+ * Copyright (C) 2004, 2005, 2006, 2007, 2010, 2011 g10 Code GmbH
  *
  * This file is part of Libestream.
  *
@@ -38,7 +38,7 @@
  *    products derived from this software without specific prior
  *    written permission.
  *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
@@ -76,6 +76,7 @@
 #define es_fopen              _ESTREAM_PREFIX(es_fopen)
 #define es_mopen              _ESTREAM_PREFIX(es_mopen)
 #define es_fopenmem           _ESTREAM_PREFIX(es_fopenmem)
+#define es_fopenmem_init      _ESTREAM_PREFIX(es_fopenmem_init)
 #define es_fdopen             _ESTREAM_PREFIX(es_fdopen)
 #define es_fdopen_nc          _ESTREAM_PREFIX(es_fdopen_nc)
 #define es_sysopen            _ESTREAM_PREFIX(es_sysopen)
@@ -87,6 +88,7 @@
 #define es_freopen            _ESTREAM_PREFIX(es_freopen)
 #define es_fopencookie        _ESTREAM_PREFIX(es_fopencookie)
 #define es_fclose             _ESTREAM_PREFIX(es_fclose)
+#define es_fclose_snatch      _ESTREAM_PREFIX(es_fclose_snatch)
 #define es_onclose            _ESTREAM_PREFIX(es_onclose)
 #define es_fileno             _ESTREAM_PREFIX(es_fileno)
 #define es_fileno_unlocked    _ESTREAM_PREFIX(es_fileno_unlocked)
@@ -215,7 +217,7 @@ typedef struct es_cookie_io_functions
 } es_cookie_io_functions_t;
 
 
-enum es_syshd_types 
+enum es_syshd_types
   {
     ES_SYSHD_NONE,  /* No system handle available.  */
     ES_SYSHD_FD,    /* A file descriptor as returned by open().  */
@@ -262,13 +264,15 @@ int es_init (void);
 
 estream_t es_fopen (const char *ES__RESTRICT path,
                    const char *ES__RESTRICT mode);
-estream_t es_mopen (unsigned char *ES__RESTRICT data,
+estream_t es_mopen (void *ES__RESTRICT data,
                    size_t data_n, size_t data_len,
                    unsigned int grow,
                    void *(*func_realloc) (void *mem, size_t size),
                    void (*func_free) (void *mem),
                    const char *ES__RESTRICT mode);
 estream_t es_fopenmem (size_t memlimit, const char *ES__RESTRICT mode);
+estream_t es_fopenmem_init (size_t memlimit, const char *ES__RESTRICT mode,
+                            const void *data, size_t datalen);
 estream_t es_fdopen (int filedes, const char *mode);
 estream_t es_fdopen_nc (int filedes, const char *mode);
 estream_t es_sysopen (es_syshd_t *syshd, const char *mode);
@@ -282,6 +286,7 @@ estream_t es_fopencookie (void *ES__RESTRICT cookie,
                          const char *ES__RESTRICT mode,
                          es_cookie_io_functions_t functions);
 int es_fclose (estream_t stream);
+int es_fclose_snatch (estream_t stream, void **r_buffer, size_t *r_buflen);
 int es_onclose (estream_t stream, int mode,
                 void (*fnc) (estream_t, void*), void *fnc_value);
 int es_fileno (estream_t stream);