Subject: Re: bug in sed
To: John F. Woods <jfwhome!jfw@uunet.UU.NET>
From: Frank van der Linden <vdlinden@fwi.uva.nl>
List: current-users
Date: 03/24/1994 16:08:55
John F. Woods writes:
> 
> In building sc 6.21, I discovered that sed is misbehaving.  Given the
> sed command line
> 
> sed -e '/Revision/!D' -e 's/.*$Revision: \([0-9.]*\) .*/\1/' version.c
> 
> with the input file
> 
> /*
>  * CODE REVISION NUMBER:
>  *
>  * The part after the first colon, except the last char, appears on the screen.
>  */
> 
> char *rev = "$Revision: 6.21 $";
> 
> the output of sed (compiled from Saturday's source) is
> 
> Oe/6.21
> 
> I'll try to research it further tonight.
> 
> 

About a week ago, I experienced another (perhaps the same) bug in
sed. In a makefile, there was a line to run a file through the preprocessor,
and then remove any #line directives from it:

        @$(CC) -E $(CFLAGS) efuns.c | sed '/^#/D'

This worked OK on SunOS, AIX, and also 386bsd 0.1. However, NetBSD-current's
sed (March 11th, don't think there have been any changes to it since then)
produced rubbish. To be slightly more specific: it placed 2 zeroes whereever
it had performed the 'D' operation.

Should be easy to fix, but I did not look into it.

- Frank

-- 
+----------------------------------------------------------------------------+
| I am not sure what a .signature is for, but my mom told me to make one.    |
| Frank van der Linden, vdlinden@fwi.uva.nl                                  |
+----------------------------------------------------------------------------+

------------------------------------------------------------------------------