Annotation of 43BSDTahoe/new/X/xterm/input.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  *     $Source: /u1/X/xterm/RCS/input.c,v $
                      3:  *     $Header: input.c,v 10.100 86/12/01 14:44:04 jg Rel $
                      4:  */
                      5: 
                      6: #ifndef lint
                      7: static char *rcsid_input_c = "$Header: input.c,v 10.100 86/12/01 14:44:04 jg Rel $";
                      8: #endif lint
                      9: 
                     10: #include <X/mit-copyright.h>
                     11: 
                     12: /* Copyright    Massachusetts Institute of Technology    1984, 1985    */
                     13: 
                     14: /* input.c */
                     15: 
                     16: #ifndef lint
                     17: static char sccs_id[] = "@(#)input.c\tX10/6.6B\t12/26/86";
                     18: #endif lint
                     19: 
                     20: #include <X/Xlib.h>
                     21: #include <X/Xkeyboard.h>
                     22: #include "scrollbar.h"
                     23: #include "ptyx.h"
                     24: #include <stdio.h>
                     25: 
                     26: static char *kypd_num = "0x.\r123456,789-";
                     27: static char *kypd_apl = "pxnMqrstuvlwxym";
                     28: static char *cur = "DCBA";
                     29: 
                     30: Input (keyboard, screen, event)
                     31: register Keyboard      *keyboard;
                     32: register Screen                *screen;
                     33: register XKeyPressedEvent *event;
                     34: {
                     35:        register int keycode = event->detail;
                     36:        register char *string;
                     37:        register int col, key = FALSE;
                     38:        int     pty     = screen->respond;
                     39:        int     nbytes;
                     40:        ANSI    reply;
                     41: 
                     42:        string = XLookupMapping (event, &nbytes);
                     43: 
                     44:        if (nbytes > 0) {
                     45:                if(screen->TekGIN) {
                     46:                        TekEnqMouse(*string++);
                     47:                        TekGINoff();
                     48:                        nbytes--;
                     49:                }
                     50:                while (nbytes-- > 0)
                     51:                        unparseputc(*string++, pty);
                     52:                key = TRUE;
                     53:        } else {
                     54:            keycode &= ValueMask; /* no longer need shift bits for anything */
                     55:            reply.a_pintro = 0;
                     56:            reply.a_final = 0;
                     57:            reply.a_nparam = 0;
                     58:            reply.a_inters = 0;
                     59:            if (IsKeypadKey(keycode)) {
                     60:                if (keyboard->flags & KYPD_APL) {
                     61:                        reply.a_type   = SS3;
                     62:                        unparseseq(&reply, pty);
                     63:                        unparseputc(kypd_apl[keycode-KC_KEYPAD_0], pty);
                     64:                } else
                     65:                        unparseputc(kypd_num[keycode-KC_KEYPAD_0], pty);
                     66:                key = TRUE;
                     67:            } else if (IsCursorKey(keycode)) {
                     68:                        if (keyboard->flags & CURSOR_APL) {
                     69:                        reply.a_type = SS3;
                     70:                        unparseseq(&reply, pty);
                     71:                        unparseputc(cur[keycode-KC_CURSOR_LEFT], pty);
                     72:                } else {
                     73:                        reply.a_type = CSI;
                     74:                        reply.a_final = cur[keycode-KC_CURSOR_LEFT];
                     75:                        unparseseq(&reply, pty);
                     76:                }
                     77:                key = TRUE;
                     78:            } else if (IsPFKey(keycode)) {
                     79:                reply.a_type = SS3;
                     80:                unparseseq(&reply, pty);
                     81:                unparseputc((char)(keycode-KC_PF1+'P'), pty);
                     82:                key = TRUE;
                     83:            } else if (IsFunctionKey(keycode)) {
                     84:                reply.a_type = CSI;
                     85:                reply.a_nparam = 1;
                     86:                reply.a_param[0] = funcvalue(keycode);
                     87:                reply.a_final = '~';
                     88:                if (reply.a_param[0] > 0)
                     89:                        unparseseq(&reply, pty);
                     90:                key = TRUE;
                     91:            }
                     92:        }
                     93:        if(key && !screen->TekEmu) {
                     94:                if(screen->scrollkey && screen->topline != 0)
                     95:                        ScrollToBottom(screen->sb);
                     96:                if(screen->marginbell) {
                     97:                        col = screen->max_col - screen->nmarginbell;
                     98:                        if(screen->bellarmed >= 0) {
                     99:                                if(screen->bellarmed == screen->cur_row) {
                    100:                                        if(screen->cur_col >= col) {
                    101:                                                if(screen->cur_col == col)
                    102:                                                        Bell();
                    103:                                                screen->bellarmed = -1;
                    104:                                        }
                    105:                                } else
                    106:                                        screen->bellarmed = screen->cur_col <
                    107:                                         col ? screen->cur_row : -1;
                    108:                        } else if(screen->cur_col < col)
                    109:                                screen->bellarmed = screen->cur_row;
                    110:                }
                    111:        }
                    112: #ifdef ENABLE_PRINT
                    113:        if (keycode == KC_F2) TekPrint();
                    114: #endif
                    115:        return;
                    116: }
                    117: 
                    118: funcvalue(keycode)
                    119: {
                    120:        switch (keycode) {
                    121:                case KC_F1:     return(11);
                    122:                case KC_F2:     return(12);
                    123:                case KC_F3:     return(13);
                    124:                case KC_F4:     return(14);
                    125:                case KC_F5:     return(15);
                    126:                case KC_F6:     return(17);
                    127:                case KC_F7:     return(18);
                    128:                case KC_F8:     return(19);
                    129:                case KC_F9:     return(20);
                    130:                case KC_F10:    return(21);
                    131:                case KC_F11:    return(23);
                    132:                case KC_F12:    return(24);
                    133:                case KC_F13:    return(25);
                    134:                case KC_F14:    return(26);
                    135:                case KC_F15:    return(28);
                    136:                case KC_F16:    return(29);
                    137:                case KC_F17:    return(31);
                    138:                case KC_F18:    return(32);
                    139:                case KC_F19:    return(33);
                    140:                case KC_F20:    return(34);
                    141:                case KC_E1 :    return(1);
                    142:                case KC_E2:     return(2);
                    143:                case KC_E3:     return(3);
                    144:                case KC_E4:     return(4);
                    145:                case KC_E5:     return(5);
                    146:                case KC_E6:     return(6);
                    147:                default:        return(-1);
                    148:        }
                    149: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.