summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormbornet-hl <mbornet.pro@wanadoo.fr>2015-07-11 23:46:50 +0200
committermbornet-hl <mbornet.pro@wanadoo.fr>2015-07-11 23:46:50 +0200
commit27b83a2d9dce5c37f56cdfbb53459b79d414d05a (patch)
tree42fb46b0a1d61c2d2ab391a180dcf2cacf37d313
parentb9f1a1491484178af5625a485363c5fc055597c0 (diff)
downloadhl-27b83a2d9dce5c37f56cdfbb53459b79d414d05a.zip
hl-27b83a2d9dce5c37f56cdfbb53459b79d414d05a.tar.gz
hl-27b83a2d9dce5c37f56cdfbb53459b79d414d05a.tar.bz2
Bug fixed in configuration options.
-rw-r--r--README.txt75
-rw-r--r--src/cr_cpri.h13
-rw-r--r--src/cr_main.c87
-rwxr-xr-xsrc/hlbin31800 -> 33664 bytes
4 files changed, 96 insertions, 79 deletions
diff --git a/README.txt b/README.txt
index 78aefeb..fcda972 100644
--- a/README.txt
+++ b/README.txt
@@ -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");
diff --git a/src/hl b/src/hl
index f3b6b2a..c3ce6be 100755
--- a/src/hl
+++ b/src/hl
Binary files differ