NeoMutt  2025-12-11-435-g4ac674
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
module.c File Reference

Definition of the Config Module. More...

#include "config.h"
#include <stdbool.h>
#include <stddef.h>
#include "core/lib.h"
#include "set.h"
+ Include dependency graph for module.c:

Go to the source code of this file.

Functions

static bool config_config_define_types (struct NeoMutt *n, struct ConfigSet *cs)
 Set up Config Types - Implements Module::config_define_types()
 

Variables

const struct ConfigSetType CstBool
 Config type representing an boolean.
 
const struct ConfigSetType CstEnum
 Config type representing an enumeration.
 
const struct ConfigSetType CstLong
 Config type representing a long.
 
const struct ConfigSetType CstMbtable
 Config type representing a multi-byte table.
 
const struct ConfigSetType CstMyVar
 Config type representing a MyVar.
 
const struct ConfigSetType CstNumber
 Config type representing a number.
 
const struct ConfigSetType CstPath
 Config type representing a path.
 
const struct ConfigSetType CstQuad
 Config type representing a quad-option.
 
const struct ConfigSetType CstRegex
 Config type representing a regular expression.
 
const struct ConfigSetType CstSlist
 Config type representing a list of strings.
 
const struct ConfigSetType CstSort
 Config type representing a sort option.
 
const struct ConfigSetType CstString
 Config type representing a string.
 
const struct Module ModuleConfig
 Module for the Config library.
 

Detailed Description

Definition of the Config Module.

Authors
  • Richard Russon

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Definition in file module.c.

Function Documentation

◆ config_config_define_types()

static bool config_config_define_types ( struct NeoMutt * n,
struct ConfigSet * cs )
static

Set up Config Types - Implements Module::config_define_types()

Definition at line 51 of file module.c.

52{
53 bool rc = true;
54
55 rc &= cs_register_type(cs, &CstBool);
56 rc &= cs_register_type(cs, &CstEnum);
57 rc &= cs_register_type(cs, &CstLong);
58 rc &= cs_register_type(cs, &CstMbtable);
59 rc &= cs_register_type(cs, &CstMyVar);
60 rc &= cs_register_type(cs, &CstNumber);
61 rc &= cs_register_type(cs, &CstPath);
62 rc &= cs_register_type(cs, &CstQuad);
63 rc &= cs_register_type(cs, &CstRegex);
64 rc &= cs_register_type(cs, &CstSlist);
65 rc &= cs_register_type(cs, &CstSort);
66 rc &= cs_register_type(cs, &CstString);
67
68 return rc;
69}
const struct ConfigSetType CstBool
Config type representing an boolean.
Definition bool.c:239
const struct ConfigSetType CstPath
Config type representing a path.
Definition path.c:273
const struct ConfigSetType CstString
Config type representing a string.
Definition string.c:282
const struct ConfigSetType CstNumber
Config type representing a number.
Definition number.c:327
const struct ConfigSetType CstMyVar
Config type representing a MyVar.
Definition myvar.c:203
const struct ConfigSetType CstSlist
Config type representing a list of strings.
Definition slist.c:334
const struct ConfigSetType CstQuad
Config type representing a quad-option.
Definition quad.c:249
const struct ConfigSetType CstRegex
Config type representing a regular expression.
Definition regex.c:345
const struct ConfigSetType CstSort
Config type representing a sort option.
Definition sort.c:231
bool cs_register_type(struct ConfigSet *cs, const struct ConfigSetType *cst)
Register a type of config item.
Definition set.c:220
const struct ConfigSetType CstEnum
Config type representing an enumeration.
Definition enum.c:192
const struct ConfigSetType CstLong
Config type representing a long.
Definition long.c:258
const struct ConfigSetType CstMbtable
Config type representing a multi-byte table.
Definition mbtable.c:354
+ Here is the call graph for this function:

Variable Documentation

◆ CstBool

const struct ConfigSetType CstBool
extern

Config type representing an boolean.

Definition at line 239 of file bool.c.

