summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--Src/text.c3
-rw-r--r--Test/C02cond.ztst12
3 files changed, 20 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 907f9fe79..902ff8275 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-01-04  Peter Stephenson  <pws@csr.com>
+
+	* 25356: Src/text.c, Test/C02cond.ztst: "=~" wasn't handled by
+	the code that retrieves a printed representation.
+	Non-interactively this caused a crash.
+
 2008-01-04  Clint Adams  <clint@zsh.org>
 
 	* 24349: Functions/Misc/run-help: add comment about HELPDIR to
diff --git a/Src/text.c b/Src/text.c
index 595ebc346..593c25776 100644
--- a/Src/text.c
+++ b/Src/text.c
@@ -732,7 +732,8 @@ gettext2(Estate state)
 			    taddstr(" ");
 			    taddstr(ecgetstr(state, EC_NODUP, NULL));
 			    if (ctype == COND_STREQ ||
-				ctype == COND_STRNEQ)
+				ctype == COND_STRNEQ ||
+				ctype == COND_REGEX)
 				state->pc++;
 			} else {
 			    /* Unary test: `-f foo' etc. */ 
diff --git a/Test/C02cond.ztst b/Test/C02cond.ztst
index 2d0991785..0057e3a10 100644
--- a/Test/C02cond.ztst
+++ b/Test/C02cond.ztst
@@ -211,6 +211,18 @@ F:Failures in these cases do not indicate a problem in the shell.
 0:-nt shouldn't abort on non-existent files
 >status = 1
 
+# core dumps on failure
+  if zmodload -i zsh/regex 2>/dev/null; then
+     echo >regex_test.sh 'if [[ $# = 1 ]]; then
+	if [[ $1 =~ /?[^/]+:[0-9]+:$ ]]; then
+	  :
+	fi
+      fi
+      exit 0'
+      $ZTST_testdir/../Src/zsh -f ./regex_test.sh
+  fi
+0:regex tests shouldn't crash
+
 %clean
   # This works around a bug in rm -f in some versions of Cygwin
   chmod 644 unmodish