tools/gpgtar: Rework argument parsing.
[gnupg.git] / tools / gpgconf.c
index cb37a25..180c88a 100644 (file)
@@ -151,6 +151,7 @@ main (int argc, char **argv)
   enum cmd_and_opt_values cmd = 0;
   estream_t outfp = NULL;
 
   enum cmd_and_opt_values cmd = 0;
   estream_t outfp = NULL;
 
+  early_system_init ();
   gnupg_reopen_std (GPGCONF_NAME);
   set_strusage (my_strusage);
   log_set_prefix (GPGCONF_NAME, 1);
   gnupg_reopen_std (GPGCONF_NAME);
   set_strusage (my_strusage);
   log_set_prefix (GPGCONF_NAME, 1);
@@ -205,7 +206,7 @@ main (int argc, char **argv)
 
       for (i=0; i < argc; i++)
         if (argv[i][0] == '-' && argv[i][1] == '-')
 
       for (i=0; i < argc; i++)
         if (argv[i][0] == '-' && argv[i][1] == '-')
-          log_info (_("NOTE: '%s' is not considered an option\n"), argv[i]);
+          log_info (_("Note: '%s' is not considered an option\n"), argv[i]);
     }
 
   fname = argc ? *argv : NULL;
     }
 
   fname = argc ? *argv : NULL;
@@ -281,9 +282,17 @@ main (int argc, char **argv)
               exit (1);
             }
           else if (cmd == aLaunch)
               exit (1);
             }
           else if (cmd == aLaunch)
-            gc_component_launch (idx);
+            {
+              if (gc_component_launch (idx))
+                exit (1);
+            }
           else
           else
-            gc_component_kill (idx);
+            {
+              /* We don't error out if the kill failed because this
+                 command should do nothing if the component is not
+                 running.  */
+              gc_component_kill (idx);
+            }
         }
       break;
 
         }
       break;
 
@@ -366,28 +375,10 @@ main (int argc, char **argv)
         }
 
       {
         }
 
       {
-        char *infostr = getenv (GPG_AGENT_INFO_NAME);
-
-        if (!infostr || !*infostr)
-          infostr = make_filename (default_homedir (),
+        char *tmp = make_filename (default_homedir (),
                                    GPG_AGENT_SOCK_NAME, NULL);
                                    GPG_AGENT_SOCK_NAME, NULL);
-        else
-          {
-            char *tmp;
-
-            infostr = xstrdup (infostr);
-            tmp = strchr (infostr, PATHSEP_C);
-            if (!tmp || tmp == infostr)
-              {
-                xfree (infostr);
-                infostr = NULL;
-              }
-            else
-              *tmp = 0;
-          }
-        es_fprintf (outfp, "agent-socket:%s\n",
-                    infostr? gc_percent_escape (infostr) : "");
-        xfree (infostr);
+        es_fprintf (outfp, "agent-socket:%s\n", gc_percent_escape (tmp));
+        xfree (tmp);
       }
       {
         /* We need to use make_filename to expand a possible "~/".  */
       }
       {
         /* We need to use make_filename to expand a possible "~/".  */