ash: use pgetc_eatbnl() in more places
Part of upstream commit: Date: Thu Mar 8 08:37:11 2018 +0100 Author: Harald van Dijk <harald@gigawatt.nl> parser: use pgetc_eatbnl() in more places dash has a pgetc_eatbnl function in parser.c which skips any backslash-newline combinations. It's not used everywhere it could be. There is also some duplicated backslash-newline handling elsewhere in parser.c. Replace most of the calls to pgetc() with calls to pgetc_eatbnl() and remove the duplicated backslash-newline handling. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Not adding "readtoken1(pgetc_eatbnl(), DQSYNTAX..." changes, since readtoken1() handles the "starts with backslash + newline" case itself. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
43
shell/ash_test/ash-heredoc/heredoc_backslash1.right
Normal file
43
shell/ash_test/ash-heredoc/heredoc_backslash1.right
Normal file
@@ -0,0 +1,43 @@
|
||||
Quoted heredoc:
|
||||
a\
|
||||
b
|
||||
a\\
|
||||
b
|
||||
123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
|
||||
-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
|
||||
123456 `echo v'-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-'`
|
||||
123456 $(echo v'-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-')
|
||||
c\
|
||||
|
||||
Unquoted heredoc:
|
||||
a b
|
||||
a\
|
||||
b
|
||||
123456 -qwerty-\t-\-\"-\'-`-\--\z-\*-\?-
|
||||
-qwerty-\t-\-\"-\'-`-\--\z-\*-\?-
|
||||
123456 v-$a-\t-\-\"-\x-`-\--\z-\*-\?-
|
||||
123456 v-$a-\t-\\-\"-\x-\`-\--\z-\*-\?-
|
||||
cEOF2
|
||||
|
||||
Quoted -heredoc:
|
||||
a\
|
||||
b
|
||||
a\\
|
||||
b
|
||||
123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
|
||||
-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
|
||||
123456 `echo v'-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-'`
|
||||
123456 $(echo v'-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-')
|
||||
c\
|
||||
|
||||
Unquoted -heredoc:
|
||||
a b
|
||||
a\
|
||||
b
|
||||
123456 -qwerty-\t-\-\"-\'-`-\--\z-\*-\?-
|
||||
-qwerty-\t-\-\"-\'-`-\--\z-\*-\?-
|
||||
123456 v-$a-\t-\-\"-\x-`-\--\z-\*-\?-
|
||||
123456 v-$a-\t-\\-\"-\x-\`-\--\z-\*-\?-
|
||||
cEOF4
|
||||
|
||||
Done: 0
|
Reference in New Issue
Block a user