NeoMutt  2024-04-25-127-g771158
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
data.c
Go to the documentation of this file.
1
29#include "config.h"
30#include <string.h>
31#include "mutt/lib.h"
32#include "data.h"
33
39{
40 if (!cd || !cd->free_match_strings)
41 return;
42
43 for (int i = 0; i < cd->num_matched; i++)
44 FREE(&cd->match_list[i]);
45
46 cd->free_match_strings = false;
47}
48
54{
55 if (!ptr || !*ptr)
56 return;
57
58 struct CompletionData *cd = *ptr;
59
61
62 FREE(&cd->match_list);
63
64 FREE(ptr);
65}
66
72{
73 struct CompletionData *cd = mutt_mem_calloc(1, sizeof(struct CompletionData));
74
75 cd->match_list_len = 512;
76 cd->match_list = mutt_mem_calloc(cd->match_list_len, sizeof(char *));
77
78 return cd;
79}
80
86{
87 if (!cd)
88 return;
89
91
92 memset(cd->user_typed, 0, sizeof(cd->user_typed));
93 memset(cd->completed, 0, sizeof(cd->completed));
94 memset(cd->match_list, 0, cd->match_list_len * sizeof(char *));
95 cd->num_matched = 0;
96 cd->free_match_strings = false;
97}
struct CompletionData * completion_data_new(void)
Create new Completion Data.
Definition: data.c:71
void completion_data_free(struct CompletionData **ptr)
Free the Completion Data.
Definition: data.c:53
void completion_data_free_match_strings(struct CompletionData *cd)
Free the Completion strings.
Definition: data.c:38
void completion_data_reset(struct CompletionData *cd)
Wipe the stored Completion Data.
Definition: data.c:85
String auto-completion data.
void * mutt_mem_calloc(size_t nmemb, size_t size)
Allocate zeroed memory on the heap.
Definition: memory.c:51
#define FREE(x)
Definition: memory.h:45
Convenience wrapper for the library headers.
State data for auto-completion.
Definition: data.h:33
int match_list_len
Enough space for all of the config items.
Definition: data.h:38
bool free_match_strings
Should the strings in match_list be freed?
Definition: data.h:39
char user_typed[1024]
Initial string that starts completion.
Definition: data.h:34
char completed[256]
Completed string (command or variable)
Definition: data.h:36
int num_matched
Number of matches for completion.
Definition: data.h:35
const char ** match_list
Matching strings.
Definition: data.h:37