Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!labrea!decwrl!pyramid!prls!mips!dce From: dce@mips.UUCP Newsgroups: comp.bugs.4bsd Subject: 4.[23]BSD more MORE variable flakiness Message-ID: <646@quacky.UUCP> Date: Tue, 1-Sep-87 13:01:27 EDT Article-I.D.: quacky.646 Posted: Tue Sep 1 13:01:27 1987 Date-Received: Thu, 3-Sep-87 01:25:27 EDT Distribution: world Organization: MIPS Computer Systems, Sunnyvale, CA Lines: 76 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