#928: 6.4: all shell scripts broken from command line + tcl; wx addon scripts broken ----------------------+----------------------------------------------------- Reporter: hamish | Owner: [email protected] Type: defect | Status: new Priority: blocker | Milestone: 6.4.0 Component: default | Version: svn-releasebranch64 Resolution: | Keywords: addons Platform: Linux | Cpu: x86-64 ----------------------+----------------------------------------------------- Comment (by glynn):
Replying to [comment:1 hamish]: > I guess it has to do with this, but unless popen() has different quoting needs I don't see the difference: > > r40849 (relbr64) `Replace G_popen() with popen() (backport from devbr6, r40834)` > > > does this need to be backported to 6.x?: > > r40904 (trunk) `G_spawn_ex() expects descriptors as "int"s, not "char*".` It can't be; the code which it fixes doesn't exist in 6.4 (and isn't actually used in 6.5, and probably shouldn't have been back-ported). But that's not the problem here. The problem is r40716, which back-ports r40713. This was fixed in 6.5 with r40724, which also needs to be back- ported. The various "popen"-related issues which appear to be getting conflated are: 1. The [G_]popen() of $GRASS_WISH for the parameter dialogs. Originally, $GRASS_WISH wasn't quoted, which may create problems on Windows if it's somewhere within `$ProgramFiles`. So r40713 quotes it, but I screwed up (the Unix version used single quotes instead of double quotes, and wasn't tested). This was fixed in r40724. It isn't applicable to 7.0, as GRASS_GUI=tcltk isn't supported there. 2. Eliminating (the old) G_popen() in favour of popen(). G_popen() just mimics popen() on Unix and doesn't work on Windows (which actually provides a Unix-style popen()). 3. In 7.0, G_popen() is implemented on top of G_spawn_ex() and has a completely different interface: it accepts an argument list (char**) rather than a string to be interpreted by the shell. Currently, it's only used by G_pager() (interface to $GRASS_PAGER) and the code which emails error messages to the user. In 6.x, it isn't used at all; with popen() being eliminated, lib/gis/popen.c can (and should) be removed. -- Ticket URL: <https://trac.osgeo.org/grass/ticket/928#comment:2> GRASS GIS <http://grass.osgeo.org>
_______________________________________________ grass-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/grass-dev
