X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Flib_internal%2Fcommand-appendparameter.c;h=13a2ec39852d03c937038e46588c26066fa14e87;hb=faa778968d1a7dfeaebc9fe4b847e691dc62fd15;hp=26c34c5b86d9f462e962606f13de8feddb62e9d9;hpb=2c1727f98a042cd7277d8dc1c42c6d902f81e15a;p=util-vserver.git diff --git a/util-vserver/lib_internal/command-appendparameter.c b/util-vserver/lib_internal/command-appendparameter.c index 26c34c5..13a2ec3 100644 --- a/util-vserver/lib_internal/command-appendparameter.c +++ b/util-vserver/lib_internal/command-appendparameter.c @@ -21,10 +21,24 @@ #endif #include "command.h" +#include "util.h" void Command_appendParameter(struct Command *cmd, char const *param) { - char const ** p = Vector_pushback(&cmd->params); - *p = param; + switch (cmd->params_style_) { + case parNONE : + Vector_init(&cmd->params.v, 10); + cmd->params_style_ = parVEC; + /*@fallthrough@*/ + case parVEC : { + char const **p = Vector_pushback(&cmd->params.v); + *p = param; + break; + } + + default : + WRITE_MSG(2, "internal error: conflicting functions Command_appendParameter() and Command_setParams() used together; aborting...\n"); + abort(); + } }