On Mon, 1 Jan 2007, Matthew R. Dempsky wrote:

> Some packages (e.g., binutils 2.17) want to issue sed commands like
> 
>   s,^.*/,,;s,^,avr-,;;s/$//
> 
> but OpenBSD's sed doesn't handle empty expressions as in this.  The
> patch below adds support for this.
> 
> (It also eliminates a useless null pointer check:  p is checked for
> nullity when it is set a few lines above the hunk, and p is also
> dereferenced later without null checks.)

A dangerous statement in the presense of labels....

This looks correct to me. SU even specifies the empty command.

BTW, tech@ or bugs@ is  better place to send diffs to.

        -Otto

> 
> Index: src/usr.bin/sed/compile.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/sed/compile.c,v
> retrieving revision 1.22
> diff -p -u -r1.22 compile.c
> --- src/usr.bin/sed/compile.c 9 Oct 2006 00:23:56 -0000       1.22
> +++ src/usr.bin/sed/compile.c 2 Jan 2007 04:28:29 -0000
> @@ -161,8 +161,12 @@ compile_stream(struct s_command **link)
>               }
>  
>  semicolon:   EATSPACE();
> -             if (p && (*p == '#' || *p == '\0'))
> +             if (*p == '#' || *p == '\0')
>                       continue;
> +             if (*p == ';') {
> +                     p++;
> +                     goto semicolon;
> +             }
>               *link = cmd = xmalloc(sizeof(struct s_command));
>               link = &cmd->next;
>               cmd->nonsel = cmd->inrange = 0;

Reply via email to