summaryrefslogtreecommitdiff
path: root/src/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/setup.c')
-rw-r--r--src/setup.c133
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;
}
}