dce@mips.UUCP (09/01/87)
Index: usr.ucb/more/more.c 4.3BSD Fix Description: Line specification in MORE variable is ignored if command-line arguments are given. This was also broken in 4.2BSD. Repeat-By: Set your MORE variable to "10c". Execute the commands more file more -s file where "file" has more than 10 lines of text in it. The first invocation will act like more -10c file The second acts like more -sc file instead of like more -10sc file Fix: *** more.c.old --- more.c *************** *** 262,275 **** argscan(s) char *s; { ! for (dlines = 0; *s != '\0'; s++) ! { ! switch (*s) ! { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': dlines = dlines*10 + *s - '0'; break; case 'd': --- 262,279 ---- argscan(s) char *s; { ! int seen_num = 0; ! ! while (*s != '\0') { ! switch (*s) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': + if (!seen_num) { + dlines = 0; + seen_num = 1; + } dlines = dlines*10 + *s - '0'; break; case 'd': *************** *** 294,299 **** --- 298,304 ---- ul_opt = 0; break; } + s++; } } -- David Elliott {decvax,ucbvax,ihnp4}!decwrl!mips!dce