annotate readline/keymaps.c @ 2484:ccaffe93c32f

[project @ 1996-11-07 23:24:46 by jwe]
author jwe
date Thu, 07 Nov 1996 23:25:37 +0000
parents cd2b52fb9019
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1432
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
1 /* keymaps.c -- Functions and keymaps for the GNU Readline library. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
2
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
3 /* Copyright (C) 1988,1989 Free Software Foundation, Inc.
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
4
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
5 This file is part of GNU Readline, a library for reading lines
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
6 of text with interactive input and history editing.
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
7
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
8 Readline is free software; you can redistribute it and/or modify it
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
9 under the terms of the GNU General Public License as published by the
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
10 Free Software Foundation; either version 1, or (at your option) any
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
11 later version.
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
12
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
13 Readline is distributed in the hope that it will be useful, but
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
14 WITHOUT ANY WARRANTY; without even the implied warranty of
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
16 General Public License for more details.
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
17
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
19 along with Readline; see the file COPYING. If not, write to the Free
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
20 Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
21
1438
cd2b52fb9019 [project @ 1995-09-19 08:00:23 by jwe]
jwe
parents: 1432
diff changeset
22 #ifdef HAVE_CONFIG_H
cd2b52fb9019 [project @ 1995-09-19 08:00:23 by jwe]
jwe
parents: 1432
diff changeset
23 #include <config.h>
1432
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
24 #endif
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
25
1438
cd2b52fb9019 [project @ 1995-09-19 08:00:23 by jwe]
jwe
parents: 1432
diff changeset
26 #define READLINE_LIBRARY
cd2b52fb9019 [project @ 1995-09-19 08:00:23 by jwe]
jwe
parents: 1432
diff changeset
27
1432
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
28 #if defined (HAVE_STDLIB_H)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
29 # include <stdlib.h>
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
30 #else
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
31 # include "ansi_stdlib.h"
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
32 #endif /* HAVE_STDLIB_H */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
33
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
34 #include "rlconf.h"
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
35 #include "keymaps.h"
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
36 #include "emacs_keymap.c"
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
37
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
38 #if defined (VI_MODE)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
39 #include "vi_keymap.c"
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
40 #endif
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
41
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
42 extern int rl_do_lowercase_version ();
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
43 extern int rl_rubout (), rl_insert ();
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
44
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
45 #if defined (STATIC_MALLOC)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
46 static char *xmalloc (), *xrealloc ();
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
47 #else
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
48 extern char *xmalloc (), *xrealloc ();
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
49 #endif /* STATIC_MALLOC */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
50
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
51 /* **************************************************************** */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
52 /* */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
53 /* Functions for manipulating Keymaps. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
54 /* */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
55 /* **************************************************************** */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
56
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
57
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
58 /* Return a new, empty keymap.
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
59 Free it with free() when you are done. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
60 Keymap
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
61 rl_make_bare_keymap ()
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
62 {
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
63 register int i;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
64 Keymap keymap = (Keymap)xmalloc (KEYMAP_SIZE * sizeof (KEYMAP_ENTRY));
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
65
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
66 for (i = 0; i < KEYMAP_SIZE; i++)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
67 {
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
68 keymap[i].type = ISFUNC;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
69 keymap[i].function = (Function *)NULL;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
70 }
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
71
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
72 for (i = 'A'; i < ('Z' + 1); i++)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
73 {
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
74 keymap[i].type = ISFUNC;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
75 keymap[i].function = rl_do_lowercase_version;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
76 }
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
77
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
78 return (keymap);
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
79 }
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
80
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
81 /* Return a new keymap which is a copy of MAP. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
82 Keymap
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
83 rl_copy_keymap (map)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
84 Keymap map;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
85 {
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
86 register int i;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
87 Keymap temp = rl_make_bare_keymap ();
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
88
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
89 for (i = 0; i < KEYMAP_SIZE; i++)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
90 {
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
91 temp[i].type = map[i].type;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
92 temp[i].function = map[i].function;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
93 }
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
94 return (temp);
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
95 }
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
96
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
97 /* Return a new keymap with the printing characters bound to rl_insert,
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
98 the uppercase Meta characters bound to run their lowercase equivalents,
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
99 and the Meta digits bound to produce numeric arguments. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
100 Keymap
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
101 rl_make_keymap ()
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
102 {
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
103 register int i;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
104 Keymap newmap;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
105
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
106 newmap = rl_make_bare_keymap ();
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
107
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
108 /* All ASCII printing characters are self-inserting. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
109 for (i = ' '; i < 127; i++)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
110 newmap[i].function = rl_insert;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
111
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
112 newmap[TAB].function = rl_insert;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
113 newmap[RUBOUT].function = rl_rubout;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
114 newmap[CTRL('H')].function = rl_rubout;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
115
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
116 #if KEYMAP_SIZE > 128
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
117 /* Printing characters in some 8-bit character sets. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
118 for (i = 128; i < 160; i++)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
119 newmap[i].function = rl_insert;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
120
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
121 /* ISO Latin-1 printing characters should self-insert. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
122 for (i = 160; i < 256; i++)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
123 newmap[i].function = rl_insert;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
124 #endif /* KEYMAP_SIZE > 128 */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
125
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
126 return (newmap);
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
127 }
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
128
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
129 /* Free the storage associated with MAP. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
130 void
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
131 rl_discard_keymap (map)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
132 Keymap (map);
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
133 {
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
134 int i;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
135
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
136 if (!map)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
137 return;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
138
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
139 for (i = 0; i < KEYMAP_SIZE; i++)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
140 {
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
141 switch (map[i].type)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
142 {
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
143 case ISFUNC:
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
144 break;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
145
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
146 case ISKMAP:
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
147 rl_discard_keymap ((Keymap)map[i].function);
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
148 break;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
149
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
150 case ISMACR:
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
151 free ((char *)map[i].function);
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
152 break;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
153 }
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
154 }
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
155 }
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
156
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
157 #if defined (STATIC_MALLOC)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
158
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
159 /* **************************************************************** */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
160 /* */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
161 /* xmalloc and xrealloc () */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
162 /* */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
163 /* **************************************************************** */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
164
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
165 static void memory_error_and_abort ();
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
166
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
167 static char *
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
168 xmalloc (bytes)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
169 int bytes;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
170 {
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
171 char *temp = (char *)malloc (bytes);
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
172
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
173 if (!temp)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
174 memory_error_and_abort ();
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
175 return (temp);
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
176 }
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
177
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
178 static char *
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
179 xrealloc (pointer, bytes)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
180 char *pointer;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
181 int bytes;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
182 {
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
183 char *temp;
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
184
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
185 if (!pointer)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
186 temp = (char *)malloc (bytes);
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
187 else
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
188 temp = (char *)realloc (pointer, bytes);
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
189
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
190 if (!temp)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
191 memory_error_and_abort ();
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
192 return (temp);
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
193 }
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
194
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
195 static void
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
196 memory_error_and_abort ()
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
197 {
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
198 fprintf (stderr, "readline: Out of virtual memory!\n");
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
199 abort ();
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
200 }
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
201 #endif /* STATIC_MALLOC */