Fix null pointer bug
[projects/chimara/chimara.git] / libchimara / chimara-glk.c
index aca2f212e8c47d6d02443ff899898c8ecd6cb045..4d8b55249fd6b3f2136e3daf9e34141481b10bee 100644 (file)
@@ -180,8 +180,6 @@ chimara_glk_init(ChimaraGlk *self)
        priv->line_input_queue = g_async_queue_new();
        /* Should be g_async_queue_new_full(g_free); but only in GTK >= 2.16 */
        priv->resource_map = NULL;
-       priv->open_external_blorb = FALSE;
-       priv->external_blorb_pathname = NULL;
        priv->resource_lock = g_mutex_new();
        priv->resource_loaded = g_cond_new();
        priv->resource_info_available = g_cond_new();
@@ -1065,8 +1063,9 @@ chimara_glk_set_css_from_file(ChimaraGlk *glk, const gchar *filename, GError **e
 
        int fd = open(filename, O_RDONLY);
        if(fd == -1) {
-               *error = g_error_new(G_IO_ERROR, g_io_error_from_errno(errno), 
-                   _("Error opening file \"%s\": %s"), filename, g_strerror(errno));
+               if(error)
+                       *error = g_error_new(G_IO_ERROR, g_io_error_from_errno(errno), 
+                               _("Error opening file \"%s\": %s"), filename, g_strerror(errno));
                return FALSE;
        }
 
@@ -1076,8 +1075,9 @@ chimara_glk_set_css_from_file(ChimaraGlk *glk, const gchar *filename, GError **e
        scan_css_file(scanner, glk);
 
        if(close(fd) == -1) {
-               *error = g_error_new(G_IO_ERROR, g_io_error_from_errno(errno),
-                   _("Error closing file \"%s\": %s"), filename, g_strerror(errno));
+               if(error)
+                       *error = g_error_new(G_IO_ERROR, g_io_error_from_errno(errno),
+                               _("Error closing file \"%s\": %s"), filename, g_strerror(errno));
                return FALSE;
        }
        return TRUE;
@@ -1172,18 +1172,6 @@ glk_enter(struct StartupData *startup)
                if(!result)
                        return NULL;
        }
-
-       /* Open external Blorb file if specified */
-       if(startup->glk_data->open_external_blorb) {
-               glkunix_set_base_file(startup->glk_data->external_blorb_pathname);
-               gchar *basename = g_path_get_basename(startup->glk_data->external_blorb_pathname);
-               frefid_t blorbref = glk_fileref_create_by_name(fileusage_BinaryMode | fileusage_Data, basename, 0);
-               g_free(basename);
-               strid_t blorbfile = glk_stream_open_file(blorbref, filemode_Read, 0);
-               giblorb_set_resource_map(blorbfile);
-               glk_fileref_destroy(blorbref);
-               g_printerr("Opening external blorb file\n");
-       }
        
        /* Run main function */
        glk_main_t glk_main = startup->glk_main;