NeoMutt  2022-04-29-323-g5fcc6c
Teaching an old dog new tricks
DOXYGEN
state.c File Reference

State of text entry. More...

#include "config.h"
#include <string.h>
#include "mutt/lib.h"
#include "state.h"
+ Include dependency graph for state.c:

Go to the source code of this file.

Functions

void enter_state_free (struct EnterState **ptr)
 Free an EnterState. More...
 
void enter_state_resize (struct EnterState *es, size_t num)
 Make the buffer bigger. More...
 
struct EnterStateenter_state_new (void)
 Create a new EnterState. More...
 

Detailed Description

State of text entry.

Authors
  • Richard Russon

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Definition in file state.c.

Function Documentation

◆ enter_state_free()

void enter_state_free ( struct EnterState **  ptr)

Free an EnterState.

Parameters
[out]ptrEnterState to free

Definition at line 38 of file state.c.

39{
40 if (!ptr || !*ptr)
41 return;
42
43 struct EnterState *es = *ptr;
44
45 FREE(&es->wbuf);
46 FREE(ptr);
47}
#define FREE(x)
Definition: memory.h:43
Keep our place when entering a string.
Definition: state.h:32
wchar_t * wbuf
Buffer for the string being entered.
Definition: state.h:33
+ Here is the caller graph for this function:

◆ enter_state_resize()

void enter_state_resize ( struct EnterState es,
size_t  num 
)

Make the buffer bigger.

Parameters
esState of the Enter buffer
numNumber of wide characters

Definition at line 54 of file state.c.

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 * sizeof(wchar_t));
64
65 memset(es->wbuf + es->wbuflen, 0, (num - es->wbuflen) * sizeof(wchar_t));
66
67 es->wbuflen = num;
68}
void mutt_mem_realloc(void *ptr, size_t size)
Resize a block of memory on the heap.
Definition: memory.c:114
#define ROUND_UP(NUM, STEP)
Definition: memory.h:34
size_t wbuflen
Length of buffer.
Definition: state.h:34
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ enter_state_new()

struct EnterState * enter_state_new ( void  )

Create a new EnterState.

Return values
ptrNew EnterState

Definition at line 74 of file state.c.

75{
76 struct EnterState *es = mutt_mem_calloc(1, sizeof(struct EnterState));
77
78 enter_state_resize(es, 1);
79
80 return es;
81}
void enter_state_resize(struct EnterState *es, size_t num)
Make the buffer bigger.
Definition: state.c:54
void * mutt_mem_calloc(size_t nmemb, size_t size)
Allocate zeroed memory on the heap.
Definition: memory.c:50
+ Here is the call graph for this function:
+ Here is the caller graph for this function: