… | |
… | |
501 | |
501 | |
502 | PROTOTYPES: ENABLE |
502 | PROTOTYPES: ENABLE |
503 | |
503 | |
504 | BOOT: |
504 | BOOT: |
505 | { |
505 | { |
506 | # define set_hookname(sym) av_store (hookname, PP_CONCAT(HOOK_, sym), newSVpv (PP_STRINGIFY(sym), 0)) |
|
|
507 | # define export_const(name) newCONSTSUB (gv_stashpv ("urxvt", 1), #name, newSViv (name)); |
506 | # define export_const(name) newCONSTSUB (gv_stashpv ("urxvt", 1), # name, newSViv (name)); |
508 | AV *hookname = get_av ("urxvt::HOOKNAME", 1); |
507 | AV *hookname = get_av ("urxvt::HOOKNAME", 1); |
509 | set_hookname (INIT); |
508 | # define def(sym) av_store (hookname, HOOK_ ## sym, newSVpv (# sym, 0)); |
510 | set_hookname (RESET); |
509 | # include "hookinc.h" |
511 | set_hookname (START); |
510 | # undef def |
512 | set_hookname (DESTROY); |
|
|
513 | set_hookname (SEL_BEGIN); |
|
|
514 | set_hookname (SEL_EXTEND); |
|
|
515 | set_hookname (SEL_MAKE); |
|
|
516 | set_hookname (SEL_GRAB); |
|
|
517 | set_hookname (FOCUS_IN); |
|
|
518 | set_hookname (FOCUS_OUT); |
|
|
519 | set_hookname (VIEW_CHANGE); |
|
|
520 | set_hookname (SCROLL_BACK); |
|
|
521 | set_hookname (TTY_ACTIVITY); |
|
|
522 | set_hookname (REFRESH_BEGIN); |
|
|
523 | set_hookname (REFRESH_END); |
|
|
524 | set_hookname (KEYBOARD_COMMAND); |
|
|
525 | |
511 | |
526 | export_const (DEFAULT_RSTYLE); |
512 | export_const (DEFAULT_RSTYLE); |
527 | export_const (OVERLAY_RSTYLE); |
513 | export_const (OVERLAY_RSTYLE); |
528 | export_const (RS_Bold); |
514 | export_const (RS_Bold); |
529 | export_const (RS_Italic); |
515 | export_const (RS_Italic); |
… | |
… | |
704 | void |
690 | void |
705 | rxvt_term::ROW_t (int row_number, SV *new_text = 0, int start_col = 0) |
691 | rxvt_term::ROW_t (int row_number, SV *new_text = 0, int start_col = 0) |
706 | PPCODE: |
692 | PPCODE: |
707 | { |
693 | { |
708 | if (!IN_RANGE_EXC (row_number, -THIS->nsaved, THIS->nrow)) |
694 | if (!IN_RANGE_EXC (row_number, -THIS->nsaved, THIS->nrow)) |
709 | croak ("row_number number of out range"); |
695 | XSRETURN_EMPTY; |
710 | |
696 | |
711 | line_t &l = ROW(row_number); |
697 | line_t &l = ROW(row_number); |
712 | |
698 | |
713 | if (GIMME_V != G_VOID) |
699 | if (GIMME_V != G_VOID) |
714 | { |
700 | { |
… | |
… | |
751 | void |
737 | void |
752 | rxvt_term::ROW_r (int row_number, SV *new_rend = 0, int start_col = 0) |
738 | rxvt_term::ROW_r (int row_number, SV *new_rend = 0, int start_col = 0) |
753 | PPCODE: |
739 | PPCODE: |
754 | { |
740 | { |
755 | if (!IN_RANGE_EXC (row_number, -THIS->nsaved, THIS->nrow)) |
741 | if (!IN_RANGE_EXC (row_number, -THIS->nsaved, THIS->nrow)) |
756 | croak ("row_number number of out range"); |
742 | XSRETURN_EMPTY; |
757 | |
743 | |
758 | line_t &l = ROW(row_number); |
744 | line_t &l = ROW(row_number); |
759 | |
745 | |
760 | if (GIMME_V != G_VOID) |
746 | if (GIMME_V != G_VOID) |
761 | { |
747 | { |
… | |
… | |
791 | int |
777 | int |
792 | rxvt_term::ROW_l (int row_number, int new_length = -2) |
778 | rxvt_term::ROW_l (int row_number, int new_length = -2) |
793 | CODE: |
779 | CODE: |
794 | { |
780 | { |
795 | if (!IN_RANGE_EXC (row_number, -THIS->nsaved, THIS->nrow)) |
781 | if (!IN_RANGE_EXC (row_number, -THIS->nsaved, THIS->nrow)) |
796 | croak ("row_number number of out range"); |
782 | XSRETURN_EMPTY; |
797 | |
783 | |
798 | line_t &l = ROW(row_number); |
784 | line_t &l = ROW(row_number); |
799 | RETVAL = l.l; |
785 | RETVAL = l.l < 0 ? THIS->ncol : l.l; |
800 | |
786 | |
801 | if (new_length >= -1) |
787 | if (new_length >= -1) |
802 | l.l = new_length; |
788 | l.l = new_length; |
803 | } |
789 | } |
804 | OUTPUT: |
790 | OUTPUT: |
805 | RETVAL |
791 | RETVAL |
806 | |
792 | |
|
|
793 | bool |
|
|
794 | rxvt_term::ROW_is_longer (int row_number) |
|
|
795 | CODE: |
|
|
796 | { |
|
|
797 | if (!IN_RANGE_EXC (row_number, -THIS->nsaved, THIS->nrow)) |
|
|
798 | XSRETURN_EMPTY; |
|
|
799 | |
|
|
800 | line_t &l = ROW(row_number); |
|
|
801 | RETVAL = l.l < 0; |
|
|
802 | } |
|
|
803 | OUTPUT: |
|
|
804 | RETVAL |
|
|
805 | |
807 | SV * |
806 | SV * |
808 | rxvt_term::special_encode (SV *str) |
807 | rxvt_term::special_encode (SV *str) |
809 | CODE: |
808 | CODE: |
810 | abort ();//TODO |
809 | abort ();//TODO |
811 | |
810 | |
… | |
… | |
817 | void |
816 | void |
818 | rxvt_term::_resource (char *name, int index, SV *newval = 0) |
817 | rxvt_term::_resource (char *name, int index, SV *newval = 0) |
819 | PPCODE: |
818 | PPCODE: |
820 | { |
819 | { |
821 | struct resval { const char *name; int value; } rslist [] = { |
820 | struct resval { const char *name; int value; } rslist [] = { |
822 | # define Rs_def(name) { # name, Rs_ ## name }, |
821 | # define def(name) { # name, Rs_ ## name }, |
823 | # define Rs_reserve(name,count) |
822 | # define reserve(name,count) |
824 | # include "rsinc.h" |
823 | # include "rsinc.h" |
825 | # undef Rs_def |
824 | # undef def |
826 | # undef Rs_reserve |
825 | # undef reserve |
827 | }; |
826 | }; |
828 | |
827 | |
829 | struct resval *rs = rslist + sizeof (rslist) / sizeof (rslist [0]); |
828 | struct resval *rs = rslist + sizeof (rslist) / sizeof (rslist [0]); |
830 | |
829 | |
831 | do { |
830 | do { |