-fileref_new(gchar *filename, glui32 rock, glui32 usage, glui32 orig_filemode)
+fileref_new(char *filename, char *basename, glui32 rock, glui32 usage, glui32 orig_filemode)
frefid_t f = g_new0(struct glk_fileref_struct, 1);
f->magic = MAGIC_FILEREF;
f->rock = rock;
frefid_t f = g_new0(struct glk_fileref_struct, 1);
f->magic = MAGIC_FILEREF;
f->rock = rock;
f->disprock = (*glk_data->register_obj)(f, gidisp_Class_Fileref);
f->filename = g_strdup(filename);
f->disprock = (*glk_data->register_obj)(f, gidisp_Class_Fileref);
f->filename = g_strdup(filename);
glk_data->fileref_list = g_list_delete_link(glk_data->fileref_list, fref->fileref_list);
if(glk_data->unregister_obj)
glk_data->fileref_list = g_list_delete_link(glk_data->fileref_list, fref->fileref_list);
if(glk_data->unregister_obj)
- frefid_t f = fileref_new(filename, rock, usage, filemode_Write);
+ /* Pass a basename of "" to ensure that this file can't be repurposed */
+ frefid_t f = fileref_new(filename, "", rock, usage, filemode_Write);
GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
NULL);
gtk_file_chooser_set_action(GTK_FILE_CHOOSER(chooser), GTK_FILE_CHOOSER_ACTION_SAVE);
GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
NULL);
gtk_file_chooser_set_action(GTK_FILE_CHOOSER(chooser), GTK_FILE_CHOOSER_ACTION_SAVE);
- frefid_t f = fileref_new(filename, rock, usage, fmode);
+ frefid_t f = fileref_new(filename, NULL, rock, usage, fmode);
/* Do any string-munging here to remove illegal Latin-1 characters from
filename. On ext3, the only illegal characters are '/' and '\0', but the Glk
spec calls for removing any other tricky characters. */
/* Do any string-munging here to remove illegal Latin-1 characters from
filename. On ext3, the only illegal characters are '/' and '\0', but the Glk
spec calls for removing any other tricky characters. */
- frefid_t f = fileref_new(path, rock, usage, filemode_ReadWrite);
+ frefid_t f = fileref_new(path, buf, rock, usage, filemode_ReadWrite);
glk_fileref_create_from_fileref(glui32 usage, frefid_t fref, glui32 rock)
{
VALID_FILEREF(fref, return NULL);
glk_fileref_create_from_fileref(glui32 usage, frefid_t fref, glui32 rock)
{
VALID_FILEREF(fref, return NULL);
- return fileref_new(fref->filename, rock, usage, fref->orig_filemode);
+ return fileref_new(fref->filename, fref->basename, rock, usage, fref->orig_filemode);