From fa6dfc688c293fa02c36ee89ac5611fd5e0131a5 Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Sat, 26 Jul 2014 09:33:58 +0200 Subject: [modules] Kill pango-querymodules It serves no purpose now. --- pango/querymodules.c | 323 --------------------------------------------------- 1 file changed, 323 deletions(-) delete mode 100644 pango/querymodules.c (limited to 'pango/querymodules.c') diff --git a/pango/querymodules.c b/pango/querymodules.c deleted file mode 100644 index 0c86811e..00000000 --- a/pango/querymodules.c +++ /dev/null @@ -1,323 +0,0 @@ -/* Pango - * querymodules.c: - * - * Copyright (C) 1999 Red Hat Software - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include -#include "config.h" - -#include -#include -#include "pango-break.h" -#include "pango-context.h" -#include "pango-impl-utils.h" -#include "pango-engine.h" -#include "pango-enum-types.h" - -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#include - -#ifdef USE_LA_MODULES -#define SOEXT ".la" -#else -#define SOEXT ("." G_MODULE_SUFFIX) -#endif -#define SOEXT_LEN ((int) strlen (SOEXT)) - -static gboolean system_mode; /* MT-safe as we're single-threaded! */ - -static gboolean -string_needs_escape (const char *str) -{ - while (TRUE) - { - char c = *str++; - - if (!c) - return FALSE; - else if (c == '\"' || c == '\\' || g_ascii_isspace (c)) - return TRUE; - } -} - -static char * -escape_string (const char *str) -{ - GString *result = g_string_new (NULL); - - while (TRUE) - { - char c = *str++; - - switch (c) - { - case '\0': - goto done; - case '\n': - g_string_append (result, "\\n"); - break; - case '\"': - g_string_append (result, "\\\""); - break; - case '\\': - g_string_append (result, "\\\\"); - break; - default: - g_string_append_c (result, c); - } - } - - done: - return g_string_free (result, FALSE); -} - -#define GET_SYMBOL(module,name,location) \ - g_module_symbol (module, name, (gpointer *)(void *)&location) - -static const char * -string_from_script (PangoScript script) -{ - static GEnumClass *class = NULL; /* MT-safe as we're single-threaded! */ - GEnumValue *value; - if (!class) - class = g_type_class_ref (PANGO_TYPE_SCRIPT); - - value = g_enum_get_value (class, script); - if (!value) - { - g_warning ("Engine reported invalid script value %d\n", script); - return string_from_script (PANGO_SCRIPT_INVALID_CODE); - } - - return value->value_nick; -} - -static void -query_module (const char *dir, const char *name, GString *contents) -{ - void (*list) (PangoEngineInfo **engines, gint *n_engines); - void (*init) (GTypeModule *module); - void (*exit) (void); - PangoEngine *(*create) (const gchar *id); - - GModule *module; - gchar *path; - - if (g_path_is_absolute (name)) - path = g_strdup (name); - else - path = g_build_filename (dir, name, NULL); - - module = g_module_open (path, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL); - - if (!module) - g_printerr ("Cannot load module %s: %s\n", path, g_module_error ()); - - if (module && - GET_SYMBOL (module, "script_engine_list", list) && - GET_SYMBOL (module, "script_engine_init", init) && - GET_SYMBOL (module, "script_engine_exit", exit) && - GET_SYMBOL (module, "script_engine_create", create)) - { - gint i,j; - PangoEngineInfo *engines; - gint n_engines; - - (*list) (&engines, &n_engines); - - for (i=0; imessage); - } - else - { - g_printerr("Parse option error\n"); - } - exit(1); - } - - g_option_context_free(context); - -#if !GLIB_CHECK_VERSION (2, 35, 3) - g_type_init (); -#endif - - contents = g_string_new (""); - g_string_append (contents, - "# Pango Modules file\n" - "# Automatically generated file, do not edit\n" - "#\n"); - - if (argc == 1) /* No arguments given */ - { - char **dirs; - int i; - - if (system_mode) - path = pango_config_key_get_system ("Pango/ModulesPath"); - else - path = pango_config_key_get ("Pango/ModulesPath"); - if (!path) - path = g_build_filename (pango_get_lib_subdirectory (), - MODULE_VERSION, - "modules", - NULL); - - g_string_append_printf (contents, "# ModulesPath = %s\n#\n", path); - - dirs = pango_split_file_list (path); - - g_free (path); - - for (i=0; dirs[i]; i++) - { - GDir *dir = g_dir_open (dirs[i], 0, NULL); - if (dir) - { - const char *dent; - - while ((dent = g_dir_read_name (dir))) - { - int len = strlen (dent); - if (len > SOEXT_LEN && strcmp (dent + len - SOEXT_LEN, SOEXT) == 0) - query_module (dirs[i], dent, contents); - } - - g_dir_close (dir); - } - } - - g_strfreev (dirs); - } - else - { - cwd = g_get_current_dir (); - - for (i=1; istr, -1, &err)) - { - g_fprintf (stderr, "%s\n", err->message); - exit(1); - } - g_free (cache_file); - } - else - g_print ("%s\n", contents->str); - - return 0; -} -- cgit v1.2.1