#include <glib/gstdio.h>
#include "fileref.h"
#include "error.h"
+#include "chimara-glk-private.h"
-/* List of streams currently in existence */
-static GList *fileref_list = NULL;
+extern ChimaraGlkPrivate *glk_data;
/**
* glk_fileref_iterate:
GList *retnode;
if(fref == NULL)
- retnode = fileref_list;
+ retnode = glk_data->fileref_list;
else
retnode = fref->fileref_list->next;
frefid_t retval = retnode? (frefid_t)retnode->data : NULL;
f->orig_filemode = orig_filemode;
/* Add it to the global fileref list */
- fileref_list = g_list_prepend(fileref_list, f);
- f->fileref_list = fileref_list;
+ glk_data->fileref_list = g_list_prepend(glk_data->fileref_list, f);
+ f->fileref_list = glk_data->fileref_list;
return f;
}
void
glk_fileref_destroy(frefid_t fref)
{
- fileref_list = g_list_delete_link(fileref_list, fref->fileref_list);
+ glk_data->fileref_list = g_list_delete_link(glk_data->fileref_list, fref->fileref_list);
if(fref->filename)
g_free(fref->filename);
g_free(fref);