2 * Copyright (c) 1999 Olaf Flebbe o.flebbe@gmx.de
4 * You may distribute under the terms of either the GNU General Public
5 * License or the Artistic License, as specified in the README file.
12 #include <sys/unistd.h>
22 do_spawn( char *cmd) {
28 do_aspawn ( void *vreally, void **vmark, void **vsp) {
32 SV *really = (SV*)vreally;
33 SV **mark = (SV**)vmark;
48 ptr = argv =(char**) malloc ((sp-mark+3)*sizeof (char*));
50 while (++mark <= sp) {
51 if (*mark && (str = SvPV_nolen(*mark)))
58 cmd = strdup((const char*)(really ? SvPV_nolen(really) : argv[0]));
60 rc = spawnvp( P_WAIT, cmd, argv);
68 XS(epoc_getcwd) /* more or less stolen from win32.c */
71 /* Make the host for current directory */
76 buffer = (char *) malloc( buflen);
80 while ((NULL == ( ptr = getcwd( buffer, buflen))) && (errno == ERANGE)) {
82 if (NULL == realloc( buffer, buflen)) {
90 * then it worked, set PV valid,
95 SV *sv = sv_newmortal();
98 for (tptr = ptr; *tptr != '\0'; tptr++) {
109 #ifndef INCOMPLETE_TAINTS
120 Perl_init_os_extras(void)
123 char *file = __FILE__;
124 newXS("EPOC::getcwd", epoc_getcwd, file);