--- rxvt-unicode/src/typemap 2006/12/14 17:33:53 1.4 +++ rxvt-unicode/src/typemap 2012/06/03 18:04:44 1.8 @@ -1,36 +1,43 @@ -perl_watcher * T_IOM_WATCHER -timer * T_IOM_TIMER -iow * T_IOM_IOW -pw * T_IOM_PW -iw * T_IOM_IW +overlay * OVERLAY -IOM_CHAINED T_IOM_CHAINED +Time T_UV +Atom T_UV +Window T_UV +urxvt::pixbuf T_PTROBJ -INPUT +octet_string OCTET_STRING +utf8_string UTF8_STRING + +rxvt_term * TERM +rxvt_img * IMG -T_IOM_WATCHER - $var = SvWATCHER ($arg); -T_IOM_TIMER - $var = SvTIMER ($arg); -T_IOM_IOW - $var = SvIOW ($arg); -T_IOM_PW - $var = SvPW ($arg); -T_IOM_IW - $var = SvIW ($arg); +GError ** T_UV +INPUT + +TERM + $var = SvTERM ($arg); +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\") OUTPUT -T_IOM_TIMER - $arg = newSVtimer ($var); -T_IOM_IOW - $arg = newSViow ($var); -T_IOM_PW - $arg = newSVpw ($var); -T_IOM_IW - $arg = newSViw ($var); -T_IOM_CHAINED - $arg = newSVsv (ST(0)); +TERM + $arg = newSVterm ($var); + +IMG + sv_setref_pv ($arg, "urxvt::img", (void *)$var);