/* cmd.c:
*
****************************************************************
* Copyright (C) 2003 Tom Lord
*
* See the file "COPYING" for further information about
* the copyright and warranty status of this work.
*/
#include "hackerlab/os/stdarg.h"
#include "hackerlab/arrays/ar.h"
#include "commands/cmd.h"
int
arch_call_cmd (arch_cmd_fn fn, t_uchar * prog_name, ...)
{
char ** argv = 0;
int status = 1;
va_list ap;
ar_push_char_star(&argv, prog_name);
va_start (ap, prog_name);
while (1)
{
char * arg;
arg = va_arg (ap, char *);
if (!arg)
break;
ar_push_char_star(&argv, arg);
}
va_end (ap);
ar_push_char_star(&argv, 0);
status = fn (prog_name, (ar_size_char_star (argv) - 1), argv);
ar_free_char_star (&argv);
return status;
}
/* tag: Tom Lord Mon Jun 2 17:26:01 2003 (cmd.c)
*/
syntax highlighted by Code2HTML, v. 0.9.1