[monkey-bubble: 254/753] kill BonoboObjectClietn. (gnome_program_get_config_database): split out



commit c48240e6cde48b04357d5422bb1d6f7c91b45d0d
Author: Michael Meeks <michael ximian com>
Date:   Wed May 2 21:15:47 2001 +0000

    kill BonoboObjectClietn. (gnome_program_get_config_database): split out
    
    2001-05-02  Michael Meeks  <michael ximian com>
    
    	* libgnome-init.c (libbonobo_class_init): kill BonoboObjectClietn.
    	(gnome_program_get_config_database): split out (get_db): into here
    	never cut and paste code.
    	(gnome_program_get_config_database),
    	(gnome_program_get_desktop_config_database): upd.
    	re-order to remove redundant prototypes.

 libgnome/ChangeLog    |    9 +
 libgnome/gnome-init.c |  559 ++++++++++++++++++++++++-------------------------
 2 files changed, 284 insertions(+), 284 deletions(-)
---
diff --git a/libgnome/ChangeLog b/libgnome/ChangeLog
index bd3c616..ea79cd0 100644
--- a/libgnome/ChangeLog
+++ b/libgnome/ChangeLog
@@ -1,3 +1,12 @@
+2001-05-02  Michael Meeks  <michael ximian com>
+
+	* libgnome-init.c (libbonobo_class_init): kill BonoboObjectClietn.
+	(gnome_program_get_config_database): split out (get_db): into here
+	never cut and paste code.
+	(gnome_program_get_config_database),
+	(gnome_program_get_desktop_config_database): upd.
+	re-order to remove redundant prototypes.
+
 2001-05-01  Michael Meeks  <michael ximian com>
 
 	* Makefile.am: fixup corba dependencies more genericaly, add
diff --git a/libgnome/gnome-init.c b/libgnome/gnome-init.c
index 01d4377..54cf22e 100644
--- a/libgnome/gnome-init.c
+++ b/libgnome/gnome-init.c
@@ -56,28 +56,28 @@
 static void
 gnome_oaf_pre_args_parse (GnomeProgram *program, GnomeModuleInfo *mod_info)
 {
-    g_thread_init (NULL);
+	g_thread_init (NULL);
 
-    oaf_preinit (program, mod_info);
+	oaf_preinit (program, mod_info);
 }
 
 static void
 gnome_oaf_post_args_parse (GnomeProgram *program, GnomeModuleInfo *mod_info)
 {
-    int dumb_argc = 1;
-    char *dumb_argv[] = {NULL};
+	int dumb_argc = 1;
+	char *dumb_argv[] = {NULL};
 
-    oaf_postinit (program, mod_info);
+	oaf_postinit (program, mod_info);
 
-    dumb_argv[0] = program_invocation_name;
-    (void) oaf_orb_init (&dumb_argc, dumb_argv);
+	dumb_argv[0] = program_invocation_name;
+	(void) oaf_orb_init (&dumb_argc, dumb_argv);
 }
 
 GnomeModuleInfo gnome_oaf_module_info = {
-    "gnome-oaf", VERSION, N_("GNOME OAF Support"),
-    NULL, NULL,
-    gnome_oaf_pre_args_parse, gnome_oaf_post_args_parse,
-    oaf_popt_options
+	"gnome-oaf", VERSION, N_("GNOME OAF Support"),
+	NULL, NULL,
+	gnome_oaf_pre_args_parse, gnome_oaf_post_args_parse,
+	oaf_popt_options
 };
 
 /*****************************************************************************
@@ -85,370 +85,361 @@ GnomeModuleInfo gnome_oaf_module_info = {
  *****************************************************************************/
 
 typedef struct {
-    guint desktop_config_database_id;
-    guint desktop_config_moniker_id;
-    guint config_database_id;
-    guint config_moniker_id;
+	guint desktop_config_database_id;
+	guint desktop_config_moniker_id;
+	guint config_database_id;
+	guint config_moniker_id;
 } GnomeProgramClass_libbonobo;
 
 typedef struct {
-    gboolean constructed;
+	gboolean constructed;
 
-    gchar *config_moniker;
-    BonoboObjectClient *config_database;
+	gchar *config_moniker;
+	Bonobo_ConfigDatabase config_database;
 
-    gchar *desktop_config_moniker;
-    BonoboObjectClient *desktop_config_database;
+	gchar *desktop_config_moniker;
+	Bonobo_ConfigDatabase desktop_config_database;
 } GnomeProgramPrivate_libbonobo;
 
 static GQuark quark_gnome_program_private_libbonobo = 0;
 static GQuark quark_gnome_program_class_libbonobo = 0;
 
