 22e3e0241a
			
		
	
	22e3e0241a
	
	
	
		
			
			chainlint.sed recognizes multi-line quoted strings within subshells:
    echo "abc
        def" >out &&
so it can avoid incorrectly classifying lines internal to the string as
breaking the &&-chain. To identify the first line of a multi-line
string, it checks if the line contains a single quote. However, this is
fragile and can be easily fooled by a line containing multiple strings:
    echo "xyz" "abc
        def" >out &&
Make detection more robust by checking for an odd number of quotes
rather than only a single one.
(Escaped quotes are not handled, but support may be added later.)
The original multi-line string recognizer rather cavalierly threw away
all but the final quote, whereas the new one is careful to retain all
quotes, so the "expected" output of a couple existing chainlint tests is
updated to account for this new behavior.
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
	
		
			
				
	
	
		
			5 lines
		
	
	
		
			50 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			5 lines
		
	
	
		
			50 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| (
 | |
| ?!AMP?!	cat && echo "multi-line	string"
 | |
| 	bap
 | |
| >)
 |