From: Mazet Laurent Date: Tue, 14 May 2024 05:40:16 +0000 (+0200) Subject: correct error managment X-Git-Tag: cmore-1.0~11 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=c22e49bddd4874dba6d883d1d1f79b02635152be;p=cmore.git correct error managment --- diff --git a/cmd.c b/cmd.c index 7c3054a..c2dd0e9 100644 --- a/cmd.c +++ b/cmd.c @@ -37,11 +37,11 @@ char *exec_cmd (char *cmd) int saved_stderr = dup (STDERR_FILENO); close (STDERR_FILENO); FILE *fp = popen (cmd, "r"); - dup2 (saved_stderr, STDERR_FILENO); if (fp != NULL) { buffer = _read_stream (fp); status = pclose(fp); } + dup2 (saved_stderr, STDERR_FILENO); if ((status == -1) || (buffer == NULL)) { free (buffer); diff --git a/cmore.c b/cmore.c index 460814b..703cbf2 100644 --- a/cmore.c +++ b/cmore.c @@ -138,6 +138,7 @@ void process (void) if (buffer == NULL) { char msg[MAX_LENGTH + 13 + 2 + 1] = {0}; sprintf (msg, "%s: %s", command ? "can't execute" : input ? "can't load" : "can't read", command ? command : input ? input : "stdin"); + VERBOSE (WARNING, fprintf (stderr, "%s\n", msg)); errormsg (msg); return; } @@ -348,30 +349,33 @@ int main (int argc, char *argv[]) } /* test: cmore.exe -c 2>&1 | grep error */ -/* test: cmore.exe -c notAnExistingCommand 2>&1 | grep can\'t */ +/* test: echo :fi | cmore.exe -v 1 -c notAnExistingCommand 2>&1 | grep can\'t */ /* test: cmore.exe -f 2>&1 | grep error */ -/* test: cmore.exe -f notAnExistingFile 2>&1 | grep can\'t */ +/* test: echo :fi | cmore.exe -v 1 -f notAnExistingFile 2>&1 | grep can\'t */ /* test: cmore.exe -h | grep usage */ /* test: cmore.exe -Z 2>&1 | grep usage */ /* test: cmore.exe -v 2>&1 | grep missing */ /* test: cmore.exe -s 2>&1 | grep missing */ /* test: cmore.exe _ 2>&1 | grep invalid */ -/* test: cat tui.c | cmore.exe -v 5 -s 2*/ +/* test: cat tui.c | cmore.exe -v 3 -s 2*/ /* test: (sleep 1; echo -n q) | cmore.exe -c 'ip addr' */ /* test: (sleep 1; echo -ne '\e\e') | cmore.exe -f tui.c */ /* test: (sleep 1; echo -n kkkkk; sleep 1; echo -n i; sleep 1; echo -n q) | cmore.exe -c 'ip addr' */ -/* test: (sleep 1; echo -n q) | cmore.exe -c 'echo -n a; for i in $(seq 1 '$(( $COLUMNS*($LINES-4)-2 ))'); do echo -n .; done; echo -n z' -v 5 | grep -q 'last line too long' */ -/* test: (sleep 1; echo -n q) | cmore.exe -c 'echo -n a; for i in $(seq 1 '$(( $COLUMNS*($LINES-4)-3 ))'); do echo -n .; done; echo -n z' -v 5 | grep -q 'last line too long'; test $? -eq 1 */ +/* test: (sleep 1; echo -n q) | cmore.exe -c 'echo -n a; for i in $(seq 1 '$(( $COLUMNS*($LINES-4)-2 ))'); do echo -n .; done; echo -n z' -v 3 | grep -q 'last line too long' */ +/* test: (sleep 1; echo -n q) | cmore.exe -c 'echo -n a; for i in $(seq 1 '$(( $COLUMNS*($LINES-4)-3 ))'); do echo -n .; done; echo -n z' -v 3 | grep -q 'last line too long'; test $? -eq 1 */ /* test: (sleep 1; echo :f; sleep 1; echo i) | cmore.exe -c 'ip addr' */ /* test: (sleep 1; echo :fkkk; sleep 1; echo :fiii) | cmore.exe -c 'ip addr' */ /* test: (sleep 1; echo :fjljjkkikkkk) | cmore.exe -c 'ip addr' */ /* test: (sleep 1; echo :flk; sleep 1; echo xji) | cmore.exe -c 'ip addr' */ /* test: (sleep 1; echo :fk; sleep 1; echo; sleep 1; echo :fi) | cmore.exe -c 'ip addr' */ + /* test: (sleep 1; echo :fk; sleep 1; echo date; sleep 1; echo :fi) | cmore.exe -c 'ip addr' */ -/* test: (sleep 1; echo :fk; echo not_a_command; sleep 1; echo i) | cmore.exe -c 'ip addr' -v 5 2>&1 | grep -q "can't execute" */ +/* test: (sleep 1; echo :fk; echo not_a_command; sleep 1; echo i) | cmore.exe -c 'ip addr' -v 3 2>&1 | grep -q "can't execute" */ /* test: (sleep 1; echo :fkk; sleep 1; echo; sleep 1; echo ii) | cmore.exe -c 'ip addr' */ + +/* test: (sleep 1; echo :fkk; sleep 1; echo tui.c; sleep 1; echo :fii) | cmore.exe -f tui.h */ /* test: (sleep 1; echo :fkk; sleep 1; echo cmore.c; sleep 1; echo :fii) | cmore.exe -c 'ip addr' */ -/* test: (sleep 1; echo :fkk; echo not_a_file; sleep 1; echo ii) | cmore.exe -c 'ip addr' -v 5 2>&1 | grep -q "can't load" */ +/* test: (sleep 1; echo :fkk; echo not_a_file; sleep 1; echo ii) | cmore.exe -c 'ip addr' -v 3 2>&1 | grep -q "can't load" */ /* test: (sleep 1; echo :fkk; sleep 1; echo; sleep 1; echo ii) | cmore.exe -c 'ip addr' */ /* vim: set ts=4 sw=4 et: */