Browse Source

faux.argv: Function to get number of arguments faux_argv_len()

Serj Kalichev 2 years ago
parent
commit
03f95efe32
3 changed files with 17 additions and 0 deletions
  1. 1 0
      faux/argv.h
  2. 15 0
      faux/argv/argv.c
  3. 1 0
      faux/faux.map

+ 1 - 0
faux/argv.h

@@ -20,6 +20,7 @@ void faux_argv_set_quotes(faux_argv_t *fargv, const char *quotes);
 faux_argv_node_t *faux_argv_iter(const faux_argv_t *fargv);
 const char *faux_argv_each(faux_argv_node_t **iter);
 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);
 

+ 15 - 0
faux/argv/argv.c

@@ -165,6 +165,21 @@ ssize_t faux_argv_parse(faux_argv_t *fargv, const char *str)
 }
 
 
+/** @brief Get number of arguments.
+ *
+ * @param [in] fargv Allocated fargv object.
+ * @return Number of words and substrings or < 0 on error.
+ */
+ssize_t faux_argv_len(faux_argv_t *fargv)
+{
+	assert(fargv);
+	if (!fargv)
+		return -1;
+
+	return faux_list_len(fargv->list);
+}
+
+
 /** @brief Returns continuable flag.
  *
  * Can be used after faux_argv_parse() only.

+ 1 - 0
faux/faux.map

@@ -9,6 +9,7 @@ FAUX_2.0 {
 		faux_argv_each;
 		faux_argv_current;
 		faux_argv_parse;
+		faux_argv_len;
 		faux_argv_is_continuable;
 
 		faux_async_new;