summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Src/lex.c2
-rw-r--r--Test/D04parameter.ztst17
3 files changed, 21 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 09bca486d..bfa4f25b2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2026-05-02 dana <dana@dana.is>
+ * 54437 (tweaked): Src/lex.c, Test/D04parameter.ztst: lex: fix
+ <-> in parameter flags
+
* 54424: Doc/Zsh/params.yo, NEWS, Test/D04parameter.ztst:
ZSH_EXEPATH: improve documentation, add test
diff --git a/Src/lex.c b/Src/lex.c
index efbb62b66..35f1e8dc2 100644
--- a/Src/lex.c
+++ b/Src/lex.c
@@ -1198,7 +1198,7 @@ gettokstr(int c, int sub)
break;
}
hungetc(e);
- if(isnumglob()) {
+ if (!in_brace_param && isnumglob()) {
add(Inang);
while ((c = hgetc()) != '>')
add(c);
diff --git a/Test/D04parameter.ztst b/Test/D04parameter.ztst
index 0399faa8e..e192d480d 100644
--- a/Test/D04parameter.ztst
+++ b/Test/D04parameter.ztst
@@ -788,6 +788,23 @@
0:${(r...)...}
>why?! in?!! goodn name? am?!! I?!!! doing this?
+ print -r - ${(l<3><->):-}
+ print -r - ${(l<3><1->):-}
+ # these cases weren't affected by the fix for this, but just in case
+ str=abc123xyz
+ print -r - ${str//<->/.}
+ print -r - ${str//<1->/.}
+ arr=( abc 123 xyz )
+ print -r - ${arr[(r)<->]}
+ print -r - ${arr[(r)<1->]}
+0:regression test for <-> in flags
+>---
+>-1-
+>abc.xyz
+>abc.xyz
+>123
+>123
+
array=(I\'m simply putting a brave face on)
print ${(j:--:)array}
0:${(j)...}