comparison src/sysdep.c @ 82:6a378aca36af r20-0b91

Import from CVS: tag r20-0b91
author cvs
date Mon, 13 Aug 2007 09:07:36 +0200
parents c7528f8e288d
children 4be1180a9e89
comparison
equal deleted inserted replaced
81:ebca3d831cea 82:6a378aca36af
3238 #endif /* ENCAPSULATE_UNLINK */ 3238 #endif /* ENCAPSULATE_UNLINK */
3239 3239
3240 3240
3241 #ifdef ENCAPSULATE_EXECVP 3241 #ifdef ENCAPSULATE_EXECVP
3242 int 3242 int
3243 sys_execvp (CONST char *path, char * CONST argv[]) 3243 sys_execvp (CONST char *path, char * CONST * argv)
3244 { 3244 {
3245 int i; 3245 int i, argc;
3246 CONST char ** new_argv;
3247
3246 PATHNAME_CONVERT_OUT (path); 3248 PATHNAME_CONVERT_OUT (path);
3247 for (i = 0; argv[i]; i++) 3249 for (argc = 0; argv[argc]; argc++)
3248 PATHNAME_CONVERT_OUT (argv[i]); 3250 ;
3249 return execvp (path, argv); 3251 new_argv = (CONST char **) alloca ( (argc + 1) * sizeof (* new_argv));
3252 for (i = 0; i < argc; i++)
3253 GET_C_CHARPTR_EXT_FILENAME_DATA_ALLOCA (argv[i], new_argv[i]);
3254 new_argv[argc] = NULL;
3255 return execvp (path, (char **) new_argv);
3250 } 3256 }
3251 #endif /* ENCAPSULATE_EXECVP */ 3257 #endif /* ENCAPSULATE_EXECVP */
3252 3258
3253 3259
3254 /************************************************************************/ 3260 /************************************************************************/