summaryrefslogtreecommitdiff
path: root/Src/pattern.c
diff options
context:
space:
mode:
authorAxel Beckert <abe@deuxchevaux.org>2014-10-08 01:29:12 +0200
committerAxel Beckert <abe@deuxchevaux.org>2014-10-08 01:29:12 +0200
commit1c3f90e3af0c3d6c8e946653169287baf5814ad4 (patch)
tree9b15e9ad8157bd8f9f697f6dc4e59146b6833c59 /Src/pattern.c
parent1ffb184b46edd34d389af4e016abcaafec454d44 (diff)
parent9982ab6fb5266298c056326ed265fc8560202603 (diff)
downloadzsh-1c3f90e3af0c3d6c8e946653169287baf5814ad4.tar.gz
zsh-1c3f90e3af0c3d6c8e946653169287baf5814ad4.zip
Merge commit '9982ab6fb5266298c056326ed265fc8560202603' into debian
This is exactly one commit after the zsh-5.0.7 and adds one missing (and not unimportant) changelog entry for the 5.0.7 release.
Diffstat (limited to 'Src/pattern.c')
-rw-r--r--Src/pattern.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/Src/pattern.c b/Src/pattern.c
index 94a299ebb..df5e602ca 100644
--- a/Src/pattern.c
+++ b/Src/pattern.c
@@ -3012,6 +3012,16 @@ patmatch(Upat prog)
break;
case P_STAR:
/* Handle specially for speed, although really P_ONEHASH+P_ANY */
+ while (P_OP(next) == P_STAR) {
+ /*
+ * If there's another * following we can optimise it
+ * out. Chains of *'s can give pathologically bad
+ * performance.
+ */
+ scan = next;
+ next = PATNEXT(scan);
+ }
+ /*FALLTHROUGH*/
case P_ONEHASH:
case P_TWOHASH:
/*