git: Line endings of README.txt
[projects/chimara/chimara.git] / libchimara / stream.h
index 87b8b7a90bdc64fdf1ef4cf66adbd2740092e62c..33497ceb2d11f36b17cc1afedde5b59cc66fe7e4 100644 (file)
@@ -12,7 +12,8 @@ enum StreamType
 {
        STREAM_TYPE_WINDOW,
        STREAM_TYPE_MEMORY,
-       STREAM_TYPE_FILE
+       STREAM_TYPE_FILE,
+       STREAM_TYPE_RESOURCE
 };
 
 /**
@@ -36,26 +37,30 @@ struct glk_stream_struct
        enum StreamType type;
        /* Specific to window stream: the window this stream is connected to */
        winid_t window;
-       /* For memory and file streams */
+       /* For memory, file, and resource streams */
        gboolean unicode;
-       /* Specific to memory streams */
-       gchar *buffer;
+       /* For file and resource streams */
+       gboolean binary;
+       /* For memory and resource streams */
+       char *buffer;
        glui32 *ubuffer;
        glui32 mark;
+       glui32 endmark;
        glui32 buflen;
+       /* Specific to memory streams */
        gidispatch_rock_t buffer_rock;
        /* Specific to file streams */
        FILE *file_pointer;
-       gboolean binary;
        gchar *filename; /* Displayable filename in UTF-8 for error handling */
+       glui32 lastop; /* 0, filemode_Write, or filemode_Read */
 
        gchar *style; /* Name of the current style */
+       gchar *glk_style; /* Name of the current glk style override */
        gboolean hyperlink_mode; /* When turned on, text written to the stream will be a hyperlink */
 };
 
 G_GNUC_INTERNAL strid_t file_stream_new(frefid_t fileref, glui32 fmode, glui32 rock, gboolean unicode);
 G_GNUC_INTERNAL strid_t stream_new_common(glui32 rock);
 G_GNUC_INTERNAL void stream_close_common(strid_t str, stream_result_t *result);
-G_GNUC_INTERNAL void trash_stream_thread_independent(ChimaraGlkPrivate *glk_data, strid_t str);
 
 #endif