Merge branch 'bc/xdiffnl'
* bc/xdiffnl: xdiff-interface.c: strip newline (and cr) from line before pattern matchingmaint
commit
bc36540e6e
|
@ -191,12 +191,22 @@ struct ff_regs {
|
||||||
static long ff_regexp(const char *line, long len,
|
static long ff_regexp(const char *line, long len,
|
||||||
char *buffer, long buffer_size, void *priv)
|
char *buffer, long buffer_size, void *priv)
|
||||||
{
|
{
|
||||||
char *line_buffer = xstrndup(line, len); /* make NUL terminated */
|
char *line_buffer;
|
||||||
struct ff_regs *regs = priv;
|
struct ff_regs *regs = priv;
|
||||||
regmatch_t pmatch[2];
|
regmatch_t pmatch[2];
|
||||||
int i;
|
int i;
|
||||||
int result = -1;
|
int result = -1;
|
||||||
|
|
||||||
|
/* Exclude terminating newline (and cr) from matching */
|
||||||
|
if (len > 0 && line[len-1] == '\n') {
|
||||||
|
if (len > 1 && line[len-2] == '\r')
|
||||||
|
len -= 2;
|
||||||
|
else
|
||||||
|
len--;
|
||||||
|
}
|
||||||
|
|
||||||
|
line_buffer = xstrndup(line, len); /* make NUL terminated */
|
||||||
|
|
||||||
for (i = 0; i < regs->nr; i++) {
|
for (i = 0; i < regs->nr; i++) {
|
||||||
struct ff_reg *reg = regs->array + i;
|
struct ff_reg *reg = regs->array + i;
|
||||||
if (!regexec(®->re, line_buffer, 2, pmatch, 0)) {
|
if (!regexec(®->re, line_buffer, 2, pmatch, 0)) {
|
||||||
|
|
Loading…
Reference in New Issue