--- rxvt-unicode/src/typemap 2012/06/03 15:54:05 1.7 +++ rxvt-unicode/src/typemap 2012/06/05 13:39:26 1.10 @@ -3,17 +3,20 @@ Time T_UV Atom T_UV Window T_UV +Pixmap T_UV urxvt::pixbuf T_PTROBJ -urxvt::img T_PTROBJ octet_string OCTET_STRING utf8_string UTF8_STRING rxvt_term * TERM +rxvt_img * IMG GError ** T_UV +render_repeat_mode RENDER_REPEAT_MODE + INPUT TERM @@ -27,8 +30,27 @@ 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 TERM $arg = newSVterm ($var); +IMG + sv_setref_pv ($arg, "urxvt::img", (void *)$var); +