diff options
| author | Tyge Løvset <[email protected]> | 2021-01-21 08:26:54 +0100 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2021-01-21 08:26:54 +0100 |
| commit | 50da396d04714a18fa087ebbd1f2316958dbd6bd (patch) | |
| tree | 0349909bf35183e2eced05ca0d3ce909f700c23e /docs/copt_api.md | |
| parent | 9473eae780011ef520066ddcd36bb555e8e616e4 (diff) | |
| download | STC-modified-50da396d04714a18fa087ebbd1f2316958dbd6bd.tar.gz STC-modified-50da396d04714a18fa087ebbd1f2316958dbd6bd.zip | |
Reverted namings: crand to crandom, and copt to coption.
Diffstat (limited to 'docs/copt_api.md')
| -rw-r--r-- | docs/copt_api.md | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/docs/copt_api.md b/docs/copt_api.md deleted file mode 100644 index df49f66d..00000000 --- a/docs/copt_api.md +++ /dev/null @@ -1,85 +0,0 @@ -# STC Module [copt](../stc/copt.h): Command line argument parsing - -This describes the API of the *copt_get()* function for command line argument parsing. -See [getopt_long](https://www.freebsd.org/cgi/man.cgi?getopt_long(3)) for a similar posix function. - -## Types - -```c -enum { - copt_no_argument = 0, - copt_required_argument = 1, - copt_optional_argument = 2 -}; -typedef struct { - int ind; /* equivalent to optind */ - int opt; /* equivalent to optopt */ - const char *arg; /* equivalent to optarg */ - const char *faulty; /* points to the faulty option, if any */ - int longindex; /* index of long option; or -1 if short */ - ... -} copt_t; - -typedef struct { - const char *name; - int has_arg; - int val; -} copt_long_t; - -const copt_t copt_inits; -``` - -## Methods - -```c -copt_t copt_init(void); -int copt_get(copt_t *opt, int argc, char *argv[], - const char *shortopts, const copt_long_t *longopts); -``` - -## Example - -```c -#include <stdio.h> -#include "stc/copt.h" - -int main(int argc, char *argv[]) { - static copt_long_t long_options[] = { - {"verbose", copt_no_argument, 'V'}, - {"help", copt_no_argument, 'H'}, - {"add", copt_no_argument, 'a'}, - {"append", copt_no_argument, 'b'}, - {"delete", copt_required_argument, 'd'}, - {"create", copt_required_argument, 'c'}, - {"file", copt_required_argument, 'f'}, - {NULL} - }; - copt_t opt = copt_inits; - int c; - while ((c = copt_get(&opt, argc, argv, ":if:lr", long_options)) != -1) { - switch (c) { - case 'V': case 'H': - case 'a': case 'b': - case 'd': case 'c': - case 'i': case 'l': - case 'r': - printf("option: %c\n", c); - break; - case 'f': - printf("filename: %s\n", opt.arg); - break; - case ':': - printf("option %s needs a value\n", opt.faulty); - break; - case '?': - printf("unknown option: %s\n", opt.faulty); - break; - } - } - - for (; opt.ind < argc; ++opt.ind) { - printf("extra arguments: %s\n", argv[opt.ind]); - } - return 0; -} -``` |
