--- rxvt-unicode/src/rxvtperl.xs 2014/04/26 20:51:12 1.218 +++ rxvt-unicode/src/rxvtperl.xs 2014/09/03 18:20:37 1.226 @@ -3,11 +3,11 @@ *----------------------------------------------------------------------* * * All portions of code are copyright by their respective author/s. - * Copyright (c) 2005-2008,2011 Marc Lehmann + * Copyright (c) 2005-2014,2011 Marc Lehmann * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, @@ -495,6 +495,20 @@ } static void +_keysym_resource_push (rxvt_term *term, const char *k, const char *v) +{ + dSP; + XPUSHs (sv_2mortal (newSVpv (v, 0))); + PUTBACK; +} + +static void +_keysym_resources (rxvt_term *term) +{ + term->enumerate_keysym_resources (_keysym_resource_push); +} + +static void ungrab (rxvt_term *THIS) { if (THIS->perl.grabtime) @@ -797,7 +811,7 @@ # define const_iv(name) { # name, (IV)name } const_iv (HOOK_INIT), const_iv (HOOK_DESTROY), - const_iv (HOOK_KEYBOARD_DISPATCH), + const_iv (HOOK_ACTION), const_iv (NUM_RESOURCES), const_iv (DEFAULT_RSTYLE), @@ -1195,6 +1209,13 @@ CODE: XrmPutStringResource (&THIS->option_db, specifier, value); +void +rxvt_term::_keysym_resources () + PPCODE: + PUTBACK; + _keysym_resources (THIS); + SPAGAIN; + int rxvt_term::grab_button (int button, U32 modifiers, Window window = THIS->vt) CODE: @@ -1818,6 +1839,7 @@ #endif case Opt_cursorUnderline: + THIS->cursor_type = set ? 1 : 0; THIS->want_refresh = 1; THIS->refresh_check (); break; @@ -1833,21 +1855,16 @@ RETVAL bool -rxvt_term::parse_keysym (char *keysym, char *str) +rxvt_term::bind_action (char *keysym, char *str) + ALIAS: + parse_keysym = 1 CODE: - RETVAL = 0 < THIS->parse_keysym (keysym, str); + RETVAL = 0 < THIS->bind_action (keysym, str); THIS->keyboard->register_done (); OUTPUT: RETVAL void -rxvt_term::register_command (int keysym, unsigned int state, SV *str) - CODE: - wchar_t *wstr = sv2wcs (str); - THIS->keyboard->register_user_translation (keysym, state, wstr); - free (wstr); - -void rxvt_term::screen_cur (...) PROTOTYPE: $;$$ ALIAS: @@ -1981,6 +1998,14 @@ } void +rxvt_term::tt_write_user_input (SV *octets) + INIT: + STRLEN len; + char *str = SvPVbyte (octets, len); + C_ARGS: + str, len + +void rxvt_term::tt_write (SV *octets) INIT: STRLEN len;