- else {
- if (nfile > 1 && hflag) printf("%s:", file);
- if (bflag) printf("%d:", blkno);
- if (nflag) printf("%ld:", lnum);
- if (p <= nlp) {
- while (nlp < &buf[1024]) putchar(*nlp++);
- nlp = buf;
- }
- while (nlp < p) putchar(*nlp++);
+ }
+ if ( (vflag && (failed == 0 || xflag == 0)) || (vflag == 0 && xflag && failed) )
+ goto nomatch;
+ succeed: nsucc = 1;
+ if (cflag) tln++;
+ else if (sflag)
+ ; /* ugh */
+ else if (lflag) {
+ printf("%s\n", file);
+ close(f);
+ return;
+ }
+ else {
+ if (nfile > 1 && hflag) printf("%s:", file);
+ if (bflag) printf("%ld:", (blkno-ccount-1)/BUFSIZ);
+ if (nflag) printf("%ld:", lnum);
+ if (p <= nlp) {
+ while (nlp < &buf[2*BUFSIZ]) putchar(*nlp++);
+ nlp = buf;