diff options
Diffstat (limited to 'sbin/i386/comcontrol/comcontrol.c')
-rw-r--r-- | sbin/i386/comcontrol/comcontrol.c | 50 |
1 files changed, 27 insertions, 23 deletions
diff --git a/sbin/i386/comcontrol/comcontrol.c b/sbin/i386/comcontrol/comcontrol.c index 17c2882..372f984 100644 --- a/sbin/i386/comcontrol/comcontrol.c +++ b/sbin/i386/comcontrol/comcontrol.c @@ -26,79 +26,83 @@ * SUCH DAMAGE. */ -/* comcontrol.c */ +#ifndef lint +static const char rcsid[] = + "$Id$"; +#endif /* not lint */ -#include <sys/types.h> -#include <sys/ioctl.h> -#include <stdio.h> -#include <stdlib.h> #include <ctype.h> +#include <err.h> #include <fcntl.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/types.h> +#include <sys/ioctl.h> - -void usage(char *progname) +static void +usage() { - fprintf(stderr, "usage: %s <filename> [dtrwait <n>] [drainwait <n>]\n", progname); + fprintf(stderr, + "usage: comcontrol <filename> [dtrwait <n>] [drainwait <n>]\n"); exit(1); } -int main(int argc, char *argv[]) +int +main(int argc, char *argv[]) { int fd; int res = 0; int dtrwait = -1, drainwait = -1; if (argc < 2) - usage(argv[0]); + usage(); fd = open(argv[1], O_RDONLY|O_NONBLOCK, 0); if (fd < 0) { - perror("open"); - fprintf(stderr, "%s: couldn't open file %s\n", argv[0], argv[1]); + warn("couldn't open file %s", argv[1]); return 1; } if (argc == 2) { if (ioctl(fd, TIOCMGDTRWAIT, &dtrwait) < 0) { res = 1; - perror("TIOCMGDTRWAIT"); + warn("TIOCMGDTRWAIT"); } if (ioctl(fd, TIOCGDRAINWAIT, &drainwait) < 0) { res = 1; - perror("TIOCGDRAINWAIT"); + warn("TIOCGDRAINWAIT"); } printf("dtrwait %d drainwait %d\n", dtrwait, drainwait); } else { - char *prg = argv[0]; - while (argv[2] != NULL) { if (!strcmp(argv[2],"dtrwait")) { if (dtrwait >= 0) - usage(prg); + usage(); if (argv[3] == NULL || !isdigit(argv[3][0])) - usage(prg); + usage(); dtrwait = atoi(argv[3]); argv += 2; } else if (!strcmp(argv[2],"drainwait")) { if (drainwait >= 0) - usage(prg); + usage(); if (argv[3] == NULL || !isdigit(argv[3][0])) - usage(prg); + usage(); drainwait = atoi(argv[3]); argv += 2; } else - usage(prg); + usage(); } if (dtrwait >= 0) { if (ioctl(fd, TIOCMSDTRWAIT, &dtrwait) < 0) { res = 1; - perror("TIOCMSDTRWAIT"); + warn("TIOCMSDTRWAIT"); } } if (drainwait >= 0) { if (ioctl(fd, TIOCSDRAINWAIT, &drainwait) < 0) { res = 1; - perror("TIOCSDRAINWAIT"); + warn("TIOCSDRAINWAIT"); } } } |