summaryrefslogtreecommitdiffstats
path: root/usr.bin/write
diff options
context:
space:
mode:
authortjr <tjr@FreeBSD.org>2002-05-29 13:14:51 +0000
committertjr <tjr@FreeBSD.org>2002-05-29 13:14:51 +0000
commit3539ebd46fd99060ef4f90c0c238b8481aed1669 (patch)
tree80a3ab10fefa19282a051d6413c0e2c0ec96454d /usr.bin/write
parent929921851c545e6d07d26f98f775506b66a0dd2d (diff)
downloadFreeBSD-src-3539ebd46fd99060ef4f90c0c238b8481aed1669.zip
FreeBSD-src-3539ebd46fd99060ef4f90c0c238b8481aed1669.tar.gz
Use getopt() to reject any options and skip "--" arguments.
Diffstat (limited to 'usr.bin/write')
-rw-r--r--usr.bin/write/write.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/usr.bin/write/write.c b/usr.bin/write/write.c
index 5144507..b21233b 100644
--- a/usr.bin/write/write.c
+++ b/usr.bin/write/write.c
@@ -86,6 +86,11 @@ main(argc, argv)
(void)setlocale(LC_CTYPE, "");
+ while (getopt(argc, argv, "") != -1)
+ usage();
+ argc -= optind;
+ argv += optind;
+
/* check that sender has write enabled */
if (isatty(fileno(stdin)))
myttyfd = fileno(stdin);
@@ -108,20 +113,20 @@ main(argc, argv)
/* check args */
switch (argc) {
- case 2:
- search_utmp(argv[1], tty, mytty, myuid);
+ case 1:
+ search_utmp(argv[0], tty, mytty, myuid);
do_write(tty, mytty, myuid);
break;
- case 3:
- if (!strncmp(argv[2], _PATH_DEV, strlen(_PATH_DEV)))
- argv[2] += strlen(_PATH_DEV);
- if (utmp_chk(argv[1], argv[2]))
- errx(1, "%s is not logged in on %s", argv[1], argv[2]);
- if (term_chk(argv[2], &msgsok, &atime, 1))
+ case 2:
+ if (!strncmp(argv[1], _PATH_DEV, strlen(_PATH_DEV)))
+ argv[1] += strlen(_PATH_DEV);
+ if (utmp_chk(argv[0], argv[1]))
+ errx(1, "%s is not logged in on %s", argv[0], argv[1]);
+ if (term_chk(argv[1], &msgsok, &atime, 1))
exit(1);
if (myuid && !msgsok)
- errx(1, "%s has messages disabled on %s", argv[1], argv[2]);
- do_write(argv[2], mytty, myuid);
+ errx(1, "%s has messages disabled on %s", argv[0], argv[1]);
+ do_write(argv[1], mytty, myuid);
break;
default:
usage();
OpenPOWER on IntegriCloud