sed -i

Giorgos Keramidas keramida at ceid.upatras.gr
Sat Mar 31 18:53:40 UTC 2007


On 2007-03-31 15:02, Yar Tikhiy <yar at 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 :-)



More information about the freebsd-hackers mailing list