mirror of
https://github.com/vim/vim
synced 2025-05-02 22:37:47 +02:00
- Define a general non-"contained" "shBracketExpr" group, and replace with it the "contained" bracket variant of "shOperator", adjusting the patterns for the competing conditional commands "[" and "[[". - Accommodate some unbalanced brackets (e.g. "[!][!]"). - Make the leading "!" (or "^") stand out in NON-matching bracket expressions. - Support literal newlines in parametric patterns (along with pathname globbings and "case" patterns). - Also match bracket expressions in: * parametric patterns (e.g. "${1#[ab]_}"); * pathname globbings (e.g. "[ab]*.txt"); * arguments for the "[[", "echo", and "print" commands. - Recognise collating symbols (e.g. "[.a.]") and equivalence classes (e.g. "[=a=]"). - Recognise end patterns for a pattern substitution form of parameter expansion and match bracket expressions in such patterns (e.g. "${1/%[.!]/;}"). fixes #15799 closes: #15941 References: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap09.html#tag_09_03_05 https://pubs.opengroup.org/onlinepubs/9799919799/utilities/V3_chap02.html#tag_19_14 https://git.savannah.gnu.org/gitweb/?p=bash.git;a=blob_plain;f=doc/bash.html;hb=37b7e91d64ad10b1a1815d12128c9475636df670 http://www.mirbsd.org/htman/i386/man1/mksh.htm Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
22 lines
730 B
Bash
22 lines
730 B
Bash
#!/bin/dash
|
|
# sh4
|
|
Variable=${VariableB:-{VariableC}}
|
|
Variable=${VariableB:-${VariableC:-{Var3:=eng}}}
|
|
|
|
# This gets marked as an error while its ok
|
|
Variable=${VariableB:-${VariableC:-{Var3:=eng}}}
|
|
Variable=${VariableB:=${VariableC:={Var3:=${Var4:-eng}}}}
|
|
Variable=${VariableB:=${VariableC:={Var3:=${Var4:-${Var5:-eng}}}}}
|
|
Variable=${VariableB:=${VariableC:={Var3:=${Var4:-${Var5:-$Var6}}}}}
|
|
|
|
# These are OK
|
|
Variable="${VariableB:-${VariableC:-{Var3:=eng}}}"
|
|
Variable="${VariableB:=${VariableC:={Var3:=${Var4:-eng}}}}"
|
|
|
|
# This gets marked as an error too
|
|
: ${VariableB:-${VariableC:-{Var3:=eng}}}
|
|
: ${VariableB:=${VariableC:={Var3:=${Var4:-eng}}}}
|
|
|
|
# This is OK
|
|
: ${VariableB:-${VariableC:-eng}}
|
|
: "${VariableB:-${VariableC:-eng}}"
|