1 /* This is a kludge to get around the Microsoft C spawn functions' propensity
2 to remove the outermost set of double quotes from all arguments. */
4 #define index(s,c) strchr((s),(c))
6 extern char *malloc ();
12 static char sh_chars
[] = "\"";
18 for (i
=1; argv
[i
]; i
++)
21 len
= strlen (argv
[i
]);
22 new_argv
= malloc (2*len
+3);
25 for (p
= argv
[i
]; *p
!= '\0'; ++p
)
27 if (index (sh_chars
, *p
) != 0)
35 return (const char * const *) argv
;
38 int __spawnv (mode
, cmdname
, argv
)
43 _spawnv (mode
, cmdname
, fix_argv (argv
));
46 int __spawnvp (mode
, cmdname
, argv
)
51 _spawnvp (mode
, cmdname
, fix_argv (argv
));
54 int spawnve (mode
, cmdname
, argv
, envp
)
58 const char *const *envp
;
60 _spawnve (mode
, cmdname
, fix_argv (argv
), envp
);
63 int __spawnvpe (mode
, cmdname
, argv
, envp
)
67 const char *const *envp
;
69 _spawnvpe (mode
, cmdname
, fix_argv (argv
), envp
);