diff options
Diffstat (limited to 'src/setup.c')
| -rw-r--r-- | src/setup.c | 133 |
1 files changed, 57 insertions, 76 deletions
diff --git a/src/setup.c b/src/setup.c index 0b92022..1081fa4 100644 --- a/src/setup.c +++ b/src/setup.c @@ -42,25 +42,24 @@ gboolean find_setup_xml (TGallerySetup *setup) { - #define BUFFER_SIZE 65536 - - char *pth; - char *cwd; + gchar *pth; + gchar *cwd; gboolean b; - cwd = malloc (BUFFER_SIZE); - cwd = getcwd (cwd, BUFFER_SIZE); + cwd = g_get_current_dir (); pth = g_strconcat (cwd, "/", SETUP_XML, NULL); - free (cwd); + g_free (cwd); b = parse_setup_xml (pth, setup); g_free (pth); - if (b) return TRUE; + if (b) + return TRUE; - pth = g_strconcat (getenv ("HOME"), "/.cgg/", SETUP_XML, NULL); + pth = g_strconcat (g_getenv ("HOME"), "/.cgg/", SETUP_XML, NULL); b = parse_setup_xml (pth, setup); g_free (pth); - if (b) return TRUE; + if (b) + return TRUE; pth = g_strconcat (DATADIR, "/cgg/", SETUP_XML, NULL); b = parse_setup_xml (pth, setup); @@ -73,20 +72,20 @@ find_setup_xml (TGallerySetup *setup) * parse_setup_xml: XML parser for setup.xml file */ gboolean -parse_setup_xml (const char *filename, TGallerySetup *setup) +parse_setup_xml (const gchar *filename, TGallerySetup *setup) { TXMLFile *xml; - char *s; + gchar *s; xml = xml_parser_load (filename); if (xml == NULL) - return FALSE; + return FALSE; /* initialize data struct */ if (setup == NULL) - return FALSE; + return FALSE; memset (setup, 0, sizeof (TGallerySetup)); - setup->setup_xml_path = strdup (filename); + setup->setup_xml_path = g_strdup (filename); setup->templates_path = xml_file_get_node_value (xml, "/gallery_setup/templates/path/text()"); setup->template_index = xml_file_get_node_value (xml, "/gallery_setup/templates/index/text()"); @@ -95,27 +94,27 @@ parse_setup_xml (const char *filename, TGallerySetup *setup) s = xml_file_get_node_value (xml, "/gallery_setup/templates/template_files/text()"); if (s) { setup->template_files = g_strsplit (s, "\n", -1); - free (s); + g_free (s); } s = xml_file_get_node_attribute (xml, "/gallery_setup/templates/support_files_use_common_root", "value"); setup->support_files_use_common_root = s ? strcasecmp (s, "yes") == 0 : FALSE; /* default to FALSE */ - if (s) g_free (s); + g_free (s); setup->index_file_name = xml_file_get_node_value (xml, "/gallery_setup/templates/index_file/text()"); if (setup->index_file_name == NULL || strlen (setup->index_file_name) == 0) - setup->index_file_name = strdup (DEFAULT_INDEX_FILENAME); + setup->index_file_name = g_strdup (DEFAULT_INDEX_FILENAME); setup->thumbnail_dir = xml_file_get_node_value (xml, "/gallery_setup/images/thumbnail_dir/text()"); if (setup->thumbnail_dir == NULL || strlen (setup->thumbnail_dir) == 0) - setup->thumbnail_dir = strdup (DEFAULT_THUMBNAIL_DIR); + setup->thumbnail_dir = g_strdup (DEFAULT_THUMBNAIL_DIR); setup->img_big_dir = xml_file_get_node_value (xml, "/gallery_setup/images/preview_dir/text()"); if (setup->img_big_dir == NULL || strlen (setup->img_big_dir) == 0) - setup->img_big_dir = strdup (DEFAULT_IMG_BIG_DIR); + setup->img_big_dir = g_strdup (DEFAULT_IMG_BIG_DIR); setup->img_orig_dir = xml_file_get_node_value (xml, "/gallery_setup/images/original_dir/text()"); if (setup->img_orig_dir == NULL || strlen (setup->img_orig_dir) == 0) - setup->img_orig_dir = strdup (DEFAULT_IMG_ORIG_DIR); + setup->img_orig_dir = g_strdup (DEFAULT_IMG_ORIG_DIR); setup->thumbnail_name_format = xml_file_get_node_value (xml, "/gallery_setup/images/thumbnail_name_format/text()"); if (setup->thumbnail_name_format == NULL || strlen (setup->thumbnail_name_format) == 0 || strstr (setup->thumbnail_name_format, "%s") == NULL) - setup->thumbnail_name_format = strdup (DEFAULT_THUMBNAIL_NAME_FORMAT); + setup->thumbnail_name_format = g_strdup (DEFAULT_THUMBNAIL_NAME_FORMAT); setup->thumbnail_landscape_width = xml_file_get_node_attribute_long (xml, "/gallery_setup/images/thumbnail", "landscape_w", 0); @@ -136,28 +135,28 @@ parse_setup_xml (const char *filename, TGallerySetup *setup) s = xml_file_get_node_attribute (xml, "/gallery_setup/images/preload", "value"); setup->preload = s ? strcasecmp (s, "yes") == 0 : TRUE; /* default to TRUE */ - if (s) g_free (s); + g_free (s); s = xml_file_get_node_attribute (xml, "/gallery_setup/images/use_iptc_exif", "value"); setup->use_iptc_exif = s ? strcasecmp (s, "yes") == 0 : FALSE; /* default to FALSE */ - if (s) g_free (s); + g_free (s); s = xml_file_get_node_attribute (xml, "/gallery_setup/images/erase_embed_thumbnail", "value"); setup->erase_exif_thumbnail = s ? strcasecmp (s, "yes") == 0 : FALSE; /* default to FALSE */ - if (s) g_free (s); + g_free (s); s = xml_file_get_node_attribute (xml, "/gallery_setup/meta/use_title_as_meta", "value"); setup->use_title_as_meta = s ? strcasecmp (s, "yes") == 0 : TRUE; /* default to TRUE */ - if (s) g_free (s); + g_free (s); setup->site_title = xml_file_get_node_attribute (xml, "/gallery_setup/meta/site", "title"); setup->add_copyright = xml_file_get_node_value (xml, "/gallery_setup/meta/add_copyright/text()"); s = xml_file_get_node_attribute (xml, "/gallery_setup/navigation/use_inpage_links", "value"); setup->use_inpage_links = s ? strcasecmp (s, "yes") == 0 : TRUE; /* default to TRUE */ - if (s) g_free (s); + g_free (s); s = xml_file_get_node_attribute (xml, "/gallery_setup/navigation/show_go_up", "value"); setup->show_go_up = s ? strcasecmp (s, "yes") == 0 : TRUE; /* default to TRUE */ - if (s) g_free (s); + g_free (s); s = xml_file_get_node_attribute (xml, "/gallery_setup/navigation/show_exif_table", "value"); setup->show_exif_table = s ? strcasecmp (s, "yes") == 0 : TRUE; /* default to TRUE */ - if (s) g_free (s); + g_free (s); setup->nofullsize = xml_file_get_node_present (xml, "/gallery_setup/images/nofullsize"); @@ -197,9 +196,9 @@ parse_setup_xml (const char *filename, TGallerySetup *setup) int -test_tmpl_access (const char *dir, const char *path) +test_tmpl_access (const gchar *dir, const gchar *path) { - char *s; + gchar *s; int b; s = g_strconcat (dir, "/", path, NULL); @@ -209,9 +208,10 @@ test_tmpl_access (const char *dir, const char *path) } int -test_tmpl_files (const char *dir, TGallerySetup *setup) +test_tmpl_files (const gchar *dir, TGallerySetup *setup) { - return test_tmpl_access (dir, setup->template_album) | test_tmpl_access (dir, setup->template_photo) | + return test_tmpl_access (dir, setup->template_album) | + test_tmpl_access (dir, setup->template_photo) | test_tmpl_access (dir, setup->template_index); } @@ -219,11 +219,11 @@ test_tmpl_files (const char *dir, TGallerySetup *setup) * find_templates_directory: absolute/relative path checks, trying to find templates directory * - returned string should be freed */ -char * +gchar * find_templates_directory (TGallerySetup *setup) { - char *base_dir; - char *pth; + gchar *base_dir; + gchar *pth; if (IS_DIR_SEP (*setup->templates_path)) { @@ -232,7 +232,7 @@ find_templates_directory (TGallerySetup *setup) #endif if (! test_tmpl_files (setup->templates_path, setup)) - return strdup (setup->templates_path); + return g_strdup (setup->templates_path); } else { @@ -260,45 +260,26 @@ void free_setup_data (TGallerySetup *setup) { if (setup) { - if (setup->real_templates_dir) - free (setup->real_templates_dir); - if (setup->setup_xml_path) - free (setup->setup_xml_path); - if (setup->templates_path) - free (setup->templates_path); - if (setup->template_index) - free (setup->template_index); - if (setup->template_album) - free (setup->template_album); - if (setup->template_photo) - free (setup->template_photo); - if (setup->template_files) - g_strfreev (setup->template_files); - if (setup->index_file_name) - free (setup->index_file_name); - if (setup->footer) - free (setup->footer); - if (setup->meta_author) - free (setup->meta_author); - if (setup->border_style) - free (setup->border_style); - if (setup->site_title) - free (setup->site_title); - if (setup->add_copyright) - free (setup->add_copyright); - if (setup->favicon_file) - free (setup->favicon_file); - if (setup->favicon_type) - free (setup->favicon_type); - if (setup->thumbnail_dir) - free (setup->thumbnail_dir); - if (setup->img_big_dir) - free (setup->img_big_dir); - if (setup->img_orig_dir) - free (setup->img_orig_dir); - if (setup->thumbnail_name_format) - free (setup->thumbnail_name_format); - free (setup); + g_free (setup->real_templates_dir); + g_free (setup->setup_xml_path); + g_free (setup->templates_path); + g_free (setup->template_index); + g_free (setup->template_album); + g_free (setup->template_photo); + g_strfreev (setup->template_files); + g_free (setup->index_file_name); + g_free (setup->footer); + g_free (setup->meta_author); + g_free (setup->border_style); + g_free (setup->site_title); + g_free (setup->add_copyright); + g_free (setup->favicon_file); + g_free (setup->favicon_type); + g_free (setup->thumbnail_dir); + g_free (setup->img_big_dir); + g_free (setup->img_orig_dir); + g_free (setup->thumbnail_name_format); + g_free (setup); setup = NULL; } } |
