diff options
author | mbornet-hl <mbornet.pro@wanadoo.fr> | 2015-07-11 23:46:50 +0200 |
---|---|---|
committer | mbornet-hl <mbornet.pro@wanadoo.fr> | 2015-07-11 23:46:50 +0200 |
commit | 27b83a2d9dce5c37f56cdfbb53459b79d414d05a (patch) | |
tree | 42fb46b0a1d61c2d2ab391a180dcf2cacf37d313 | |
parent | b9f1a1491484178af5625a485363c5fc055597c0 (diff) | |
download | hl-27b83a2d9dce5c37f56cdfbb53459b79d414d05a.zip hl-27b83a2d9dce5c37f56cdfbb53459b79d414d05a.tar.gz hl-27b83a2d9dce5c37f56cdfbb53459b79d414d05a.tar.bz2 |
Bug fixed in configuration options.
-rw-r--r-- | README.txt | 75 | ||||
-rw-r--r-- | src/cr_cpri.h | 13 | ||||
-rw-r--r-- | src/cr_main.c | 87 | ||||
-rwxr-xr-x | src/hl | bin | 31800 -> 33664 bytes |
4 files changed, 96 insertions, 79 deletions
@@ -7,30 +7,57 @@ # # Usage : # -# hl: version 1.24 -# Usage: hl [-h|-eidD][-E][-rgybmcwRGYBMCW] regexp ... -# -h : help -# -v : version -# -u : do not bufferize output on stdout -# -e : extended regular expressions -# -i : ignore case -# -E : print on stderr -# -r : red -# -g : green -# -y : yellow -# -b : blue -# -m : magenta -# -c : cyan -# -w : white -# -R : red (reverse video) -# -G : green (reverse video) -# -Y : yellow (reverse video) -# -B : blue (reverse video) -# -M : magenta (reverse video) -# -C : cyan (reverse video) -# -W : white (reverse video) -# -d : debug -# -D : display regular expressions +# hl: version 1.36 +# Usage: src/hl [-h|-H|-eidDL1234][-E][-rgybmcwRGYBMCW|--config_name] regexp ... +# -h : help +# -H : help + configuration names +# -V : version +# -v : verbose +# -u : do not bufferize output on stdout +# -e : extended regular expressions +# -i : ignore case +# -E : print on stderr +# -r : red +# -g : green +# -y : yellow +# -b : blue +# -m : magenta +# -c : cyan +# -w : white +# -R : red (reverse video) +# -G : green (reverse video) +# -Y : yellow (reverse video) +# -B : blue (reverse video) +# -M : magenta (reverse video) +# -C : cyan (reverse video) +# -W : white (reverse video) +# -d : debug +# -D : display regular expressions +# -L : lex debug +# -1 : color brightness (half-bright) +# -2 : color brightness (normal : default) +# -3 : color brightness (bright) +# -4 : color brightness (underscore) +# Configurations : +# --apt +# --cal +# --df +# --diff +# --err +# --ethtool +# --heartbeat +# --hl +# --ifconfig +# --iptables +# --ls_doc +# --MAC +# --percent +# --ps_cpu +# --services +# --validate_IP +# --virsh_list +# --xxd +# # # Examples : # ~~~~~~~~~~ diff --git a/src/cr_cpri.h b/src/cr_cpri.h index 20538ea..5ce5c05 100644 --- a/src/cr_cpri.h +++ b/src/cr_cpri.h @@ -22,7 +22,7 @@ * * Fichier : cr_cpri.h * - * @(#) cr_cpri.h 1.15 15/07/08 MB + * @(#) cr_cpri.h 1.16 15/07/11 MB - MODIFIE * * ============================================================================ */ @@ -91,8 +91,11 @@ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ #define CR_SIZE (1024) -//#define CR_DISP_LEX(...) fprintf(stderr, __VA_ARGS__) -#define CR_DISP_LEX(...) +#define CR_DISP_LEX(...) if (G.disp_lex) fprintf(stderr, __VA_ARGS__) +#define CR_DEBUG(...) if (G.debug) { \ + fprintf(stderr, "%-15s (%4d) ", __func__, __LINE__); \ + fprintf(stderr, __VA_ARGS__); \ + } #define CR_NEW(name) \ struct cr_##name *cr_new_##name(void) \ @@ -109,9 +112,6 @@ struct cr_##name *cr_new_##name(void) \ } #define CR_DECL_NEW(name) struct cr_##name *cr_new_##name(void) -#if ! defined(yyin) -//#define yyin CR_in -#endif #if ! defined(yylex) #define yylex CR_lex #endif @@ -190,6 +190,7 @@ struct cr_global { bool debug, verbose, disp_regex, + disp_lex, config_file_read; FILE *out; bool newline; diff --git a/src/cr_main.c b/src/cr_main.c index bcc934b..64c50a2 100644 --- a/src/cr_main.c +++ b/src/cr_main.c @@ -20,7 +20,7 @@ * * Fichier : cr_main.c * - * @(#) cr_main.c 1.35 15/07/09 MB + * @(#) cr_main.c 1.36 15/07/11 MB * * Liste des fonctions de ce fichier : * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -102,11 +102,11 @@ void cr_lists2argv(struct cr_configs *configs) CR_READ_CONFIG_FILE ******************************************************************************/ -void cr_read_config_file(bool *already_done) +void cr_read_config_file() { char *_home, _cfg_file[1024]; - if (*already_done == TRUE) { + if (G.config_file_read) { return; } @@ -133,7 +133,7 @@ void cr_read_config_file(bool *already_done) cr_lists2argv(&G.configs); - *already_done = TRUE; + G.config_file_read = TRUE; } /****************************************************************************** @@ -198,6 +198,10 @@ struct cr_config *cr_get_config(char *config_name, struct cr_args *args) { struct cr_config *_config; + if (!G.config_file_read) { + cr_read_config_file(); + } + for (_config = args->configs->extract; _config != 0; _config = _config->next) { if (!strcmp(config_name, _config->name)) { @@ -257,24 +261,23 @@ int cr_getopt(struct cr_args *args) if (!(_ptrs = args->curr_ptrs)) { /* Plus d'arguments a traiter ~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -//fprintf(stderr, "NO MORE ARGS.\n"); + CR_DEBUG("NO MORE ARGS.\n"); return -1; } -//X + if (*(_ptrs->curr_argv) == 0) { /* Plus d'argument pour ce niveau ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -//fprintf(stderr, "No more args for this level\n"); + CR_DEBUG("No more args for this level\n"); args->curr_ptrs = _ptrs->prev; free(_ptrs); continue; } -//fprintf(stderr, "Current arg = %p \"%s\"\n", _ptrs->curr_arg, _ptrs->curr_arg); + CR_DEBUG("Current arg = %p \"%s\" idx = %d\n", + _ptrs->curr_arg, _ptrs->curr_arg, _ptrs->curr_idx); -//fprintf(stderr, "curr_idx = %d\n", _ptrs->curr_idx); if (_ptrs->curr_idx == 0) { -//X /* Traitement d'un nouvel argument ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ if (_ptrs->curr_arg[0] != '-') { @@ -295,24 +298,21 @@ int cr_getopt(struct cr_args *args) else { /* Nom de configuration ~~~~~~~~~~~~~~~~~~~~ */ -//X _config_name = _ptrs->curr_arg + 2; -//fprintf(stderr, "CONFIG : \"%s\"\n", _config_name); + CR_DEBUG("==> CONFIG : \"%s\"\n", _config_name); _ptrs->curr_argv++; -//X + _ptrs->curr_idx = 0; _ptrs->curr_arg = *_ptrs->curr_argv; -//X -//fprintf(stderr, "Apres incrementation pointeur CONFIG :\n"); -//fprintf(stderr, "Current arg = %p \"%s\"\n", _ptrs->curr_arg, _ptrs->curr_arg); + CR_DEBUG("Apres incrementation pointeur CONFIG :\n"); + CR_DEBUG("Current arg = %p \"%s\"\n", _ptrs->curr_arg, _ptrs->curr_arg); _config = cr_get_config(_config_name, args); if (_config == 0) { - fprintf(stderr, "%s: undefined configuration (%s) !\n", + fprintf(stderr, "%s: undefined configuration (%s) !\n", G.prgname, _config_name); exit(1); } -//X /* Recherche de boucle recursive ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ if (_config->visited) { @@ -331,28 +331,23 @@ int cr_getopt(struct cr_args *args) _new_ptrs->config = _config; // Utilite ??? args->curr_ptrs = _new_ptrs; -//X continue; } } } else { -//X break; } } -//X /* Options ~~~~~~~ */ -//X _c = _ptrs->curr_arg[_ptrs->curr_idx]; -//X -//fprintf(stderr, "OPTION : %c\n", _c); + CR_DEBUG("==> OPTION : '%c'\n", _c); _ptrs->curr_idx++; _next_char = _ptrs->curr_arg[_ptrs->curr_idx]; if (cr_needs_arg(_c, args)) { -//fprintf(stderr, " argument needed.\n"); + CR_DEBUG(" (argument needed)\n"); _arg = *(_ptrs->curr_argv + 1); if (_arg[0] == '-' || _next_char != 0) { fprintf(stderr, "%s: missing argument for \"-%c\" !\n", @@ -360,27 +355,24 @@ int cr_getopt(struct cr_args *args) cr_dump_args(args); exit(1); } -//X args->optarg = _arg; -//fprintf(stderr, " OPTARG = \"%s\"\n", args->optarg); + CR_DEBUG(" OPTARG = \"%s\"\n", args->optarg); _ptrs->curr_argv++; _ptrs->curr_arg = *_ptrs->curr_argv; } else { -//fprintf(stderr, " no argument needed.\n"); + CR_DEBUG(" no argument needed.\n"); args->optarg = 0; } -//X if (_next_char == 0) { -//fprintf(stderr, " no more 1 letter option\n"); -//X -//fprintf(stderr, "Current arg = %p \"%s\"\n", _ptrs->curr_arg, _ptrs->curr_arg); + CR_DEBUG(" No more 1 letter option\n"); + CR_DEBUG(" Current arg = %p \"%s\"\n", _ptrs->curr_arg, _ptrs->curr_arg); if (*(_ptrs->curr_argv + 1) == 0) { /* Plus d'argument pour ce niveau ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -//fprintf(stderr, "No more args for this level\n"); + CR_DEBUG("No more args for this level\n"); args->curr_ptrs = _ptrs->prev; free(_ptrs); } @@ -388,10 +380,10 @@ int cr_getopt(struct cr_args *args) _ptrs->curr_argv++; _ptrs->curr_arg = *_ptrs->curr_argv; _ptrs->curr_idx = 0; -//fprintf(stderr, " Next arg = %p \"%s\"\n", _ptrs->curr_arg, _ptrs->curr_arg); + CR_DEBUG(" Next arg = %p \"%s\"\n", _ptrs->curr_arg, _ptrs->curr_arg); } } -//X + return _c; } @@ -448,19 +440,10 @@ int main(int argc, char *argv[]) cr_init_col_names(); G.intensity = CR_DEFLT_INTENSITY; - /* Scan des arguments a la recherche d'une configuration (--...) - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ - for (_i = 1; _i < argc; _i++) { - if (argv[_i][0] == '-' && argv[_i][1] == '-' && argv[_i][2] != 0) { - cr_read_config_file(&G.config_file_read); - break; - } - } - /* Analyse des arguments ~~~~~~~~~~~~~~~~~~~~~ */ _args = cr_set_args(argc, argv, - "hHuVvEr:g:y:b:m:c:w:R:G:Y:B:M:C:W:Ddei1234", + "hHuVvEr:g:y:b:m:c:w:R:G:Y:B:M:C:W:DLdei1234", &G.configs); while ((_opt = cr_getopt(_args)) != -1) { switch (_opt) { @@ -469,7 +452,7 @@ int main(int argc, char *argv[]) break; case 'H': - cr_read_config_file(&G.config_file_read); + cr_read_config_file(); cr_usage(TRUE); break; @@ -485,6 +468,11 @@ int main(int argc, char *argv[]) G.disp_regex = TRUE; break; + case 'L' : + G.disp_lex = TRUE; +fprintf(stderr, "DISP_LEX = TRUE\n"); + break; + case 'r': cr_set_color(CR_RED, _args->optarg); break; @@ -558,7 +546,7 @@ int main(int argc, char *argv[]) break; case 'V': - fprintf(stderr, "%s: version %s\n", G.prgname, "1.35"); + fprintf(stderr, "%s: version %s\n", G.prgname, "1.36"); exit(1); break; @@ -599,8 +587,8 @@ int main(int argc, char *argv[]) ******************************************************************************/ void cr_usage(bool disp_config) { - fprintf(stderr, "%s: version %s\n", G.prgname, "1.35"); - fprintf(stderr, "Usage: %s [-h|-H|-eidD1234][-E][-rgybmcwRGYBMCW|--config_name] regexp ...\n", + fprintf(stderr, "%s: version %s\n", G.prgname, "1.36"); + fprintf(stderr, "Usage: %s [-h|-H|-eidDL1234][-E][-rgybmcwRGYBMCW|--config_name] regexp ...\n", G.prgname); fprintf(stderr, " -h : help\n"); fprintf(stderr, " -H : help + configuration names\n"); @@ -626,6 +614,7 @@ void cr_usage(bool disp_config) fprintf(stderr, " -W : white (reverse video)\n"); fprintf(stderr, " -d : debug\n"); fprintf(stderr, " -D : display regular expressions\n"); + fprintf(stderr, " -L : lex debug\n"); fprintf(stderr, " -1 : color brightness (half-bright)\n"); fprintf(stderr, " -2 : color brightness (normal : default)\n"); fprintf(stderr, " -3 : color brightness (bright)\n"); Binary files differ |