]> git.street.me.uk Git - andy/viking.git/blobdiff - src/vikgobjectbuilder.c
Add Refresh to consider reloading a Mapnik Rendering configuration.
[andy/viking.git] / src / vikgobjectbuilder.c
index 24839335bbe18fc648301e03235ba4e7005386fc..f864837487bd52856e09cd4fbd8683f984347364 100644 (file)
@@ -1,11 +1,11 @@
 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
 /*
  * viking
 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
 /*
  * viking
- * Copyright (C) Guilhem Bonnefille 2009 <guilhem.bonnefille@gmail.com>
+ * Copyright (C) 2009, Guilhem Bonnefille <guilhem.bonnefille@gmail.com>
  * 
  * viking is free software: you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
  * 
  * viking is free software: you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
- * Free Software Foundation, either version 3 of the License, or
+ * Free Software Foundation, either version 2 of the License, or
  * (at your option) any later version.
  * 
  * viking is distributed in the hope that it will be useful, but
  * (at your option) any later version.
  * 
  * viking is distributed in the hope that it will be useful, but
@@ -34,7 +34,6 @@
 #include "vikgobjectbuilder.h"
 
 /* FIXME use private fields */
 #include "vikgobjectbuilder.h"
 
 /* FIXME use private fields */
-static gchar *class_name = NULL;
 GType gtype = 0;
 gchar *property_name = NULL;
 GParameter *parameters = NULL;
 GType gtype = 0;
 gchar *property_name = NULL;
 GParameter *parameters = NULL;
@@ -104,13 +103,14 @@ _start_element (GMarkupParseContext *context,
 {
        if (strcmp(element_name, "object") == 0)
        {
 {
        if (strcmp(element_name, "object") == 0)
        {
-               class_name = g_strdup(attribute_values[0]);
+               gchar *class_name = g_strdup(attribute_values[0]);
                gtype = g_type_from_name (class_name);
                if (gtype == 0)
                {
                        g_warning("Unknown GObject type '%s'", class_name);
                        return;
                }
                gtype = g_type_from_name (class_name);
                if (gtype == 0)
                {
                        g_warning("Unknown GObject type '%s'", class_name);
                        return;
                }
+               g_free (class_name);
        }
        if (strcmp(element_name, "property") == 0 && gtype != 0)
        {
        }
        if (strcmp(element_name, "property") == 0 && gtype != 0)
        {
@@ -222,7 +222,7 @@ vik_gobject_builder_parse (VikGobjectBuilder *self, const gchar *filename)
 {
        GMarkupParser xml_parser;
        GMarkupParseContext *xml_context;
 {
        GMarkupParser xml_parser;
        GMarkupParseContext *xml_context;
-       GError *error;
+       GError *error = NULL;
 
        FILE *file = g_fopen (filename, "r");
        if (file == NULL)
 
        FILE *file = g_fopen (filename, "r");
        if (file == NULL)
@@ -243,11 +243,13 @@ vik_gobject_builder_parse (VikGobjectBuilder *self, const gchar *filename)
        while ((nb = fread (buff, sizeof(gchar), BUFSIZ, file)) > 0)
        {
                if (!g_markup_parse_context_parse(xml_context, buff, nb, &error))
        while ((nb = fread (buff, sizeof(gchar), BUFSIZ, file)) > 0)
        {
                if (!g_markup_parse_context_parse(xml_context, buff, nb, &error))
-                       printf("read_xml() : parsing error.\n");
+                       g_warning("%s: parsing error: %s", __FUNCTION__,
+                                 error != NULL ? error->message : "???");
        }
        /* cleanup */
        if (!g_markup_parse_context_end_parse(xml_context, &error))
        }
        /* cleanup */
        if (!g_markup_parse_context_end_parse(xml_context, &error))
-               printf("read_xml() : errors occurred reading file.\n");
+               g_warning("%s: errors occurred reading file '%s': %s", __FUNCTION__, filename,
+                         error != NULL ? error->message : "???");
        
        g_markup_parse_context_free(xml_context);
        fclose (file);
        
        g_markup_parse_context_free(xml_context);
        fclose (file);