aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--eval.c6
2 files changed, 10 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 6f626cd7..f8cd101c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-02-05 Andrew J. Schorr <aschorr@telemetry-investments.com>
+
+ * eval.c (set_IGNORECASE): If IGNORECASE has a numeric value, try
+ using that before treating it as a string. This fixes a problem
+ where setting -v IGNORECASE=0 on the command line was not working
+ properly.
+
2015-02-01 Arnold D. Robbins <arnold@skeeve.com>
Move POSIX requirement for disallowing paramater names with the
diff --git a/eval.c b/eval.c
index 82b11719..2ba79956 100644
--- a/eval.c
+++ b/eval.c
@@ -707,6 +707,8 @@ set_IGNORECASE()
load_casetable();
if (do_traditional)
IGNORECASE = false;
+ else if ((n->flags & (NUMCUR|NUMBER)) != 0)
+ IGNORECASE = ! iszero(n);
else if ((n->flags & (STRING|STRCUR)) != 0) {
if ((n->flags & MAYBE_NUM) == 0) {
(void) force_string(n);
@@ -715,9 +717,7 @@ set_IGNORECASE()
(void) force_number(n);
IGNORECASE = ! iszero(n);
}
- } else if ((n->flags & (NUMCUR|NUMBER)) != 0)
- IGNORECASE = ! iszero(n);
- else
+ } else
IGNORECASE = false; /* shouldn't happen */
set_RS(); /* set_RS() calls set_FS() if need be, for us */