… | |
… | |
108 | { |
108 | { |
109 | hash [0] = 2; |
109 | hash [0] = 2; |
110 | |
110 | |
111 | for (unsigned int i = 0; i < keymap.size (); ++i) |
111 | for (unsigned int i = 0; i < keymap.size (); ++i) |
112 | { |
112 | { |
113 | free ((void *)keymap [i]->str); |
113 | free (keymap [i]->str); |
114 | delete keymap [i]; |
114 | delete keymap [i]; |
115 | keymap [i] = 0; |
115 | keymap [i] = 0; |
116 | } |
116 | } |
117 | |
117 | |
118 | keymap.clear (); |
118 | keymap.clear (); |
… | |
… | |
151 | |
151 | |
152 | free (translation); |
152 | free (translation); |
153 | return; |
153 | return; |
154 | } |
154 | } |
155 | else |
155 | else |
156 | rxvt_warn ("cannot parse list-type keysym '%s', processing as normal keysym.\n", translation); |
156 | rxvt_warn ("unable to parse list-type keysym '%s', processing as normal keysym.\n", translation); |
157 | } |
157 | } |
158 | |
158 | |
159 | register_translation (keysym, state, translation); |
159 | register_translation (keysym, state, translation); |
160 | } |
160 | } |
161 | |
161 | |
… | |
… | |
177 | register_keymap (key); |
177 | register_keymap (key); |
178 | } |
178 | } |
179 | else |
179 | else |
180 | { |
180 | { |
181 | delete key; |
181 | delete key; |
182 | free ((void *)translation); |
182 | free (translation); |
183 | rxvt_fatal ("out of memory, aborting.\n"); |
183 | rxvt_fatal ("memory allocation failure. aborting.\n"); |
184 | } |
184 | } |
185 | } |
185 | } |
186 | |
186 | |
187 | void |
187 | void |
188 | keyboard_manager::register_keymap (keysym_t *key) |
188 | keyboard_manager::register_keymap (keysym_t *key) |
… | |
… | |
201 | } |
201 | } |
202 | |
202 | |
203 | bool |
203 | bool |
204 | keyboard_manager::dispatch (rxvt_term *term, KeySym keysym, unsigned int state) |
204 | keyboard_manager::dispatch (rxvt_term *term, KeySym keysym, unsigned int state) |
205 | { |
205 | { |
206 | assert (hash[0] == 0 && "register_done() need to be called"); |
206 | assert (("register_done() need to be called", hash[0] == 0)); |
207 | |
207 | |
208 | state &= OtherModMask; // mask out uninteresting modifiers |
208 | state &= OtherModMask; // mask out uninteresting modifiers |
209 | |
209 | |
210 | if (state & term->ModMetaMask) state |= MetaMask; |
210 | if (state & term->ModMetaMask) state |= MetaMask; |
211 | if (state & term->ModNumLockMask) state |= NumLockMask; |
211 | if (state & term->ModNumLockMask) state |= NumLockMask; |