Wed, 13 May 2009 20:29:03 +0000
Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.
|
18114
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
1 | /** |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
2 | * GNT - The GLib Ncurses Toolkit |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
3 | * |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
4 | * GNT is the legal property of its developers, whose names are too numerous |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
5 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
6 | * source distribution. |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
7 | * |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
8 | * This library is free software; you can redistribute it and/or modify |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
9 | * it under the terms of the GNU General Public License as published by |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
10 | * the Free Software Foundation; either version 2 of the License, or |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
11 | * (at your option) any later version. |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
12 | * |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
13 | * This program is distributed in the hope that it will be useful, |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
16 | * GNU General Public License for more details. |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
17 | * |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
18 | * You should have received a copy of the GNU General Public License |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
19 | * along with this program; if not, write to the Free Software |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
18601
diff
changeset
|
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
18114
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
21 | */ |
|
adb3cfadc125
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17875
diff
changeset
|
22 | |
|
24822
d7774462f2ba
Use glib log functions to show error messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24564
diff
changeset
|
23 | #include "gntinternal.h" |
|
d7774462f2ba
Use glib log functions to show error messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24564
diff
changeset
|
24 | #undef GNT_LOG_DOMAIN |
|
d7774462f2ba
Use glib log functions to show error messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24564
diff
changeset
|
25 | #define GNT_LOG_DOMAIN "Keys" |
|
d7774462f2ba
Use glib log functions to show error messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24564
diff
changeset
|
26 | |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
27 | #include "gntkeys.h" |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
28 | |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15095
diff
changeset
|
29 | #include <glib.h> |
|
14939
7ec81b1b7bba
[gaim-migrate @ 17646]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14938
diff
changeset
|
30 | #include <stdlib.h> |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
31 | #include <string.h> |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
32 | |
|
15095
f7c98ecaa92b
[gaim-migrate @ 17816]
Christopher O'Brien <siege@pidgin.im>
parents:
15038
diff
changeset
|
33 | char *gnt_key_cup; |
|
f7c98ecaa92b
[gaim-migrate @ 17816]
Christopher O'Brien <siege@pidgin.im>
parents:
15038
diff
changeset
|
34 | char *gnt_key_cdown; |
|
f7c98ecaa92b
[gaim-migrate @ 17816]
Christopher O'Brien <siege@pidgin.im>
parents:
15038
diff
changeset
|
35 | char *gnt_key_cleft; |
|
f7c98ecaa92b
[gaim-migrate @ 17816]
Christopher O'Brien <siege@pidgin.im>
parents:
15038
diff
changeset
|
36 | char *gnt_key_cright; |
|
f7c98ecaa92b
[gaim-migrate @ 17816]
Christopher O'Brien <siege@pidgin.im>
parents:
15038
diff
changeset
|
37 | |
|
15033
9413ff0ec346
[gaim-migrate @ 17750]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
38 | static const char *term; |
|
15862
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
39 | static GHashTable *specials; |
|
14938
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
40 | |
|
15038
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15037
diff
changeset
|
41 | void gnt_init_keys() |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
42 | { |
|
15862
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
43 | const char *controls[] = {"", "c-", "ctrl-", "ctr-", "ctl-", NULL}; |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
44 | const char *alts[] = {"", "alt-", "a-", "m-", "meta-", NULL}; |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
45 | int c, a, ch; |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
46 | char key[32]; |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
47 | |
|
15033
9413ff0ec346
[gaim-migrate @ 17750]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
48 | if (term == NULL) { |
|
9413ff0ec346
[gaim-migrate @ 17750]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
49 | term = getenv("TERM"); |
|
9413ff0ec346
[gaim-migrate @ 17750]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
50 | if (!term) |
|
9413ff0ec346
[gaim-migrate @ 17750]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
51 | term = ""; /* Just in case */ |
|
9413ff0ec346
[gaim-migrate @ 17750]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
52 | } |
|
9413ff0ec346
[gaim-migrate @ 17750]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
53 | |
|
24330
2a9310f4f833
Fix a bug where some key-bindings wouldn't work with some .
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23561
diff
changeset
|
54 | if (strstr(term, "xterm") == term || strcmp(term, "rxvt") == 0) { |
|
15038
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15037
diff
changeset
|
55 | gnt_key_cup = "\033" "[1;5A"; |
|
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15037
diff
changeset
|
56 | gnt_key_cdown = "\033" "[1;5B"; |
|
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15037
diff
changeset
|
57 | gnt_key_cright = "\033" "[1;5C"; |
|
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15037
diff
changeset
|
58 | gnt_key_cleft = "\033" "[1;5D"; |
|
24330
2a9310f4f833
Fix a bug where some key-bindings wouldn't work with some .
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23561
diff
changeset
|
59 | } else if (strstr(term, "screen") == term || strcmp(term, "rxvt-unicode") == 0) { |
|
15038
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15037
diff
changeset
|
60 | gnt_key_cup = "\033" "Oa"; |
|
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15037
diff
changeset
|
61 | gnt_key_cdown = "\033" "Ob"; |
|
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15037
diff
changeset
|
62 | gnt_key_cright = "\033" "Oc"; |
|
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15037
diff
changeset
|
63 | gnt_key_cleft = "\033" "Od"; |
|
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15037
diff
changeset
|
64 | } |
|
15862
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
65 | |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
66 | specials = g_hash_table_new(g_str_hash, g_str_equal); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
67 | |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
68 | #define INSERT_KEY(k, code) do { \ |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
69 | g_hash_table_insert(specials, g_strdup(k), g_strdup(code)); \ |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
70 | gnt_keys_add_combination(code); \ |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
71 | } while (0) |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
72 | |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
73 | INSERT_KEY("home", GNT_KEY_HOME); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
74 | INSERT_KEY("end", GNT_KEY_END); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
75 | INSERT_KEY("pageup", GNT_KEY_PGUP); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
76 | INSERT_KEY("pagedown", GNT_KEY_PGDOWN); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
77 | INSERT_KEY("insert", GNT_KEY_INS); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
78 | INSERT_KEY("delete", GNT_KEY_DEL); |
|
17875
ad1536695bff
(16:39:44) rekkanoryo: i have a feature request
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16105
diff
changeset
|
79 | INSERT_KEY("back_tab", GNT_KEY_BACK_TAB); |
|
15862
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
80 | |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
81 | INSERT_KEY("left", GNT_KEY_LEFT); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
82 | INSERT_KEY("right", GNT_KEY_RIGHT); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
83 | INSERT_KEY("up", GNT_KEY_UP); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
84 | INSERT_KEY("down", GNT_KEY_DOWN); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
85 | |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
86 | INSERT_KEY("tab", "\t"); |
|
23537
2ca40708a5ac
Allow binding space, escape and return to some action.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
87 | INSERT_KEY("escape", "\033"); |
|
2ca40708a5ac
Allow binding space, escape and return to some action.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
88 | INSERT_KEY("space", " "); |
|
2ca40708a5ac
Allow binding space, escape and return to some action.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
89 | INSERT_KEY("return", GNT_KEY_ENTER); |
|
15862
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
90 | INSERT_KEY("menu", GNT_KEY_POPUP); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
91 | |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
92 | INSERT_KEY("f1", GNT_KEY_F1); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
93 | INSERT_KEY("f2", GNT_KEY_F2); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
94 | INSERT_KEY("f3", GNT_KEY_F3); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
95 | INSERT_KEY("f4", GNT_KEY_F4); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
96 | INSERT_KEY("f5", GNT_KEY_F5); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
97 | INSERT_KEY("f6", GNT_KEY_F6); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
98 | INSERT_KEY("f7", GNT_KEY_F7); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
99 | INSERT_KEY("f8", GNT_KEY_F8); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
100 | INSERT_KEY("f9", GNT_KEY_F9); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
101 | INSERT_KEY("f10", GNT_KEY_F10); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
102 | INSERT_KEY("f11", GNT_KEY_F11); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
103 | INSERT_KEY("f12", GNT_KEY_F12); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
104 | |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
105 | #define REM_LENGTH (sizeof(key) - (cur - key)) |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
106 | #define INSERT_COMB(k, code) do { \ |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
107 | snprintf(key, sizeof(key), "%s%s%s", controls[c], alts[a], k); \ |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
108 | INSERT_KEY(key, code); \ |
|
24564
f1051b62e007
Allow binding meta-arrow keys for actions. Requested by essobi in #pidgin
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24330
diff
changeset
|
109 | } while (0) |
|
f1051b62e007
Allow binding meta-arrow keys for actions. Requested by essobi in #pidgin
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24330
diff
changeset
|
110 | #define INSERT_COMB_CODE(k, c1, c2) do { \ |
|
f1051b62e007
Allow binding meta-arrow keys for actions. Requested by essobi in #pidgin
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24330
diff
changeset
|
111 | char __[32]; \ |
|
f1051b62e007
Allow binding meta-arrow keys for actions. Requested by essobi in #pidgin
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24330
diff
changeset
|
112 | snprintf(__, sizeof(__), "%s%s", c1, c2); \ |
|
f1051b62e007
Allow binding meta-arrow keys for actions. Requested by essobi in #pidgin
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24330
diff
changeset
|
113 | INSERT_COMB(k, __); \ |
|
f1051b62e007
Allow binding meta-arrow keys for actions. Requested by essobi in #pidgin
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24330
diff
changeset
|
114 | } while (0) |
|
15862
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
115 | |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
116 | /* Lower-case alphabets */ |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
117 | for (a = 0, c = 0; controls[c]; c++, a = 0) { |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
118 | if (c) { |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
119 | INSERT_COMB("up", gnt_key_cup); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
120 | INSERT_COMB("down", gnt_key_cdown); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
121 | INSERT_COMB("left", gnt_key_cleft); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
122 | INSERT_COMB("right", gnt_key_cright); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
123 | } |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
124 | |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
125 | for (a = 0; alts[a]; a++) { |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
126 | for (ch = 0; ch < 26; ch++) { |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
127 | char str[2] = {'a' + ch, 0}, code[4] = "\0\0\0\0"; |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
128 | int ind = 0; |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
129 | if (a) |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
130 | code[ind++] = '\033'; |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
131 | code[ind] = (c ? 1 : 'a') + ch; |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
132 | INSERT_COMB(str, code); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
133 | } |
|
25389
4dbec732f562
Fix rebinding the arrow keys and tab.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24822
diff
changeset
|
134 | if (c == 0 && a) { |
|
23537
2ca40708a5ac
Allow binding space, escape and return to some action.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
135 | INSERT_COMB("tab", "\033\t"); |
|
24564
f1051b62e007
Allow binding meta-arrow keys for actions. Requested by essobi in #pidgin
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24330
diff
changeset
|
136 | INSERT_COMB_CODE("up", "\033", GNT_KEY_UP); |
|
f1051b62e007
Allow binding meta-arrow keys for actions. Requested by essobi in #pidgin
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24330
diff
changeset
|
137 | INSERT_COMB_CODE("down", "\033", GNT_KEY_DOWN); |
|
f1051b62e007
Allow binding meta-arrow keys for actions. Requested by essobi in #pidgin
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24330
diff
changeset
|
138 | INSERT_COMB_CODE("left", "\033", GNT_KEY_LEFT); |
|
f1051b62e007
Allow binding meta-arrow keys for actions. Requested by essobi in #pidgin
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24330
diff
changeset
|
139 | INSERT_COMB_CODE("right", "\033", GNT_KEY_RIGHT); |
|
23537
2ca40708a5ac
Allow binding space, escape and return to some action.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
140 | } |
|
15862
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
141 | } |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
142 | } |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
143 | c = 0; |
|
15877
ca1fabffc300
Allow non-alt non-ctrl bindings. I broke this with me last few changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15874
diff
changeset
|
144 | for (a = 0; alts[a]; a++) { |
|
15862
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
145 | /* Upper-case alphabets */ |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
146 | for (ch = 0; ch < 26; ch++) { |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
147 | char str[2] = {'A' + ch, 0}, code[] = {'\033', 'A' + ch, 0}; |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
148 | INSERT_COMB(str, code); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
149 | } |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
150 | /* Digits */ |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
151 | for (ch = 0; ch < 10; ch++) { |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
152 | char str[2] = {'0' + ch, 0}, code[] = {'\033', '0' + ch, 0}; |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
153 | INSERT_COMB(str, code); |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
154 | } |
|
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15852
diff
changeset
|
155 | } |
|
15038
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15037
diff
changeset
|
156 | } |
|
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15037
diff
changeset
|
157 | |
|
23358
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
158 | void gnt_keys_refine(char *text) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
159 | { |
|
24564
f1051b62e007
Allow binding meta-arrow keys for actions. Requested by essobi in #pidgin
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24330
diff
changeset
|
160 | while (*text == 27 && *(text + 1) == 27) |
|
f1051b62e007
Allow binding meta-arrow keys for actions. Requested by essobi in #pidgin
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24330
diff
changeset
|
161 | text++; |
|
23358
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
162 | if (*text == 27 && *(text + 1) == '[' && |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
163 | (*(text + 2) >= 'A' && *(text + 2) <= 'D')) { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
164 | /* Apparently this is necessary for urxvt and screen and xterm */ |
|
24330
2a9310f4f833
Fix a bug where some key-bindings wouldn't work with some .
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23561
diff
changeset
|
165 | if (strstr(term, "screen") == term || strcmp(term, "rxvt-unicode") == 0 || |
|
25568
111d979e6b92
Need some refining for vt100 too, apparently. Fixes #8335.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25389
diff
changeset
|
166 | strstr(term, "xterm") == term || |
|
111d979e6b92
Need some refining for vt100 too, apparently. Fixes #8335.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25389
diff
changeset
|
167 | strstr(term, "vt100") == term) |
|
23358
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
168 | *(text + 1) = 'O'; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
169 | } else if (*(unsigned char*)text == 195) { |
|
24330
2a9310f4f833
Fix a bug where some key-bindings wouldn't work with some .
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23561
diff
changeset
|
170 | if (*(text + 2) == 0 && strstr(term, "xterm") == term) { |
|
23358
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
171 | *(text) = 27; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
172 | *(text + 1) -= 64; /* Say wha? */ |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
173 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
174 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
175 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
176 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
177 | const char *gnt_key_translate(const char *name) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
178 | { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
179 | return name ? g_hash_table_lookup(specials, name) : NULL; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
180 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
181 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
182 | typedef struct { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
183 | const char *name; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
184 | const char *key; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
185 | } gntkey; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
186 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
187 | static void |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
188 | get_key_name(gpointer key, gpointer value, gpointer data) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
189 | { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
190 | gntkey *k = data; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
191 | if (k->name) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
192 | return; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
193 | if (g_utf8_collate(value, k->key) == 0) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
194 | k->name = key; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
195 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
196 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
197 | const char *gnt_key_lookup(const char *key) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
198 | { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
199 | gntkey k = {NULL, key}; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
200 | g_hash_table_foreach(specials, get_key_name, &k); |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
201 | return k.name; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
202 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
203 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
204 | /** |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
205 | * The key-bindings will be saved in a tree. When a keystroke happens, GNT will |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
206 | * find the sequence that matches a binding and return the length. |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
207 | * A sequence should not be a prefix of another sequence. If it is, then only |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
208 | * the shortest one will be processed. If we want to change that, we will need |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
209 | * to allow getting the k-th prefix that matches the input, and pay attention |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
210 | * to the return value of gnt_wm_process_input in gntmain.c. |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
211 | */ |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
212 | #define SIZE 256 |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
213 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
214 | #define IS_END 1 << 0 |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
215 | struct _node |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
216 | { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
217 | struct _node *next[SIZE]; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
218 | int ref; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
219 | int flags; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
220 | }; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
221 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
222 | static struct _node root = {.ref = 1, .flags = 0}; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
223 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
224 | static void add_path(struct _node *node, const char *path) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
225 | { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
226 | struct _node *n = NULL; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
227 | if (!path || !*path) { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
228 | node->flags |= IS_END; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
229 | return; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
230 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
231 | while (*path && node->next[(unsigned char)*path]) { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
232 | node = node->next[(unsigned char)*path]; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
233 | node->ref++; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
234 | path++; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
235 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
236 | if (!*path) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
237 | return; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
238 | n = g_new0(struct _node, 1); |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
239 | n->ref = 1; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
240 | node->next[(unsigned char)*path++] = n; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
241 | add_path(n, path); |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
242 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
243 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
244 | void gnt_keys_add_combination(const char *path) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
245 | { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
246 | add_path(&root, path); |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
247 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
248 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
249 | static void del_path(struct _node *node, const char *path) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
250 | { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
251 | struct _node *next = NULL; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
252 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
253 | if (!*path) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
254 | return; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
255 | next = node->next[(unsigned char)*path]; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
256 | if (!next) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
257 | return; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
258 | del_path(next, path + 1); |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
259 | next->ref--; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
260 | if (next->ref == 0) { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
261 | node->next[(unsigned char)*path] = NULL; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
262 | g_free(next); |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
263 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
264 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
265 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
266 | void gnt_keys_del_combination(const char *path) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
267 | { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
268 | del_path(&root, path); |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
269 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
270 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
271 | int gnt_keys_find_combination(const char *path) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
272 | { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
273 | int depth = 0; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
274 | struct _node *n = &root; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
275 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
276 | root.flags &= ~IS_END; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
277 | while (*path && n->next[(unsigned char)*path] && !(n->flags & IS_END)) { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
278 | if (!g_ascii_isspace(*path) && |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
279 | !g_ascii_iscntrl(*path) && |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
280 | !g_ascii_isgraph(*path)) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
281 | return 0; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
282 | n = n->next[(unsigned char)*path++]; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
283 | depth++; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
284 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
285 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
286 | if (!(n->flags & IS_END)) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
287 | depth = 0; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
288 | return depth; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
289 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
290 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
291 | static void |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
292 | print_path(struct _node *node, int depth) |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
293 | { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
294 | int i; |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
295 | for (i = 0; i < SIZE; i++) { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
296 | if (node->next[i]) { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
297 | g_printerr("%*c (%d:%d)\n", depth * 4, i, node->next[i]->ref, |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
298 | node->next[i]->flags); |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
299 | print_path(node->next[i], depth + 1); |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
300 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
301 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
302 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
303 | |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
304 | /* this is purely for debugging purposes. */ |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
305 | void gnt_keys_print_combinations(void); |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
306 | void gnt_keys_print_combinations() |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
307 | { |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
308 | g_printerr("--------\n"); |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
309 | print_path(&root, 1); |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
310 | g_printerr("--------\n"); |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
311 | } |
|
e4290512c192
disapproval of revision '22db0cc69beeebb47320c8e6b6f3d2f908597f17'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23357
diff
changeset
|
312 |