summaryrefslogtreecommitdiff
path: root/mini-commander/src/mc-install-default-macros.c
diff options
context:
space:
mode:
Diffstat (limited to 'mini-commander/src/mc-install-default-macros.c')
-rw-r--r--mini-commander/src/mc-install-default-macros.c179
1 files changed, 0 insertions, 179 deletions
diff --git a/mini-commander/src/mc-install-default-macros.c b/mini-commander/src/mc-install-default-macros.c
deleted file mode 100644
index 384007a9..00000000
--- a/mini-commander/src/mc-install-default-macros.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * mc-install-default-macros.c:
- * Copyright (C) 2002 Sun Microsystems Inc.
- *
- * Authors: Mark McLoughlin <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/* This reads the macro patterns and commands lists
- * schemas and sets the default values to be our
- * default list of macros.
- *
- * This is easier than trying to have this stuff
- * in the .schemas file - you would believe the
- * kind of escaping and hackery needed to get
- * it into the .schemas, and even then its impossible
- * to tell which pattern is for which macro ...
- */
-
-/* This is to have access to mateconf_engine_get_local() */
-#define MATECONF_ENABLE_INTERNALS 1
-
-#include <config.h>
-#include <stdio.h>
-
-#include <glib/gi18n.h>
-#include <mateconf/mateconf.h>
-#include <mateconf/mateconf-client.h>
-#include <mateconf/mateconf-engine.h>
-
-/* Okay, I'm VERY bold. I deserve to be spanked.
- *
- * But this isn't installed, its only used at build time,
- * so I don't feel too bad. If these disappear from the
- * ABI or their signature changes, the build will break
- * and someone will have to figure out how to fix it.
- * Too bad, whoever you are :/
- */
-void mateconf_shutdown_daemon (GError **err);
-
-#include "mc-default-macros.h"
-
-#define MC_PATTERNS_SHEMA_KEY "/schemas/apps/mini-commander-global/macro_patterns"
-#define MC_COMMANDS_SHEMA_KEY "/schemas/apps/mini-commander-global/macro_commands"
-
-/*
- * Keep these old schemas around in order to keep
- * old configurations from breaking. See bug #91194
- */
-#define MC_DEPRECATED_PATTERNS_SHEMA_KEY "/schemas/apps/mini-commander/prefs/macro_patterns"
-#define MC_DEPRECATED_COMMANDS_SHEMA_KEY "/schemas/apps/mini-commander/prefs/macro_commands"
-
-static void
-install_default_macros_list (MateConfClient *client,
- const char *key,
- int offset)
-{
- MateConfSchema *schema;
- MateConfValue *value;
- GSList *list = NULL;
- GError *error;
- int i;
-
- error = NULL;
- schema = mateconf_client_get_schema (client, key, &error);
- if (error) {
- g_warning (_("Cannot get schema for %s: %s"), key, error->message);
- g_error_free (error);
- return;
- }
-
- /* mateconf has started to return NULL with no error set. */
- g_return_if_fail (schema != NULL);
-
- /* Some sanity checks */
- g_assert (mateconf_schema_get_type (schema) == MATECONF_VALUE_LIST);
- g_assert (mateconf_schema_get_list_type (schema) == MATECONF_VALUE_STRING);
-
- value = mateconf_value_new (MATECONF_VALUE_LIST);
- mateconf_value_set_list_type (value, MATECONF_VALUE_STRING);
-
- for (i = 0; i < G_N_ELEMENTS (mc_default_macros); i++)
- list = g_slist_prepend (list,
- mateconf_value_new_from_string (MATECONF_VALUE_STRING,
- G_STRUCT_MEMBER (char *, &mc_default_macros [i], offset),
- NULL));
- list = g_slist_reverse (list);
-
- mateconf_value_set_list_nocopy (value, list);
- list = NULL;
-
- mateconf_schema_set_default_value_nocopy (schema, value);
- value = NULL;
-
- error = NULL;
- mateconf_client_set_schema (client, key, schema, &error);
- if (error) {
- g_warning (_("Cannot set schema for %s: %s"), key, error->message);
- g_error_free (error);
- }
-
- mateconf_schema_free (schema);
-
- printf (_("Set default list value for %s\n"), key);
-}
-
-int
-main (int argc, char **argv)
-{
- MateConfClient *client;
- MateConfEngine *conf;
- GError *error = NULL;
- const char *config_source;
-
- if (g_getenv ("MATECONF_DISABLE_MAKEFILE_SCHEMA_INSTALL")) {
- fprintf (stderr, _("MATECONF_DISABLE_MAKEFILE_SCHEMA_INSTALL is set, not installing schemas\n"));
- return 0;
- }
-
- g_type_init ();
-
- config_source = g_getenv ("MATECONF_CONFIG_SOURCE");
- if (!config_source) {
- fprintf (stderr, _("Must set the MATECONF_CONFIG_SOURCE environment variable\n"));
- return -1;
- }
-
- if (*config_source == '\0')
- config_source = NULL;
-
- /* shut down daemon, this is a race condition, but will usually work. */
- mateconf_shutdown_daemon (NULL);
-
- if (!config_source)
- conf = mateconf_engine_get_default ();
- else
- conf = mateconf_engine_get_local (config_source, &error);
-
- if (!conf) {
- g_assert (error != NULL);
- fprintf (stderr, _("Failed to access configuration source(s): %s\n"), error->message);
- g_error_free (error);
- return -1;
- }
-
- client = mateconf_client_get_for_engine (conf);
-
- install_default_macros_list (client, MC_PATTERNS_SHEMA_KEY, G_STRUCT_OFFSET (MCDefaultMacro, pattern));
- install_default_macros_list (client, MC_COMMANDS_SHEMA_KEY, G_STRUCT_OFFSET (MCDefaultMacro, command));
-
- install_default_macros_list (client, MC_DEPRECATED_PATTERNS_SHEMA_KEY, G_STRUCT_OFFSET (MCDefaultMacro, pattern));
- install_default_macros_list (client, MC_DEPRECATED_COMMANDS_SHEMA_KEY, G_STRUCT_OFFSET (MCDefaultMacro, command));
-
- mateconf_client_suggest_sync (client, &error);
- if (error) {
- fprintf (stderr, _("Error syncing config data: %s"),
- error->message);
- g_error_free (error);
- return 1;
- }
-
- mateconf_engine_unref (conf);
- g_object_unref (client);
-
- return 0;
-}