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 <berra...@redhat.com>
> ---

> +
> +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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to