qemu-e2k/ui
Markus Armbruster f7b9e299a4 ui/keymaps: Fix handling of erroneous include files
While errors in the keyboard layout named with -k are fatal, errors in
included files are reported, but otherwise ignored:

    $ cat worst
    include bad
    include worse
    $ ls -l bad worse
    ls: cannot access 'bad': No such file or directory
    ls: cannot access 'worse': No such file or directory
    $ qemu-system-x86_64 -nodefaults -S -monitor stdio -display vnc=:0 -k bad
    QEMU 3.0.50 monitor - type 'help' for more information
    (qemu) Could not read keymap file: 'bad'
    $ qemu-system-x86_64 -nodefaults -S -monitor stdio -display vnc=:0 -k worst
    QEMU 3.0.50 monitor - type 'help' for more information
    (qemu) Could not read keymap file: 'bad'
    Could not read keymap file: 'worse'

Fix that.

Note that parse_keyboard_layout() allocates the keymap, except when
it's parsing an include file.  To keep error handling simple, move the
memory management to its caller init_keyboard_layout().

Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20181017082702.5581-26-armbru@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
2018-10-19 14:51:34 +02:00
..
keycodemapdb@6b3d716e2b ui: update keycodemapdb to get py3 fixes 2018-02-05 19:53:55 -02:00
shader opengl: add flipping vertex shader 2017-10-17 10:25:42 +02:00
cocoa.m ui/cocoa.m: prevent stuck command key when going into full screen mode 2018-07-24 11:41:48 +01:00
console-gl.c ui: use QEMU_IS_ALIGNED macro 2017-11-10 14:27:29 +01:00
console.c ui: use enum to string helpers 2018-08-24 08:40:10 +02:00
curses_keys.h
curses.c curses: switch over to new display registry 2018-03-05 08:44:11 +01:00
cursor_hidden.xpm
cursor_left_ptr.xpm
cursor.c qxl: support mono cursors with inverted colors 2018-09-27 08:10:07 +02:00
egl-context.c Add gles support to egl-helpers, wire up in egl-headless and gtk. 2018-06-26 13:48:49 +02:00
egl-headless.c Add gles support to egl-helpers, wire up in egl-headless and gtk. 2018-06-26 13:48:49 +02:00
egl-helpers.c util: promote qemu_egl_rendernode_open() to libqemuutil 2018-08-27 10:51:44 +02:00
gtk-egl.c ui: remove support for GTK2 in favour of GTK3 2018-10-12 15:22:18 +02:00
gtk-gl-area.c ui: opengl updates for dma-buf support. 2017-10-19 12:09:53 +01:00
gtk.c ui: drop gtk2 support. 2018-10-12 17:24:23 +01:00
input-keymap.c ui: darwin: gtk: Add missing input keymap 2018-06-14 09:52:23 +02:00
input-legacy.c ui: use local path for local headers 2018-06-01 19:20:38 +03:00
input-linux.c
input.c ui: fix virtual timers 2018-10-02 19:08:59 +02:00
keymaps.c ui/keymaps: Fix handling of erroneous include files 2018-10-19 14:51:34 +02:00
keymaps.h keymap: consider modifier state when picking a mapping 2018-02-22 10:35:32 +01:00
Makefile.objs ui: add x_keymap.o to modules 2018-05-18 09:13:37 +02:00
qemu-pixman.c ui/pixman: add qemu_drm_format_to_pixman() 2018-03-13 11:17:28 -06:00
qemu-x509.h
sdl2-2d.c sdl2: Support all virtio-gpu formats 2018-10-12 14:46:24 +02:00
sdl2-gl.c sdl2: redraw correctly when scanout_mode enabled. 2018-08-24 08:40:10 +02:00
sdl2-input.c sdl2: drop dead code 2018-04-09 10:40:47 +02:00
sdl2.c sdl2: show console #0 unconditionally 2018-10-01 11:29:03 +02:00
sdl_keysym.h
sdl_zoom_template.h maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
sdl_zoom.c
sdl_zoom.h
sdl.c sdl: switch over to new display registry 2018-03-05 08:44:11 +01:00
shader.c opengl: add flipping vertex shader 2017-10-17 10:25:42 +02:00
spice-core.c qapi: Drop qapi_event_send_FOO()'s Error ** argument 2018-08-28 18:21:38 +02:00
spice-display.c dmabuf: add y0_top, pass it to spice 2018-08-24 08:40:11 +02:00
spice-input.c ui: use local path for local headers 2018-06-01 19:20:38 +03:00
trace-events console: minimal hotplug suport 2018-03-13 11:17:29 -06:00
vgafont.h
vnc_keysym.h
vnc-auth-sasl.c ui: extend VNC trottling tracing to SASL codepaths 2018-02-16 12:33:02 +01:00
vnc-auth-sasl.h ui: mix misleading comments & return types of VNC I/O helper methods 2018-01-12 13:48:54 +01:00
vnc-auth-vencrypt.c qio: non-default context for TLS handshake 2018-03-06 10:19:07 +00:00
vnc-auth-vencrypt.h
vnc-enc-hextile-template.h
vnc-enc-hextile.c
vnc-enc-tight.c ui/vnc: Remove useless parenthesis around DIV_ROUND_UP macro 2018-08-24 08:40:11 +02:00
vnc-enc-tight.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
vnc-enc-zlib.c
vnc-enc-zrle.c rename included C files to foo.inc.c, remove osdep.h 2018-05-11 14:33:40 +02:00
vnc-enc-zrle.h
vnc-enc-zrle.inc.c rename included C files to foo.inc.c, remove osdep.h 2018-05-11 14:33:40 +02:00
vnc-enc-zywrle-template.c
vnc-enc-zywrle.h
vnc-jobs.c vnc: fix memleak of the "vnc-worker-output" name 2018-08-24 08:40:10 +02:00
vnc-jobs.h
vnc-palette.c
vnc-palette.h Include qapi/qmp/qlist.h exactly where needed 2018-02-09 13:52:15 +01:00
vnc-stubs.c vnc: add qapi/error.h include to stubs 2018-02-16 12:23:21 +01:00
vnc-ws.c qio: non-default context for TLS handshake 2018-03-06 10:19:07 +00:00
vnc-ws.h
vnc.c vnc: call sasl_server_init() only when required 2018-10-01 11:29:03 +02:00
vnc.h qapi: add conditions to VNC type/commands/events on the schema 2018-07-03 18:38:54 +02:00
x_keymap.c ui: fix keymap detection under Xwayland 2018-04-10 11:21:54 +02:00
x_keymap.h ui: convert GTK and SDL1 frontends to keycodemapdb 2018-01-25 15:02:00 +01:00