1 /* histlib.h -- internal definitions for the history library. */
2 /* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
3 
4    This file contains the GNU History Library (the Library), a set of
5    routines for managing the text of previously typed lines.
6 
7    The Library is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 2, or (at your option)
10    any later version.
11 
12    The Library is distributed in the hope that it will be useful, but
13    WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15    General Public License for more details.
16 
17    The GNU General Public License is often shipped with GNU software, and
18    is generally kept in a file called COPYING or LICENSE.  If you do not
19    have a copy of the license, write to the Free Software Foundation,
20    51 Franklin Street, Fifth Floor, Boston, MA  02110-1335  USA. */
21 
22 #if !defined (_HISTLIB_H_)
23 #define _HISTLIB_H_
24 
25 #if defined (HAVE_STRING_H)
26 #  include <string.h>
27 #else
28 #  include <strings.h>
29 #endif /* !HAVE_STRING_H */
30 
31 #if !defined (STREQ)
32 #define STREQ(a, b)	(((a)[0] == (b)[0]) && (strcmp ((a), (b)) == 0))
33 #define STREQN(a, b, n) (((n) == 0) ? (1) \
34 				    : ((a)[0] == (b)[0]) && (strncmp ((a), (b), (n)) == 0))
35 #endif
36 
37 #ifndef savestring
38 #define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x))
39 #endif
40 
41 #ifndef whitespace
42 #define whitespace(c) (((c) == ' ') || ((c) == '\t'))
43 #endif
44 
45 #ifndef _rl_digit_p
46 #define _rl_digit_p(c)  ((c) >= '0' && (c) <= '9')
47 #endif
48 
49 #ifndef _rl_digit_value
50 #define _rl_digit_value(c) ((c) - '0')
51 #endif
52 
53 #ifndef member
54 #  ifndef strchr
55 extern char *strchr ();
56 #  endif
57 #define member(c, s) ((c) ? ((char *)strchr ((s), (c)) != (char *)NULL) : 0)
58 #endif
59 
60 #ifndef FREE
61 #  define FREE(x)	if (x) free (x)
62 #endif
63 
64 /* Possible history errors passed to hist_error. */
65 #define EVENT_NOT_FOUND 0
66 #define BAD_WORD_SPEC	1
67 #define SUBST_FAILED	2
68 #define BAD_MODIFIER	3
69 #define NO_PREV_SUBST	4
70 
71 /* Possible definitions for history starting point specification. */
72 #define ANCHORED_SEARCH 1
73 #define NON_ANCHORED_SEARCH 0
74 
75 /* Possible definitions for what style of writing the history file we want. */
76 #define HISTORY_APPEND 0
77 #define HISTORY_OVERWRITE 1
78 
79 /* Some variable definitions shared across history source files. */
80 extern int history_offset;
81 
82 #endif /* !_HISTLIB_H_ */
83