#include <glib/gstdio.h>
#include "chimara-glk-private.h"
-extern ChimaraGlkPrivate *glk_data;
+extern GPrivate *glk_data_key;
/* Internal function: create a stream with a specified rock value */
static strid_t
stream_new_common(glui32 rock, glui32 fmode, enum StreamType type)
{
+ ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+
strid_t str = g_new0(struct glk_stream_struct, 1);
str->magic = MAGIC_STREAM;
str->rock = rock;
glk_stream_iterate(strid_t str, glui32 *rockptr)
{
VALID_STREAM_OR_NULL(str, return NULL);
-
+
+ ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
GList *retnode;
if(str == NULL)
glk_stream_set_current(strid_t str)
{
VALID_STREAM_OR_NULL(str, return);
+
+ ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
if(str != NULL && str->file_mode == filemode_Read)
{
strid_t
glk_stream_get_current()
{
+ ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
return glk_data->current_stream;
}
void
glk_put_char(unsigned char ch)
{
+ ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
VALID_STREAM(glk_data->current_stream, return);
glk_put_char_stream(glk_data->current_stream, ch);
}
void
glk_put_char_uni(glui32 ch)
{
+ ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
VALID_STREAM(glk_data->current_stream, return);
glk_put_char_stream_uni(glk_data->current_stream, ch);
}
void
glk_put_string(char *s)
{
+ ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
VALID_STREAM(glk_data->current_stream, return);
glk_put_string_stream(glk_data->current_stream, s);
}
void
glk_put_string_uni(glui32 *s)
{
+ ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
VALID_STREAM(glk_data->current_stream, return);
glk_put_string_stream_uni(glk_data->current_stream, s);
}
void
glk_put_buffer(char *buf, glui32 len)
{
+ ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
VALID_STREAM(glk_data->current_stream, return);
glk_put_buffer_stream(glk_data->current_stream, buf, len);
}
void
glk_put_buffer_uni(glui32 *buf, glui32 len)
{
+ ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
VALID_STREAM(glk_data->current_stream, return);
glk_put_buffer_stream_uni(glk_data->current_stream, buf, len);
}
void
stream_close_common(strid_t str, stream_result_t *result)
{
+ ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+
/* Remove the stream from the global stream list */
glk_data->stream_list = g_list_delete_link(glk_data->stream_list, str->stream_list);