bug-hurd
[Top][All Lists]
Advanced

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

[no subject]


From: bddebian
Subject:
Date: Fri, 27 Jun 2003 17:23:07 -0400

Damn webmail client, didn't get the attachment..


Barry deFreese
GNU Hacker wannabe..

--- fwd.c       1999-05-01 18:11:51.000000000 -0700
+++ fwdnew.c    2003-06-27 05:59:25.000000000 -0700
@@ -25,20 +25,59 @@
 #include <error.h>
 #include <stdio.h>
 #include <hurd/fshelp.h>
+#include <argp.h>
+#include <version.h>
+
+const char *argp_program_version = STANDARD_HURD_VERSION (fwd);
+static char doc[] = "fwd -- A translator to start up a central translation 
server";
+static char args_doc[] = "SERVER [TRANS_NAME [TRANS_ARG...]]\n";
+
+static struct argp_option options[] = {
+  {0,0,0,0,0,0}
+};
+
+struct arguments
+{
+  char *server;        /* SERVER arg */
+  char **translator;   /* TRANS and args */
+};  
+
+static error_t
+parse_opt (int key, char *arg, struct argp_state *state)
+{
+  struct arguments *arguments = state->input;
+
+  switch (key)
+    {
+    case ARGP_KEY_NO_ARGS:
+      argp_usage (state);
+      break;
+
+    case ARGP_KEY_ARG:
+      arguments->server = arg;
+      arguments->translator = &state->argv[state->next];
+      state->next = state->argc;
+      break;
+ 
+    default:
+      return ARGP_ERR_UNKNOWN;
+    };
+  return 0;
+}
+
+static struct argp argp = { options, parse_opt, args_doc, doc, 0, 0, 0 };
+
 
 int
 main (int argc, char **argv)
 {
+  struct arguments arguments;
+
+  argp_parse (&argp, argc, argv, 0, 0, &arguments);
+
   error_t err;
   mach_port_t bootstrap;
 
-  if (argc < 2 || *argv[1] == '-')
-    {
-      fprintf (stderr, "Usage: %s SERVER [TRANS_NAME [TRANS_ARG...]]\n",
-              program_invocation_name);
-      return 1;
-    }
-
   task_get_bootstrap_port (mach_task_self (), &bootstrap);
   if (bootstrap == MACH_PORT_NULL)
     error (2, 0, "must be started as a translator");

reply via email to

[Prev in Thread] Current Thread [Next in Thread]