+static Bonobo_ConfigDatabase
+get_db (GnomeProgram *program, const char *key, CORBA_Environment *opt_ev)
+{
+	GValue value = { 0, };
+	Bonobo_ConfigDatabase database;
+
+	g_return_val_if_fail (program != NULL, CORBA_OBJECT_NIL);
+	g_return_val_if_fail (GNOME_IS_PROGRAM (program), CORBA_OBJECT_NIL);
+
+	g_value_init (&value, G_TYPE_POINTER);
+	g_object_get_property (G_OBJECT (program), key, &value);
+	database = (Bonobo_ConfigDatabase) g_value_get_pointer (&value);
+	g_value_unset (&value);
+
+	return bonobo_object_dup_ref (database, opt_ev);
+}
+
 Bonobo_ConfigDatabase
 gnome_program_get_config_database (GnomeProgram *program)
 {
-    GValue value = { 0, };
-    Bonobo_ConfigDatabase corba_retval = CORBA_OBJECT_NIL;
-    BonoboObjectClient *object_client;
-
-    g_return_val_if_fail (program != NULL, CORBA_OBJECT_NIL);
-    g_return_val_if_fail (GNOME_IS_PROGRAM (program), CORBA_OBJECT_NIL);
-
-    g_value_init (&value, BONOBO_OBJECT_CLIENT_TYPE);
-    g_object_get_property (G_OBJECT (program), GNOME_PARAM_CONFIG_DATABASE, &value);
-    object_client = (BonoboObjectClient *) g_value_get_object (&value);
-    if (object_client)
-	corba_retval = bonobo_object_dup_ref
-	    (bonobo_object_corba_objref (BONOBO_OBJECT (object_client)), NULL);
-    g_value_unset (&value);
-
-    return corba_retval;
+	return get_db (program, GNOME_PARAM_CONFIG_DATABASE, NULL);
 }
 
 Bonobo_ConfigDatabase
 gnome_program_get_desktop_config_database (GnomeProgram *program)
 {
-    GValue value = { 0, };
-    Bonobo_ConfigDatabase corba_retval = CORBA_OBJECT_NIL;
-    BonoboObjectClient *object_client;
-
-    g_return_val_if_fail (program != NULL, CORBA_OBJECT_NIL);
-    g_return_val_if_fail (GNOME_IS_PROGRAM (program), CORBA_OBJECT_NIL);
-
-    g_value_init (&value, BONOBO_OBJECT_CLIENT_TYPE);
-    g_object_get_property (G_OBJECT (program), GNOME_PARAM_DESKTOP_CONFIG_DATABASE, &value);
-    object_client = (BonoboObjectClient *) g_value_get_object (&value);
-    if (object_client)
-	corba_retval = bonobo_object_dup_ref
-	    (bonobo_object_corba_objref (BONOBO_OBJECT (object_client)), NULL);
-    g_value_unset (&value);
-
-    return corba_retval;
+	return get_db (program, GNOME_PARAM_DESKTOP_CONFIG_DATABASE, NULL);
 }
 
 static void
 libbonobo_get_property (GObject *object, guint param_id, GValue *value,
 			GParamSpec *pspec)
 {
-    GnomeProgramClass_libbonobo *cdata;
-    GnomeProgramPrivate_libbonobo *priv;
-    GnomeProgram *program;
-
-    g_return_if_fail (object != NULL);
-    g_return_if_fail (GNOME_IS_PROGRAM (object));
-
-    program = GNOME_PROGRAM (object);
-
-    cdata = g_type_get_qdata (G_OBJECT_TYPE (program), quark_gnome_program_class_libbonobo);
-    priv = g_object_get_qdata (G_OBJECT (program), quark_gnome_program_private_libbonobo);
-
-    if (param_id == cdata->config_database_id)
-	g_value_set_object (value, (GObject *) priv->config_database);
-    else if (param_id == cdata->config_moniker_id)
-	g_value_set_string (value, priv->config_moniker);
-    else if (param_id == cdata->desktop_config_database_id)
-	g_value_set_object (value, (GObject *) priv->desktop_config_database);
-    else if (param_id == cdata->desktop_config_moniker_id)
-	g_value_set_string (value, priv->desktop_config_moniker);
-    else
-	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+	GnomeProgramClass_libbonobo *cdata;
+	GnomeProgramPrivate_libbonobo *priv;
+	GnomeProgram *program;
+
+	g_return_if_fail (object != NULL);
+	g_return_if_fail (GNOME_IS_PROGRAM (object));
+
+	program = GNOME_PROGRAM (object);
+
+	cdata = g_type_get_qdata (G_OBJECT_TYPE (program), quark_gnome_program_class_libbonobo);
+	priv = g_object_get_qdata (G_OBJECT (program), quark_gnome_program_private_libbonobo);
+
+	if (param_id == cdata->config_database_id)
+		g_value_set_object (value, (GObject *) priv->config_database);
+
+	else if (param_id == cdata->config_moniker_id)
+		g_value_set_string (value, priv->config_moniker);
+
+	else if (param_id == cdata->desktop_config_database_id)
+		g_value_set_object (value, (GObject *) priv->desktop_config_database);
+
+	else if (param_id == cdata->desktop_config_moniker_id)
+		g_value_set_string (value, priv->desktop_config_moniker);
+
+	else
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
 }
 
 static void
 libbonobo_set_property (GObject *object, guint param_id,
 			const GValue *value, GParamSpec *pspec)
 {
-    GnomeProgramClass_libbonobo *cdata;
-    GnomeProgramPrivate_libbonobo *priv;
-    GnomeProgram *program;
-
-    g_return_if_fail (object != NULL);
-    g_return_if_fail (GNOME_IS_PROGRAM (object));
-
-    program = GNOME_PROGRAM (object);
-
-    cdata = g_type_get_qdata (G_OBJECT_TYPE (program), quark_gnome_program_class_libbonobo);
-    priv = g_object_get_qdata (G_OBJECT (program), quark_gnome_program_private_libbonobo);
-
-    if (!priv->constructed) {
-	if (param_id == cdata->config_database_id) {
-	    priv->config_database = (BonoboObjectClient *) g_value_get_object (value);
-	    if (priv->config_database)
-		bonobo_object_client_ref (priv->config_database, NULL);
-	} else if (param_id == cdata->config_moniker_id)
-	    priv->config_moniker = g_value_dup_string (value);
-	else if (param_id == cdata->desktop_config_database_id) {
-	    priv->desktop_config_database = (BonoboObjectClient *) g_value_get_object (value);
-	    if (priv->desktop_config_database)
-		bonobo_object_client_ref (priv->desktop_config_database, NULL);
-	} else if (param_id == cdata->desktop_config_moniker_id)
-	    priv->desktop_config_moniker = g_value_dup_string (value);
-	else
-	    G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
-    } else {
-	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
-    }
+	GnomeProgramClass_libbonobo *cdata;
+	GnomeProgramPrivate_libbonobo *priv;
+	GnomeProgram *program;
+
+	g_return_if_fail (object != NULL);
+	g_return_if_fail (GNOME_IS_PROGRAM (object));
+
+	program = GNOME_PROGRAM (object);
+
+	cdata = g_type_get_qdata (G_OBJECT_TYPE (program), quark_gnome_program_class_libbonobo);
+	priv = g_object_get_qdata (G_OBJECT (program), quark_gnome_program_private_libbonobo);
+
+	if (!priv->constructed) {
+		if (param_id == cdata->config_database_id) {
+			bonobo_object_release_unref (priv->config_database, NULL);
+			priv->config_database =
+				bonobo_object_dup_ref (g_value_get_pointer (value), NULL);
+
+		} else if (param_id == cdata->config_moniker_id)
+			priv->config_moniker = g_value_dup_string (value);
+	
+		else if (param_id == cdata->desktop_config_database_id) {
+			bonobo_object_release_unref (priv->desktop_config_database, NULL);
+			priv->desktop_config_database =
+				bonobo_object_dup_ref (g_value_get_pointer (value), NULL);
+
+		} else if (param_id == cdata->desktop_config_moniker_id)
+			priv->desktop_config_moniker = g_value_dup_string (value);
+
+		else
+			G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+	} else
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
 }
 
 static void
 libbonobo_init_pass (const GnomeModuleInfo *mod_info)
 {
-    if (!quark_gnome_program_private_libbonobo)
-	quark_gnome_program_private_libbonobo = g_quark_from_static_string
-	    ("gnome-program-private:libbonobo");
+	if (!quark_gnome_program_private_libbonobo)
+		quark_gnome_program_private_libbonobo = g_quark_from_static_string
+			("gnome-program-private:libbonobo");
 
-    if (!quark_gnome_program_class_libbonobo)
-	quark_gnome_program_class_libbonobo = g_quark_from_static_string
-	    ("gnome-program-class:libbonobo");
+	if (!quark_gnome_program_class_libbonobo)
+		quark_gnome_program_class_libbonobo = g_quark_from_static_string
+			("gnome-program-class:libbonobo");
 }
 
 static void
 libbonobo_class_init (GnomeProgramClass *klass, const GnomeModuleInfo *mod_info)
 {
-    GnomeProgramClass_libbonobo *cdata = g_new0 (GnomeProgramClass_libbonobo, 1);
-
-    g_type_set_qdata (G_OBJECT_CLASS_TYPE (klass), quark_gnome_program_class_libbonobo, cdata);
-
-    cdata->config_moniker_id = gnome_program_install_property
-	(klass, libbonobo_get_property, libbonobo_set_property,
-	 g_param_spec_string (GNOME_PARAM_CONFIG_MONIKER, NULL, NULL,
-			      NULL,
-			      (G_PARAM_READABLE | G_PARAM_WRITABLE |
-			       G_PARAM_CONSTRUCT_ONLY)));
-
-    cdata->config_database_id = gnome_program_install_property
-	(klass, libbonobo_get_property, libbonobo_set_property,
-	 g_param_spec_object (GNOME_PARAM_CONFIG_DATABASE, NULL, NULL,
-			      BONOBO_OBJECT_CLIENT_TYPE,
-			      (G_PARAM_READABLE | G_PARAM_WRITABLE |
-			       G_PARAM_CONSTRUCT_ONLY)));
-
-    cdata->desktop_config_moniker_id = gnome_program_install_property
-	(klass, libbonobo_get_property, libbonobo_set_property,
-	 g_param_spec_string (GNOME_PARAM_DESKTOP_CONFIG_MONIKER, NULL, NULL,
-			      NULL,
-			      (G_PARAM_READABLE | G_PARAM_WRITABLE |
-			       G_PARAM_CONSTRUCT_ONLY)));
-
-    cdata->desktop_config_database_id = gnome_program_install_property
-	(klass, libbonobo_get_property, libbonobo_set_property,
-	 g_param_spec_object (GNOME_PARAM_DESKTOP_CONFIG_DATABASE, NULL, NULL,
-			      BONOBO_OBJECT_CLIENT_TYPE,
-			      (G_PARAM_READABLE | G_PARAM_WRITABLE |
-			       G_PARAM_CONSTRUCT_ONLY)));
+	GnomeProgramClass_libbonobo *cdata = g_new0 (GnomeProgramClass_libbonobo, 1);
+
+	g_type_set_qdata (G_OBJECT_CLASS_TYPE (klass), quark_gnome_program_class_libbonobo, cdata);
+
+	cdata->config_moniker_id = gnome_program_install_property
+		(klass, libbonobo_get_property, libbonobo_set_property,
+		 g_param_spec_string (GNOME_PARAM_CONFIG_MONIKER, NULL, NULL,
+				      NULL,
+				      (G_PARAM_READABLE | G_PARAM_WRITABLE |
+				       G_PARAM_CONSTRUCT_ONLY)));
+
+	cdata->config_database_id = gnome_program_install_property
+		(klass, libbonobo_get_property, libbonobo_set_property,
+		 g_param_spec_object (GNOME_PARAM_CONFIG_DATABASE, NULL, NULL,
+				      G_TYPE_POINTER,
+				      (G_PARAM_READABLE | G_PARAM_WRITABLE |
+				       G_PARAM_CONSTRUCT_ONLY)));
+
+	cdata->desktop_config_moniker_id = gnome_program_install_property
+		(klass, libbonobo_get_property, libbonobo_set_property,
+		 g_param_spec_string (GNOME_PARAM_DESKTOP_CONFIG_MONIKER, NULL, NULL,
+				      NULL,
+				      (G_PARAM_READABLE | G_PARAM_WRITABLE |
+				       G_PARAM_CONSTRUCT_ONLY)));
+
+	cdata->desktop_config_database_id = gnome_program_install_property
+		(klass, libbonobo_get_property, libbonobo_set_property,
+		 g_param_spec_object (GNOME_PARAM_DESKTOP_CONFIG_DATABASE, NULL, NULL,
+				      G_TYPE_POINTER,
+				      (G_PARAM_READABLE | G_PARAM_WRITABLE |
+				       G_PARAM_CONSTRUCT_ONLY)));
 }
 
 static void
 libbonobo_instance_init (GnomeProgram *program, GnomeModuleInfo *mod_info)
 {
-    GnomeProgramPrivate_libbonobo *priv = g_new0 (GnomeProgramPrivate_libbonobo, 1);
+	GnomeProgramPrivate_libbonobo *priv = g_new0 (GnomeProgramPrivate_libbonobo, 1);
 
-    g_object_set_qdata (G_OBJECT (program), quark_gnome_program_private_libbonobo, priv);
+	g_object_set_qdata (G_OBJECT (program), quark_gnome_program_private_libbonobo, priv);
+
+	priv->config_database = CORBA_OBJECT_NIL;
+	priv->desktop_config_database = CORBA_OBJECT_NIL;
 }
 
 static void
 libbonobo_post_args_parse (GnomeProgram *program, GnomeModuleInfo *mod_info)
 {
-    int dumb_argc = 1;
-    char *dumb_argv[] = {NULL};
-    GnomeProgramPrivate_libbonobo *priv = g_new0 (GnomeProgramPrivate_libbonobo, 1);
-    CORBA_Environment ev;
+	int dumb_argc = 1;
+	char *dumb_argv[] = {NULL};
+	GnomeProgramPrivate_libbonobo *priv = g_new0 (GnomeProgramPrivate_libbonobo, 1);
+	CORBA_Environment ev;
 
-    g_message (G_STRLOC);
+	g_message (G_STRLOC);
 
-    dumb_argv [0] = program_invocation_name;
+	dumb_argv [0] = program_invocation_name;
 
-    bonobo_init (&dumb_argc, dumb_argv);
+	bonobo_init (&dumb_argc, dumb_argv);
 
-    priv = g_object_get_qdata (G_OBJECT (program), quark_gnome_program_private_libbonobo);
+	priv = g_object_get_qdata (G_OBJECT (program), quark_gnome_program_private_libbonobo);
 
-    priv->constructed = TRUE;
+	priv->constructed = TRUE;
 
-    g_message (G_STRLOC ": %p - `%s'", priv->config_database, priv->config_moniker);
+	g_message (G_STRLOC ": %p - `%s'", priv->config_database, priv->config_moniker);
 
-    CORBA_exception_init (&ev);
-    bonobo_get_object (priv->config_moniker, "Bonobo/ConfigDatabase", &ev);
-    CORBA_exception_free (&ev);
+	CORBA_exception_init (&ev);
+	bonobo_get_object (priv->config_moniker, "Bonobo/ConfigDatabase", &ev);
+	CORBA_exception_free (&ev);
 }
 