239 {
240 DT_BOOL,
241 "boolean",
246 NULL, // string_plus_equals
247 NULL, // string_minus_equals
250 NULL, // destroy
251};
static bool bool_has_been_set(void *var, const struct ConfigDef *cdef)
Is the config value different to its initial value?
Definition bool.c:166
static intptr_t bool_native_get(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Get a bool from a Bool config item - Implements ConfigSetType::native_get() -.
Definition bool.c:158
static int bool_native_set(void *var, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Set a Bool config item by bool - Implements ConfigSetType::native_set() -.
Definition bool.c:128
static int bool_reset(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Reset a Bool to its initial value - Implements ConfigSetType::reset() -.
Definition bool.c:174
static int bool_string_get(void *var, const struct ConfigDef *cdef, struct Buffer *result)
Get a Bool as a string - Implements ConfigSetType::string_get() -.
Definition bool.c:109
static int bool_string_set(void *var, struct ConfigDef *cdef, const char *value, struct Buffer *err)
Set a Bool by string - Implements ConfigSetType::string_set() -.
Definition bool.c:58
@ DT_BOOL
boolean option
Definition types.h:32

◆ CstEnum

const struct ConfigSetType CstEnum
extern

Config type representing an enumeration.

Definition at line 192 of file enum.c.

192 {
193 DT_ENUM,
194 "enum",
199 NULL, // string_plus_equals
200 NULL, // string_minus_equals
203 NULL, // destroy
204};
static bool enum_has_been_set(void *var, const struct ConfigDef *cdef)
Is the config value different to its initial value?
Definition enum.c:161
static intptr_t enum_native_get(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Get an int object from an Enumeration config item - Implements ConfigSetType::native_get() -.
Definition enum.c:153
static int enum_native_set(void *var, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Set an Enumeration config item by int - Implements ConfigSetType::native_set() -.
Definition enum.c:118
static int enum_reset(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Reset an Enumeration to its initial value - Implements ConfigSetType::reset() -.
Definition enum.c:169
static int enum_string_get(void *var, const struct ConfigDef *cdef, struct Buffer *result)
Get an Enumeration as a string - Implements ConfigSetType::string_get() -.
Definition enum.c:91
static int enum_string_set(void *var, struct ConfigDef *cdef, const char *value, struct Buffer *err)
Set an Enumeration by string - Implements ConfigSetType::string_set() -.
Definition enum.c:45
@ DT_ENUM
an enumeration
Definition types.h:33

◆ CstLong

const struct ConfigSetType CstLong
extern

Config type representing a long.

Definition at line 258 of file long.c.

258 {
259 DT_LONG,
260 "long",
269 NULL, // destroy
270};
static bool long_has_been_set(void *var, const struct ConfigDef *cdef)
Is the config value different to its initial value?
Definition long.c:227
static intptr_t long_native_get(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Get a long from a Long config item - Implements ConfigSetType::native_get() -.
Definition long.c:143
static int long_native_set(void *var, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Set a Long config item by long - Implements ConfigSetType::native_set() -.
Definition long.c:113
static int long_reset(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Reset a Long to its initial value - Implements ConfigSetType::reset() -.
Definition long.c:235
static int long_string_get(void *var, const struct ConfigDef *cdef, struct Buffer *result)
Get a Long as a string - Implements ConfigSetType::string_get() -.
Definition long.c:97
static int long_string_minus_equals(void *var, const struct ConfigDef *cdef, const char *value, struct Buffer *err)
Subtract from a Long by string - Implements ConfigSetType::string_minus_equals() -.
Definition long.c:189
static int long_string_plus_equals(void *var, const struct ConfigDef *cdef, const char *value, struct Buffer *err)
Add to a Long by string - Implements ConfigSetType::string_plus_equals() -.
Definition long.c:151
static int long_string_set(void *var, struct ConfigDef *cdef, const char *value, struct Buffer *err)
Set a Long by string - Implements ConfigSetType::string_set() -.
Definition long.c:46
@ DT_LONG
a number (long)
Definition types.h:35

◆ CstMbtable

const struct ConfigSetType CstMbtable
extern

Config type representing a multi-byte table.

Definition at line 354 of file mbtable.c.

354 {
356 "mbtable",
361 NULL, // string_plus_equals
362 NULL, // string_minus_equals
366};
static void mbtable_destroy(void *var, const struct ConfigDef *cdef)
Destroy an MbTable object - Implements ConfigSetType::destroy() -.
Definition mbtable.c:110
static bool mbtable_has_been_set(void *var, const struct ConfigDef *cdef)
Is the config value different to its initial value?
Definition mbtable.c:259
static intptr_t mbtable_native_get(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Get an MbTable object from a MbTable config item - Implements ConfigSetType::native_get() -.
Definition mbtable.c:249
static int mbtable_native_set(void *var, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Set an MbTable config item by MbTable object - Implements ConfigSetType::native_set() -.
Definition mbtable.c:215
static int mbtable_reset(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Reset an MbTable to its initial value - Implements ConfigSetType::reset() -.
Definition mbtable.c:272
static int mbtable_string_get(void *var, const struct ConfigDef *cdef, struct Buffer *result)
Get a MbTable as a string - Implements ConfigSetType::string_get() -.
Definition mbtable.c:177
static int mbtable_string_set(void *var, struct ConfigDef *cdef, const char *value, struct Buffer *err)
Set an MbTable by string - Implements ConfigSetType::string_set() -.
Definition mbtable.c:122
@ DT_MBTABLE
multibyte char table
Definition types.h:36

◆ CstMyVar

const struct ConfigSetType CstMyVar
extern

Config type representing a MyVar.

Definition at line 203 of file myvar.c.

203 {
204 DT_MYVAR,
205 "myvar",
211 NULL, // string_minus_equals
212 NULL, // has_been_set
215};
static void myvar_destroy(void *var, const struct ConfigDef *cdef)
Destroy a MyVar - Implements ConfigSetType::destroy() -.
Definition myvar.c:45
static intptr_t myvar_native_get(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Get a string from a MyVar config item - Implements ConfigSetType::native_get() -.
Definition myvar.c:141
static int myvar_native_set(void *var, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Set a MyVar config item by string - Implements ConfigSetType::native_set() -.
Definition myvar.c:113
static int myvar_reset(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Reset a MyVar to its initial value - Implements ConfigSetType::reset() -.
Definition myvar.c:177
static int myvar_string_get(void *var, const struct ConfigDef *cdef, struct Buffer *result)
Get a MyVar as a string - Implements ConfigSetType::string_get() -.
Definition myvar.c:94
static int myvar_string_plus_equals(void *var, const struct ConfigDef *cdef, const char *value, struct Buffer *err)
Add to a MyVar by string - Implements ConfigSetType::string_plus_equals() -.
Definition myvar.c:151
static int myvar_string_set(void *var, struct ConfigDef *cdef, const char *value, struct Buffer *err)
Set a MyVar by string - Implements ConfigSetType::string_set() -.
Definition myvar.c:57
@ DT_MYVAR
a user-defined variable (my_foo)
Definition types.h:37

◆ CstNumber

const struct ConfigSetType CstNumber
extern

Config type representing a number.

Definition at line 327 of file number.c.

327 {
328 DT_NUMBER,
329 "number",
338 NULL, // destroy
339};
static bool number_has_been_set(void *var, const struct ConfigDef *cdef)
Is the config value different to its initial value?
Definition number.c:272
static intptr_t number_native_get(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Get an int from a Number config item - Implements ConfigSetType::native_get() -.
Definition number.c:182
static int number_native_set(void *var, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Set a Number config item by int - Implements ConfigSetType::native_set() -.
Definition number.c:146
static int number_reset(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Reset a Number to its initial value - Implements ConfigSetType::reset() -.
Definition number.c:280
static int number_string_get(void *var, const struct ConfigDef *cdef, struct Buffer *result)
Get a Number as a string - Implements ConfigSetType::string_get() -.
Definition number.c:130
static int number_string_minus_equals(void *var, const struct ConfigDef *cdef, const char *value, struct Buffer *err)
Subtract from a Number by string - Implements ConfigSetType::string_minus_equals() -.
Definition number.c:231
static int number_string_plus_equals(void *var, const struct ConfigDef *cdef, const char *value, struct Buffer *err)
Add to a Number by string - Implements ConfigSetType::string_plus_equals() -.
Definition number.c:190
static int number_string_set(void *var, struct ConfigDef *cdef, const char *value, struct Buffer *err)
Set a Number by string - Implements ConfigSetType::string_set() -.
Definition number.c:79
@ DT_NUMBER
a number
Definition types.h:38

◆ CstPath

const struct ConfigSetType CstPath
extern

Config type representing a path.

Definition at line 273 of file path.c.

273 {
274 DT_PATH,
275 "path",
280 NULL, // string_plus_equals
281 NULL, // string_minus_equals
285};
static void path_destroy(void *var, const struct ConfigDef *cdef)
Destroy a Path - Implements ConfigSetType::destroy() -.
Definition path.c:77
static bool path_has_been_set(void *var, const struct ConfigDef *cdef)
Is the config value different to its initial value?
Definition path.c:217
static intptr_t path_native_get(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Get a string from a Path config item - Implements ConfigSetType::native_get() -.
Definition path.c:207
static int path_native_set(void *var, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Set a Path config item by string - Implements ConfigSetType::native_set() -.
Definition path.c:162
static int path_reset(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Reset a Path to its initial value - Implements ConfigSetType::reset() -.
Definition path.c:230
static int path_string_get(void *var, const struct ConfigDef *cdef, struct Buffer *result)
Get a Path as a string - Implements ConfigSetType::string_get() -.
Definition path.c:143
static int path_string_set(void *var, struct ConfigDef *cdef, const char *value, struct Buffer *err)
Set a Path by string - Implements ConfigSetType::string_set() -.
Definition path.c:89
@ DT_PATH
a path to a file/directory
Definition types.h:39

◆ CstQuad

const struct ConfigSetType CstQuad
extern

Config type representing a quad-option.

Definition at line 249 of file quad.c.

249 {
250 DT_QUAD,
251 "quad",
256 NULL, // string_plus_equals
257 NULL, // string_minus_equals
260 NULL, // destroy
261};
static bool quad_has_been_set(void *var, const struct ConfigDef *cdef)
Is the config value different to its initial value?
Definition quad.c:173
static intptr_t quad_native_get(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Get an int object from a Quad-option config item - Implements ConfigSetType::native_get() -.
Definition quad.c:165
static int quad_native_set(void *var, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Set a Quad-option config item by int - Implements ConfigSetType::native_set() -.
Definition quad.c:135
static int quad_reset(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Reset a Quad-option to its initial value - Implements ConfigSetType::reset() -.
Definition quad.c:181
static int quad_string_get(void *var, const struct ConfigDef *cdef, struct Buffer *result)
Get a Quad-option as a string - Implements ConfigSetType::string_get() -.
Definition quad.c:113
static int quad_string_set(void *var, struct ConfigDef *cdef, const char *value, struct Buffer *err)
Set a Quad-option by string - Implements ConfigSetType::string_set() -.
Definition quad.c:62
@ DT_QUAD
quad-option (no/yes/ask-no/ask-yes)
Definition types.h:40

◆ CstRegex

const struct ConfigSetType CstRegex
extern

Config type representing a regular expression.

Definition at line 345 of file regex.c.

345 {
346 DT_REGEX,
347 "regex",
352 NULL, // string_plus_equals
353 NULL, // string_minus_equals
357};
static void regex_destroy(void *var, const struct ConfigDef *cdef)
Destroy a Regex object - Implements ConfigSetType::destroy() -.
Definition regex.c:85
static bool regex_has_been_set(void *var, const struct ConfigDef *cdef)
Is the config value different to its initial value?
Definition regex.c:284
static intptr_t regex_native_get(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Get a Regex object from a Regex config item - Implements ConfigSetType::native_get() -.
Definition regex.c:274
static int regex_native_set(void *var, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Set a Regex config item by Regex object - Implements ConfigSetType::native_set() -.
Definition regex.c:227
static int regex_reset(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Reset a Regex to its initial value - Implements ConfigSetType::reset() -.
Definition regex.c:297
static int regex_string_get(void *var, const struct ConfigDef *cdef, struct Buffer *result)
Get a Regex as a string - Implements ConfigSetType::string_get() -.
Definition regex.c:202
static int regex_string_set(void *var, struct ConfigDef *cdef, const char *value, struct Buffer *err)
Set a Regex by string - Implements ConfigSetType::string_set() -.
Definition regex.c:142
@ DT_REGEX
regular expressions
Definition types.h:41

◆ CstSlist

const struct ConfigSetType CstSlist
extern

Config type representing a list of strings.

Definition at line 334 of file slist.c.

334 {
335 DT_SLIST,
336 "slist",
346};
static void slist_destroy(void *var, const struct ConfigDef *cdef)
Destroy an Slist object - Implements ConfigSetType::destroy() -.
Definition slist.c:47
static bool slist_has_been_set(void *var, const struct ConfigDef *cdef)
Is the config value different to its initial value?
Definition slist.c:273
static intptr_t slist_native_get(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Get a Slist from a Slist config item - Implements ConfigSetType::native_get() -.
Definition slist.c:178
static int slist_native_set(void *var, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Set a Slist config item by Slist - Implements ConfigSetType::native_set() -.
Definition slist.c:144
static int slist_reset(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Reset a Slist to its initial value - Implements ConfigSetType::reset() -.
Definition slist.c:289
static int slist_string_get(void *var, const struct ConfigDef *cdef, struct Buffer *result)
Get a Slist as a string - Implements ConfigSetType::string_get() -.
Definition slist.c:119
static int slist_string_minus_equals(void *var, const struct ConfigDef *cdef, const char *value, struct Buffer *err)
Remove from a Slist by string - Implements ConfigSetType::string_minus_equals() -.
Definition slist.c:232
static int slist_string_plus_equals(void *var, const struct ConfigDef *cdef, const char *value, struct Buffer *err)
Add to a Slist by string - Implements ConfigSetType::string_plus_equals() -.
Definition slist.c:188
static int slist_string_set(void *var, struct ConfigDef *cdef, const char *value, struct Buffer *err)
Set a Slist by string - Implements ConfigSetType::string_set() -.
Definition slist.c:59
@ DT_SLIST
a list of strings
Definition types.h:42

◆ CstSort

const struct ConfigSetType CstSort
extern

Config type representing a sort option.

Definition at line 231 of file sort.c.

231 {
232 DT_SORT,
233 "sort",
238 NULL, // string_plus_equals
239 NULL, // string_minus_equals
242 NULL, // destroy
243};
static bool sort_has_been_set(void *var, const struct ConfigDef *cdef)
Is the config value different to its initial value?
Definition sort.c:200
static intptr_t sort_native_get(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Get an int from a Sort config item - Implements ConfigSetType::native_get() -.
Definition sort.c:192
static int sort_native_set(void *var, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Set a Sort config item by int - Implements ConfigSetType::native_set() -.
Definition sort.c:158
static int sort_reset(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Reset a Sort to its initial value - Implements ConfigSetType::reset() -.
Definition sort.c:208
static int sort_string_get(void *var, const struct ConfigDef *cdef, struct Buffer *result)
Get a Sort as a string - Implements ConfigSetType::string_get() -.
Definition sort.c:125
static int sort_string_set(void *var, struct ConfigDef *cdef, const char *value, struct Buffer *err)
Set a Sort by string - Implements ConfigSetType::string_set() -.
Definition sort.c:52
@ DT_SORT
sorting methods
Definition types.h:43

◆ CstString

const struct ConfigSetType CstString
extern

Config type representing a string.

Definition at line 282 of file string.c.

282 {
283 DT_STRING,
284 "string",
290 NULL, // string_minus_equals
294};
static void string_destroy(void *var, const struct ConfigDef *cdef)
Destroy a String - Implements ConfigSetType::destroy() -.
Definition string.c:48
static bool string_has_been_set(void *var, const struct ConfigDef *cdef)
Is the config value different to its initial value?
Definition string.c:228
static intptr_t string_native_get(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Get a string from a String config item - Implements ConfigSetType::native_get() -.
Definition string.c:178
static int string_native_set(void *var, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Set a String config item by string - Implements ConfigSetType::native_set() -.
Definition string.c:133
static int string_reset(void *var, const struct ConfigDef *cdef, struct Buffer *err)
Reset a String to its initial value - Implements ConfigSetType::reset() -.
Definition string.c:239
static int string_string_get(void *var, const struct ConfigDef *cdef, struct Buffer *result)
Get a String as a string - Implements ConfigSetType::string_get() -.
Definition string.c:114
static int string_string_plus_equals(void *var, const struct ConfigDef *cdef, const char *value, struct Buffer *err)
Add to a String by string - Implements ConfigSetType::string_plus_equals() -.
Definition string.c:188
static int string_string_set(void *var, struct ConfigDef *cdef, const char *value, struct Buffer *err)
Set a String by string - Implements ConfigSetType::string_set() -.
Definition string.c:60
@ DT_STRING
a string
Definition types.h:44

◆ ModuleConfig

const struct Module ModuleConfig
Initial value:
= {
"config",
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
}
static bool config_config_define_types(struct NeoMutt *n, struct ConfigSet *cs)
Set up Config Types - Implements Module::config_define_types()
Definition module.c:51
@ MODULE_ID_CONFIG
ModuleConfig, Config
Definition module_api.h:59

Module for the Config library.

Definition at line 74 of file module.c.

74 {
76 "config",
77 NULL, // init
79 NULL, // config_define_variables
80 NULL, // commands_register
81 NULL, // gui_init
82 NULL, // gui_cleanup
83 NULL, // cleanup
84};