*** empty log message ***
authorroot <root>
Thu, 14 Dec 2006 17:33:53 +0000 (17:33 +0000)
committerroot <root>
Thu, 14 Dec 2006 17:33:53 +0000 (17:33 +0000)
MANIFEST
src/Makefile.in
src/iom_perl.h
src/iom_perl.xs
src/rxvtperl.xs
src/typemap
src/typemap.iom [new file with mode: 0644]

index bf5d267..92f77a2 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -155,6 +155,7 @@ src/table/jis0213_2.h
 
 src/urxvt.pm
 src/typemap
+src/typemap.iom
 src/iom_perl.h
 src/iom_perl.xs
 src/rxvtperl.h
index eee28c1..d419217 100644 (file)
@@ -136,9 +136,8 @@ install: allbin alldoc install-perl
 perlxsi.c: Makefile
        $(PERL) -MExtUtils::Embed -e xsinit -- -std urxvt
 
-rxvtperl.C: rxvtperl.xs iom_perl.h iom_perl.xs typemap
-       #$(PERL) @PERLPRIVLIBEXP@/ExtUtils/xsubpp -csuffix .C -C++ -typemap @PERLPRIVLIBEXP@/ExtUtils/typemap -typemap typemap -prototypes rxvtperl.xs >$@
-       PERL="$(PERL)" $(PERL) @PERLPRIVLIBEXP@/ExtUtils/xsubpp -C++ -typemap @PERLPRIVLIBEXP@/ExtUtils/typemap -typemap typemap -prototypes $(srcdir)/rxvtperl.xs >$@
+rxvtperl.C: rxvtperl.xs iom_perl.h iom_perl.xs typemap typemap.iom
+       PERL="$(PERL)" $(PERL) @PERLPRIVLIBEXP@/ExtUtils/xsubpp -C++ -typemap @PERLPRIVLIBEXP@/ExtUtils/typemap -typemap typemap.iom -typemap typemap -prototypes $(srcdir)/rxvtperl.xs >$@
 
 rxvtperl.o: rxvtperl.C perlxsi.c
        $(COMPILE) @PERLFLAGS@ -DLIBDIR="\"$(libdir)/urxvt\"" -c $<
index a6c8278..1b07a70 100644 (file)
@@ -1,3 +1,5 @@
+typedef int IOM_CHAINED;
+
 /////////////////////////////////////////////////////////////////////////////
 
 #define SvWATCHER(sv) (perl_watcher *)SvPTR (sv, IOM_CLASS "::watcher")
index 34ddad7..bb9066c 100644 (file)
@@ -4,30 +4,33 @@
 
 BOOT:
 {
-  HV *stash     = gv_stashpv ("IOM_CLASS", 1);
-  SV *baseclass = newSVpv ("IOM_CLASS::watcher", 0);
-
-  static const struct {
-    const char *name;
-    IV iv;
-  } *civ, const_iv[] = {
-#   define const_iv(name) { # name, (IV)name }
-    const_iv (EVENT_NONE),
-    const_iv (EVENT_READ),
-    const_iv (EVENT_WRITE),
-  };
-
-  for (civ = const_iv + sizeof (const_iv) / sizeof (const_iv [0]); civ-- > const_iv; )
-    newCONSTSUB (stash, (char *)civ->name, newSViv (civ->iv));
-
-  /* slightly dirty to put the same scalar into all those arrays, but */
-  /* we do not expect users to modify them anyways */
-  av_push (get_av ("IOM_CLASS" "::timer::ISA", 1), SvREFCNT_inc (baseclass));
-  av_push (get_av ("IOM_CLASS"   "::iow::ISA", 1), SvREFCNT_inc (baseclass));
-  av_push (get_av ("IOM_CLASS"    "::pw::ISA", 1), SvREFCNT_inc (baseclass));
-  av_push (get_av ("IOM_CLASS"    "::iw::ISA", 1), SvREFCNT_inc (baseclass));
-
-  SvREFCNT_dec (baseclass);
+  {
+    HV *stash     = gv_stashpv ("IOM_CLASS", 1);
+    SV *baseclass = newSVpv ("IOM_CLASS::watcher", 0);
+
+    static const struct {
+      const char *name;
+      IV iv;
+    } *civ, iom_const_iv[] = {
+#   define iom_const_iv(name) { # name, (IV)name }
+      iom_const_iv (EVENT_NONE),
+      iom_const_iv (EVENT_READ),
+      iom_const_iv (EVENT_WRITE),
+#   undef iom_const
+    };
+
+    for (civ = iom_const_iv + sizeof (iom_const_iv) / sizeof (iom_const_iv [0]); civ-- > iom_const_iv; )
+      newCONSTSUB (stash, (char *)civ->name, newSViv (civ->iv));
+
+    /* slightly dirty to put the same scalar into all those arrays, but */
+    /* we do not expect users to modify them anyways */
+    av_push (get_av ("IOM_CLASS" "::timer::ISA", 1), SvREFCNT_inc (baseclass));
+    av_push (get_av ("IOM_CLASS"   "::iow::ISA", 1), SvREFCNT_inc (baseclass));
+    av_push (get_av ("IOM_CLASS"    "::pw::ISA", 1), SvREFCNT_inc (baseclass));
+    av_push (get_av ("IOM_CLASS"    "::iw::ISA", 1), SvREFCNT_inc (baseclass));
+
+    SvREFCNT_dec (baseclass);
+  }
 }
 
 #############################################################################
