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.218 by root, Sat Apr 26 20:51:12 2014 UTC vs.
Revision 1.226 by sf-exg, Wed Sep 3 18:20:37 2014 UTC

1/*----------------------------------------------------------------------* 1/*----------------------------------------------------------------------*
2 * File: rxvtperl.xs 2 * File: rxvtperl.xs
3 *----------------------------------------------------------------------* 3 *----------------------------------------------------------------------*
4 * 4 *
5 * All portions of code are copyright by their respective author/s. 5 * All portions of code are copyright by their respective author/s.
6 * Copyright (c) 2005-2008,2011 Marc Lehmann <schmorp@schmorp.de> 6 * Copyright (c) 2005-2014,2011 Marc Lehmann <schmorp@schmorp.de>
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by 9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or 10 * the Free Software Foundation; either version 3 of the License, or
11 * (at your option) any later version. 11 * (at your option) any later version.
12 * 12 *
13 * This program is distributed in the hope that it will be useful, 13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
490 490
491 FREETMPS; 491 FREETMPS;
492 LEAVE; 492 LEAVE;
493 493
494 return ret; 494 return ret;
495}
496
497static void
498_keysym_resource_push (rxvt_term *term, const char *k, const char *v)
499{
500 dSP;
501 XPUSHs (sv_2mortal (newSVpv (v, 0)));
502 PUTBACK;
503}
504
505static void
506_keysym_resources (rxvt_term *term)
507{
508 term->enumerate_keysym_resources (_keysym_resource_push);
495} 509}
496 510
497static void 511static void
498ungrab (rxvt_term *THIS) 512ungrab (rxvt_term *THIS)
499{ 513{
795 IV iv; 809 IV iv;
796 } *civ, const_iv[] = { 810 } *civ, const_iv[] = {
797# define const_iv(name) { # name, (IV)name } 811# define const_iv(name) { # name, (IV)name }
798 const_iv (HOOK_INIT), 812 const_iv (HOOK_INIT),
799 const_iv (HOOK_DESTROY), 813 const_iv (HOOK_DESTROY),
800 const_iv (HOOK_KEYBOARD_DISPATCH), 814 const_iv (HOOK_ACTION),
801 815
802 const_iv (NUM_RESOURCES), 816 const_iv (NUM_RESOURCES),
803 const_iv (DEFAULT_RSTYLE), 817 const_iv (DEFAULT_RSTYLE),
804 const_iv (OVERLAY_RSTYLE), 818 const_iv (OVERLAY_RSTYLE),
805 const_iv (Color_Bits), 819 const_iv (Color_Bits),
1193void 1207void
1194rxvt_term::put_option_db (octet_string specifier, octet_string value) 1208rxvt_term::put_option_db (octet_string specifier, octet_string value)
1195 CODE: 1209 CODE:
1196 XrmPutStringResource (&THIS->option_db, specifier, value); 1210 XrmPutStringResource (&THIS->option_db, specifier, value);
1197 1211
1212void
1213rxvt_term::_keysym_resources ()
1214 PPCODE:
1215 PUTBACK;
1216 _keysym_resources (THIS);
1217 SPAGAIN;
1218
1198int 1219int
1199rxvt_term::grab_button (int button, U32 modifiers, Window window = THIS->vt) 1220rxvt_term::grab_button (int button, U32 modifiers, Window window = THIS->vt)
1200 CODE: 1221 CODE:
1201 RETVAL = XGrabButton (THIS->dpy, button, modifiers, window, 1, 1222 RETVAL = XGrabButton (THIS->dpy, button, modifiers, window, 1,
1202 ButtonPressMask | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask | PointerMotionMask, 1223 ButtonPressMask | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask | PointerMotionMask,
1816 THIS->cursor_blink_reset (); 1837 THIS->cursor_blink_reset ();
1817 break; 1838 break;
1818#endif 1839#endif
1819 1840
1820 case Opt_cursorUnderline: 1841 case Opt_cursorUnderline:
1842 THIS->cursor_type = set ? 1 : 0;
1821 THIS->want_refresh = 1; 1843 THIS->want_refresh = 1;
1822 THIS->refresh_check (); 1844 THIS->refresh_check ();
1823 break; 1845 break;
1824 1846
1825# case Opt_scrollBar_floating: 1847# case Opt_scrollBar_floating:
1831} 1853}
1832 OUTPUT: 1854 OUTPUT:
1833 RETVAL 1855 RETVAL
1834 1856
1835bool 1857bool
1836rxvt_term::parse_keysym (char *keysym, char *str) 1858rxvt_term::bind_action (char *keysym, char *str)
1859 ALIAS:
1860 parse_keysym = 1
1837 CODE: 1861 CODE:
1838 RETVAL = 0 < THIS->parse_keysym (keysym, str); 1862 RETVAL = 0 < THIS->bind_action (keysym, str);
1839 THIS->keyboard->register_done (); 1863 THIS->keyboard->register_done ();
1840 OUTPUT: 1864 OUTPUT:
1841 RETVAL 1865 RETVAL
1842
1843void
1844rxvt_term::register_command (int keysym, unsigned int state, SV *str)
1845 CODE:
1846 wchar_t *wstr = sv2wcs (str);
1847 THIS->keyboard->register_user_translation (keysym, state, wstr);
1848 free (wstr);
1849 1866
1850void 1867void
1851rxvt_term::screen_cur (...) 1868rxvt_term::screen_cur (...)
1852 PROTOTYPE: $;$$ 1869 PROTOTYPE: $;$$
1853 ALIAS: 1870 ALIAS:
1979 THIS->scr_add_lines (wstr, wcslen (wstr)); 1996 THIS->scr_add_lines (wstr, wcslen (wstr));
1980 free (wstr); 1997 free (wstr);
1981} 1998}
1982 1999
1983void 2000void
2001rxvt_term::tt_write_user_input (SV *octets)
2002 INIT:
2003 STRLEN len;
2004 char *str = SvPVbyte (octets, len);
2005 C_ARGS:
2006 str, len
2007
2008void
1984rxvt_term::tt_write (SV *octets) 2009rxvt_term::tt_write (SV *octets)
1985 INIT: 2010 INIT:
1986 STRLEN len; 2011 STRLEN len;
1987 char *str = SvPVbyte (octets, len); 2012 char *str = SvPVbyte (octets, len);
1988 C_ARGS: 2013 C_ARGS:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines