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.258 by root, Fri Dec 30 21:07:27 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),
858 867
868 const_iv (None),
859 const_iv (CurrentTime), 869 const_iv (CurrentTime),
860 const_iv (ShiftMask), 870 const_iv (ShiftMask),
861 const_iv (LockMask), 871 const_iv (LockMask),
862 const_iv (ControlMask), 872 const_iv (ControlMask),
863 const_iv (Mod1Mask), 873 const_iv (Mod1Mask),
934 const_iv (SelectionRequest), 944 const_iv (SelectionRequest),
935 const_iv (SelectionNotify), 945 const_iv (SelectionNotify),
936 const_iv (ColormapNotify), 946 const_iv (ColormapNotify),
937 const_iv (ClientMessage), 947 const_iv (ClientMessage),
938 const_iv (MappingNotify), 948 const_iv (MappingNotify),
949
950 // shape extension
951 const_iv (ShapeSet),
952 const_iv (ShapeUnion),
953 const_iv (ShapeIntersect),
954 const_iv (ShapeSubtract),
955 const_iv (ShapeInvert),
956
957 const_iv (ShapeBounding),
958 const_iv (ShapeClip),
959 const_iv (ShapeInput),
960
961 // XIM
939# if ENABLE_XIM_ONTHESPOT 962# if ENABLE_XIM_ONTHESPOT
940 const_iv (XIMReverse), 963 const_iv (XIMReverse),
941 const_iv (XIMUnderline), 964 const_iv (XIMUnderline),
942 const_iv (XIMHighlight), 965 const_iv (XIMHighlight),
943 const_iv (XIMPrimary), 966 const_iv (XIMPrimary),
944 const_iv (XIMSecondary), 967 const_iv (XIMSecondary),
945 const_iv (XIMTertiary), 968 const_iv (XIMTertiary),
946 const_iv (XIMVisibleToForward), 969 const_iv (XIMVisibleToForward),
947 const_iv (XIMVisibleToBackword), 970 const_iv (XIMVisibleToBackword),
948 const_iv (XIMVisibleToCenter), 971 const_iv (XIMVisibleToCenter),
972# endif
949#if XRENDER 973# if XRENDER
950 const_iv (PictStandardARGB32), 974 const_iv (PictStandardARGB32),
951 const_iv (PictStandardRGB24), 975 const_iv (PictStandardRGB24),
952 const_iv (PictStandardA8), 976 const_iv (PictStandardA8),
953 const_iv (PictStandardA4), 977 const_iv (PictStandardA4),
954 const_iv (PictStandardA1), 978 const_iv (PictStandardA1),
1010 const_iv (PictOpExclusion), 1034 const_iv (PictOpExclusion),
1011 const_iv (PictOpHSLHue), 1035 const_iv (PictOpHSLHue),
1012 const_iv (PictOpHSLSaturation), 1036 const_iv (PictOpHSLSaturation),
1013 const_iv (PictOpHSLColor), 1037 const_iv (PictOpHSLColor),
1014 const_iv (PictOpHSLLuminosity), 1038 const_iv (PictOpHSLLuminosity),
1015#endif 1039# endif
1016# if 0 1040# if 0
1017 const_iv (XIMForwardChar), 1041 const_iv (XIMForwardChar),
1018 const_iv (XIMBackwardChar), 1042 const_iv (XIMBackwardChar),
1019 const_iv (XIMForwardWord), 1043 const_iv (XIMForwardWord),
1020 const_iv (XIMBackwardWord), 1044 const_iv (XIMBackwardWord),
1024 const_iv (XIMPreviousLine), 1048 const_iv (XIMPreviousLine),
1025 const_iv (XIMLineStart), 1049 const_iv (XIMLineStart),
1026 const_iv (XIMLineEnd), 1050 const_iv (XIMLineEnd),
1027 const_iv (XIMAbsolutePosition), 1051 const_iv (XIMAbsolutePosition),
1028 const_iv (XIMDontChange), 1052 const_iv (XIMDontChange),
1029# endif
1030# endif 1053# endif
1031 1054
1032 /* DEC private modes */ 1055 /* DEC private modes */
1033 const_iv (PrivMode_132), 1056 const_iv (PrivMode_132),
1034 const_iv (PrivMode_132OK), 1057 const_iv (PrivMode_132OK),
1143int 1166int
1144SET_CUSTOM (int rend, int new_value) 1167SET_CUSTOM (int rend, int new_value)
1145 CODE: 1168 CODE:
1146{ 1169{
1147 if (!IN_RANGE_EXC (new_value, 0, RS_customCount)) 1170 if (!IN_RANGE_EXC (new_value, 0, RS_customCount))
1148 croak ("custom value out of range, must be 0..%d", RS_customCount - 1); 1171 croak ("custom value out of range, must be 0..%lu", RS_customCount - 1);
1149 1172
1150 RETVAL = (rend & ~RS_customMask) 1173 RETVAL = (rend & ~RS_customMask)
1151 | ((new_value << RS_customShift) & RS_customMask); 1174 | ((new_value << RS_customShift) & RS_customMask);
1152} 1175}
1153 OUTPUT: 1176 OUTPUT:
1190 av_store (av, i, SvREFCNT_inc (*av_fetch (av, i + 1, 0))); 1213 av_store (av, i, SvREFCNT_inc (*av_fetch (av, i + 1, 0)));
1191 1214
1192 av_pop (av); 1215 av_pop (av);
1193 1216
1194 delete req; 1217 delete req;
1218
1219Region
1220XCreateRegion ()
1221
1222int
1223XUnionRectWithRegion (int x, int y, int w, int h, Region src, Region dst)
1224 CODE:
1225 XRectangle rect;
1226 rect.x = x;
1227 rect.y = y;
1228 rect.width = w;
1229 rect.height = h;
1230 RETVAL = XUnionRectWithRegion (&rect, src, dst);
1231 OUTPUT: RETVAL
1232
1233int
1234XIntersectRegion (Region src1, Region src2, Region res)
1235
1236int
1237XUnionRegion (Region src1, Region src2, Region res)
1238
1239int
1240XSubtractRegion (Region src1, Region src2, Region res)
1241
1242int
1243XXorRegion (Region src1, Region src2, Region res)
1244
1245int
1246XOffsetRegion (Region r, int dx, int dy)
1247
1248int
1249XShrinkRegion (Region r, int dx, int dy)
1250
1251int
1252XDestroyRegion (Region r)
1195 1253
1196MODULE = urxvt PACKAGE = urxvt::term 1254MODULE = urxvt PACKAGE = urxvt::term
1197 1255
1198SV * 1256SV *
1199_new (AV *env, AV *arg) 1257_new (AV *env, AV *arg)
1372 1430
1373SV * 1431SV *
1374rxvt_term::locale_encode (SV *str) 1432rxvt_term::locale_encode (SV *str)
1375 CODE: 1433 CODE:
1376{ 1434{
1435 if (!SvOK (str))
1436 XSRETURN_UNDEF;
1437
1377 wchar_t *wstr = sv2wcs (str); 1438 wchar_t *wstr = sv2wcs (str);
1378 1439
1379 rxvt_push_locale (THIS->locale); 1440 rxvt_push_locale (THIS->locale);
1380 char *mbstr = rxvt_wcstombs (wstr); 1441 char *mbstr = rxvt_wcstombs (wstr);
1381 rxvt_pop_locale (); 1442 rxvt_pop_locale ();
1390 1451
1391SV * 1452SV *
1392rxvt_term::locale_decode (SV *octets) 1453rxvt_term::locale_decode (SV *octets)
1393 CODE: 1454 CODE:
1394{ 1455{
1456 if (!SvOK (octets))
1457 XSRETURN_UNDEF;
1458
1395 STRLEN len; 1459 STRLEN len;
1396 char *data = SvPVbyte (octets, len); 1460 char *data = SvPVbyte (octets, len);
1397 1461
1398 rxvt_push_locale (THIS->locale); 1462 rxvt_push_locale (THIS->locale);
1399 wchar_t *wstr = rxvt_mbstowcs (data, len); 1463 wchar_t *wstr = rxvt_mbstowcs (data, len);
1562 THIS->rstyle = new_rstyle; 1626 THIS->rstyle = new_rstyle;
1563 OUTPUT: 1627 OUTPUT:
1564 RETVAL 1628 RETVAL
1565 1629
1566int 1630int
1567rxvt_term::view_start (int newval = 1) 1631rxvt_term::view_start (int newval = 0)
1568 PROTOTYPE: $;$ 1632 PROTOTYPE: $;$
1569 CODE: 1633 CODE:
1570{ 1634{
1571 RETVAL = THIS->view_start; 1635 RETVAL = THIS->view_start;
1572 if (items > 1) 1636 if (items > 1)
2195 2259
2196void 2260void
2197XDeleteProperty (rxvt_term *term, Window window, Atom property) 2261XDeleteProperty (rxvt_term *term, Window window, Atom property)
2198 C_ARGS: term->dpy, window, property 2262 C_ARGS: term->dpy, window, property
2199 2263
2264void
2265rxvt_term::XShapeQueryVersion ()
2266 PPCODE:
2267 int major, minor;
2268 EXTEND (SP, 2);
2269 if (XShapeQueryVersion (THIS->display->dpy, &major, &minor))
2270 {
2271 PUSHs (sv_2mortal (newSViv (major)));
2272 PUSHs (sv_2mortal (newSViv (minor)));
2273 }
2274
2275void
2276XShapeCombineRegion (rxvt_term *term, Window dest, int destKind, int xOff, int yOff, Region r, int op)
2277 C_ARGS: term->display->dpy, dest, destKind, xOff, yOff, r, op
2278
2279void
2280XShapeCombineMask (rxvt_term *term, XID dest, int destKind, int xOff, int yOff, Pixmap src, int op)
2281 C_ARGS: term->display->dpy, dest, destKind, xOff, yOff, src, op
2282
2283void
2284XShapeCombineShape (rxvt_term *term, XID dest, int destKind, int xOff, int yOff, Pixmap src, int srcKind, int op)
2285 C_ARGS: term->display->dpy, dest, destKind, xOff, yOff, src, srcKind, op
2286
2200Window 2287Window
2201rxvt_term::DefaultRootWindow () 2288rxvt_term::DefaultRootWindow ()
2202 CODE: 2289 CODE:
2203 RETVAL = THIS->display->root; 2290 RETVAL = THIS->display->root;
2204 OUTPUT: 2291 OUTPUT:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines