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.253 by root, Sat Jul 24 11:58:27 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);
847 const_iv (RS_Uline), 854 const_iv (RS_Uline),
848 855
849 // TODO: should support all colour constants, create colorinc.h &c 856 // TODO: should support all colour constants, create colorinc.h &c
850 const_iv (Color_fg), 857 const_iv (Color_fg),
851 const_iv (Color_bg), 858 const_iv (Color_bg),
852#if OFF_FOCUS_FADING 859# if OFF_FOCUS_FADING
853 const_iv (Color_fade), 860 const_iv (Color_fade),
854#endif 861# endif
855 const_iv (Color_pointer_fg), 862 const_iv (Color_pointer_fg),
856 const_iv (Color_pointer_bg), 863 const_iv (Color_pointer_bg),
857 const_iv (Color_border), 864 const_iv (Color_border),
858 const_iv (NRS_COLORS), 865 const_iv (NRS_COLORS),
859 const_iv (TOTAL_COLORS), 866 const_iv (TOTAL_COLORS),
936 const_iv (SelectionRequest), 943 const_iv (SelectionRequest),
937 const_iv (SelectionNotify), 944 const_iv (SelectionNotify),
938 const_iv (ColormapNotify), 945 const_iv (ColormapNotify),
939 const_iv (ClientMessage), 946 const_iv (ClientMessage),
940 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
941# if ENABLE_XIM_ONTHESPOT 961# if ENABLE_XIM_ONTHESPOT
942 const_iv (XIMReverse), 962 const_iv (XIMReverse),
943 const_iv (XIMUnderline), 963 const_iv (XIMUnderline),
944 const_iv (XIMHighlight), 964 const_iv (XIMHighlight),
945 const_iv (XIMPrimary), 965 const_iv (XIMPrimary),
946 const_iv (XIMSecondary), 966 const_iv (XIMSecondary),
947 const_iv (XIMTertiary), 967 const_iv (XIMTertiary),
948 const_iv (XIMVisibleToForward), 968 const_iv (XIMVisibleToForward),
949 const_iv (XIMVisibleToBackword), 969 const_iv (XIMVisibleToBackword),
950 const_iv (XIMVisibleToCenter), 970 const_iv (XIMVisibleToCenter),
971# endif
951#if XRENDER 972# if XRENDER
952 const_iv (PictStandardARGB32), 973 const_iv (PictStandardARGB32),
953 const_iv (PictStandardRGB24), 974 const_iv (PictStandardRGB24),
954 const_iv (PictStandardA8), 975 const_iv (PictStandardA8),
955 const_iv (PictStandardA4), 976 const_iv (PictStandardA4),
956 const_iv (PictStandardA1), 977 const_iv (PictStandardA1),
1012 const_iv (PictOpExclusion), 1033 const_iv (PictOpExclusion),
1013 const_iv (PictOpHSLHue), 1034 const_iv (PictOpHSLHue),
1014 const_iv (PictOpHSLSaturation), 1035 const_iv (PictOpHSLSaturation),
1015 const_iv (PictOpHSLColor), 1036 const_iv (PictOpHSLColor),
1016 const_iv (PictOpHSLLuminosity), 1037 const_iv (PictOpHSLLuminosity),
1017#endif 1038# endif
1018# if 0 1039# if 0
1019 const_iv (XIMForwardChar), 1040 const_iv (XIMForwardChar),
1020 const_iv (XIMBackwardChar), 1041 const_iv (XIMBackwardChar),
1021 const_iv (XIMForwardWord), 1042 const_iv (XIMForwardWord),
1022 const_iv (XIMBackwardWord), 1043 const_iv (XIMBackwardWord),
1026 const_iv (XIMPreviousLine), 1047 const_iv (XIMPreviousLine),
1027 const_iv (XIMLineStart), 1048 const_iv (XIMLineStart),
1028 const_iv (XIMLineEnd), 1049 const_iv (XIMLineEnd),
1029 const_iv (XIMAbsolutePosition), 1050 const_iv (XIMAbsolutePosition),
1030 const_iv (XIMDontChange), 1051 const_iv (XIMDontChange),
1031# endif
1032# endif 1052# endif
1033 1053
1034 /* DEC private modes */ 1054 /* DEC private modes */
1035 const_iv (PrivMode_132), 1055 const_iv (PrivMode_132),
1036 const_iv (PrivMode_132OK), 1056 const_iv (PrivMode_132OK),
1145int 1165int
1146SET_CUSTOM (int rend, int new_value) 1166SET_CUSTOM (int rend, int new_value)
1147 CODE: 1167 CODE:
1148{ 1168{
1149 if (!IN_RANGE_EXC (new_value, 0, RS_customCount)) 1169 if (!IN_RANGE_EXC (new_value, 0, RS_customCount))
1150 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);
1151 1171
1152 RETVAL = (rend & ~RS_customMask) 1172 RETVAL = (rend & ~RS_customMask)
1153 | ((new_value << RS_customShift) & RS_customMask); 1173 | ((new_value << RS_customShift) & RS_customMask);
1154} 1174}
1155 OUTPUT: 1175 OUTPUT:
1374 1394
1375SV * 1395SV *
1376rxvt_term::locale_encode (SV *str) 1396rxvt_term::locale_encode (SV *str)
1377 CODE: 1397 CODE:
1378{ 1398{
1399 if (!SvOK (str))
1400 XSRETURN_UNDEF;
1401
1379 wchar_t *wstr = sv2wcs (str); 1402 wchar_t *wstr = sv2wcs (str);
1380 1403
1381 rxvt_push_locale (THIS->locale); 1404 rxvt_push_locale (THIS->locale);
1382 char *mbstr = rxvt_wcstombs (wstr); 1405 char *mbstr = rxvt_wcstombs (wstr);
1383 rxvt_pop_locale (); 1406 rxvt_pop_locale ();
1392 1415
1393SV * 1416SV *
1394rxvt_term::locale_decode (SV *octets) 1417rxvt_term::locale_decode (SV *octets)
1395 CODE: 1418 CODE:
1396{ 1419{
1420 if (!SvOK (octets))
1421 XSRETURN_UNDEF;
1422
1397 STRLEN len; 1423 STRLEN len;
1398 char *data = SvPVbyte (octets, len); 1424 char *data = SvPVbyte (octets, len);
1399 1425
1400 rxvt_push_locale (THIS->locale); 1426 rxvt_push_locale (THIS->locale);
1401 wchar_t *wstr = rxvt_mbstowcs (data, len); 1427 wchar_t *wstr = rxvt_mbstowcs (data, len);
2197 2223
2198void 2224void
2199XDeleteProperty (rxvt_term *term, Window window, Atom property) 2225XDeleteProperty (rxvt_term *term, Window window, Atom property)
2200 C_ARGS: term->dpy, window, property 2226 C_ARGS: term->dpy, window, property
2201 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
2202Window 2286Window
2203rxvt_term::DefaultRootWindow () 2287rxvt_term::DefaultRootWindow ()
2204 CODE: 2288 CODE:
2205 RETVAL = THIS->display->root; 2289 RETVAL = THIS->display->root;
2206 OUTPUT: 2290 OUTPUT:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines