show_line() currently receives the line number within the
'grep_opt->buf' in order to determine which line number to display. In
order to display information about the matching column number--if
requested--we must additionally take in that information.
To do so, we extend the signature of show_line() to take in an
additional unsigned "cno". "cno" is either:
* A 1-indexed column number of the first match on the given line, or
* 0, if the column number is irrelevant (when displaying a function
name, context lines, etc).
We additionally modify all calls to show_line() in order to pass the new
required argument.
Signed-off-by: Taylor Blau <[email protected]>
---
grep.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/grep.c b/grep.c
index 1c25782355..29bc799ecf 100644
--- a/grep.c
+++ b/grep.c
@@ -1361,7 +1361,7 @@ static int next_match(struct grep_opt *opt, char *bol,
char *eol,
}
static void show_line(struct grep_opt *opt, char *bol, char *eol,
- const char *name, unsigned lno, char sign)
+ const char *name, unsigned lno, unsigned cno, char sign)
{
int rest = eol - bol;
const char *match_color, *line_color = NULL;
@@ -1501,7 +1501,7 @@ static void show_funcname_line(struct grep_opt *opt,
struct grep_source *gs,
break;
if (match_funcname(opt, gs, bol, eol)) {
- show_line(opt, bol, eol, gs->name, lno, '=');
+ show_line(opt, bol, eol, gs->name, lno, 0, '=');
break;
}
}
@@ -1566,7 +1566,7 @@ static void show_pre_context(struct grep_opt *opt, struct
grep_source *gs,
while (*eol != '\n')
eol++;
- show_line(opt, bol, eol, gs->name, cur, sign);
+ show_line(opt, bol, eol, gs->name, cur, 0, sign);
bol = eol + 1;
cur++;
}
@@ -1830,7 +1830,7 @@ static int grep_source_1(struct grep_opt *opt, struct
grep_source *gs, int colle
show_pre_context(opt, gs, bol, eol, lno);
else if (opt->funcname)
show_funcname_line(opt, gs, bol, lno);
- show_line(opt, bol, eol, gs->name, lno, ':');
+ show_line(opt, bol, eol, gs->name, lno, match.rm_so+1,
':');
last_hit = lno;
if (opt->funcbody)
show_function = 1;
@@ -1859,7 +1859,7 @@ static int grep_source_1(struct grep_opt *opt, struct
grep_source *gs, int colle
/* If the last hit is within the post context,
* we need to show this line.
*/
- show_line(opt, bol, eol, gs->name, lno, '-');
+ show_line(opt, bol, eol, gs->name, lno, match.rm_so+1,
'-');
}
next_line:
--
2.17.0