diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 1997-10-02 01:16:03 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 1997-10-02 01:16:03 +0000 |
commit | eb8314a3055a8defbec460dee9e94064b0a9e756 (patch) | |
tree | f7efe1d6c472deffc6e6fbf77f280b35d7967dc4 | |
parent | c94a9b958e52c06995a9e9f4ae375d1ca2d85211 (diff) |
Deal with ^D sanely and kill unused get_yn().
-rw-r--r-- | sbin/disklabel/disklabel.c | 5 | ||||
-rw-r--r-- | sbin/disklabel/editor.c | 35 |
2 files changed, 17 insertions, 23 deletions
diff --git a/sbin/disklabel/disklabel.c b/sbin/disklabel/disklabel.c index 07fcbeeb3e1..6654e969ced 100644 --- a/sbin/disklabel/disklabel.c +++ b/sbin/disklabel/disklabel.c @@ -1,4 +1,4 @@ -/* $OpenBSD: disklabel.c,v 1.40 1997/10/02 00:49:11 millert Exp $ */ +/* $OpenBSD: disklabel.c,v 1.41 1997/10/02 01:16:02 millert Exp $ */ /* $NetBSD: disklabel.c,v 1.30 1996/03/14 19:49:24 ghudson Exp $ */ /* @@ -44,7 +44,7 @@ static char copyright[] = #endif /* not lint */ #ifndef lint -static char rcsid[] = "$OpenBSD: disklabel.c,v 1.40 1997/10/02 00:49:11 millert Exp $"; +static char rcsid[] = "$OpenBSD: disklabel.c,v 1.41 1997/10/02 01:16:02 millert Exp $"; #endif /* not lint */ #include <sys/param.h> @@ -134,7 +134,6 @@ int checklabel __P((struct disklabel *)); void setbootflag __P((struct disklabel *)); void usage __P((void)); u_short dkcksum __P((struct disklabel *)); -char get_yn __P((char *)); int main(argc, argv) diff --git a/sbin/disklabel/editor.c b/sbin/disklabel/editor.c index ff8c2dbd8c9..e95e3c81e07 100644 --- a/sbin/disklabel/editor.c +++ b/sbin/disklabel/editor.c @@ -1,4 +1,4 @@ -/* $OpenBSD: editor.c,v 1.3 1997/10/02 00:51:58 millert Exp $ */ +/* $OpenBSD: editor.c,v 1.4 1997/10/02 01:16:01 millert Exp $ */ /* * Copyright (c) 1997 Todd C. Miller <Todd.Miller@courtesan.com> @@ -31,7 +31,7 @@ */ #ifndef lint -static char rcsid[] = "$OpenBSD: editor.c,v 1.3 1997/10/02 00:51:58 millert Exp $"; +static char rcsid[] = "$OpenBSD: editor.c,v 1.4 1997/10/02 01:16:01 millert Exp $"; #endif /* not lint */ #include <sys/types.h> @@ -62,7 +62,6 @@ void editor_display __P((struct disklabel *, u_int32_t *, char)); void editor_change __P((struct disklabel *, u_int32_t *, char *)); char *getstring __P((struct disklabel *, char *, char *, char *)); u_int32_t getuint __P((struct disklabel *, int, char *, char *, u_int32_t, u_int32_t, int)); -char get_yn __P((char *)); int has_overlap __P((struct disklabel *, u_int32_t *, int)); void make_contiguous __P((struct disklabel *)); u_int32_t next_offset __P((struct disklabel *)); @@ -112,7 +111,11 @@ editor(lp, f) fputs("> ", stdout); fflush(stdout); rewind(stdin); - fgets(buf, sizeof(buf), stdin); + if (fgets(buf, sizeof(buf), stdin) == NULL) { + putchar('\n'); + buf[0] = 'q'; + buf[1] = '\0'; + } cmd = strtok(buf, " \t"); arg = strtok(NULL, " \t"); @@ -874,7 +877,10 @@ getstring(lp, prompt, helpstring, oval) printf("%s: [%s] ", prompt, oval ? oval : ""); fflush(stdout); rewind(stdin); - fgets(buf, sizeof(buf), stdin); + if (fgets(buf, sizeof(buf), stdin) == NULL) { + putchar('\n'); + buf[0] == '\0'; + } n = strlen(buf); if (n > 0 && buf[n-1] == '\n') buf[--n] = '\0'; @@ -914,7 +920,10 @@ getuint(lp, partno, prompt, helpstring, oval, maxval, flags) printf("%s: [%u] ", prompt, oval); fflush(stdout); rewind(stdin); - fgets(buf, sizeof(buf), stdin); + if (fgets(buf, sizeof(buf), stdin) == NULL) { + putchar('\n'); + buf[0] = '\0'; + } n = strlen(buf); if (n > 0 && buf[n-1] == '\n') buf[--n] = '\0'; @@ -1187,17 +1196,3 @@ edit_parms(lp, freep) } lp->d_rpm = ui; } - -char -get_yn(prompt) - char *prompt; -{ - int c; - - do { - printf("%s [y/n] ", prompt); - c = tolower(getchar()); - } while (c != EOF && c != 'y' && c != 'n'); - - return((char)c); -} |