Re: (no subject)
[email protected] (Bob Proulx) Sun, 26 Oct 2003 10:45:44 -0700
| Newsgroups | gmane.comp.gnu.sh-utils.bugs |
|---|---|
| Message-ID | <[email protected]> |
Let me redirect you to <[email protected]>. I am sure that someone there would have comment about your issue with sed. Please be sure to include a subject line as noted in the 'sed' information. Your message to bug-shellutils did not have a subject. Thanks, Bob sed --version E-mail bug reports to: [email protected] . Be sure to include the word ``sed'' somewhere in the ``Subject:'' field. [email protected] wrote: > Subject Brokenness in sed > > I've searched around and this is apparently a very old problem. > When you join two lines into the pattern space with the 'N' > command, an insertion should precede all the text in the > current pattern. It does on every UNIX box I have access to, > except for GNU's sed program. Further, there is no option for > either normalizing or "ab-normalizing" the behavior. This is > a bug. It needs to be possible to get normal behavior, preferably > without having to specify an ``--insert-normally'' option. > > Here is a short script (from the GCC fixinclude stuff) that > demonstrates the problem. > > #! /bin/ksh > > res=test-$$ > > # # # # # # # INPUT FILE: > # > cat > ${res}-in.h <<'_EOF_' > #ifndef TEST > #define TEST > > extern "C++" { > inline void *memchr(void *__1, int __2, size_t __3) > { return (void *)memchr((const void *)__1, __2, __3); } > inline char *strstr(char *__1, const char *__2) > { return (char *)strstr((const char *)__1, __2); } > } > > #endif /* TEST */ > _EOF_ > > # # # # # # # RESULT FILE: > # > cat > ${res}-samp.h <<'_EOF_' > #ifndef TEST > #define TEST > > #ifndef __GNUC__ > extern "C++" { > inline void *memchr(void *__1, int __2, size_t __3) > { return (void *)memchr((const void *)__1, __2, __3); } > inline char *strstr(char *__1, const char *__2) > { return (char *)strstr((const char *)__1, __2); } > } > #endif /* ! __GNUC__ */ > > #endif /* TEST */ > _EOF_ > > # # # # # # # OUTPUT FILE: > # > SED=${SED:-$PWD/=b/sed/sed} > [ -x ${SED} ] || SED=`which sed` > > cmd='/extern "C\+\+"/N > /inline void.*memchr/i\ > #ifndef __GNUC__ > /return.*strstr/N > /return.*strstr.*}/a\ > #endif /* ! __GNUC__ */' > > ${SED} "${cmd}" ${res}-in.h > ${res}-out.h > > if cmp ${res}-samp.h ${res}-out.h > /dev/null > then > exitcode=0 > echo "'sed' works correctly" > else > echo "INVALID RESULT" > exitcode=1 > fi > rm -f ${res}-* > exit $exitcode