GNU History Library. Node: History Storage

PREVIntroduction to History UPProgramming with GNU History NEXTHistory Functions

2.2: History Storage

The history list is an array of history entries. A history entry is declared as follows:

typedef struct _hist_entry {
  char *line;
  char *data;
} HIST_ENTRY;

The history list itself might therefore be declared as

HIST_ENTRY **the_history_list;

The state of the History library is encapsulated into a single structure:

/* A structure used to pass the current state of the history stuff around. */
typedef struct _hist_state {
  HIST_ENTRY **entries;         /* Pointer to the entries themselves. */
  int offset;                   /* The location pointer within this array. */
  int length;                   /* Number of elements within this array. */
  int size;                     /* Number of slots allocated to this array. */
  int flags;
} HISTORY_STATE;

If the flags member includes HS_STIFLED, the history has been stifled.

PREVIntroduction to History UPProgramming with GNU History NEXTHistory Functions