On Fri, May 08, 2009 at 02:58:40PM +0400, Alexey Gladkov wrote: > On 06.05.2009 23:06, Michael Schutte wrote: > > b9f77f5 Support bidirectional conversion of keysyms > > +/* Directions for converting keysyms */ > +#define TO_AUTO (-1) /* use prefer_unicode */ > +#define TO_8BIT 0 > +#define TO_UNICODE 1 > ... > + else if (direction == (code >= 0x1000)) > + result = code; /* no conversion necessary */ > + else if (code < 0x80) > + result = direction ? (code ^ 0xf000) : code; > + else if ((code ^ 0xf000) < 0x80) > + result = direction ? code : (code ^ 0xf000); > > I almost broke the brain by reading it. You call convert_code() with > TO_{AUTO,8BIT,UNICODE} , but you do not using these definition in this > function. > > > 68cbd1c Fix two problems with the keymap auto-conversion patch > > @@ -1695,6 +1696,8 @@ set_charset(const char *charset) { > if(p->name[0]) > syms[0].table[i] = p->name; > } > + if (chosen_charset) > + free(chosen_charset); > chosen_charset = strdup(charset); > return 0; > } > > You fixed memory leak, but still have not released memory in all the > programs that use set_charset(). You’re right on both counts, of course :-) I’ve added two more commits to address this stuff. URL and branch are still git pull git://git.debian.org/pkg-kbd/kbd.git auto-convert-keymaps If you spot any other problems, feel free to complain. All the best, -- Michael Schutte