geoff@boulder.UUCP (Geoffrey M. Clemm) (05/14/85)
. Description : The manual entry for the sed "t" (test) command states that the branch should be taken if : "any substitutions have been made since the most recent reading of an input line or execution of a 't'." But the substitution flag is not reset when an input line is read. Repeat By : Create a file named bug.sed containing the following sed command script : -------------------------------------------- s/j/"j"/ t found s/$/ : no j's here !/ b :found s/$/ : found a j !/ -------------------------------------------- Then run "sed -f bug.sed". After the first line containing a "j" is read, all subsequent lines (whether they contain a j or not) will be marked with "found a j". Fix : Reset the sflag to 0 in gline() in sed1.c . A context diff follows : --- sed1.c Tue May 14 10:15:38 1985 *************** *** 650,653 register char *p1, *p2; register c; p1 = addr; p2 = cbp; --- 650,654 ----- register char *p1, *p2; register c; + sflag = 0; p1 = addr; p2 = cbp;