Make const char * string argument
authorPhilip Chimento <philip.chimento@gmail.com>
Tue, 6 Dec 2011 21:27:44 +0000 (22:27 +0100)
committerPhilip Chimento <philip.chimento@gmail.com>
Tue, 6 Dec 2011 21:30:49 +0000 (22:30 +0100)
In chimara_if_run_game(), the game file argument should be const char *.

libchimara/chimara-if.c
libchimara/chimara-if.h

index 3879a12c2d721fb3e66febffe1e226a0715c5f8f..a459ac0b669cc9afcd69ea5550811eb2b5732bdc 100644 (file)
@@ -574,7 +574,7 @@ chimara_if_get_preferred_interpreter(ChimaraIF *self, ChimaraIFFormat format)
  * case @error is set.
  */
 gboolean
-chimara_if_run_game(ChimaraIF *self, gchar *gamefile, GError **error)
+chimara_if_run_game(ChimaraIF *self, const char *gamefile, GError **error)
 {
        g_return_val_if_fail(self && CHIMARA_IS_IF(self), FALSE);
        g_return_val_if_fail(gamefile, FALSE);
@@ -679,7 +679,7 @@ chimara_if_run_game(ChimaraIF *self, gchar *gamefile, GError **error)
        }
 
        /* Game file and external blorb file */
-       args = g_slist_prepend(args, gamefile);
+       args = g_slist_prepend(args, (gpointer)gamefile);
        if(priv->graphics_file
                && (interpreter == CHIMARA_IF_INTERPRETER_FROTZ || interpreter == CHIMARA_IF_INTERPRETER_NITFOL)
            && g_file_test(priv->graphics_file, G_FILE_TEST_EXISTS)) {
@@ -696,7 +696,7 @@ chimara_if_run_game(ChimaraIF *self, gchar *gamefile, GError **error)
        int count;
        GSList *ptr;
        for(count = 0, ptr = args; ptr; count++, ptr = g_slist_next(ptr))
-               argv[count] = ptr->data;
+               argv[count] = g_strdup(ptr->data);
 
        /* Set the story name */
        /* We peek into ChimaraGlk's private data here, because GObject has no
@@ -706,7 +706,7 @@ chimara_if_run_game(ChimaraIF *self, gchar *gamefile, GError **error)
        g_object_notify(G_OBJECT(self), "story-name");
        
        gboolean retval = chimara_glk_run(CHIMARA_GLK(self), pluginpath, argc, argv, error);
-       g_free(argv);
+       g_strfreev(argv);
        if(terpnumstr)
                g_free(terpnumstr);
        if(randomstr)
index deda6474e8e893f85645ee66f603ff2a31326a08..c0763ee600517d1fa8ee88e3cc2252477aead57e 100644 (file)
@@ -116,7 +116,7 @@ GType chimara_if_get_type(void) G_GNUC_CONST;
 GtkWidget *chimara_if_new(void);
 void chimara_if_set_preferred_interpreter(ChimaraIF *self, ChimaraIFFormat format, ChimaraIFInterpreter interpreter);
 ChimaraIFInterpreter chimara_if_get_preferred_interpreter(ChimaraIF *self, ChimaraIFFormat format);
-gboolean chimara_if_run_game(ChimaraIF *self, gchar *gamefile, GError **error);
+gboolean chimara_if_run_game(ChimaraIF *self, const char *gamefile, GError **error);
 ChimaraIFFormat chimara_if_get_format(ChimaraIF *self);
 ChimaraIFInterpreter chimara_if_get_interpreter(ChimaraIF *self);