1 # 2 # CDDL HEADER START 3 # 4 # The contents of this file are subject to the terms of the 5 # Common Development and Distribution License, Version 1.0 only 6 # (the "License"). You may not use this file except in compliance 7 # with the License. 8 # 9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 # or http://www.opensolaris.org/os/licensing. 11 # See the License for the specific language governing permissions 12 # and limitations under the License. 13 # 14 # When distributing Covered Code, include this CDDL HEADER in each 15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 # If applicable, add the following below this CDDL HEADER, with the 17 # fields enclosed by brackets "[]" replaced with your own identifying 18 # information: Portions Copyright [yyyy] [name of copyright owner] 19 # 20 # CDDL HEADER END 21 # 22 # 23 # Copyright 1997 Sun Microsystems, Inc. All rights reserved. 24 # Use is subject to license terms. 25 # 26 27 # 28 # Copyright (c) 1988 AT&T 29 # All Rights Reserved 30 # 31 32 # 33 # University Copyright- Copyright (c) 1982, 1986, 1988 34 # The Regents of the University of California 35 # All Rights Reserved 36 # 37 # University Acknowledgment- Portions of this document are derived from 38 # software developed by the University of California, Berkeley, and its 39 # contributors. 40 # 41 42 #ident "%Z%%M% %I% %E% SMI" 43 44 rm -f keyname.c 45 /usr/bin/echo "#include \"curses_inc.h\"\n" > keyname.c 46 /usr/bin/echo "static char *keystrings[] =\n\t\t{" >> keyname.c 47 { 48 grep -v 'KEY_F(' keycaps | awk '{ print $5, $4 }' | sed -e 's/,//g' -e 's/KEY_//' 49 # These three aren't in keycaps 50 echo '0401 BREAK\n0530 SRESET\n0531 RESET' 51 } | sort -n | awk ' 52 { 53 print "\t\t \"" $2 "\", /* " $1 " */" 54 } 55 ' >> keyname.c 56 57 LAST=`tail -1 keyname.c | awk -F'"' '{print $2}'` 58 cat << ! >> keyname.c 59 }; 60 61 char * 62 keyname(int key) 63 { 64 static char buf[16]; 65 66 if (key >= 0400) { 67 int i; 68 69 if ((key == 0400) || (key > KEY_${LAST})) 70 return ("UNKNOWN KEY"); 71 if (key > 0507) 72 i = key - (0401 + ((0507 - 0410) + 1)); 73 else 74 if (key >= 0410) { 75 (void) sprintf(buf, "KEY_F(%d)", key - 0410); 76 goto ret_buf; 77 } else 78 i = key - 0401; 79 (void) sprintf(buf, "KEY_%s", keystrings[i]); 80 goto ret_buf; 81 } 82 83 if (key >= 0200) { 84 #ifdef SYSV 85 if (SHELLTTYS.c_cflag & CS8) 86 #else /* SYSV */ 87 if (SHELLTTY.c_cflag & CS8) 88 #endif /* SYSV */ 89 (void) sprintf(buf, "%c", key); 90 else 91 (void) sprintf(buf, "M-%s", unctrl(key & 0177)); 92 goto ret_buf; 93 } 94 95 if (key < 0) { 96 (void) sprintf(buf, "%d", key); 97 ret_buf: 98 return (buf); 99 } 100 101 return (unctrl(key)); 102 } 103 ! 104 exit 0