Date: Fri, 06 Jul 2007 22:34:32 +0800 From: Xin LI <delphij@delphij.net> To: YAMAMOTO Shigeru <shigeru@iij.ad.jp> Cc: freebsd-current@freebsd.org, dogcube@gmail.com Subject: Re: buildworld error Message-ID: <468E52F8.2000501@delphij.net> In-Reply-To: <20070706.193428.212414018.shigeru@iij.ad.jp> References: <1183669505.10705.22.camel@patricia-laptop> <20070706.193428.212414018.shigeru@iij.ad.jp>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
YAMAMOTO Shigeru wrote:
> Hi, all,
>
> I check a code to generate 'md2hl.c'.
> I find 'sed' does not work right.
>
> I test following patterns.
> % echo "abcdefg" | sed -e 's/abc/hij/g'
> hijdefg
> % echo "ABCDEFG" | sed -e 's/abc/hij/g'
> hijDEFG
> % echo "abcdefg" | sed -e 's/ABC/HIJ/g'
> HIJdefg
> % echo "ABCDEFG" | sed -e 's/ABC/HIJ/g'
> HIJDEFG
>
> It seems me 'sed' always work with '/I'.
> #'I' option is added at '2007/07/04 16:42:41'.
>
> Is it bug?
I think so. Try attached patch.
Cheers,
[-- Attachment #2 --]
Index: compile.c
===================================================================
RCS file: /home/ncvs/src/usr.bin/sed/compile.c,v
retrieving revision 1.29
diff -u -p -r1.29 compile.c
--- compile.c 4 Jul 2007 16:42:41 -0000 1.29
+++ compile.c 6 Jul 2007 07:00:47 -0000
@@ -318,19 +318,19 @@ nonsel: /* Now parse the command */
errx(1,
"%lu: %s: substitute pattern can not be delimited by newline or backslash",
linenum, fname);
- if ((cmd->u.s = malloc(sizeof(struct s_subst))) == NULL)
+ if ((cmd->u.s = calloc(1, sizeof(struct s_subst))) == NULL)
err(1, "malloc");
p = compile_delimited(p, re);
if (p == NULL)
errx(1,
"%lu: %s: unterminated substitute pattern", linenum, fname);
+ --p;
+ p = compile_subst(p, cmd->u.s);
+ p = compile_flags(p, cmd->u.s);
if (*re == '\0')
cmd->u.s->re = NULL;
else
cmd->u.s->re = compile_re(re, cmd->u.s->icase);
- --p;
- p = compile_subst(p, cmd->u.s);
- p = compile_flags(p, cmd->u.s);
EATSPACE();
if (*p == ';') {
p++;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?468E52F8.2000501>
