From f685e6923837d53fc3c7a1ae7c4e8f56f71bf000 Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Sat, 20 Dec 2008 17:06:10 +0000 Subject: [PATCH] client: Function for inserting arguments. Organization: Straylight/Edgeware From: Mark Wooding We will shortly need fancier formatting than previously. --- client/tripectl.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/client/tripectl.c b/client/tripectl.c index e171b0da..13317047 100644 --- a/client/tripectl.c +++ b/client/tripectl.c @@ -275,6 +275,19 @@ static void cleanup(void) { if (pidfile) unlink(pidfile); } static void sigdie(int sig) { cleanup(); signal(sig, SIG_DFL); raise(sig); } +static void putarg(string_v *av, const char *fmt, ...) +{ + va_list ap; + dstr d = DSTR_INIT; + + va_start(ap, fmt); + dstr_vputf(&d, fmt, &ap); + dstr_putz(&d); + va_end(ap); + DA_UNSHIFT(av, xstrdup(d.buf)); + dstr_destroy(&d); +} + static void version(FILE *fp) { pquis(fp, "$, TrIPE version " VERSION "\n"); } @@ -447,12 +460,11 @@ int main(int argc, char *argv[]) #endif sigaction(SIGCHLD, &sa, 0); - DA_UNSHIFT(&spawnopts, (char *)sock); - DA_UNSHIFT(&spawnopts, "-a"); - DA_UNSHIFT(&spawnopts, "-d."); - DA_UNSHIFT(&spawnopts, "-F"); - DA_UNSHIFT(&spawnopts, (char *)spawnpath); DA_PUSH(&spawnopts, 0); + putarg(&spawnopts, "-a%s", sock); + putarg(&spawnopts, "-d."); + putarg(&spawnopts, "-F"); + putarg(&spawnopts, "%s", spawnpath); if (socketpair(PF_UNIX, SOCK_STREAM, 0, pfd)) die(EXIT_FAILURE, "error from socketpair: %s", strerror(errno)); sigemptyset(&newmask); -- [mdw]