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 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ 21 22 #if !defined (_HISTLIB_H_) 23 #define _HISTLIB_H_ 24 25 /* Function pointers can be declared as (Function *)foo. */ 26 #if !defined (_FUNCTION_DEF) 27 # define _FUNCTION_DEF 28 typedef int Function (); 29 typedef void VFunction (); 30 typedef char *CPFunction (); 31 typedef char **CPPFunction (); 32 #endif /* _FUNCTION_DEF */ 33 34 #if !defined (STREQ) 35 #define STREQ(a, b) (((a)[0] == (b)[0]) && (strcmp ((a), (b)) == 0)) 36 #define STREQN(a, b, n) (((n) == 0) ? (1) \ 37 : ((a)[0] == (b)[0]) && (strncmp ((a), (b), (n)) == 0)) 38 #endif 39 40 #if !defined (savestring) 41 #include <stdio.h> 42 static char * 43 xstrdup(char *s) 44 { 45 char * cp; 46 cp = strdup(s); 47 if (cp == NULL) { 48 fprintf (stderr, "xstrdup: out of virtual memory\n"); 49 exit (2); 50 } 51 return(cp); 52 } 53 #define savestring(x) xstrdup(x) 54 #endif /* !savestring */ 55 56 #ifndef whitespace 57 #define whitespace(c) (((c) == ' ') || ((c) == '\t')) 58 #endif 59 60 #ifndef _rl_digit_p 61 #define _rl_digit_p(c) ((c) >= '0' && (c) <= '9') 62 #endif 63 64 #ifndef _rl_digit_value 65 #define _rl_digit_value(c) ((c) - '0') 66 #endif 67 68 #ifndef member 69 # ifndef strchr 70 extern char *strchr (); 71 # endif 72 #define member(c, s) ((c) ? ((char *)strchr ((s), (c)) != (char *)NULL) : 0) 73 #endif 74 75 #ifndef FREE 76 # define FREE(x) if (x) free (x) 77 #endif 78 79 /* Possible history errors passed to hist_error. */ 80 #define EVENT_NOT_FOUND 0 81 #define BAD_WORD_SPEC 1 82 #define SUBST_FAILED 2 83 #define BAD_MODIFIER 3 84 #define NO_PREV_SUBST 4 85 86 /* Possible definitions for history starting point specification. */ 87 #define ANCHORED_SEARCH 1 88 #define NON_ANCHORED_SEARCH 0 89 90 /* Possible definitions for what style of writing the history file we want. */ 91 #define HISTORY_APPEND 0 92 #define HISTORY_OVERWRITE 1 93 94 /* Some variable definitions shared across history source files. */ 95 extern int history_offset; 96 97 #endif /* !_HISTLIB_H_ */ 98