diff --git a/doc/libpkgconf-argvsplit.rst b/doc/libpkgconf-argvsplit.rst new file mode 100644 index 0000000..94ec6d9 --- /dev/null +++ b/doc/libpkgconf-argvsplit.rst @@ -0,0 +1,23 @@ + +libpkgconf `argvsplit` module +============================= + +This is a lowlevel module which provides parsing of strings into argument vectors, +similar to what a shell would do. + +.. c:function:: void pkgconf_argv_free(char **argv) + + Frees an argument vector. + + :param char** argv: The argument vector to free. + :return: nothing + +.. c:function:: int pkgconf_argv_split(const char *src, int *argc, char ***argv) + + Splits a string into an argument vector. + + :param char* src: The string to split. + :param int* argc: A pointer to an integer to store the argument count. + :param char*** argv: A pointer to a pointer for an argument vector. + :return: 0 on success, -1 on error. + :rtype: int diff --git a/doc/libpkgconf.rst b/doc/libpkgconf.rst index c14d774..c314396 100644 --- a/doc/libpkgconf.rst +++ b/doc/libpkgconf.rst @@ -4,4 +4,5 @@ libpkgconf - an API for managing `pkg-config` modules .. toctree:: :maxdepth: 2 + libpkgconf-argvsplit libpkgconf-client diff --git a/libpkgconf/argvsplit.c b/libpkgconf/argvsplit.c index f1262c2..467ff09 100644 --- a/libpkgconf/argvsplit.c +++ b/libpkgconf/argvsplit.c @@ -15,6 +15,26 @@ #include +/* + * !doc + * + * libpkgconf `argvsplit` module + * ============================= + * + * This is a lowlevel module which provides parsing of strings into argument vectors, + * similar to what a shell would do. + */ + +/* + * !doc + * + * .. c:function:: void pkgconf_argv_free(char **argv) + * + * Frees an argument vector. + * + * :param char** argv: The argument vector to free. + * :return: nothing + */ void pkgconf_argv_free(char **argv) { @@ -22,6 +42,19 @@ pkgconf_argv_free(char **argv) free(argv); } +/* + * !doc + * + * .. c:function:: int pkgconf_argv_split(const char *src, int *argc, char ***argv) + * + * Splits a string into an argument vector. + * + * :param char* src: The string to split. + * :param int* argc: A pointer to an integer to store the argument count. + * :param char*** argv: A pointer to a pointer for an argument vector. + * :return: 0 on success, -1 on error. + * :rtype: int + */ int pkgconf_argv_split(const char *src, int *argc, char ***argv) {