summaryrefslogtreecommitdiff
path: root/rpmio/argv.h
diff options
context:
space:
mode:
authorjbj <devnull@localhost>2002-12-24 17:06:35 +0000
committerjbj <devnull@localhost>2002-12-24 17:06:35 +0000
commit268376a208ce942e92088315d383a4e09974cbc2 (patch)
tree71bfbb1f02b66623727186a65efbec11979c2a04 /rpmio/argv.h
parentfec28fa0043b8071e0fa2cadd465eeb0c1cdbb81 (diff)
downloadrpm-268376a208ce942e92088315d383a4e09974cbc2.tar.gz
rpm-268376a208ce942e92088315d383a4e09974cbc2.tar.bz2
rpm-268376a208ce942e92088315d383a4e09974cbc2.zip
Rescusitate doxygen file manifest.
CVS patchset: 5968 CVS date: 2002/12/24 17:06:35
Diffstat (limited to 'rpmio/argv.h')
-rw-r--r--rpmio/argv.h158
1 files changed, 158 insertions, 0 deletions
diff --git a/rpmio/argv.h b/rpmio/argv.h
new file mode 100644
index 000000000..202aa4645
--- /dev/null
+++ b/rpmio/argv.h
@@ -0,0 +1,158 @@
+#ifndef _H_ARGV_
+#define _H_ARGV_
+
+/** \ingroup rpmio
+ * \file rpmio/argv.h
+ */
+
+typedef const char * ARGstr_t;
+typedef ARGstr_t * ARGV_t;
+
+typedef int * ARGint_t;
+struct ARGI_s {
+ unsigned nvals;
+ ARGint_t vals;
+};
+typedef struct ARGI_s * ARGI_t;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Print argv array elements.
+ * @param msg output message prefix (or NULL)
+ * @param argv argv array
+ * @param fp output file handle (NULL uses stderr)
+ */
+void argvPrint(const char * msg, ARGV_t argv, FILE * fp)
+ /*@globals fileSystem @*/
+ /*@modifies *fp, fileSystem @*/;
+
+/**
+ * Destroy an argi array.
+ * @param argi argi array
+ * @return NULL always
+ */
+/*@null@*/
+ARGI_t argiFree(/*@only@*/ /*@null@*/ ARGI_t argi)
+ /*@modifies argi @*/;
+
+/**
+ * Destroy an argv array.
+ * @param argv argv array
+ * @return NULL always
+ */
+/*@null@*/
+ARGV_t argvFree(/*@only@*/ /*@null@*/ ARGV_t argv)
+ /*@modifies argv @*/;
+
+/**
+ * Return no. of elements in argi array.
+ * @param argi argi array
+ * @return no. of elements
+ */
+int argiCount(/*@null@*/ const ARGI_t argi)
+ /*@*/;
+
+/**
+ * Return data from argi array.
+ * @param argi argi array
+ * @return argi array data address
+ */
+/*@null@*/
+const ARGint_t argiData(/*@null@*/ const ARGI_t argi)
+ /*@*/;
+
+/**
+ * Return no. of elements in argv array.
+ * @param argv argv array
+ * @return no. of elements
+ */
+int argvCount(/*@null@*/ const ARGV_t argv)
+ /*@*/;
+
+/**
+ * Return data from argv array.
+ * @param argv argv array
+ * @return argv array data address
+ */
+/*@null@*/
+const ARGV_t argvData(/*@null@*/ const ARGV_t argv)
+ /*@*/;
+
+/**
+ * Compare argv arrays (qsort/bsearch).
+ * @param a 1st instance address
+ * @param b 2nd instance address
+ * @return result of comparison
+ */
+/*@-exportlocal@*/
+int argvCmp(const void * a, const void * b)
+ /*@*/;
+/*@=exportlocal@*/
+
+/**
+ * Sort an argv array.
+ * @param argv argv array
+ * @param compar strcmp-like comparison function, or NULL for argvCmp()
+ * @return 0 always
+ */
+int argvSort(ARGV_t argv, int (*compar)(const void *, const void *))
+ /*@modifies *argv @*/;
+
+/**
+ * Find an element in an argv array.
+ * @param argv argv array
+ * @param val string to find
+ * @param compar strcmp-like comparison function, or NULL for argvCmp()
+ * @return found string (NULL on failure)
+ */
+/*@dependent@*/ /*@null@*/
+ARGV_t argvSearch(ARGV_t argv, ARGstr_t val,
+ int (*compar)(const void *, const void *))
+ /*@*/;
+
+/**
+ * Add an int to an argi array.
+ * @retval *argip argi array
+ * @param ix argi array index (or -1 to append)
+ * @param val int arg to add
+ * @return 0 always
+ */
+int argiAdd(/*@out@*/ ARGI_t * argip, int ix, int val)
+ /*@modifies *argip @*/;
+
+/**
+ * Add a string to an argv array.
+ * @retval *argvp argv array
+ * @param val string arg to append
+ * @return 0 always
+ */
+int argvAdd(/*@out@*/ ARGV_t * argvp, ARGstr_t val)
+ /*@modifies *argvp @*/;
+
+/**
+ * Append one argv array to another.
+ * @retval *argvp argv array
+ * @param av argv array to append
+ * @return 0 always
+ */
+int argvAppend(/*@out@*/ ARGV_t * argvp, const ARGV_t av)
+ /*@modifies *argvp @*/;
+
+/**
+ * Split a string into an argv array.
+ * @retval *argvp argv array
+ * @param str string arg to split
+ * @param seps seperator characters
+ * @return 0 always
+ */
+int argvSplit(ARGV_t * argvp, const char * str, const char * seps)
+ /*@modifies *argvp @*/;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _H_ARGV_ */