diff options
author | P. J. McDermott <pj@pehjota.net> | 2016-02-21 03:02:35 (EST) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2016-02-21 03:02:35 (EST) |
commit | e86c3c67d60c8b240b1693cda7af5079e39e8dce (patch) | |
tree | ad96b84b2978ed99353b5c48d68db816a70bae8a /parsing/lexer.sh | |
parent | 7d41cd8c37232fb86e75fec705b3fda2b5ecb562 (diff) | |
download | eggshell-e86c3c67d60c8b240b1693cda7af5079e39e8dce.zip eggshell-e86c3c67d60c8b240b1693cda7af5079e39e8dce.tar.gz eggshell-e86c3c67d60c8b240b1693cda7af5079e39e8dce.tar.bz2 |
Preserve leading backslashes in words
Diffstat (limited to 'parsing/lexer.sh')
-rw-r--r-- | parsing/lexer.sh | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/parsing/lexer.sh b/parsing/lexer.sh index aa72ec1..c856d99 100644 --- a/parsing/lexer.sh +++ b/parsing/lexer.sh @@ -109,7 +109,7 @@ next() continue ;; esac - next_word + next_word \\ return ;; '#') @@ -172,7 +172,7 @@ next() return ;; *) - next_word + next_word '' return ;; esac @@ -327,6 +327,8 @@ next_io() next_word() { + local prev_c="${1}" + shift 1 local res= local word= @@ -337,7 +339,7 @@ next_word() res="${res#*${RS}}" c="${res%%${RS}*}" res="${res#*${RS}}" - word="${res%%${RS}*}" + word="${prev_c}${res%%${RS}*}" # We must advance lineno because scan_word() was run in a subshell. lineno=$((${lineno} + ${ln_off})) |