Module Name: src Committed By: kre Date: Fri Aug 19 12:52:32 UTC 2022
Modified Files: src/bin/sh: miscbltin.c Log Message: Don't output the error for bad usage (no var name given) after already writing the prompt (set with the -p option). That results in nonsense like: $ read -p foo fooread: arg count While here, improve the error message so it means something. Now we will get: $ read -p foo read: variable name required Usage: read [-r] [-p prompt] var... [Detected by code reading while doing the work for the previous fix] To generate a diff of this commit: cvs rdiff -u -r1.51 -r1.52 src/bin/sh/miscbltin.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/bin/sh/miscbltin.c diff -u src/bin/sh/miscbltin.c:1.51 src/bin/sh/miscbltin.c:1.52 --- src/bin/sh/miscbltin.c:1.51 Fri Aug 19 12:17:18 2022 +++ src/bin/sh/miscbltin.c Fri Aug 19 12:52:31 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: miscbltin.c,v 1.51 2022/08/19 12:17:18 kre Exp $ */ +/* $NetBSD: miscbltin.c,v 1.52 2022/08/19 12:52:31 kre Exp $ */ /*- * Copyright (c) 1991, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)miscbltin.c 8.4 (Berkeley) 5/4/95"; #else -__RCSID("$NetBSD: miscbltin.c,v 1.51 2022/08/19 12:17:18 kre Exp $"); +__RCSID("$NetBSD: miscbltin.c,v 1.52 2022/08/19 12:52:31 kre Exp $"); #endif #endif /* not lint */ @@ -111,14 +111,15 @@ readcmd(int argc, char **argv) rflag = 1; } + if (*(ap = argptr) == NULL) + error("variable name required\n" + "Usage: read [-r] [-p prompt] var..."); + if (prompt && isatty(0)) { out2str(prompt); flushall(); } - if (*(ap = argptr) == NULL) - error("arg count"); - if ((ifs = bltinlookup("IFS", 1)) == NULL) ifs = " \t\n";