diff options
author | mbornet-hl <mbornet.pro@wanadoo.fr> | 2015-03-19 23:25:56 +0100 |
---|---|---|
committer | mbornet-hl <mbornet.pro@wanadoo.fr> | 2015-03-19 23:25:56 +0100 |
commit | 41d93b41d27af2d75d42b99eace68d3e7cd1ed80 (patch) | |
tree | 0a23f3000ec16338ce11758664e8333473562525 | |
parent | 752433392cf5075b1ac957ee656c9a36399b5c84 (diff) | |
download | hl-41d93b41d27af2d75d42b99eace68d3e7cd1ed80.zip hl-41d93b41d27af2d75d42b99eace68d3e7cd1ed80.tar.gz hl-41d93b41d27af2d75d42b99eace68d3e7cd1ed80.tar.bz2 |
Added memory release for compiled expressions
-rw-r--r-- | cr/cr_epri.h | 3 | ||||
-rw-r--r-- | cr/cr_main.c | 29 |
2 files changed, 26 insertions, 6 deletions
diff --git a/cr/cr_epri.h b/cr/cr_epri.h index c04772a..ad1a064 100644 --- a/cr/cr_epri.h +++ b/cr/cr_epri.h @@ -22,7 +22,7 @@ * * Fichier : cr_epri.h * - * @(#) cr_epri.h 1.6 15/03/14 MB + * @(#) cr_epri.h 1.7 15/03/19 MB * * ============================================================================ */ @@ -40,6 +40,7 @@ void cr_usage(void); void cr_init_list(void); void cr_init_col_names(void); void cr_set_color(int, char *); +void cr_free_RE(void); void cr_read_input(void); void cr_disp_color(int, char *); void cr_start_color(struct cr_color *, int); diff --git a/cr/cr_main.c b/cr/cr_main.c index 6de1bbd..660551d 100644 --- a/cr/cr_main.c +++ b/cr/cr_main.c @@ -20,7 +20,7 @@ * * Fichier : cr_main.c * - * @(#) cr_main.c 1.20 15/03/19 MB + * @(#) cr_main.c 1.21 15/03/19 MB * * Liste des fonctions de ce fichier : * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -157,7 +157,7 @@ int main(int argc, char *argv[]) break; case 'v': - fprintf(stderr, "%s: version %s\n", G.prgname, "1.20"); + fprintf(stderr, "%s: version %s\n", G.prgname, "1.21"); exit(1); break; @@ -167,7 +167,7 @@ int main(int argc, char *argv[]) break; } } - G.cflags |= REG_NEWLINE; +// G.cflags |= REG_NEWLINE; if (G.disp_regex) { for (_i = 0; _i < G.idx_list; _i++) { @@ -180,6 +180,8 @@ int main(int argc, char *argv[]) } cr_read_input(); + + cr_free_RE(); return 0; } @@ -190,7 +192,7 @@ int main(int argc, char *argv[]) ******************************************************************************/ void cr_usage(void) { - fprintf(stderr, "%s: version %s\n", G.prgname, "1.20"); + fprintf(stderr, "%s: version %s\n", G.prgname, "1.21"); fprintf(stderr, "Usage: %s [-h|-eidD][-E][-rgybmcwRGYBMCW] regexp ...\n", G.prgname); fprintf(stderr, " -h : help\n"); fprintf(stderr, " -v : version\n"); @@ -294,6 +296,23 @@ void cr_set_color(int color, char *regexp) /****************************************************************************** + CR_FREE_RE + +******************************************************************************/ +void cr_free_RE(void) +{ + int _i; + regex_t *_reg; + + for (_i = 0; _i < CR_NB_COLORS; _i++) { + _reg = &G.color_RE[_i].RE.reg; + if (_reg) { + regfree(_reg); + } + } +} +/****************************************************************************** + CR_READ_INPUT ******************************************************************************/ @@ -365,7 +384,7 @@ void cr_start_color(struct cr_color *col, int color) if (col) _out = col->out; else _out = stdout; - if (col->col_num > CR_WHITE) { + if (color > CR_WHITE) { /* Reverse video ~~~~~~~~~~~~~ */ fprintf(_out, "\033[01;30m\033[01;%dm", 40 + (color - 8)); |