diff --git a/ex_cmdsub.c b/ex_cmdsub.c index 11fadb5..1f798d7 100644 --- a/ex_cmdsub.c +++ b/ex_cmdsub.c @@ -73,7 +73,7 @@ #ifndef lint #ifdef DOSCCS -static char sccsid[] = "@(#)ex_cmdsub.c 1.28 (gritter) 2/17/05"; +static char sccsid[] = "@(#)ex_cmdsub.c 1.29 (gritter) 2/17/05"; #endif #endif @@ -733,7 +733,7 @@ badtags: peekc = d; globp = oglobp; value(MAGIC) = omagic; - if (tflag) + if (tflag > 0) value(WRAPSCAN) = owrapscan; samef = 0; firstpat = savefirstpat; @@ -752,18 +752,20 @@ badtags: * line) we get left in nomagic mode. */ value(MAGIC) = 0; - if (tflag) + if (tflag > 0) value(WRAPSCAN) = 1; commands(1, 1); failed = ofailed; peekc = d; globp = oglobp; value(MAGIC) = omagic; - if (tflag) { + if (tflag > 0) { value(WRAPSCAN) = owrapscan; - if (savefirstpat) + if (savefirstpat) { globp = savefirstpat; - tflag = 0; + tflag = -1; + } else + tflag = 0; } return; } /* end of "for each tag in file" */ diff --git a/ex_vmain.c b/ex_vmain.c index 318246c..ac07f92 100644 --- a/ex_vmain.c +++ b/ex_vmain.c @@ -73,7 +73,7 @@ #ifndef lint #ifdef DOSCCS -static char sccsid[] = "@(#)ex_vmain.c 1.28 (gritter) 11/28/04"; +static char sccsid[] = "@(#)ex_vmain.c 1.29 (gritter) 2/17/05"; #endif #endif @@ -1033,6 +1033,10 @@ doinit: Pline = OPline; Putchar = OPutchar; ungetchar(d); + if (globp && tflag < 0) { + tflag = 0; + goto doinit; + } globp = oglobp; /*