On 08/10/2017 10:55 AM, Daniel P. Berrange wrote: > The https://gitlab.com/keycodemap/keycodemapdb/ repo contains a > data file mapping between all the different scancode/keycode/keysym > sets that are known, and a tool to auto-generate lookup tables for > different combinations. > > It is used by GTK-VNC, SPICE-GTK and libvirt for mapping keys. > Using it in QEMU will let us replace many hand written lookup > tables with auto-generated tables from a master data source, > reducing bugs. Adding new QKeyCodes will now only require the > master table to be updated, all ~20 other tables will be > automatically updated to follow. > > Signed-off-by: Daniel P. Berrange > --- > + > +ui/input-keymap-%.c: $(KEYCODEMAP_GEN) $(KEYCODEMAP_CSV) ui/Makefile.objs > + $(call quiet-command,\ > + $(PYTHON) $(KEYCODEMAP_GEN) \ > + --lang glib2 \ > + --varname qemu_input_map_$$(echo $@ | sed -e "s,^ui/input-keymap-,," -e "s,\.c$$,,") \ > + code-map $(KEYCODEMAP_CSV) \ > + $$(echo $@ | sed -E -e "s,^ui/input-keymap-([a-zA-Z0-9]+)2([a-zA-Z0-9]+)\.c$$,\1,") \ > + $$(echo $@ | sed -E -e "s,^ui/input-keymap-([a-zA-Z0-9]+)2([a-zA-Z0-9]+)\.c$$,\2,") \ Can this text transformation be done using intrinsic make functions, instead of requiring the shell to spawn external processes? The regex looks fragile: if we ever have one keymap named '2abc' and another named 'xyz2', then the input-keymap-xyz222abc may be difficult to extract based on greedy matching favoring 'xyz22' 2 'abc'. Would it be better to have 'xyz2-to-2abc' as the preferred naming in the keycodemapdb project, to make sure the conversion names are unambiguous? But as this is dependent on keymap names, I don't think it's a showstopper for this patch. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org