Package: qemu
Version: 0.9.0+20070816-1
Severity: important
Tags: patch
In DOS:
-Caps lock events are doubled (so, no efect for caps lock)
-Extended keyboard events are doubled: double up, double down
In vnc mode:
-Alt Gr is not well captured
-ntilde does not work
A patch is attached to solve this problems. It also integrate a new
system to add extra keys without modifying the code (again)
Regards.
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.20-1-686 (SMP w/2 CPU cores)
Locale: LANG=es_ES.UTF-8, LC_CTYPE=es_ES.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages qemu depends on:
ii bochsbios 2.3+20070705-2 BIOS for the Bochs emulator
ii libasound2 1.0.14a-2 ALSA library
ii libc6 2.6.1-2 GNU C Library: Shared libraries
ii libncurses5 5.6+20070825-1 Shared libraries for terminal hand
ii libsdl1.2debian 1.2.11-9 Simple DirectMedia Layer
ii openbios-sparc 1.0~alpha2+20070816-1 SPARC Open Firmware
ii openhackware 0.4.1-2 OpenFirmware emulator for PowerPC
ii proll 18-2 JavaStation PROM 2.x compatible re
ii vgabios 0.6a-2 VGA BIOS software for the Bochs an
ii zlib1g 1:1.2.3.3.dfsg-5 compression library - runtime
Versions of packages qemu recommends:
ii debootstrap 1.0.3 Bootstrap a basic Debian system
ii sharutils 1:4.6.3-1 shar, unshar, uuencode, uudecode
pn vde2 <none> (no description available)
-- no debconf information
? backup-082720072326-pre-qemu.tgz
? description-pak
? doc-pak
? qemu_20070827-1_i386.deb
Index: keymaps.c
===================================================================
RCS file: /sources/qemu/qemu/keymaps.c,v
retrieving revision 1.2
diff -u -r1.2 keymaps.c
--- keymaps.c 30 Apr 2006 21:28:35 -0000 1.2
+++ keymaps.c 28 Aug 2007 04:08:17 -0000
@@ -24,7 +24,14 @@
static int get_keysym(const char *name)
{
+ unsigned int keysym;
name2keysym_t *p;
+
+ //User numerical added keysyms
+ if (1==sscanf(name,"0x%x",&keysym))
+ return keysym;
+
+ //Normal ones
for(p = name2keysym; p->name != NULL; p++) {
if (!strcmp(p->name, name))
return p->keysym;
Index: sdl.c
===================================================================
RCS file: /sources/qemu/qemu/sdl.c,v
retrieving revision 1.42
diff -u -r1.42 sdl.c
--- sdl.c 21 Jun 2007 21:08:02 -0000 1.42
+++ sdl.c 28 Aug 2007 04:09:19 -0000
@@ -201,9 +201,9 @@
break;
case 0x45: /* num lock */
case 0x3a: /* caps lock */
- /* SDL does not send the key up event, so we generate it */
- kbd_put_keycode(keycode);
- kbd_put_keycode(keycode | 0x80);
+ if (ev->type == SDL_KEYUP)
+ kbd_put_keycode(keycode | 0x80);
+ else kbd_put_keycode(keycode);
return;
}
Index: vnc_keysym.h
===================================================================
RCS file: /sources/qemu/qemu/vnc_keysym.h,v
retrieving revision 1.2
diff -u -r1.2 vnc_keysym.h
--- vnc_keysym.h 7 Jan 2007 17:12:41 -0000 1.2
+++ vnc_keysym.h 28 Aug 2007 04:10:12 -0000
@@ -215,6 +215,7 @@
{"Shift_R", 0xffe2}, /* XK_Shift_R */
{"Super_L", 0xffeb}, /* XK_Super_L */
{"Super_R", 0xffec}, /* XK_Super_R */
+{"ISO_Level3_Shift", 0xfe03}, /* ISO_Level3
/* special keys */
{"BackSpace", 0xff08}, /* XK_BackSpace */
Index: hw/ps2.c
===================================================================
RCS file: /sources/qemu/qemu/hw/ps2.c,v
retrieving revision 1.6
diff -u -r1.6 ps2.c
--- hw/ps2.c 20 Mar 2007 16:45:27 -0000 1.6
+++ hw/ps2.c 28 Aug 2007 04:12:48 -0000
@@ -146,17 +146,24 @@
PS2State *s = (PS2State *)opaque;
PS2Queue *q;
int val, index;
+ static int flag=0;
q = &s->queue;
if (q->count == 0) {
+ if (!flag){
+ index=q->rptr - 1;
+ flag=1;
+ }
+ else index=q->rptr - 2;
/* NOTE: if no data left, we return the last keyboard one
(needed for EMM386) */
/* XXX: need a timer to do things correctly */
- index = q->rptr - 1;
if (index < 0)
- index = PS2_QUEUE_SIZE - 1;
+ index += PS2_QUEUE_SIZE;
+
val = q->data[index];
} else {
+ flag=0;
val = q->data[q->rptr];
if (++q->rptr == PS2_QUEUE_SIZE)
q->rptr = 0;
Index: keymaps/es
===================================================================
RCS file: /sources/qemu/qemu/keymaps/es,v
retrieving revision 1.1
diff -u -r1.1 es
--- keymaps/es 12 Dec 2004 16:56:30 -0000 1.1
+++ keymaps/es 28 Aug 2007 04:13:57 -0000
@@ -71,6 +71,8 @@
Lstroke 0x26 shift altgr
ntilde 0x27
Ntilde 0x27 shift
+0xfff1 0x27
+0xffd1 0x27 shift
dead_doubleacute 0x27 shift altgr
dead_acute 0x28
dead_diaeresis 0x28 shift
Index: keymaps/modifiers
===================================================================
RCS file: /sources/qemu/qemu/keymaps/modifiers,v
retrieving revision 1.2
diff -u -r1.2 modifiers
--- keymaps/modifiers 1 Mar 2005 21:43:42 -0000 1.2
+++ keymaps/modifiers 28 Aug 2007 04:13:59 -0000
@@ -3,6 +3,7 @@
Alt_R 0xb8
Mode_switch 0xb8
+ISO_Level3_Shift 0xb8
Alt_L 0x38
Control_R 0x9d