aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/recsel.c6
-rw-r--r--common/t-recsel.c7
2 files changed, 9 insertions, 4 deletions
diff --git a/common/recsel.c b/common/recsel.c
index 36aa01476..a778419db 100644
--- a/common/recsel.c
+++ b/common/recsel.c
@@ -527,7 +527,11 @@ recsel_select (recsel_expr_t selector,
if (recsel_debug)
log_debug ("%s: name=%s got value '%s'\n", __func__, se->name, value);
if (!value)
- value = "";
+ {
+ se = se->next;
+ result = 0;
+ continue;
+ }
if (!*value)
{
diff --git a/common/t-recsel.c b/common/t-recsel.c
index ff68e54c3..679ea7aff 100644
--- a/common/t-recsel.c
+++ b/common/t-recsel.c
@@ -324,7 +324,7 @@ run_test_2 (void)
FREEEXPR();
ADDEXPR ("nothing -z");
- if (!recsel_select (se, test_2_getval, NULL))
+ if (recsel_select (se, test_2_getval, NULL))
fail (0, 0);
FREEEXPR();
ADDEXPR ("nothing -n");
@@ -352,7 +352,7 @@ run_test_2 (void)
FREEEXPR();
ADDEXPR ("nothing -f");
- if (!recsel_select (se, test_2_getval, NULL))
+ if (recsel_select (se, test_2_getval, NULL))
fail (0, 0);
FREEEXPR();
ADDEXPR ("nothing -t");
@@ -387,7 +387,8 @@ run_test_2 (void)
fail (0, 0);
FREEEXPR();
- ADDEXPR ("letter -f");
+ ADDEXPR ("letters -f");
+ recsel_dump (se);
if (!recsel_select (se, test_2_getval, NULL))
fail (0, 0);
FREEEXPR();