X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=tack%2Fscan.c;h=dbe684bd5ce1fb6610a78b43d268495b7a8f2268;hp=d9429c96ee5a80f54f61e4b687d66f35adc172c7;hb=55ccd2b959766810cf7db8d1c4462f338ce0afc8;hpb=0eb88fc5281804773e2a0c7a488a4452463535ce diff --git a/tack/scan.c b/tack/scan.c index d9429c96..dbe684bd 100644 --- a/tack/scan.c +++ b/tack/scan.c @@ -15,31 +15,32 @@ ** ** You should have received a copy of the GNU General Public License ** along with TACK; see the file COPYING. If not, write to -** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -** Boston, MA 02111-1307, USA. +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +** Boston, MA 02110-1301, USA */ /* scan mode keyboard support */ #include -MODULE_ID("$Id: scan.c,v 1.2 1999/08/21 23:09:35 tom Exp $") +MODULE_ID("$Id: scan.c,v 1.5 2005/09/17 19:49:16 tom Exp $") -int scan_max; /* length of longest scan code */ +unsigned scan_max; /* length of longest scan code */ char **scan_up, **scan_down, **scan_name; -int *scan_tested, *scan_length, *scan_value; +unsigned *scan_tested, *scan_length; +static unsigned *scan_value; static int shift_state; static char *str; static int debug_char_count; -#define SHIFT_KEY 0x100 +#define SHIFT_KEY 0x100 #define CONTROL_KEY 0x200 -#define META_KEY 0x400 -#define CAPS_LOCK 0x800 +#define META_KEY 0x400 +#define CAPS_LOCK 0x800 static const struct { const char *name; - int type; + unsigned type; } scan_special[] = { {"", SHIFT_KEY}, {"", SHIFT_KEY}, @@ -102,6 +103,7 @@ scan_init(char *fn) char *s, *sl; FILE *fp; int ch, i, j; + unsigned len; char home[512]; if ((str = getenv("HOME"))) @@ -140,9 +142,9 @@ scan_init(char *fn) scan_up = (char **) malloc(sizeof(char *) * MAX_SCAN); scan_down = (char **) malloc(sizeof(char *) * MAX_SCAN); scan_name = (char **) malloc(sizeof(char *) * MAX_SCAN); - scan_tested = (int *) malloc(sizeof(int *) * MAX_SCAN); - scan_length = (int *) malloc(sizeof(int *) * MAX_SCAN); - scan_value = (int *) malloc(sizeof(int *) * MAX_SCAN); + scan_tested = (unsigned *) malloc(sizeof(unsigned *) * MAX_SCAN); + scan_length = (unsigned *) malloc(sizeof(unsigned *) * MAX_SCAN); + scan_value = (unsigned *) malloc(sizeof(unsigned *) * MAX_SCAN); scan_up[0] = scan_down[0] = scan_name[0] = (char *) 0; str = (char *) malloc(4096); /* buffer space */ sl = str + 4000; /* an upper limit */ @@ -165,11 +167,11 @@ scan_init(char *fn) scan_name[i] = str; scan_length[i] = strlen(scan_down[i]); - ch = strlen(scan_up[i]) + scan_length[i]; - if (ch > scan_max) - scan_max = ch; + len = strlen(scan_up[i]) + scan_length[i]; + if (len > scan_max) + scan_max = len; - scan_value[i] = scan_name[i][0]; + scan_value[i] = UChar(scan_name[i][0]); if (scan_name[i][1]) /* multi-character name */ for (j = 0; scan_special[j].name; j++) { if (!strcmp(scan_name[i], scan_special[j].name)) { @@ -202,7 +204,8 @@ int scan_key(void) { /* read a key and translate scan mode to ASCII */ - int i, j, ch; + unsigned i; + int j, ch; char buf[64]; for (i = 1;; i++) {