Blender V5.0
BLI_args.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
11
12struct bArgs;
13
14#include <stdarg.h> /* For `va_list`. */
15#include <stdbool.h>
16
17#include "BLI_compiler_attrs.h"
18
24using BA_ArgCallback = int (*)(int argc, const char **argv, void *data);
25
26struct bArgs *BLI_args_create(int argc, const char **argv);
27void BLI_args_destroy(struct bArgs *ba);
28
29using bArgPrintFn = void (*)(void *user_data, const char *format, va_list args);
30void BLI_args_printf(struct bArgs *ba, const char *format, ...);
33 void *user_data);
34
36void BLI_args_pass_set(struct bArgs *ba, int current_pass);
37
42void BLI_args_add(struct bArgs *ba,
43 const char *short_arg,
44 const char *long_arg,
45 const char *doc,
47 void *data);
48
52void BLI_args_add_case(struct bArgs *ba,
53 const char *short_arg,
54 int short_case,
55 const char *long_arg,
56 int long_case,
57 const char *doc,
59 void *data);
60
61void BLI_args_parse(struct bArgs *ba, int pass, BA_ArgCallback default_cb, void *default_data);
62
63void BLI_args_print_arg_doc(struct bArgs *ba, const char *arg);
64void BLI_args_print_other_doc(struct bArgs *ba);
65
66bool BLI_args_has_other_doc(const struct bArgs *ba);
67
68void BLI_args_print(const struct bArgs *ba);
void BLI_args_destroy(struct bArgs *ba)
Definition BLI_args.cc:144
void BLI_args_print_other_doc(struct bArgs *ba)
Definition BLI_args.cc:317
void BLI_args_print_arg_doc(struct bArgs *ba, const char *arg)
Definition BLI_args.cc:287
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)
Definition BLI_args.cc:242
void BLI_args_pass_set(struct bArgs *ba, int current_pass)
Definition BLI_args.cc:166
void BLI_args_add(struct bArgs *ba, const char *short_arg, const char *long_arg, const char *doc, BA_ArgCallback cb, void *data)
Definition BLI_args.cc:262
int(*)(int argc, const char **argv, void *data) BA_ArgCallback
Definition BLI_args.h:24
void BLI_args_print_fn_set(struct bArgs *ba, ATTR_PRINTF_FORMAT(2, 0) bArgPrintFn print_fn, void *user_data)
bool BLI_args_has_other_doc(const struct bArgs *ba)
struct bArgs * BLI_args_create(int argc, const char **argv)
Definition BLI_args.cc:124
void BLI_args_print(const struct bArgs *ba)
void BLI_args_parse(struct bArgs *ba, int pass, BA_ArgCallback default_cb, void *default_data)
Definition BLI_args.cc:336
void(*)(void *user_data, const char *format, va_list args) bArgPrintFn
Definition BLI_args.h:29
void BLI_args_printf(struct bArgs *ba, const char *format,...)
Definition BLI_args.cc:152
#define ATTR_PRINTF_FORMAT(format_param, dots_param)
BMesh const char void * data
format
bArgPrintFn print_fn
Definition BLI_args.cc:63
int current_pass
Definition BLI_args.cc:67
const char ** argv
Definition BLI_args.cc:60
int argc
Definition BLI_args.cc:59