ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/rxvtperl.xs
(Generate patch)

Comparing rxvt-unicode/src/rxvtperl.xs (file contents):
Revision 1.4 by root, Mon Jan 2 19:05:05 2006 UTC vs.
Revision 1.7 by root, Mon Jan 2 22:23:26 2006 UTC

208} 208}
209 209
210bool 210bool
211rxvt_perl_interp::invoke (rxvt_term *term, hook_type htype, ...) 211rxvt_perl_interp::invoke (rxvt_term *term, hook_type htype, ...)
212{ 212{
213 // INIT and DESTROY must be requested by the runtime 213 if (!perl
214 214 || (!should_invoke [htype] && htype != HOOK_INIT && htype != HOOK_DESTROY))
215 if (!perl || !should_invoke [htype])
216 return false; 215 return false;
217 216
218 if (htype == HOOK_INIT) // first hook ever called 217 if (htype == HOOK_INIT) // first hook ever called
219 term->self = (void *)newSVptr ((void *)term, "urxvt::term"); 218 term->self = (void *)newSVptr ((void *)term, "urxvt::term");
220 219
240 XPUSHs (sv_2mortal (newSViv (va_arg (ap, int)))); 239 XPUSHs (sv_2mortal (newSViv (va_arg (ap, int))));
241 break; 240 break;
242 241
243 case DT_LONG: 242 case DT_LONG:
244 XPUSHs (sv_2mortal (newSViv (va_arg (ap, long)))); 243 XPUSHs (sv_2mortal (newSViv (va_arg (ap, long))));
244 break;
245
246 case DT_STRING:
247 XPUSHs (sv_2mortal (newSVpv (va_arg (ap, char *), 0)));
245 break; 248 break;
246 249
247 case DT_END: 250 case DT_END:
248 { 251 {
249 va_end (ap); 252 va_end (ap);
289 292
290BOOT: 293BOOT:
291{ 294{
292# define set_hookname(sym) av_store (hookname, PP_CONCAT(HOOK_, sym), newSVpv (PP_STRINGIFY(sym), 0)) 295# define set_hookname(sym) av_store (hookname, PP_CONCAT(HOOK_, sym), newSVpv (PP_STRINGIFY(sym), 0))
293 AV *hookname = get_av ("urxvt::HOOKNAME", 1); 296 AV *hookname = get_av ("urxvt::HOOKNAME", 1);
294 set_hookname (LOAD);
295 set_hookname (INIT); 297 set_hookname (INIT);
296 set_hookname (RESET); 298 set_hookname (RESET);
297 set_hookname (START); 299 set_hookname (START);
298 set_hookname (DESTROY); 300 set_hookname (DESTROY);
299 set_hookname (SEL_BEGIN); 301 set_hookname (SEL_BEGIN);
305 set_hookname (VIEW_CHANGE); 307 set_hookname (VIEW_CHANGE);
306 set_hookname (SCROLL_BACK); 308 set_hookname (SCROLL_BACK);
307 set_hookname (TTY_ACTIVITY); 309 set_hookname (TTY_ACTIVITY);
308 set_hookname (REFRESH_BEGIN); 310 set_hookname (REFRESH_BEGIN);
309 set_hookname (REFRESH_END); 311 set_hookname (REFRESH_END);
312 set_hookname (KEYBOARD_COMMAND);
310 313
311 sv_setpv (get_sv ("urxvt::LIBDIR", 1), LIBDIR); 314 sv_setpv (get_sv ("urxvt::LIBDIR", 1), LIBDIR);
312} 315}
313 316
314void 317void
386 SvUTF8_on (RETVAL); 389 SvUTF8_on (RETVAL);
387 free (str); 390 free (str);
388} 391}
389 OUTPUT: 392 OUTPUT:
390 RETVAL 393 RETVAL
394
395int
396rxvt_term::nsaved ()
397 CODE:
398 RETVAL = THIS->nsaved;
399 OUTPUT:
400 RETVAL
401
402int
403rxvt_term::view_start (int newval = -1)
404 CODE:
405{
406 RETVAL = THIS->view_start;
407
408 if (newval >= 0)
409 {
410 THIS->view_start = min (newval, THIS->nsaved);
411 THIS->scr_changeview (RETVAL);
412 }
413}
414 OUTPUT:
415 RETVAL
391 416
392void 417void
393rxvt_term::_resource (char *name, int index, SV *newval = 0) 418rxvt_term::_resource (char *name, int index, SV *newval = 0)
394 PPCODE: 419 PPCODE:
395{ 420{

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines