svn commit: r332806 - head/usr.bin/grep
Kyle Evans
kevans at FreeBSD.org
Fri Apr 20 03:11:52 UTC 2018
Author: kevans
Date: Fri Apr 20 03:11:51 2018
New Revision: 332806
URL: https://svnweb.freebsd.org/changeset/base/332806
Log:
bsdgrep: Clean up procmatches a little bit
Modified:
head/usr.bin/grep/util.c
Modified: head/usr.bin/grep/util.c
==============================================================================
--- head/usr.bin/grep/util.c Fri Apr 20 03:08:46 2018 (r332805)
+++ head/usr.bin/grep/util.c Fri Apr 20 03:11:51 2018 (r332806)
@@ -218,32 +218,41 @@ procmatches(struct mprintc *mc, struct parsec *pc, boo
{
/* Deal with any -B context or context separators */
- if (matched && mc->doctx) {
- if (!first_match && (!mc->same_file || mc->last_outed > 0))
- printf("--\n");
- if (Bflag > 0)
- printqueue();
- mc->tail = Aflag;
- }
+ if (matched) {
+ if (mc->doctx) {
+ if (!first_match &&
+ (!mc->same_file || mc->last_outed > 0))
+ printf("--\n");
+ if (Bflag > 0)
+ printqueue();
+ mc->tail = Aflag;
+ }
- /* Print the matching line, but only if not quiet/binary */
- if (matched && mc->printmatch) {
- printline(pc, ':');
- while (pc->matchidx >= MAX_MATCHES) {
- /* Reset matchidx and try again */
- pc->matchidx = 0;
- if (procline(pc) == 0)
- printline(pc, ':');
- else
- break;
+ /* Print the matching line, but only if not quiet/binary */
+ if (mc->printmatch) {
+ printline(pc, ':');
+ while (pc->matchidx >= MAX_MATCHES) {
+ /* Reset matchidx and try again */
+ pc->matchidx = 0;
+ if (procline(pc) == 0)
+ printline(pc, ':');
+ else
+ break;
+ }
+ first_match = false;
+ mc->same_file = true;
+ mc->last_outed = 0;
}
- first_match = false;
- mc->same_file = true;
- mc->last_outed = 0;
- }
- if (!matched && mc->doctx) {
- /* Deal with any -A context */
+ /* Count the matches if we have a match limit */
+ if (mflag) {
+ /* XXX TODO: Decrement by number of matched lines */
+ mcount -= 1;
+ if (mflag && mcount <= 0)
+ return (false);
+ }
+ } else if (mc->doctx) {
+ /* Not matching, deal with any -A context as needed */
if (mc->tail > 0) {
grep_printline(&pc->ln, '-');
mc->tail--;
@@ -260,14 +269,6 @@ procmatches(struct mprintc *mc, struct parsec *pc, boo
if (Bflag == 0 || (Bflag > 0 && enqueue(&pc->ln)))
++mc->last_outed;
}
- }
-
- /* Count the matches if we have a match limit */
- if (matched && mflag) {
- /* XXX TODO: Decrement by number of matched lines */
- mcount -= 1;
- if (mflag && mcount <= 0)
- return (false);
}
return (true);
More information about the svn-src-head
mailing list