Mercurial > hg > xemacs-beta
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 /************************************************************************/ |