diff options
Diffstat (limited to 'generators-replace-table.c')
| -rw-r--r-- | generators-replace-table.c | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/generators-replace-table.c b/generators-replace-table.c index 6a84c17..23771fc 100644 --- a/generators-replace-table.c +++ b/generators-replace-table.c @@ -110,16 +110,12 @@ replace_table_process_value (gpointer key, gpointer value, gpointer user_data) g_return_if_fail (value != NULL); g_return_if_fail (user_data != NULL); -// g_print ("replace_table_print: key = '%s', value = '%s'\n", (gchar *) key, (gchar *) value); - /* replace <!-- $(xxx) --> tags */ tag = g_strdup_printf ("<!-- $(%s) -->", (gchar *) key); tag_value = g_strdup ((gchar *) value); - /* TODO: do something with tag_value? */ -/* fix_entities (&s1); */ -/* s1 = g_markup_escape_text (s4, -1); */ + adjust_tags_normal (&tag_value); while (strstr (*buffer, tag)) { - str_replace (buffer, tag, tag_value, NULL); + str_replace (buffer, tag, tag_value); } g_free (tag_value); g_free (tag); @@ -127,13 +123,9 @@ replace_table_process_value (gpointer key, gpointer value, gpointer user_data) /* replace $(xxx) tags */ tag = g_strdup_printf ("$(%s)", (gchar *) key); tag_value = g_strdup ((gchar *) value); - /* TODO: do something with tag_value? */ -/* fix_entities (&s1); */ -/* s1 = g_markup_escape_text (s4, -1); */ -/* line endings */ -/* remove all tags as we're tag value */ + adjust_tags_parameter (&tag_value); while (strstr (*buffer, tag)) { - str_replace (buffer, tag, tag_value, NULL); + str_replace (buffer, tag, tag_value); } g_free (tag_value); g_free (tag); @@ -157,3 +149,26 @@ replace_table_process (gchar **buffer, ReplaceTable *table) g_print ("replace_table_process: val = '%s'\n", val); */ } + + +/* + * adjust_tags_normal: adjust string for normal HTML use + * adjust_tags_parameter: adjust string for use as tag parameter value + * - both funtions return newly allocated string + */ +void +adjust_tags_normal (char **str) +{ + fix_entities (str); +} + +void +adjust_tags_parameter (char **str) +{ + /* TODO: replace line endings with single space? */ + remove_tags (str, "<!--", "-->"); /* comments */ + remove_tags (str, "<", ">"); /* tags */ + fix_entities (str); /* entities */ + str_replace (str, "\"", """); /* " */ + str_replace (str, "'", "'"); /* ' */ +} |
