--- rxvt-unicode/src/rxvtperl.xs 2006/01/02 19:05:05 1.4 +++ rxvt-unicode/src/rxvtperl.xs 2006/01/02 22:23:26 1.7 @@ -210,9 +210,8 @@ bool rxvt_perl_interp::invoke (rxvt_term *term, hook_type htype, ...) { - // INIT and DESTROY must be requested by the runtime - - if (!perl || !should_invoke [htype]) + if (!perl + || (!should_invoke [htype] && htype != HOOK_INIT && htype != HOOK_DESTROY)) return false; if (htype == HOOK_INIT) // first hook ever called @@ -244,6 +243,10 @@ XPUSHs (sv_2mortal (newSViv (va_arg (ap, long)))); break; + case DT_STRING: + XPUSHs (sv_2mortal (newSVpv (va_arg (ap, char *), 0))); + break; + case DT_END: { va_end (ap); @@ -291,7 +294,6 @@ { # define set_hookname(sym) av_store (hookname, PP_CONCAT(HOOK_, sym), newSVpv (PP_STRINGIFY(sym), 0)) AV *hookname = get_av ("urxvt::HOOKNAME", 1); - set_hookname (LOAD); set_hookname (INIT); set_hookname (RESET); set_hookname (START); @@ -307,6 +309,7 @@ set_hookname (TTY_ACTIVITY); set_hookname (REFRESH_BEGIN); set_hookname (REFRESH_END); + set_hookname (KEYBOARD_COMMAND); sv_setpv (get_sv ("urxvt::LIBDIR", 1), LIBDIR); } @@ -389,6 +392,28 @@ OUTPUT: RETVAL +int +rxvt_term::nsaved () + CODE: + RETVAL = THIS->nsaved; + OUTPUT: + RETVAL + +int +rxvt_term::view_start (int newval = -1) + CODE: +{ + RETVAL = THIS->view_start; + + if (newval >= 0) + { + THIS->view_start = min (newval, THIS->nsaved); + THIS->scr_changeview (RETVAL); + } +} + OUTPUT: + RETVAL + void rxvt_term::_resource (char *name, int index, SV *newval = 0) PPCODE: