first step to remove plibc
[oweals/gnunet.git] / src / util / program.c
index 8a5b1c41473c614b8600e1aef71079c8b6f2b66e..77f4ea3ae2e539fe4d81aec364e8e2b243324246 100644 (file)
@@ -161,12 +161,13 @@ GNUNET_PROGRAM_run2 (int argc,
   unsigned long long skew_variance;
   long long clock_offset;
   struct GNUNET_CONFIGURATION_Handle *cfg;
+  const struct GNUNET_OS_ProjectData *pd = GNUNET_OS_project_data_get ();
   struct GNUNET_GETOPT_CommandLineOption defoptions[] =
     {GNUNET_GETOPT_option_cfgfile (&cc.cfgfile),
      GNUNET_GETOPT_option_help (binaryHelp),
      GNUNET_GETOPT_option_loglevel (&loglev),
      GNUNET_GETOPT_option_logfile (&logfile),
-     GNUNET_GETOPT_option_version (PACKAGE_VERSION " " VCS_VERSION)};
+     GNUNET_GETOPT_option_version (pd->version)};
   struct GNUNET_GETOPT_CommandLineOption *allopts;
   const char *gargs;
   char *lpfx;
@@ -199,14 +200,19 @@ GNUNET_PROGRAM_run2 (int argc,
   cc.cfg = cfg = GNUNET_CONFIGURATION_create ();
   /* prepare */
 #if ENABLE_NLS
-  setlocale (LC_ALL, "");
-  path = GNUNET_OS_installation_get_path (GNUNET_OS_IPK_LOCALEDIR);
-  if (NULL != path)
+  if (NULL != pd->gettext_domain)
   {
-    BINDTEXTDOMAIN ("GNUnet", path);
-    GNUNET_free (path);
+    setlocale (LC_ALL, "");
+    path = (NULL == pd->gettext_path)
+             ? GNUNET_OS_installation_get_path (GNUNET_OS_IPK_LOCALEDIR)
+             : GNUNET_strdup (pd->gettext_path);
+    if (NULL != path)
+    {
+      bindtextdomain (pd->gettext_domain, path);
+      GNUNET_free (path);
+    }
+    textdomain (pd->gettext_domain);
   }
-  textdomain ("GNUnet");
 #endif
   cnt = 0;
   while (NULL != options[cnt].name)
@@ -231,9 +237,9 @@ GNUNET_PROGRAM_run2 (int argc,
                      "%s%s%s",
                      xdg,
                      DIR_SEPARATOR_STR,
-                     GNUNET_OS_project_data_get ()->config_file);
+                     pd->config_file);
   else
-    cfg_fn = GNUNET_strdup (GNUNET_OS_project_data_get ()->user_config_file);
+    cfg_fn = GNUNET_strdup (pd->user_config_file);
   lpfx = GNUNET_strdup (binaryName);
   if (NULL != (spc = strstr (lpfx, " ")))
     *spc = '\0';