From: Junio C Hamano Date: Wed, 5 Apr 2006 21:06:26 +0000 (-0700) Subject: Merge branch 'pb/regex' X-Git-Tag: v1.3.0-rc3~16 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/9b6891f651ad51913419ee9184280a321b41e9ce?ds=inline;hp=-c Merge branch 'pb/regex' * pb/regex: On some platforms, certain headers need to be included before regex.h Support for pickaxe matching regular expressions --- 9b6891f651ad51913419ee9184280a321b41e9ce diff --combined diff.c index fe4664c53c,2db2cc568d..ce98a90805 --- a/diff.c +++ b/diff.c @@@ -883,6 -883,8 +883,8 @@@ int diff_opt_parse(struct diff_options options->filter = arg + 14; else if (!strcmp(arg, "--pickaxe-all")) options->pickaxe_opts = DIFF_PICKAXE_ALL; + else if (!strcmp(arg, "--pickaxe-regex")) + options->pickaxe_opts = DIFF_PICKAXE_REGEX; else if (!strncmp(arg, "-B", 2)) { if ((options->break_opt = diff_scoreopt_parse(arg)) == -1) @@@ -1280,34 -1282,28 +1282,34 @@@ void diff_flush(struct diff_options *op for (i = 0; i < q->nr; i++) { struct diff_filepair *p = q->queue[i]; - if ((diff_output_format == DIFF_FORMAT_NO_OUTPUT) || - (p->status == DIFF_STATUS_UNKNOWN)) - continue; - if (p->status == 0) - die("internal error in diff-resolve-rename-copy"); - switch (diff_output_format) { - case DIFF_FORMAT_PATCH: - diff_flush_patch(p, options); - break; - case DIFF_FORMAT_RAW: - case DIFF_FORMAT_NAME_STATUS: - diff_flush_raw(p, line_termination, - inter_name_termination, - options); + + switch (p->status) { + case DIFF_STATUS_UNKNOWN: break; - case DIFF_FORMAT_NAME: - diff_flush_name(p, - inter_name_termination, - line_termination); + case 0: + die("internal error in diff-resolve-rename-copy"); break; + default: + switch (diff_output_format) { + case DIFF_FORMAT_PATCH: + diff_flush_patch(p, options); + break; + case DIFF_FORMAT_RAW: + case DIFF_FORMAT_NAME_STATUS: + diff_flush_raw(p, line_termination, + inter_name_termination, + options); + break; + case DIFF_FORMAT_NAME: + diff_flush_name(p, + inter_name_termination, + line_termination); + break; + case DIFF_FORMAT_NO_OUTPUT: + break; + } } - diff_free_filepair(q->queue[i]); + diff_free_filepair(p); } free(q->queue); q->queue = NULL;