|
Blender V4.3
|
A general argument parsing module. More...
#include <ctype.h>#include <stdio.h>#include <string.h>#include "MEM_guardedalloc.h"#include "BLI_args.h"#include "BLI_ghash.h"#include "BLI_listbase.h"#include "BLI_string.h"#include "BLI_utildefines.h"Go to the source code of this file.
Classes | |
| struct | bArgDoc |
| struct | bAKey |
| struct | bArgument |
| struct | bArgs |
Typedefs | |
| typedef struct bArgDoc | bArgDoc |
| typedef struct bAKey | bAKey |
| typedef struct bArgument | bArgument |
Functions | |
| static uint | case_strhash (const void *ptr) |
| static uint | keyhash (const void *ptr) |
| static bool | keycmp (const void *a, const void *b) |
| static bArgument * | lookUp (bArgs *ba, const char *arg, int pass, int case_str) |
| static void | args_print_wrapper (void *UNUSED(user_data), const char *format, va_list args) |
| bArgs * | BLI_args_create (int argc, const char **argv) |
| void | BLI_args_destroy (bArgs *ba) |
| void | BLI_args_printf (bArgs *ba, const char *format,...) |
| void | BLI_args_print_fn_set (bArgs *ba, bArgPrintFn print_fn, void *user_data) |
| void | BLI_args_pass_set (bArgs *ba, int current_pass) |
| void | BLI_args_print (const bArgs *ba) |
| static bArgDoc * | internalDocs (bArgs *ba, const char *short_arg, const char *long_arg, const char *doc) |
| static void | internalAdd (bArgs *ba, const char *arg, int case_str, BA_ArgCallback cb, void *data, bArgDoc *d) |
| void | BLI_args_add_case (bArgs *ba, const char *short_arg, int short_case, const char *long_arg, int long_case, const char *doc, BA_ArgCallback cb, void *data) |
| void | BLI_args_add (bArgs *ba, const char *short_arg, const char *long_arg, const char *doc, BA_ArgCallback cb, void *data) |
| static void | internalDocPrint (bArgs *ba, bArgDoc *d) |
| void | BLI_args_print_arg_doc (bArgs *ba, const char *arg) |
| void | BLI_args_print_other_doc (bArgs *ba) |
| bool | BLI_args_has_other_doc (const bArgs *ba) |
| void | BLI_args_parse (bArgs *ba, int pass, BA_ArgCallback default_cb, void *default_data) |
Variables | |
| static char | NO_DOCS [] = "NO DOCUMENTATION SPECIFIED" |
A general argument parsing module.
Definition in file BLI_args.c.
| typedef struct bAKey bAKey |
| typedef struct bArgDoc bArgDoc |
| typedef struct bArgument bArgument |
|
static |
| void BLI_args_add | ( | struct bArgs * | ba, |
| const char * | short_arg, | ||
| const char * | long_arg, | ||
| const char * | doc, | ||
| BA_ArgCallback | cb, | ||
| void * | data ) |
Pass starts at 1, -1 means valid all the time short_arg or long_arg can be null to specify no short or long versions
Definition at line 241 of file BLI_args.c.
References BLI_args_add_case().
Referenced by main_args_setup().
| void BLI_args_add_case | ( | struct bArgs * | ba, |
| const char * | short_arg, | ||
| int | short_case, | ||
| const char * | long_arg, | ||
| int | long_case, | ||
| const char * | doc, | ||
| BA_ArgCallback | cb, | ||
| void * | data ) |
Short_case and long_case specify if those arguments are case specific
Definition at line 221 of file BLI_args.c.
References internalAdd(), and internalDocs().
Referenced by BLI_args_add(), and main_args_setup().
Definition at line 110 of file BLI_args.c.
References bArgs::argc, args_print_wrapper(), bArgs::argv, BLI_args_print_fn_set(), BLI_ghash_new(), BLI_listbase_clear(), bArgs::current_pass, bArgs::docs, bArgs::items, keycmp(), keyhash(), MEM_callocN, NULL, and bArgs::passes.
Referenced by main(), and main_args_help_as_string().
| void BLI_args_destroy | ( | bArgs * | ba | ) |
Definition at line 127 of file BLI_args.c.
References BLI_freelistN(), BLI_ghash_free(), bArgs::docs, bArgs::items, MEM_freeN(), and bArgs::passes.
Referenced by callback_main_atexit(), and main_args_help_as_string().
| bool BLI_args_has_other_doc | ( | const bArgs * | ba | ) |
Definition at line 290 of file BLI_args.c.
References bArgs::docs, and ListBase::first.
| void BLI_args_parse | ( | bArgs * | ba, |
| int | pass, | ||
| BA_ArgCallback | default_cb, | ||
| void * | default_data ) |
Definition at line 300 of file BLI_args.c.
References bArgs::argc, bArgs::argv, BLI_assert, lookUp(), NULL, and bArgs::passes.
Referenced by main().
The pass to use for BLI_args_add.
Definition at line 149 of file BLI_args.c.
References BLI_assert, and bArgs::current_pass.
Referenced by main_args_setup().
| void BLI_args_print | ( | const bArgs * | ba | ) |
Definition at line 155 of file BLI_args.c.
References bArgs::argc, bArgs::argv, and printf.
| void BLI_args_print_arg_doc | ( | bArgs * | ba, |
| const char * | arg ) |
Definition at line 266 of file BLI_args.c.
References bArgDoc::done, internalDocPrint(), and lookUp().
Referenced by print_help().
| void BLI_args_print_fn_set | ( | bArgs * | ba, |
| bArgPrintFn | print_fn, | ||
| void * | user_data ) |
Definition at line 143 of file BLI_args.c.
References bArgs::print_fn, and bArgs::print_user_data.
Referenced by BLI_args_create().
| void BLI_args_print_other_doc | ( | bArgs * | ba | ) |
Definition at line 279 of file BLI_args.c.
References bArgs::docs, bArgDoc::done, ListBase::first, internalDocPrint(), and bArgDoc::next.
Referenced by print_help().
| void BLI_args_printf | ( | bArgs * | ba, |
| const char * | format, | ||
| ... ) |
Definition at line 135 of file BLI_args.c.
References bArgs::print_fn, and bArgs::print_user_data.
Referenced by internalDocPrint().
|
static |
|
static |
Definition at line 185 of file BLI_args.c.
References bAKey::arg, BLI_ghash_insert(), bAKey::case_str, bArgs::current_pass, data, bArgs::items, lookUp(), MEM_callocN, bAKey::pass, and printf.
Referenced by BLI_args_add_case().
Definition at line 251 of file BLI_args.c.
References BLI_args_printf(), bArgDoc::documentation, bArgDoc::long_arg, and bArgDoc::short_arg.
Referenced by BLI_args_print_arg_doc(), and BLI_args_print_other_doc().
|
static |
Definition at line 163 of file BLI_args.c.
References BLI_addtail(), bArgs::docs, bArgDoc::documentation, bArgDoc::long_arg, MEM_callocN, NO_DOCS, NULL, and bArgDoc::short_arg.
Referenced by BLI_args_add_case().
|
static |
Definition at line 79 of file BLI_args.c.
References bAKey::arg, b, BLI_ghashutil_intcmp(), BLI_strcasecmp(), bAKey::case_str, bAKey::pass, and STREQ.
Referenced by BLI_args_create().
|
static |
Definition at line 73 of file BLI_args.c.
References bAKey::arg, case_strhash(), and ptr.
Referenced by BLI_args_create().
Definition at line 92 of file BLI_args.c.
References bAKey::arg, BLI_ghash_lookup(), bAKey::case_str, bArgs::items, and bAKey::pass.
Referenced by BLI_args_parse(), BLI_args_print_arg_doc(), and internalAdd().
|
static |
Definition at line 22 of file BLI_args.c.
Referenced by internalDocs().