Mercurial > hg > xemacs-beta
diff 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 |
line wrap: on
line diff
--- a/src/sysdep.c Mon Aug 13 09:06:45 2007 +0200 +++ b/src/sysdep.c Mon Aug 13 09:07:36 2007 +0200 @@ -3240,13 +3240,19 @@ #ifdef ENCAPSULATE_EXECVP int -sys_execvp (CONST char *path, char * CONST argv[]) +sys_execvp (CONST char *path, char * CONST * argv) { - int i; + int i, argc; + CONST char ** new_argv; + PATHNAME_CONVERT_OUT (path); - for (i = 0; argv[i]; i++) - PATHNAME_CONVERT_OUT (argv[i]); - return execvp (path, argv); + for (argc = 0; argv[argc]; argc++) + ; + new_argv = (CONST char **) alloca ( (argc + 1) * sizeof (* new_argv)); + for (i = 0; i < argc; i++) + GET_C_CHARPTR_EXT_FILENAME_DATA_ALLOCA (argv[i], new_argv[i]); + new_argv[argc] = NULL; + return execvp (path, (char **) new_argv); } #endif /* ENCAPSULATE_EXECVP */