From 07580c01e7a3f6b5b9c4d3a08ef568ed647c7c60 Mon Sep 17 00:00:00 2001 From: Miles Bader Date: Wed, 12 Feb 1997 02:46:48 +0000 Subject: (args_doc): Add an alternative args pattern. (parse_opt): Enforce it. --- libshouldbeinlibc/argp-test.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'libshouldbeinlibc') diff --git a/libshouldbeinlibc/argp-test.c b/libshouldbeinlibc/argp-test.c index 70c7eb58..378aff86 100644 --- a/libshouldbeinlibc/argp-test.c +++ b/libshouldbeinlibc/argp-test.c @@ -52,7 +52,7 @@ the current process)"}, {0} }; -static const char args_doc[] = "STRING..."; +static const char args_doc[] = "STRING...\n-"; static const char doc[] = "Test program for argp."; static error_t @@ -61,9 +61,15 @@ parse_opt (int key, char *arg, struct argp_state *state) switch (key) { case ARGP_KEY_NO_ARGS: - printf ("NO ARGS\n"); break; + printf ("NO ARGS\n"); + break; case ARGP_KEY_ARG: - printf ("ARG: %s\n", arg); break; + if (state->arg_num == 0 && strcmp (arg, "-") == 0 + && state->next < state->argc) + argp_usage (state); + printf ("ARG: %s\n", arg); + break; + case 'p': case 'P': case OPT_PGRP: case 'x': case 'Q': case 'r': case OPT_SESS: { @@ -76,8 +82,9 @@ parse_opt (int key, char *arg, struct argp_state *state) printf ("KEY %s: %s\n", buf, arg); else printf ("KEY %s\n", buf); - break; } + break; + default: return ARGP_ERR_UNKNOWN; } -- cgit v1.2.3