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