-static GnomeModuleRequirement libbonobo_requirements[] = {
-    {VERSION, &gnome_oaf_module_info},
-    {NULL}
+static GnomeModuleRequirement libbonobo_requirements [] = {
+	{ VERSION, &gnome_oaf_module_info },
+	{ NULL }
 };
 
 GnomeModuleInfo libbonobo_module_info = {
-    "libbonobo", VERSION, N_("Bonobo Support"),
-    libbonobo_requirements, libbonobo_instance_init,
-    NULL, libbonobo_post_args_parse,
-    NULL,
-    libbonobo_init_pass, libbonobo_class_init,
-    NULL, NULL
+	"libbonobo", VERSION, N_("Bonobo Support"),
+	libbonobo_requirements, libbonobo_instance_init,
+	NULL, libbonobo_post_args_parse,
+	NULL,
+	libbonobo_init_pass, libbonobo_class_init,
+	NULL, NULL
 };
 
 /*****************************************************************************
  * libgnome
  *****************************************************************************/
 
-char *gnome_user_dir = NULL, *gnome_user_private_dir = NULL, *gnome_user_accels_dir = NULL;
-
-static void libgnome_post_args_parse(GnomeProgram *app, GnomeModuleInfo *mod_info);
-static void libgnome_option_cb(poptContext ctx, enum poptCallbackReason reason,
-			       const struct poptOption *opt, const char *arg,
-			       void *data);
-static void libgnome_userdir_setup(gboolean create_dirs);
-
-enum { ARG_VERSION=1 };
-
-static struct poptOption gnomelib_options[] = {
-    { NULL, '\0', POPT_ARG_INTL_DOMAIN, PACKAGE, 0, NULL, NULL},
-
-    { NULL, '\0', POPT_ARG_CALLBACK, (void *) libgnome_option_cb, 0, NULL, NULL},
-
-    {"version", '\0', POPT_ARG_NONE, NULL, },
+enum { ARG_VERSION = 1 };
 
-    { NULL, '\0', 0, NULL, 0 }
-};
-
-GnomeModuleInfo gnome_vfs_module_info = {
-    "gnome-vfs", GNOMEVFSVERSION, "GNOME Virtual Filesystem",
-    NULL, NULL,
-    (GnomeModuleHook) gnome_vfs_preinit, (GnomeModuleHook) gnome_vfs_postinit,
-    NULL,
-    (GnomeModuleInitHook) gnome_vfs_loadinit,
-    NULL
-};
-
-static GnomeModuleRequirement libgnome_requirements[] = {
-    {VERSION, &libbonobo_module_info},
-    {VERSION, &libbonobo_module_info},
-    {"0.3.0", &gnome_vfs_module_info},
-    {NULL}
-};
-
-GnomeModuleInfo libgnome_module_info = {
-    "libgnome", VERSION, "GNOME Library",
-    libgnome_requirements, NULL,
-    NULL, libgnome_post_args_parse,
-    gnomelib_options,
-    NULL, NULL, NULL, NULL
-};
-
-static void
-libgnome_post_args_parse (GnomeProgram *program,
-			  GnomeModuleInfo *mod_info)
-{
-    GValue value = { 0, };
-    gboolean create_dirs_val;
-
-    g_value_init (&value, G_TYPE_BOOLEAN);
-    g_object_get_property (G_OBJECT (program), "create-directories", &value);
-    create_dirs_val = g_value_get_boolean (&value);
-    g_value_unset (&value);
-
-    gnome_triggers_init ();
-
-    libgnome_userdir_setup (create_dirs_val);
-
-    setlocale (LC_ALL, "");
-    /* XXX todo - handle multiple installation dirs */
-    bindtextdomain (PACKAGE, LIBGNOME_LOCALEDIR);
-    gnome_i18n_init ();
-}
+char *gnome_user_dir = NULL, *gnome_user_private_dir = NULL, *gnome_user_accels_dir = NULL;
 
 static void
 libgnome_option_cb (poptContext ctx, enum poptCallbackReason reason,
 		    const struct poptOption *opt, const char *arg,
 		    void *data)
 {
-    GnomeProgram *program;
+	GnomeProgram *program;
 
-    program = gnome_program_get ();
+	program = gnome_program_get ();
 	
-    switch(reason) {
-    case POPT_CALLBACK_REASON_OPTION:
-	switch(opt->val) {
-	case ARG_VERSION:
-	    g_print ("Gnome %s %s\n",
-		     gnome_program_get_name (program),
-		     gnome_program_get_version (program));
-	    exit(0);
-	    break;
+	switch(reason) {
+	case POPT_CALLBACK_REASON_OPTION:
+		switch(opt->val) {
+		case ARG_VERSION:
+			g_print ("Gnome %s %s\n",
+				 gnome_program_get_name (program),
+				 gnome_program_get_version (program));
+			exit(0);
+			break;
+		}
+	default:
+		/* do nothing */
+		break;
 	}
-    default:
-	/* do nothing */
-	break;
-    }
 }
 
 static void
 libgnome_userdir_setup (gboolean create_dirs)
 {
-    if(!gnome_user_dir) {
-	gnome_user_dir = g_concat_dir_and_file (g_get_home_dir(), ".gnome");
-	gnome_user_private_dir = g_concat_dir_and_file (g_get_home_dir(),
-							".gnome_private");
-	gnome_user_accels_dir = g_concat_dir_and_file (gnome_user_dir, "accels");
-    }
-
-    if (!create_dirs)
-	return;
+	if(!gnome_user_dir) {
+		gnome_user_dir = g_concat_dir_and_file (g_get_home_dir(), ".gnome");
+		gnome_user_private_dir = g_concat_dir_and_file (g_get_home_dir(),
+								".gnome_private");
+		gnome_user_accels_dir = g_concat_dir_and_file (gnome_user_dir, "accels");
+	}
+
+	if (!create_dirs)
+		return;
 	
-    if (mkdir (gnome_user_dir, 0700) < 0) { /* private permissions, but we
-					       don't check that we got them */
-	if (errno != EEXIST) {
-	    fprintf(stderr, _("Could not create per-user gnome configuration directory `%s': %s\n"),
-		    gnome_user_dir, strerror(errno));
-	    exit(1);
+	if (mkdir (gnome_user_dir, 0700) < 0) { /* private permissions, but we
+						   don't check that we got them */
+		if (errno != EEXIST) {
+			fprintf(stderr, _("Could not create per-user gnome configuration directory `%s': %s\n"),
+				gnome_user_dir, strerror(errno));
+			exit(1);
+		}
 	}
-    }
     
-    if (mkdir (gnome_user_private_dir, 0700) < 0) { /* This is private
-						       per-user info mode
-						       700 will be
-						       enforced!  maybe
-						       even other security
-						       meassures will be
-						       taken */
-	if (errno != EEXIST) {
-	    fprintf (stderr, _("Could not create per-user gnome configuration directory `%s': %s\n"),
-		     gnome_user_private_dir, strerror(errno));
-	    exit(1);
+	if (mkdir (gnome_user_private_dir, 0700) < 0) { /* This is private
+							   per-user info mode
+							   700 will be
+							   enforced!  maybe
+							   even other security
+							   meassures will be
+							   taken */
+		if (errno != EEXIST) {
+			fprintf (stderr, _("Could not create per-user gnome configuration directory `%s': %s\n"),
+				 gnome_user_private_dir, strerror(errno));
+			exit(1);
+		}
 	}
-    }
 
 
-    /* change mode to 0700 on the private directory */
-    if (chmod (gnome_user_private_dir, 0700) < 0) {
-	fprintf(stderr, _("Could not set mode 0700 on private per-user gnome configuration directory `%s': %s\n"),
-		gnome_user_private_dir, strerror(errno));
-	exit(1);
-    }
+	/* change mode to 0700 on the private directory */
+	if (chmod (gnome_user_private_dir, 0700) < 0) {
+		fprintf(stderr, _("Could not set mode 0700 on private per-user gnome configuration directory `%s': %s\n"),
+			gnome_user_private_dir, strerror(errno));
+		exit(1);
+	}
   
-    if (mkdir (gnome_user_accels_dir, 0700) < 0) {
-	if (errno != EEXIST) {
-	    fprintf(stderr, _("Could not create gnome accelerators directory `%s': %s\n"),
-		    gnome_user_accels_dir, strerror(errno));
-	    exit(1);
+	if (mkdir (gnome_user_accels_dir, 0700) < 0) {
+		if (errno != EEXIST) {
+			fprintf(stderr, _("Could not create gnome accelerators directory `%s': %s\n"),
+				gnome_user_accels_dir, strerror(errno));
+			exit(1);
+		}
 	}
-    }
 }
+
+static void
+libgnome_post_args_parse (GnomeProgram *program,
+			  GnomeModuleInfo *mod_info)
+{
+	GValue value = { 0, };
+	gboolean create_dirs_val;
+
+	g_value_init (&value, G_TYPE_BOOLEAN);
+	g_object_get_property (G_OBJECT (program), "create-directories", &value);
+	create_dirs_val = g_value_get_boolean (&value);
+	g_value_unset (&value);
+
+	gnome_triggers_init ();
+
+	libgnome_userdir_setup (create_dirs_val);
+
+	setlocale (LC_ALL, "");
+	/* XXX todo - handle multiple installation dirs */
+	bindtextdomain (PACKAGE, LIBGNOME_LOCALEDIR);
+	gnome_i18n_init ();
+}
+
+static struct poptOption gnomelib_options [] = {
+	{ NULL, '\0', POPT_ARG_INTL_DOMAIN, PACKAGE, 0, NULL, NULL},
+
+	{ NULL, '\0', POPT_ARG_CALLBACK, (void *) libgnome_option_cb, 0, NULL, NULL},
+
+	{"version", '\0', POPT_ARG_NONE, NULL, },
+
+	{ NULL, '\0', 0, NULL, 0 }
+};
+
+GnomeModuleInfo gnome_vfs_module_info = {
+	"gnome-vfs", GNOMEVFSVERSION, "GNOME Virtual Filesystem",
+	NULL, NULL,
+	(GnomeModuleHook) gnome_vfs_preinit, (GnomeModuleHook) gnome_vfs_postinit,
+	NULL,
+	(GnomeModuleInitHook) gnome_vfs_loadinit,
+	NULL
+};
+
+static GnomeModuleRequirement libgnome_requirements [] = {
+	{ VERSION, &libbonobo_module_info },
+	{ VERSION, &libbonobo_module_info },
+	{ "0.3.0", &gnome_vfs_module_info },
+	{ NULL }
+};
+
+GnomeModuleInfo libgnome_module_info = {
+	"libgnome", VERSION, "GNOME Library",
+	libgnome_requirements, NULL,
+	NULL, libgnome_post_args_parse,
+	gnomelib_options,
+	NULL, NULL, NULL, NULL
+};



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]