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.126 by root, Wed Nov 5 14:43:54 2008 UTC vs.
Revision 1.130 by sf-exg, Sun Feb 14 19:34:42 2010 UTC

1055 OUTPUT: 1055 OUTPUT:
1056 RETVAL 1056 RETVAL
1057 1057
1058#define TERM_OFFSET(sym) offsetof (TermWin_t, sym) 1058#define TERM_OFFSET(sym) offsetof (TermWin_t, sym)
1059 1059
1060#define TERM_OFFSET_width TERM_OFFSET(width) 1060#define TERM_OFFSET_width TERM_OFFSET(width)
1061#define TERM_OFFSET_height TERM_OFFSET(height) 1061#define TERM_OFFSET_height TERM_OFFSET(height)
1062#define TERM_OFFSET_fwidth TERM_OFFSET(fwidth) 1062#define TERM_OFFSET_fwidth TERM_OFFSET(fwidth)
1063#define TERM_OFFSET_fheight TERM_OFFSET(fheight) 1063#define TERM_OFFSET_fheight TERM_OFFSET(fheight)
1064#define TERM_OFFSET_fbase TERM_OFFSET(fbase) 1064#define TERM_OFFSET_fbase TERM_OFFSET(fbase)
1065#define TERM_OFFSET_nrow TERM_OFFSET(nrow) 1065#define TERM_OFFSET_nrow TERM_OFFSET(nrow)
1066#define TERM_OFFSET_ncol TERM_OFFSET(ncol) 1066#define TERM_OFFSET_ncol TERM_OFFSET(ncol)
1067#define TERM_OFFSET_focus TERM_OFFSET(focus) 1067#define TERM_OFFSET_focus TERM_OFFSET(focus)
1068#define TERM_OFFSET_mapped TERM_OFFSET(mapped) 1068#define TERM_OFFSET_mapped TERM_OFFSET(mapped)
1069#define TERM_OFFSET_int_bwidth TERM_OFFSET(int_bwidth) 1069#define TERM_OFFSET_int_bwidth TERM_OFFSET(int_bwidth)
1070#define TERM_OFFSET_ext_bwidth TERM_OFFSET(ext_bwidth) 1070#define TERM_OFFSET_ext_bwidth TERM_OFFSET(ext_bwidth)
1071#define TERM_OFFSET_lineSpace TERM_OFFSET(lineSpace) 1071#define TERM_OFFSET_lineSpace TERM_OFFSET(lineSpace)
1072#define TERM_OFFSET_letterSpace TERM_OFFSET(letterSpace)
1072#define TERM_OFFSET_saveLines TERM_OFFSET(saveLines) 1073#define TERM_OFFSET_saveLines TERM_OFFSET(saveLines)
1073#define TERM_OFFSET_total_rows TERM_OFFSET(total_rows) 1074#define TERM_OFFSET_total_rows TERM_OFFSET(total_rows)
1074#define TERM_OFFSET_top_row TERM_OFFSET(top_row) 1075#define TERM_OFFSET_top_row TERM_OFFSET(top_row)
1075 1076
1076int 1077int
1077rxvt_term::width () 1078rxvt_term::width ()
1078 ALIAS: 1079 ALIAS:
1079 width = TERM_OFFSET_width 1080 width = TERM_OFFSET_width
1080 height = TERM_OFFSET_height 1081 height = TERM_OFFSET_height
1081 fwidth = TERM_OFFSET_fwidth 1082 fwidth = TERM_OFFSET_fwidth
1082 fheight = TERM_OFFSET_fheight 1083 fheight = TERM_OFFSET_fheight
1083 fbase = TERM_OFFSET_fbase 1084 fbase = TERM_OFFSET_fbase
1084 nrow = TERM_OFFSET_nrow 1085 nrow = TERM_OFFSET_nrow
1085 ncol = TERM_OFFSET_ncol 1086 ncol = TERM_OFFSET_ncol
1086 focus = TERM_OFFSET_focus 1087 focus = TERM_OFFSET_focus
1087 mapped = TERM_OFFSET_mapped 1088 mapped = TERM_OFFSET_mapped
1088 int_bwidth = TERM_OFFSET_int_bwidth 1089 int_bwidth = TERM_OFFSET_int_bwidth
1089 ext_bwidth = TERM_OFFSET_ext_bwidth 1090 ext_bwidth = TERM_OFFSET_ext_bwidth
1090 lineSpace = TERM_OFFSET_lineSpace 1091 lineSpace = TERM_OFFSET_lineSpace
1092 letterSpace = TERM_OFFSET_letterSpace
1091 saveLines = TERM_OFFSET_saveLines 1093 saveLines = TERM_OFFSET_saveLines
1092 total_rows = TERM_OFFSET_total_rows 1094 total_rows = TERM_OFFSET_total_rows
1093 top_row = TERM_OFFSET_top_row 1095 top_row = TERM_OFFSET_top_row
1094 CODE: 1096 CODE:
1095 RETVAL = *(int *)((char *)THIS + ix); 1097 RETVAL = *(int *)((char *)THIS + ix);
1096 OUTPUT: 1098 OUTPUT:
1097 RETVAL 1099 RETVAL
1098 1100
1548 EXTEND (SP, 2); 1550 EXTEND (SP, 2);
1549 PUSHs (sv_2mortal (newSViv (rc.row))); 1551 PUSHs (sv_2mortal (newSViv (rc.row)));
1550 PUSHs (sv_2mortal (newSViv (rc.col))); 1552 PUSHs (sv_2mortal (newSViv (rc.col)));
1551 } 1553 }
1552 1554
1553 if (items == 3) 1555 if (items >= 3)
1554 { 1556 {
1555 rc.row = SvIV (ST (1)); 1557 rc.row = SvIV (ST (1));
1556 rc.col = SvIV (ST (2)); 1558 rc.col = SvIV (ST (2));
1557 1559
1558 if (ix == 2) 1560 if (ix == 2)
1574 clamp_it (rc.col, 0, THIS->ncol); 1576 clamp_it (rc.col, 0, THIS->ncol);
1575 clamp_it (rc.row, THIS->top_row, THIS->nrow - 1); 1577 clamp_it (rc.row, THIS->top_row, THIS->nrow - 1);
1576 1578
1577 if (ix) 1579 if (ix)
1578 { 1580 {
1581 THIS->selection.screen = THIS->current_screen;
1582
1579 THIS->want_refresh = 1; 1583 THIS->want_refresh = 1;
1580 THIS->refresh_check (); 1584 THIS->refresh_check ();
1581 } 1585 }
1582 } 1586 }
1583} 1587}
1584 1588
1585char 1589int
1586rxvt_term::cur_charset () 1590rxvt_term::selection_screen (int screen = -1)
1587 CODE: 1591 CODE:
1588 RETVAL = THIS->charsets [THIS->screen.charset]; 1592 RETVAL = THIS->selection.screen;
1589 OUTPUT: 1593 if (screen >= 0)
1594 THIS->selection.screen = screen;
1595 OUTPUT:
1590 RETVAL 1596 RETVAL
1591 1597
1592void 1598void
1593rxvt_term::selection_clear () 1599rxvt_term::selection_clear (bool clipboard = false)
1594 1600
1595void 1601void
1596rxvt_term::selection_make (Time eventtime, bool rect = false) 1602rxvt_term::selection_make (Time eventtime, bool rect = false)
1597 CODE: 1603 CODE:
1598 THIS->selection.op = SELECTION_CONT; 1604 THIS->selection.op = SELECTION_CONT;
1599 THIS->selection.rect = rect; 1605 THIS->selection.rect = rect;
1600 THIS->selection_make (eventtime); 1606 THIS->selection_make (eventtime);
1601 1607
1602int 1608int
1603rxvt_term::selection_grab (Time eventtime) 1609rxvt_term::selection_grab (Time eventtime, bool clipboard = false)
1604 1610
1605void 1611void
1606rxvt_term::selection (SV *newtext = 0) 1612rxvt_term::selection (SV *newtext = 0, bool clipboard = false)
1607 PPCODE: 1613 PPCODE:
1608{ 1614{
1615 wchar_t * &text = clipboard ? THIS->selection.clip_text : THIS->selection.text;
1616 unsigned int &len = clipboard ? THIS->selection.clip_len : THIS->selection.len;
1617
1609 if (GIMME_V != G_VOID) 1618 if (GIMME_V != G_VOID)
1610 XPUSHs (THIS->selection.text 1619 XPUSHs (text
1611 ? sv_2mortal (wcs2sv (THIS->selection.text, THIS->selection.len)) 1620 ? sv_2mortal (wcs2sv (text, len))
1612 : &PL_sv_undef); 1621 : &PL_sv_undef);
1613 1622
1614 if (newtext) 1623 if (newtext)
1615 { 1624 {
1616 free (THIS->selection.text); 1625 free (text);
1617 1626
1618 THIS->selection.text = sv2wcs (newtext); 1627 text = sv2wcs (newtext);
1619 THIS->selection.len = wcslen (THIS->selection.text); 1628 len = wcslen (text);
1620 } 1629 }
1621} 1630}
1631
1632char
1633rxvt_term::cur_charset ()
1634 CODE:
1635 RETVAL = THIS->charsets [THIS->screen.charset];
1636 OUTPUT:
1637 RETVAL
1622 1638
1623void 1639void
1624rxvt_term::scr_xor_rect (int beg_row, int beg_col, int end_row, int end_col, U32 rstyle1 = RS_RVid, U32 rstyle2 = RS_RVid | RS_Uline) 1640rxvt_term::scr_xor_rect (int beg_row, int beg_col, int end_row, int end_col, U32 rstyle1 = RS_RVid, U32 rstyle2 = RS_RVid | RS_Uline)
1625 1641
1626void 1642void

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines