projects
/
rodin
/
chimara.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* Added BLORB file support (i.e. copied the gi_blorb.* files to this dir by instruct...
[rodin/chimara.git]
/
src
/
stream.h
diff --git
a/src/stream.h
b/src/stream.h
index 1d7f131559cdee04be2321a3792c1829bfbd2196..578b1403ba8e3a68edd2dfb3ddec7c9b23ce32a7 100644
(file)
--- a/
src/stream.h
+++ b/
src/stream.h
@@
-9,14
+9,19
@@
enum StreamType
{
STREAM_TYPE_WINDOW,
STREAM_TYPE_MEMORY,
{
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 <link linkend="chimara-Opaque-Structures">
+ * Opaque Structures</link> and should not be accessed directly.
+ */
struct glk_stream_struct
{
struct glk_stream_struct
{
- glui32 rock;
+ /*< private >*/
+ glui32 magic, rock;
/* Pointer to the list node in the global stream list that contains this
stream */
GList* stream_list;
/* Pointer to the list node in the global stream list that contains this
stream */
GList* stream_list;
@@
-24,18
+29,22
@@
struct glk_stream_struct
glui32 file_mode;
glui32 read_count;
glui32 write_count;
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;
/* 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 */
/* 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;
/* 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);
-
+
G_GNUC_INTERNAL
strid_t window_stream_new(winid_t window);
+G_GNUC_INTERNAL void stream_close_common(strid_t str, stream_result_t *result);
#endif
#endif