From a41b11c7de57d080f6a609e40516ef98e754ae67 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 2 Jan 2006 21:17:01 +0000 Subject: [PATCH] *** empty log message *** --- src/keyboard.C | 3 +++ src/rxvtperl.h | 3 +++ src/rxvtperl.xs | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/src/keyboard.C b/src/keyboard.C index 6b84897d..738f1aef 100644 --- a/src/keyboard.C +++ b/src/keyboard.C @@ -5,6 +5,7 @@ #include +#include "rxvtperl.h" #include "keyboard.h" #include "command.h" @@ -74,6 +75,8 @@ output_string (rxvt_term *rt, const char *str) { if (strncmp (str, "command:", 8) == 0) rt->cmd_write ((unsigned char *)str + 8, strlen (str) - 8); + else if (strncmp (str, "perl:", 5) == 0) + PERL_INVOKE((rt, HOOK_KEYBOARD_COMMAND, DT_STRING, str + 5, DT_END)); else rt->tt_write ((unsigned char *)str, strlen (str)); } diff --git a/src/rxvtperl.h b/src/rxvtperl.h index 27e75cae..3500936f 100644 --- a/src/rxvtperl.h +++ b/src/rxvtperl.h @@ -15,6 +15,7 @@ enum data_type { DT_END, DT_INT, DT_LONG, + DT_STRING, }; enum hook_type { @@ -38,6 +39,8 @@ enum hook_type { HOOK_REFRESH_BEGIN, HOOK_REFRESH_END, + HOOK_KEYBOARD_COMMAND, + HOOK_NUM, }; diff --git a/src/rxvtperl.xs b/src/rxvtperl.xs index 7f040a29..92aaebcd 100644 --- a/src/rxvtperl.xs +++ b/src/rxvtperl.xs @@ -243,6 +243,10 @@ rxvt_perl_interp::invoke (rxvt_term *term, hook_type htype, ...) 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); @@ -305,6 +309,7 @@ BOOT: set_hookname (TTY_ACTIVITY); set_hookname (REFRESH_BEGIN); set_hookname (REFRESH_END); + set_hookname (KEYBOARD_COMMAND); sv_setpv (get_sv ("urxvt::LIBDIR", 1), LIBDIR); } -- 2.34.1