Hallo Denys!

>> Can we improve Busybox and add those functionalities? Attention:
>> Modifications at this point probably introduces an incompatibility to
>> current Busybox versions, ...
> The best way would be to evolve tovards using data formats
> and command-line options which are compatible with relevant
> standard tools.

That would be the loadkeys command and the keyboard table format
described in the keymaps(5) manual page. ... but that one is an ASCII
source table that needs complex parsing. That parsing, including dynamic
table handling, would require a lot of code and data space. I don't
think that this really hit's the Busybox "keep it small" philosophy.

Currently I do not see any possibility to step toward standard tools
without including a full ASCII key table parser. On the other side, I
like the idea of having small binary key tables that do not consume much
resources for loading during boot (especially on init file systems).
That is really a decision conflict. Which way shall we go with Busybox?
Keeping things small and simple while providing required functionality
or stepping toward standard tools and including a full ASCII key table
parser?

... or are there any other standard keyboard table tools we should follow?

My indention is, staying with binary key tables and a simple applet
(loadkmap) to load such binary key tables. ... but we need to extend
that functionality and binary key table format to allow for string and
diacritical tables be included in keyboard definitions.

The standard tool "loadkeys" has an option "-b" to create the the binary
key tables required by Busybox. That way any ASCII keyboard definition
file may be converted to a compact binary key table format, which may be
loaded using Busybox simple loadkmap. ... but we need to extend the
loadkeys tool to add those string and diacritical tables (defined in the
ASCII key table) to the binary key table file. Currently the string and
diacritical tables are silently lost when using "loadkeys -b".

The standard tools loadkeys "-b" option is especially designed to create
binary key tables in the format required by Busybox (see loadkeys manual
page).


> If this makes new busybox incompatible with old versions, so be it.

I dig into loadkmap applet source and found a possibility of extending
the binary key table format in a compatible way. We can just append
binary string and diacritical tables to the binary key tables. That way
on reading the key table premature EOF means missing string and
diacritical tables (old format). On the other hand old versions of
Busybox would just stop loading after the binary key table and will
ignore the string and diacritical tables of new format files. Nice
behavior for compatibility with older versions, but than there would be
no other version check of the key table format. ... and may be there is
an incompatibility with current "loadkeys -b" output. It looks like they
add some extra information after the binary key table. This extra
information is ignored by current Busybox loadkmap applet (needs to be
investigated).

--
Harald
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to