aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw/xfree86/common/xf86KbdMach.c
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/programs/Xserver/hw/xfree86/common/xf86KbdMach.c')
-rw-r--r--nx-X11/programs/Xserver/hw/xfree86/common/xf86KbdMach.c317
1 files changed, 0 insertions, 317 deletions
diff --git a/nx-X11/programs/Xserver/hw/xfree86/common/xf86KbdMach.c b/nx-X11/programs/Xserver/hw/xfree86/common/xf86KbdMach.c
deleted file mode 100644
index 89c23c24a..000000000
--- a/nx-X11/programs/Xserver/hw/xfree86/common/xf86KbdMach.c
+++ /dev/null
@@ -1,317 +0,0 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86KbdMach.c,v 3.7.4.2 1998/06/04 17:35:20 dawes Exp $ */
-/*
- *****************************************************************************
- * HISTORY
- * Log: xf86KbdMach.c,v
- * Revision 2.1.2.1 92/06/25 10:32:08 moore
- * Incorporate the Elliot Dresselhaus's, Ernest Hua's and local changes
- * to run Thomas Roell's I386 color X11R5. Original code only worked
- * with SCO Unix. New code works with 2.5 and 3.0 Mach
- * [92/06/24 rvb]
- *
- * EndLog
- *
- *****************************************************************************
- */
-/*
- * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Thomas Roell not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission. Thomas Roell makes no representations
- * about the suitability of this software for any purpose. It is provided
- * "as is" without express or implied warranty.
- *
- * THOMAS ROELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THOMAS ROELL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- */
-/* $XConsortium: xf86KbdMach.c /main/9 1996/02/21 17:38:43 kaleb $ */
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include "input.h"
-#include "scrnintstr.h"
-
-#include "compiler.h"
-
-#include "xf86.h"
-#include "xf86Priv.h"
-#include "xf86_OSlib.h"
-#include "atKeynames.h"
-#include "xf86Config.h"
-
-#include "xf86Keymap.h"
-
-static KeySym ascii_to_x[256] = {
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- XK_BackSpace, XK_Tab, XK_Linefeed, NoSymbol,
- NoSymbol, XK_Return, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, XK_Escape,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- XK_space, XK_exclam, XK_quotedbl, XK_numbersign,
- XK_dollar, XK_percent, XK_ampersand, XK_apostrophe,
- XK_parenleft, XK_parenright, XK_asterisk, XK_plus,
- XK_comma, XK_minus, XK_period, XK_slash,
- XK_0, XK_1, XK_2, XK_3,
- XK_4, XK_5, XK_6, XK_7,
- XK_8, XK_9, XK_colon, XK_semicolon,
- XK_less, XK_equal, XK_greater, XK_question,
- XK_at, XK_A, XK_B, XK_C,
- XK_D, XK_E, XK_F, XK_G,
- XK_H, XK_I, XK_J, XK_K,
- XK_L, XK_M, XK_N, XK_O,
- XK_P, XK_Q, XK_R, XK_S,
- XK_T, XK_U, XK_V, XK_W,
- XK_X, XK_Y, XK_Z, XK_bracketleft,
- XK_backslash, XK_bracketright,XK_asciicircum, XK_underscore,
- XK_grave, XK_a, XK_b, XK_c,
- XK_d, XK_e, XK_f, XK_g,
- XK_h, XK_i, XK_j, XK_k,
- XK_l, XK_m, XK_n, XK_o,
- XK_p, XK_q, XK_r, XK_s,
- XK_t, XK_u, XK_v, XK_w,
- XK_x, XK_y, XK_z, XK_braceleft,
- XK_bar, XK_braceright, XK_asciitilde, XK_Delete,
- XK_Ccedilla, XK_udiaeresis, XK_eacute, XK_acircumflex,
- XK_adiaeresis, XK_agrave, XK_aring, XK_ccedilla,
- XK_ecircumflex, XK_ediaeresis, XK_egrave, XK_idiaeresis,
- XK_icircumflex, XK_igrave, XK_Adiaeresis, XK_Aring,
- XK_Eacute, XK_ae, XK_AE, XK_ocircumflex,
- XK_odiaeresis, XK_ograve, XK_ucircumflex, XK_ugrave,
- XK_ydiaeresis, XK_Odiaeresis, XK_Udiaeresis, XK_cent,
- XK_sterling, XK_yen, XK_paragraph, XK_section,
- XK_aacute, XK_iacute, XK_oacute, XK_uacute,
- XK_ntilde, XK_Ntilde, XK_ordfeminine, XK_masculine,
- XK_questiondown,XK_hyphen, XK_notsign, XK_onehalf,
- XK_onequarter, XK_exclamdown, XK_guillemotleft,XK_guillemotright,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- NoSymbol, NoSymbol, NoSymbol, NoSymbol,
- XK_Greek_alpha, XK_ssharp, XK_Greek_GAMMA, XK_Greek_pi,
- XK_Greek_SIGMA, XK_Greek_sigma, XK_mu, XK_Greek_tau,
- XK_Greek_PHI, XK_Greek_THETA, XK_Greek_OMEGA, XK_Greek_delta,
- XK_infinity, XK_Ooblique, XK_Greek_epsilon, XK_intersection,
- XK_identical, XK_plusminus, XK_greaterthanequal, XK_lessthanequal,
- XK_topintegral, XK_botintegral, XK_division, XK_similarequal,
- XK_degree, NoSymbol, NoSymbol, XK_radical,
- XK_Greek_eta, XK_twosuperior, XK_periodcentered, NoSymbol,
- };
-
-/*
- * LegalModifier --
- * determine whether a key is a legal modifier key, i.e send a
- * press/release sequence.
- */
-
-/*ARGSUSED*/
-Bool
-LegalModifier(key, pDev)
- unsigned int key;
- DevicePtr pDev;
-{
- return (TRUE);
-}
-
-
-
-/*
- * xf86KbdGetMapping --
- * Get the national keyboard mapping. The keyboard type is set, a new map
- * and the modifiermap is computed.
- */
-
-void
-xf86KbdGetMapping (pKeySyms, pModMap)
- KeySymsPtr pKeySyms;
- CARD8 *pModMap;
-{
- KeySym *k;
- struct kbentry kbe;
- char type;
- int i, j;
-
- for (i = 0; i < NUMKEYS; i++)
- {
- static int states[] = { NORM_STATE, SHIFT_STATE, ALT_STATE, SHIFT_ALT };
- int j;
-
- k = &map[i*4];
- kbe.kb_index = i;
-
- for (j = 0; j < 4; j++)
- {
- kbe.kb_state = states[j];
-
- if (ioctl (xf86Info.consoleFd, KDGKBENT, &kbe) != -1)
- continue;
-
- if (kbe.kb_value [0] == K_SCAN)
- {
- int keycode = -1;
- switch (kbe.kb_value [1])
- {
- case K_CTLSC: keycode = XK_Control_L; break;
- case K_LSHSC: keycode = XK_Shift_L; break;
- case K_RSHSC: keycode = XK_Shift_R; break;
- case K_ALTSC: keycode = XK_Alt_L; break;
- case K_CLCKSC: keycode = XK_Caps_Lock; break;
- case K_NLCKSC: keycode = XK_Num_Lock; break;
- default: break;
- }
- if (keycode > 0)
- k[j] = keycode;
- }
- else if (kbe.kb_value[1] != NC)
- {
- /* How to handle multiple characters?
- Ignore them for now. */
- }
- else
- {
- k[j] = ascii_to_x[kbe.kb_value[0]];
- }
- }
- }
-
- /*
- * Apply the special key mapping specified in XF86Config
- */
- for (k = map, i = MIN_KEYCODE;
- i < (NUM_KEYCODES + MIN_KEYCODE);
- i++, k += 4) {
- switch (k[0]) {
- case XK_Alt_L:
- j = K_INDEX_LEFTALT;
- break;
- case XK_Alt_R:
- j = K_INDEX_RIGHTALT;
- break;
- case XK_Scroll_Lock:
- j = K_INDEX_SCROLLLOCK;
- break;
- case XK_Control_R:
- j = K_INDEX_RIGHTCTL;
- break;
- default:
- j = -1;
- }
- if (j >= 0)
- switch (xf86Info.specialKeyMap[j]) {
- case KM_META:
- if (k[0] == XK_Alt_R)
- k[1] = XK_Meta_R;
- else {
- k[0] = XK_Alt_L;
- k[1] = XK_Meta_L;
- }
- break;
- case KM_COMPOSE:
- k[0] = XK_Multi_key;
- break;
- case KM_MODESHIFT:
- k[0] = XK_Mode_switch;
- k[1] = NoSymbol;
- break;
- case KM_MODELOCK:
- k[0] = XK_Mode_switch;
- k[1] = XF86XK_ModeLock;
- break;
- case KM_SCROLLLOCK:
- k[0] = XK_Scroll_Lock;
- break;
- case KM_CONTROL:
- k[0] = XK_Control_R;
- break;
- }
- }
-
- /*
- * compute the modifier map
- */
- for (i = 0; i < MAP_LENGTH; i++)
- pModMap[i] = NoSymbol; /* make sure it is restored */
-
- for (k = map, i = MIN_KEYCODE;
- i < (NUM_KEYCODES + MIN_KEYCODE);
- i++, k += 4)
-
- switch(*k) {
-
- case XK_Shift_L:
- case XK_Shift_R:
- pModMap[i] = ShiftMask;
- break;
-
- case XK_Control_L:
- case XK_Control_R:
- pModMap[i] = ControlMask;
- break;
-
- case XK_Caps_Lock:
- pModMap[i] = LockMask;
- break;
-
- case XK_Alt_L:
- case XK_Alt_R:
- pModMap[i] = AltMask;
- break;
-
- case XK_Num_Lock:
- if (!xf86Info.serverNumLock) pModMap[i] = NumLockMask;
- break;
-
- case XK_Scroll_Lock:
- pModMap[i] = ScrollLockMask;
- break;
-
- /* kana support */
- case XK_Kana_Lock:
- case XK_Kana_Shift:
- pModMap[i] = KanaMask;
- break;
-
- /* alternate toggle for multinational support */
- case XK_Mode_switch:
- pModMap[i] = AltLangMask;
- break;
-
- }
-
- xf86Info.kbdType =
- ioctl(xf86Info.kbdFd, KDGKBDTYPE, &type) != -1 ? type : KB_VANILLAKB;
-
- pKeySyms->map = map;
- pKeySyms->mapWidth = GLYPHS_PER_KEY;
- pKeySyms->minKeyCode = MIN_KEYCODE;
- if (xf86Info.serverNumLock)
- pKeySyms->maxKeyCode = MAX_KEYCODE;
- else
- pKeySyms->maxKeyCode = MAX_STD_KEYCODE;
-
-}