Skip to contentSkip to conversation

Pull request for auto-convert-keymaps

kbd Michael Schutte 2 participants 4 messages May 6, 2009 – May 18, 2009

lore
Share & tools
lore
#0 lore raw

Hey,

May I ask you to

git pull git://git.debian.org/pkg-kbd/kbd.git auto-convert-keymaps

into your auto-convert-keymaps branch? This is the one-line log:

5aa247b Regenerate analyze.c and loadkeys.c
18eadfe Support Unicode compose tables
b9f77f5 Support bidirectional conversion of keysyms 68cbd1c Fix two problems with the keymap auto-conversion patch

Cheers,

Signature · 1 line
Michael Schutte <[email protected]>
#1 lore raw
Quoted 11 lines · Michael Schutte

Hey,

May I ask you to

git pull git://git.debian.org/pkg-kbd/kbd.git auto-convert-keymaps

into your auto-convert-keymaps branch? This is the one-line log:

5aa247b Regenerate analyze.c and loadkeys.c 18eadfe Support Unicode compose tables 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.

Quoted 1 line

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().

Signature · 1 line
Rgrds, legion
#2 lore raw
Quoted 31 lines · Alexey Gladkov
Quoted 1 line · Michael Schutte

b9f77f5 Support bidirectional conversion of keysyms

(quoted diff) +10 -0
+/* 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.

Quoted 1 line

68cbd1c Fix two problems with the keymap auto-conversion patch

(quoted diff) +2 -0
@@ -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;
                }
Quoted 2 lines

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,

Signature · 1 line
Michael Schutte <[email protected]>
#3 lore raw
Quoted 4 lines · Michael Schutte

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

This branch looks good. I merge it to master.

Signature · 1 line
Rgrds, legion