--- rxvt-unicode/src/rxvtperl.xs 2006/01/03 19:10:54 1.18 +++ rxvt-unicode/src/rxvtperl.xs 2006/01/04 03:16:15 1.22 @@ -503,25 +503,11 @@ BOOT: { -# define set_hookname(sym) av_store (hookname, PP_CONCAT(HOOK_, sym), newSVpv (PP_STRINGIFY(sym), 0)) -# define export_const(name) newCONSTSUB (gv_stashpv ("urxvt", 1), #name, newSViv (name)); +# define export_const(name) newCONSTSUB (gv_stashpv ("urxvt", 1), # name, newSViv (name)); AV *hookname = get_av ("urxvt::HOOKNAME", 1); - set_hookname (INIT); - set_hookname (RESET); - set_hookname (START); - set_hookname (DESTROY); - set_hookname (SEL_BEGIN); - set_hookname (SEL_EXTEND); - set_hookname (SEL_MAKE); - set_hookname (SEL_GRAB); - set_hookname (FOCUS_IN); - set_hookname (FOCUS_OUT); - set_hookname (VIEW_CHANGE); - set_hookname (SCROLL_BACK); - set_hookname (TTY_ACTIVITY); - set_hookname (REFRESH_BEGIN); - set_hookname (REFRESH_END); - set_hookname (KEYBOARD_COMMAND); +# define def(sym) av_store (hookname, HOOK_ ## sym, newSVpv (# sym, 0)); +# include "hookinc.h" +# undef def export_const (DEFAULT_RSTYLE); export_const (OVERLAY_RSTYLE); @@ -706,7 +692,7 @@ PPCODE: { if (!IN_RANGE_EXC (row_number, -THIS->nsaved, THIS->nrow)) - croak ("row_number number of out range"); + XSRETURN_EMPTY; line_t &l = ROW(row_number); @@ -753,7 +739,7 @@ PPCODE: { if (!IN_RANGE_EXC (row_number, -THIS->nsaved, THIS->nrow)) - croak ("row_number number of out range"); + XSRETURN_EMPTY; line_t &l = ROW(row_number); @@ -793,10 +779,10 @@ CODE: { if (!IN_RANGE_EXC (row_number, -THIS->nsaved, THIS->nrow)) - croak ("row_number number of out range"); + XSRETURN_EMPTY; line_t &l = ROW(row_number); - RETVAL = l.l; + RETVAL = l.l < 0 ? THIS->ncol : l.l; if (new_length >= -1) l.l = new_length; @@ -804,6 +790,19 @@ OUTPUT: RETVAL +bool +rxvt_term::ROW_is_longer (int row_number) + CODE: +{ + if (!IN_RANGE_EXC (row_number, -THIS->nsaved, THIS->nrow)) + XSRETURN_EMPTY; + + line_t &l = ROW(row_number); + RETVAL = l.l < 0; +} + OUTPUT: + RETVAL + SV * rxvt_term::special_encode (SV *str) CODE: @@ -819,11 +818,11 @@ PPCODE: { struct resval { const char *name; int value; } rslist [] = { -# define Rs_def(name) { # name, Rs_ ## name }, -# define Rs_reserve(name,count) +# define def(name) { # name, Rs_ ## name }, +# define reserve(name,count) # include "rsinc.h" -# undef Rs_def -# undef Rs_reserve +# undef def +# undef reserve }; struct resval *rs = rslist + sizeof (rslist) / sizeof (rslist [0]);