ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/rxvtperl.xs
(Generate patch)

Comparing rxvt-unicode/src/rxvtperl.xs (file contents):
Revision 1.53 by root, Tue Jan 10 04:49:54 2006 UTC vs.
Revision 1.54 by root, Wed Jan 11 00:59:58 2006 UTC

675 export_const_iv (EVENT_NONE); 675 export_const_iv (EVENT_NONE);
676 export_const_iv (EVENT_READ); 676 export_const_iv (EVENT_READ);
677 export_const_iv (EVENT_WRITE); 677 export_const_iv (EVENT_WRITE);
678} 678}
679 679
680SV *
681new (...)
682 CODE:
683{
684 stringvec *argv = new stringvec;
685 bool success;
686
687 for (int i = 0; i < items ;i++)
688 argv->push_back (strdup (SvPVbyte_nolen (ST (i))));
689
690 rxvt_term *term = new rxvt_term;
691
692 term->argv = argv;
693
694 try
695 {
696 if (!term->init (argv->size (), argv->begin ()))
697 term = 0;
698 }
699 catch (const class rxvt_failure_exception &e)
700 {
701 term->destroy ();
702 croak ("exception caught while initializing new terminal instance");
703 }
704
705 RETVAL = term && term->perl.self ? newSVterm (term) : &PL_sv_undef;
706}
707 OUTPUT:
708 RETVAL
709
710void 680void
711set_should_invoke (int htype, int value) 681set_should_invoke (int htype, int value)
712 CODE: 682 CODE:
713 rxvt_perl.should_invoke [htype] = value; 683 rxvt_perl.should_invoke [htype] = value;
714 684
791} 761}
792 OUTPUT: 762 OUTPUT:
793 RETVAL 763 RETVAL
794 764
795MODULE = urxvt PACKAGE = urxvt::term 765MODULE = urxvt PACKAGE = urxvt::term
766
767SV *
768_new (...)
769 CODE:
770{
771 if (items < 1 || !SvROK (ST (0)) || SvTYPE (SvRV (ST (0))) != SVt_PVAV)
772 croak ("first argument to urxvt::term->_new must be arrayref");
773
774 rxvt_term *term = new rxvt_term;
775
776 term->argv = new stringvec;
777 term->envv = new stringvec;
778
779 for (int i = 1; i < items; i++)
780 term->argv->push_back (strdup (SvPVbyte_nolen (ST (i))));
781
782 AV *envv = (AV *)SvRV (ST (0));
783 for (int i = av_len (envv) + 1; i--; )
784 term->envv->push_back (strdup (SvPVbyte_nolen (*av_fetch (envv, i, 1))));
785
786 term->envv->push_back (0);
787
788 bool success;
789
790 try
791 {
792 success = term->init (term->argv->size (), term->argv->begin ());
793 }
794 catch (const class rxvt_failure_exception &e)
795 {
796 success = false;
797 }
798
799 if (!success)
800 {
801 term->destroy ();
802 croak ("error while initializing new terminal instance");
803 }
804
805 RETVAL = term && term->perl.self
806 ? newSVterm (term) : &PL_sv_undef;
807}
808 OUTPUT:
809 RETVAL
796 810
797void 811void
798rxvt_term::destroy () 812rxvt_term::destroy ()
799 813
800void 814void
959 case 1: RETVAL = THIS->locale; break; 973 case 1: RETVAL = THIS->locale; break;
960 } 974 }
961 OUTPUT: 975 OUTPUT:
962 RETVAL 976 RETVAL
963 977
978SV *
979rxvt_term::_env ()
980 CODE:
981{
982 if (THIS->envv)
983 {
984 AV *av = newAV ();
985
986 for (char **i = THIS->envv->begin (); i != THIS->envv->end (); ++i)
987 if (*i)
988 av_push (av, newSVpv (*i, 0));
989
990 RETVAL = newRV_noinc ((SV *)av);
991 }
992 else
993 RETVAL = &PL_sv_undef;
994}
995 OUTPUT:
996 RETVAL
997
964int 998int
965rxvt_term::pty_ev_events (int events = EVENT_UNDEF) 999rxvt_term::pty_ev_events (int events = EVENT_UNDEF)
966 CODE: 1000 CODE:
967 RETVAL = THIS->pty_ev.events; 1001 RETVAL = THIS->pty_ev.events;
968 if (events != EVENT_UNDEF) 1002 if (events != EVENT_UNDEF)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines