mirror of
https://github.com/golang/go
synced 2024-11-23 14:50:07 -07:00
os: keep the $ if a variable is not detected
If the character after $ cannot be detected as a valid variable declaration, do not gobble the $. Fixes #24345 Change-Id: Iec47be1f2e4f8147b8ceb64c30778eae8045b58f Reviewed-on: https://go-review.googlesource.com/103055 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
8623503fe5
commit
7bf631e1fc
@ -21,7 +21,12 @@ func Expand(s string, mapping func(string) string) string {
|
||||
if s[j] == '$' && j+1 < len(s) {
|
||||
buf = append(buf, s[i:j]...)
|
||||
name, w := getShellName(s[j+1:])
|
||||
buf = append(buf, mapping(name)...)
|
||||
// If the name is empty, keep the $.
|
||||
if name == "" {
|
||||
buf = append(buf, s[j])
|
||||
} else {
|
||||
buf = append(buf, mapping(name)...)
|
||||
}
|
||||
j += w
|
||||
i = j + 1
|
||||
}
|
||||
|
@ -49,6 +49,8 @@ var expandTests = []struct {
|
||||
{"${HOME}", "/usr/gopher"},
|
||||
{"${H}OME", "(Value of H)OME"},
|
||||
{"A$$$#$1$H$home_1*B", "APIDNARGSARGUMENT1(Value of H)/usr/foo*B"},
|
||||
{"start$+middle$^end$", "start$+middle$^end$"},
|
||||
{"mixed$|bag$$$", "mixed$|bagPID$"},
|
||||
}
|
||||
|
||||
func TestExpand(t *testing.T) {
|
||||
|
Loading…
Reference in New Issue
Block a user