NeoMutt  2024-11-14-34-g5aaf0d
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
state.c
Go to the documentation of this file.
1
29#include "config.h"
30#include <wchar.h>
31#include "mutt/lib.h"
32#include "state.h"
33
38void enter_state_free(struct EnterState **ptr)
39{
40 if (!ptr || !*ptr)
41 return;
42
43 struct EnterState *es = *ptr;
44
45 FREE(&es->wbuf);
46 FREE(ptr);
47}
48
54void enter_state_resize(struct EnterState *es, size_t num)
55{
56 if (!es)
57 return;
58
59 if (num <= es->wbuflen)
60 return;
61
62 num = ROUND_UP(num + 4, 128);
63 MUTT_MEM_REALLOC(&es->wbuf, num, wchar_t);
64
65 wmemset(es->wbuf + es->wbuflen, 0, num - es->wbuflen);
66
67 es->wbuflen = num;
68}
69
75{
76 struct EnterState *es = MUTT_MEM_CALLOC(1, struct EnterState);
77
78 enter_state_resize(es, 1);
79
80 return es;
81}
struct EnterState * enter_state_new(void)
Create a new EnterState.
Definition: state.c:74
void enter_state_free(struct EnterState **ptr)
Free an EnterState.
Definition: state.c:38
void enter_state_resize(struct EnterState *es, size_t num)
Make the buffer bigger.
Definition: state.c:54
#define FREE(x)
Definition: memory.h:55
#define ROUND_UP(NUM, STEP)
Definition: memory.h:36
#define MUTT_MEM_CALLOC(n, type)
Definition: memory.h:40
#define MUTT_MEM_REALLOC(pptr, n, type)
Definition: memory.h:43
Convenience wrapper for the library headers.
Keep track when processing files.
Keep our place when entering a string.
Definition: state.h:32
size_t wbuflen
Length of buffer.
Definition: state.h:34
wchar_t * wbuf
Buffer for the string being entered.
Definition: state.h:33