NeoMutt
2025-12-11-1039-g550ac6
Teaching an old dog new tricks
DOXYGEN
Toggle main menu visibility
Loading...
Searching...
No Matches
expando.c
Go to the documentation of this file.
1
22
28
29
#include <stdbool.h>
30
#include <stdio.h>
31
#include "
private.h
"
32
#include "
mutt/lib.h
"
33
#include "
expando/lib.h
"
34
#include "
pattern_data.h
"
35
39
static
void
pattern_description
(
const
struct
ExpandoNode
*node,
void
*data,
40
MuttFormatFlags
flags,
struct
Buffer
*buf)
41
{
42
const
struct
PatternEntry
*entry = data;
43
44
const
char
*s = entry->
desc
;
45
buf_strcpy
(buf, s);
46
}
47
51
static
void
pattern_expression
(
const
struct
ExpandoNode
*node,
void
*data,
52
MuttFormatFlags
flags,
struct
Buffer
*buf)
53
{
54
const
struct
PatternEntry
*entry = data;
55
56
const
char
*s = entry->
expr
;
57
buf_strcpy
(buf, s);
58
}
59
63
static
long
pattern_number_num
(
const
struct
ExpandoNode
*node,
void
*data,
MuttFormatFlags
flags)
64
{
65
const
struct
PatternEntry
*entry = data;
66
67
return
entry->
num
;
68
}
69
75
const
struct
ExpandoRenderCallback
PatternRenderCallbacks
[] = {
76
// clang-format off
77
{
ED_PATTERN
,
ED_PAT_DESCRIPTION
,
pattern_description
, NULL },
78
{
ED_PATTERN
,
ED_PAT_EXPRESSION
,
pattern_expression
, NULL },
79
{
ED_PATTERN
,
ED_PAT_NUMBER
, NULL,
pattern_number_num
},
80
{ -1, -1, NULL, NULL },
81
// clang-format on
82
};
buf_strcpy
size_t buf_strcpy(struct Buffer *buf, const char *s)
Copy a string into a Buffer.
Definition
buffer.c:401
ED_PATTERN
@ ED_PATTERN
Pattern ED_PAT_ ExpandoDataPattern.
Definition
domain.h:51
lib.h
Parse Expando string.
pattern_number_num
static long pattern_number_num(const struct ExpandoNode *node, void *data, MuttFormatFlags flags)
Pattern: Index number - Implements get_number_t -.
Definition
expando.c:63
pattern_description
static void pattern_description(const struct ExpandoNode *node, void *data, MuttFormatFlags flags, struct Buffer *buf)
Pattern: pattern description - Implements get_string_t -.
Definition
expando.c:39
pattern_expression
static void pattern_expression(const struct ExpandoNode *node, void *data, MuttFormatFlags flags, struct Buffer *buf)
Pattern: pattern expression - Implements get_string_t -.
Definition
expando.c:51
lib.h
Convenience wrapper for the library headers.
PatternRenderCallbacks
const struct ExpandoRenderCallback PatternRenderCallbacks[]
Callbacks for Pattern Expandos.
Definition
expando.c:75
private.h
Shared constants/structs that are private to libpattern.
ED_PAT_DESCRIPTION
@ ED_PAT_DESCRIPTION
PatternEntry.desc.
Definition
private.h:40
ED_PAT_EXPRESSION
@ ED_PAT_EXPRESSION
PatternEntry.expr.
Definition
private.h:41
ED_PAT_NUMBER
@ ED_PAT_NUMBER
PatternEntry.num.
Definition
private.h:42
pattern_data.h
Private Pattern Data.
MuttFormatFlags
uint8_t MuttFormatFlags
Definition
render.h:45
Buffer
String manipulation buffer.
Definition
buffer.h:36
ExpandoNode
Basic Expando Node.
Definition
node.h:67
ExpandoRenderCallback
Definition
render.h:82
PatternEntry
A line in the Pattern Completion menu.
Definition
pattern_data.h:35
PatternEntry::desc
const char * desc
Description of pattern.
Definition
pattern_data.h:39
PatternEntry::num
int num
Index number.
Definition
pattern_data.h:36
PatternEntry::expr
const char * expr
Displayed in the menu.
Definition
pattern_data.h:38