--- rxvt-unicode/src/rxvtperl.xs 2006/01/07 20:23:52 1.37 +++ rxvt-unicode/src/rxvtperl.xs 2006/01/07 23:18:56 1.39 @@ -28,6 +28,7 @@ #include "../config.h" +#include #include #include "rxvt.h" @@ -585,15 +586,22 @@ BOOT: { - HV *stash = gv_stashpv ("urxvt", 1); -# define export_const_iv(name) newCONSTSUB (stash, # name, newSViv (name)); + sv_setsv (get_sv ("urxvt::LIBDIR", 1), newSVpvn (LIBDIR, sizeof (LIBDIR) - 1)); AV *hookname = get_av ("urxvt::HOOKNAME", 1); # define def(sym) av_store (hookname, HOOK_ ## sym, newSVpv (# sym, 0)); # include "hookinc.h" # undef def - + HV *option = get_hv ("urxvt::OPTION", 1); +# define def(name,val) hv_store (option, # name, sizeof (# name) - 1, newSVuv (Opt_ ## name), 0); +# define nodef(name) +# include "optinc.h" +# undef nodef +# undef def + + HV *stash = gv_stashpv ("urxvt", 1); +# define export_const_iv(name) newCONSTSUB (stash, # name, newSViv (name)); export_const_iv (DEFAULT_RSTYLE); export_const_iv (OVERLAY_RSTYLE); export_const_iv (RS_Bold); @@ -601,9 +609,22 @@ export_const_iv (RS_Blink); export_const_iv (RS_RVid); export_const_iv (RS_Uline); - export_const_iv (CurrentTime); - sv_setsv (get_sv ("urxvt::LIBDIR", 1), newSVpvn (LIBDIR, sizeof (LIBDIR) - 1)); + export_const_iv (CurrentTime); + export_const_iv (ShiftMask); + export_const_iv (LockMask); + export_const_iv (ControlMask); + export_const_iv (Mod1Mask); + export_const_iv (Mod2Mask); + export_const_iv (Mod3Mask); + export_const_iv (Mod4Mask); + export_const_iv (Mod5Mask); + export_const_iv (Button1Mask); + export_const_iv (Button2Mask); + export_const_iv (Button3Mask); + export_const_iv (Button4Mask); + export_const_iv (Button5Mask); + export_const_iv (AnyModifier); } SV * @@ -812,8 +833,7 @@ OUTPUT: RETVAL -# very portable, especially on objects as opposed to pods -#define TERM_OFFSET(sym) (((char *)&((TermWin_t *)0)->sym) - (char *)(TermWin_t *)0) +#define TERM_OFFSET(sym) offsetof (TermWin_t, sym) #define TERM_OFFSET_width TERM_OFFSET(width) #define TERM_OFFSET_height TERM_OFFSET(height) @@ -848,6 +868,22 @@ OUTPUT: RETVAL +unsigned int +rxvt_term::ModLevel3Mask () + ALIAS: + ModLevel3Mask = 0 + ModMetaMask = 1 + ModNumLockMask = 2 + CODE: + switch (ix) + { + case 0: RETVAL = THIS->ModLevel3Mask; break; + case 1: RETVAL = THIS->ModMetaMask; break; + case 2: RETVAL = THIS->ModNumLockMask; break; + } + OUTPUT: + RETVAL + U32 rxvt_term::parent () CODE: