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.251 by sf-exg, Wed Jul 14 12:39:57 2021 UTC vs.
Revision 1.257 by root, Fri Dec 30 16:51:59 2022 UTC

30#include "../config.h" 30#include "../config.h"
31 31
32#include <stddef.h> 32#include <stddef.h>
33#include <stdarg.h> 33#include <stdarg.h>
34 34
35#include "unistd.h" 35#include <unistd.h>
36
37#include <X11/extensions/shape.h>
38
39// support old includes (https://bugs.freedesktop.org/show_bug.cgi?id=2799, https://lists.x.org/archives/xorg-arch/2005-March/000004.html)
40#ifndef ShapeInput
41# define ShapeInput 2
42#endif
36 43
37#include "ev_cpp.h" 44#include "ev_cpp.h"
38#include "rxvt.h" 45#include "rxvt.h"
39#include "keyboard.h" 46#include "keyboard.h"
40#include "rxvtutil.h" 47#include "rxvtutil.h"
529 THIS->perl.grabtime = 0; 536 THIS->perl.grabtime = 0;
530 } 537 }
531} 538}
532 539
533bool 540bool
534rxvt_perl_interp::invoke (rxvt_term *term, hook_type htype, ...) 541rxvt_perl_interp::invoke (rxvt_term *term, int htype, ...)
535{ 542{
536 if (!perl || !term->perl.self) 543 if (!perl || !term->perl.self)
537 return false; 544 return false;
538 545
539 localise_env set_environ (perl_environ); 546 localise_env set_environ (perl_environ);
821 } *civ, const_iv[] = { 828 } *civ, const_iv[] = {
822# define const_iv(name) { # name, (IV)name } 829# define const_iv(name) { # name, (IV)name }
823 const_iv (HOOK_INIT), 830 const_iv (HOOK_INIT),
824 const_iv (HOOK_DESTROY), 831 const_iv (HOOK_DESTROY),
825 const_iv (HOOK_ACTION), 832 const_iv (HOOK_ACTION),
833 const_iv (HOOK_OSC_SEQ),
834 const_iv (HOOK_OSC_SEQ_PERL),
826 835
827 const_iv (NUM_RESOURCES), 836 const_iv (NUM_RESOURCES),
828 const_iv (DEFAULT_RSTYLE), 837 const_iv (DEFAULT_RSTYLE),
829 const_iv (OVERLAY_RSTYLE), 838 const_iv (OVERLAY_RSTYLE),
830 const_iv (Color_Bits), 839 const_iv (Color_Bits),
845 const_iv (RS_Uline), 854 const_iv (RS_Uline),
846 855
847 // TODO: should support all colour constants, create colorinc.h &c 856 // TODO: should support all colour constants, create colorinc.h &c
848 const_iv (Color_fg), 857 const_iv (Color_fg),
849 const_iv (Color_bg), 858 const_iv (Color_bg),
850#if OFF_FOCUS_FADING 859# if OFF_FOCUS_FADING
851 const_iv (Color_fade), 860 const_iv (Color_fade),
852#endif 861# endif
853 const_iv (Color_pointer_fg), 862 const_iv (Color_pointer_fg),
854 const_iv (Color_pointer_bg), 863 const_iv (Color_pointer_bg),
855 const_iv (Color_border), 864 const_iv (Color_border),
856 const_iv (NRS_COLORS), 865 const_iv (NRS_COLORS),
857 const_iv (TOTAL_COLORS), 866 const_iv (TOTAL_COLORS),
934 const_iv (SelectionRequest), 943 const_iv (SelectionRequest),
935 const_iv (SelectionNotify), 944 const_iv (SelectionNotify),
936 const_iv (ColormapNotify), 945 const_iv (ColormapNotify),
937 const_iv (ClientMessage), 946 const_iv (ClientMessage),
938 const_iv (MappingNotify), 947 const_iv (MappingNotify),
948
949 // shape extension
950 const_iv (ShapeSet),
951 const_iv (ShapeUnion),
952 const_iv (ShapeIntersect),
953 const_iv (ShapeSubtract),
954 const_iv (ShapeInvert),
955
956 const_iv (ShapeBounding),
957 const_iv (ShapeClip),
958 const_iv (ShapeInput),
959
960 // XIM
939# if ENABLE_XIM_ONTHESPOT 961# if ENABLE_XIM_ONTHESPOT
940 const_iv (XIMReverse), 962 const_iv (XIMReverse),
941 const_iv (XIMUnderline), 963 const_iv (XIMUnderline),
942 const_iv (XIMHighlight), 964 const_iv (XIMHighlight),
943 const_iv (XIMPrimary), 965 const_iv (XIMPrimary),
944 const_iv (XIMSecondary), 966 const_iv (XIMSecondary),
945 const_iv (XIMTertiary), 967 const_iv (XIMTertiary),
946 const_iv (XIMVisibleToForward), 968 const_iv (XIMVisibleToForward),
947 const_iv (XIMVisibleToBackword), 969 const_iv (XIMVisibleToBackword),
948 const_iv (XIMVisibleToCenter), 970 const_iv (XIMVisibleToCenter),
971# endif
949#if XRENDER 972# if XRENDER
950 const_iv (PictStandardARGB32), 973 const_iv (PictStandardARGB32),
951 const_iv (PictStandardRGB24), 974 const_iv (PictStandardRGB24),
952 const_iv (PictStandardA8), 975 const_iv (PictStandardA8),
953 const_iv (PictStandardA4), 976 const_iv (PictStandardA4),
954 const_iv (PictStandardA1), 977 const_iv (PictStandardA1),
1010 const_iv (PictOpExclusion), 1033 const_iv (PictOpExclusion),
1011 const_iv (PictOpHSLHue), 1034 const_iv (PictOpHSLHue),
1012 const_iv (PictOpHSLSaturation), 1035 const_iv (PictOpHSLSaturation),
1013 const_iv (PictOpHSLColor), 1036 const_iv (PictOpHSLColor),
1014 const_iv (PictOpHSLLuminosity), 1037 const_iv (PictOpHSLLuminosity),
1015#endif 1038# endif
1016# if 0 1039# if 0
1017 const_iv (XIMForwardChar), 1040 const_iv (XIMForwardChar),
1018 const_iv (XIMBackwardChar), 1041 const_iv (XIMBackwardChar),
1019 const_iv (XIMForwardWord), 1042 const_iv (XIMForwardWord),
1020 const_iv (XIMBackwardWord), 1043 const_iv (XIMBackwardWord),
1024 const_iv (XIMPreviousLine), 1047 const_iv (XIMPreviousLine),
1025 const_iv (XIMLineStart), 1048 const_iv (XIMLineStart),
1026 const_iv (XIMLineEnd), 1049 const_iv (XIMLineEnd),
1027 const_iv (XIMAbsolutePosition), 1050 const_iv (XIMAbsolutePosition),
1028 const_iv (XIMDontChange), 1051 const_iv (XIMDontChange),
1029# endif
1030# endif 1052# endif
1031 1053
1032 /* DEC private modes */ 1054 /* DEC private modes */
1033 const_iv (PrivMode_132), 1055 const_iv (PrivMode_132),
1034 const_iv (PrivMode_132OK), 1056 const_iv (PrivMode_132OK),
1143int 1165int
1144SET_CUSTOM (int rend, int new_value) 1166SET_CUSTOM (int rend, int new_value)
1145 CODE: 1167 CODE:
1146{ 1168{
1147 if (!IN_RANGE_EXC (new_value, 0, RS_customCount)) 1169 if (!IN_RANGE_EXC (new_value, 0, RS_customCount))
1148 croak ("custom value out of range, must be 0..%d", RS_customCount - 1); 1170 croak ("custom value out of range, must be 0..%lu", RS_customCount - 1);
1149 1171
1150 RETVAL = (rend & ~RS_customMask) 1172 RETVAL = (rend & ~RS_customMask)
1151 | ((new_value << RS_customShift) & RS_customMask); 1173 | ((new_value << RS_customShift) & RS_customMask);
1152} 1174}
1153 OUTPUT: 1175 OUTPUT:
1372 1394
1373SV * 1395SV *
1374rxvt_term::locale_encode (SV *str) 1396rxvt_term::locale_encode (SV *str)
1375 CODE: 1397 CODE:
1376{ 1398{
1399 if (!SvOK (str))
1400 XSRETURN_UNDEF;
1401
1377 wchar_t *wstr = sv2wcs (str); 1402 wchar_t *wstr = sv2wcs (str);
1378 1403
1379 rxvt_push_locale (THIS->locale); 1404 rxvt_push_locale (THIS->locale);
1380 char *mbstr = rxvt_wcstombs (wstr); 1405 char *mbstr = rxvt_wcstombs (wstr);
1381 rxvt_pop_locale (); 1406 rxvt_pop_locale ();
1390 1415
1391SV * 1416SV *
1392rxvt_term::locale_decode (SV *octets) 1417rxvt_term::locale_decode (SV *octets)
1393 CODE: 1418 CODE:
1394{ 1419{
1420 if (!SvOK (octets))
1421 XSRETURN_UNDEF;
1422
1395 STRLEN len; 1423 STRLEN len;
1396 char *data = SvPVbyte (octets, len); 1424 char *data = SvPVbyte (octets, len);
1397 1425
1398 rxvt_push_locale (THIS->locale); 1426 rxvt_push_locale (THIS->locale);
1399 wchar_t *wstr = rxvt_mbstowcs (data, len); 1427 wchar_t *wstr = rxvt_mbstowcs (data, len);
1562 THIS->rstyle = new_rstyle; 1590 THIS->rstyle = new_rstyle;
1563 OUTPUT: 1591 OUTPUT:
1564 RETVAL 1592 RETVAL
1565 1593
1566int 1594int
1567rxvt_term::view_start (int newval = 1) 1595rxvt_term::view_start (int newval = 0)
1568 PROTOTYPE: $;$ 1596 PROTOTYPE: $;$
1569 CODE: 1597 CODE:
1570{ 1598{
1571 RETVAL = THIS->view_start; 1599 RETVAL = THIS->view_start;
1572 if (items > 1) 1600 if (items > 1)
2195 2223
2196void 2224void
2197XDeleteProperty (rxvt_term *term, Window window, Atom property) 2225XDeleteProperty (rxvt_term *term, Window window, Atom property)
2198 C_ARGS: term->dpy, window, property 2226 C_ARGS: term->dpy, window, property
2199 2227
2228Region
2229XCreateRegion ()
2230
2231int
2232XUnionRectWithRegion (int x, int y, int w, int h, Region src, Region dst)
2233 CODE:
2234 XRectangle rect;
2235 rect.x = x;
2236 rect.y = y;
2237 rect.width = w;
2238 rect.height = h;
2239 RETVAL = XUnionRectWithRegion (&rect, src, dst);
2240 OUTPUT: RETVAL
2241
2242int
2243XIntersectRegion (Region src1, Region src2, Region res)
2244
2245int
2246XUnionRegion (Region src1, Region src2, Region res)
2247
2248int
2249XSubtractRegion (Region src1, Region src2, Region res)
2250
2251int
2252XXorRegion (Region src1, Region src2, Region res)
2253
2254int
2255XOffsetRegion (Region r, int dx, int dy)
2256
2257int
2258XShrinkRegion (Region r, int dx, int dy)
2259
2260int
2261XDestroyRegion (Region r)
2262
2263void
2264rxvt_term::XShapeQueryVersion ()
2265 PPCODE:
2266 int major, minor;
2267 EXTEND (SP, 2);
2268 if (XShapeQueryVersion (THIS->display->dpy, &major, &minor))
2269 {
2270 PUSHs (sv_2mortal (newSViv (major)));
2271 PUSHs (sv_2mortal (newSViv (minor)));
2272 }
2273
2274void
2275XShapeCombineRegion (rxvt_term *term, Window dest, int destKind, int xOff, int yOff, Region r, int op)
2276 C_ARGS: term->display->dpy, dest, destKind, xOff, yOff, r, op
2277
2278void
2279XShapeCombineMask (rxvt_term *term, XID dest, int destKind, int xOff, int yOff, Pixmap src, int op)
2280 C_ARGS: term->display->dpy, dest, destKind, xOff, yOff, src, op
2281
2282void
2283XShapeCombineShape (rxvt_term *term, XID dest, int destKind, int xOff, int yOff, Pixmap src, int srcKind, int op)
2284 C_ARGS: term->display->dpy, dest, destKind, xOff, yOff, src, srcKind, op
2285
2200Window 2286Window
2201rxvt_term::DefaultRootWindow () 2287rxvt_term::DefaultRootWindow ()
2202 CODE: 2288 CODE:
2203 RETVAL = THIS->display->root; 2289 RETVAL = THIS->display->root;
2204 OUTPUT: 2290 OUTPUT:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines