Module Name:src
Committed By: christos
Date: Sun Jul 12 11:40:52 UTC 2015
Modified Files:
src/usr.bin/gettext: gettext.c
Log Message:
From William Orr:
- add long options
- print usage on invalid command line args
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/usr.bin/gettext/gettext.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/gettext/gettext.c
diff -u src/usr.bin/gettext/gettext.c:1.2 src/usr.bin/gettext/gettext.c:1.3
--- src/usr.bin/gettext/gettext.c:1.2 Wed Jun 3 19:15:22 2015
+++ src/usr.bin/gettext/gettext.c Sun Jul 12 07:40:52 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: gettext.c,v 1.2 2015/06/03 23:15:22 enami Exp $ */
+/* $NetBSD: gettext.c,v 1.3 2015/07/12 11:40:52 christos Exp $ */
/*-
* Copyright (c) 2015 William Orr w...@worrbase.com
@@ -26,7 +26,7 @@
* SUCH DAMAGE.
*/
#include sys/cdefs.h
-__RCSID($NetBSD: gettext.c,v 1.2 2015/06/03 23:15:22 enami Exp $);
+__RCSID($NetBSD: gettext.c,v 1.3 2015/07/12 11:40:52 christos Exp $);
#include err.h
#include errno.h
@@ -39,12 +39,20 @@ __RCSID($NetBSD: gettext.c,v 1.2 2015/0
#include string.h
#include util.h
+static struct option longopts[] = {
+ { help, no_argument,NULL, 'h' },
+ { domain, required_argument, NULL, 'd' },
+ { NULL, 0, NULL, '\0' },
+};
+
static __dead void
usage(int exit_status)
{
fprintf(stderr, Usage: %s [-ehn] [[textdomain] msgid]\n,
getprogname());
+ fprintf(stderr, Usage: %s [-ehn] -d textdomain msgid\n,
+ getprogname());
fprintf(stderr, Usage: %s -s [msgid]...\n, getprogname());
exit(exit_status);
}
@@ -140,7 +148,8 @@ main(int argc, char **argv)
setlocale(LC_ALL, );
setprogname(argv[0]);
- while ((ch = getopt(argc, argv, d:EehnsV)) != -1) {
+ while ((ch = getopt_long(argc, argv, d:eEhnsV, longopts, NULL)) != -1)
+ {
switch (ch) {
case 'd':
msgdomain = estrdup(optarg);
@@ -173,7 +182,8 @@ main(int argc, char **argv)
if (argc == 0) {
free(msgdomain);
- errx(EXIT_FAILURE, missing msgid);
+ warnx(missing msgid);
+ usage(EXIT_FAILURE);
}
/* msgdomain can be passed as optional arg iff -s is not passed */
@@ -184,8 +194,10 @@ main(int argc, char **argv)
argc -= 1;
argv += 1;
- } else if (argc 2)
- errx(EXIT_FAILURE, too many arguments);
+ } else if (argc 2) {
+ warnx(too many arguments);
+ usage(EXIT_FAILURE);
+ }
}
/* msgdomain can be passed as env var */