24#ifndef MUTT_CONFIG_TYPES_H
25#define MUTT_CONFIG_TYPES_H
50#define DTYPE(t) ((enum ConfigType)((t) & 0x1F))
79#define D_ON_STARTUP (1 << D_B_ON_STARTUP)
80#define D_NOT_EMPTY (1 << D_B_NOT_EMPTY)
81#define D_SENSITIVE (1 << D_B_SENSITIVE)
82#define D_L10N_STRING (1 << D_B_L10N_STRING)
84#define D_CHARSET_SINGLE (1 << D_B_CHARSET_SINGLE)
85#define D_CHARSET_STRICT (1 << D_B_CHARSET_STRICT)
87#define D_INTERNAL_FREE_CONFIGDEF (1 << D_B_INTERNAL_FREE_CONFIGDEF)
88#define D_INTERNAL_DEPRECATED (1 << D_B_INTERNAL_DEPRECATED)
89#define D_INTERNAL_INHERITED (1 << D_B_INTERNAL_INHERITED)
90#define D_INTERNAL_INITIAL_SET (1 << D_B_INTERNAL_INITIAL_SET)
92#define D_CUSTOM_BIT_0 (1 << D_B_CUSTOM_BIT_0)
93#define D_CUSTOM_BIT_1 (1 << D_B_CUSTOM_BIT_1)
94#define D_CUSTOM_BIT_2 (1 << D_B_CUSTOM_BIT_2)
95#define D_CUSTOM_BIT_3 (1 << D_B_CUSTOM_BIT_3)
96#define D_CUSTOM_BIT_4 (1 << D_B_CUSTOM_BIT_4)
98#define D_STRING_MAILBOX D_CUSTOM_BIT_0
99#define D_STRING_COMMAND D_CUSTOM_BIT_1
101#define D_INTEGER_NOT_NEGATIVE D_CUSTOM_BIT_0
103#define D_PATH_DIR D_CUSTOM_BIT_0
104#define D_PATH_FILE D_CUSTOM_BIT_1
106#define D_REGEX_MATCH_CASE D_CUSTOM_BIT_0
107#define D_REGEX_ALLOW_NOT D_CUSTOM_BIT_1
108#define D_REGEX_NOSUB D_CUSTOM_BIT_2
110#define D_SLIST_SEP_SPACE (0 << D_B_CUSTOM_BIT_0)
111#define D_SLIST_SEP_COMMA (1 << D_B_CUSTOM_BIT_0)
112#define D_SLIST_SEP_COLON (2 << D_B_CUSTOM_BIT_0)
113#define D_SLIST_SEP_MASK (D_CUSTOM_BIT_0 | D_CUSTOM_BIT_1)
115#define D_SLIST_ALLOW_DUPES D_CUSTOM_BIT_2
116#define D_SLIST_ALLOW_EMPTY D_CUSTOM_BIT_3
117#define D_SLIST_CASE_SENSITIVE D_CUSTOM_BIT_4
119#define D_SORT_LAST D_CUSTOM_BIT_0
120#define D_SORT_REVERSE D_CUSTOM_BIT_1
122#define IS_MAILBOX(flags) ((DTYPE(flags) == DT_STRING) && (flags & D_STRING_MAILBOX))
123#define IS_COMMAND(flags) ((DTYPE(flags) == DT_STRING) && (flags & D_STRING_COMMAND))
@ DT_SLIST
a list of strings
@ DT_QUAD
quad-option (no/yes/ask-no/ask-yes)
@ DT_SYNONYM
synonym for another variable
@ DT_MYVAR
a user-defined variable (my_foo)
@ DT_MBTABLE
multibyte char table
@ DT_ADDRESS
e-mail address
@ DT_REGEX
regular expressions
@ DT_PATH
a path to a file/directory
@ DT_HCACHE
header cache backend
@ D_B_SENSITIVE
Contains sensitive value, e.g. password.
@ D_B_INTERNAL_FREE_CONFIGDEF
Config item must have its ConfigDef freed.
@ D_B_L10N_STRING
String can be localised.
@ D_B_INTERNAL_DEPRECATED
Config item shouldn't be used any more.
@ D_B_CUSTOM_BIT_5
6th flag available for customising config types
@ D_B_CUSTOM_BIT_2
3rd flag available for customising config types
@ D_B_CUSTOM_BIT_6
7th flag available for customising config types
@ D_B_CUSTOM_BIT_3
4th flag available for customising config types
@ D_B_INTERNAL_INHERITED
Config item is inherited.
@ D_B_CHARSET_STRICT
Flag for charset_validator to use strict char check.
@ D_B_ON_STARTUP
May only be set at startup.
@ D_B_CUSTOM_BIT_0
1st flag available for customising config types
@ D_B_CUSTOM_BIT_4
5th flag available for customising config types
@ D_B_CHARSET_SINGLE
Flag for charset_validator to allow only one charset.
@ D_B_CUSTOM_BIT_7
8th flag available for customising config types
@ D_B_CUSTOM_BIT_1
2nd flag available for customising config types
@ D_B_INTERNAL_INITIAL_SET
Config item must have its initial value freed.
@ D_B_NOT_EMPTY
Empty strings are not allowed.