Browse Source

faux.argv: faux_argv_add()

Serj Kalichev 2 years ago
parent
commit
2ceddd49a4
3 changed files with 23 additions and 0 deletions
  1. 1 0
      faux/argv.h
  2. 21 0
      faux/argv/argv.c
  3. 1 0
      faux/faux.map

+ 1 - 0
faux/argv.h

@@ -23,6 +23,7 @@ const char *faux_argv_current(faux_argv_node_t *iter);
 ssize_t faux_argv_len(faux_argv_t *fargv);
 
 ssize_t faux_argv_parse(faux_argv_t *fargv, const char *str);
+bool_t faux_argv_add(faux_argv_t *fargv, const char *arg);
 
 bool_t faux_argv_is_continuable(faux_argv_t *fargv);
 bool_t faux_argv_is_last(faux_argv_node_t *iter);

+ 21 - 0
faux/argv/argv.c

@@ -214,3 +214,24 @@ bool_t faux_argv_is_last(faux_argv_node_t *iter)
 
 	return BOOL_FALSE;
 }
+
+
+/** @brief Adds argument to fargv object.
+ *
+ * @param [in] fargv Allocated argv object.
+ * @param [in] arg Argument to add.
+ * @return BOOL_TRUE - success, BOOL_FALSE - error.
+ */
+bool_t faux_argv_add(faux_argv_t *fargv, const char *arg)
+{
+	assert(fargv);
+	if (!fargv)
+		return BOOL_FALSE;
+	assert(arg);
+	if (!arg)
+		return BOOL_FALSE;
+
+	faux_list_add(fargv->list, faux_str_dup(arg));
+
+	return BOOL_TRUE;
+}

+ 1 - 0
faux/faux.map

@@ -12,6 +12,7 @@ FAUX_2.0 {
 		faux_argv_len;
 		faux_argv_is_continuable;
 		faux_argv_is_last;
+		faux_argv_add;
 
 		faux_async_new;
 		faux_async_free;