@@ -36,7 +39,7 @@ BOOT:
 
 MODULE = IOM_MODULE             PACKAGE = IOM_CLASS::watcher
 
-CHAINED
+IOM_CHAINED
 perl_watcher::cb (SV *cb)
        CODE:
         THIS->cb (cb);
@@ -66,35 +69,35 @@ timer::at ()
         OUTPUT:
         RETVAL
 
-CHAINED
+IOM_CHAINED
 timer::interval (NV interval)
        CODE:
         THIS->interval = interval;
         OUTPUT:
         RETVAL
 
-CHAINED
+IOM_CHAINED
 timer::set (NV tstamp)
        CODE:
         THIS->set (tstamp);
         OUTPUT:
         RETVAL
 
-CHAINED
+IOM_CHAINED
 timer::start (NV tstamp = THIS->at)
        CODE:
         THIS->start (tstamp);
         OUTPUT:
         RETVAL
 
-CHAINED
+IOM_CHAINED
 timer::after (NV delay)
        CODE:
         THIS->start (NOW + delay);
         OUTPUT:
         RETVAL
 
-CHAINED
+IOM_CHAINED
 timer::stop ()
        CODE:
         THIS->stop ();
@@ -119,28 +122,28 @@ iow::new ()
         OUTPUT:
         RETVAL
 
-CHAINED
+IOM_CHAINED
 iow::fd (int fd)
        CODE:
         THIS->fd = fd;
         OUTPUT:
         RETVAL
 
-CHAINED
+IOM_CHAINED
 iow::events (short events)
        CODE:
         THIS->events = events;
         OUTPUT:
         RETVAL
 
-CHAINED
+IOM_CHAINED
 iow::start ()
        CODE:
         THIS->start ();
         OUTPUT:
         RETVAL
 
-CHAINED
+IOM_CHAINED
 iow::stop ()
        CODE:
         THIS->stop ();
@@ -165,14 +168,14 @@ iw::new ()
         OUTPUT:
         RETVAL
 
-CHAINED
+IOM_CHAINED
 iw::start ()
        CODE:
         THIS->start ();
         OUTPUT:
         RETVAL
 
-CHAINED
+IOM_CHAINED
 iw::stop ()
        CODE:
         THIS->stop ();
@@ -197,14 +200,14 @@ pw::new ()
         OUTPUT:
         RETVAL
 
-CHAINED
+IOM_CHAINED
 pw::start (int pid)
        CODE:
         THIS->start (pid);
         OUTPUT:
         RETVAL
 
-CHAINED
+IOM_CHAINED
 pw::stop ()
        CODE:
         THIS->stop ();
index b8d3307..4e8b1ff 100644 (file)
@@ -52,8 +52,6 @@
 #undef ROW
 #define ROW(n) THIS->row_buf [LINENO (n)]
 
-typedef int CHAINED UNUSED;
-
 /////////////////////////////////////////////////////////////////////////////
 
 static wchar_t *
index 2344c71..ddb0b98 100644 (file)
@@ -1,50 +1,36 @@
-rxvt_term *            T_TERM
+perl_watcher *         T_IOM_WATCHER
+timer *                        T_IOM_TIMER
+iow *                  T_IOM_IOW
+pw *                   T_IOM_PW
+iw *                   T_IOM_IW
 
-perl_watcher *         T_WATCHER
-timer *                        T_TIMER
-iow *                  T_IOW
-pw *                   T_PW
-iw *                   T_IW
-
-overlay *              T_OVERLAY
-
-Time                   T_UV
-Atom                   T_UV
-Window                 T_UV
-
-CHAINED                        T_CHAINED
+IOM_CHAINED            T_IOM_CHAINED
 
 
 INPUT
 
-T_TERM
-       $var = SvTERM ($arg);
-T_WATCHER
+T_IOM_WATCHER
        $var = SvWATCHER ($arg);
-T_TIMER
+T_IOM_TIMER
        $var = SvTIMER ($arg);
-T_IOW
+T_IOM_IOW
        $var = SvIOW ($arg);
-T_PW
+T_IOM_PW
        $var = SvPW ($arg);
-T_IW
+T_IOM_IW
        $var = SvIW ($arg);
-T_OVERLAY
-       $var = SvOVERLAY ($arg);
 
 
 OUTPUT
 
-T_TERM
-       $arg = newSVterm ($var);
-T_TIMER
+T_IOM_TIMER
        $arg = newSVtimer ($var);
-T_IOW
+T_IOM_IOW
        $arg = newSViow ($var);
-T_PW
+T_IOM_PW
        $arg = newSVpw ($var);
-T_IW
+T_IOM_IW
        $arg = newSViw ($var);
-T_CHAINED
+T_IOM_CHAINED
        $arg = newSVsv (ST(0));
 
diff --git a/src/typemap.iom b/src/typemap.iom
new file mode 100644 (file)
index 0000000..3b2a217
--- /dev/null
@@ -0,0 +1,22 @@
+rxvt_term *            T_TERM
+
+overlay *              T_OVERLAY
+
+Time                   T_UV
+Atom                   T_UV
+Window                 T_UV
+
+
+INPUT
+
+T_TERM
+       $var = SvTERM ($arg);
+T_OVERLAY
+       $var = SvOVERLAY ($arg);
+
+
+OUTPUT
+
+T_TERM
+       $arg = newSVterm ($var);
+