diff --git a/util/Makefile.am b/util/Makefile.am deleted file mode 100644 index 414dc683be..0000000000 --- a/util/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -# The extract_strings tool is a build utility that runs on the build system. - -noinst_PROGRAMS = extract-strings - -extract_strings_SOURCES = extract-strings.c -extract_strings_CFLAGS = $(GLIB_CFLAGS_FOR_BUILD) -extract_strings_LDADD = $(GLIB_LIBS_FOR_BUILD) - --include $(top_srcdir)/git.mk diff --git a/util/extract-strings.c b/util/extract-strings.c deleted file mode 100644 index 44acbc2ba4..0000000000 --- a/util/extract-strings.c +++ /dev/null @@ -1,182 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 2013 Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see . - */ - -#include -#include - -typedef struct { - GString *output; - gboolean translatable; - gchar *context; - gchar *comments; - GString *text; -} ParserData; - -static void -start_element_handler (GMarkupParseContext *contexts, - const gchar *element_name, - const gchar **attribute_names, - const gchar **attribute_values, - gpointer user_data, - GError **error) -{ - ParserData *data = user_data; - - if (g_str_equal (element_name, "property") || - g_str_equal (element_name, "attribute") || - g_str_equal (element_name, "item")) - { - gboolean translatable; - gchar *context; - gchar *comments; - - g_markup_collect_attributes (element_name, - attribute_names, - attribute_values, - error, - G_MARKUP_COLLECT_STRING|G_MARKUP_COLLECT_OPTIONAL, "name", NULL, - G_MARKUP_COLLECT_STRING|G_MARKUP_COLLECT_OPTIONAL, "value", NULL, - G_MARKUP_COLLECT_TRISTATE, "translatable", &translatable, - G_MARKUP_COLLECT_STRDUP|G_MARKUP_COLLECT_OPTIONAL, "context", &context, - G_MARKUP_COLLECT_STRDUP|G_MARKUP_COLLECT_OPTIONAL, "comments", &comments, - G_MARKUP_COLLECT_STRING|G_MARKUP_COLLECT_OPTIONAL, "id", NULL, - G_MARKUP_COLLECT_STRING|G_MARKUP_COLLECT_OPTIONAL, "bind-source", NULL, - G_MARKUP_COLLECT_STRING|G_MARKUP_COLLECT_OPTIONAL, "bind-property", NULL, - G_MARKUP_COLLECT_STRING|G_MARKUP_COLLECT_OPTIONAL, "bind-flags", NULL, - G_MARKUP_COLLECT_INVALID); - - if (translatable == TRUE) - { - data->translatable = TRUE; - data->context = context; - data->comments = comments; - data->text = g_string_new (""); - } - } -} - -static void -end_element_handler (GMarkupParseContext *context, - const gchar *element_name, - gpointer user_data, - GError **error) -{ - ParserData *data = user_data; - gchar **lines; - gint i; - - if (!data->translatable) - return; - - lines = g_strsplit (data->text->str, "\n", -1); - - if (data->comments) - g_string_append_printf (data->output, "\n/* %s */\n", - data->comments); - - if (data->context) - g_string_append_printf (data->output, "C_(\"%s\", ", - data->context); - else - g_string_append (data->output, "N_("); - - for (i = 0; lines[i]; i++) - g_string_append_printf (data->output, "%s\"%s%s\"%s", - i > 0 ? " " : "", - lines[i], - lines[i+1] ? "\\n" : "", - lines[i+1] ? "\n" : ""); - - g_string_append (data->output, ");\n"); - - g_strfreev (lines); - - g_free (data->comments); - g_free (data->context); - g_string_free (data->text, TRUE); - - data->comments = NULL; - data->context = NULL; - data->text = NULL; - data->translatable = FALSE; -} - -static void -text_handler (GMarkupParseContext *context, - const gchar *text, - gsize text_len, - gpointer user_data, - GError **error) -{ - ParserData *data = user_data; - - if (!data->translatable) - return; - - g_string_append_len (data->text, text, text_len); -} - -static const GMarkupParser parser = { - start_element_handler, - end_element_handler, - text_handler, - NULL, - NULL -}; - -int -main (int argc, char *argv[]) -{ - gchar *contents; - gsize length; - GError *error; - GMarkupParseContext *context; - ParserData data; - - setlocale (LC_ALL, ""); - - if (argc < 2) - { - g_printerr ("Expect a filename\n"); - return 1; - } - - error = NULL; - if (!g_file_get_contents (argv[1], &contents, &length, &error)) - { - g_printerr ("%s\n", error->message); - g_error_free (error); - return 1; - } - - data.output = g_string_new (""); - data.translatable = FALSE; - - context = g_markup_parse_context_new (&parser, 0, &data, NULL); - if (!g_markup_parse_context_parse (context, contents, length, &error)) - { - g_markup_parse_context_free (context); - g_free (contents); - g_printerr ("%s\n", error->message); - g_error_free (error); - return 1; - } - - g_print ("%s", g_string_free (data.output, FALSE)); - - return 0; -}