/* chardefs.h -- Character definitions for readline. */
#ifndef _CHARDEFS_
+#define _CHARDEFS_
+
+#include <ctype.h>
#ifndef savestring
-#define savestring(x) (char *)strcpy (xmalloc (1 + strlen (x)), (x))
+#define savestring(X) _rl_savestring(X)
+extern char * _rl_savestring ();
#endif
#ifndef whitespace
#endif
/* Some character stuff. */
-#define control_character_threshold 0x020 /* smaller than this is control */
-#define meta_character_threshold 0x07f /* larger than this is Meta. */
+#define control_character_threshold 0x020 /* Smaller than this is control. */
+#define meta_character_threshold 0x07f /* Larger than this is Meta. */
#define control_character_bit 0x40 /* 0x000000, must be off. */
#define meta_character_bit 0x080 /* x0000000, must be on. */
+#define largest_char 255 /* Largest character value. */
+#define META_CHAR(c) ((c) > meta_character_threshold && (c) <= largest_char)
#define CTRL(c) ((c) & (~control_character_bit))
#define META(c) ((c) | meta_character_bit)
#define CTRL_P(c) ((c) < control_character_threshold)
#define META_P(c) ((c) > meta_character_threshold)
+#ifndef NEWLINE
#define NEWLINE '\n'
+#endif
+
+#ifndef RETURN
#define RETURN CTRL('M')
+#endif
+
+#ifndef RUBOUT
#define RUBOUT 0x07f
+#endif
+
+#ifndef TAB
#define TAB '\t'
+#endif
+
+#ifdef ABORT_CHAR
+#undef ABORT_CHAR
+#endif
#define ABORT_CHAR CTRL('G')
+
+#ifdef PAGE
+#undef PAGE
+#endif
#define PAGE CTRL('L')
+
+#ifdef SPACE
+#undef SPACE
+#endif
#define SPACE 0x020
+
+#ifdef ESC
+#undef ESC
+#endif
+
#define ESC CTRL('[')
#endif /* _CHARDEFS_ */