[PATCH] The substitution flags (v!) are forbidden, also forbid (!v)

Philippe Altherr <[email protected]> Fri, 10 Jul 2026 13:17:12 +0200
Newsgroups gmane.comp.shells.zsh.devel
Message-ID <CAGdYchvJ447snLP1JAEQXrKKPRB=Ht4NZ=SdUzJBgkKibEhyOA@mail.gmail.com>
- The substitution flags (v!) are forbidden, also forbid (!v)
<https://github.com/zsh-users/zsh/compare/master...paltherr:zsh:fix-bang-flag-check-in-substitutions>

Philippe
fix-bang-flag-check-in-substitutions.txt (text/plain, 397 B)
diff --git a/Src/subst.c b/Src/subst.c
index eef713a8c..dacee921d 100644
--- a/Src/subst.c
+++ b/Src/subst.c
@@ -2394,7 +2394,7 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int pf_flags,
 		    hkeys = SCANPM_WANTKEYS;
 		    break;
 		case 'v':
-		    if (hvals & ~SCANPM_WANTVALS)
+		    if (hkeys & ~SCANPM_WANTKEYS)
 			goto flagerr;
 		    hvals = SCANPM_WANTVALS;
 		    break;