summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpgen <p.gen.progs@gmail.com>2021-06-19 15:01:43 +0200
committerpgen <p.gen.progs@gmail.com>2021-06-19 15:01:43 +0200
commitf5ced88b5ae851a5a64ede9d83640a1108485a4c (patch)
tree4e901f4903b2e023fa86e4a7e542d073b2296506
parent0cdc9a51f61bfc88c636c816915280280f8be2c0 (diff)
Correctly handles the order of the -i/-e options
Correct the code to comply with the manual regarding the order of appearance of -i and -e on the command line.
-rw-r--r--smenu.c6
-rw-r--r--tests/in-ex-clusions/t0007.good11
l---------tests/in-ex-clusions/t0007.in1
-rw-r--r--tests/in-ex-clusions/t0007.tst4
-rw-r--r--tests/in-ex-clusions/t0008.good11
l---------tests/in-ex-clusions/t0008.in1
-rw-r--r--tests/in-ex-clusions/t0008.tst4
7 files changed, 35 insertions, 3 deletions
diff --git a/smenu.c b/smenu.c
index b52f56a..d014cf4 100644
--- a/smenu.c
+++ b/smenu.c
@@ -5338,15 +5338,15 @@ exclude_re_action(char * ctx_name, char * opt_name, char * param, int nb_values,
char ** values, int nb_opt_data, void ** opt_data,
int nb_ctx_data, void ** ctx_data)
{
- int * pattern_def_exclude = opt_data[0];
+ int * pattern_def_include = opt_data[0];
char ** exclude_pattern = opt_data[1];
langinfo_t * langinfo = opt_data[2];
misc_t * misc = opt_data[3];
/* Set the default behaviour if not already set. */
/* """"""""""""""""""""""""""""""""""""""""""""" */
- if (*pattern_def_exclude == -1)
- *pattern_def_exclude = 0;
+ if (*pattern_def_include == -1)
+ *pattern_def_include = 1;
if (*exclude_pattern == NULL)
*exclude_pattern = concat("(", values[0], ")", (char *)0);
diff --git a/tests/in-ex-clusions/t0007.good b/tests/in-ex-clusions/t0007.good
new file mode 100644
index 0000000..2cb10b9
--- /dev/null
+++ b/tests/in-ex-clusions/t0007.good
@@ -0,0 +1,11 @@
+$ OUT=$(smenu -e2 -i1 t0007.in)
+
+1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+0:07 2:24 24:24 25:24 48:24 49:24
+$
+
+$ echo ":$OUT:"
+
+:1:
+
+$ exit 0
diff --git a/tests/in-ex-clusions/t0007.in b/tests/in-ex-clusions/t0007.in
new file mode 120000
index 0000000..0abc8f1
--- /dev/null
+++ b/tests/in-ex-clusions/t0007.in
@@ -0,0 +1 @@
+data1 \ No newline at end of file
diff --git a/tests/in-ex-clusions/t0007.tst b/tests/in-ex-clusions/t0007.tst
new file mode 100644
index 0000000..5fe32e3
--- /dev/null
+++ b/tests/in-ex-clusions/t0007.tst
@@ -0,0 +1,4 @@
+\S[150]\s[10]OUT=$(smenu -e2 -i1 t0007.in)
+\S[150]\s[150]\r
+\S[150]\s[10]echo ":$\s[10]OUT:"
+exit 0
diff --git a/tests/in-ex-clusions/t0008.good b/tests/in-ex-clusions/t0008.good
new file mode 100644
index 0000000..7c0b135
--- /dev/null
+++ b/tests/in-ex-clusions/t0008.good
@@ -0,0 +1,11 @@
+$ OUT=$(smenu -i1 -e2 t0008.in)
+
+1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+0:07 2:24 4:24 6:24 8:24 10:24 12:24 14:24 16:24 24:24 25:24 48:24 49:24
+$
+
+$ echo ":$OUT:"
+
+:1:
+
+$ exit 0
diff --git a/tests/in-ex-clusions/t0008.in b/tests/in-ex-clusions/t0008.in
new file mode 120000
index 0000000..0abc8f1
--- /dev/null
+++ b/tests/in-ex-clusions/t0008.in
@@ -0,0 +1 @@
+data1 \ No newline at end of file
diff --git a/tests/in-ex-clusions/t0008.tst b/tests/in-ex-clusions/t0008.tst
new file mode 100644
index 0000000..fe20bef
--- /dev/null
+++ b/tests/in-ex-clusions/t0008.tst
@@ -0,0 +1,4 @@
+\S[150]\s[10]OUT=$(smenu -i1 -e2 t0008.in)
+\S[150]\s[150]\r
+\S[150]\s[10]echo ":$\s[10]OUT:"
+exit 0