diff options
| author | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2012-12-24 21:19:25 +0100 |
|---|---|---|
| committer | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2012-12-24 21:19:25 +0100 |
| commit | e830966319d214b97662d56f10a526a106b92a20 (patch) | |
| tree | f84a883c0f16dfa8ea21130f5d9d58f4204fcff2 | |
| parent | db6c3c5a0ef1cca1e951e21ea2633615d43233eb (diff) | |
| download | cataract-e830966319d214b97662d56f10a526a106b92a20.tar.xz | |
Add has_exif_key() block function
Simple check whether the EXIF/IPTC key is available for the current
image. Precisely one argument is required, similar to the get_exif_value()
custom function, an Exiv2 metadata attribute string is expected.
This allows templates to change behaviour when certain metadata key
is not present (e.g. don't print the particular table line at all).
| -rw-r--r-- | src/generators.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/generators.c b/src/generators.c index 5fe87fe..ab7ab12 100644 --- a/src/generators.c +++ b/src/generators.c @@ -577,6 +577,18 @@ get_exif_value_fixed_cb (gchar **args, gpointer user_data) return get_exif_data_fixed (exif, *args); } +static gboolean +has_exif_key_cb (gchar **args, gpointer user_data) +{ + ExifData *exif = user_data; + + g_return_val_if_fail (exif != NULL, FALSE); + g_return_val_if_fail (g_strv_length (args) != 2, FALSE); /* incl. trailing NULL */ + + return exif_has_key (exif, *args); +} + + /* * write_html_image: process single image template file * @@ -827,6 +839,7 @@ write_html_image (TGallerySetup *setup, replace_table_register_function (replace_table, "get_exif_value", get_exif_value_cb, exif); replace_table_register_function (replace_table, "get_exif_value_fixed", get_exif_value_fixed_cb, exif); + block_parser_register_function (block_parser, "has_exif_key", has_exif_key_cb, exif); /* Border style */ s1 = item->border_style; |
