1 /*
2  * keys.c: Does command line parsing, etc
3  *
4  * Written By Michael Sandrof
5  *
6  * Copyright (c) 1990 Michael Sandrof.
7  * Copyright (c) 1991, 1992 Troy Rollo.
8  * Copyright (c) 1992-2000 Matthew R. Green.
9  * All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  *    notice, this list of conditions and the following disclaimer.
16  * 2. Redistributions in binary form must reproduce the above copyright
17  *    notice, this list of conditions and the following disclaimer in the
18  *    documentation and/or other materials provided with the distribution.
19  * 3. The name of the author may not be used to endorse or promote products
20  *    derived from this software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
23  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
24  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
25  * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
29  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32  * SUCH DAMAGE.
33  */
34 
35 #include "irc.h"
36 IRCII_RCSID("@(#)$Id: keys.c,v 1.41 2000/04/04 10:39:43 mrg Exp $");
37 
38 #include "output.h"
39 #include "keys.h"
40 #include "channels.h"
41 #include "ircaux.h"
42 #include "window.h"
43 #include "edit.h"
44 #include "vars.h"
45 #include "translat.h"
46 #include "ircterm.h"
47 #include "input.h"
48 #include "screen.h"
49 #include "menu.h"
50 #include "ircterm.h"
51 
52 /* ninja stuff */
53 #include "operview.h"
54 #include "tabkey.h"
55 #include "ckey.h"
56 #include "dma.h"
57 
58 static	int	lookup_function _((u_char *, int *));
59 static	u_char	* display_key _((u_int));
60 static	void	show_binding _((u_int, int));
61 static	int	parse_key _((u_char *));
62 static	void	write_binding _((u_int, u_int, FILE *, int));
63 static	void	bind_it _((u_char *, u_char *, u_int, int));
64 
65 /*
66  * lookup_function: looks up an irc function by name, and returns the
67  * number of functions that match the name, and sets where index points
68  * to to be the index of the (first) function found.
69  */
70 static int
lookup_function(name,func_index)71 lookup_function(name, func_index)
72 	u_char	*name;
73 	int	*func_index;
74 {
75 	size_t	len;
76 	int	cnt,
77 		i;
78 
79 	if (name)
80 	{
81 		upper(name);
82 		len = my_strlen(name);
83 		cnt = 0;
84 		*func_index = -1;
85 		for (i = 0; i < NUMBER_OF_FUNCTIONS; i++)
86 		{
87 			if (my_strncmp(name, key_names[i].name, len) == 0)
88 			{
89 				cnt++;
90 				if (*func_index == -1)
91 					*func_index = i;
92 			}
93 		}
94 		if (*func_index == -1)
95 			return (0);
96 		if (my_strcmp(name, key_names[*func_index].name) == 0)
97 			return (1);
98 		else
99 			return (cnt);
100 	}
101 	return (0);
102 }
103 
104 /*
105  * display_key: converts the character c to a displayable form and returns
106  * it.  Very simple indeed
107  */
108 static	u_char	*
display_key(c)109 display_key(c)
110 	u_int c;
111 {
112 	static	u_char key[3];
113 
114 	key[2] = (u_char) 0;
115 	if (c < 32)
116 	{
117 		key[0] = '^';
118 		key[1] = c + 64;
119 	}
120 	else if (c == '\177')
121 	{
122 		key[0] = '^';
123 		key[1] = '?';
124 	}
125 	else
126 	{
127 		key[0] = c;
128 		key[1] = (u_char) 0;
129 	}
130 	return (key);
131 }
132 
133 /*
134  * show_binding: given the ascii value of a key and a meta key status (1 for
135  * meta1 keys, 2 for meta2 keys, anything else for normal keys), this will
136  * display the key binding for the key in a nice way
137  */
138 static void
show_binding(c,meta)139 show_binding(c, meta)
140 	u_int	c;
141 	int	meta;
142 {
143 	KeyMap	*map;
144 	char	*meta_str;
145 
146 	switch (meta)
147 	{
148 	case 1:
149 		map = meta1_keys;
150 		meta_str = "META1-";
151 		break;
152 	case 2:
153 		map = meta2_keys;
154 		meta_str = "META2-";
155 		break;
156 	case 3:
157 		map = meta3_keys;
158 		meta_str = "META3-";
159 		break;
160 	case 4:
161 		map = meta4_keys;
162 		meta_str = "META4-";
163 		break;
164 	case 5:
165 		map = meta5_keys;
166 		meta_str = "META5-";
167 		break;
168 	case 6:
169 		map = meta6_keys;
170 		meta_str = "META6-";
171 		break;
172 	case 7:
173 		map = meta7_keys;
174 		meta_str = "META7-";
175 		break;
176 	case 8:
177 		map = meta8_keys;
178 		meta_str = "META8-";
179 		break;
180 	default:
181 		map = keys;
182 		meta_str = CP(empty_string);
183 		break;
184 	}
185 	say("%s%s is bound to %s %s", meta_str, display_key(c),
186 		key_names[map[c].index].name, (map[c].stuff &&
187 		(*(map[c].stuff))) ? map[c].stuff : empty_string);
188 }
189 
190 /*
191  * parse_key: converts a key string. Accepts any key, or ^c where c is any
192  * key (representing control characters), or META1- or META2- for meta1 or
193  * meta2 keys respectively.  The string itself is converted to true ascii
194  * value, thus "^A" is converted to 1, etc.  Meta key info is removed and
195  * returned as the function value, 0 for no meta key, 1 for meta1, and 2 for
196  * meta2.  Thus, "META1-a" is converted to "a" and a 1 is returned.
197  * Furthermore, if ^X is bound to META2_CHARACTER, and "^Xa" is passed to
198  * parse_key(), it is converted to "a" and 2 is returned.  Do ya understand
199  * this?
200  */
201 static int
parse_key(key_str)202 parse_key(key_str)
203 	u_char	*key_str;
204 {
205 	u_char	*ptr1, *ptr2;
206 	u_char	c;
207 	int	meta = 0;
208 
209 	ptr2 = ptr1 = key_str;
210 	while (*ptr1)
211 	{
212 		if (*ptr1 == '^')
213 		{
214 			ptr1++;
215 			switch (*ptr1)
216 			{
217 			case 0:
218 				*(ptr2++) = '^';
219 				break;
220 			case '?':
221 				*(ptr2++) = '\177';
222 				ptr1++;
223 				break;
224 			default:
225 				c = *(ptr1++);
226 				if (islower(c))
227 					c = toupper(c);
228 				if (c < 64)
229 				{
230 					say("Illegal key sequence: ^%c", c);
231 					return (-1);
232 				}
233 				*(ptr2++) = c - 64;
234 			}
235 		}
236 		else
237 			*(ptr2++) = *(ptr1++);
238 	}
239 	*ptr2 = (u_char) 0;
240 	if ((int) my_strlen(key_str) > 1)
241 	{
242 		u_char	*cmd = NULL;
243 
244 		malloc_strcpy(&cmd, key_str);
245 		upper(cmd);
246 		if (my_strncmp(cmd, "META1-", 6) == 0)
247 		{
248 			my_strcpy(key_str, key_str + 6);
249 			meta = 1;
250 		}
251 		else if (my_strncmp(cmd, "META2-", 6) == 0)
252 		{
253 			my_strcpy(key_str, key_str + 6);
254 			meta = 2;
255 		}
256 		else if (my_strncmp(cmd, "META3-", 6) == 0)
257 		{
258 			my_strcpy(key_str, key_str + 6);
259 			meta = 3;
260 		}
261 		else if (my_strncmp(cmd, "META4-", 6) == 0)
262 		{
263 			my_strcpy(key_str, key_str + 6);
264 			meta = 4;
265 		}
266 		else if (my_strncmp(cmd, "META5-", 6) == 0)
267 		{
268 			my_strcpy(key_str, key_str + 6);
269 			meta = 5;
270 		}
271 		else if (my_strncmp(cmd, "META6-", 6) == 0)
272 		{
273 			my_strcpy(key_str, key_str + 6);
274 			meta = 6;
275 		}
276 		else if (my_strncmp(cmd, "META7-", 6) == 0)
277 		{
278 			my_strcpy(key_str, key_str + 6);
279 			meta = 7;
280 		}
281 		else if (my_strncmp(cmd, "META8-", 6) == 0)
282 		{
283 			my_strcpy(key_str, key_str + 6);
284 			meta = 8;
285 		}
286 		else if (keys[(u_char) *key_str].index == META1_CHARACTER)
287 		{
288 			meta = 1;
289 			my_strcpy(key_str, key_str + 1);
290 		}
291 		else if (keys[(u_char) *key_str].index == META2_CHARACTER)
292 		{
293 			meta = 2;
294 			my_strcpy(key_str, key_str + 1);
295 		}
296 		else if (keys[(u_char) *key_str].index == META3_CHARACTER)
297 		{
298 			meta = 3;
299 			my_strcpy(key_str, key_str + 1);
300 		}
301 		else if (keys[(u_char) *key_str].index == META4_CHARACTER)
302 		{
303 			meta = 4;
304 			my_strcpy(key_str, key_str + 1);
305 		}
306 		else if (keys[(u_char) *key_str].index == META5_CHARACTER)
307 		{
308 			meta = 5;
309 			my_strcpy(key_str, key_str + 1);
310 		}
311 		else if (keys[(u_char) *key_str].index == META6_CHARACTER)
312 		{
313 			meta = 6;
314 			my_strcpy(key_str, key_str + 1);
315 		}
316 		else if (keys[(u_char) *key_str].index == META7_CHARACTER)
317 		{
318 			meta = 7;
319 			my_strcpy(key_str, key_str + 1);
320 		}
321 		else if (keys[(u_char) *key_str].index == META8_CHARACTER)
322 		{
323 			meta = 8;
324 			my_strcpy(key_str, key_str + 1);
325 		}
326 		else
327 		{
328 			say("Illegal key sequence: %s is not a meta-key", display_key(*key_str));
329 			return (-1);
330 		}
331 		new_free(&cmd);
332 	}
333 	return (meta);
334 }
335 
336 /*
337  * bind_it: does the actually binding of the function to the key with the
338  * given meta modifier
339  */
340 static	void
bind_it(function,string,key,meta)341 bind_it(function, string, key, meta)
342 	u_char	*function,
343 		*string;
344 	u_int	key;
345 	int	meta;
346 {
347 	KeyMap	*km;
348 	int	cnt,
349 		func_index,
350 		i;
351 
352 	switch (meta)
353 	{
354 	case 0:
355 		km = keys;
356 		break;
357 	case 1:
358 		km = meta1_keys;
359 		break;
360 	case 2:
361 		km = meta2_keys;
362 		break;
363 	case 3:
364 		km = meta3_keys;
365 		break;
366 	case 4:
367 		km = meta4_keys;
368 		break;
369 	case 5:
370 		km = meta5_keys;
371 		break;
372 	case 6:
373 		km = meta6_keys;
374 		break;
375 	case 7:
376 		km = meta7_keys;
377 		break;
378 	case 8:
379 		km = meta8_keys;
380 		break;
381 	default:
382 		km = keys;
383 	}
384 	if (*string == (u_char) 0)
385 		string = (u_char *) 0;
386 	switch (cnt = lookup_function(function, &func_index))
387 	{
388 	case 0:
389 		say("No such function: %s", function);
390 		break;
391 	case 1:
392 		if (! km[key].changed)
393 		{
394 			if ((km[key].index != func_index) ||
395 					((string == (u_char *) 0) &&
396 					km[key].stuff) ||
397 					((km[key].stuff == (u_char *) 0) &&
398 					string) || (string && km[key].stuff &&
399 					my_strcmp(km[key].stuff,string)))
400 				km[key].changed = 1;
401 		   km[key].stuff = NULL;
402 		}
403 		km[key].index = func_index;
404 		km[key].global = loading_global;
405 		malloc_strcpy(&(km[key].stuff), string);
406 		show_binding(key, meta);
407 		break;
408 	default:
409 		say("Ambiguous function name: %s", function);
410 		for (i = 0; i < cnt; i++, func_index++)
411 			put_it("%s", key_names[func_index].name);
412 		break;
413 	}
414 }
415 
416 /* parsekeycmd: does the PARSEKEY command.  */
417 void
parsekeycmd(command,args,subargs)418 parsekeycmd(command, args, subargs)
419 	u_char	*command,
420 		*args,
421 		*subargs;
422 {
423 	int	i;
424 	u_char	*arg;
425 
426 	if ((arg = next_arg(args, &args)) != NULL)
427 	{
428 		switch (lookup_function(arg, &i))
429 		{
430 		case 0:
431 			say("No such function %s", arg);
432 			return;
433 		case 1:
434 			key_names[i].func(0, args);
435 			break;
436 		default:
437 			say("Ambigious function %s", arg);
438 			break;
439 		}
440 	}
441 }
442 
443 /*
444  * bindcmd: the bind command, takes a key sequence followed by a function
445  * name followed by option arguments (used depending on the function) and
446  * binds a key.  If no function is specified, the current binding for that
447  * key is shown
448  */
449 /*ARGSUSED*/
450 void
bindcmd(command,args,subargs)451 bindcmd(command, args, subargs)
452 	u_char	*command,
453 		*args,
454 		*subargs;
455 {
456 	u_char	*key;
457 	u_char	*function;
458 	int	meta;
459 
460 	if ((key = (u_char *) next_arg(args, &args)) != NULL)
461 	{
462 		if ((meta = parse_key(key)) == -1)
463 			return;
464 		if (my_strlen(key) > 1)
465 		{
466 			say("Key sequences may not contain more than two keys");
467 			return;
468 		}
469 		if ((function = next_arg(args, &args)) != NULL)
470 			bind_it(function, args, *key, meta);
471 		else
472 			show_binding(*key, meta);
473 	}
474 	else
475 	{
476 		u_int	i;
477 		int	charsize = charset_size();
478 
479 		for (i = 0; i < charsize; i++)
480 		{
481 			if ((keys[i].index != NOTHING) && (keys[i].index !=
482 					SELF_INSERT))
483 				show_binding(i, 0);
484 		}
485 		for (i = 0; i < charsize; i++)
486 		{
487 			if ((meta1_keys[i].index != NOTHING) &&
488 					(meta1_keys[i].index != SELF_INSERT))
489 				show_binding(i, 1);
490 		}
491 		for (i = 0; i < charsize; i++)
492 		{
493 			if ((meta2_keys[i].index != NOTHING) &&
494 					(meta2_keys[i].index != SELF_INSERT))
495 				show_binding(i, 2);
496 		}
497 		for (i = 0; i < charsize; i++)
498 		{
499 			if ((meta3_keys[i].index != NOTHING) &&
500 					(meta3_keys[i].index != SELF_INSERT))
501 				show_binding(i, 3);
502 		}
503 		for (i = 0; i < charsize; i++)
504 		{
505 			if ((meta4_keys[i].index != NOTHING) &&
506 					(meta4_keys[i].index != SELF_INSERT))
507 				show_binding(i, 4);
508 		}
509 		for (i = 0; i < charsize; i++)
510 		{
511 			if ((meta5_keys[i].index != NOTHING) &&
512 					(meta5_keys[i].index != SELF_INSERT))
513 				show_binding(i, 5);
514 		}
515 		for (i = 0; i < charsize; i++)
516 		{
517 			if ((meta6_keys[i].index != NOTHING) &&
518 					(meta6_keys[i].index != SELF_INSERT))
519 				show_binding(i, 6);
520 		}
521 		for (i = 0; i < charsize; i++)
522 		{
523 			if ((meta7_keys[i].index != NOTHING) &&
524 					(meta7_keys[i].index != SELF_INSERT))
525 				show_binding(i, 7);
526 		}
527 		for (i = 0; i < charsize; i++)
528 		{
529 			if ((meta8_keys[i].index != NOTHING) &&
530 					(meta8_keys[i].index != SELF_INSERT))
531 				show_binding(i, 8);
532 		}
533 	}
534 }
535 
536 /*
537  * rbindcmd: does the rbind command.  you give it a string that something
538  * is bound to and it tells you all the things that are bound to that
539  * functions
540  */
541 void
rbindcmd(command,args,subargs)542 rbindcmd(command, args, subargs)
543 	u_char	*command,
544 		*args,
545 		*subargs;
546 {
547 	int	f;
548 	u_char	*arg;
549 
550 	if ((arg = next_arg(args, &args)) != NULL)
551 	{
552 		u_int	i;
553 		int	charsize = charset_size();
554 
555 		switch (lookup_function(arg, &f))
556 		{
557 		case 0:
558 			say("No such function %s", arg);
559 			return;
560 
561 		case 1:
562 			break;
563 
564 		default:
565 			say("Ambigious function %s", arg);
566 			return;
567 		}
568 
569 		for (i = 0; i < charsize; i++)
570 			if (f == keys[i].index)
571 				show_binding(i, 0);
572 		for (i = 0; i < charsize; i++)
573 			if (f == meta1_keys[i].index)
574 				show_binding(i, 1);
575 		for (i = 0; i < charsize; i++)
576 			if (f == meta2_keys[i].index)
577 				show_binding(i, 2);
578 		for (i = 0; i < charsize; i++)
579 			if (f == meta3_keys[i].index)
580 				show_binding(i, 3);
581 		for (i = 0; i < charsize; i++)
582 			if (f == meta4_keys[i].index)
583 				show_binding(i, 4);
584 		for (i = 0; i < charsize; i++)
585 			if (f == meta5_keys[i].index)
586 				show_binding(i, 5);
587 		for (i = 0; i < charsize; i++)
588 			if (f == meta6_keys[i].index)
589 				show_binding(i, 6);
590 		for (i = 0; i < charsize; i++)
591 			if (f == meta7_keys[i].index)
592 				show_binding(i, 7);
593 		for (i = 0; i < charsize; i++)
594 			if (f == meta8_keys[i].index)
595 				show_binding(i, 8);
596 	}
597 }
598 
599 void (*
600 get_send_line _((void))) _((u_int, u_char *))
601 {
602 	return (void (*) _((u_int, u_char *))) key_names[SEND_LINE].func;
603 }
604 
605 /*
606  * change_send_line: Allows you to change the everything bound to SENDLINE in
607  * one fell swoop.  Used by the various functions that gather input using the
608  * normal irc interface but dont wish to parse it and send it to the server.
609  * Sending NULL resets it to send_line()
610  */
611 void
612 change_send_line(func)
613 	void	(*func) _((u_int, u_char *));
614 {
615 	if (func)
616 		key_names[SEND_LINE].func = func;
617 	else
618 		key_names[SEND_LINE].func = send_line;
619 }
620 
621 /*
622  * type: The TYPE command.  This parses the given string and treats each
623  * character as tho it were typed in by the user.  Thus key bindings are used
624  * for each character parsed.  Special case characters are control character
625  * sequences, specified by a ^ follow by a legal control key.  Thus doing
626  * "/TYPE ^B" will be as tho ^B were hit at the keyboard, probably moving the
627  * cursor backward one character.
628  */
629 /*ARGSUSED*/
630 void
type(command,args,subargs)631 type(command, args, subargs)
632 	u_char	*command,
633 		*args,
634 		*subargs;
635 {
636 	int	c;
637 	u_char	key;
638 
639 	while (*args)
640 	{
641 		if (*args == '^')
642 		{
643 			switch (*(++args))
644 			{
645 			case '?':
646 				key = '\177';
647 				args++;
648 				break;
649 			default:
650 				c = *(args++);
651 				if (islower(c))
652 					c = toupper(c);
653 				if (c < 64)
654 				{
655 					say("Illegal key sequence: ^%c", c);
656 					return;
657 				}
658 				key = c - 64;
659 				break;
660 			}
661 		}
662 		else if (*args == '\\')
663 		{
664 			key = *++args;
665 			args++;
666 		}
667 		else
668 			key = *(args++);
669 		edit_char((u_int)key);
670 	}
671 }
672 
673 /* The string values for these *MUST* be in ALL CAPITALS */
674 KeyMapNames FAR key_names[] =
675 {
676 	{ "BACKSPACE",			input_backspace },
677 	{ "BACKWARD_CHARACTER",		backward_character },
678 	{ "BACKWARD_HISTORY",		backward_history },
679 	{ "BACKWARD_WORD",		input_backward_word },
680 	{ "BEGINNING_OF_LINE",		input_beginning_of_line },
681 	{ "CLEAR_SCREEN",		irc_clear_screen },
682 	{ "COMMAND_COMPLETION",		command_completion },
683 	{ "DELETE_CHARACTER",		input_delete_character },
684 	{ "DELETE_NEXT_WORD",		input_delete_next_word },
685 	{ "DELETE_PREVIOUS_WORD",	input_delete_previous_word },
686 	{ "END_OF_LINE",		input_end_of_line },
687 	{ "ENTER_DIGRAPH",		enter_digraph },
688 	{ "ENTER_MENU",			enter_menu },
689 	{ "ERASE_LINE",			input_clear_line },
690 	{ "ERASE_TO_BEG_OF_LINE",	input_clear_to_bol },
691 	{ "ERASE_TO_END_OF_LINE",	input_clear_to_eol },
692 	{ "FORWARD_CHARACTER",		forward_character },
693 	{ "FORWARD_HISTORY",		forward_history },
694 	{ "FORWARD_WORD",		input_forward_word },
695    	{ "JOIN_INVITE",		join_invite },
696 	{ "META1_CHARACTER",		meta1_char },
697 	{ "META2_CHARACTER",		meta2_char },
698 	{ "META3_CHARACTER",		meta3_char },
699 	{ "META4_CHARACTER",		meta4_char },
700 	{ "META5_CHARACTER",		meta5_char },
701 	{ "META6_CHARACTER",		meta6_char },
702 	{ "META7_CHARACTER",		meta7_char },
703 	{ "META8_CHARACTER",		meta8_char },
704 	{ "NEXT_WINDOW",		next_window },
705 	{ "NOTHING",			NULL },
706    	{ "OPER_VIEW",			toggle_operview },
707 	{ "PARSE_COMMAND",		parse_text },
708 	{ "PREVIOUS_WINDOW",		previous_window },
709 	{ "QUIT_IRC",			irc_quit },
710 	{ "QUOTE_CHARACTER",		quote_char },
711 	{ "REFRESH_INPUTLINE",		refresh_inputline },
712 	{ "REFRESH_SCREEN",		refresh_screen },
713    	{ "REPLY_TO",			tab_reply },
714 	{ "SCROLL_BACKWARD",		scrollback_backwards },
715 	{ "SCROLL_END",			scrollback_end },
716 	{ "SCROLL_FORWARD",		scrollback_forwards },
717 	{ "SCROLL_START",		scrollback_start },
718 	{ "SELF_INSERT",		input_add_character },
719 	{ "SEND_LINE",			send_line },
720 	{ "STOP_IRC",			term_pause },
721 	{ "SWAP_LAST_WINDOW",		swap_last_window },
722 	{ "SWAP_NEXT_WINDOW",		swap_next_window },
723 	{ "SWAP_PREVIOUS_WINDOW",	swap_previous_window },
724 	{ "SWITCH_CHANNELS",		switch_channels },
725 	{ "TOGGLE_INSERT_MODE",		toggle_insert_mode },
726 	{ "TOGGLE_STOP_SCREEN",		toggle_stop_screen },
727 	{ "TRANSPOSE_CHARACTERS",	input_transpose_characters },
728 	{ "TYPE_TEXT",			type_text },
729 	{ "UNSTOP_ALL_WINDOWS",		unstop_all_windows },
730 	{ "YANK_FROM_CUTBUFFER",	input_yank_cut_buffer }
731 };
732 
733 KeyMap	FAR keys[] =
734 {
735 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 0 */
736 	{ BEGINNING_OF_LINE,	0, 0,	(u_char *) 0 },
737 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
738 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
739 	{ DELETE_CHARACTER,	0, 0,	(u_char *) 0 },
740 	{ END_OF_LINE,		0, 0,	(u_char *) 0 },
741 	{ FORWARD_CHARACTER,	0, 0,	(u_char *) 0 },
742 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
743 
744 	{ BACKSPACE,		0, 0,	(u_char *) 0 },	/* 8 */
745 	{ REPLY_TO,		0, 0,	(u_char *) 0 },
746 	{ SEND_LINE,		0, 0,	(u_char *) 0 },
747 	{ ERASE_TO_END_OF_LINE,	0, 0,	(u_char *) 0 },
748 	{ REFRESH_SCREEN,	0, 0,	(u_char *) 0 },
749 	{ SEND_LINE,		0, 0,	(u_char *) 0 },
750 	{ FORWARD_HISTORY,	0, 0,	(u_char *) 0 },
751 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
752 
753 	{ BACKWARD_HISTORY,	0, 0,	(u_char *) 0 },	/* 16 */
754 	{ QUOTE_CHARACTER,	0, 0,	(u_char *) 0 },
755 	{ ENTER_MENU,		0, 0,	(u_char *) 0 },
756 	{ TOGGLE_STOP_SCREEN,	0, 0,	(u_char *) 0 },
757 	{ TRANSPOSE_CHARACTERS,	0, 0,	(u_char *) 0 },
758 	{ ERASE_LINE,		0, 0,	(u_char *) 0 },
759 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
760 	{ ERASE_TO_BEG_OF_LINE,	0, 0,	(u_char *) 0 },
761 
762 	{ META2_CHARACTER,	0, 0,	(u_char *) 0 },	/* 24 */
763 	{ YANK_FROM_CUTBUFFER,	0, 0,	(u_char *) 0 },
764 			/* And I moved STOP_IRC to META1 26 */
765    			/* and jjd switched them */
766 #ifdef ALLOW_STOP_IRC
767 	{ STOP_IRC,		0, 0,	(u_char *) 0 },
768 #else
769 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
770 #endif /* ALLOW_STOP_IRC */
771 	{ META1_CHARACTER,	0, 0,	(u_char *) 0 },
772 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
773 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
774 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
775 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
776 
777 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 32 */
778 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
779 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
780 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
781 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
782 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
783 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
784 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
785 
786 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 40 */
787 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
788 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
789 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
790 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
791 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
792 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
793 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
794 
795 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 48 */
796 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
797 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
798 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
799 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
800 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
801 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
802 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
803 
804 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 56 */
805 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
806 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
807 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
808 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
809 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
810 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
811 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
812 
813 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 64 */
814 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
815 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
816 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
817 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
818 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
819 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
820 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
821 
822 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 72 */
823 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
824 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
825 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
826 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
827 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
828 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
829 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
830 
831 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 80 */
832 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
833 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
834 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
835 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
836 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
837 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
838 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
839 
840 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 88 */
841 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
842 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
843 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
844 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
845 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
846 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
847 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
848 
849 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 96 */
850 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
851 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
852 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
853 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
854 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
855 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
856 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
857 
858 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 104 */
859 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
860 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
861 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
862 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
863 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
864 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
865 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
866 
867 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 112 */
868 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
869 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
870 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
871 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
872 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
873 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
874 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
875 
876 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 120 */
877 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
878 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
879 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
880 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
881 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
882 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
883 	{ BACKSPACE,		0, 0,	(u_char *) 0 },
884 
885 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 128 */
886 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
887 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
888 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
889 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
890 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
891 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
892 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
893 
894 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 136 */
895 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
896 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
897 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
898 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
899 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
900 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
901 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
902 
903 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 144 */
904 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
905 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
906 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
907 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
908 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
909 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
910 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
911 
912 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 152 */
913 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
914 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
915 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
916 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
917 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
918 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
919 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
920 
921 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 160 */
922 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
923 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
924 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
925 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
926 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
927 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
928 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
929 
930 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 168 */
931 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
932 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
933 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
934 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
935 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
936 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
937 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
938 
939 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 176 */
940 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
941 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
942 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
943 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
944 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
945 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
946 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
947 
948 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 184 */
949 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
950 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
951 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
952 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
953 /*	{ SCROLL_START,		0, 0,	(u_char *) 0 }, */
954 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
955 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
956 /*	{ SCROLL_END,		0, 0,	(u_char *) 0 }, */
957 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
958 
959 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 192 */
960 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
961 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
962 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
963 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
964 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
965 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
966 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
967 
968 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 200 */
969 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
970 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
971 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
972 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
973 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
974 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
975 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
976 
977 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 208 */
978 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
979 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
980 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
981 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
982 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
983 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
984 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
985 
986 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 216 */
987 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
988 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
989 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
990 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
991 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
992 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
993 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
994 
995 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 224 */
996 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
997 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
998 /*	{ BACKWARD_WORD,	0, 0,	(u_char *) 0 }, */
999 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1000 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1001 /*	{ DELETE_NEXT_WORD,	0, 0,	(u_char *) 0 }, */
1002 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1003 /*	{ SCROLL_END,		0, 0,	(u_char *) 0 }, */
1004 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1005 /*	{ FORWARD_WORD,		0, 0,	(u_char *) 0 }, */
1006 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1007 
1008 /*	{ DELETE_PREVIOUS_WORD,	0, 0,	(u_char *) 0 }, */
1009 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 232 */
1010 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1011 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1012 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1013 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1014 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1015 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1016 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1017 
1018 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 240 */
1019 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1020 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1021 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1022 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1023 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1024 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1025 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1026 
1027 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },	/* 248 */
1028 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1029 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1030 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1031 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1032 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1033 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1034 	{ SELF_INSERT,		0, 0,	(u_char *) 0 }
1035 /*	{ DELETE_PREVIOUS_WORD,	0, 0,	(u_char *) 0 } */
1036 };
1037 
1038 KeyMap	FAR meta1_keys[] =
1039 {
1040 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 0 */
1041 	{ NOTHING,		0, 0,	(u_char *) 0 },
1042 	{ NOTHING,		0, 0,	(u_char *) 0 },
1043 	{ NOTHING,		0, 0,	(u_char *) 0 },
1044 	{ NOTHING,		0, 0,	(u_char *) 0 },
1045 	{ NOTHING,		0, 0,	(u_char *) 0 },
1046 	{ NOTHING,		0, 0,	(u_char *) 0 },
1047 	{ NOTHING,		0, 0,	(u_char *) 0 },
1048 
1049 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 8 */
1050 	{ NOTHING,		0, 0,	(u_char *) 0 },
1051 	{ NOTHING,		0, 0,	(u_char *) 0 },
1052 	{ NOTHING,		0, 0,	(u_char *) 0 },
1053 	{ NOTHING,		0, 0,	(u_char *) 0 },
1054 	{ NOTHING,		0, 0,	(u_char *) 0 },
1055 	{ NOTHING,		0, 0,	(u_char *) 0 },
1056 	{ NOTHING,		0, 0,	(u_char *) 0 },
1057 
1058 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 16 */
1059 	{ NOTHING,		0, 0,	(u_char *) 0 },
1060 	{ NOTHING,		0, 0,	(u_char *) 0 },
1061 	{ NOTHING,		0, 0,	(u_char *) 0 },
1062 	{ NOTHING,		0, 0,	(u_char *) 0 },
1063 	{ NOTHING,		0, 0,	(u_char *) 0 },
1064 	{ NOTHING,		0, 0,	(u_char *) 0 },
1065 	{ NOTHING,		0, 0,	(u_char *) 0 },
1066 
1067 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 24 */
1068 	{ NOTHING,		0, 0,	(u_char *) 0 },
1069 	{ NOTHING,		0, 0,	(u_char *) 0 },
1070 	{ COMMAND_COMPLETION,  	0, 0,	(u_char *) 0 },
1071 	{ NOTHING,		0, 0,	(u_char *) 0 },
1072 	{ NOTHING,		0, 0,	(u_char *) 0 },
1073 	{ NOTHING,		0, 0,	(u_char *) 0 },
1074 	{ NOTHING,		0, 0,	(u_char *) 0 },
1075 
1076 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 32 */
1077 	{ NOTHING,		0, 0,	(u_char *) 0 },
1078 	{ NOTHING,		0, 0,	(u_char *) 0 },
1079 	{ NOTHING,		0, 0,	(u_char *) 0 },
1080 	{ NOTHING,		0, 0,	(u_char *) 0 },
1081 	{ NOTHING,		0, 0,	(u_char *) 0 },
1082 	{ NOTHING,		0, 0,	(u_char *) 0 },
1083 	{ NOTHING,		0, 0,	(u_char *) 0 },
1084 
1085 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 40 */
1086 	{ NOTHING,		0, 0,	(u_char *) 0 },
1087 	{ NOTHING,		0, 0,	(u_char *) 0 },
1088 	{ NOTHING,		0, 0,	(u_char *) 0 },
1089 	{ NOTHING,		0, 0,	(u_char *) 0 },
1090 	{ PARSE_COMMAND,       	0, 0,	(u_char *)"window shrink 1" },
1091 	{ CLEAR_SCREEN,		0, 0,	(u_char *) 0 },
1092 	{ NOTHING,		0, 0,	(u_char *) 0 },
1093 
1094 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 48 */
1095 	{ PARSE_COMMAND,       	0, 0,	(u_char *)"window goto 1" },
1096 	{ PARSE_COMMAND,       	0, 0,	(u_char *)"window goto 2" },
1097 	{ PARSE_COMMAND,     	0, 0,	(u_char *)"window goto 3" },
1098 	{ PARSE_COMMAND,     	0, 0,	(u_char *)"window goto 4" },
1099 	{ PARSE_COMMAND,     	0, 0,	(u_char *)"window goto 5" },
1100 	{ PARSE_COMMAND,     	0, 0,	(u_char *)"window goto 6" },
1101 	{ PARSE_COMMAND,     	0, 0,	(u_char *)"window goto 7" },
1102 
1103 	{ PARSE_COMMAND,     	0, 0,	(u_char *)"window goto 8" },	/* 56 */
1104 	{ PARSE_COMMAND,     	0, 0,	(u_char *)"window goto 9" },
1105 	{ NOTHING,		0, 0,	(u_char *) 0 },
1106 	{ NOTHING,		0, 0,	(u_char *) 0 },
1107 	{ SCROLL_START,		0, 0,	(u_char *) 0 },
1108 	{ PARSE_COMMAND,       	0, 0,	(u_char *)"window grow 1" },
1109 	{ SCROLL_END,		0, 0,	(u_char *) 0 },
1110 	{ NOTHING,		0, 0,	(u_char *) 0 },
1111 
1112 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 64 */
1113 	{ NOTHING,		0, 0,	(u_char *) 0 },
1114 	{ NOTHING,		0, 0,	(u_char *) 0 },
1115 	{ NOTHING,		0, 0,	(u_char *) 0 },
1116 	{ NOTHING,		0, 0,	(u_char *) 0 },
1117 	{ NOTHING,		0, 0,	(u_char *) 0 },
1118 	{ NOTHING,		0, 0,	(u_char *) 0 },
1119 	{ NOTHING,		0, 0,	(u_char *) 0 },
1120 
1121 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 72 */
1122 	{ NOTHING,		0, 0,	(u_char *) 0 },
1123 	{ NOTHING,		0, 0,	(u_char *) 0 },
1124 	{ NOTHING,		0, 0,	(u_char *) 0 },
1125 	{ NOTHING,		0, 0,	(u_char *) 0 },
1126 	{ NOTHING,		0, 0,	(u_char *) 0 },
1127 	{ NOTHING,		0, 0,	(u_char *) 0 },
1128 	{ META5_CHARACTER,     	0, 0,	(u_char *) 0 },
1129 
1130 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 80 */
1131 	{ NOTHING,		0, 0,	(u_char *) 0 },
1132 	{ NOTHING,		0, 0,	(u_char *) 0 },
1133 	{ NOTHING,		0, 0,	(u_char *) 0 },
1134 	{ NOTHING,		0, 0,	(u_char *) 0 },
1135 	{ NOTHING,		0, 0,	(u_char *) 0 },
1136 	{ NOTHING,		0, 0,	(u_char *) 0 },
1137 	{ PREVIOUS_WINDOW,     	0, 0,	(u_char *) 0 },
1138 
1139 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 88 */
1140 	{ NOTHING,		0, 0,	(u_char *) 0 },
1141 	{ NOTHING,		0, 0,	(u_char *) 0 },
1142 	{ META3_CHARACTER,	0, 0,	(u_char *) 0 },
1143 	{ NOTHING,		0, 0,	(u_char *) 0 },
1144 	{ NOTHING,		0, 0,	(u_char *) 0 },
1145 	{ NOTHING,		0, 0,	(u_char *) 0 },
1146 	{ NOTHING,		0, 0,	(u_char *) 0 },
1147 
1148 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 96 */
1149 	{ NOTHING,		0, 0,	(u_char *) 0 },
1150 	{ BACKWARD_WORD,	0, 0,	(u_char *) 0 },
1151 	{ NOTHING,		0, 0,	(u_char *) 0 },
1152 	{ DELETE_NEXT_WORD,	0, 0,	(u_char *) 0 },
1153 	{ SCROLL_END,		0, 0,	(u_char *) 0 },
1154 	{ FORWARD_WORD,		0, 0,	(u_char *) 0 },
1155 	{ NOTHING,		0, 0,	(u_char *) 0 },
1156 
1157 	{ DELETE_PREVIOUS_WORD,	0, 0,	(u_char *) 0 },	/* 104 */
1158 	{ NOTHING,		0, 0,	(u_char *) 0 },
1159 	{ NOTHING,		0, 0,	(u_char *) 0 },
1160 	{ NOTHING,		0, 0,	(u_char *) 0 },
1161 	{ NOTHING,		0, 0,	(u_char *) 0 },
1162 	{ NOTHING,		0, 0,	(u_char *) 0 },
1163 	{ SCROLL_FORWARD,	0, 0,	(u_char *) 0 },
1164 	{ NOTHING,		0, 0,	(u_char *) 0 },
1165 
1166 	{ SCROLL_BACKWARD,	0, 0,	(u_char *) 0 },	/* 112 */
1167 	{ NOTHING,		0, 0,	(u_char *) 0 },
1168 	{ NOTHING,		0, 0,	(u_char *) 0 },
1169 	{ NOTHING,		0, 0,	(u_char *) 0 },
1170 	{ NOTHING,		0, 0,	(u_char *) 0 },
1171 	{ NOTHING,		0, 0,	(u_char *) 0 },
1172 	{ NOTHING,		0, 0,	(u_char *) 0 },
1173 	{ PREVIOUS_WINDOW,     	0, 0,	(u_char *) 0 },
1174 
1175 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 120 */
1176 	{ NOTHING,		0, 0,	(u_char *) 0 },
1177 	{ NOTHING,		0, 0,	(u_char *) 0 },
1178 	{ NOTHING,		0, 0,	(u_char *) 0 },
1179 	{ NOTHING,		0, 0,	(u_char *) 0 },
1180 	{ NOTHING,		0, 0,	(u_char *) 0 },
1181 	{ NOTHING,		0, 0,	(u_char *) 0 },
1182 	{ DELETE_PREVIOUS_WORD,	0, 0,	(u_char *) 0 },
1183 
1184 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 128 */
1185 	{ NOTHING,		0, 0,	(u_char *) 0 },
1186 	{ NOTHING,		0, 0,	(u_char *) 0 },
1187 	{ NOTHING,		0, 0,	(u_char *) 0 },
1188 	{ NOTHING,		0, 0,	(u_char *) 0 },
1189 	{ NOTHING,		0, 0,	(u_char *) 0 },
1190 	{ NOTHING,		0, 0,	(u_char *) 0 },
1191 	{ NOTHING,		0, 0,	(u_char *) 0 },
1192 
1193 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 136 */
1194 	{ NOTHING,		0, 0,	(u_char *) 0 },
1195 	{ NOTHING,		0, 0,	(u_char *) 0 },
1196 	{ NOTHING,		0, 0,	(u_char *) 0 },
1197 	{ NOTHING,		0, 0,	(u_char *) 0 },
1198 	{ NOTHING,		0, 0,	(u_char *) 0 },
1199 	{ NOTHING,		0, 0,	(u_char *) 0 },
1200 	{ NOTHING,		0, 0,	(u_char *) 0 },
1201 
1202 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 144 */
1203 	{ NOTHING,		0, 0,	(u_char *) 0 },
1204 	{ NOTHING,		0, 0,	(u_char *) 0 },
1205 	{ NOTHING,		0, 0,	(u_char *) 0 },
1206 	{ NOTHING,		0, 0,	(u_char *) 0 },
1207 	{ NOTHING,		0, 0,	(u_char *) 0 },
1208 	{ NOTHING,		0, 0,	(u_char *) 0 },
1209 	{ NOTHING,		0, 0,	(u_char *) 0 },
1210 
1211 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 152 */
1212 	{ NOTHING,		0, 0,	(u_char *) 0 },
1213 	{ NOTHING,		0, 0,	(u_char *) 0 },
1214 	{ NOTHING,		0, 0,	(u_char *) 0 },
1215 	{ NOTHING,		0, 0,	(u_char *) 0 },
1216 	{ NOTHING,		0, 0,	(u_char *) 0 },
1217 	{ NOTHING,		0, 0,	(u_char *) 0 },
1218 	{ NOTHING,		0, 0,	(u_char *) 0 },
1219 
1220 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 160 */
1221 	{ NOTHING,		0, 0,	(u_char *) 0 },
1222 	{ NOTHING,		0, 0,	(u_char *) 0 },
1223 	{ NOTHING,		0, 0,	(u_char *) 0 },
1224 	{ NOTHING,		0, 0,	(u_char *) 0 },
1225 	{ NOTHING,		0, 0,	(u_char *) 0 },
1226 	{ NOTHING,		0, 0,	(u_char *) 0 },
1227 	{ NOTHING,		0, 0,	(u_char *) 0 },
1228 
1229 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 168 */
1230 	{ NOTHING,		0, 0,	(u_char *) 0 },
1231 	{ NOTHING,		0, 0,	(u_char *) 0 },
1232 	{ NOTHING,		0, 0,	(u_char *) 0 },
1233 	{ NOTHING,		0, 0,	(u_char *) 0 },
1234 	{ NOTHING,		0, 0,	(u_char *) 0 },
1235 	{ NOTHING,		0, 0,	(u_char *) 0 },
1236 	{ NOTHING,		0, 0,	(u_char *) 0 },
1237 
1238 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 176 */
1239 	{ NOTHING,		0, 0,	(u_char *) 0 },
1240 	{ NOTHING,		0, 0,	(u_char *) 0 },
1241 	{ NOTHING,		0, 0,	(u_char *) 0 },
1242 	{ NOTHING,		0, 0,	(u_char *) 0 },
1243 	{ NOTHING,		0, 0,	(u_char *) 0 },
1244 	{ NOTHING,		0, 0,	(u_char *) 0 },
1245 	{ NOTHING,		0, 0,	(u_char *) 0 },
1246 
1247 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 184 */
1248 	{ NOTHING,		0, 0,	(u_char *) 0 },
1249 	{ NOTHING,		0, 0,	(u_char *) 0 },
1250 	{ NOTHING,		0, 0,	(u_char *) 0 },
1251 	{ NOTHING,		0, 0,	(u_char *) 0 },
1252 	{ NOTHING,		0, 0,	(u_char *) 0 },
1253 	{ NOTHING,		0, 0,	(u_char *) 0 },
1254 	{ NOTHING,		0, 0,	(u_char *) 0 },
1255 
1256 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 192 */
1257 	{ NOTHING,		0, 0,	(u_char *) 0 },
1258 	{ NOTHING,		0, 0,	(u_char *) 0 },
1259 	{ NOTHING,		0, 0,	(u_char *) 0 },
1260 	{ NOTHING,		0, 0,	(u_char *) 0 },
1261 	{ NOTHING,		0, 0,	(u_char *) 0 },
1262 	{ NOTHING,		0, 0,	(u_char *) 0 },
1263 	{ NOTHING,		0, 0,	(u_char *) 0 },
1264 
1265 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 200 */
1266 	{ NOTHING,		0, 0,	(u_char *) 0 },
1267 	{ NOTHING,		0, 0,	(u_char *) 0 },
1268 	{ NOTHING,		0, 0,	(u_char *) 0 },
1269 	{ NOTHING,		0, 0,	(u_char *) 0 },
1270 	{ NOTHING,		0, 0,	(u_char *) 0 },
1271 	{ NOTHING,		0, 0,	(u_char *) 0 },
1272 	{ NOTHING,		0, 0,	(u_char *) 0 },
1273 
1274 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 208 */
1275 	{ NOTHING,		0, 0,	(u_char *) 0 },
1276 	{ NOTHING,		0, 0,	(u_char *) 0 },
1277 	{ NOTHING,		0, 0,	(u_char *) 0 },
1278 	{ NOTHING,		0, 0,	(u_char *) 0 },
1279 	{ NOTHING,		0, 0,	(u_char *) 0 },
1280 	{ NOTHING,		0, 0,	(u_char *) 0 },
1281 	{ NOTHING,		0, 0,	(u_char *) 0 },
1282 
1283 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 216 */
1284 	{ NOTHING,		0, 0,	(u_char *) 0 },
1285 	{ NOTHING,		0, 0,	(u_char *) 0 },
1286 	{ NOTHING,		0, 0,	(u_char *) 0 },
1287 	{ NOTHING,		0, 0,	(u_char *) 0 },
1288 	{ NOTHING,		0, 0,	(u_char *) 0 },
1289 	{ NOTHING,		0, 0,	(u_char *) 0 },
1290 	{ NOTHING,		0, 0,	(u_char *) 0 },
1291 
1292 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 224 */
1293 	{ NOTHING,		0, 0,	(u_char *) 0 },
1294 	{ NOTHING,		0, 0,	(u_char *) 0 },
1295 	{ NOTHING,		0, 0,	(u_char *) 0 },
1296 	{ NOTHING,		0, 0,	(u_char *) 0 },
1297 	{ NOTHING,		0, 0,	(u_char *) 0 },
1298 	{ NOTHING,		0, 0,	(u_char *) 0 },
1299 	{ NOTHING,		0, 0,	(u_char *) 0 },
1300 
1301 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 232 */
1302 	{ NOTHING,		0, 0,	(u_char *) 0 },
1303 	{ NOTHING,		0, 0,	(u_char *) 0 },
1304 	{ NOTHING,		0, 0,	(u_char *) 0 },
1305 	{ NOTHING,		0, 0,	(u_char *) 0 },
1306 	{ NOTHING,		0, 0,	(u_char *) 0 },
1307 	{ NOTHING,		0, 0,	(u_char *) 0 },
1308 	{ NOTHING,		0, 0,	(u_char *) 0 },
1309 
1310 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 240 */
1311 	{ NOTHING,		0, 0,	(u_char *) 0 },
1312 	{ NOTHING,		0, 0,	(u_char *) 0 },
1313 	{ NOTHING,		0, 0,	(u_char *) 0 },
1314 	{ NOTHING,		0, 0,	(u_char *) 0 },
1315 	{ NOTHING,		0, 0,	(u_char *) 0 },
1316 	{ NOTHING,		0, 0,	(u_char *) 0 },
1317 	{ NOTHING,		0, 0,	(u_char *) 0 },
1318 
1319 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 248 */
1320 	{ NOTHING,		0, 0,	(u_char *) 0 },
1321 	{ NOTHING,		0, 0,	(u_char *) 0 },
1322 	{ NOTHING,		0, 0,	(u_char *) 0 },
1323 	{ NOTHING,		0, 0,	(u_char *) 0 },
1324 	{ NOTHING,		0, 0,	(u_char *) 0 },
1325 	{ NOTHING,		0, 0,	(u_char *) 0 },
1326 	{ NOTHING,		0, 0,	(u_char *) 0 }
1327 };
1328 
1329 KeyMap	FAR meta2_keys[] =
1330 {
1331 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 0 */
1332 	{ NOTHING,		0, 0,	(u_char *) 0 },
1333 	{ NOTHING,		0, 0,	(u_char *) 0 },
1334 	{ NOTHING,		0, 0,	(u_char *) 0 },
1335 	{ NOTHING,		0, 0,	(u_char *) 0 },
1336 	{ NOTHING,		0, 0,	(u_char *) 0 },
1337 	{ NOTHING,		0, 0,	(u_char *) 0 },
1338 	{ NOTHING,		0, 0,	(u_char *) 0 },
1339 
1340 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 8 */
1341 	{ NOTHING,		0, 0,	(u_char *) 0 },
1342 	{ NOTHING,		0, 0,	(u_char *) 0 },
1343 	{ NOTHING,		0, 0,	(u_char *) 0 },
1344 	{ NOTHING,		0, 0,	(u_char *) 0 },
1345 	{ NOTHING,		0, 0,	(u_char *) 0 },
1346 	{ NOTHING,		0, 0,	(u_char *) 0 },
1347 	{ NOTHING,		0, 0,	(u_char *) 0 },
1348 
1349 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 16 */
1350 	{ NOTHING,		0, 0,	(u_char *) 0 },
1351 	{ NOTHING,		0, 0,	(u_char *) 0 },
1352 	{ NOTHING,		0, 0,	(u_char *) 0 },
1353 	{ NOTHING,		0, 0,	(u_char *) 0 },
1354 	{ NOTHING,		0, 0,	(u_char *) 0 },
1355 	{ NOTHING,		0, 0,	(u_char *) 0 },
1356 	{ NOTHING,		0, 0,	(u_char *) 0 },
1357 
1358 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 24 */
1359 	{ NOTHING,		0, 0,	(u_char *) 0 },
1360 	{ ENTER_DIGRAPH,       	0, 0,	(u_char *) 0 },
1361 	{ SELF_INSERT,		0, 0,	(u_char *) 0 },
1362 	{ NOTHING,		0, 0,	(u_char *) 0 },
1363 	{ NOTHING,		0, 0,	(u_char *) 0 },
1364 	{ NOTHING,		0, 0,	(u_char *) 0 },
1365 	{ NOTHING,		0, 0,	(u_char *) 0 },
1366 
1367 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 32 */
1368 	{ NOTHING,		0, 0,	(u_char *) 0 },
1369 	{ NOTHING,		0, 0,	(u_char *) 0 },
1370 	{ NOTHING,		0, 0,	(u_char *) 0 },
1371 	{ NOTHING,		0, 0,	(u_char *) 0 },
1372 	{ NOTHING,		0, 0,	(u_char *) 0 },
1373 	{ NOTHING,		0, 0,	(u_char *) 0 },
1374 	{ NOTHING,		0, 0,	(u_char *) 0 },
1375 
1376 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 40 */
1377 	{ NOTHING,		0, 0,	(u_char *) 0 },
1378 	{ NOTHING,		0, 0,	(u_char *) 0 },
1379 	{ NOTHING,		0, 0,	(u_char *) 0 },
1380 	{ NOTHING,		0, 0,	(u_char *) 0 },
1381 	{ NOTHING,		0, 0,	(u_char *) 0 },
1382 	{ NOTHING,		0, 0,	(u_char *) 0 },
1383 	{ NOTHING,		0, 0,	(u_char *) 0 },
1384 
1385 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 48 */
1386 	{ NOTHING,		0, 0,	(u_char *) 0 },
1387 	{ NOTHING,		0, 0,	(u_char *) 0 },
1388 	{ NOTHING,		0, 0,	(u_char *) 0 },
1389 	{ NOTHING,		0, 0,	(u_char *) 0 },
1390 	{ NOTHING,		0, 0,	(u_char *) 0 },
1391 	{ NOTHING,		0, 0,	(u_char *) 0 },
1392 	{ NOTHING,		0, 0,	(u_char *) 0 },
1393 
1394 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 56 */
1395 	{ NOTHING,		0, 0,	(u_char *) 0 },
1396 	{ NOTHING,		0, 0,	(u_char *) 0 },
1397 	{ NOTHING,		0, 0,	(u_char *) 0 },
1398 	{ NOTHING,		0, 0,	(u_char *) 0 },
1399 	{ NOTHING,		0, 0,	(u_char *) 0 },
1400 	{ NOTHING,		0, 0,	(u_char *) 0 },
1401 	{ NOTHING,		0, 0,	(u_char *) 0 },
1402 
1403 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 64 */
1404 	{ NOTHING,		0, 0,	(u_char *) 0 },
1405 	{ NOTHING,		0, 0,	(u_char *) 0 },
1406 	{ NOTHING,		0, 0,	(u_char *) 0 },
1407 	{ NOTHING,		0, 0,	(u_char *) 0 },
1408 	{ NOTHING,		0, 0,	(u_char *) 0 },
1409 	{ NOTHING,		0, 0,	(u_char *) 0 },
1410 	{ NOTHING,		0, 0,	(u_char *) 0 },
1411 
1412 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 72 */
1413 	{ NOTHING,		0, 0,	(u_char *) 0 },
1414 	{ NOTHING,		0, 0,	(u_char *) 0 },
1415 	{ NOTHING,		0, 0,	(u_char *) 0 },
1416 	{ NOTHING,		0, 0,	(u_char *) 0 },
1417 	{ NOTHING,		0, 0,	(u_char *) 0 },
1418 	{ NOTHING,		0, 0,	(u_char *) 0 },
1419 	{ NOTHING,		0, 0,	(u_char *) 0 },
1420 
1421 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 80 */
1422 	{ NOTHING,		0, 0,	(u_char *) 0 },
1423 	{ NOTHING,		0, 0,	(u_char *) 0 },
1424 	{ NOTHING,		0, 0,	(u_char *) 0 },
1425 	{ NOTHING,		0, 0,	(u_char *) 0 },
1426 	{ NOTHING,		0, 0,	(u_char *) 0 },
1427 	{ NOTHING,		0, 0,	(u_char *) 0 },
1428 	{ NOTHING,		0, 0,	(u_char *) 0 },
1429 
1430 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 88 */
1431 	{ NOTHING,		0, 0,	(u_char *) 0 },
1432 	{ NOTHING,		0, 0,	(u_char *) 0 },
1433 	{ META4_CHARACTER,     	0, 0,	(u_char *) 0 },
1434 	{ NOTHING,		0, 0,	(u_char *) 0 },
1435 	{ NOTHING,		0, 0,	(u_char *) 0 },
1436 	{ NOTHING,		0, 0,	(u_char *) 0 },
1437 	{ NOTHING,		0, 0,	(u_char *) 0 },
1438 
1439 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 96 */
1440 	{ NOTHING,		0, 0,	(u_char *) 0 },
1441 	{ NOTHING,		0, 0,	(u_char *) 0 },
1442 	{ NOTHING,		0, 0,	(u_char *) 0 },
1443 	{ NOTHING,		0, 0,	(u_char *) 0 },
1444 	{ NOTHING,		0, 0,	(u_char *) 0 },
1445 	{ NOTHING,		0, 0,	(u_char *) 0 },
1446 	{ NOTHING,		0, 0,	(u_char *) 0 },
1447 
1448 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 104 */
1449 	{ NOTHING,		0, 0,	(u_char *) 0 },
1450 	{ NOTHING,		0, 0,	(u_char *) 0 },
1451 	{ NOTHING,		0, 0,	(u_char *) 0 },
1452 	{ NOTHING,		0, 0,	(u_char *) 0 },
1453 	{ NOTHING,		0, 0,	(u_char *) 0 },
1454 	{ NEXT_WINDOW,		0, 0,	(u_char *) 0 },
1455 	{ NOTHING,		0, 0,	(u_char *) 0 },
1456 
1457 	{ PREVIOUS_WINDOW,	0, 0,	(u_char *) 0 },	/* 112 */
1458 	{ NOTHING,		0, 0,	(u_char *) 0 },
1459 	{ NOTHING,		0, 0,	(u_char *) 0 },
1460 	{ NOTHING,		0, 0,	(u_char *) 0 },
1461 	{ NOTHING,		0, 0,	(u_char *) 0 },
1462 	{ NOTHING,		0, 0,	(u_char *) 0 },
1463 	{ NOTHING,		0, 0,	(u_char *) 0 },
1464 	{ NOTHING,		0, 0,	(u_char *) 0 },
1465 
1466 	{ SWITCH_CHANNELS,     	0, 0,	(u_char *) 0 },	/* 120 */
1467 	{ NOTHING,		0, 0,	(u_char *) 0 },
1468 	{ NOTHING,		0, 0,	(u_char *) 0 },
1469 	{ NOTHING,		0, 0,	(u_char *) 0 },
1470 	{ NOTHING,		0, 0,	(u_char *) 0 },
1471 	{ NOTHING,		0, 0,	(u_char *) 0 },
1472 	{ NOTHING,		0, 0,	(u_char *) 0 },
1473 	{ NOTHING,		0, 0,	(u_char *) 0 },
1474 
1475 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 128 */
1476 	{ NOTHING,		0, 0,	(u_char *) 0 },
1477 	{ NOTHING,		0, 0,	(u_char *) 0 },
1478 	{ NOTHING,		0, 0,	(u_char *) 0 },
1479 	{ NOTHING,		0, 0,	(u_char *) 0 },
1480 	{ NOTHING,		0, 0,	(u_char *) 0 },
1481 	{ NOTHING,		0, 0,	(u_char *) 0 },
1482 	{ NOTHING,		0, 0,	(u_char *) 0 },
1483 
1484 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 136 */
1485 	{ NOTHING,		0, 0,	(u_char *) 0 },
1486 	{ NOTHING,		0, 0,	(u_char *) 0 },
1487 	{ NOTHING,		0, 0,	(u_char *) 0 },
1488 	{ NOTHING,		0, 0,	(u_char *) 0 },
1489 	{ NOTHING,		0, 0,	(u_char *) 0 },
1490 	{ NOTHING,		0, 0,	(u_char *) 0 },
1491 	{ NOTHING,		0, 0,	(u_char *) 0 },
1492 
1493 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 144 */
1494 	{ NOTHING,		0, 0,	(u_char *) 0 },
1495 	{ NOTHING,		0, 0,	(u_char *) 0 },
1496 	{ NOTHING,		0, 0,	(u_char *) 0 },
1497 	{ NOTHING,		0, 0,	(u_char *) 0 },
1498 	{ NOTHING,		0, 0,	(u_char *) 0 },
1499 	{ NOTHING,		0, 0,	(u_char *) 0 },
1500 	{ NOTHING,		0, 0,	(u_char *) 0 },
1501 
1502 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 152 */
1503 	{ NOTHING,		0, 0,	(u_char *) 0 },
1504 	{ NOTHING,		0, 0,	(u_char *) 0 },
1505 	{ NOTHING,		0, 0,	(u_char *) 0 },
1506 	{ NOTHING,		0, 0,	(u_char *) 0 },
1507 	{ NOTHING,		0, 0,	(u_char *) 0 },
1508 	{ NOTHING,		0, 0,	(u_char *) 0 },
1509 	{ NOTHING,		0, 0,	(u_char *) 0 },
1510 
1511 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 160 */
1512 	{ NOTHING,		0, 0,	(u_char *) 0 },
1513 	{ NOTHING,		0, 0,	(u_char *) 0 },
1514 	{ NOTHING,		0, 0,	(u_char *) 0 },
1515 	{ NOTHING,		0, 0,	(u_char *) 0 },
1516 	{ NOTHING,		0, 0,	(u_char *) 0 },
1517 	{ NOTHING,		0, 0,	(u_char *) 0 },
1518 	{ NOTHING,		0, 0,	(u_char *) 0 },
1519 
1520 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 168 */
1521 	{ NOTHING,		0, 0,	(u_char *) 0 },
1522 	{ NOTHING,		0, 0,	(u_char *) 0 },
1523 	{ NOTHING,		0, 0,	(u_char *) 0 },
1524 	{ NOTHING,		0, 0,	(u_char *) 0 },
1525 	{ NOTHING,		0, 0,	(u_char *) 0 },
1526 	{ NOTHING,		0, 0,	(u_char *) 0 },
1527 	{ NOTHING,		0, 0,	(u_char *) 0 },
1528 
1529 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 176 */
1530 	{ NOTHING,		0, 0,	(u_char *) 0 },
1531 	{ NOTHING,		0, 0,	(u_char *) 0 },
1532 	{ NOTHING,		0, 0,	(u_char *) 0 },
1533 	{ NOTHING,		0, 0,	(u_char *) 0 },
1534 	{ NOTHING,		0, 0,	(u_char *) 0 },
1535 	{ NOTHING,		0, 0,	(u_char *) 0 },
1536 	{ NOTHING,		0, 0,	(u_char *) 0 },
1537 
1538 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 184 */
1539 	{ NOTHING,		0, 0,	(u_char *) 0 },
1540 	{ NOTHING,		0, 0,	(u_char *) 0 },
1541 	{ NOTHING,		0, 0,	(u_char *) 0 },
1542 	{ NOTHING,		0, 0,	(u_char *) 0 },
1543 	{ NOTHING,		0, 0,	(u_char *) 0 },
1544 	{ NOTHING,		0, 0,	(u_char *) 0 },
1545 	{ NOTHING,		0, 0,	(u_char *) 0 },
1546 
1547 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 192 */
1548 	{ NOTHING,		0, 0,	(u_char *) 0 },
1549 	{ NOTHING,		0, 0,	(u_char *) 0 },
1550 	{ NOTHING,		0, 0,	(u_char *) 0 },
1551 	{ NOTHING,		0, 0,	(u_char *) 0 },
1552 	{ NOTHING,		0, 0,	(u_char *) 0 },
1553 	{ NOTHING,		0, 0,	(u_char *) 0 },
1554 	{ NOTHING,		0, 0,	(u_char *) 0 },
1555 
1556 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 200 */
1557 	{ NOTHING,		0, 0,	(u_char *) 0 },
1558 	{ NOTHING,		0, 0,	(u_char *) 0 },
1559 	{ NOTHING,		0, 0,	(u_char *) 0 },
1560 	{ NOTHING,		0, 0,	(u_char *) 0 },
1561 	{ NOTHING,		0, 0,	(u_char *) 0 },
1562 	{ NOTHING,		0, 0,	(u_char *) 0 },
1563 	{ NOTHING,		0, 0,	(u_char *) 0 },
1564 
1565 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 208 */
1566 	{ NOTHING,		0, 0,	(u_char *) 0 },
1567 	{ NOTHING,		0, 0,	(u_char *) 0 },
1568 	{ NOTHING,		0, 0,	(u_char *) 0 },
1569 	{ NOTHING,		0, 0,	(u_char *) 0 },
1570 	{ NOTHING,		0, 0,	(u_char *) 0 },
1571 	{ NOTHING,		0, 0,	(u_char *) 0 },
1572 	{ NOTHING,		0, 0,	(u_char *) 0 },
1573 
1574 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 216 */
1575 	{ NOTHING,		0, 0,	(u_char *) 0 },
1576 	{ NOTHING,		0, 0,	(u_char *) 0 },
1577 	{ NOTHING,		0, 0,	(u_char *) 0 },
1578 	{ NOTHING,		0, 0,	(u_char *) 0 },
1579 	{ NOTHING,		0, 0,	(u_char *) 0 },
1580 	{ NOTHING,		0, 0,	(u_char *) 0 },
1581 	{ NOTHING,		0, 0,	(u_char *) 0 },
1582 
1583 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 224 */
1584 	{ NOTHING,		0, 0,	(u_char *) 0 },
1585 	{ NOTHING,		0, 0,	(u_char *) 0 },
1586 	{ NOTHING,		0, 0,	(u_char *) 0 },
1587 	{ NOTHING,		0, 0,	(u_char *) 0 },
1588 	{ NOTHING,		0, 0,	(u_char *) 0 },
1589 	{ NOTHING,		0, 0,	(u_char *) 0 },
1590 	{ NOTHING,		0, 0,	(u_char *) 0 },
1591 
1592 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 232 */
1593 	{ NOTHING,		0, 0,	(u_char *) 0 },
1594 	{ NOTHING,		0, 0,	(u_char *) 0 },
1595 	{ NOTHING,		0, 0,	(u_char *) 0 },
1596 	{ NOTHING,		0, 0,	(u_char *) 0 },
1597 	{ NOTHING,		0, 0,	(u_char *) 0 },
1598 	{ NOTHING,		0, 0,	(u_char *) 0 },
1599 	{ NOTHING,		0, 0,	(u_char *) 0 },
1600 
1601 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 240 */
1602 	{ NOTHING,		0, 0,	(u_char *) 0 },
1603 	{ NOTHING,		0, 0,	(u_char *) 0 },
1604 	{ NOTHING,		0, 0,	(u_char *) 0 },
1605 	{ NOTHING,		0, 0,	(u_char *) 0 },
1606 	{ NOTHING,		0, 0,	(u_char *) 0 },
1607 	{ NOTHING,		0, 0,	(u_char *) 0 },
1608 	{ NOTHING,		0, 0,	(u_char *) 0 },
1609 
1610 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 248 */
1611 	{ NOTHING,		0, 0,	(u_char *) 0 },
1612 	{ NOTHING,		0, 0,	(u_char *) 0 },
1613 	{ NOTHING,		0, 0,	(u_char *) 0 },
1614 	{ NOTHING,		0, 0,	(u_char *) 0 },
1615 	{ NOTHING,		0, 0,	(u_char *) 0 },
1616 	{ NOTHING,		0, 0,	(u_char *) 0 },
1617 	{ NOTHING,		0, 0,	(u_char *) 0 }
1618 };
1619 
1620 /* these are the ^[[* keys as far as ninja is concerned..
1621  */
1622 KeyMap	FAR meta3_keys[] =
1623 {
1624 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 0 */
1625 	{ NOTHING,		0, 0,	(u_char *) 0 },
1626 	{ NOTHING,		0, 0,	(u_char *) 0 },
1627 	{ NOTHING,		0, 0,	(u_char *) 0 },
1628 	{ NOTHING,		0, 0,	(u_char *) 0 },
1629 	{ NOTHING,		0, 0,	(u_char *) 0 },
1630 	{ NOTHING,		0, 0,	(u_char *) 0 },
1631 	{ NOTHING,		0, 0,	(u_char *) 0 },
1632 
1633 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 8 */
1634 	{ NOTHING,		0, 0,	(u_char *) 0 },
1635 	{ NOTHING,		0, 0,	(u_char *) 0 },
1636 	{ NOTHING,		0, 0,	(u_char *) 0 },
1637 	{ NOTHING,		0, 0,	(u_char *) 0 },
1638 	{ NOTHING,		0, 0,	(u_char *) 0 },
1639 	{ NOTHING,		0, 0,	(u_char *) 0 },
1640 	{ NEXT_WINDOW,		0, 0,	(u_char *) 0 },
1641 
1642 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 16 */
1643 	{ NOTHING,		0, 0,	(u_char *) 0 },
1644 	{ NOTHING,		0, 0,	(u_char *) 0 },
1645 	{ NOTHING,		0, 0,	(u_char *) 0 },
1646 	{ NOTHING,		0, 0,	(u_char *) 0 },
1647 	{ NOTHING,		0, 0,	(u_char *) 0 },
1648 	{ NOTHING,		0, 0,	(u_char *) 0 },
1649 	{ NOTHING,		0, 0,	(u_char *) 0 },
1650 
1651 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 24 */
1652 	{ NOTHING,		0, 0,	(u_char *) 0 },
1653 	{ NOTHING,		0, 0,	(u_char *) 0 },
1654 	{ NOTHING,		0, 0,	(u_char *) 0 },
1655 	{ NOTHING,		0, 0,	(u_char *) 0 },
1656 	{ NOTHING,		0, 0,	(u_char *) 0 },
1657 	{ NOTHING,		0, 0,	(u_char *) 0 },
1658 	{ NOTHING,		0, 0,	(u_char *) 0 },
1659 
1660 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 32 */
1661 	{ NOTHING,		0, 0,	(u_char *) 0 },
1662 	{ NOTHING,		0, 0,	(u_char *) 0 },
1663 	{ NOTHING,		0, 0,	(u_char *) 0 },
1664 	{ NOTHING,		0, 0,	(u_char *) 0 },
1665 	{ NOTHING,		0, 0,	(u_char *) 0 },
1666 	{ NOTHING,		0, 0,	(u_char *) 0 },
1667 	{ NOTHING,		0, 0,	(u_char *) 0 },
1668 
1669 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 40 */
1670 	{ NOTHING,		0, 0,	(u_char *) 0 },
1671 	{ NOTHING,		0, 0,	(u_char *) 0 },
1672 	{ NOTHING,		0, 0,	(u_char *) 0 },
1673 	{ NOTHING,		0, 0,	(u_char *) 0 },
1674 	{ NOTHING,		0, 0,	(u_char *) 0 },
1675 	{ NOTHING,		0, 0,	(u_char *) 0 },
1676 	{ NOTHING,		0, 0,	(u_char *) 0 },
1677 
1678 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 48 */
1679 	{ NOTHING,		0, 0,	(u_char *) 0 },
1680 	{ NOTHING,		0, 0,	(u_char *) 0 },
1681 	{ NOTHING,		0, 0,	(u_char *) 0 },
1682 	{ NOTHING,		0, 0,	(u_char *) 0 },
1683 	{ SCROLL_BACKWARD,     	0, 0,	(u_char *) 0 },
1684 	{ SCROLL_FORWARD,     	0, 0,	(u_char *) 0 },
1685 	{ BEGINNING_OF_LINE,   	0, 0,	(u_char *) 0 },
1686 
1687 	{ END_OF_LINE,		0, 0,	(u_char *) 0 },	/* 56 */
1688 	{ NOTHING,		0, 0,	(u_char *) 0 },
1689 	{ NOTHING,		0, 0,	(u_char *) 0 },
1690 	{ NOTHING,		0, 0,	(u_char *) 0 },
1691 	{ NOTHING,		0, 0,	(u_char *) 0 },
1692 	{ NOTHING,		0, 0,	(u_char *) 0 },
1693 	{ NOTHING,		0, 0,	(u_char *) 0 },
1694 	{ NOTHING,		0, 0,	(u_char *) 0 },
1695 
1696 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 64 */
1697 	{ BACKWARD_HISTORY,    	0, 0,	(u_char *) 0 },
1698 	{ FORWARD_HISTORY,     	0, 0,	(u_char *) 0 },
1699 	{ FORWARD_CHARACTER,   	0, 0,	(u_char *) 0 },
1700 	{ BACKWARD_CHARACTER,  	0, 0,	(u_char *) 0 },
1701 	{ NOTHING,		0, 0,	(u_char *) 0 },
1702 	{ NOTHING,		0, 0,	(u_char *) 0 },
1703 	{ NOTHING,		0, 0,	(u_char *) 0 },
1704 
1705 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 72 */
1706 	{ NOTHING,		0, 0,	(u_char *) 0 },
1707 	{ NOTHING,		0, 0,	(u_char *) 0 },
1708 	{ NOTHING,		0, 0,	(u_char *) 0 },
1709 	{ NOTHING,		0, 0,	(u_char *) 0 },
1710 	{ NOTHING,		0, 0,	(u_char *) 0 },
1711 	{ NOTHING,		0, 0,	(u_char *) 0 },
1712 	{ NOTHING,		0, 0,	(u_char *) 0 },
1713 
1714 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 80 */
1715 	{ NOTHING,		0, 0,	(u_char *) 0 },
1716 	{ NOTHING,		0, 0,	(u_char *) 0 },
1717 	{ NOTHING,		0, 0,	(u_char *) 0 },
1718 	{ NOTHING,		0, 0,	(u_char *) 0 },
1719 	{ NOTHING,		0, 0,	(u_char *) 0 },
1720 	{ NOTHING,		0, 0,	(u_char *) 0 },
1721 	{ NOTHING,		0, 0,	(u_char *) 0 },
1722 
1723 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 88 */
1724 	{ NOTHING,		0, 0,	(u_char *) 0 },
1725 	{ NOTHING,		0, 0,	(u_char *) 0 },
1726 	{ META5_CHARACTER,     	0, 0,	(u_char *) 0 },
1727 	{ NOTHING,		0, 0,	(u_char *) 0 },
1728 	{ NOTHING,		0, 0,	(u_char *) 0 },
1729 	{ NOTHING,		0, 0,	(u_char *) 0 },
1730 	{ NOTHING,		0, 0,	(u_char *) 0 },
1731 
1732 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 96 */
1733 	{ NOTHING,		0, 0,	(u_char *) 0 },
1734 	{ NOTHING,		0, 0,	(u_char *) 0 },
1735 	{ NOTHING,		0, 0,	(u_char *) 0 },
1736 	{ NOTHING,		0, 0,	(u_char *) 0 },
1737 	{ NOTHING,		0, 0,	(u_char *) 0 },
1738 	{ NOTHING,		0, 0,	(u_char *) 0 },
1739 	{ NOTHING,		0, 0,	(u_char *) 0 },
1740 
1741 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 104 */
1742 	{ NOTHING,		0, 0,	(u_char *) 0 },
1743 	{ NOTHING,		0, 0,	(u_char *) 0 },
1744 	{ NOTHING,		0, 0,	(u_char *) 0 },
1745 	{ NOTHING,		0, 0,	(u_char *) 0 },
1746 	{ NOTHING,		0, 0,	(u_char *) 0 },
1747 	{ NEXT_WINDOW,		0, 0,	(u_char *) 0 },
1748 	{ NOTHING,		0, 0,	(u_char *) 0 },
1749 
1750 	{ PREVIOUS_WINDOW,     	0, 0,	(u_char *) 0 },	/* 112 */
1751 	{ NOTHING,		0, 0,	(u_char *) 0 },
1752 	{ NOTHING,		0, 0,	(u_char *) 0 },
1753 	{ NOTHING,		0, 0,	(u_char *) 0 },
1754 	{ NOTHING,		0, 0,	(u_char *) 0 },
1755 	{ NOTHING,		0, 0,	(u_char *) 0 },
1756 	{ NOTHING,		0, 0,	(u_char *) 0 },
1757 	{ NOTHING,		0, 0,	(u_char *) 0 },
1758 
1759 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 120 */
1760 	{ NOTHING,		0, 0,	(u_char *) 0 },
1761 	{ NOTHING,		0, 0,	(u_char *) 0 },
1762 	{ NOTHING,		0, 0,	(u_char *) 0 },
1763 	{ NOTHING,		0, 0,	(u_char *) 0 },
1764 	{ NOTHING,		0, 0,	(u_char *) 0 },
1765 	{ NOTHING,		0, 0,	(u_char *) 0 },
1766 	{ NOTHING,		0, 0,	(u_char *) 0 },
1767 
1768 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 128 */
1769 	{ NOTHING,		0, 0,	(u_char *) 0 },
1770 	{ NOTHING,		0, 0,	(u_char *) 0 },
1771 	{ NOTHING,		0, 0,	(u_char *) 0 },
1772 	{ NOTHING,		0, 0,	(u_char *) 0 },
1773 	{ NOTHING,		0, 0,	(u_char *) 0 },
1774 	{ NOTHING,		0, 0,	(u_char *) 0 },
1775 	{ NOTHING,		0, 0,	(u_char *) 0 },
1776 
1777 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 136 */
1778 	{ NOTHING,		0, 0,	(u_char *) 0 },
1779 	{ NOTHING,		0, 0,	(u_char *) 0 },
1780 	{ NOTHING,		0, 0,	(u_char *) 0 },
1781 	{ NOTHING,		0, 0,	(u_char *) 0 },
1782 	{ NOTHING,		0, 0,	(u_char *) 0 },
1783 	{ NOTHING,		0, 0,	(u_char *) 0 },
1784 	{ NOTHING,		0, 0,	(u_char *) 0 },
1785 
1786 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 144 */
1787 	{ NOTHING,		0, 0,	(u_char *) 0 },
1788 	{ NOTHING,		0, 0,	(u_char *) 0 },
1789 	{ NOTHING,		0, 0,	(u_char *) 0 },
1790 	{ NOTHING,		0, 0,	(u_char *) 0 },
1791 	{ NOTHING,		0, 0,	(u_char *) 0 },
1792 	{ NOTHING,		0, 0,	(u_char *) 0 },
1793 	{ NOTHING,		0, 0,	(u_char *) 0 },
1794 
1795 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 152 */
1796 	{ NOTHING,		0, 0,	(u_char *) 0 },
1797 	{ NOTHING,		0, 0,	(u_char *) 0 },
1798 	{ NOTHING,		0, 0,	(u_char *) 0 },
1799 	{ NOTHING,		0, 0,	(u_char *) 0 },
1800 	{ NOTHING,		0, 0,	(u_char *) 0 },
1801 	{ NOTHING,		0, 0,	(u_char *) 0 },
1802 	{ NOTHING,		0, 0,	(u_char *) 0 },
1803 
1804 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 160 */
1805 	{ NOTHING,		0, 0,	(u_char *) 0 },
1806 	{ NOTHING,		0, 0,	(u_char *) 0 },
1807 	{ NOTHING,		0, 0,	(u_char *) 0 },
1808 	{ NOTHING,		0, 0,	(u_char *) 0 },
1809 	{ NOTHING,		0, 0,	(u_char *) 0 },
1810 	{ NOTHING,		0, 0,	(u_char *) 0 },
1811 	{ NOTHING,		0, 0,	(u_char *) 0 },
1812 
1813 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 168 */
1814 	{ NOTHING,		0, 0,	(u_char *) 0 },
1815 	{ NOTHING,		0, 0,	(u_char *) 0 },
1816 	{ NOTHING,		0, 0,	(u_char *) 0 },
1817 	{ NOTHING,		0, 0,	(u_char *) 0 },
1818 	{ NOTHING,		0, 0,	(u_char *) 0 },
1819 	{ NOTHING,		0, 0,	(u_char *) 0 },
1820 	{ NOTHING,		0, 0,	(u_char *) 0 },
1821 
1822 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 176 */
1823 	{ NOTHING,		0, 0,	(u_char *) 0 },
1824 	{ NOTHING,		0, 0,	(u_char *) 0 },
1825 	{ NOTHING,		0, 0,	(u_char *) 0 },
1826 	{ NOTHING,		0, 0,	(u_char *) 0 },
1827 	{ NOTHING,		0, 0,	(u_char *) 0 },
1828 	{ NOTHING,		0, 0,	(u_char *) 0 },
1829 	{ NOTHING,		0, 0,	(u_char *) 0 },
1830 
1831 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 184 */
1832 	{ NOTHING,		0, 0,	(u_char *) 0 },
1833 	{ NOTHING,		0, 0,	(u_char *) 0 },
1834 	{ NOTHING,		0, 0,	(u_char *) 0 },
1835 	{ NOTHING,		0, 0,	(u_char *) 0 },
1836 	{ NOTHING,		0, 0,	(u_char *) 0 },
1837 	{ NOTHING,		0, 0,	(u_char *) 0 },
1838 	{ NOTHING,		0, 0,	(u_char *) 0 },
1839 
1840 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 192 */
1841 	{ NOTHING,		0, 0,	(u_char *) 0 },
1842 	{ NOTHING,		0, 0,	(u_char *) 0 },
1843 	{ NOTHING,		0, 0,	(u_char *) 0 },
1844 	{ NOTHING,		0, 0,	(u_char *) 0 },
1845 	{ NOTHING,		0, 0,	(u_char *) 0 },
1846 	{ NOTHING,		0, 0,	(u_char *) 0 },
1847 	{ NOTHING,		0, 0,	(u_char *) 0 },
1848 
1849 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 200 */
1850 	{ NOTHING,		0, 0,	(u_char *) 0 },
1851 	{ NOTHING,		0, 0,	(u_char *) 0 },
1852 	{ NOTHING,		0, 0,	(u_char *) 0 },
1853 	{ NOTHING,		0, 0,	(u_char *) 0 },
1854 	{ NOTHING,		0, 0,	(u_char *) 0 },
1855 	{ NOTHING,		0, 0,	(u_char *) 0 },
1856 	{ NOTHING,		0, 0,	(u_char *) 0 },
1857 
1858 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 208 */
1859 	{ NOTHING,		0, 0,	(u_char *) 0 },
1860 	{ NOTHING,		0, 0,	(u_char *) 0 },
1861 	{ NOTHING,		0, 0,	(u_char *) 0 },
1862 	{ NOTHING,		0, 0,	(u_char *) 0 },
1863 	{ NOTHING,		0, 0,	(u_char *) 0 },
1864 	{ NOTHING,		0, 0,	(u_char *) 0 },
1865 	{ NOTHING,		0, 0,	(u_char *) 0 },
1866 
1867 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 216 */
1868 	{ NOTHING,		0, 0,	(u_char *) 0 },
1869 	{ NOTHING,		0, 0,	(u_char *) 0 },
1870 	{ NOTHING,		0, 0,	(u_char *) 0 },
1871 	{ NOTHING,		0, 0,	(u_char *) 0 },
1872 	{ NOTHING,		0, 0,	(u_char *) 0 },
1873 	{ NOTHING,		0, 0,	(u_char *) 0 },
1874 	{ NOTHING,		0, 0,	(u_char *) 0 },
1875 
1876 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 224 */
1877 	{ NOTHING,		0, 0,	(u_char *) 0 },
1878 	{ NOTHING,		0, 0,	(u_char *) 0 },
1879 	{ NOTHING,		0, 0,	(u_char *) 0 },
1880 	{ NOTHING,		0, 0,	(u_char *) 0 },
1881 	{ NOTHING,		0, 0,	(u_char *) 0 },
1882 	{ NOTHING,		0, 0,	(u_char *) 0 },
1883 	{ NOTHING,		0, 0,	(u_char *) 0 },
1884 
1885 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 232 */
1886 	{ NOTHING,		0, 0,	(u_char *) 0 },
1887 	{ NOTHING,		0, 0,	(u_char *) 0 },
1888 	{ NOTHING,		0, 0,	(u_char *) 0 },
1889 	{ NOTHING,		0, 0,	(u_char *) 0 },
1890 	{ NOTHING,		0, 0,	(u_char *) 0 },
1891 	{ NOTHING,		0, 0,	(u_char *) 0 },
1892 	{ NOTHING,		0, 0,	(u_char *) 0 },
1893 
1894 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 240 */
1895 	{ NOTHING,		0, 0,	(u_char *) 0 },
1896 	{ NOTHING,		0, 0,	(u_char *) 0 },
1897 	{ NOTHING,		0, 0,	(u_char *) 0 },
1898 	{ NOTHING,		0, 0,	(u_char *) 0 },
1899 	{ NOTHING,		0, 0,	(u_char *) 0 },
1900 	{ NOTHING,		0, 0,	(u_char *) 0 },
1901 	{ NOTHING,		0, 0,	(u_char *) 0 },
1902 
1903 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 248 */
1904 	{ NOTHING,		0, 0,	(u_char *) 0 },
1905 	{ NOTHING,		0, 0,	(u_char *) 0 },
1906 	{ NOTHING,		0, 0,	(u_char *) 0 },
1907 	{ NOTHING,		0, 0,	(u_char *) 0 },
1908 	{ NOTHING,		0, 0,	(u_char *) 0 },
1909 	{ NOTHING,		0, 0,	(u_char *) 0 },
1910 	{ NOTHING,		0, 0,	(u_char *) 0 }
1911 };
1912 
1913 KeyMap	FAR meta4_keys[] =
1914 {
1915 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 0 */
1916 	{ NOTHING,		0, 0,	(u_char *) 0 },
1917 	{ NOTHING,		0, 0,	(u_char *) 0 },
1918 	{ NOTHING,		0, 0,	(u_char *) 0 },
1919 	{ NOTHING,		0, 0,	(u_char *) 0 },
1920 	{ NOTHING,		0, 0,	(u_char *) 0 },
1921 	{ NOTHING,		0, 0,	(u_char *) 0 },
1922 	{ NOTHING,		0, 0,	(u_char *) 0 },
1923 
1924 	{ BACKWARD_CHARACTER,	0, 0,	(u_char *) 0 },	/* 8 */
1925 	{ NOTHING,		0, 0,	(u_char *) 0 },
1926 	{ NOTHING,		0, 0,	(u_char *) 0 },
1927 	{ NOTHING,		0, 0,	(u_char *) 0 },
1928 	{ NOTHING,		0, 0,	(u_char *) 0 },
1929 	{ NOTHING,		0, 0,	(u_char *) 0 },
1930 	{ NOTHING,		0, 0,	(u_char *) 0 },
1931 	{ NOTHING,		0, 0,	(u_char *) 0 },
1932 
1933 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 16 */
1934 	{ NOTHING,		0, 0,	(u_char *) 0 },
1935 	{ NOTHING,		0, 0,	(u_char *) 0 },
1936 	{ NOTHING,		0, 0,	(u_char *) 0 },
1937 	{ NOTHING,		0, 0,	(u_char *) 0 },
1938 	{ NOTHING,		0, 0,	(u_char *) 0 },
1939 	{ NOTHING,		0, 0,	(u_char *) 0 },
1940 	{ NOTHING,		0, 0,	(u_char *) 0 },
1941 
1942 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 24 */
1943 	{ NOTHING,		0, 0,	(u_char *) 0 },
1944 	{ NOTHING,		0, 0,	(u_char *) 0 },
1945 	{ NOTHING,		0, 0,	(u_char *) 0 },
1946 	{ NOTHING,		0, 0,	(u_char *) 0 },
1947 	{ NOTHING,		0, 0,	(u_char *) 0 },
1948 	{ NOTHING,		0, 0,	(u_char *) 0 },
1949 	{ NOTHING,		0, 0,	(u_char *) 0 },
1950 
1951 	{ FORWARD_CHARACTER,	0, 0,	(u_char *) 0 },	/* 32 */
1952 	{ NOTHING,		0, 0,	(u_char *) 0 },
1953 	{ NOTHING,		0, 0,	(u_char *) 0 },
1954 	{ NOTHING,		0, 0,	(u_char *) 0 },
1955 	{ NOTHING,		0, 0,	(u_char *) 0 },
1956 	{ NOTHING,		0, 0,	(u_char *) 0 },
1957 	{ NOTHING,		0, 0,	(u_char *) 0 },
1958 	{ NOTHING,		0, 0,	(u_char *) 0 },
1959 
1960 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 40 */
1961 	{ NOTHING,		0, 0,	(u_char *) 0 },
1962 	{ NOTHING,		0, 0,	(u_char *) 0 },
1963 	{ NOTHING,		0, 0,	(u_char *) 0 },
1964 	{ NOTHING,		0, 0,	(u_char *) 0 },
1965 	{ NOTHING,		0, 0,	(u_char *) 0 },
1966 	{ NOTHING,		0, 0,	(u_char *) 0 },
1967 	{ NOTHING,		0, 0,	(u_char *) 0 },
1968 
1969 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 48 */
1970 	{ NOTHING,		0, 0,	(u_char *) 0 },
1971 	{ NOTHING,		0, 0,	(u_char *) 0 },
1972 	{ NOTHING,		0, 0,	(u_char *) 0 },
1973 	{ NOTHING,		0, 0,	(u_char *) 0 },
1974 	{ NOTHING,		0, 0,	(u_char *) 0 },
1975 	{ NOTHING,		0, 0,	(u_char *) 0 },
1976 	{ NOTHING,		0, 0,	(u_char *) 0 },
1977 
1978 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 56 */
1979 	{ NOTHING,		0, 0,	(u_char *) 0 },
1980 	{ NOTHING,		0, 0,	(u_char *) 0 },
1981 	{ NOTHING,		0, 0,	(u_char *) 0 },
1982 	{ NOTHING,		0, 0,	(u_char *) 0 },
1983 	{ NOTHING,		0, 0,	(u_char *) 0 },
1984 	{ NOTHING,		0, 0,	(u_char *) 0 },
1985 	{ NOTHING,		0, 0,	(u_char *) 0 },
1986 
1987 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 64 */
1988 	{ META4_CHARACTER,	0, 0,	(u_char *) 0 },
1989 	{ NOTHING,		0, 0,	(u_char *) 0 },
1990 	{ NOTHING,		0, 0,	(u_char *) 0 },
1991 	{ NOTHING,		0, 0,	(u_char *) 0 },
1992 	{ NOTHING,		0, 0,	(u_char *) 0 },
1993 	{ NOTHING,		0, 0,	(u_char *) 0 },
1994 	{ NOTHING,		0, 0,	(u_char *) 0 },
1995 
1996 	{ BACKWARD_CHARACTER,	0, 0,	(u_char *) 0 },	/* 72 */
1997 	{ META4_CHARACTER,	0, 0,	(u_char *) 0 },
1998 	{ FORWARD_HISTORY,	0, 0,	(u_char *) 0 },
1999 	{ BACKWARD_HISTORY,	0, 0,	(u_char *) 0 },
2000 	{ FORWARD_CHARACTER,	0, 0,	(u_char *) 0 },
2001 	{ NOTHING,		0, 0,	(u_char *) 0 },
2002 	{ NOTHING,		0, 0,	(u_char *) 0 },
2003 	{ NOTHING,		0, 0,	(u_char *) 0 },
2004 
2005 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 80 */
2006 	{ NOTHING,		0, 0,	(u_char *) 0 },
2007 	{ NOTHING,		0, 0,	(u_char *) 0 },
2008 	{ NOTHING,		0, 0,	(u_char *) 0 },
2009 	{ NOTHING,		0, 0,	(u_char *) 0 },
2010 	{ NOTHING,		0, 0,	(u_char *) 0 },
2011 	{ NOTHING,		0, 0,	(u_char *) 0 },
2012 	{ NOTHING,		0, 0,	(u_char *) 0 },
2013 
2014 	{ DELETE_CHARACTER,	0, 0,	(u_char *) 0 },	/* 88 */
2015 	{ NOTHING,		0, 0,	(u_char *) 0 },
2016 	{ NOTHING,		0, 0,	(u_char *) 0 },
2017 	{ NOTHING,	     	0, 0,	(u_char *) 0 },
2018 	{ NOTHING,		0, 0,	(u_char *) 0 },
2019 	{ NOTHING,		0, 0,	(u_char *) 0 },
2020 	{ NOTHING,		0, 0,	(u_char *) 0 },
2021 	{ NOTHING,		0, 0,	(u_char *) 0 },
2022 
2023 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 96 */
2024 	{ META4_CHARACTER,	0, 0,	(u_char *) 0 },
2025 	{ NOTHING,		0, 0,	(u_char *) 0 },
2026 	{ NOTHING,		0, 0,	(u_char *) 0 },
2027 	{ NOTHING,		0, 0,	(u_char *) 0 },
2028 	{ NOTHING,		0, 0,	(u_char *) 0 },
2029 	{ NOTHING,		0, 0,	(u_char *) 0 },
2030 	{ NOTHING,		0, 0,	(u_char *) 0 },
2031 
2032 	{ BACKWARD_CHARACTER,	0, 0,	(u_char *) 0 },	/* 104 */
2033 	{ META4_CHARACTER,	0, 0,	(u_char *) 0 },
2034 	{ FORWARD_HISTORY,	0, 0,	(u_char *) 0 },
2035 	{ BACKWARD_HISTORY,	0, 0,	(u_char *) 0 },
2036 	{ FORWARD_CHARACTER,	0, 0,	(u_char *) 0 },
2037 	{ NOTHING,		0, 0,	(u_char *) 0 },
2038 	{ NOTHING,		0, 0,	(u_char *) 0 },
2039 	{ NOTHING,		0, 0,	(u_char *) 0 },
2040 
2041 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 112 */
2042 	{ NOTHING,		0, 0,	(u_char *) 0 },
2043 	{ NOTHING,		0, 0,	(u_char *) 0 },
2044 	{ NOTHING,		0, 0,	(u_char *) 0 },
2045 	{ NOTHING,		0, 0,	(u_char *) 0 },
2046 	{ NOTHING,		0, 0,	(u_char *) 0 },
2047 	{ NOTHING,		0, 0,	(u_char *) 0 },
2048 	{ NOTHING,		0, 0,	(u_char *) 0 },
2049 
2050 	{ DELETE_CHARACTER,	0, 0,	(u_char *) 0 },	/* 120 */
2051 	{ NOTHING,		0, 0,	(u_char *) 0 },
2052 	{ NOTHING,		0, 0,	(u_char *) 0 },
2053 	{ NOTHING,		0, 0,	(u_char *) 0 },
2054 	{ NOTHING,		0, 0,	(u_char *) 0 },
2055 	{ NOTHING,		0, 0,	(u_char *) 0 },
2056 	{ NOTHING,		0, 0,	(u_char *) 0 },
2057 	{ NOTHING,		0, 0,	(u_char *) 0 },
2058 
2059 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 128 */
2060 	{ NOTHING,		0, 0,	(u_char *) 0 },
2061 	{ NOTHING,		0, 0,	(u_char *) 0 },
2062 	{ NOTHING,		0, 0,	(u_char *) 0 },
2063 	{ NOTHING,		0, 0,	(u_char *) 0 },
2064 	{ NOTHING,		0, 0,	(u_char *) 0 },
2065 	{ NOTHING,		0, 0,	(u_char *) 0 },
2066 	{ NOTHING,		0, 0,	(u_char *) 0 },
2067 
2068 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 136 */
2069 	{ NOTHING,		0, 0,	(u_char *) 0 },
2070 	{ NOTHING,		0, 0,	(u_char *) 0 },
2071 	{ NOTHING,		0, 0,	(u_char *) 0 },
2072 	{ NOTHING,		0, 0,	(u_char *) 0 },
2073 	{ NOTHING,		0, 0,	(u_char *) 0 },
2074 	{ NOTHING,		0, 0,	(u_char *) 0 },
2075 	{ NOTHING,		0, 0,	(u_char *) 0 },
2076 
2077 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 144 */
2078 	{ NOTHING,		0, 0,	(u_char *) 0 },
2079 	{ NOTHING,		0, 0,	(u_char *) 0 },
2080 	{ NOTHING,		0, 0,	(u_char *) 0 },
2081 	{ NOTHING,		0, 0,	(u_char *) 0 },
2082 	{ NOTHING,		0, 0,	(u_char *) 0 },
2083 	{ NOTHING,		0, 0,	(u_char *) 0 },
2084 	{ NOTHING,		0, 0,	(u_char *) 0 },
2085 
2086 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 152 */
2087 	{ NOTHING,		0, 0,	(u_char *) 0 },
2088 	{ NOTHING,		0, 0,	(u_char *) 0 },
2089 	{ NOTHING,		0, 0,	(u_char *) 0 },
2090 	{ NOTHING,		0, 0,	(u_char *) 0 },
2091 	{ NOTHING,		0, 0,	(u_char *) 0 },
2092 	{ NOTHING,		0, 0,	(u_char *) 0 },
2093 	{ NOTHING,		0, 0,	(u_char *) 0 },
2094 
2095 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 160 */
2096 	{ NOTHING,		0, 0,	(u_char *) 0 },
2097 	{ NOTHING,		0, 0,	(u_char *) 0 },
2098 	{ NOTHING,		0, 0,	(u_char *) 0 },
2099 	{ NOTHING,		0, 0,	(u_char *) 0 },
2100 	{ NOTHING,		0, 0,	(u_char *) 0 },
2101 	{ NOTHING,		0, 0,	(u_char *) 0 },
2102 	{ NOTHING,		0, 0,	(u_char *) 0 },
2103 
2104 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 168 */
2105 	{ NOTHING,		0, 0,	(u_char *) 0 },
2106 	{ NOTHING,		0, 0,	(u_char *) 0 },
2107 	{ NOTHING,		0, 0,	(u_char *) 0 },
2108 	{ NOTHING,		0, 0,	(u_char *) 0 },
2109 	{ NOTHING,		0, 0,	(u_char *) 0 },
2110 	{ NOTHING,		0, 0,	(u_char *) 0 },
2111 	{ NOTHING,		0, 0,	(u_char *) 0 },
2112 
2113 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 176 */
2114 	{ NOTHING,		0, 0,	(u_char *) 0 },
2115 	{ NOTHING,		0, 0,	(u_char *) 0 },
2116 	{ NOTHING,		0, 0,	(u_char *) 0 },
2117 	{ NOTHING,		0, 0,	(u_char *) 0 },
2118 	{ NOTHING,		0, 0,	(u_char *) 0 },
2119 	{ NOTHING,		0, 0,	(u_char *) 0 },
2120 	{ NOTHING,		0, 0,	(u_char *) 0 },
2121 
2122 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 184 */
2123 	{ NOTHING,		0, 0,	(u_char *) 0 },
2124 	{ NOTHING,		0, 0,	(u_char *) 0 },
2125 	{ NOTHING,		0, 0,	(u_char *) 0 },
2126 	{ NOTHING,		0, 0,	(u_char *) 0 },
2127 	{ NOTHING,		0, 0,	(u_char *) 0 },
2128 	{ NOTHING,		0, 0,	(u_char *) 0 },
2129 	{ NOTHING,		0, 0,	(u_char *) 0 },
2130 
2131 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 192 */
2132 	{ NOTHING,		0, 0,	(u_char *) 0 },
2133 	{ NOTHING,		0, 0,	(u_char *) 0 },
2134 	{ NOTHING,		0, 0,	(u_char *) 0 },
2135 	{ NOTHING,		0, 0,	(u_char *) 0 },
2136 	{ NOTHING,		0, 0,	(u_char *) 0 },
2137 	{ NOTHING,		0, 0,	(u_char *) 0 },
2138 	{ NOTHING,		0, 0,	(u_char *) 0 },
2139 
2140 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 200 */
2141 	{ NOTHING,		0, 0,	(u_char *) 0 },
2142 	{ NOTHING,		0, 0,	(u_char *) 0 },
2143 	{ NOTHING,		0, 0,	(u_char *) 0 },
2144 	{ NOTHING,		0, 0,	(u_char *) 0 },
2145 	{ NOTHING,		0, 0,	(u_char *) 0 },
2146 	{ NOTHING,		0, 0,	(u_char *) 0 },
2147 	{ NOTHING,		0, 0,	(u_char *) 0 },
2148 
2149 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 208 */
2150 	{ NOTHING,		0, 0,	(u_char *) 0 },
2151 	{ NOTHING,		0, 0,	(u_char *) 0 },
2152 	{ NOTHING,		0, 0,	(u_char *) 0 },
2153 	{ NOTHING,		0, 0,	(u_char *) 0 },
2154 	{ NOTHING,		0, 0,	(u_char *) 0 },
2155 	{ NOTHING,		0, 0,	(u_char *) 0 },
2156 	{ NOTHING,		0, 0,	(u_char *) 0 },
2157 
2158 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 216 */
2159 	{ NOTHING,		0, 0,	(u_char *) 0 },
2160 	{ NOTHING,		0, 0,	(u_char *) 0 },
2161 	{ NOTHING,		0, 0,	(u_char *) 0 },
2162 	{ NOTHING,		0, 0,	(u_char *) 0 },
2163 	{ NOTHING,		0, 0,	(u_char *) 0 },
2164 	{ NOTHING,		0, 0,	(u_char *) 0 },
2165 	{ NOTHING,		0, 0,	(u_char *) 0 },
2166 
2167 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 224 */
2168 	{ NOTHING,		0, 0,	(u_char *) 0 },
2169 	{ NOTHING,		0, 0,	(u_char *) 0 },
2170 	{ NOTHING,		0, 0,	(u_char *) 0 },
2171 	{ NOTHING,		0, 0,	(u_char *) 0 },
2172 	{ NOTHING,		0, 0,	(u_char *) 0 },
2173 	{ NOTHING,		0, 0,	(u_char *) 0 },
2174 	{ NOTHING,		0, 0,	(u_char *) 0 },
2175 
2176 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 232 */
2177 	{ NOTHING,		0, 0,	(u_char *) 0 },
2178 	{ NOTHING,		0, 0,	(u_char *) 0 },
2179 	{ NOTHING,		0, 0,	(u_char *) 0 },
2180 	{ NOTHING,		0, 0,	(u_char *) 0 },
2181 	{ NOTHING,		0, 0,	(u_char *) 0 },
2182 	{ NOTHING,		0, 0,	(u_char *) 0 },
2183 	{ NOTHING,		0, 0,	(u_char *) 0 },
2184 
2185 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 240 */
2186 	{ NOTHING,		0, 0,	(u_char *) 0 },
2187 	{ NOTHING,		0, 0,	(u_char *) 0 },
2188 	{ NOTHING,		0, 0,	(u_char *) 0 },
2189 	{ NOTHING,		0, 0,	(u_char *) 0 },
2190 	{ NOTHING,		0, 0,	(u_char *) 0 },
2191 	{ NOTHING,		0, 0,	(u_char *) 0 },
2192 	{ NOTHING,		0, 0,	(u_char *) 0 },
2193 
2194 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 248 */
2195 	{ NOTHING,		0, 0,	(u_char *) 0 },
2196 	{ NOTHING,		0, 0,	(u_char *) 0 },
2197 	{ NOTHING,		0, 0,	(u_char *) 0 },
2198 	{ NOTHING,		0, 0,	(u_char *) 0 },
2199 	{ NOTHING,		0, 0,	(u_char *) 0 },
2200 	{ NOTHING,		0, 0,	(u_char *) 0 },
2201 	{ NOTHING,		0, 0,	(u_char *) 0 }
2202 };
2203 
2204 KeyMap	FAR meta5_keys[] =
2205 {
2206 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 0 */
2207 	{ NOTHING,		0, 0,	(u_char *) 0 },
2208 	{ NOTHING,		0, 0,	(u_char *) 0 },
2209 	{ NOTHING,		0, 0,	(u_char *) 0 },
2210 	{ NOTHING,		0, 0,	(u_char *) 0 },
2211 	{ NOTHING,		0, 0,	(u_char *) 0 },
2212 	{ NOTHING,		0, 0,	(u_char *) 0 },
2213 	{ NOTHING,		0, 0,	(u_char *) 0 },
2214 
2215 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 8 */
2216 	{ NOTHING,		0, 0,	(u_char *) 0 },
2217 	{ NOTHING,		0, 0,	(u_char *) 0 },
2218 	{ NOTHING,		0, 0,	(u_char *) 0 },
2219 	{ NOTHING,		0, 0,	(u_char *) 0 },
2220 	{ NOTHING,		0, 0,	(u_char *) 0 },
2221 	{ NOTHING,		0, 0,	(u_char *) 0 },
2222 	{ NOTHING,		0, 0,	(u_char *) 0 },
2223 
2224 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 16 */
2225 	{ NOTHING,		0, 0,	(u_char *) 0 },
2226 	{ NOTHING,		0, 0,	(u_char *) 0 },
2227 	{ NOTHING,		0, 0,	(u_char *) 0 },
2228 	{ NOTHING,		0, 0,	(u_char *) 0 },
2229 	{ NOTHING,		0, 0,	(u_char *) 0 },
2230 	{ NOTHING,		0, 0,	(u_char *) 0 },
2231 	{ NOTHING,		0, 0,	(u_char *) 0 },
2232 
2233 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 24 */
2234 	{ NOTHING,		0, 0,	(u_char *) 0 },
2235 	{ NOTHING,		0, 0,	(u_char *) 0 },
2236 	{ NOTHING,		0, 0,	(u_char *) 0 },
2237 	{ NOTHING,		0, 0,	(u_char *) 0 },
2238 	{ NOTHING,		0, 0,	(u_char *) 0 },
2239 	{ NOTHING,		0, 0,	(u_char *) 0 },
2240 	{ NOTHING,		0, 0,	(u_char *) 0 },
2241 
2242 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 32 */
2243 	{ NOTHING,		0, 0,	(u_char *) 0 },
2244 	{ NOTHING,		0, 0,	(u_char *) 0 },
2245 	{ NOTHING,		0, 0,	(u_char *) 0 },
2246 	{ NOTHING,		0, 0,	(u_char *) 0 },
2247 	{ NOTHING,		0, 0,	(u_char *) 0 },
2248 	{ NOTHING,		0, 0,	(u_char *) 0 },
2249 	{ NOTHING,		0, 0,	(u_char *) 0 },
2250 
2251 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 40 */
2252 	{ NOTHING,		0, 0,	(u_char *) 0 },
2253 	{ NOTHING,		0, 0,	(u_char *) 0 },
2254 	{ NOTHING,		0, 0,	(u_char *) 0 },
2255 	{ NOTHING,		0, 0,	(u_char *) 0 },
2256 	{ NOTHING,		0, 0,	(u_char *) 0 },
2257 	{ NOTHING,		0, 0,	(u_char *) 0 },
2258 	{ NOTHING,		0, 0,	(u_char *) 0 },
2259 
2260 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 48 */
2261 	{ NOTHING,		0, 0,	(u_char *) 0 },
2262 	{ NOTHING,		0, 0,	(u_char *) 0 },
2263 	{ NOTHING,		0, 0,	(u_char *) 0 },
2264 	{ NOTHING,		0, 0,	(u_char *) 0 },
2265 	{ NOTHING,		0, 0,	(u_char *) 0 },
2266 	{ NOTHING,		0, 0,	(u_char *) 0 },
2267 	{ NOTHING,		0, 0,	(u_char *) 0 },
2268 
2269 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 56 */
2270 	{ NOTHING,		0, 0,	(u_char *) 0 },
2271 	{ NOTHING,		0, 0,	(u_char *) 0 },
2272 	{ NOTHING,		0, 0,	(u_char *) 0 },
2273 	{ NOTHING,		0, 0,	(u_char *) 0 },
2274 	{ NOTHING,		0, 0,	(u_char *) 0 },
2275 	{ NOTHING,		0, 0,	(u_char *) 0 },
2276 	{ NOTHING,		0, 0,	(u_char *) 0 },
2277 
2278 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 64 */
2279 	{ NEXT_WINDOW,		0, 0,	(u_char *) 0 },
2280 	{ OPER_VIEW,		0, 0,	(u_char *) 0 },
2281 	{ NOTHING,		0, 0,	(u_char *) 0 },
2282 	{ NOTHING,		0, 0,	(u_char *) 0 },
2283 	{ NOTHING,		0, 0,	(u_char *) 0 },
2284 	{ NOTHING,		0, 0,	(u_char *) 0 },
2285 	{ NOTHING,		0, 0,	(u_char *) 0 },
2286 
2287 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 72 */
2288 	{ NOTHING,		0, 0,	(u_char *) 0 },
2289 	{ NOTHING,		0, 0,	(u_char *) 0 },
2290 	{ NOTHING,		0, 0,	(u_char *) 0 },
2291 	{ NOTHING,		0, 0,	(u_char *) 0 },
2292 	{ NOTHING,		0, 0,	(u_char *) 0 },
2293 	{ NOTHING,		0, 0,	(u_char *) 0 },
2294 	{ NOTHING,		0, 0,	(u_char *) 0 },
2295 
2296 	{ NEXT_WINDOW,		0, 0,	(u_char *) 0 },	/* 80 */
2297 	{ OPER_VIEW,		0, 0,	(u_char *) 0 },
2298 	{ NOTHING,		0, 0,	(u_char *) 0 },
2299 	{ NOTHING,		0, 0,	(u_char *) 0 },
2300 	{ NOTHING,		0, 0,	(u_char *) 0 },
2301 	{ NOTHING,		0, 0,	(u_char *) 0 },
2302 	{ NOTHING,		0, 0,	(u_char *) 0 },
2303 	{ NOTHING,		0, 0,	(u_char *) 0 },
2304 
2305 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 88 */
2306 	{ NOTHING,		0, 0,	(u_char *) 0 },
2307 	{ NOTHING,		0, 0,	(u_char *) 0 },
2308 	{ NOTHING,		0, 0,	(u_char *) 0 },
2309 	{ NOTHING,		0, 0,	(u_char *) 0 },
2310 	{ NOTHING,		0, 0,	(u_char *) 0 },
2311 	{ NOTHING,		0, 0,	(u_char *) 0 },
2312 	{ NOTHING,		0, 0,	(u_char *) 0 },
2313 
2314 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 96 */
2315 	{ NOTHING,		0, 0,	(u_char *) 0 },
2316 	{ NOTHING,		0, 0,	(u_char *) 0 },
2317 	{ NOTHING,		0, 0,	(u_char *) 0 },
2318 	{ NOTHING,		0, 0,	(u_char *) 0 },
2319 	{ NOTHING,		0, 0,	(u_char *) 0 },
2320 	{ NOTHING,		0, 0,	(u_char *) 0 },
2321 	{ NOTHING,		0, 0,	(u_char *) 0 },
2322 
2323 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 104 */
2324 	{ NOTHING,		0, 0,	(u_char *) 0 },
2325 	{ NOTHING,		0, 0,	(u_char *) 0 },
2326 	{ NOTHING,		0, 0,	(u_char *) 0 },
2327 	{ NOTHING,		0, 0,	(u_char *) 0 },
2328 	{ NOTHING,		0, 0,	(u_char *) 0 },
2329 	{ NOTHING,		0, 0,	(u_char *) 0 },
2330 	{ NOTHING,		0, 0,	(u_char *) 0 },
2331 
2332 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 112 */
2333 	{ NOTHING,		0, 0,	(u_char *) 0 },
2334 	{ NOTHING,		0, 0,	(u_char *) 0 },
2335 	{ NOTHING,		0, 0,	(u_char *) 0 },
2336 	{ NOTHING,		0, 0,	(u_char *) 0 },
2337 	{ NOTHING,		0, 0,	(u_char *) 0 },
2338 	{ NOTHING,		0, 0,	(u_char *) 0 },
2339 	{ NOTHING,		0, 0,	(u_char *) 0 },
2340 
2341 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 120 */
2342 	{ NOTHING,		0, 0,	(u_char *) 0 },
2343 	{ NOTHING,		0, 0,	(u_char *) 0 },
2344 	{ NOTHING,		0, 0,	(u_char *) 0 },
2345 	{ NOTHING,		0, 0,	(u_char *) 0 },
2346 	{ NOTHING,		0, 0,	(u_char *) 0 },
2347 	{ NOTHING,		0, 0,	(u_char *) 0 },
2348 	{ NOTHING,		0, 0,	(u_char *) 0 },
2349 
2350 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 128 */
2351 	{ NOTHING,		0, 0,	(u_char *) 0 },
2352 	{ NOTHING,		0, 0,	(u_char *) 0 },
2353 	{ NOTHING,		0, 0,	(u_char *) 0 },
2354 	{ NOTHING,		0, 0,	(u_char *) 0 },
2355 	{ NOTHING,		0, 0,	(u_char *) 0 },
2356 	{ NOTHING,		0, 0,	(u_char *) 0 },
2357 	{ NOTHING,		0, 0,	(u_char *) 0 },
2358 
2359 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 136 */
2360 	{ NOTHING,		0, 0,	(u_char *) 0 },
2361 	{ NOTHING,		0, 0,	(u_char *) 0 },
2362 	{ NOTHING,		0, 0,	(u_char *) 0 },
2363 	{ NOTHING,		0, 0,	(u_char *) 0 },
2364 	{ NOTHING,		0, 0,	(u_char *) 0 },
2365 	{ NOTHING,		0, 0,	(u_char *) 0 },
2366 	{ NOTHING,		0, 0,	(u_char *) 0 },
2367 
2368 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 144 */
2369 	{ NOTHING,		0, 0,	(u_char *) 0 },
2370 	{ NOTHING,		0, 0,	(u_char *) 0 },
2371 	{ NOTHING,		0, 0,	(u_char *) 0 },
2372 	{ NOTHING,		0, 0,	(u_char *) 0 },
2373 	{ NOTHING,		0, 0,	(u_char *) 0 },
2374 	{ NOTHING,		0, 0,	(u_char *) 0 },
2375 	{ NOTHING,		0, 0,	(u_char *) 0 },
2376 
2377 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 152 */
2378 	{ NOTHING,		0, 0,	(u_char *) 0 },
2379 	{ NOTHING,		0, 0,	(u_char *) 0 },
2380 	{ NOTHING,		0, 0,	(u_char *) 0 },
2381 	{ NOTHING,		0, 0,	(u_char *) 0 },
2382 	{ NOTHING,		0, 0,	(u_char *) 0 },
2383 	{ NOTHING,		0, 0,	(u_char *) 0 },
2384 	{ NOTHING,		0, 0,	(u_char *) 0 },
2385 
2386 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 160 */
2387 	{ NOTHING,		0, 0,	(u_char *) 0 },
2388 	{ NOTHING,		0, 0,	(u_char *) 0 },
2389 	{ NOTHING,		0, 0,	(u_char *) 0 },
2390 	{ NOTHING,		0, 0,	(u_char *) 0 },
2391 	{ NOTHING,		0, 0,	(u_char *) 0 },
2392 	{ NOTHING,		0, 0,	(u_char *) 0 },
2393 	{ NOTHING,		0, 0,	(u_char *) 0 },
2394 
2395 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 168 */
2396 	{ NOTHING,		0, 0,	(u_char *) 0 },
2397 	{ NOTHING,		0, 0,	(u_char *) 0 },
2398 	{ NOTHING,		0, 0,	(u_char *) 0 },
2399 	{ NOTHING,		0, 0,	(u_char *) 0 },
2400 	{ NOTHING,		0, 0,	(u_char *) 0 },
2401 	{ NOTHING,		0, 0,	(u_char *) 0 },
2402 	{ NOTHING,		0, 0,	(u_char *) 0 },
2403 
2404 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 176 */
2405 	{ NOTHING,		0, 0,	(u_char *) 0 },
2406 	{ NOTHING,		0, 0,	(u_char *) 0 },
2407 	{ NOTHING,		0, 0,	(u_char *) 0 },
2408 	{ NOTHING,		0, 0,	(u_char *) 0 },
2409 	{ NOTHING,		0, 0,	(u_char *) 0 },
2410 	{ NOTHING,		0, 0,	(u_char *) 0 },
2411 	{ NOTHING,		0, 0,	(u_char *) 0 },
2412 
2413 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 184 */
2414 	{ NOTHING,		0, 0,	(u_char *) 0 },
2415 	{ NOTHING,		0, 0,	(u_char *) 0 },
2416 	{ NOTHING,		0, 0,	(u_char *) 0 },
2417 	{ NOTHING,		0, 0,	(u_char *) 0 },
2418 	{ NOTHING,		0, 0,	(u_char *) 0 },
2419 	{ NOTHING,		0, 0,	(u_char *) 0 },
2420 	{ NOTHING,		0, 0,	(u_char *) 0 },
2421 
2422 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 192 */
2423 	{ NOTHING,		0, 0,	(u_char *) 0 },
2424 	{ NOTHING,		0, 0,	(u_char *) 0 },
2425 	{ NOTHING,		0, 0,	(u_char *) 0 },
2426 	{ NOTHING,		0, 0,	(u_char *) 0 },
2427 	{ NOTHING,		0, 0,	(u_char *) 0 },
2428 	{ NOTHING,		0, 0,	(u_char *) 0 },
2429 	{ NOTHING,		0, 0,	(u_char *) 0 },
2430 
2431 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 200 */
2432 	{ NOTHING,		0, 0,	(u_char *) 0 },
2433 	{ NOTHING,		0, 0,	(u_char *) 0 },
2434 	{ NOTHING,		0, 0,	(u_char *) 0 },
2435 	{ NOTHING,		0, 0,	(u_char *) 0 },
2436 	{ NOTHING,		0, 0,	(u_char *) 0 },
2437 	{ NOTHING,		0, 0,	(u_char *) 0 },
2438 	{ NOTHING,		0, 0,	(u_char *) 0 },
2439 
2440 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 208 */
2441 	{ NOTHING,		0, 0,	(u_char *) 0 },
2442 	{ NOTHING,		0, 0,	(u_char *) 0 },
2443 	{ NOTHING,		0, 0,	(u_char *) 0 },
2444 	{ NOTHING,		0, 0,	(u_char *) 0 },
2445 	{ NOTHING,		0, 0,	(u_char *) 0 },
2446 	{ NOTHING,		0, 0,	(u_char *) 0 },
2447 	{ NOTHING,		0, 0,	(u_char *) 0 },
2448 
2449 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 216 */
2450 	{ NOTHING,		0, 0,	(u_char *) 0 },
2451 	{ NOTHING,		0, 0,	(u_char *) 0 },
2452 	{ NOTHING,		0, 0,	(u_char *) 0 },
2453 	{ NOTHING,		0, 0,	(u_char *) 0 },
2454 	{ NOTHING,		0, 0,	(u_char *) 0 },
2455 	{ NOTHING,		0, 0,	(u_char *) 0 },
2456 	{ NOTHING,		0, 0,	(u_char *) 0 },
2457 
2458 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 224 */
2459 	{ NOTHING,		0, 0,	(u_char *) 0 },
2460 	{ NOTHING,		0, 0,	(u_char *) 0 },
2461 	{ NOTHING,		0, 0,	(u_char *) 0 },
2462 	{ NOTHING,		0, 0,	(u_char *) 0 },
2463 	{ NOTHING,		0, 0,	(u_char *) 0 },
2464 	{ NOTHING,		0, 0,	(u_char *) 0 },
2465 	{ NOTHING,		0, 0,	(u_char *) 0 },
2466 
2467 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 232 */
2468 	{ NOTHING,		0, 0,	(u_char *) 0 },
2469 	{ NOTHING,		0, 0,	(u_char *) 0 },
2470 	{ NOTHING,		0, 0,	(u_char *) 0 },
2471 	{ NOTHING,		0, 0,	(u_char *) 0 },
2472 	{ NOTHING,		0, 0,	(u_char *) 0 },
2473 	{ NOTHING,		0, 0,	(u_char *) 0 },
2474 	{ NOTHING,		0, 0,	(u_char *) 0 },
2475 
2476 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 240 */
2477 	{ NOTHING,		0, 0,	(u_char *) 0 },
2478 	{ NOTHING,		0, 0,	(u_char *) 0 },
2479 	{ NOTHING,		0, 0,	(u_char *) 0 },
2480 	{ NOTHING,		0, 0,	(u_char *) 0 },
2481 	{ NOTHING,		0, 0,	(u_char *) 0 },
2482 	{ NOTHING,		0, 0,	(u_char *) 0 },
2483 	{ NOTHING,		0, 0,	(u_char *) 0 },
2484 
2485 	{ NOTHING,		0, 0,	(u_char *) 0 },	/* 248 */
2486 	{ NOTHING,		0, 0,	(u_char *) 0 },
2487 	{ NOTHING,		0, 0,	(u_char *) 0 },
2488 	{ NOTHING,		0, 0,	(u_char *) 0 },
2489 	{ NOTHING,		0, 0,	(u_char *) 0 },
2490 	{ NOTHING,		0, 0,	(u_char *) 0 },
2491 	{ NOTHING,		0, 0,	(u_char *) 0 },
2492 	{ NOTHING,		0, 0,	(u_char *) 0 }
2493 };
2494 
2495 KeyMap	FAR meta6_keys[] =
2496 #include "emetakey.inc"
2497 
2498 KeyMap	FAR meta7_keys[] =
2499 #include "emetakey.inc"
2500 
2501 KeyMap	FAR meta8_keys[] =
2502 #include "emetakey.inc"
2503 
2504 /*
2505  * write_binding: This will write to the given FILE pointer the information
2506  * about the specified key binding.  The format it writes it out is such that
2507  * it can be parsed back in later using LOAD or with the -l switch
2508  */
2509 static	void
write_binding(c,meta,fp,do_all)2510 write_binding(c, meta, fp, do_all)
2511 	u_int	c,
2512 		meta;
2513 	FILE	*fp;
2514 	int	do_all;
2515 {
2516 	KeyMap	*map;
2517 	char	*meta_str;
2518 
2519 	if (c == 32)
2520 		return;
2521 	switch (meta)
2522 	{
2523 	case 1:
2524 		map = meta1_keys;
2525 		meta_str = "META1-";
2526 		break;
2527 	case 2:
2528 		map = meta2_keys;
2529 		meta_str = "META2-";
2530 		break;
2531 	case 3:
2532 		map = meta3_keys;
2533 		meta_str = "META3-";
2534 		break;
2535 	case 4:
2536 		map = meta4_keys;
2537 		meta_str = "META4-";
2538 		break;
2539 	case 5:
2540 		map = meta5_keys;
2541 		meta_str = "META5-";
2542 		break;
2543 	case 6:
2544 		map = meta6_keys;
2545 		meta_str = "META6-";
2546 		break;
2547 	case 7:
2548 		map = meta7_keys;
2549 		meta_str = "META7-";
2550 		break;
2551 	case 8:
2552 		map = meta8_keys;
2553 		meta_str = "META8-";
2554 		break;
2555 	default:
2556 		map = keys;
2557 		meta_str = CP(empty_string);
2558 		break;
2559 	}
2560 	if (map[c].changed)
2561 	{
2562 		fprintf(fp, "BIND %s%s %s", meta_str, display_key(c),
2563 			key_names[map[c].index].name);
2564 		if (map[c].stuff && (*(map[c].stuff)))
2565 		{
2566 			fprintf(fp, " %s\n", map[c].stuff);
2567 		}
2568 		else
2569 			fprintf(fp, "\n");
2570 	}
2571 }
2572 
2573 /*
2574  * save_bindings: this writes all the keys bindings for IRCII to the given
2575  * FILE pointer using the write_binding function
2576  */
2577 void
save_bindings(fp,do_all)2578 save_bindings(fp, do_all)
2579 	FILE	*fp;
2580 	int	do_all;
2581 {
2582 	int	i;
2583 	int	charsize = charset_size();
2584 
2585 	for (i = 0; i < charsize; i++)
2586 		write_binding((u_char) i, 0, fp, do_all);
2587 	for (i = 0; i < charsize; i++)
2588 		write_binding((u_char) i, 1, fp, do_all);
2589 	for (i = 0; i < charsize; i++)
2590 		write_binding((u_char) i, 2, fp, do_all);
2591 	for (i = 0; i < charsize; i++)
2592 		write_binding((u_char) i, 3, fp, do_all);
2593 	for (i = 0; i < charsize; i++)
2594 		write_binding((u_char) i, 4, fp, do_all);
2595 	for (i = 0; i < charsize; i++)
2596 		write_binding((u_char) i, 5, fp, do_all);
2597 	for (i = 0; i < charsize; i++)
2598 		write_binding((u_char) i, 6, fp, do_all);
2599 	for (i = 0; i < charsize; i++)
2600 		write_binding((u_char) i, 7, fp, do_all);
2601 	for (i = 0; i < charsize; i++)
2602 		write_binding((u_char) i, 8, fp, do_all);
2603 }
2604 
2605 
2606 /*
2607  * ninja's join invite key
2608  */
2609 void
join_invite(unused0,unused1)2610 join_invite(unused0, unused1)
2611     u_int unused0;
2612     u_char *unused1;
2613 {
2614    u_char *ptr;
2615 
2616    if (invite_channel)
2617      {
2618 	if ((ptr = do_channel(invite_channel, unused0)))
2619 	  send_to_server("JOIN %s %s", invite_channel, get_ckey(invite_channel));
2620 	else
2621 	  say("You are already on %s ?", invite_channel);
2622 	dma_Free(&invite_channel);
2623      }
2624    else
2625      say("You have not been invited to a channel!");
2626 }
2627