ソースを参照

misc: cmdline: add CmdLine_AppendMulti

ambrop7 14 年 前
コミット
f6e34c3674
1 ファイル変更22 行追加0 行削除
  1. 22 0
      misc/cmdline.h

+ 22 - 0
misc/cmdline.h

@@ -28,6 +28,7 @@
 #define BADVPN_MISC_CMDLINE_H
 
 #include <stddef.h>
+#include <stdarg.h>
 
 #include <misc/debug.h>
 #include <misc/exparray.h>
@@ -40,6 +41,7 @@ typedef struct {
 static int CmdLine_Init (CmdLine *c);
 static void CmdLine_Free (CmdLine *c);
 static int CmdLine_Append (CmdLine *c, const char *str);
+static int CmdLine_AppendMulti (CmdLine *c, int num, ...);
 static int CmdLine_Finish (CmdLine *c);
 static char ** CmdLine_Get (CmdLine *c);
 
@@ -86,6 +88,26 @@ int CmdLine_Append (CmdLine *c, const char *str)
     return 1;
 }
 
+int CmdLine_AppendMulti (CmdLine *c, int num, ...)
+{
+    int res = 1;
+    
+    va_list vl;
+    va_start(vl, num);
+    
+    for (int i = 0; i < num; i++) {
+        const char *str = va_arg(vl, const char *);
+        if (!CmdLine_Append(c, str)) {
+            res = 0;
+            break;
+        }
+    }
+    
+    va_end(vl);
+    
+    return res;
+}
+
 int CmdLine_Finish (CmdLine *c)
 {
     ASSERT(!_CmdLine_finished(c))