summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@users.sourceforge.net>2009-03-07 21:46:27 +0100
committerTomas Bzatek <tbzatek@users.sourceforge.net>2009-03-07 21:46:27 +0100
commit0f3fcf7c383271a3762b52e38309bc18fca49aec (patch)
tree50587cfd0f39fa932cadb4d6703d847c2220224c /src
parent895513e06150927cf5db6600ca164bdae15d4d75 (diff)
downloadcataract-0f3fcf7c383271a3762b52e38309bc18fca49aec.tar.xz
Favicon support
Diffstat (limited to 'src')
-rw-r--r--src/generators.c28
-rw-r--r--src/setup.c7
-rw-r--r--src/setup.h3
3 files changed, 38 insertions, 0 deletions
diff --git a/src/generators.c b/src/generators.c
index e07a880..992370a 100644
--- a/src/generators.c
+++ b/src/generators.c
@@ -356,6 +356,14 @@ write_html_album (TGallerySetup *setup,
g_free (s1);
s1 = s2;
}
+ if (setup->favicon_file && strlen (setup->favicon_file) > 0) {
+ if (setup->favicon_type)
+ s2 = g_strdup_printf ("%s\t<link rel=\"icon\" type=\"%s\" href=\"%s\" />\n", s1, setup->favicon_type, setup->favicon_file);
+ else
+ s2 = g_strdup_printf ("%s\t<link rel=\"icon\" href=\"%s\" />\n", s1, setup->favicon_file);
+ g_free (s1);
+ s1 = s2;
+ }
replace_table_add_key (global_replace_table, "CGG_META_TAGS", s1);
g_free (s1);
@@ -805,6 +813,14 @@ write_html_image (TGallerySetup *setup,
g_free (s1);
s1 = s2;
}
+ if (setup->favicon_file && strlen (setup->favicon_file) > 0) {
+ if (setup->favicon_type)
+ s2 = g_strdup_printf ("%s\t<link rel=\"icon\" type=\"%s\" href=\"%s\" />\n", s1, setup->favicon_type, setup->favicon_file);
+ else
+ s2 = g_strdup_printf ("%s\t<link rel=\"icon\" href=\"%s\" />\n", s1, setup->favicon_file);
+ g_free (s1);
+ s1 = s2;
+ }
replace_table_add_key (replace_table, "CGG_META_TAGS", s1);
g_free (s1);
@@ -950,6 +966,18 @@ build_tree (TGallerySetup *setup,
g_free (s2);
if (setup->verbose) printf (" done.\n");
+ if (setup->favicon_file && strlen (setup->favicon_file) > 0) {
+ if (setup->verbose) printf ("Writing '%s' ...", setup->favicon_file);
+ s3 = g_path_get_dirname (setup->setup_xml_path);
+ s1 = g_strconcat (s3, "/", setup->favicon_file, NULL);
+ s2 = g_strconcat (dst_dir, "/", setup->favicon_file, NULL);
+ copy_file (s1, s2);
+ g_free (s1);
+ g_free (s2);
+ g_free (s3);
+ if (setup->verbose) printf (" done.\n");
+ }
+
/* Prepare target thumbnail directory */
thumb_dir = g_strconcat (dst_dir, "/", THUMBNAIL_DIR, NULL);
diff --git a/src/setup.c b/src/setup.c
index 1481be6..31bd5ca 100644
--- a/src/setup.c
+++ b/src/setup.c
@@ -131,6 +131,9 @@ parse_setup_xml (const char *filename, TGallerySetup *setup)
setup->nofullsize = xml_file_get_node_present (xml, "/gallery_setup/images/nofullsize");
+ setup->favicon_file = xml_file_get_node_value (xml, "/gallery_setup/meta/favicon/text()");
+ setup->favicon_type = xml_file_get_node_attribute (xml, "/gallery_setup/meta/favicon", "type");
+
xml_parser_close (xml);
#ifdef __DEBUG_ALL__
@@ -256,6 +259,10 @@ free_setup_data (TGallerySetup *setup)
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);
free (setup);
setup = NULL;
}
diff --git a/src/setup.h b/src/setup.h
index 111e9b1..cba4278 100644
--- a/src/setup.h
+++ b/src/setup.h
@@ -73,6 +73,9 @@ typedef struct {
char *site_title;
char *add_copyright;
gboolean use_inpage_links;
+
+ char *favicon_file;
+ char *favicon_type;
} TGallerySetup;