NeoMutt
2025-12-11-1040-g5187ba
Teaching an old dog new tricks
DOXYGEN
Toggle main menu visibility
Loading...
Searching...
No Matches
config.c
Go to the documentation of this file.
1
24
30
31
#include "config.h"
32
#include <stdbool.h>
33
#include <stdint.h>
34
#include <string.h>
35
#include "
mutt/lib.h
"
36
#include "
config/lib.h
"
37
43
static
int
maildir_field_delimiter_validator
(
const
struct
ConfigDef
*cdef,
44
intptr_t value,
struct
Buffer
*err)
45
{
46
const
char
*delim = (
const
char
*) value;
47
48
if
(strlen(delim) != 1)
49
{
50
// L10N: maildir_field_delimiter is a config variable and shouldn't be translated
51
buf_printf
(err,
_
(
"maildir_field_delimiter must be exactly one character long"
));
52
return
CSR_ERR_INVALID
;
53
}
54
55
if
(
mutt_isalnum
(*delim) || strchr(
"-.\\/"
, *delim))
56
{
57
// L10N: maildir_field_delimiter is a config variable and shouldn't be translated
58
buf_printf
(err,
_
(
"maildir_field_delimiter cannot be alphanumeric or '-.\\/'"
));
59
return
CSR_ERR_INVALID
;
60
}
61
62
return
CSR_SUCCESS
;
63
}
64
68
struct
ConfigDef
MaildirVars
[] = {
69
// clang-format off
70
{
"check_new"
,
DT_BOOL
,
true
, 0, NULL,
71
"(maildir,mh) Check for new mail while the mailbox is open"
72
},
73
{
"maildir_check_cur"
,
DT_BOOL
,
false
, 0, NULL,
74
"Check both 'new' and 'cur' directories for new mail"
75
},
76
{
"maildir_field_delimiter"
,
DT_STRING
|
D_NOT_EMPTY
|
D_ON_STARTUP
,
IP
":"
, 0,
maildir_field_delimiter_validator
,
77
"Field delimiter to be used for maildir email files (default is colon, recommended alternative is semi-colon)"
78
},
79
{
"maildir_trash"
,
DT_BOOL
,
false
, 0, NULL,
80
"Use the maildir 'trashed' flag, rather than deleting"
81
},
82
{ NULL },
83
// clang-format on
84
};
85
86
#if defined(USE_HCACHE)
90
struct
ConfigDef
MaildirVarsHcache
[] = {
91
// clang-format off
92
{
"maildir_header_cache_verify"
,
DT_BOOL
,
true
, 0, NULL,
93
"Check for maildir changes when opening mailbox"
94
},
95
{ NULL },
96
// clang-format on
97
};
98
#endif
buf_printf
int buf_printf(struct Buffer *buf, const char *fmt,...)
Format a string overwriting a Buffer.
Definition
buffer.c:168
lib.h
Convenience wrapper for the config headers.
CSR_ERR_INVALID
#define CSR_ERR_INVALID
Value hasn't been set.
Definition
set.h:36
CSR_SUCCESS
#define CSR_SUCCESS
Action completed successfully.
Definition
set.h:33
IP
#define IP
Definition
set.h:55
mutt_isalnum
bool mutt_isalnum(int arg)
Wrapper for isalnum(3).
Definition
ctype.c:40
maildir_field_delimiter_validator
static int maildir_field_delimiter_validator(const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the "maildir_field_delimiter" config variable - Implements ConfigDef::validator() -.
Definition
config.c:43
MaildirVars
struct ConfigDef MaildirVars[]
Config definitions for the Maildir library.
Definition
config.c:68
MaildirVarsHcache
struct ConfigDef MaildirVarsHcache[]
Config definitions for the Maildir header cache.
Definition
config.c:90
lib.h
Convenience wrapper for the library headers.
_
#define _(a)
Definition
message.h:28
Buffer
String manipulation buffer.
Definition
buffer.h:36
ConfigDef
Definition
set.h:65
DT_BOOL
@ DT_BOOL
boolean option
Definition
types.h:32
DT_STRING
@ DT_STRING
a string
Definition
types.h:44
D_NOT_EMPTY
#define D_NOT_EMPTY
Empty strings are not allowed.
Definition
types.h:80
D_ON_STARTUP
#define D_ON_STARTUP
May only be set at startup.
Definition
types.h:79