X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=src%2Fstream.h;h=25c052e072fc968dae7d2c5d39dc55259d5d6aa8;hb=904fed6618b22e84597efd60c3784e57d44f3ef1;hp=1d7f131559cdee04be2321a3792c1829bfbd2196;hpb=4b452ca423971eea8b7f6c1d16b4567c11e71be3;p=projects%2Fchimara%2Fchimara.git diff --git a/src/stream.h b/src/stream.h index 1d7f131..25c052e 100644 --- a/src/stream.h +++ b/src/stream.h @@ -9,13 +9,18 @@ enum StreamType { STREAM_TYPE_WINDOW, STREAM_TYPE_MEMORY, - STREAM_TYPE_FILE, - STREAM_TYPE_UNICODE_MEMORY, - STREAM_TYPE_UNICODE_FILE + STREAM_TYPE_FILE }; +/** + * glk_stream_struct: + * + * This is an opaque structure (see + * Opaque Structures and should not be accessed directly. + */ struct glk_stream_struct { + /*< private >*/ glui32 rock; /* Pointer to the list node in the global stream list that contains this stream */ @@ -24,18 +29,22 @@ struct glk_stream_struct glui32 file_mode; glui32 read_count; glui32 write_count; - enum StreamType stream_type; + enum StreamType type; /* Specific to window stream: the window this stream is connected to */ winid_t window; + /* For memory and file streams */ + gboolean unicode; /* Specific to memory streams */ - gchar *memory_buffer; - glui32 *memory_buffer_unicode; - glui32 buffer_len; + gchar *buffer; + glui32 *ubuffer; + glui32 mark; + glui32 buflen; /* Specific to file streams */ FILE *file_pointer; gboolean binary; + gchar *filename; /* Displayable filename in UTF-8 for error handling */ }; strid_t window_stream_new(winid_t window); - +void stream_close_common(strid_t str, stream_result_t *result); #endif