… | |
… | |
11 | * Copyright (c) 1997 mj olesen <olesen@me.QueensU.CA> |
11 | * Copyright (c) 1997 mj olesen <olesen@me.QueensU.CA> |
12 | * - extensive modifications |
12 | * - extensive modifications |
13 | * Copyright (c) 1997,1998 Oezguer Kesim <kesim@math.fu-berlin.de> |
13 | * Copyright (c) 1997,1998 Oezguer Kesim <kesim@math.fu-berlin.de> |
14 | * Copyright (c) 1998-2001 Geoff Wing <gcw@pobox.com> |
14 | * Copyright (c) 1998-2001 Geoff Wing <gcw@pobox.com> |
15 | * - extensive modifications |
15 | * - extensive modifications |
16 | * Copyright (c) 2003-2008 Marc Lehmann <pcg@goof.com> |
16 | * Copyright (c) 2003-2010 Marc Lehmann <pcg@goof.com> |
17 | * |
17 | * |
18 | * This program is free software; you can redistribute it and/or modify |
18 | * This program is free software; you can redistribute it and/or modify |
19 | * it under the terms of the GNU General Public License as published by |
19 | * it under the terms of the GNU General Public License as published by |
20 | * the Free Software Foundation; either version 2 of the License, or |
20 | * the Free Software Foundation; either version 2 of the License, or |
21 | * (at your option) any later version. |
21 | * (at your option) any later version. |
… | |
… | |
359 | rxvt_term::destroy_cb (ev::idle &w, int revents) |
359 | rxvt_term::destroy_cb (ev::idle &w, int revents) |
360 | { |
360 | { |
361 | make_current (); |
361 | make_current (); |
362 | |
362 | |
363 | delete this; |
363 | delete this; |
|
|
364 | } |
|
|
365 | |
|
|
366 | void |
|
|
367 | rxvt_term::set_option (uint8_t opt, bool set) |
|
|
368 | { |
|
|
369 | if (!opt) |
|
|
370 | return; |
|
|
371 | |
|
|
372 | uint8_t mask = 1 << (opt & 7); |
|
|
373 | uint8_t &val = options [opt >> 3]; |
|
|
374 | |
|
|
375 | val = val & ~mask | (set ? mask : 0); |
364 | } |
376 | } |
365 | |
377 | |
366 | /*----------------------------------------------------------------------*/ |
378 | /*----------------------------------------------------------------------*/ |
367 | /* |
379 | /* |
368 | * Exit gracefully, clearing the utmp entry and restoring tty attributes |
380 | * Exit gracefully, clearing the utmp entry and restoring tty attributes |
… | |
… | |
511 | tio->c_cc[VWERSE] = CWERASE; |
523 | tio->c_cc[VWERSE] = CWERASE; |
512 | # endif |
524 | # endif |
513 | # ifdef VLNEXT |
525 | # ifdef VLNEXT |
514 | tio->c_cc[VLNEXT] = CLNEXT; |
526 | tio->c_cc[VLNEXT] = CLNEXT; |
515 | # endif |
527 | # endif |
|
|
528 | # ifdef VSTATUS |
|
|
529 | tio->c_cc[VSTATUS] = CSTATUS; |
|
|
530 | # endif |
516 | |
531 | |
517 | # if VMIN != VEOF |
532 | # if VMIN != VEOF |
518 | tio->c_cc[VMIN] = 1; |
533 | tio->c_cc[VMIN] = 1; |
519 | # endif |
534 | # endif |
520 | # if VTIME != VEOL |
535 | # if VTIME != VEOL |
… | |
… | |
553 | rxvt_get_ttymode (&rxvt_term::def_tio); |
568 | rxvt_get_ttymode (&rxvt_term::def_tio); |
554 | |
569 | |
555 | // get rid of stdin/stdout as we don't need them, to free resources |
570 | // get rid of stdin/stdout as we don't need them, to free resources |
556 | dup2 (STDERR_FILENO, STDIN_FILENO); |
571 | dup2 (STDERR_FILENO, STDIN_FILENO); |
557 | dup2 (STDERR_FILENO, STDOUT_FILENO); |
572 | dup2 (STDERR_FILENO, STDOUT_FILENO); |
558 | |
|
|
559 | ptytty::init (); |
|
|
560 | |
573 | |
561 | if (!ev_default_loop ()) |
574 | if (!ev_default_loop ()) |
562 | rxvt_fatal ("cannot initialise libev (bad value for LIBEV_METHODS?)\n"); |
575 | rxvt_fatal ("cannot initialise libev (bad value for LIBEV_METHODS?)\n"); |
563 | |
576 | |
564 | rxvt_environ = environ; |
577 | rxvt_environ = environ; |
… | |
… | |
1631 | } |
1644 | } |
1632 | |
1645 | |
1633 | Pixmap |
1646 | Pixmap |
1634 | rxvt_term::get_pixmap_property (int prop_id) |
1647 | rxvt_term::get_pixmap_property (int prop_id) |
1635 | { |
1648 | { |
|
|
1649 | Pixmap pixmap = None; |
|
|
1650 | |
1636 | if (prop_id > 0 && prop_id < NUM_XA) |
1651 | if (prop_id > 0 && prop_id < NUM_XA) |
1637 | if (xa[prop_id]) |
1652 | if (xa[prop_id]) |
1638 | { |
1653 | { |
1639 | int aformat; |
1654 | int aformat; |
1640 | unsigned long nitems, bytes_after; |
1655 | unsigned long nitems, bytes_after; |
1641 | Atom atype; |
1656 | Atom atype; |
1642 | unsigned char *prop = NULL; |
1657 | unsigned char *prop; |
1643 | int result = XGetWindowProperty (dpy, display->root, xa[prop_id], |
1658 | int result = XGetWindowProperty (dpy, display->root, xa[prop_id], |
1644 | 0L, 1L, False, XA_PIXMAP, &atype, &aformat, |
1659 | 0L, 1L, False, XA_PIXMAP, &atype, &aformat, |
1645 | &nitems, &bytes_after, &prop); |
1660 | &nitems, &bytes_after, &prop); |
1646 | if (result == Success && prop && atype == XA_PIXMAP) |
1661 | if (result == Success) |
|
|
1662 | { |
|
|
1663 | if (atype == XA_PIXMAP) |
1647 | return *(Pixmap *)prop; |
1664 | pixmap = *(Pixmap *)prop; |
|
|
1665 | XFree (prop); |
|
|
1666 | } |
1648 | } |
1667 | } |
1649 | |
1668 | |
1650 | return None; |
1669 | return pixmap; |
1651 | } |
1670 | } |
1652 | |
1671 | |
1653 | #ifdef HAVE_BG_PIXMAP |
1672 | #ifdef HAVE_BG_PIXMAP |
1654 | |
1673 | |
1655 | void |
1674 | void |