Introduction to History
 
Programming with GNU History
History Functions
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.