mirror of
https://github.com/vim/vim
synced 2025-05-02 22:37:47 +02:00
This commit adds support for ksh93 shared-state command substitutions (syntax: ${ command; }) and mksh's value substitutions (syntax: ${|command;}) in the sh syntax script. Also add a syntax test for ksh subshares with dumps included to make sure it doesn't regress. fixes: #9514 Signed-off-by: Johnothan King <johnothanking@protonmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
49 lines
1 KiB
Bash
49 lines
1 KiB
Bash
#!/bin/ksh
|
|
|
|
# This script is a test file for ksh93 shared-state
|
|
# command substitutions (subshares) and mksh value
|
|
# substitutions (valsubs).
|
|
|
|
# ======
|
|
# Below is subshare syntax supported by both ksh93 and mksh.
|
|
print ${ echo one }
|
|
print ${ echo two
|
|
}
|
|
print ${
|
|
echo three }
|
|
print ${ echo 'four'; }
|
|
print ${ echo 'five' ;}
|
|
print ${ echo 'six'
|
|
}
|
|
print ${ echo 'seven' }
|
|
echo ${ print 'eight' }
|
|
typeset nine=${ pwd; }
|
|
|
|
# ======
|
|
# Value substitutions of the form ${|command} are only
|
|
# supported by mksh, not ksh93.
|
|
if ! command eval '((.sh.version >= 20070703))' 2>/dev/null; then
|
|
valsubfunc() {
|
|
REPLY=$1
|
|
}
|
|
echo ${|valsubfunc ten}
|
|
print "${|valsubfunc eleven;}"
|
|
printf '%s' "${|valsubfunc twelve }"
|
|
unlucky=${|valsubfunc thirteen
|
|
}
|
|
typeset notafloat=${|valsubfunc notanumber }
|
|
print $unlucky $notanumber
|
|
${|echo foo}
|
|
${|echo bar
|
|
}
|
|
fi
|
|
|
|
# ======
|
|
# Shared-state command substitutions using the syntax ${<file;}
|
|
# are only supported by ksh93, not mksh.
|
|
echo ${
|
|
printf %s str
|
|
} > /tmp/strfile
|
|
echo ${</tmp/strfile;}
|
|
|
|
exit 0
|