bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-gnulib] Re: Porting to Win32


From: Bruno Haible
Subject: [Bug-gnulib] Re: Porting to Win32
Date: Mon, 2 Feb 2004 13:30:37 +0100
User-agent: KMail/1.5

Jeff Conrad wrote:
> I have been working with Werner Lemberg and Keith Marshall to complete a
> "native" port of GNU groff to Win32, building with MSVC. ... 
> ...
> 2.  Arguments that contain spaces.  The Win32 implementations of the exec*
>     and spawn* functions don't properly handle arguments that contain
>     spaces.  We have addressed this by providing a (hopefully) transparent
>     wrapper for spawnvp(), quoting arguments that contain spaces and
>     protecting combinations of double quotes and backslashes.  The
>     implementation is simple and seems to work quite well; however, just
>     after completing our spawnvp wrapper we noticed that you had done
>     something very similar for the GNU C library.

Slight correction: It's 'gnulib', the GNU portability library. The GNU C
library (glibc) has no Windows specific code in it.

>     It would seem desirable, if possible, to avoid having every project
>     that ports to Win32 develop a separate but similar means of dealing
>     with the idiotic Woe 32 argument passing.

Yes, that's one of the goals of 'gnulib'.

>     I notice that your approach
>     to the problem is a bit more complex than ours, and I don't pretend to
>     understand some of the situations in which the extra complexity might
>     be required (I can't see a case in which groff every would run programs
>     with the handles redirected to /dev/null).  I think we'd prefer to keep
>     our solution as simple and transparent as possible, but if you intend
>     to provide general facilities for properly running subprograms it might
>     be preferable to avoid re-inventing the wheel.

Since you say your code it simpler, can you please show it or tell me where
to find it? In the groff CVS, files src/include/nonposix.h and
src/roff/groff/pipeline.c, I don't see a function which quotes backslashes
and double-quotes.

Bruno





reply via email to

[Prev in Thread] Current Thread [Next in Thread]