digitalmars.D.bugs - Fix for the linux spawnvp link bug
- Grzegorz Adam Hankiewicz (95/95) Jan 07 2006 Index: src/phobos/std/process.d
Index: src/phobos/std/process.d
===================================================================
--- src/phobos/std/process.d (revision 5)
+++ src/phobos/std/process.d (working copy)
-49,13 +49,15
/* ========================================================== */
-int spawnvp(int mode, char[] pathname, char[][] argv)
-{
- char** argv_ = cast(char**)alloca((char*).sizeof * (1 + argv.length));
+version(Windows) {
+ int spawnvp(int mode, char[] pathname, char[][] argv)
+ {
+ char** argv_ = cast(char**)alloca((char*).sizeof * (1 + argv.length));
- toAStringz(argv, argv_);
+ toAStringz(argv, argv_);
- return std.c.process.spawnvp(mode, toStringz(pathname), argv_);
+ return std.c.process.spawnvp(mode, toStringz(pathname), argv_);
+ }
}
/* ========================================================== */
Index: src/phobos/std/c/process.d
===================================================================
--- src/phobos/std/c/process.d (revision 5)
+++ src/phobos/std/c/process.d (working copy)
-18,14 +18,16
int system(char *);
-int spawnl(int, char *, char *,...);
-int spawnle(int, char *, char *,...);
-int spawnlp(int, char *, char *,...);
-int spawnlpe(int, char *, char *,...);
-int spawnv(int, char *, char **);
-int spawnve(int, char *, char **, char **);
-int spawnvp(int, char *, char **);
-int spawnvpe(int, char *, char **, char **);
+version(Windows) {
+ int spawnl(int, char *, char *,...);
+ int spawnle(int, char *, char *,...);
+ int spawnlp(int, char *, char *,...);
+ int spawnlpe(int, char *, char *,...);
+ int spawnv(int, char *, char **);
+ int spawnve(int, char *, char **, char **);
+ int spawnvp(int, char *, char **);
+ int spawnvpe(int, char *, char **, char **);
+}
enum { _P_WAIT, _P_NOWAIT, _P_OVERLAY };
-57,21 +59,23
void _endthreadex(uint);
-int _wsystem(wchar_t *);
-int _wspawnl(int, wchar_t *, wchar_t *, ...);
-int _wspawnle(int, wchar_t *, wchar_t *, ...);
-int _wspawnlp(int, wchar_t *, wchar_t *, ...);
-int _wspawnlpe(int, wchar_t *, wchar_t *, ...);
-int _wspawnv(int, wchar_t *, wchar_t **);
-int _wspawnve(int, wchar_t *, wchar_t **, wchar_t **);
-int _wspawnvp(int, wchar_t *, wchar_t **);
-int _wspawnvpe(int, wchar_t *, wchar_t **, wchar_t **);
+version(Windows) {
+ int _wsystem(wchar_t *);
+ int _wspawnl(int, wchar_t *, wchar_t *, ...);
+ int _wspawnle(int, wchar_t *, wchar_t *, ...);
+ int _wspawnlp(int, wchar_t *, wchar_t *, ...);
+ int _wspawnlpe(int, wchar_t *, wchar_t *, ...);
+ int _wspawnv(int, wchar_t *, wchar_t **);
+ int _wspawnve(int, wchar_t *, wchar_t **, wchar_t **);
+ int _wspawnvp(int, wchar_t *, wchar_t **);
+ int _wspawnvpe(int, wchar_t *, wchar_t **, wchar_t **);
-int _wexecl(wchar_t *, wchar_t *, ...);
-int _wexecle(wchar_t *, wchar_t *, ...);
-int _wexeclp(wchar_t *, wchar_t *, ...);
-int _wexeclpe(wchar_t *, wchar_t *, ...);
-int _wexecv(wchar_t *, wchar_t **);
-int _wexecve(wchar_t *, wchar_t **, wchar_t **);
-int _wexecvp(wchar_t *, wchar_t **);
-int _wexecvpe(wchar_t *, wchar_t **, wchar_t **);
+ int _wexecl(wchar_t *, wchar_t *, ...);
+ int _wexecle(wchar_t *, wchar_t *, ...);
+ int _wexeclp(wchar_t *, wchar_t *, ...);
+ int _wexeclpe(wchar_t *, wchar_t *, ...);
+ int _wexecv(wchar_t *, wchar_t **);
+ int _wexecve(wchar_t *, wchar_t **, wchar_t **);
+ int _wexecvp(wchar_t *, wchar_t **);
+ int _wexecvpe(wchar_t *, wchar_t **, wchar_t **);
+}
Jan 07 2006








Grzegorz Adam Hankiewicz <gradhanews ya.com>