From e1b38a9f91a9788dd0c5604ddaf8fb58e6c37975 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sun, 9 Jan 2000 10:58:51 +0000 Subject: [PATCH] use vstrcollect git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@7785 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/roken/simple_exec.c | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/lib/roken/simple_exec.c b/lib/roken/simple_exec.c index 04f715be1..7589fb3d9 100644 --- a/lib/roken/simple_exec.c +++ b/lib/roken/simple_exec.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan + * Copyright (c) 1998 - 2000 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -113,27 +113,6 @@ simple_execve(const char *file, char *const args[], char *const envp[]) } } -static char ** -collect_args(va_list *ap) -{ - char **argv = NULL; - int argc = 0, i = 0; - do { - if(i == argc) { - /* realloc argv */ - char **tmp = realloc(argv, (argc + 5) * sizeof(*argv)); - if(tmp == NULL) { - errno = ENOMEM; - return NULL; - } - argv = tmp; - argc += 5; - } - argv[i++] = va_arg(*ap, char*); - } while(argv[i - 1] != NULL); - return argv; -} - int simple_execlp(const char *file, ...) { @@ -142,7 +121,7 @@ simple_execlp(const char *file, ...) int ret; va_start(ap, file); - argv = collect_args(&ap); + argv = vstrcollect(&ap); va_end(ap); if(argv == NULL) return -1; @@ -160,7 +139,7 @@ simple_execle(const char *file, ... /* ,char *const envp[] */) int ret; va_start(ap, file); - argv = collect_args(&ap); + argv = vstrcollect(&ap); envp = va_arg(ap, char **); va_end(ap); if(argv == NULL)