hush: fix quoted "${notexist-}" expansion to not disappear
function old new delta expand_one_var 2296 2311 +15 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		@@ -5,3 +5,5 @@ _aaaa _aaaa _aaaa _aaaa _aaaa
 | 
			
		||||
_ _ _ _word _word
 | 
			
		||||
_ _ _ _ _word
 | 
			
		||||
_fff _fff _fff _fff _fff
 | 
			
		||||
1:1
 | 
			
		||||
0:0
 | 
			
		||||
 
 | 
			
		||||
@@ -21,3 +21,8 @@ echo _$f _${f-} _${f:-} _${f-word} _${f:-word}
 | 
			
		||||
 | 
			
		||||
f=fff
 | 
			
		||||
echo _$f _${f-} _${f:-} _${f-word} _${f:-word}
 | 
			
		||||
 | 
			
		||||
set --
 | 
			
		||||
set -- "${1-}"; echo 1:$#
 | 
			
		||||
set --
 | 
			
		||||
set -- ${1-}; echo 0:$#
 | 
			
		||||
 
 | 
			
		||||
@@ -6132,6 +6132,12 @@ static int encode_then_append_var_plusminus(o_string *output, int n,
 | 
			
		||||
		/* string has no special chars
 | 
			
		||||
		 * && string has no $IFS chars
 | 
			
		||||
		 */
 | 
			
		||||
		if (dquoted) {
 | 
			
		||||
			/* Prints 1 (quoted expansion is a "" word, not nothing):
 | 
			
		||||
			 * set -- "${notexist-}"; echo $#
 | 
			
		||||
			 */
 | 
			
		||||
			output->has_quoted_part = 1;
 | 
			
		||||
		}
 | 
			
		||||
		return expand_vars_to_list(output, n, str);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6,3 +6,5 @@ _aaaa _aaaa _aaaa _aaaa _aaaa
 | 
			
		||||
_ _ _ _word _word
 | 
			
		||||
_ _ _ _ _word
 | 
			
		||||
_fff _fff _fff _fff _fff
 | 
			
		||||
1:1
 | 
			
		||||
0:0
 | 
			
		||||
 
 | 
			
		||||
@@ -22,3 +22,8 @@ echo _$f _${f-} _${f:-} _${f-word} _${f:-word}
 | 
			
		||||
 | 
			
		||||
f=fff
 | 
			
		||||
echo _$f _${f-} _${f:-} _${f-word} _${f:-word}
 | 
			
		||||
 | 
			
		||||
set --
 | 
			
		||||
set -- "${1-}"; echo 1:$#
 | 
			
		||||
set --
 | 
			
		||||
set -- ${1-}; echo 0:$#
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user