[Gnucash-changes] r13138 - gnucash/trunk - Fix some issues when invoking from a non-utf8, non latin1 locale. Use

David Hampton hampton at cvs.gnucash.org
Mon Feb 6 22:59:18 EST 2006


Author: hampton
Date: 2006-02-06 22:59:17 -0500 (Mon, 06 Feb 2006)
New Revision: 13138
Trac: http://svn.gnucash.org/trac/changeset/13138

Modified:
   gnucash/trunk/ChangeLog
   gnucash/trunk/src/bin/gnucash-bin.c
Log:
Fix some issues when invoking from a non-utf8, non latin1 locale.  Use
g_print to print to the console. Convert from popt to g_options for
glib >= 2.6.


Modified: gnucash/trunk/ChangeLog
===================================================================
--- gnucash/trunk/ChangeLog	2006-02-07 01:56:45 UTC (rev 13137)
+++ gnucash/trunk/ChangeLog	2006-02-07 03:59:17 UTC (rev 13138)
@@ -1,5 +1,10 @@
 2006-02-06  David Hampton  <hampton at employees.org>
 
+	* src/bin/gnucash-bin.c: Fix some issues when invoking from a
+	non-utf8, non latin1 locale.  Use g_print to print to the
+	console. Convert from popt to g_options for glib >= 2.6.  Fixes
+	#328991.
+
 	* src/register/register-gnome/gnucash-item-edit.c:
 	* src/register/register-gnome/gnucash-grid.c: Scott Oonk' patch to
 	fix a couple of problems with right justified cells in the

Modified: gnucash/trunk/src/bin/gnucash-bin.c
===================================================================
--- gnucash/trunk/src/bin/gnucash-bin.c	2006-02-07 01:56:45 UTC (rev 13137)
+++ gnucash/trunk/src/bin/gnucash-bin.c	2006-02-07 03:59:17 UTC (rev 13138)
@@ -42,6 +42,7 @@
 #include "top-level.h"
 #include "gfec.h"
 #include "gnc-main.h"
+#include "gnc-main-window.h"
 #include "gnc-splash.h"
 #include "gnc-gnome-utils.h"
 #include "gnc-plugin-file-history.h"
@@ -67,12 +68,12 @@
 {
     if (!is_development_version) return;
 
-    printf("\n\n%s%s%s%s%s\n%s%s\n\n",
-           _("This is a development version. It may or may not work.\n"),
-           _("Report bugs and other problems to gnucash-devel at gnucash.org.\n"),
-           _("You can also lookup and file bug reports at http://bugzilla.gnome.org\n"),
-           _("The last stable version was "), "GnuCash 1.8.12",
-           _("The next stable version will be "), "GnuCash 2.0");
+    g_print("\n\n%s%s%s%s%s\n%s%s\n\n",
+	    _("This is a development version. It may or may not work.\n"),
+	    _("Report bugs and other problems to gnucash-devel at gnucash.org.\n"),
+	    _("You can also lookup and file bug reports at http://bugzilla.gnome.org\n"),
+	    _("The last stable version was "), "GnuCash 1.8.12",
+	    _("The next stable version will be "), "GnuCash 2.0");
 }
 
 /* Priority of paths: The default is set at build time.  It may be
@@ -204,12 +205,12 @@
 static void 
 gnucash_command_line(int argc, char **argv)
 {
-    poptContext pc;
     char *p;
-    int rc;
     int debugging = 0;
     char *namespace_regexp = NULL;
-
+#ifndef HAVE_GLIB26
+    poptContext pc;
+    int rc;
     struct poptOption options[] = {
         POPT_AUTOHELP
         {"version", 'v', POPT_ARG_NONE, &gnucash_show_version, 1, 
@@ -256,19 +257,75 @@
     while ((rc = poptGetNextOpt(pc)) > 0);
     file_to_load = poptGetArg(pc);
     poptFreeContext(pc);
+#else
+    GError *error = NULL;
+    GOptionContext *context;
+    GOptionEntry options[] = {
+        {"version", 'v', 0, G_OPTION_ARG_NONE, &gnucash_show_version,
+         _("Show GnuCash version"), NULL},
+        {"debug", '\0', 0, G_OPTION_ARG_NONE, &debugging,
+         _("Enable debugging mode"), NULL},
+        {"loglevel", '\0', 0, G_OPTION_ARG_INT, &loglevel,
+	 /* Translators: This is the command line option autohelp
+	    text; see popt(3) */
+         _("Set the logging level from 0 (least) to 6 (most)"), 
+	 /* Translators: Argument description for autohelp; see
+	    http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html */
+         _("LOGLEVEL")},
+        {"nofile", '\0', 0, G_OPTION_ARG_NONE, &nofile,
+         _("Do not load the last file opened"), NULL},
+        {"config-path", '\0', 0, G_OPTION_ARG_STRING, &config_path,
+         _("Set configuration path"),
+	 /* Translators: Argument description for autohelp; see
+	    http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html */
+	 _("CONFIGPATH")},
+        {"share-path", '\0', 0, G_OPTION_ARG_STRING, &share_path,
+         _("Set shared data file search path"),
+	 /* Translators: Argument description for autohelp; see
+	    http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html */
+	 _("SHAREPATH")},
+        {"doc-path", '\0', 0, G_OPTION_ARG_STRING, &help_path,
+         _("Set the search path for documentation files"),
+	 /* Translators: Argument description for autohelp; see
+	    http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html */
+	 _("DOCPATH")},
+        {"add-price-quotes", '\0', 0, G_OPTION_ARG_STRING, &add_quotes_file,
+         _("Add price quotes to given GnuCash datafile"),
+	 /* Translators: Argument description for autohelp; see
+	    http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html */
+	 _("FILE")},
+        {"namespace", '\0', 0, G_OPTION_ARG_STRING, &namespace_regexp,
+         _("Regular expression determining which namespace commodities will be retrieved"), 
+	 /* Translators: Argument description for autohelp; see
+	    http://developer.gnome.org/doc/API/2.0/glib/glib-Commandline-option-parser.html */
+         _("REGEXP")},
+    };
+    
+    /* Pretend that argv[0] is "gnucash" */
+    if ((p = strstr(argv[0], "-bin"))) *p = '\0';
 
+    context = g_option_context_new (" [datafile]");
+    g_option_context_add_main_entries (context, options, GETTEXT_PACKAGE);
+    g_option_context_add_group (context, gtk_get_option_group (TRUE));
+    g_option_context_parse (context, &argc, &argv, &error);
+    g_option_context_free (context);
+
+    if (argc > 0)
+      file_to_load = argv[1];
+#endif
+
     if (gnucash_show_version) {
         if (is_development_version)
 	  /* Translators: %s is the version number */
-	  printf(_("GnuCash %s development version"), VERSION);
+	  g_print(_("GnuCash %s development version"), VERSION);
 	else
 	  /* Translators: %s is the version number */
-	  printf(_("GnuCash %s"), VERSION);
-	printf("\n");
+	  g_print(_("GnuCash %s"), VERSION);
+	g_print("\n");
 	/* Translators: 1st %s is the build date; 2nd %s is the SVN
 	   revision number */
-        printf(_("Built %s from r%s"), GNUCASH_BUILD_DATE, GNUCASH_SVN_REV);
-	printf("\n");
+        g_print(_("Built %s from r%s"), GNUCASH_BUILD_DATE, GNUCASH_SVN_REV);
+	g_print("\n");
         exit(0);
     }
 



More information about the gnucash-changes mailing list