47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From c99f320d5c0fd98fe88d9cea5407eb7ad9d50e8a Mon Sep 17 00:00:00 2001
 | ||
| From: Paul Eggert <eggert@cs.ucla.edu>
 | ||
| Date: Mon, 4 Apr 2022 23:52:49 -0700
 | ||
| Subject: zgrep: port to POSIX sed
 | ||
| MIME-Version: 1.0
 | ||
| Content-Type: text/plain; charset=UTF-8
 | ||
| Content-Transfer-Encoding: 8bit
 | ||
| 
 | ||
| * zgrep.in (res): When escaping the file name do not rely on GNU
 | ||
| sed’s extension to POSIX with respect to s/.../\n/.  Instead, use
 | ||
| features that should also work with AIX and/or Solaris sed.  This is
 | ||
| simpler anyway, and would have prevented the recently-fixed bug.
 | ||
| ---
 | ||
|  zgrep.in | 15 ++++-----------
 | ||
|  1 file changed, 4 insertions(+), 11 deletions(-)
 | ||
| 
 | ||
| diff --git a/zgrep.in b/zgrep.in
 | ||
| index bdf7da2..6a16dd1 100644
 | ||
| --- a/zgrep.in
 | ||
| +++ b/zgrep.in
 | ||
| @@ -220,18 +220,11 @@ do
 | ||
|        case $i in
 | ||
|        (*'
 | ||
|  '* | *'&'* | *'\'* | *'|'*)
 | ||
| -        i=$(printf '%s\n' "$i" |
 | ||
| -            sed '
 | ||
| -              :start
 | ||
| -              $!{
 | ||
| -                N
 | ||
| -                b start
 | ||
| -              }
 | ||
| -              s/[&\|]/\\&/g
 | ||
| -              s/\n/\\n/g
 | ||
| -            ');;
 | ||
| +          icolon=$(printf '%s\n' "$i:" |
 | ||
| +                     sed -e 's/[&\|]/\\&/g' -e '$!s/$/\\/');;
 | ||
| +      (*) icolon="$i:";;
 | ||
|        esac
 | ||
| -      sed_script="s|^|$i:|"
 | ||
| +      sed_script="s|^|$icolon|"
 | ||
|  
 | ||
|        # Fail if grep or sed fails.
 | ||
|        r=$(
 | ||
| -- 
 | ||
| cgit v1.1
 | ||
| 
 |