… | |
… | |
50 | #undef LINENO |
50 | #undef LINENO |
51 | #define LINENO(n) MOD (THIS->term_start + int(n), THIS->total_rows) |
51 | #define LINENO(n) MOD (THIS->term_start + int(n), THIS->total_rows) |
52 | #undef ROW |
52 | #undef ROW |
53 | #define ROW(n) THIS->row_buf [LINENO (n)] |
53 | #define ROW(n) THIS->row_buf [LINENO (n)] |
54 | |
54 | |
55 | typedef int CHAINED UNUSED; |
|
|
56 | |
|
|
57 | ///////////////////////////////////////////////////////////////////////////// |
55 | ///////////////////////////////////////////////////////////////////////////// |
58 | |
56 | |
59 | static wchar_t * |
57 | static wchar_t * |
60 | sv2wcs (SV *sv) |
58 | sv2wcs (SV *sv) |
61 | { |
59 | { |
… | |
… | |
72 | SV *sv = newSVpv (str, 0); |
70 | SV *sv = newSVpv (str, 0); |
73 | SvUTF8_on (sv); |
71 | SvUTF8_on (sv); |
74 | free (str); |
72 | free (str); |
75 | |
73 | |
76 | return sv; |
74 | return sv; |
77 | } |
|
|
78 | |
|
|
79 | static SV * |
|
|
80 | new_ref (HV *hv, const char *klass) |
|
|
81 | { |
|
|
82 | return sv_bless (newRV ((SV *)hv), gv_stashpv (klass, 1)); |
|
|
83 | } |
75 | } |
84 | |
76 | |
85 | static SV * |
77 | static SV * |
86 | newSVptr (void *ptr, const char *klass) |
78 | newSVptr (void *ptr, const char *klass) |
87 | { |
79 | { |
… | |
… | |
304 | } |
296 | } |
305 | |
297 | |
306 | ///////////////////////////////////////////////////////////////////////////// |
298 | ///////////////////////////////////////////////////////////////////////////// |
307 | |
299 | |
308 | #define IOM_CLASS "urxvt" |
300 | #define IOM_CLASS "urxvt" |
|
|
301 | #define IOM_WARN rxvt_warn |
309 | #include <iom_perl.h> |
302 | #include <iom_perl.h> |
310 | |
303 | |
311 | ///////////////////////////////////////////////////////////////////////////// |
304 | ///////////////////////////////////////////////////////////////////////////// |
312 | |
305 | |
313 | struct rxvt_perl_interp rxvt_perl; |
306 | struct rxvt_perl_interp rxvt_perl; |
… | |
… | |
674 | const_iv (AnyModifier), |
667 | const_iv (AnyModifier), |
675 | |
668 | |
676 | const_iv (NoSymbol), |
669 | const_iv (NoSymbol), |
677 | const_iv (GrabModeSync), |
670 | const_iv (GrabModeSync), |
678 | const_iv (GrabModeAsync), |
671 | const_iv (GrabModeAsync), |
679 | |
|
|
680 | const_iv (EVENT_NONE), |
|
|
681 | const_iv (EVENT_READ), |
|
|
682 | const_iv (EVENT_WRITE), |
|
|
683 | |
672 | |
684 | const_iv (NoEventMask), |
673 | const_iv (NoEventMask), |
685 | const_iv (KeyPressMask), |
674 | const_iv (KeyPressMask), |
686 | const_iv (KeyReleaseMask), |
675 | const_iv (KeyReleaseMask), |
687 | const_iv (ButtonPressMask), |
676 | const_iv (ButtonPressMask), |
… | |
… | |
1406 | SV * |
1395 | SV * |
1407 | rxvt_term::special_decode (SV *text) |
1396 | rxvt_term::special_decode (SV *text) |
1408 | CODE: |
1397 | CODE: |
1409 | { |
1398 | { |
1410 | wchar_t *wstr = sv2wcs (text); |
1399 | wchar_t *wstr = sv2wcs (text); |
1411 | int wlen = wcslen (wstr); |
|
|
1412 | int dlen = 0; |
1400 | int dlen = 0; |
1413 | |
1401 | |
1414 | // find length |
1402 | // find length |
1415 | for (wchar_t *s = wstr; *s; s++) |
1403 | for (wchar_t *s = wstr; *s; s++) |
1416 | if (*s == NOCHAR) |
1404 | if (*s == NOCHAR) |
… | |
… | |
1479 | |
1467 | |
1480 | const char * |
1468 | const char * |
1481 | rxvt_term::x_resource (const char *name) |
1469 | rxvt_term::x_resource (const char *name) |
1482 | |
1470 | |
1483 | bool |
1471 | bool |
1484 | rxvt_term::option (U32 optval, int set = -1) |
1472 | rxvt_term::option (U8 optval, int set = -1) |
1485 | CODE: |
1473 | CODE: |
1486 | { |
1474 | { |
1487 | RETVAL = THIS->options & optval; |
1475 | RETVAL = THIS->option (optval); |
1488 | |
1476 | |
1489 | if (set >= 0) |
1477 | if (set >= 0) |
1490 | { |
1478 | { |
1491 | if (set) |
|
|
1492 | THIS->options |= optval; |
1479 | THIS->set_option (optval, set); |
1493 | else |
|
|
1494 | THIS->options &= ~optval; |
|
|
1495 | |
1480 | |
1496 | if (THIS->check_ev.is_active ()) // avoid doing this before START |
1481 | if (THIS->check_ev.is_active ()) // avoid doing this before START |
1497 | switch (optval) |
1482 | switch (optval) |
1498 | { |
1483 | { |
1499 | case Opt_skipBuiltinGlyphs: |
1484 | case Opt_skipBuiltinGlyphs: |