Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 31 Mar 2007 20:07:39 +0300
From:      Giorgos Keramidas <keramida@ceid.upatras.gr>
To:        Yar Tikhiy <yar@comp.chem.msu.su>
Cc:        hackers@freebsd.org
Subject:   Re: sed -i
Message-ID:  <20070331170738.GB2687@kobe.laptop>
In-Reply-To: <20070331110221.GI98431@comp.chem.msu.su>
References:  <20070326135106.GG60831@comp.chem.msu.su> <460B76A0.5030200@aueb.gr> <20070330172133.GD98431@comp.chem.msu.su> <20070331110221.GI98431@comp.chem.msu.su>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2007-03-31 15:02, Yar Tikhiy <yar@comp.chem.msu.su> wrote:
>On Fri, Mar 30, 2007 at 09:21:33PM +0400, Yar Tikhiy wrote:
>[...]
>> If we've started to delete the pattern space, we should print the
>> text in place of it because `c' is for `change'.  BSD and GNU seds
>> have this bug, but Solaris sed doesn't have it.
>[...]
>
> By the way, I found myself w/o a Solaris account, but I was able
> to build Solaris sed in FreeBSD quickly from the OpenSolaris sources.
> All it took was downloading the following files:
>
> http://cvs.opensolaris.org/source/raw/onnv/onnv-gate/usr/src/ucbcmd/sed/sed.h
> http://cvs.opensolaris.org/source/raw/onnv/onnv-gate/usr/src/ucbcmd/sed/sed0.c
> http://cvs.opensolaris.org/source/raw/onnv/onnv-gate/usr/src/ucbcmd/sed/sed1.c
> http://cvs.opensolaris.org/source/raw/onnv/onnv-gate/usr/src/ucbhead/regexp.h
>
> and issuing this command:
>
> 	cc -I. -o sed sed*.c
>
> Voila!  (Their regexp.h offers definitions of its functions, not
> just their prototypes, which made my task very easy.)
>
> Perhaps other basic tools from Solaris could be built in this way
> for the purpose of testing, too, in case one needs them but has no
> Solaris account at hand.

Nice.  With very minor modifications, it may be possible to build more
of the OpenSolaris tools on FreeBSD.  For instance, the only change I
had to make to build the Solaris version of cat(1) on FreeBSD was:

%%%
--- cat.c.orig  Sat Mar 31 20:03:26 2007
+++ cat.c       Sat Mar 31 20:02:07 2007
@@ -43,7 +43,9 @@
 #include       <unistd.h>
 #include       <sys/mman.h>

+#ifdef __FreeBSD_version
 #include       <widec.h>
+#endif
 #include       <wctype.h>
 #include       <limits.h>
 #include       <libintl.h>
%%%

The Solaris version of cat(1) calls textdomain() and gettext()
explicitly, so I also had to use libintl.so from the Ports to compile it
successfully:

    $ cc -I/usr/local/include cat.c -L/usr/local/lib -lintl

But it does work, AFAICT.  I haven't tried localized message support
yet, but this will take a bit more effort :-)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070331170738.GB2687>