=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/dirname/dirname.c,v retrieving revision 1.10 retrieving revision 1.11 diff -c -r1.10 -r1.11 *** src/usr.bin/dirname/dirname.c 2003/07/10 00:06:50 1.10 --- src/usr.bin/dirname/dirname.c 2005/04/07 07:16:21 1.11 *************** *** 1,4 **** ! /* $OpenBSD: dirname.c,v 1.10 2003/07/10 00:06:50 david Exp $ */ /* * Copyright (c) 1997 Todd C. Miller --- 1,4 ---- ! /* $OpenBSD: dirname.c,v 1.11 2005/04/07 07:16:21 otto Exp $ */ /* * Copyright (c) 1997 Todd C. Miller *************** *** 17,23 **** */ #ifndef lint ! static char rcsid[] = "$OpenBSD: dirname.c,v 1.10 2003/07/10 00:06:50 david Exp $"; #endif /* not lint */ #include --- 17,23 ---- */ #ifndef lint ! static char rcsid[] = "$OpenBSD: dirname.c,v 1.11 2005/04/07 07:16:21 otto Exp $"; #endif /* not lint */ #include *************** *** 25,46 **** #include #include #include int main(int argc, char *argv[]) { char *dir; - extern char *__progname; setlocale(LC_ALL, ""); ! if (argc != 2) { ! (void)fprintf(stderr, "Usage: %s pathname\n", __progname); ! exit(1); } ! if ((dir = dirname(argv[1])) == NULL) ! err(1, NULL); puts(dir); exit(0); } --- 25,65 ---- #include #include #include + #include + void usage(void); + int main(int argc, char *argv[]) { + int ch; char *dir; setlocale(LC_ALL, ""); ! while ((ch = getopt(argc, argv, "")) != -1) { ! switch (ch) { ! default: ! usage(); ! } } + argc -= optind; + argv += optind; ! if (argc != 1) ! usage(); ! ! if ((dir = dirname(argv[0])) == NULL) ! err(1, "%s", argv[0]); puts(dir); exit(0); + } + + extern char *__progname; + + void + usage(void) + { + (void)fprintf(stderr, "Usage: %s pathname\n", __progname); + exit(1); }