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>