--- rxvt-unicode/src/typemap 2006/01/20 10:27:08 1.3 +++ rxvt-unicode/src/typemap 2012/06/05 13:39:26 1.10 @@ -1,50 +1,56 @@ -rxvt_term * T_TERM - -perl_watcher * T_WATCHER -timer * T_TIMER -iow * T_IOW -pw * T_PW -iw * T_IW - -overlay * T_OVERLAY +overlay * OVERLAY Time T_UV Atom T_UV Window T_UV +Pixmap T_UV + +urxvt::pixbuf T_PTROBJ + +octet_string OCTET_STRING +utf8_string UTF8_STRING -CHAINED T_CHAINED +rxvt_term * TERM +rxvt_img * IMG +GError ** T_UV + +render_repeat_mode RENDER_REPEAT_MODE INPUT -T_TERM +TERM $var = SvTERM ($arg); -T_WATCHER - $var = SvWATCHER ($arg); -T_TIMER - $var = SvTIMER ($arg); -T_IOW - $var = SvIOW ($arg); -T_PW - $var = SvPW ($arg); -T_IW - $var = SvIW ($arg); -T_OVERLAY +OVERLAY $var = SvOVERLAY ($arg); +OCTET_STRING + $var = SvPVbyte_nolen ($arg) + +UTF8_STRING + $var = SvPVutf8_nolen ($arg) /* imperfect, destroys references */ + +IMG + if (SvROK ($arg) && sv_derived_from ($arg, \"urxvt::img\")) + $var = INT2PTR ($type, SvIV ((SV *) SvRV ($arg))); + else + croak (\"%s is not of type urxvt::img\", \"$var\") + +RENDER_REPEAT_MODE + if (SvOK ($arg)) + { + $var = SvIV ($arg); + if ($var != RepeatNone && $var != RepeatNormal && $var != RepeatPad && $var != RepeatReflect) + croak (\"invalid repeat mode specified (%d)\\n\", $var); + } + else + $var = RepeatNormal; OUTPUT -T_TERM +TERM $arg = newSVterm ($var); -T_TIMER - $arg = newSVtimer ($var); -T_IOW - $arg = newSViow ($var); -T_PW - $arg = newSVpw ($var); -T_IW - $arg = newSViw ($var); -T_CHAINED - $arg = newSVsv (ST(0)); + +IMG + sv_setref_pv ($arg, "urxvt::img", (void *)$var);