summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrunge <runge>2007-08-19 20:01:10 +0000
committerrunge <runge>2007-08-19 20:01:10 +0000
commit84d6dd0e92cf26b44ffea7dd8b52f54e2b8a304c (patch)
tree027c745aafa476c71a4719fb1ef248d539857d0b
parent222ecab5cae7add1186bbfe3bf50608b0d90b0c1 (diff)
downloadlibtdevnc-84d6dd0e.tar.gz
libtdevnc-84d6dd0e.zip
malloc score_hint and make it shorts to save space.
-rw-r--r--x11vnc/README4
-rw-r--r--x11vnc/help.c2
-rw-r--r--x11vnc/keyboard.c22
-rw-r--r--x11vnc/x11vnc.12
4 files changed, 19 insertions, 11 deletions
diff --git a/x11vnc/README b/x11vnc/README
index 6928025..81af737 100644
--- a/x11vnc/README
+++ b/x11vnc/README
@@ -1,5 +1,5 @@
-x11vnc README file Date: Sun Aug 19 14:30:12 EDT 2007
+x11vnc README file Date: Sun Aug 19 15:46:48 EDT 2007
The following information is taken from these URLs:
@@ -13101,7 +13101,7 @@ t
They apply only when there is ambiguity as to which
key to choose (i.e the mapping is not one-to-one).
NOKEYHINTS=1: for up ascii keystrokes do not use score
- hints saved when the keep was press down. NOANYDOWN=1:
+ hints saved when the key was pressed down. NOANYDOWN=1:
for up keystrokes do not resort to searching through
keys that are currently pressed down. KEYSDOWN=N:
remember the last N keys press down for tie-breaking
diff --git a/x11vnc/help.c b/x11vnc/help.c
index 03a3e1a..b22b19a 100644
--- a/x11vnc/help.c
+++ b/x11vnc/help.c
@@ -1943,7 +1943,7 @@ void print_help(int mode) {
" They apply only when there is ambiguity as to which\n"
" key to choose (i.e the mapping is not one-to-one).\n"
" NOKEYHINTS=1: for up ascii keystrokes do not use score\n"
-" hints saved when the keep was press down. NOANYDOWN=1:\n"
+" hints saved when the key was pressed down. NOANYDOWN=1:\n"
" for up keystrokes do not resort to searching through\n"
" keys that are currently pressed down. KEYSDOWN=N:\n"
" remember the last N keys press down for tie-breaking\n"
diff --git a/x11vnc/keyboard.c b/x11vnc/keyboard.c
index 15e7c70..e739501 100644
--- a/x11vnc/keyboard.c
+++ b/x11vnc/keyboard.c
@@ -1466,7 +1466,7 @@ xkbmodifiers[] For the KeySym bound to this (keycode,group,level) store
}
}
-static int score_hint[0x100][0x100];
+static short **score_hint = NULL;
/*
* Called on user keyboard input. Try to solve the reverse mapping
* problem: KeySym (from VNC client) => KeyCode(s) to press to generate
@@ -1516,9 +1516,16 @@ static void xkb_tweak_keyboard(rfbBool down, rfbKeySym keysym,
} else {
klast = 3;
}
- for (i=0; i<0x100; i++) {
- for (j=0; j<0x100; j++) {
- score_hint[i][j] = -1;
+ if (khints && score_hint == NULL) {
+ score_hint = (short **) malloc(0x100 * sizeof(short *));
+ for (i=0; i<0x100; i++) {
+ score_hint[i] = (short *) malloc(0x100 * sizeof(short));
+ }
+
+ for (i=0; i<0x100; i++) {
+ for (j=0; j<0x100; j++) {
+ score_hint[i][j] = -1;
+ }
}
}
}
@@ -1714,7 +1721,7 @@ static void xkb_tweak_keyboard(rfbBool down, rfbKeySym keysym,
kc_f[l], myscore);
}
if (khints && keysym < 0x100 && kc_f[l] < 0x100) {
- score_hint[(int) keysym][kc_f[l]] = score[l];
+ score_hint[(int) keysym][kc_f[l]] = (short) score[l];
}
}
for (l=0; l < found; l++) {
@@ -1738,7 +1745,8 @@ static void xkb_tweak_keyboard(rfbBool down, rfbKeySym keysym,
if (khints && keysym < 0x100) {
/* low keysyms, ascii, only */
int ks = (int) keysym;
- int ok = 1, sbest = -1, lbest, l;
+ int ok = 1, lbest, l;
+ short sbest = -1;
for (l=0; l < found; l++) {
if (kc_f[l] < 0x100) {
int key = (int) kc_f[l];
@@ -1812,7 +1820,6 @@ static void xkb_tweak_keyboard(rfbBool down, rfbKeySym keysym,
* physical display (but is updated
* periodically to clean out stale info).
*/
- /* we could probably break ties based on lowest XKeycodeToKeysym index */
for (l=0; l < found; l++) {
int key = (int) kc_f[l];
int j, jmatch = -1;
@@ -1820,6 +1827,7 @@ static void xkb_tweak_keyboard(rfbBool down, rfbKeySym keysym,
if (keycode_state[key]) {
continue;
}
+ /* break ties based on lowest XKeycodeToKeysym index */
for (j=0; j<8; j++) {
KeySym ks = XKeycodeToKeysym(dpy, kc_f[l], j);
if (ks != NoSymbol && ks == keysym) {
diff --git a/x11vnc/x11vnc.1 b/x11vnc/x11vnc.1
index f3af7f2..e935ad8 100644
--- a/x11vnc/x11vnc.1
+++ b/x11vnc/x11vnc.1
@@ -2245,7 +2245,7 @@ When \fB-xkb\fR mode is active you can set these env. vars.
They apply only when there is ambiguity as to which
key to choose (i.e the mapping is not one-to-one).
NOKEYHINTS=1: for up ascii keystrokes do not use score
-hints saved when the keep was press down. NOANYDOWN=1:
+hints saved when the key was pressed down. NOANYDOWN=1:
for up keystrokes do not resort to searching through
keys that are currently pressed down. KEYSDOWN=N:
remember the last N keys press down for tie-breaking