# HG changeset patch # User paulo@thepaulopc # Date 1289037426 25200 # Node ID 2fb87616ab65999f788e948f8b1a64da38221825 # Parent 9ec52ba4b994a5b9ab0becd5d0e3b38cfae5bfd7 rcg.c: fix bug when dealing with ".*" diff -r 9ec52ba4b994 -r 2fb87616ab65 rcg.c --- a/rcg.c Sat Nov 06 00:21:23 2010 -0700 +++ b/rcg.c Sat Nov 06 02:57:06 2010 -0700 @@ -130,7 +130,7 @@ int re_err; regex_t *re = calloc(1, sizeof(regex_t)); - re_err = regcomp(re, re_expression, REG_EXTENDED); + re_err = regcomp(re, re_expression, REG_EXTENDED | REG_NEWLINE); if (re_err != 0) exit(re_error(re_err, re)); @@ -200,18 +200,17 @@ if (!out) exit(realloc_error()); - if (colorLine) + so = rem[0].rm_so; + eo = rem[0].rm_eo; + + int match_len = eo - so; + + if (colorLine && match_len > 0) { so = 0; eo = out_len - 2; + match_len = eo - so; } - else - { - so = rem[0].rm_so; - eo = rem[0].rm_eo; - } - - int match_len = eo - so; //fprintf(stderr, "%d %d \n", so, eo); //d// 20100327 PBA @@ -241,6 +240,7 @@ { strncpy(&out[out_pos], &buf[buf_pos], out_len - out_pos); out[out_len - 1] = '\0'; + re_err = REG_NOMATCH; } }