| ofs | hex dump | ascii |
|---|
| 0000 | 56 69 6d 9f 55 6e 44 6f e5 00 03 30 f0 d2 f3 31 7e 6f 94 59 f7 3a 99 7e 9c 7c 62 1c 3c c6 b9 bc | Vim.UnDo...0...1~o.Y.:.~.|b.<... |
| 0020 | 3b 79 89 40 c9 2b de 73 02 cc 9a 00 00 05 3c 00 00 00 00 00 00 03 ae 00 00 00 00 00 00 00 01 00 | ;y.@.+.s......<................. |
| 0040 | 00 00 03 00 00 00 00 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 00 69 a0 f7 3b 04 01 00 00 00 | .......................i..;..... |
| 0060 | 02 00 5f d0 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 | .._............................. |
| 0080 | 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 00a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 00e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 01a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 01c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 01e0 | 00 00 00 00 00 00 69 a0 f7 38 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 | ......i..8...................... |
| 0200 | 00 03 d2 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 | .......#define._POSIX_C_SOURCE.2 |
| 0220 | 30 30 38 30 39 4c 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 63 74 79 70 65 2e 68 3e 00 00 00 12 | 00809L....#include.<ctype.h>.... |
| 0240 | 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c | #include.<errno.h>....#include.< |
| 0260 | 66 63 6e 74 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 6c 69 6d 69 74 73 2e 68 3e 00 | fcntl.h>....#include.<limits.h>. |
| 0280 | 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 6c 6f 63 61 6c 65 2e 68 3e 00 00 00 10 23 69 6e 63 6c 75 | ...#include.<locale.h>....#inclu |
| 02a0 | 64 65 20 3c 70 74 79 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 | de.<pty.h>....#include.<signal.h |
| 02c0 | 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 61 72 67 2e 68 3e 00 00 00 13 23 69 6e 63 | >....#include.<stdarg.h>....#inc |
| 02e0 | 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 | lude.<stdint.h>....#include.<std |
| 0300 | 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 | io.h>....#include.<stdlib.h>.... |
| 0320 | 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 16 23 69 6e 63 6c 75 64 65 20 | #include.<string.h>....#include. |
| 0340 | 3c 73 79 73 2f 69 6f 63 74 6c 2e 68 3e 00 00 00 17 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 73 | <sys/ioctl.h>....#include.<sys/s |
| 0360 | 65 6c 65 63 74 2e 68 3e 00 00 00 16 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 79 70 65 73 2e | elect.h>....#include.<sys/types. |
| 0380 | 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 77 61 69 74 2e 68 3e 00 00 00 14 23 | h>....#include.<sys/wait.h>....# |
| 03a0 | 69 6e 63 6c 75 64 65 20 3c 74 65 72 6d 69 6f 73 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 | include.<termios.h>....#include. |
| 03c0 | 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 77 63 68 61 72 2e 68 3e | <unistd.h>....#include.<wchar.h> |
| 03e0 | 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 77 63 74 79 70 65 2e 68 3e 00 00 00 00 00 00 00 14 23 | ....#include.<wctype.h>........# |
| 0400 | 69 6e 63 6c 75 64 65 20 3c 78 63 62 2f 78 63 62 2e 68 3e 00 00 00 1c 23 69 6e 63 6c 75 64 65 20 | include.<xcb/xcb.h>....#include. |
| 0420 | 3c 78 63 62 2f 78 63 62 5f 6b 65 79 73 79 6d 73 2e 68 3e 00 00 00 1a 23 69 6e 63 6c 75 64 65 20 | <xcb/xcb_keysyms.h>....#include. |
| 0440 | 3c 78 63 62 2f 78 63 62 5f 69 63 63 63 6d 2e 68 3e 00 00 00 17 23 69 6e 63 6c 75 64 65 20 3c 58 | <xcb/xcb_icccm.h>....#include.<X |
| 0460 | 31 31 2f 6b 65 79 73 79 6d 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 58 31 31 2f 58 66 | 11/keysym.h>....#include.<X11/Xf |
| 0480 | 74 2f 58 66 74 2e 68 3e 00 00 00 19 23 69 6e 63 6c 75 64 65 20 3c 58 31 31 2f 58 6c 69 62 2d 78 | t/Xft.h>....#include.<X11/Xlib-x |
| 04a0 | 63 62 2e 68 3e 00 00 00 00 00 00 00 28 23 64 65 66 69 6e 65 20 46 4f 4e 54 5f 4e 41 4d 45 20 20 | cb.h>.......(#define.FONT_NAME.. |
| 04c0 | 20 20 22 6d 6f 6e 6f 73 70 61 63 65 3a 73 69 7a 65 3d 31 32 22 00 00 00 1e 23 64 65 66 69 6e 65 | .."monospace:size=12"....#define |
| 04e0 | 20 53 48 45 4c 4c 20 20 20 20 20 20 20 20 22 2f 62 69 6e 2f 73 68 22 00 00 00 19 23 64 65 66 69 | .SHELL........"/bin/sh"....#defi |
| 0500 | 6e 65 20 53 43 52 4f 4c 4c 42 41 43 4b 20 20 20 31 30 30 30 00 00 00 16 23 64 65 66 69 6e 65 20 | ne.SCROLLBACK...1000....#define. |
| 0520 | 54 41 42 5f 57 49 44 54 48 20 20 20 20 38 00 00 00 16 23 64 65 66 69 6e 65 20 42 4f 52 44 45 52 | TAB_WIDTH....8....#define.BORDER |
| 0540 | 20 20 20 20 20 20 20 32 00 00 00 00 00 00 00 1f 23 64 65 66 69 6e 65 20 41 54 54 52 5f 42 4f 4c | .......2........#define.ATTR_BOL |
| 0560 | 44 20 20 20 20 20 20 28 31 20 3c 3c 20 30 29 00 00 00 1f 23 64 65 66 69 6e 65 20 41 54 54 52 5f | D......(1.<<.0)....#define.ATTR_ |
| 0580 | 55 4e 44 45 52 4c 49 4e 45 20 28 31 20 3c 3c 20 31 29 00 00 00 1f 23 64 65 66 69 6e 65 20 41 54 | UNDERLINE.(1.<<.1)....#define.AT |
| 05a0 | 54 52 5f 52 45 56 45 52 53 45 20 20 20 28 31 20 3c 3c 20 32 29 00 00 00 1f 23 64 65 66 69 6e 65 | TR_REVERSE...(1.<<.2)....#define |
| 05c0 | 20 41 54 54 52 5f 49 54 41 4c 49 43 20 20 20 20 28 31 20 3c 3c 20 33 29 00 00 00 1f 23 64 65 66 | .ATTR_ITALIC....(1.<<.3)....#def |
| 05e0 | 69 6e 65 20 41 54 54 52 5f 42 4c 49 4e 4b 20 20 20 20 20 28 31 20 3c 3c 20 34 29 00 00 00 1f 23 | ine.ATTR_BLINK.....(1.<<.4)....# |
| 0600 | 64 65 66 69 6e 65 20 41 54 54 52 5f 44 49 52 54 59 20 20 20 20 20 28 31 20 3c 3c 20 35 29 00 00 | define.ATTR_DIRTY.....(1.<<.5).. |
| 0620 | 00 00 00 00 00 17 74 79 70 65 64 65 66 20 75 69 6e 74 33 32 5f 74 20 43 6f 6c 6f 72 3b 00 00 00 | ......typedef.uint32_t.Color;... |
| 0640 | 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 17 20 20 20 20 75 69 6e | .....typedef.struct.{........uin |
| 0660 | 74 33 32 5f 74 20 63 6f 64 65 70 6f 69 6e 74 3b 00 00 00 12 20 20 20 20 75 69 6e 74 31 36 5f 74 | t32_t.codepoint;........uint16_t |
| 0680 | 20 61 74 74 72 3b 00 00 00 10 20 20 20 20 43 6f 6c 6f 72 20 20 20 20 66 67 3b 00 00 00 10 20 20 | .attr;........Color....fg;...... |
| 06a0 | 20 20 43 6f 6c 6f 72 20 20 20 20 62 67 3b 00 00 00 08 7d 20 47 6c 79 70 68 3b 00 00 00 00 00 00 | ..Color....bg;....}.Glyph;...... |
| 06c0 | 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 0d 20 20 20 20 69 6e 74 20 78 2c | ..typedef.struct.{........int.x, |
| 06e0 | 20 79 3b 00 00 00 08 7d 20 50 6f 69 6e 74 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 | .y;....}.Point;........typedef.s |
| 0700 | 74 72 75 63 74 20 7b 00 00 00 11 20 20 20 20 69 6e 74 20 72 6f 77 2c 20 63 6f 6c 3b 00 00 00 09 | truct.{........int.row,.col;.... |
| 0720 | 7d 20 43 75 72 73 6f 72 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 | }.Cursor;........typedef.struct. |
| 0740 | 7b 00 00 00 11 20 20 20 20 47 6c 79 70 68 20 2a 63 65 6c 6c 73 3b 00 00 00 10 20 20 20 20 69 6e | {........Glyph.*cells;........in |
| 0760 | 74 20 20 20 20 63 6f 6c 73 3b 00 00 00 11 20 20 20 20 69 6e 74 20 20 20 20 64 69 72 74 79 3b 00 | t....cols;........int....dirty;. |
| 0780 | 00 00 06 7d 20 52 6f 77 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 | ...}.Row;........typedef.struct. |
| 07a0 | 7b 00 00 00 11 20 20 20 20 52 6f 77 20 20 20 20 2a 72 6f 77 73 3b 00 00 00 12 20 20 20 20 69 6e | {........Row....*rows;........in |
| 07c0 | 74 20 20 20 20 20 6e 72 6f 77 73 3b 00 00 00 12 20 20 20 20 69 6e 74 20 20 20 20 20 6e 63 6f 6c | t.....nrows;........int.....ncol |
| 07e0 | 73 3b 00 00 00 10 20 20 20 20 69 6e 74 20 20 20 20 20 74 6f 70 3b 00 00 00 10 20 20 20 20 69 6e | s;........int.....top;........in |
| 0800 | 74 20 20 20 20 20 62 6f 74 3b 00 00 00 10 20 20 20 20 43 75 72 73 6f 72 20 20 63 75 72 3b 00 00 | t.....bot;........Cursor..cur;.. |
| 0820 | 00 12 20 20 20 20 43 75 72 73 6f 72 20 20 73 61 76 65 64 3b 00 00 00 11 20 20 20 20 69 6e 74 20 | ......Cursor..saved;........int. |
| 0840 | 20 20 20 20 6d 6f 64 65 3b 00 00 00 14 20 20 20 20 69 6e 74 20 20 20 20 20 63 68 61 72 73 65 74 | ....mode;........int.....charset |
| 0860 | 3b 00 00 00 07 7d 20 54 65 72 6d 3b 00 00 00 00 00 00 00 1f 23 64 65 66 69 6e 65 20 4d 4f 44 45 | ;....}.Term;........#define.MODE |
| 0880 | 5f 57 52 41 50 20 20 20 20 20 20 28 31 20 3c 3c 20 30 29 00 00 00 1f 23 64 65 66 69 6e 65 20 4d | _WRAP......(1.<<.0)....#define.M |
| 08a0 | 4f 44 45 5f 49 4e 53 45 52 54 20 20 20 20 28 31 20 3c 3c 20 31 29 00 00 00 1f 23 64 65 66 69 6e | ODE_INSERT....(1.<<.1)....#defin |
| 08c0 | 65 20 4d 4f 44 45 5f 41 50 50 4b 45 59 50 41 44 20 28 31 20 3c 3c 20 32 29 00 00 00 1f 23 64 65 | e.MODE_APPKEYPAD.(1.<<.2)....#de |
| 08e0 | 66 69 6e 65 20 4d 4f 44 45 5f 41 4c 54 53 43 52 45 45 4e 20 28 31 20 3c 3c 20 33 29 00 00 00 1f | fine.MODE_ALTSCREEN.(1.<<.3).... |
| 0900 | 23 64 65 66 69 6e 65 20 4d 4f 44 45 5f 43 52 4c 46 20 20 20 20 20 20 28 31 20 3c 3c 20 34 29 00 | #define.MODE_CRLF......(1.<<.4). |
| 0920 | 00 00 1f 23 64 65 66 69 6e 65 20 4d 4f 44 45 5f 45 43 48 4f 20 20 20 20 20 20 28 31 20 3c 3c 20 | ...#define.MODE_ECHO......(1.<<. |
| 0940 | 35 29 00 00 00 1f 23 64 65 66 69 6e 65 20 4d 4f 44 45 5f 4f 52 49 47 49 4e 20 20 20 20 28 31 20 | 5)....#define.MODE_ORIGIN....(1. |
| 0960 | 3c 3c 20 36 29 00 00 00 1f 23 64 65 66 69 6e 65 20 4d 4f 44 45 5f 4d 4f 55 53 45 42 54 4e 20 20 | <<.6)....#define.MODE_MOUSEBTN.. |
| 0980 | 28 31 20 3c 3c 20 37 29 00 00 00 1f 23 64 65 66 69 6e 65 20 4d 4f 44 45 5f 4d 4f 55 53 45 4d 4f | (1.<<.7)....#define.MODE_MOUSEMO |
| 09a0 | 54 20 20 28 31 20 3c 3c 20 38 29 00 00 00 1f 23 64 65 66 69 6e 65 20 4d 4f 44 45 5f 52 45 56 45 | T..(1.<<.8)....#define.MODE_REVE |
| 09c0 | 52 53 45 20 20 20 28 31 20 3c 3c 20 39 29 00 00 00 22 23 64 65 66 69 6e 65 20 4d 4f 44 45 5f 48 | RSE...(1.<<.9)..."#define.MODE_H |
| 09e0 | 49 44 45 5f 43 55 52 53 4f 52 20 28 31 20 3c 3c 20 31 30 29 00 00 00 20 23 64 65 66 69 6e 65 20 | IDE_CURSOR.(1.<<.10)....#define. |
| 0a00 | 4d 4f 44 45 5f 42 52 41 43 50 41 53 54 45 20 28 31 20 3c 3c 20 31 31 29 00 00 00 00 00 00 00 10 | MODE_BRACPASTE.(1.<<.11)........ |
| 0a20 | 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 18 20 20 20 20 44 69 73 70 6c 61 79 20 | typedef.struct.{........Display. |
| 0a40 | 20 20 20 20 20 20 20 2a 64 70 79 3b 00 00 00 1a 20 20 20 20 78 63 62 5f 63 6f 6e 6e 65 63 74 69 | .......*dpy;........xcb_connecti |
| 0a60 | 6f 6e 5f 74 20 2a 63 6f 6e 3b 00 00 00 18 20 20 20 20 78 63 62 5f 73 63 72 65 65 6e 5f 74 20 20 | on_t.*con;........xcb_screen_t.. |
| 0a80 | 20 2a 73 63 72 3b 00 00 00 18 20 20 20 20 78 63 62 5f 77 69 6e 64 6f 77 5f 74 20 20 20 20 77 69 | .*scr;........xcb_window_t....wi |
| 0aa0 | 6e 3b 00 00 00 1d 20 20 20 20 78 63 62 5f 6b 65 79 5f 73 79 6d 62 6f 6c 73 5f 74 20 2a 6b 73 79 | n;........xcb_key_symbols_t.*ksy |
| 0ac0 | 6d 73 3b 00 00 00 19 20 20 20 20 58 66 74 46 6f 6e 74 20 20 20 20 20 20 20 20 2a 66 6f 6e 74 3b | ms;........XftFont........*font; |
| 0ae0 | 00 00 00 1a 20 20 20 20 58 66 74 46 6f 6e 74 20 20 20 20 20 20 20 20 2a 62 66 6f 6e 74 3b 00 00 | ........XftFont........*bfont;.. |
| 0b00 | 00 1a 20 20 20 20 58 66 74 46 6f 6e 74 20 20 20 20 20 20 20 20 2a 69 66 6f 6e 74 3b 00 00 00 1b | ......XftFont........*ifont;.... |
| 0b20 | 20 20 20 20 58 66 74 46 6f 6e 74 20 20 20 20 20 20 20 20 2a 62 69 66 6f 6e 74 3b 00 00 00 19 20 | ....XftFont........*bifont;..... |
| 0b40 | 20 20 20 58 66 74 44 72 61 77 20 20 20 20 20 20 20 20 2a 64 72 61 77 3b 00 00 00 1b 20 20 20 20 | ...XftDraw........*draw;........ |
| 0b60 | 56 69 73 75 61 6c 20 20 20 20 20 20 20 20 20 2a 76 69 73 75 61 6c 3b 00 00 00 1d 20 20 20 20 43 | Visual.........*visual;........C |
| 0b80 | 6f 6c 6f 72 6d 61 70 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 6d 61 70 3b 00 00 00 1f 20 20 20 20 | olormap........colormap;........ |
| 0ba0 | 69 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20 63 77 2c 20 63 68 2c 20 63 61 3b 00 00 00 1f 20 | int.............cw,.ch,.ca;..... |
| 0bc0 | 20 20 20 69 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20 77 69 6e 77 2c 20 77 69 6e 68 3b 00 00 | ...int.............winw,.winh;.. |
| 0be0 | 00 1f 20 20 20 20 69 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 73 2c 20 72 6f 77 73 | ......int.............cols,.rows |
| 0c00 | 3b 00 00 00 1e 20 20 20 20 43 6f 6c 6f 72 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 | ;........Color...........default |
| 0c20 | 66 67 3b 00 00 00 1e 20 20 20 20 43 6f 6c 6f 72 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 | fg;........Color...........defau |
| 0c40 | 6c 74 62 67 3b 00 00 00 1e 20 20 20 20 43 6f 6c 6f 72 20 20 20 20 20 20 20 20 20 20 20 64 65 66 | ltbg;........Color...........def |
| 0c60 | 61 75 6c 74 63 73 3b 00 00 00 06 7d 20 57 69 6e 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 | aultcs;....}.Win;........typedef |
| 0c80 | 20 73 74 72 75 63 74 20 7b 00 00 00 0f 20 20 20 20 69 6e 74 20 20 20 20 6d 66 64 3b 00 00 00 0f | .struct.{........int....mfd;.... |
| 0ca0 | 20 20 20 20 69 6e 74 20 20 20 20 73 66 64 3b 00 00 00 0f 20 20 20 20 70 69 64 5f 74 20 20 70 69 | ....int....sfd;........pid_t..pi |
| 0cc0 | 64 3b 00 00 00 17 20 20 20 20 63 68 61 72 20 20 20 62 75 66 5b 42 55 46 53 49 5a 5d 3b 00 00 00 | d;........char...buf[BUFSIZ];... |
| 0ce0 | 12 20 20 20 20 69 6e 74 20 20 20 20 62 75 66 6c 65 6e 3b 00 00 00 06 7d 20 50 74 79 3b 00 00 00 | .....int....buflen;....}.Pty;... |
| 0d00 | 00 00 00 00 11 73 74 61 74 69 63 20 57 69 6e 20 20 20 20 20 77 3b 00 00 00 14 73 74 61 74 69 63 | .....static.Win.....w;....static |
| 0d20 | 20 54 65 72 6d 20 20 20 20 74 65 72 6d 3b 00 00 00 17 73 74 61 74 69 63 20 54 65 72 6d 20 20 20 | .Term....term;....static.Term... |
| 0d40 | 20 61 6c 74 74 65 72 6d 3b 00 00 00 20 73 74 61 74 69 63 20 54 65 72 6d 20 20 20 2a 63 75 72 5f | .altterm;....static.Term...*cur_ |
| 0d60 | 74 65 72 6d 20 3d 20 26 74 65 72 6d 3b 00 00 00 13 73 74 61 74 69 63 20 50 74 79 20 20 20 20 20 | term.=.&term;....static.Pty..... |
| 0d80 | 70 74 79 3b 00 00 00 1b 73 74 61 74 69 63 20 69 6e 74 20 20 20 20 20 72 75 6e 6e 69 6e 67 20 3d | pty;....static.int.....running.= |
| 0da0 | 20 31 3b 00 00 00 00 00 00 00 1e 73 74 61 74 69 63 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 | .1;........static.uint32_t.color |
| 0dc0 | 32 35 36 5b 32 35 36 5d 3b 00 00 00 23 73 74 61 74 69 63 20 58 66 74 43 6f 6c 6f 72 20 78 66 74 | 256[256];...#static.XftColor.xft |
| 0de0 | 63 6f 6c 6f 72 5b 32 35 36 20 2b 20 31 36 5d 3b 00 00 00 00 00 00 00 27 73 74 61 74 69 63 20 76 | color[256.+.16];.......'static.v |
| 0e00 | 6f 69 64 20 64 69 65 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 66 6d 74 2c 20 2e 2e 2e 29 20 7b 00 | oid.die(const.char.*fmt,....).{. |
| 0e20 | 00 00 0f 20 20 20 20 76 61 5f 6c 69 73 74 20 61 70 3b 00 00 00 16 20 20 20 20 76 61 5f 73 74 61 | .......va_list.ap;........va_sta |
| 0e40 | 72 74 28 61 70 2c 20 66 6d 74 29 3b 00 00 00 1e 20 20 20 20 76 66 70 72 69 6e 74 66 28 73 74 64 | rt(ap,.fmt);........vfprintf(std |
| 0e60 | 65 72 72 2c 20 66 6d 74 2c 20 61 70 29 3b 00 00 00 0f 20 20 20 20 76 61 5f 65 6e 64 28 61 70 29 | err,.fmt,.ap);........va_end(ap) |
| 0e80 | 3b 00 00 00 18 20 20 20 20 66 70 75 74 63 28 27 5c 6e 27 2c 20 73 74 64 65 72 72 29 3b 00 00 00 | ;........fputc('\n',.stderr);... |
| 0ea0 | 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3c 73 74 61 74 69 63 | .....exit(1);....}.......<static |
| 0ec0 | 20 69 6e 74 20 75 74 66 38 64 65 63 6f 64 65 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 75 | .int.utf8decode(const.char.*s,.u |
| 0ee0 | 69 6e 74 33 32 5f 74 20 2a 75 2c 20 69 6e 74 20 6c 65 6e 29 20 7b 00 00 00 1b 20 20 20 20 75 6e | int32_t.*u,.int.len).{........un |
| 0f00 | 73 69 67 6e 65 64 20 63 68 61 72 20 63 20 3d 20 73 5b 30 5d 3b 00 00 00 0a 20 20 20 20 69 6e 74 | signed.char.c.=.s[0];........int |
| 0f20 | 20 6e 3b 00 00 00 2c 20 20 20 20 69 66 20 28 63 20 3c 20 30 78 38 30 29 20 20 20 20 20 20 7b 20 | .n;...,....if.(c.<.0x80)......{. |
| 0f40 | 2a 75 20 3d 20 63 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 00 00 31 20 20 20 20 65 6c 73 65 20 | *u.=.c;.return.1;.}...1....else. |
| 0f60 | 69 66 20 28 63 20 3c 20 30 78 43 30 29 20 7b 20 2a 75 20 3d 20 30 78 46 46 46 44 3b 20 72 65 74 | if.(c.<.0xC0).{.*u.=.0xFFFD;.ret |
| 0f80 | 75 72 6e 20 31 3b 20 7d 00 00 00 30 20 20 20 20 65 6c 73 65 20 69 66 20 28 63 20 3c 20 30 78 45 | urn.1;.}...0....else.if.(c.<.0xE |
| 0fa0 | 30 29 20 7b 20 2a 75 20 3d 20 63 20 26 20 30 78 31 46 3b 20 6e 20 3d 20 32 3b 20 7d 00 00 00 30 | 0).{.*u.=.c.&.0x1F;.n.=.2;.}...0 |
| 0fc0 | 20 20 20 20 65 6c 73 65 20 69 66 20 28 63 20 3c 20 30 78 46 30 29 20 7b 20 2a 75 20 3d 20 63 20 | ....else.if.(c.<.0xF0).{.*u.=.c. |
| 0fe0 | 26 20 30 78 30 46 3b 20 6e 20 3d 20 33 3b 20 7d 00 00 00 30 20 20 20 20 65 6c 73 65 20 20 20 20 | &.0x0F;.n.=.3;.}...0....else.... |
| 1000 | 20 20 20 20 20 20 20 20 20 20 20 7b 20 2a 75 20 3d 20 63 20 26 20 30 78 30 37 3b 20 6e 20 3d 20 | ...........{.*u.=.c.&.0x07;.n.=. |
| 1020 | 34 3b 20 7d 00 00 00 2b 20 20 20 20 69 66 20 28 6c 65 6e 20 3c 20 6e 29 20 7b 20 2a 75 20 3d 20 | 4;.}...+....if.(len.<.n).{.*u.=. |
| 1040 | 30 78 46 46 46 44 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 00 00 21 20 20 20 20 66 6f 72 20 28 | 0xFFFD;.return.1;.}...!....for.( |
| 1060 | 69 6e 74 20 69 20 3d 20 31 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 3d 20 20 20 20 | int.i.=.1;.i.<.n;.i++).{...=.... |
| 1080 | 20 20 20 20 69 66 20 28 28 73 5b 69 5d 20 26 20 30 78 43 30 29 20 21 3d 20 30 78 38 30 29 20 7b | ....if.((s[i].&.0xC0).!=.0x80).{ |
| 10a0 | 20 2a 75 20 3d 20 30 78 46 46 46 44 3b 20 72 65 74 75 72 6e 20 69 3b 20 7d 00 00 00 27 20 20 20 | .*u.=.0xFFFD;.return.i;.}...'... |
| 10c0 | 20 20 20 20 20 2a 75 20 3d 20 28 2a 75 20 3c 3c 20 36 29 20 7c 20 28 73 5b 69 5d 20 26 20 30 78 | .....*u.=.(*u.<<.6).|.(s[i].&.0x |
| 10e0 | 33 46 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 6e 3b 00 00 | 3F);........}........return.n;.. |
| 1100 | 00 01 7d 00 00 00 00 00 00 00 2c 73 74 61 74 69 63 20 69 6e 74 20 75 74 66 38 65 6e 63 6f 64 65 | ..}.......,static.int.utf8encode |
| 1120 | 28 75 69 6e 74 33 32 5f 74 20 75 2c 20 63 68 61 72 20 2a 73 29 20 7b 00 00 00 2b 20 20 20 20 69 | (uint32_t.u,.char.*s).{...+....i |
| 1140 | 66 20 28 75 20 3c 20 30 78 38 30 29 20 20 20 7b 20 73 5b 30 5d 20 3d 20 75 3b 20 72 65 74 75 72 | f.(u.<.0x80)...{.s[0].=.u;.retur |
| 1160 | 6e 20 31 3b 20 7d 00 00 00 4b 20 20 20 20 69 66 20 28 75 20 3c 20 30 78 38 30 30 29 20 20 7b 20 | n.1;.}...K....if.(u.<.0x800)..{. |
| 1180 | 73 5b 30 5d 20 3d 20 30 78 43 30 7c 28 75 3e 3e 36 29 3b 20 73 5b 31 5d 20 3d 20 30 78 38 30 7c | s[0].=.0xC0|(u>>6);.s[1].=.0x80| |
| 11a0 | 28 75 26 30 78 33 46 29 3b 20 72 65 74 75 72 6e 20 32 3b 20 7d 00 00 00 67 20 20 20 20 69 66 20 | (u&0x3F);.return.2;.}...g....if. |
| 11c0 | 28 75 20 3c 20 30 78 31 30 30 30 30 29 7b 20 73 5b 30 5d 20 3d 20 30 78 45 30 7c 28 75 3e 3e 31 | (u.<.0x10000){.s[0].=.0xE0|(u>>1 |
| 11e0 | 32 29 3b 20 73 5b 31 5d 20 3d 20 30 78 38 30 7c 28 28 75 3e 3e 36 29 26 30 78 33 46 29 3b 20 73 | 2);.s[1].=.0x80|((u>>6)&0x3F);.s |
| 1200 | 5b 32 5d 20 3d 20 30 78 38 30 7c 28 75 26 30 78 33 46 29 3b 20 72 65 74 75 72 6e 20 33 3b 20 7d | [2].=.0x80|(u&0x3F);.return.3;.} |
| 1220 | 00 00 00 67 20 20 20 20 73 5b 30 5d 3d 30 78 46 30 7c 28 75 3e 3e 31 38 29 3b 20 73 5b 31 5d 3d | ...g....s[0]=0xF0|(u>>18);.s[1]= |
| 1240 | 30 78 38 30 7c 28 28 75 3e 3e 31 32 29 26 30 78 33 46 29 3b 20 73 5b 32 5d 3d 30 78 38 30 7c 28 | 0x80|((u>>12)&0x3F);.s[2]=0x80|( |
| 1260 | 28 75 3e 3e 36 29 26 30 78 33 46 29 3b 20 73 5b 33 5d 3d 30 78 38 30 7c 28 75 26 30 78 33 46 29 | (u>>6)&0x3F);.s[3]=0x80|(u&0x3F) |
| 1280 | 3b 20 72 65 74 75 72 6e 20 34 3b 00 00 00 01 7d 00 00 00 00 00 00 00 38 73 74 61 74 69 63 20 43 | ;.return.4;....}.......8static.C |
| 12a0 | 6f 6c 6f 72 20 70 61 63 6b 5f 72 67 62 28 75 69 6e 74 38 5f 74 20 72 2c 20 75 69 6e 74 38 5f 74 | olor.pack_rgb(uint8_t.r,.uint8_t |
| 12c0 | 20 67 2c 20 75 69 6e 74 38 5f 74 20 62 29 20 7b 00 00 00 38 20 20 20 20 72 65 74 75 72 6e 20 28 | .g,.uint8_t.b).{...8....return.( |
| 12e0 | 28 75 69 6e 74 33 32 5f 74 29 72 20 3c 3c 20 31 36 29 20 7c 20 28 28 75 69 6e 74 33 32 5f 74 29 | (uint32_t)r.<<.16).|.((uint32_t) |
| 1300 | 67 20 3c 3c 20 38 29 20 7c 20 62 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1f 73 74 61 74 69 63 20 | g.<<.8).|.b;....}........static. |
| 1320 | 76 6f 69 64 20 69 6e 69 74 5f 63 6f 6c 6f 72 73 28 76 6f 69 64 29 20 7b 00 00 00 1b 20 20 20 20 | void.init_colors(void).{........ |
| 1340 | 75 69 6e 74 33 32 5f 74 20 62 61 73 65 31 36 5b 31 36 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 | uint32_t.base16[16].=.{.../..... |
| 1360 | 20 20 20 30 78 30 30 30 30 30 30 2c 20 30 78 63 63 30 30 30 30 2c 20 30 78 30 30 63 63 30 30 2c | ...0x000000,.0xcc0000,.0x00cc00, |
| 1380 | 20 30 78 63 63 63 63 30 30 2c 00 00 00 2f 20 20 20 20 20 20 20 20 30 78 30 30 30 30 63 63 2c 20 | .0xcccc00,.../........0x0000cc,. |
| 13a0 | 30 78 63 63 30 30 63 63 2c 20 30 78 30 30 63 63 63 63 2c 20 30 78 64 30 64 30 64 30 2c 00 00 00 | 0xcc00cc,.0x00cccc,.0xd0d0d0,... |
| 13c0 | 2f 20 20 20 20 20 20 20 20 30 78 38 30 38 30 38 30 2c 20 30 78 66 66 30 30 30 30 2c 20 30 78 30 | /........0x808080,.0xff0000,.0x0 |
| 13e0 | 30 66 66 30 30 2c 20 30 78 66 66 66 66 30 30 2c 00 00 00 2f 20 20 20 20 20 20 20 20 30 78 30 30 | 0ff00,.0xffff00,.../........0x00 |
| 1400 | 30 30 66 66 2c 20 30 78 66 66 30 30 66 66 2c 20 30 78 30 30 66 66 66 66 2c 20 30 78 66 66 66 66 | 00ff,.0xff00ff,.0x00ffff,.0xffff |
| 1420 | 66 66 2c 00 00 00 06 20 20 20 20 7d 3b 00 00 00 39 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 | ff,........};...9....for.(int.i. |
| 1440 | 3d 20 30 3b 20 69 20 3c 20 31 36 3b 20 69 2b 2b 29 20 63 6f 6c 6f 72 32 35 36 5b 69 5d 20 3d 20 | =.0;.i.<.16;.i++).color256[i].=. |
| 1460 | 62 61 73 65 31 36 5b 69 5d 3b 00 00 00 32 20 20 20 20 69 6e 74 20 6c 65 76 65 6c 73 5b 36 5d 20 | base16[i];...2....int.levels[6]. |
| 1480 | 3d 20 7b 20 30 2c 20 39 35 2c 20 31 33 35 2c 20 31 37 35 2c 20 32 31 35 2c 20 32 35 35 20 7d 3b | =.{.0,.95,.135,.175,.215,.255.}; |
| 14a0 | 00 00 00 24 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 31 36 3b 20 69 20 3c 20 32 33 32 | ...$....for.(int.i.=.16;.i.<.232 |
| 14c0 | 3b 20 69 2b 2b 29 20 7b 00 00 00 17 20 20 20 20 20 20 20 20 69 6e 74 20 76 20 3d 20 69 20 2d 20 | ;.i++).{............int.v.=.i.-. |
| 14e0 | 31 36 3b 00 00 00 4f 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 32 35 36 5b 69 5d 20 3d 20 70 61 63 | 16;...O........color256[i].=.pac |
| 1500 | 6b 5f 72 67 62 28 6c 65 76 65 6c 73 5b 28 76 2f 33 36 29 25 36 5d 2c 20 6c 65 76 65 6c 73 5b 28 | k_rgb(levels[(v/36)%6],.levels[( |
| 1520 | 76 2f 36 29 25 36 5d 2c 20 6c 65 76 65 6c 73 5b 76 25 36 5d 29 3b 00 00 00 05 20 20 20 20 7d 00 | v/6)%6],.levels[v%6]);........}. |
| 1540 | 00 00 25 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 32 33 32 3b 20 69 20 3c 20 32 35 36 | ..%....for.(int.i.=.232;.i.<.256 |
| 1560 | 3b 20 69 2b 2b 29 20 7b 00 00 00 23 20 20 20 20 20 20 20 20 69 6e 74 20 76 20 3d 20 38 20 2b 20 | ;.i++).{...#........int.v.=.8.+. |
| 1580 | 28 69 20 2d 20 32 33 32 29 20 2a 20 31 30 3b 00 00 00 28 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 | (i.-.232).*.10;...(........color |
| 15a0 | 32 35 36 5b 69 5d 20 3d 20 70 61 63 6b 5f 72 67 62 28 76 2c 20 76 2c 20 76 29 3b 00 00 00 05 20 | 256[i].=.pack_rgb(v,.v,.v);..... |
| 15c0 | 20 20 20 7d 00 00 00 1e 20 20 20 20 77 2e 64 65 66 61 75 6c 74 66 67 20 3d 20 63 6f 6c 6f 72 32 | ...}........w.defaultfg.=.color2 |
| 15e0 | 35 36 5b 37 5d 3b 00 00 00 1e 20 20 20 20 77 2e 64 65 66 61 75 6c 74 62 67 20 3d 20 63 6f 6c 6f | 56[7];........w.defaultbg.=.colo |
| 1600 | 72 32 35 36 5b 30 5d 3b 00 00 00 1e 20 20 20 20 77 2e 64 65 66 61 75 6c 74 63 73 20 3d 20 63 6f | r256[0];........w.defaultcs.=.co |
| 1620 | 6c 6f 72 32 35 36 5b 37 5d 3b 00 00 00 00 00 00 00 23 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 | lor256[7];.......#....for.(int.i |
| 1640 | 20 3d 20 30 3b 20 69 20 3c 20 32 35 36 3b 20 69 2b 2b 29 20 7b 00 00 00 18 20 20 20 20 20 20 20 | .=.0;.i.<.256;.i++).{........... |
| 1660 | 20 58 52 65 6e 64 65 72 43 6f 6c 6f 72 20 72 63 3b 00 00 00 38 20 20 20 20 20 20 20 20 72 63 2e | .XRenderColor.rc;...8........rc. |
| 1680 | 72 65 64 20 20 20 3d 20 28 28 63 6f 6c 6f 72 32 35 36 5b 69 5d 20 3e 3e 20 31 36 29 20 26 20 30 | red...=.((color256[i].>>.16).&.0 |
| 16a0 | 78 66 66 29 20 2a 20 30 78 31 30 31 3b 00 00 00 38 20 20 20 20 20 20 20 20 72 63 2e 67 72 65 65 | xff).*.0x101;...8........rc.gree |
| 16c0 | 6e 20 3d 20 28 28 63 6f 6c 6f 72 32 35 36 5b 69 5d 20 3e 3e 20 38 29 20 20 26 20 30 78 66 66 29 | n.=.((color256[i].>>.8)..&.0xff) |
| 16e0 | 20 2a 20 30 78 31 30 31 3b 00 00 00 38 20 20 20 20 20 20 20 20 72 63 2e 62 6c 75 65 20 20 3d 20 | .*.0x101;...8........rc.blue..=. |
| 1700 | 28 28 63 6f 6c 6f 72 32 35 36 5b 69 5d 29 20 20 20 20 20 20 20 26 20 30 78 66 66 29 20 2a 20 30 | ((color256[i]).......&.0xff).*.0 |
| 1720 | 78 31 30 31 3b 00 00 00 1a 20 20 20 20 20 20 20 20 72 63 2e 61 6c 70 68 61 20 3d 20 30 78 66 66 | x101;............rc.alpha.=.0xff |
| 1740 | 66 66 3b 00 00 00 4b 20 20 20 20 20 20 20 20 58 66 74 43 6f 6c 6f 72 41 6c 6c 6f 63 56 61 6c 75 | ff;...K........XftColorAllocValu |
| 1760 | 65 28 77 2e 64 70 79 2c 20 77 2e 76 69 73 75 61 6c 2c 20 77 2e 63 6f 6c 6f 72 6d 61 70 2c 20 26 | e(w.dpy,.w.visual,.w.colormap,.& |
| 1780 | 72 63 2c 20 26 78 66 74 63 6f 6c 6f 72 5b 69 5d 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d | rc,.&xftcolor[i]);........}....} |
| 17a0 | 00 00 00 00 00 00 00 34 73 74 61 74 69 63 20 58 66 74 43 6f 6c 6f 72 20 2a 67 65 74 5f 78 66 74 | .......4static.XftColor.*get_xft |
| 17c0 | 5f 63 6f 6c 6f 72 28 43 6f 6c 6f 72 20 63 2c 20 69 6e 74 20 69 73 5f 66 67 29 20 7b 00 00 00 10 | _color(Color.c,.int.is_fg).{.... |
| 17e0 | 20 20 20 20 28 76 6f 69 64 29 69 73 5f 66 67 3b 00 00 00 23 20 20 20 20 66 6f 72 20 28 69 6e 74 | ....(void)is_fg;...#....for.(int |
| 1800 | 20 69 20 3d 20 30 3b 20 69 20 3c 20 32 35 36 3b 20 69 2b 2b 29 20 7b 00 00 00 32 20 20 20 20 20 | .i.=.0;.i.<.256;.i++).{...2..... |
| 1820 | 20 20 20 69 66 20 28 63 6f 6c 6f 72 32 35 36 5b 69 5d 20 3d 3d 20 63 29 20 72 65 74 75 72 6e 20 | ...if.(color256[i].==.c).return. |
| 1840 | 26 78 66 74 63 6f 6c 6f 72 5b 69 5d 3b 00 00 00 05 20 20 20 20 7d 00 00 00 18 20 20 20 20 73 74 | &xftcolor[i];........}........st |
| 1860 | 61 74 69 63 20 58 66 74 43 6f 6c 6f 72 20 74 6d 70 3b 00 00 00 14 20 20 20 20 58 52 65 6e 64 65 | atic.XftColor.tmp;........XRende |
| 1880 | 72 43 6f 6c 6f 72 20 72 63 3b 00 00 00 2a 20 20 20 20 72 63 2e 72 65 64 20 20 20 3d 20 28 28 63 | rColor.rc;...*....rc.red...=.((c |
| 18a0 | 20 3e 3e 20 31 36 29 20 26 20 30 78 66 66 29 20 2a 20 30 78 31 30 31 3b 00 00 00 2a 20 20 20 20 | .>>.16).&.0xff).*.0x101;...*.... |
| 18c0 | 72 63 2e 67 72 65 65 6e 20 3d 20 28 28 63 20 3e 3e 20 38 29 20 20 26 20 30 78 66 66 29 20 2a 20 | rc.green.=.((c.>>.8)..&.0xff).*. |
| 18e0 | 30 78 31 30 31 3b 00 00 00 2a 20 20 20 20 72 63 2e 62 6c 75 65 20 20 3d 20 28 28 63 29 20 20 20 | 0x101;...*....rc.blue..=.((c)... |
| 1900 | 20 20 20 20 26 20 30 78 66 66 29 20 2a 20 30 78 31 30 31 3b 00 00 00 16 20 20 20 20 72 63 2e 61 | ....&.0xff).*.0x101;........rc.a |
| 1920 | 6c 70 68 61 20 3d 20 30 78 66 66 66 66 3b 00 00 00 3f 20 20 20 20 58 66 74 43 6f 6c 6f 72 41 6c | lpha.=.0xffff;...?....XftColorAl |
| 1940 | 6c 6f 63 56 61 6c 75 65 28 77 2e 64 70 79 2c 20 77 2e 76 69 73 75 61 6c 2c 20 77 2e 63 6f 6c 6f | locValue(w.dpy,.w.visual,.w.colo |
| 1960 | 72 6d 61 70 2c 20 26 72 63 2c 20 26 74 6d 70 29 3b 00 00 00 10 20 20 20 20 72 65 74 75 72 6e 20 | rmap,.&rc,.&tmp);........return. |
| 1980 | 26 74 6d 70 3b 00 00 00 01 7d 00 00 00 00 00 00 00 34 73 74 61 74 69 63 20 76 6f 69 64 20 74 65 | &tmp;....}.......4static.void.te |
| 19a0 | 72 6d 5f 69 6e 69 74 28 54 65 72 6d 20 2a 74 2c 20 69 6e 74 20 72 6f 77 73 2c 20 69 6e 74 20 63 | rm_init(Term.*t,.int.rows,.int.c |
| 19c0 | 6f 6c 73 29 20 7b 00 00 00 14 20 20 20 20 74 2d 3e 6e 72 6f 77 73 20 3d 20 72 6f 77 73 3b 00 00 | ols).{........t->nrows.=.rows;.. |
| 19e0 | 00 14 20 20 20 20 74 2d 3e 6e 63 6f 6c 73 20 3d 20 63 6f 6c 73 3b 00 00 00 29 20 20 20 20 74 2d | ......t->ncols.=.cols;...)....t- |
| 1a00 | 3e 72 6f 77 73 20 20 3d 20 63 61 6c 6c 6f 63 28 72 6f 77 73 2c 20 73 69 7a 65 6f 66 28 52 6f 77 | >rows..=.calloc(rows,.sizeof(Row |
| 1a20 | 29 29 3b 00 00 00 24 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 72 | ));...$....for.(int.i.=.0;.i.<.r |
| 1a40 | 6f 77 73 3b 20 69 2b 2b 29 20 7b 00 00 00 37 20 20 20 20 20 20 20 20 74 2d 3e 72 6f 77 73 5b 69 | ows;.i++).{...7........t->rows[i |
| 1a60 | 5d 2e 63 65 6c 6c 73 20 3d 20 63 61 6c 6c 6f 63 28 63 6f 6c 73 2c 20 73 69 7a 65 6f 66 28 47 6c | ].cells.=.calloc(cols,.sizeof(Gl |
| 1a80 | 79 70 68 29 29 3b 00 00 00 20 20 20 20 20 20 20 20 20 74 2d 3e 72 6f 77 73 5b 69 5d 2e 63 6f 6c | yph));............t->rows[i].col |
| 1aa0 | 73 20 20 3d 20 63 6f 6c 73 3b 00 00 00 1d 20 20 20 20 20 20 20 20 74 2d 3e 72 6f 77 73 5b 69 5d | s..=.cols;............t->rows[i] |
| 1ac0 | 2e 64 69 72 74 79 20 3d 20 31 3b 00 00 00 28 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 | .dirty.=.1;...(........for.(int. |
| 1ae0 | 6a 20 3d 20 30 3b 20 6a 20 3c 20 63 6f 6c 73 3b 20 6a 2b 2b 29 20 7b 00 00 00 31 20 20 20 20 20 | j.=.0;.j.<.cols;.j++).{...1..... |
| 1b00 | 20 20 20 20 20 20 20 74 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 66 67 20 3d 20 | .......t->rows[i].cells[j].fg.=. |
| 1b20 | 77 2e 64 65 66 61 75 6c 74 66 67 3b 00 00 00 31 20 20 20 20 20 20 20 20 20 20 20 20 74 2d 3e 72 | w.defaultfg;...1............t->r |
| 1b40 | 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 | ows[i].cells[j].bg.=.w.defaultbg |
| 1b60 | 3b 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 20 74 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c | ;...0............t->rows[i].cell |
| 1b80 | 73 5b 6a 5d 2e 63 6f 64 65 70 6f 69 6e 74 20 3d 20 27 20 27 3b 00 00 00 09 20 20 20 20 20 20 20 | s[j].codepoint.=.'.';........... |
| 1ba0 | 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 10 20 20 20 20 74 2d 3e 74 6f 70 20 20 3d 20 30 3b 00 | .}........}........t->top..=.0;. |
| 1bc0 | 00 00 17 20 20 20 20 74 2d 3e 62 6f 74 20 20 3d 20 72 6f 77 73 20 2d 20 31 3b 00 00 00 18 20 20 | .......t->bot..=.rows.-.1;...... |
| 1be0 | 20 20 74 2d 3e 6d 6f 64 65 20 3d 20 4d 4f 44 45 5f 57 52 41 50 3b 00 00 00 13 20 20 20 20 74 2d | ..t->mode.=.MODE_WRAP;........t- |
| 1c00 | 3e 63 75 72 2e 72 6f 77 20 3d 20 30 3b 00 00 00 13 20 20 20 20 74 2d 3e 63 75 72 2e 63 6f 6c 20 | >cur.row.=.0;........t->cur.col. |
| 1c20 | 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 20 73 74 61 74 69 63 20 76 6f 69 64 20 74 65 72 | =.0;....}........static.void.ter |
| 1c40 | 6d 5f 66 72 65 65 28 54 65 72 6d 20 2a 74 29 20 7b 00 00 00 3e 20 20 20 20 66 6f 72 20 28 69 6e | m_free(Term.*t).{...>....for.(in |
| 1c60 | 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 74 2d 3e 6e 72 6f 77 73 3b 20 69 2b 2b 29 20 66 72 65 65 | t.i.=.0;.i.<.t->nrows;.i++).free |
| 1c80 | 28 74 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 29 3b 00 00 00 12 20 20 20 20 66 72 65 65 28 | (t->rows[i].cells);........free( |
| 1ca0 | 74 2d 3e 72 6f 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2c 73 74 61 74 69 63 20 76 6f 69 | t->rows);....}.......,static.voi |
| 1cc0 | 64 20 74 65 72 6d 5f 72 65 73 69 7a 65 28 69 6e 74 20 72 6f 77 73 2c 20 69 6e 74 20 63 6f 6c 73 | d.term_resize(int.rows,.int.cols |
| 1ce0 | 29 3b 00 00 00 00 00 00 00 1c 73 74 61 74 69 63 20 76 6f 69 64 20 78 63 62 5f 69 6e 69 74 28 76 | );........static.void.xcb_init(v |
| 1d00 | 6f 69 64 29 20 7b 00 00 00 1f 20 20 20 20 77 2e 64 70 79 20 3d 20 58 4f 70 65 6e 44 69 73 70 6c | oid).{........w.dpy.=.XOpenDispl |
| 1d20 | 61 79 28 4e 55 4c 4c 29 3b 00 00 00 2b 20 20 20 20 69 66 20 28 21 77 2e 64 70 79 29 20 64 69 65 | ay(NULL);...+....if.(!w.dpy).die |
| 1d40 | 28 22 63 61 6e 6e 6f 74 20 6f 70 65 6e 20 64 69 73 70 6c 61 79 22 29 3b 00 00 00 25 20 20 20 20 | ("cannot.open.display");...%.... |
| 1d60 | 77 2e 63 6f 6e 20 3d 20 58 47 65 74 58 43 42 43 6f 6e 6e 65 63 74 69 6f 6e 28 77 2e 64 70 79 29 | w.con.=.XGetXCBConnection(w.dpy) |
| 1d80 | 3b 00 00 00 32 20 20 20 20 58 53 65 74 45 76 65 6e 74 51 75 65 75 65 4f 77 6e 65 72 28 77 2e 64 | ;...2....XSetEventQueueOwner(w.d |
| 1da0 | 70 79 2c 20 58 43 42 4f 77 6e 73 45 76 65 6e 74 51 75 65 75 65 29 3b 00 00 00 00 00 00 00 2a 20 | py,.XCBOwnsEventQueue);.......*. |
| 1dc0 | 20 20 20 69 6e 74 20 73 63 72 65 65 6e 5f 6e 75 6d 20 3d 20 44 65 66 61 75 6c 74 53 63 72 65 65 | ...int.screen_num.=.DefaultScree |
| 1de0 | 6e 28 77 2e 64 70 79 29 3b 00 00 00 40 20 20 20 20 77 2e 73 63 72 20 3d 20 78 63 62 5f 73 65 74 | n(w.dpy);...@....w.scr.=.xcb_set |
| 1e00 | 75 70 5f 72 6f 6f 74 73 5f 69 74 65 72 61 74 6f 72 28 78 63 62 5f 67 65 74 5f 73 65 74 75 70 28 | up_roots_iterator(xcb_get_setup( |
| 1e20 | 77 2e 63 6f 6e 29 29 2e 64 61 74 61 3b 00 00 00 00 00 00 00 32 20 20 20 20 77 2e 76 69 73 75 61 | w.con)).data;.......2....w.visua |
| 1e40 | 6c 20 20 20 3d 20 44 65 66 61 75 6c 74 56 69 73 75 61 6c 28 77 2e 64 70 79 2c 20 73 63 72 65 65 | l...=.DefaultVisual(w.dpy,.scree |
| 1e60 | 6e 5f 6e 75 6d 29 3b 00 00 00 34 20 20 20 20 77 2e 63 6f 6c 6f 72 6d 61 70 20 3d 20 44 65 66 61 | n_num);...4....w.colormap.=.Defa |
| 1e80 | 75 6c 74 43 6f 6c 6f 72 6d 61 70 28 77 2e 64 70 79 2c 20 73 63 72 65 65 6e 5f 6e 75 6d 29 3b 00 | ultColormap(w.dpy,.screen_num);. |
| 1ea0 | 00 00 00 00 00 00 3b 20 20 20 20 77 2e 66 6f 6e 74 20 3d 20 58 66 74 46 6f 6e 74 4f 70 65 6e 4e | ......;....w.font.=.XftFontOpenN |
| 1ec0 | 61 6d 65 28 77 2e 64 70 79 2c 20 73 63 72 65 65 6e 5f 6e 75 6d 2c 20 46 4f 4e 54 5f 4e 41 4d 45 | ame(w.dpy,.screen_num,.FONT_NAME |
| 1ee0 | 29 3b 00 00 00 38 20 20 20 20 69 66 20 28 21 77 2e 66 6f 6e 74 29 20 64 69 65 28 22 63 61 6e 6e | );...8....if.(!w.font).die("cann |
| 1f00 | 6f 74 20 6f 70 65 6e 20 66 6f 6e 74 3a 20 25 73 22 2c 20 46 4f 4e 54 5f 4e 41 4d 45 29 3b 00 00 | ot.open.font:.%s",.FONT_NAME);.. |
| 1f20 | 00 00 00 00 00 12 20 20 20 20 63 68 61 72 20 62 75 66 5b 32 35 36 5d 3b 00 00 00 34 20 20 20 20 | ..........char.buf[256];...4.... |
| 1f40 | 73 6e 70 72 69 6e 74 66 28 62 75 66 2c 20 73 69 7a 65 6f 66 20 62 75 66 2c 20 22 25 73 3a 62 6f | snprintf(buf,.sizeof.buf,."%s:bo |
| 1f60 | 6c 64 22 2c 20 46 4f 4e 54 5f 4e 41 4d 45 29 3b 00 00 00 36 20 20 20 20 77 2e 62 66 6f 6e 74 20 | ld",.FONT_NAME);...6....w.bfont. |
| 1f80 | 3d 20 58 66 74 46 6f 6e 74 4f 70 65 6e 4e 61 6d 65 28 77 2e 64 70 79 2c 20 73 63 72 65 65 6e 5f | =.XftFontOpenName(w.dpy,.screen_ |
| 1fa0 | 6e 75 6d 2c 20 62 75 66 29 3b 00 00 00 23 20 20 20 20 69 66 20 28 21 77 2e 62 66 6f 6e 74 29 20 | num,.buf);...#....if.(!w.bfont). |
| 1fc0 | 77 2e 62 66 6f 6e 74 20 3d 20 77 2e 66 6f 6e 74 3b 00 00 00 00 00 00 00 36 20 20 20 20 73 6e 70 | w.bfont.=.w.font;.......6....snp |
| 1fe0 | 72 69 6e 74 66 28 62 75 66 2c 20 73 69 7a 65 6f 66 20 62 75 66 2c 20 22 25 73 3a 69 74 61 6c 69 | rintf(buf,.sizeof.buf,."%s:itali |
| 2000 | 63 22 2c 20 46 4f 4e 54 5f 4e 41 4d 45 29 3b 00 00 00 36 20 20 20 20 77 2e 69 66 6f 6e 74 20 3d | c",.FONT_NAME);...6....w.ifont.= |
| 2020 | 20 58 66 74 46 6f 6e 74 4f 70 65 6e 4e 61 6d 65 28 77 2e 64 70 79 2c 20 73 63 72 65 65 6e 5f 6e | .XftFontOpenName(w.dpy,.screen_n |
| 2040 | 75 6d 2c 20 62 75 66 29 3b 00 00 00 23 20 20 20 20 69 66 20 28 21 77 2e 69 66 6f 6e 74 29 20 77 | um,.buf);...#....if.(!w.ifont).w |
| 2060 | 2e 69 66 6f 6e 74 20 3d 20 77 2e 66 6f 6e 74 3b 00 00 00 00 00 00 00 3b 20 20 20 20 73 6e 70 72 | .ifont.=.w.font;.......;....snpr |
| 2080 | 69 6e 74 66 28 62 75 66 2c 20 73 69 7a 65 6f 66 20 62 75 66 2c 20 22 25 73 3a 62 6f 6c 64 3a 69 | intf(buf,.sizeof.buf,."%s:bold:i |
| 20a0 | 74 61 6c 69 63 22 2c 20 46 4f 4e 54 5f 4e 41 4d 45 29 3b 00 00 00 37 20 20 20 20 77 2e 62 69 66 | talic",.FONT_NAME);...7....w.bif |
| 20c0 | 6f 6e 74 20 3d 20 58 66 74 46 6f 6e 74 4f 70 65 6e 4e 61 6d 65 28 77 2e 64 70 79 2c 20 73 63 72 | ont.=.XftFontOpenName(w.dpy,.scr |
| 20e0 | 65 65 6e 5f 6e 75 6d 2c 20 62 75 66 29 3b 00 00 00 26 20 20 20 20 69 66 20 28 21 77 2e 62 69 66 | een_num,.buf);...&....if.(!w.bif |
| 2100 | 6f 6e 74 29 20 77 2e 62 69 66 6f 6e 74 20 3d 20 77 2e 62 66 6f 6e 74 3b 00 00 00 00 00 00 00 25 | ont).w.bifont.=.w.bfont;.......% |
| 2120 | 20 20 20 20 77 2e 63 77 20 3d 20 77 2e 66 6f 6e 74 2d 3e 6d 61 78 5f 61 64 76 61 6e 63 65 5f 77 | ....w.cw.=.w.font->max_advance_w |
| 2140 | 69 64 74 68 3b 00 00 00 2c 20 20 20 20 77 2e 63 68 20 3d 20 77 2e 66 6f 6e 74 2d 3e 61 73 63 65 | idth;...,....w.ch.=.w.font->asce |
| 2160 | 6e 74 20 2b 20 77 2e 66 6f 6e 74 2d 3e 64 65 73 63 65 6e 74 3b 00 00 00 1a 20 20 20 20 77 2e 63 | nt.+.w.font->descent;........w.c |
| 2180 | 61 20 3d 20 77 2e 66 6f 6e 74 2d 3e 61 73 63 65 6e 74 3b 00 00 00 00 00 00 00 12 20 20 20 20 69 | a.=.w.font->ascent;............i |
| 21a0 | 6e 69 74 5f 63 6f 6c 6f 72 73 28 29 3b 00 00 00 00 00 00 00 10 20 20 20 20 77 2e 63 6f 6c 73 20 | nit_colors();............w.cols. |
| 21c0 | 3d 20 38 30 3b 00 00 00 10 20 20 20 20 77 2e 72 6f 77 73 20 3d 20 32 34 3b 00 00 00 28 20 20 20 | =.80;........w.rows.=.24;...(... |
| 21e0 | 20 77 2e 77 69 6e 77 20 3d 20 77 2e 63 6f 6c 73 20 2a 20 77 2e 63 77 20 2b 20 32 20 2a 20 42 4f | .w.winw.=.w.cols.*.w.cw.+.2.*.BO |
| 2200 | 52 44 45 52 3b 00 00 00 28 20 20 20 20 77 2e 77 69 6e 68 20 3d 20 77 2e 72 6f 77 73 20 2a 20 77 | RDER;...(....w.winh.=.w.rows.*.w |
| 2220 | 2e 63 68 20 2b 20 32 20 2a 20 42 4f 52 44 45 52 3b 00 00 00 00 00 00 00 3c 20 20 20 20 75 69 6e | .ch.+.2.*.BORDER;.......<....uin |
| 2240 | 74 33 32 5f 74 20 6d 61 73 6b 20 20 20 3d 20 58 43 42 5f 43 57 5f 42 41 43 4b 5f 50 49 58 45 4c | t32_t.mask...=.XCB_CW_BACK_PIXEL |
| 2260 | 20 7c 20 58 43 42 5f 43 57 5f 45 56 45 4e 54 5f 4d 41 53 4b 3b 00 00 00 17 20 20 20 20 75 69 6e | .|.XCB_CW_EVENT_MASK;........uin |
| 2280 | 74 33 32 5f 74 20 76 61 6c 75 65 73 5b 32 5d 3b 00 00 00 2e 20 20 20 20 76 61 6c 75 65 73 5b 30 | t32_t.values[2];........values[0 |
| 22a0 | 5d 20 3d 20 42 6c 61 63 6b 50 69 78 65 6c 28 77 2e 64 70 79 2c 20 73 63 72 65 65 6e 5f 6e 75 6d | ].=.BlackPixel(w.dpy,.screen_num |
| 22c0 | 29 3b 00 00 00 27 20 20 20 20 76 61 6c 75 65 73 5b 31 5d 20 3d 20 58 43 42 5f 45 56 45 4e 54 5f | );...'....values[1].=.XCB_EVENT_ |
| 22e0 | 4d 41 53 4b 5f 45 58 50 4f 53 55 52 45 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c | MASK_EXPOSURE...(..............| |
| 2300 | 20 58 43 42 5f 45 56 45 4e 54 5f 4d 41 53 4b 5f 4b 45 59 5f 50 52 45 53 53 00 00 00 2b 20 20 20 | .XCB_EVENT_MASK_KEY_PRESS...+... |
| 2320 | 20 20 20 20 20 20 20 20 20 20 20 7c 20 58 43 42 5f 45 56 45 4e 54 5f 4d 41 53 4b 5f 42 55 54 54 | ...........|.XCB_EVENT_MASK_BUTT |
| 2340 | 4f 4e 5f 50 52 45 53 53 00 00 00 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 58 43 42 5f | ON_PRESS...-..............|.XCB_ |
| 2360 | 45 56 45 4e 54 5f 4d 41 53 4b 5f 42 55 54 54 4f 4e 5f 52 45 4c 45 41 53 45 00 00 00 30 20 20 20 | EVENT_MASK_BUTTON_RELEASE...0... |
| 2380 | 20 20 20 20 20 20 20 20 20 20 20 7c 20 58 43 42 5f 45 56 45 4e 54 5f 4d 41 53 4b 5f 53 54 52 55 | ...........|.XCB_EVENT_MASK_STRU |
| 23a0 | 43 54 55 52 45 5f 4e 4f 54 49 46 59 3b 00 00 00 00 00 00 00 23 20 20 20 20 77 2e 77 69 6e 20 3d | CTURE_NOTIFY;.......#....w.win.= |
| 23c0 | 20 78 63 62 5f 67 65 6e 65 72 61 74 65 5f 69 64 28 77 2e 63 6f 6e 29 3b 00 00 00 46 20 20 20 20 | .xcb_generate_id(w.con);...F.... |
| 23e0 | 78 63 62 5f 63 72 65 61 74 65 5f 77 69 6e 64 6f 77 28 77 2e 63 6f 6e 2c 20 58 43 42 5f 43 4f 50 | xcb_create_window(w.con,.XCB_COP |
| 2400 | 59 5f 46 52 4f 4d 5f 50 41 52 45 4e 54 2c 20 77 2e 77 69 6e 2c 20 77 2e 73 63 72 2d 3e 72 6f 6f | Y_FROM_PARENT,.w.win,.w.scr->roo |
| 2420 | 74 2c 00 00 00 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 2c 20 30 | t,..........................0,.0 |
| 2440 | 2c 20 77 2e 77 69 6e 77 2c 20 77 2e 77 69 6e 68 2c 20 30 2c 00 00 00 34 20 20 20 20 20 20 20 20 | ,.w.winw,.w.winh,.0,...4........ |
| 2460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 58 43 42 5f 57 49 4e 44 4f 57 5f 43 4c 41 53 53 5f 49 | ..............XCB_WINDOW_CLASS_I |
| 2480 | 4e 50 55 54 5f 4f 55 54 50 55 54 2c 00 00 00 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | NPUT_OUTPUT,...8................ |
| 24a0 | 20 20 20 20 20 20 77 2e 73 63 72 2d 3e 72 6f 6f 74 5f 76 69 73 75 61 6c 2c 20 6d 61 73 6b 2c 20 | ......w.scr->root_visual,.mask,. |
| 24c0 | 76 61 6c 75 65 73 29 3b 00 00 00 00 00 00 00 46 20 20 20 20 78 63 62 5f 69 63 63 63 6d 5f 73 65 | values);.......F....xcb_icccm_se |
| 24e0 | 74 5f 77 6d 5f 6e 61 6d 65 28 77 2e 63 6f 6e 2c 20 77 2e 77 69 6e 2c 20 58 43 42 5f 41 54 4f 4d | t_wm_name(w.con,.w.win,.XCB_ATOM |
| 2500 | 5f 53 54 52 49 4e 47 2c 20 38 2c 20 34 2c 20 22 78 73 74 22 29 3b 00 00 00 4b 20 20 20 20 78 63 | _STRING,.8,.4,."xst");...K....xc |
| 2520 | 62 5f 69 63 63 63 6d 5f 73 65 74 5f 77 6d 5f 69 63 6f 6e 5f 6e 61 6d 65 28 77 2e 63 6f 6e 2c 20 | b_icccm_set_wm_icon_name(w.con,. |
| 2540 | 77 2e 77 69 6e 2c 20 58 43 42 5f 41 54 4f 4d 5f 53 54 52 49 4e 47 2c 20 38 2c 20 34 2c 20 22 78 | w.win,.XCB_ATOM_STRING,.8,.4,."x |
| 2560 | 73 74 22 29 3b 00 00 00 00 00 00 00 1b 20 20 20 20 78 63 62 5f 73 69 7a 65 5f 68 69 6e 74 73 5f | st");............xcb_size_hints_ |
| 2580 | 74 20 68 69 6e 74 73 3b 00 00 00 24 20 20 20 20 6d 65 6d 73 65 74 28 26 68 69 6e 74 73 2c 20 30 | t.hints;...$....memset(&hints,.0 |
| 25a0 | 2c 20 73 69 7a 65 6f 66 20 68 69 6e 74 73 29 3b 00 00 00 3c 20 20 20 20 78 63 62 5f 69 63 63 63 | ,.sizeof.hints);...<....xcb_iccc |
| 25c0 | 6d 5f 73 69 7a 65 5f 68 69 6e 74 73 5f 73 65 74 5f 72 65 73 69 7a 65 5f 69 6e 63 28 26 68 69 6e | m_size_hints_set_resize_inc(&hin |
| 25e0 | 74 73 2c 20 77 2e 63 77 2c 20 77 2e 63 68 29 3b 00 00 00 47 20 20 20 20 78 63 62 5f 69 63 63 63 | ts,.w.cw,.w.ch);...G....xcb_iccc |
| 2600 | 6d 5f 73 69 7a 65 5f 68 69 6e 74 73 5f 73 65 74 5f 62 61 73 65 5f 73 69 7a 65 28 26 68 69 6e 74 | m_size_hints_set_base_size(&hint |
| 2620 | 73 2c 20 32 20 2a 20 42 4f 52 44 45 52 2c 20 32 20 2a 20 42 4f 52 44 45 52 29 3b 00 00 00 54 20 | s,.2.*.BORDER,.2.*.BORDER);...T. |
| 2640 | 20 20 20 78 63 62 5f 69 63 63 63 6d 5f 73 69 7a 65 5f 68 69 6e 74 73 5f 73 65 74 5f 6d 69 6e 5f | ...xcb_icccm_size_hints_set_min_ |
| 2660 | 73 69 7a 65 28 26 68 69 6e 74 73 2c 20 77 2e 63 77 20 2b 20 32 20 2a 20 42 4f 52 44 45 52 2c 20 | size(&hints,.w.cw.+.2.*.BORDER,. |
| 2680 | 77 2e 63 68 20 2b 20 32 20 2a 20 42 4f 52 44 45 52 29 3b 00 00 00 38 20 20 20 20 78 63 62 5f 69 | w.ch.+.2.*.BORDER);...8....xcb_i |
| 26a0 | 63 63 63 6d 5f 73 65 74 5f 77 6d 5f 6e 6f 72 6d 61 6c 5f 68 69 6e 74 73 28 77 2e 63 6f 6e 2c 20 | cccm_set_wm_normal_hints(w.con,. |
| 26c0 | 77 2e 77 69 6e 2c 20 26 68 69 6e 74 73 29 3b 00 00 00 00 00 00 00 1d 20 20 20 20 78 63 62 5f 61 | w.win,.&hints);............xcb_a |
| 26e0 | 74 6f 6d 5f 74 20 77 6d 5f 64 65 6c 65 74 65 20 3d 20 30 3b 00 00 00 05 20 20 20 20 7b 00 00 00 | tom_t.wm_delete.=.0;........{... |
| 2700 | 42 20 20 20 20 20 20 20 20 78 63 62 5f 69 6e 74 65 72 6e 5f 61 74 6f 6d 5f 72 65 70 6c 79 5f 74 | B........xcb_intern_atom_reply_t |
| 2720 | 20 2a 72 31 20 3d 20 78 63 62 5f 69 6e 74 65 72 6e 5f 61 74 6f 6d 5f 72 65 70 6c 79 28 77 2e 63 | .*r1.=.xcb_intern_atom_reply(w.c |
| 2740 | 6f 6e 2c 00 00 00 45 20 20 20 20 20 20 20 20 20 20 20 20 78 63 62 5f 69 6e 74 65 72 6e 5f 61 74 | on,...E............xcb_intern_at |
| 2760 | 6f 6d 28 77 2e 63 6f 6e 2c 20 30 2c 20 31 36 2c 20 22 57 4d 5f 44 45 4c 45 54 45 5f 57 49 4e 44 | om(w.con,.0,.16,."WM_DELETE_WIND |
| 2780 | 4f 57 22 29 2c 20 4e 55 4c 4c 29 3b 00 00 00 42 20 20 20 20 20 20 20 20 78 63 62 5f 69 6e 74 65 | OW"),.NULL);...B........xcb_inte |
| 27a0 | 72 6e 5f 61 74 6f 6d 5f 72 65 70 6c 79 5f 74 20 2a 72 32 20 3d 20 78 63 62 5f 69 6e 74 65 72 6e | rn_atom_reply_t.*r2.=.xcb_intern |
| 27c0 | 5f 61 74 6f 6d 5f 72 65 70 6c 79 28 77 2e 63 6f 6e 2c 00 00 00 41 20 20 20 20 20 20 20 20 20 20 | _atom_reply(w.con,...A.......... |
| 27e0 | 20 20 78 63 62 5f 69 6e 74 65 72 6e 5f 61 74 6f 6d 28 77 2e 63 6f 6e 2c 20 30 2c 20 31 32 2c 20 | ..xcb_intern_atom(w.con,.0,.12,. |
| 2800 | 22 57 4d 5f 50 52 4f 54 4f 43 4f 4c 53 22 29 2c 20 4e 55 4c 4c 29 3b 00 00 00 17 20 20 20 20 20 | "WM_PROTOCOLS"),.NULL);......... |
| 2820 | 20 20 20 69 66 20 28 72 31 20 26 26 20 72 32 29 20 7b 00 00 00 21 20 20 20 20 20 20 20 20 20 20 | ...if.(r1.&&.r2).{...!.......... |
| 2840 | 20 20 77 6d 5f 64 65 6c 65 74 65 20 3d 20 72 31 2d 3e 61 74 6f 6d 3b 00 00 00 4e 20 20 20 20 20 | ..wm_delete.=.r1->atom;...N..... |
| 2860 | 20 20 20 20 20 20 20 78 63 62 5f 69 63 63 63 6d 5f 73 65 74 5f 77 6d 5f 70 72 6f 74 6f 63 6f 6c | .......xcb_icccm_set_wm_protocol |
| 2880 | 73 28 77 2e 63 6f 6e 2c 20 77 2e 77 69 6e 2c 20 72 32 2d 3e 61 74 6f 6d 2c 20 31 2c 20 26 77 6d | s(w.con,.w.win,.r2->atom,.1,.&wm |
| 28a0 | 5f 64 65 6c 65 74 65 29 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 1b 20 20 20 20 20 20 | _delete);............}.......... |
| 28c0 | 20 20 66 72 65 65 28 72 31 29 3b 20 66 72 65 65 28 72 32 29 3b 00 00 00 05 20 20 20 20 7d 00 00 | ..free(r1);.free(r2);........}.. |
| 28e0 | 00 00 00 00 00 21 20 20 20 20 78 63 62 5f 6d 61 70 5f 77 69 6e 64 6f 77 28 77 2e 63 6f 6e 2c 20 | .....!....xcb_map_window(w.con,. |
| 2900 | 77 2e 77 69 6e 29 3b 00 00 00 15 20 20 20 20 78 63 62 5f 66 6c 75 73 68 28 77 2e 63 6f 6e 29 3b | w.win);........xcb_flush(w.con); |
| 2920 | 00 00 00 00 00 00 00 3f 20 20 20 20 77 2e 64 72 61 77 20 3d 20 58 66 74 44 72 61 77 43 72 65 61 | .......?....w.draw.=.XftDrawCrea |
| 2940 | 74 65 28 77 2e 64 70 79 2c 20 77 2e 77 69 6e 2c 20 77 2e 76 69 73 75 61 6c 2c 20 77 2e 63 6f 6c | te(w.dpy,.w.win,.w.visual,.w.col |
| 2960 | 6f 72 6d 61 70 29 3b 00 00 00 2e 20 20 20 20 69 66 20 28 21 77 2e 64 72 61 77 29 20 64 69 65 28 | ormap);........if.(!w.draw).die( |
| 2980 | 22 63 61 6e 6e 6f 74 20 63 72 65 61 74 65 20 58 66 74 44 72 61 77 22 29 3b 00 00 00 00 00 00 00 | "cannot.create.XftDraw");....... |
| 29a0 | 2b 20 20 20 20 77 2e 6b 73 79 6d 73 20 3d 20 78 63 62 5f 6b 65 79 5f 73 79 6d 62 6f 6c 73 5f 61 | +....w.ksyms.=.xcb_key_symbols_a |
| 29c0 | 6c 6c 6f 63 28 77 2e 63 6f 6e 29 3b 00 00 00 00 00 00 00 14 20 20 20 20 28 76 6f 69 64 29 77 6d | lloc(w.con);............(void)wm |
| 29e0 | 5f 64 65 6c 65 74 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1c 73 74 61 74 69 63 20 76 6f 69 64 | _delete;....}........static.void |
| 2a00 | 20 70 74 79 5f 69 6e 69 74 28 76 6f 69 64 29 20 7b 00 00 00 31 20 20 20 20 73 74 72 75 63 74 20 | .pty_init(void).{...1....struct. |
| 2a20 | 77 69 6e 73 69 7a 65 20 77 73 20 3d 20 7b 20 77 2e 72 6f 77 73 2c 20 77 2e 63 6f 6c 73 2c 20 30 | winsize.ws.=.{.w.rows,.w.cols,.0 |
| 2a40 | 2c 20 30 20 7d 3b 00 00 00 31 20 20 20 20 70 74 79 2e 70 69 64 20 3d 20 66 6f 72 6b 70 74 79 28 | ,.0.};...1....pty.pid.=.forkpty( |
| 2a60 | 26 70 74 79 2e 6d 66 64 2c 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 2c 20 26 77 73 29 3b 00 00 00 39 20 | &pty.mfd,.NULL,.NULL,.&ws);...9. |
| 2a80 | 20 20 20 69 66 20 28 70 74 79 2e 70 69 64 20 3c 20 30 29 20 64 69 65 28 22 66 6f 72 6b 70 74 79 | ...if.(pty.pid.<.0).die("forkpty |
| 2aa0 | 3a 20 25 73 22 2c 20 73 74 72 65 72 72 6f 72 28 65 72 72 6e 6f 29 29 3b 00 00 00 17 20 20 20 20 | :.%s",.strerror(errno));........ |
| 2ac0 | 69 66 20 28 70 74 79 2e 70 69 64 20 3d 3d 20 30 29 20 7b 00 00 00 2c 20 20 20 20 20 20 20 20 73 | if.(pty.pid.==.0).{...,........s |
| 2ae0 | 65 74 65 6e 76 28 22 54 45 52 4d 22 2c 20 22 78 74 65 72 6d 2d 32 35 36 63 6f 6c 6f 72 22 2c 20 | etenv("TERM",."xterm-256color",. |
| 2b00 | 31 29 3b 00 00 00 2c 20 20 20 20 20 20 20 20 73 65 74 65 6e 76 28 22 43 4f 4c 4f 52 54 45 52 4d | 1);...,........setenv("COLORTERM |
| 2b20 | 22 2c 20 22 74 72 75 65 63 6f 6c 6f 72 22 2c 20 31 29 3b 00 00 00 27 20 20 20 20 20 20 20 20 63 | ",."truecolor",.1);...'........c |
| 2b40 | 68 61 72 20 2a 61 72 67 73 5b 5d 20 3d 20 7b 20 53 48 45 4c 4c 2c 20 4e 55 4c 4c 20 7d 3b 00 00 | har.*args[].=.{.SHELL,.NULL.};.. |
| 2b60 | 00 1c 20 20 20 20 20 20 20 20 65 78 65 63 76 70 28 53 48 45 4c 4c 2c 20 61 72 67 73 29 3b 00 00 | ..........execvp(SHELL,.args);.. |
| 2b80 | 00 2b 20 20 20 20 20 20 20 20 64 69 65 28 22 65 78 65 63 76 70 3a 20 25 73 22 2c 20 73 74 72 65 | .+........die("execvp:.%s",.stre |
| 2ba0 | 72 72 6f 72 28 65 72 72 6e 6f 29 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 28 20 20 20 20 66 63 | rror(errno));........}...(....fc |
| 2bc0 | 6e 74 6c 28 70 74 79 2e 6d 66 64 2c 20 46 5f 53 45 54 46 4c 2c 20 4f 5f 4e 4f 4e 42 4c 4f 43 4b | ntl(pty.mfd,.F_SETFL,.O_NONBLOCK |
| 2be0 | 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2f 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 79 5f 77 | );....}......./static.void.pty_w |
| 2c00 | 72 69 74 65 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 69 6e 74 20 6c 65 6e 29 20 7b 00 00 | rite(const.char.*s,.int.len).{.. |
| 2c20 | 00 15 20 20 20 20 77 68 69 6c 65 20 28 6c 65 6e 20 3e 20 30 29 20 7b 00 00 00 27 20 20 20 20 20 | ......while.(len.>.0).{...'..... |
| 2c40 | 20 20 20 69 6e 74 20 6e 20 3d 20 77 72 69 74 65 28 70 74 79 2e 6d 66 64 2c 20 73 2c 20 6c 65 6e | ...int.n.=.write(pty.mfd,.s,.len |
| 2c60 | 29 3b 00 00 00 31 20 20 20 20 20 20 20 20 69 66 20 28 6e 20 3c 20 30 29 20 7b 20 69 66 20 28 65 | );...1........if.(n.<.0).{.if.(e |
| 2c80 | 72 72 6e 6f 20 21 3d 20 45 49 4e 54 52 29 20 62 72 65 61 6b 3b 20 7d 00 00 00 22 20 20 20 20 20 | rrno.!=.EINTR).break;.}..."..... |
| 2ca0 | 20 20 20 65 6c 73 65 20 7b 20 73 20 2b 3d 20 6e 3b 20 6c 65 6e 20 2d 3d 20 6e 3b 20 7d 00 00 00 | ...else.{.s.+=.n;.len.-=.n;.}... |
| 2cc0 | 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 | .....}....}........typedef.struc |
| 2ce0 | 74 20 7b 00 00 00 10 20 20 20 20 69 6e 74 20 20 20 20 61 72 67 63 3b 00 00 00 18 20 20 20 20 63 | t.{........int....argc;........c |
| 2d00 | 68 61 72 20 20 20 61 72 67 76 5b 33 32 5d 5b 36 34 5d 3b 00 00 00 10 20 20 20 20 69 6e 74 20 20 | har...argv[32][64];........int.. |
| 2d20 | 20 20 70 72 69 76 3b 00 00 00 11 20 20 20 20 69 6e 74 20 20 20 20 69 6e 74 65 72 3b 00 00 00 0c | ..priv;........int....inter;.... |
| 2d40 | 7d 20 43 53 49 45 73 63 61 70 65 3b 00 00 00 00 00 00 00 15 73 74 61 74 69 63 20 43 53 49 45 73 | }.CSIEscape;........static.CSIEs |
| 2d60 | 63 61 70 65 20 63 73 69 3b 00 00 00 00 00 00 00 14 73 74 61 74 69 63 20 69 6e 74 20 63 75 72 5f | cape.csi;........static.int.cur_ |
| 2d80 | 61 74 74 72 3b 00 00 00 14 73 74 61 74 69 63 20 43 6f 6c 6f 72 20 63 75 72 5f 66 67 3b 00 00 00 | attr;....static.Color.cur_fg;... |
| 2da0 | 14 73 74 61 74 69 63 20 43 6f 6c 6f 72 20 63 75 72 5f 62 67 3b 00 00 00 00 00 00 00 1d 73 74 61 | .static.Color.cur_bg;........sta |
| 2dc0 | 74 69 63 20 76 6f 69 64 20 64 69 72 74 79 5f 61 6c 6c 28 76 6f 69 64 29 20 7b 00 00 00 4a 20 20 | tic.void.dirty_all(void).{...J.. |
| 2de0 | 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 63 75 72 5f 74 65 72 6d 2d 3e | ..for.(int.i.=.0;.i.<.cur_term-> |
| 2e00 | 6e 72 6f 77 73 3b 20 69 2b 2b 29 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 64 69 | nrows;.i++).cur_term->rows[i].di |
| 2e20 | 72 74 79 20 3d 20 31 3b 00 00 00 01 7d 00 00 00 00 00 00 00 35 73 74 61 74 69 63 20 76 6f 69 64 | rty.=.1;....}.......5static.void |
| 2e40 | 20 73 65 74 5f 63 65 6c 6c 28 69 6e 74 20 72 6f 77 2c 20 69 6e 74 20 63 6f 6c 2c 20 75 69 6e 74 | .set_cell(int.row,.int.col,.uint |
| 2e60 | 33 32 5f 74 20 63 70 29 20 7b 00 00 00 57 20 20 20 20 69 66 20 28 72 6f 77 20 3c 20 30 20 7c 7c | 32_t.cp).{...W....if.(row.<.0.|| |
| 2e80 | 20 72 6f 77 20 3e 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 20 7c 7c 20 63 6f 6c 20 3c | .row.>=.cur_term->nrows.||.col.< |
| 2ea0 | 20 30 20 7c 7c 20 63 6f 6c 20 3e 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 29 20 72 65 | .0.||.col.>=.cur_term->ncols).re |
| 2ec0 | 74 75 72 6e 3b 00 00 00 2f 20 20 20 20 47 6c 79 70 68 20 2a 67 20 3d 20 26 63 75 72 5f 74 65 72 | turn;.../....Glyph.*g.=.&cur_ter |
| 2ee0 | 6d 2d 3e 72 6f 77 73 5b 72 6f 77 5d 2e 63 65 6c 6c 73 5b 63 6f 6c 5d 3b 00 00 00 16 20 20 20 20 | m->rows[row].cells[col];........ |
| 2f00 | 67 2d 3e 63 6f 64 65 70 6f 69 6e 74 20 3d 20 63 70 3b 00 00 00 1c 20 20 20 20 67 2d 3e 61 74 74 | g->codepoint.=.cp;........g->att |
| 2f20 | 72 20 20 20 20 20 20 3d 20 63 75 72 5f 61 74 74 72 3b 00 00 00 1a 20 20 20 20 67 2d 3e 66 67 20 | r......=.cur_attr;........g->fg. |
| 2f40 | 20 20 20 20 20 20 20 3d 20 63 75 72 5f 66 67 3b 00 00 00 1a 20 20 20 20 67 2d 3e 62 67 20 20 20 | .......=.cur_fg;........g->bg... |
| 2f60 | 20 20 20 20 20 3d 20 63 75 72 5f 62 67 3b 00 00 00 22 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e | .....=.cur_bg;..."....cur_term-> |
| 2f80 | 72 6f 77 73 5b 72 6f 77 5d 2e 64 69 72 74 79 20 3d 20 31 3b 00 00 00 01 7d 00 00 00 00 00 00 00 | rows[row].dirty.=.1;....}....... |
| 2fa0 | 32 73 74 61 74 69 63 20 76 6f 69 64 20 74 65 72 6d 5f 73 63 72 6f 6c 6c 28 69 6e 74 20 74 6f 70 | 2static.void.term_scroll(int.top |
| 2fc0 | 2c 20 69 6e 74 20 62 6f 74 2c 20 69 6e 74 20 6e 29 20 7b 00 00 00 17 20 20 20 20 69 66 20 28 6e | ,.int.bot,.int.n).{........if.(n |
| 2fe0 | 20 3d 3d 20 30 29 20 72 65 74 75 72 6e 3b 00 00 00 10 20 20 20 20 69 66 20 28 6e 20 3e 20 30 29 | .==.0).return;........if.(n.>.0) |
| 3000 | 20 7b 00 00 00 2e 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 74 6f 70 3b 20 | .{............for.(int.i.=.top;. |
| 3020 | 69 20 3c 3d 20 62 6f 74 20 2d 20 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 28 20 20 20 20 20 20 20 20 | i.<=.bot.-.n;.i++).{...(........ |
| 3040 | 20 20 20 20 52 6f 77 20 74 6d 70 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 3b | ....Row.tmp.=.cur_term->rows[i]; |
| 3060 | 00 00 00 36 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 | ...6............cur_term->rows[i |
| 3080 | 5d 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 20 2b 20 6e 5d 3b 00 00 00 28 20 20 | ].=.cur_term->rows[i.+.n];...(.. |
| 30a0 | 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 20 2b 20 6e 5d 20 | ..........cur_term->rows[i.+.n]. |
| 30c0 | 3d 20 74 6d 70 3b 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e | =.tmp;...(............cur_term-> |
| 30e0 | 72 6f 77 73 5b 69 5d 2e 64 69 72 74 79 20 3d 20 31 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 | rows[i].dirty.=.1;............}. |
| 3100 | 00 00 32 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 62 6f 74 20 2d 20 6e 20 | ..2........for.(int.i.=.bot.-.n. |
| 3120 | 2b 20 31 3b 20 69 20 3c 3d 20 62 6f 74 3b 20 69 2b 2b 29 20 7b 00 00 00 37 20 20 20 20 20 20 20 | +.1;.i.<=.bot;.i++).{...7....... |
| 3140 | 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 30 3b 20 6a 20 3c 20 63 75 72 5f 74 65 72 | .....for.(int.j.=.0;.j.<.cur_ter |
| 3160 | 6d 2d 3e 6e 63 6f 6c 73 3b 20 6a 2b 2b 29 20 7b 00 00 00 3b 20 20 20 20 20 20 20 20 20 20 20 20 | m->ncols;.j++).{...;............ |
| 3180 | 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 63 | ....cur_term->rows[i].cells[j].c |
| 31a0 | 6f 64 65 70 6f 69 6e 74 20 3d 20 27 20 27 3b 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 | odepoint.=.'.';...4............. |
| 31c0 | 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 61 74 | ...cur_term->rows[i].cells[j].at |
| 31e0 | 74 72 20 3d 20 30 3b 00 00 00 3c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 | tr.=.0;...<................cur_t |
| 3200 | 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 66 67 20 3d 20 77 2e 64 65 66 | erm->rows[i].cells[j].fg.=.w.def |
| 3220 | 61 75 6c 74 66 67 3b 00 00 00 3c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 | aultfg;...<................cur_t |
| 3240 | 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 62 67 20 3d 20 77 2e 64 65 66 | erm->rows[i].cells[j].bg.=.w.def |
| 3260 | 61 75 6c 74 62 67 3b 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 28 20 20 20 20 | aultbg;................}...(.... |
| 3280 | 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 64 69 72 74 79 20 | ........cur_term->rows[i].dirty. |
| 32a0 | 3d 20 31 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 0c 20 20 20 20 7d 20 65 6c 73 65 20 | =.1;............}........}.else. |
| 32c0 | 7b 00 00 00 0f 20 20 20 20 20 20 20 20 6e 20 3d 20 2d 6e 3b 00 00 00 2e 20 20 20 20 20 20 20 20 | {............n.=.-n;............ |
| 32e0 | 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 62 6f 74 3b 20 69 20 3e 3d 20 74 6f 70 20 2b 20 6e 3b 20 | for.(int.i.=.bot;.i.>=.top.+.n;. |
| 3300 | 69 2d 2d 29 20 7b 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 52 6f 77 20 74 6d 70 20 3d 20 | i--).{...(............Row.tmp.=. |
| 3320 | 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 3b 00 00 00 36 20 20 20 20 20 20 20 20 20 20 | cur_term->rows[i];...6.......... |
| 3340 | 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e | ..cur_term->rows[i].=.cur_term-> |
| 3360 | 72 6f 77 73 5b 69 20 2d 20 6e 5d 3b 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f | rows[i.-.n];...(............cur_ |
| 3380 | 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 20 2d 20 6e 5d 20 3d 20 74 6d 70 3b 00 00 00 28 20 20 20 20 | term->rows[i.-.n].=.tmp;...(.... |
| 33a0 | 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 64 69 72 74 79 20 | ........cur_term->rows[i].dirty. |
| 33c0 | 3d 20 31 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 2d 20 20 20 20 20 20 20 20 66 6f 72 | =.1;............}...-........for |
| 33e0 | 20 28 69 6e 74 20 69 20 3d 20 74 6f 70 3b 20 69 20 3c 20 74 6f 70 20 2b 20 6e 3b 20 69 2b 2b 29 | .(int.i.=.top;.i.<.top.+.n;.i++) |
| 3400 | 20 7b 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 30 | .{...7............for.(int.j.=.0 |
| 3420 | 3b 20 6a 20 3c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 3b 20 6a 2b 2b 29 20 7b 00 00 00 | ;.j.<.cur_term->ncols;.j++).{... |
| 3440 | 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b | ;................cur_term->rows[ |
| 3460 | 69 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 63 6f 64 65 70 6f 69 6e 74 20 3d 20 27 20 27 3b 00 00 00 34 | i].cells[j].codepoint.=.'.';...4 |
| 3480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 | ................cur_term->rows[i |
| 34a0 | 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 61 74 74 72 20 3d 20 30 3b 00 00 00 3c 20 20 20 20 20 20 20 20 | ].cells[j].attr.=.0;...<........ |
| 34c0 | 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b | ........cur_term->rows[i].cells[ |
| 34e0 | 6a 5d 2e 66 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 66 67 3b 00 00 00 3c 20 20 20 20 20 20 20 20 | j].fg.=.w.defaultfg;...<........ |
| 3500 | 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b | ........cur_term->rows[i].cells[ |
| 3520 | 6a 5d 2e 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b 00 00 00 0d 20 20 20 20 20 20 20 20 | j].bg.=.w.defaultbg;............ |
| 3540 | 20 20 20 20 7d 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 | ....}...(............cur_term->r |
| 3560 | 6f 77 73 5b 69 5d 2e 64 69 72 74 79 20 3d 20 31 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 | ows[i].dirty.=.1;............}.. |
| 3580 | 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 2b 73 74 61 74 69 63 20 76 6f 69 64 20 | ......}....}.......+static.void. |
| 35a0 | 63 75 72 73 6f 72 5f 6d 6f 76 65 28 69 6e 74 20 72 6f 77 2c 20 69 6e 74 20 63 6f 6c 29 20 7b 00 | cursor_move(int.row,.int.col).{. |
| 35c0 | 00 00 27 20 20 20 20 69 66 20 28 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 | ..'....if.(cur_term->mode.&.MODE |
| 35e0 | 5f 4f 52 49 47 49 4e 29 20 7b 00 00 00 1d 20 20 20 20 20 20 20 20 72 6f 77 20 2b 3d 20 63 75 72 | _ORIGIN).{............row.+=.cur |
| 3600 | 5f 74 65 72 6d 2d 3e 74 6f 70 3b 00 00 00 35 20 20 20 20 20 20 20 20 69 66 20 28 72 6f 77 20 3e | _term->top;...5........if.(row.> |
| 3620 | 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 29 20 72 6f 77 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e | .cur_term->bot).row.=.cur_term-> |
| 3640 | 62 6f 74 3b 00 00 00 05 20 20 20 20 7d 00 00 00 5b 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 63 | bot;........}...[....cur_term->c |
| 3660 | 75 72 2e 72 6f 77 20 3d 20 72 6f 77 20 3c 20 30 20 3f 20 30 20 3a 20 28 72 6f 77 20 3e 3d 20 63 | ur.row.=.row.<.0.?.0.:.(row.>=.c |
| 3680 | 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 20 3f 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 | ur_term->nrows.?.cur_term->nrows |
| 36a0 | 20 2d 20 31 20 3a 20 72 6f 77 29 3b 00 00 00 5b 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 | .-.1.:.row);...[....cur_term->cu |
| 36c0 | 72 2e 63 6f 6c 20 3d 20 63 6f 6c 20 3c 20 30 20 3f 20 30 20 3a 20 28 63 6f 6c 20 3e 3d 20 63 75 | r.col.=.col.<.0.?.0.:.(col.>=.cu |
| 36e0 | 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 3f 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 | r_term->ncols.?.cur_term->ncols. |
| 3700 | 2d 20 31 20 3a 20 63 6f 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3a 73 74 61 74 69 63 20 76 | -.1.:.col);....}.......:static.v |
| 3720 | 6f 69 64 20 63 6c 65 61 72 5f 72 65 67 69 6f 6e 28 69 6e 74 20 72 31 2c 20 69 6e 74 20 63 31 2c | oid.clear_region(int.r1,.int.c1, |
| 3740 | 20 69 6e 74 20 72 32 2c 20 69 6e 74 20 63 32 29 20 7b 00 00 00 24 20 20 20 20 66 6f 72 20 28 69 | .int.r2,.int.c2).{...$....for.(i |
| 3760 | 6e 74 20 72 20 3d 20 72 31 3b 20 72 20 3c 3d 20 72 32 3b 20 72 2b 2b 29 20 7b 00 00 00 34 20 20 | nt.r.=.r1;.r.<=.r2;.r++).{...4.. |
| 3780 | 20 20 20 20 20 20 69 66 20 28 72 20 3c 20 30 20 7c 7c 20 72 20 3e 3d 20 63 75 72 5f 74 65 72 6d | ......if.(r.<.0.||.r.>=.cur_term |
| 37a0 | 2d 3e 6e 72 6f 77 73 29 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 28 20 20 20 20 20 20 20 20 66 6f | ->nrows).continue;...(........fo |
| 37c0 | 72 20 28 69 6e 74 20 63 20 3d 20 63 31 3b 20 63 20 3c 3d 20 63 32 3b 20 63 2b 2b 29 20 7b 00 00 | r.(int.c.=.c1;.c.<=.c2;.c++).{.. |
| 37e0 | 00 38 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 20 3c 20 30 20 7c 7c 20 63 20 3e 3d 20 | .8............if.(c.<.0.||.c.>=. |
| 3800 | 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 29 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 37 20 20 | cur_term->ncols).continue;...7.. |
| 3820 | 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 72 5d 2e 63 65 6c 6c | ..........cur_term->rows[r].cell |
| 3840 | 73 5b 63 5d 2e 63 6f 64 65 70 6f 69 6e 74 20 3d 20 27 20 27 3b 00 00 00 30 20 20 20 20 20 20 20 | s[c].codepoint.=.'.';...0....... |
| 3860 | 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 72 5d 2e 63 65 6c 6c 73 5b 63 5d 2e | .....cur_term->rows[r].cells[c]. |
| 3880 | 61 74 74 72 20 3d 20 30 3b 00 00 00 38 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 | attr.=.0;...8............cur_ter |
| 38a0 | 6d 2d 3e 72 6f 77 73 5b 72 5d 2e 63 65 6c 6c 73 5b 63 5d 2e 66 67 20 3d 20 77 2e 64 65 66 61 75 | m->rows[r].cells[c].fg.=.w.defau |
| 38c0 | 6c 74 66 67 3b 00 00 00 38 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 | ltfg;...8............cur_term->r |
| 38e0 | 6f 77 73 5b 72 5d 2e 63 65 6c 6c 73 5b 63 5d 2e 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 | ows[r].cells[c].bg.=.w.defaultbg |
| 3900 | 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 24 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 | ;............}...$........cur_te |
| 3920 | 72 6d 2d 3e 72 6f 77 73 5b 72 5d 2e 64 69 72 74 79 20 3d 20 31 3b 00 00 00 05 20 20 20 20 7d 00 | rm->rows[r].dirty.=.1;........}. |
| 3940 | 00 00 01 7d 00 00 00 00 00 00 00 1e 73 74 61 74 69 63 20 76 6f 69 64 20 68 61 6e 64 6c 65 5f 73 | ...}........static.void.handle_s |
| 3960 | 67 72 28 76 6f 69 64 29 20 7b 00 00 00 5c 20 20 20 20 69 66 20 28 63 73 69 2e 61 72 67 63 20 3d | gr(void).{...\....if.(csi.argc.= |
| 3980 | 3d 20 30 29 20 7b 20 63 75 72 5f 61 74 74 72 20 3d 20 30 3b 20 63 75 72 5f 66 67 20 3d 20 77 2e | =.0).{.cur_attr.=.0;.cur_fg.=.w. |
| 39a0 | 64 65 66 61 75 6c 74 66 67 3b 20 63 75 72 5f 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b | defaultfg;.cur_bg.=.w.defaultbg; |
| 39c0 | 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 28 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 | .return;.}...(....for.(int.i.=.0 |
| 39e0 | 3b 20 69 20 3c 20 63 73 69 2e 61 72 67 63 3b 20 69 2b 2b 29 20 7b 00 00 00 22 20 20 20 20 20 20 | ;.i.<.csi.argc;.i++).{..."...... |
| 3a00 | 20 20 69 6e 74 20 70 20 3d 20 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 5d 29 3b 00 00 00 52 | ..int.p.=.atoi(csi.argv[i]);...R |
| 3a20 | 20 20 20 20 20 20 20 20 69 66 20 28 70 20 3d 3d 20 30 29 20 20 7b 20 63 75 72 5f 61 74 74 72 20 | ........if.(p.==.0)..{.cur_attr. |
| 3a40 | 3d 20 30 3b 20 63 75 72 5f 66 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 66 67 3b 20 63 75 72 5f 62 | =.0;.cur_fg.=.w.defaultfg;.cur_b |
| 3a60 | 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b 20 7d 00 00 00 30 20 20 20 20 20 20 20 20 65 6c | g.=.w.defaultbg;.}...0........el |
| 3a80 | 73 65 20 69 66 20 28 70 20 3d 3d 20 31 29 20 20 63 75 72 5f 61 74 74 72 20 7c 3d 20 41 54 54 52 | se.if.(p.==.1)..cur_attr.|=.ATTR |
| 3aa0 | 5f 42 4f 4c 44 3b 00 00 00 32 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 | _BOLD;...2........else.if.(p.==. |
| 3ac0 | 33 29 20 20 63 75 72 5f 61 74 74 72 20 7c 3d 20 41 54 54 52 5f 49 54 41 4c 49 43 3b 00 00 00 35 | 3)..cur_attr.|=.ATTR_ITALIC;...5 |
| 3ae0 | 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 34 29 20 20 63 75 72 5f 61 74 | ........else.if.(p.==.4)..cur_at |
| 3b00 | 74 72 20 7c 3d 20 41 54 54 52 5f 55 4e 44 45 52 4c 49 4e 45 3b 00 00 00 31 20 20 20 20 20 20 20 | tr.|=.ATTR_UNDERLINE;...1....... |
| 3b20 | 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 35 29 20 20 63 75 72 5f 61 74 74 72 20 7c 3d 20 41 | .else.if.(p.==.5)..cur_attr.|=.A |
| 3b40 | 54 54 52 5f 42 4c 49 4e 4b 3b 00 00 00 33 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 | TTR_BLINK;...3........else.if.(p |
| 3b60 | 20 3d 3d 20 37 29 20 20 63 75 72 5f 61 74 74 72 20 7c 3d 20 41 54 54 52 5f 52 45 56 45 52 53 45 | .==.7)..cur_attr.|=.ATTR_REVERSE |
| 3b80 | 3b 00 00 00 31 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 32 32 29 20 63 | ;...1........else.if.(p.==.22).c |
| 3ba0 | 75 72 5f 61 74 74 72 20 26 3d 20 7e 41 54 54 52 5f 42 4f 4c 44 3b 00 00 00 33 20 20 20 20 20 20 | ur_attr.&=.~ATTR_BOLD;...3...... |
| 3bc0 | 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 32 33 29 20 63 75 72 5f 61 74 74 72 20 26 3d 20 | ..else.if.(p.==.23).cur_attr.&=. |
| 3be0 | 7e 41 54 54 52 5f 49 54 41 4c 49 43 3b 00 00 00 36 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 | ~ATTR_ITALIC;...6........else.if |
| 3c00 | 20 28 70 20 3d 3d 20 32 34 29 20 63 75 72 5f 61 74 74 72 20 26 3d 20 7e 41 54 54 52 5f 55 4e 44 | .(p.==.24).cur_attr.&=.~ATTR_UND |
| 3c20 | 45 52 4c 49 4e 45 3b 00 00 00 32 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d | ERLINE;...2........else.if.(p.== |
| 3c40 | 20 32 35 29 20 63 75 72 5f 61 74 74 72 20 26 3d 20 7e 41 54 54 52 5f 42 4c 49 4e 4b 3b 00 00 00 | .25).cur_attr.&=.~ATTR_BLINK;... |
| 3c60 | 34 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 32 37 29 20 63 75 72 5f 61 | 4........else.if.(p.==.27).cur_a |
| 3c80 | 74 74 72 20 26 3d 20 7e 41 54 54 52 5f 52 45 56 45 52 53 45 3b 00 00 00 3f 20 20 20 20 20 20 20 | ttr.&=.~ATTR_REVERSE;...?....... |
| 3ca0 | 20 65 6c 73 65 20 69 66 20 28 70 20 3e 3d 20 33 30 20 26 26 20 70 20 3c 3d 20 33 37 29 20 63 75 | .else.if.(p.>=.30.&&.p.<=.37).cu |
| 3cc0 | 72 5f 66 67 20 3d 20 63 6f 6c 6f 72 32 35 36 5b 70 20 2d 20 33 30 5d 3b 00 00 00 1b 20 20 20 20 | r_fg.=.color256[p.-.30];........ |
| 3ce0 | 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 33 38 29 20 7b 00 00 00 3f 20 20 20 20 20 | ....else.if.(p.==.38).{...?..... |
| 3d00 | 20 20 20 20 20 20 20 69 66 20 28 69 20 2b 20 32 20 3c 20 63 73 69 2e 61 72 67 63 20 26 26 20 61 | .......if.(i.+.2.<.csi.argc.&&.a |
| 3d20 | 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 2b 31 5d 29 20 3d 3d 20 35 29 20 7b 00 00 00 3e 20 20 | toi(csi.argv[i+1]).==.5).{...>.. |
| 3d40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 66 67 20 3d 20 63 6f 6c 6f 72 32 35 36 5b | ..............cur_fg.=.color256[ |
| 3d60 | 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 2b 32 5d 29 20 26 20 30 78 66 66 5d 3b 00 00 00 17 | atoi(csi.argv[i+2]).&.0xff];.... |
| 3d80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 20 2b 3d 20 32 3b 00 00 00 46 20 20 20 20 20 | ................i.+=.2;...F..... |
| 3da0 | 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 69 20 2b 20 34 20 3c 20 63 73 69 2e 61 72 | .......}.else.if.(i.+.4.<.csi.ar |
| 3dc0 | 67 63 20 26 26 20 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 2b 31 5d 29 20 3d 3d 20 32 29 20 | gc.&&.atoi(csi.argv[i+1]).==.2). |
| 3de0 | 7b 00 00 00 61 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 66 67 20 3d 20 70 61 | {...a................cur_fg.=.pa |
| 3e00 | 63 6b 5f 72 67 62 28 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 2b 32 5d 29 2c 20 61 74 6f 69 | ck_rgb(atoi(csi.argv[i+2]),.atoi |
| 3e20 | 28 63 73 69 2e 61 72 67 76 5b 69 2b 33 5d 29 2c 20 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 | (csi.argv[i+3]),.atoi(csi.argv[i |
| 3e40 | 2b 34 5d 29 29 3b 00 00 00 17 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 20 2b 3d 20 34 | +4]));....................i.+=.4 |
| 3e60 | 3b 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 | ;................}............}. |
| 3e80 | 00 00 2f 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 33 39 29 20 63 75 72 | ../........else.if.(p.==.39).cur |
| 3ea0 | 5f 66 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 66 67 3b 00 00 00 3f 20 20 20 20 20 20 20 20 65 6c | _fg.=.w.defaultfg;...?........el |
| 3ec0 | 73 65 20 69 66 20 28 70 20 3e 3d 20 34 30 20 26 26 20 70 20 3c 3d 20 34 37 29 20 63 75 72 5f 62 | se.if.(p.>=.40.&&.p.<=.47).cur_b |
| 3ee0 | 67 20 3d 20 63 6f 6c 6f 72 32 35 36 5b 70 20 2d 20 34 30 5d 3b 00 00 00 1b 20 20 20 20 20 20 20 | g.=.color256[p.-.40];........... |
| 3f00 | 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 34 38 29 20 7b 00 00 00 3f 20 20 20 20 20 20 20 20 | .else.if.(p.==.48).{...?........ |
| 3f20 | 20 20 20 20 69 66 20 28 69 20 2b 20 32 20 3c 20 63 73 69 2e 61 72 67 63 20 26 26 20 61 74 6f 69 | ....if.(i.+.2.<.csi.argc.&&.atoi |
| 3f40 | 28 63 73 69 2e 61 72 67 76 5b 69 2b 31 5d 29 20 3d 3d 20 35 29 20 7b 00 00 00 3e 20 20 20 20 20 | (csi.argv[i+1]).==.5).{...>..... |
| 3f60 | 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 62 67 20 3d 20 63 6f 6c 6f 72 32 35 36 5b 61 74 6f | ...........cur_bg.=.color256[ato |
| 3f80 | 69 28 63 73 69 2e 61 72 67 76 5b 69 2b 32 5d 29 20 26 20 30 78 66 66 5d 3b 00 00 00 17 20 20 20 | i(csi.argv[i+2]).&.0xff];....... |
| 3fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 69 20 2b 3d 20 32 3b 00 00 00 46 20 20 20 20 20 20 20 20 | .............i.+=.2;...F........ |
| 3fc0 | 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 69 20 2b 20 34 20 3c 20 63 73 69 2e 61 72 67 63 20 | ....}.else.if.(i.+.4.<.csi.argc. |
| 3fe0 | 26 26 20 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 2b 31 5d 29 20 3d 3d 20 32 29 20 7b 00 00 | &&.atoi(csi.argv[i+1]).==.2).{.. |
| 4000 | 00 61 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 62 67 20 3d 20 70 61 63 6b 5f | .a................cur_bg.=.pack_ |
| 4020 | 72 67 62 28 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 2b 32 5d 29 2c 20 61 74 6f 69 28 63 73 | rgb(atoi(csi.argv[i+2]),.atoi(cs |
| 4040 | 69 2e 61 72 67 76 5b 69 2b 33 5d 29 2c 20 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 2b 34 5d | i.argv[i+3]),.atoi(csi.argv[i+4] |
| 4060 | 29 29 3b 00 00 00 17 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 20 2b 3d 20 34 3b 00 00 | ));....................i.+=.4;.. |
| 4080 | 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 2f | ..............}............}.../ |
| 40a0 | 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 34 39 29 20 63 75 72 5f 62 67 | ........else.if.(p.==.49).cur_bg |
| 40c0 | 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b 00 00 00 43 20 20 20 20 20 20 20 20 65 6c 73 65 20 | .=.w.defaultbg;...C........else. |
| 40e0 | 69 66 20 28 70 20 3e 3d 20 39 30 20 26 26 20 70 20 3c 3d 20 39 37 29 20 63 75 72 5f 66 67 20 3d | if.(p.>=.90.&&.p.<=.97).cur_fg.= |
| 4100 | 20 63 6f 6c 6f 72 32 35 36 5b 70 20 2d 20 39 30 20 2b 20 38 5d 3b 00 00 00 46 20 20 20 20 20 20 | .color256[p.-.90.+.8];...F...... |
| 4120 | 20 20 65 6c 73 65 20 69 66 20 28 70 20 3e 3d 20 31 30 30 20 26 26 20 70 20 3c 3d 20 31 30 37 29 | ..else.if.(p.>=.100.&&.p.<=.107) |
| 4140 | 20 63 75 72 5f 62 67 20 3d 20 63 6f 6c 6f 72 32 35 36 5b 70 20 2d 20 31 30 30 20 2b 20 38 5d 3b | .cur_bg.=.color256[p.-.100.+.8]; |
| 4160 | 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 22 73 74 61 74 69 63 20 76 6f 69 | ........}....}......."static.voi |
| 4180 | 64 20 68 61 6e 64 6c 65 5f 63 73 69 28 63 68 61 72 20 63 6d 64 29 20 7b 00 00 00 32 20 20 20 20 | d.handle_csi(char.cmd).{...2.... |
| 41a0 | 69 6e 74 20 70 30 20 3d 20 63 73 69 2e 61 72 67 63 20 3e 20 30 20 3f 20 61 74 6f 69 28 63 73 69 | int.p0.=.csi.argc.>.0.?.atoi(csi |
| 41c0 | 2e 61 72 67 76 5b 30 5d 29 20 3a 20 30 3b 00 00 00 32 20 20 20 20 69 6e 74 20 70 31 20 3d 20 63 | .argv[0]).:.0;...2....int.p1.=.c |
| 41e0 | 73 69 2e 61 72 67 63 20 3e 20 31 20 3f 20 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 31 5d 29 20 | si.argc.>.1.?.atoi(csi.argv[1]). |
| 4200 | 3a 20 30 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 72 20 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 63 | :.0;........int.r..=.cur_term->c |
| 4220 | 75 72 2e 72 6f 77 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 63 20 20 3d 20 63 75 72 5f 74 65 72 6d | ur.row;........int.c..=.cur_term |
| 4240 | 2d 3e 63 75 72 2e 63 6f 6c 3b 00 00 00 00 00 00 00 12 20 20 20 20 73 77 69 74 63 68 20 28 63 6d | ->cur.col;............switch.(cm |
| 4260 | 64 29 20 7b 00 00 00 37 20 20 20 20 63 61 73 65 20 27 41 27 3a 20 63 75 72 73 6f 72 5f 6d 6f 76 | d).{...7....case.'A':.cursor_mov |
| 4280 | 65 28 72 20 2d 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 2c 20 63 29 3b 20 62 72 65 61 6b 3b 00 | e(r.-.(p0.?.p0.:.1),.c);.break;. |
| 42a0 | 00 00 37 20 20 20 20 63 61 73 65 20 27 42 27 3a 20 63 75 72 73 6f 72 5f 6d 6f 76 65 28 72 20 2b | ..7....case.'B':.cursor_move(r.+ |
| 42c0 | 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 2c 20 63 29 3b 20 62 72 65 61 6b 3b 00 00 00 37 20 20 | .(p0.?.p0.:.1),.c);.break;...7.. |
| 42e0 | 20 20 63 61 73 65 20 27 43 27 3a 20 63 75 72 73 6f 72 5f 6d 6f 76 65 28 72 2c 20 63 20 2b 20 28 | ..case.'C':.cursor_move(r,.c.+.( |
| 4300 | 70 30 20 3f 20 70 30 20 3a 20 31 29 29 3b 20 62 72 65 61 6b 3b 00 00 00 37 20 20 20 20 63 61 73 | p0.?.p0.:.1));.break;...7....cas |
| 4320 | 65 20 27 44 27 3a 20 63 75 72 73 6f 72 5f 6d 6f 76 65 28 72 2c 20 63 20 2d 20 28 70 30 20 3f 20 | e.'D':.cursor_move(r,.c.-.(p0.?. |
| 4340 | 70 30 20 3a 20 31 29 29 3b 20 62 72 65 61 6b 3b 00 00 00 37 20 20 20 20 63 61 73 65 20 27 45 27 | p0.:.1));.break;...7....case.'E' |
| 4360 | 3a 20 63 75 72 73 6f 72 5f 6d 6f 76 65 28 72 20 2b 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 2c | :.cursor_move(r.+.(p0.?.p0.:.1), |
| 4380 | 20 30 29 3b 20 62 72 65 61 6b 3b 00 00 00 37 20 20 20 20 63 61 73 65 20 27 46 27 3a 20 63 75 72 | .0);.break;...7....case.'F':.cur |
| 43a0 | 73 6f 72 5f 6d 6f 76 65 28 72 20 2d 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 2c 20 30 29 3b 20 | sor_move(r.-.(p0.?.p0.:.1),.0);. |
| 43c0 | 62 72 65 61 6b 3b 00 00 00 37 20 20 20 20 63 61 73 65 20 27 47 27 3a 20 63 75 72 73 6f 72 5f 6d | break;...7....case.'G':.cursor_m |
| 43e0 | 6f 76 65 28 72 2c 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 20 2d 20 31 29 3b 20 62 72 65 61 6b | ove(r,.(p0.?.p0.:.1).-.1);.break |
| 4400 | 3b 00 00 00 51 20 20 20 20 63 61 73 65 20 27 48 27 3a 20 63 61 73 65 20 27 66 27 3a 20 63 75 72 | ;...Q....case.'H':.case.'f':.cur |
| 4420 | 73 6f 72 5f 6d 6f 76 65 28 28 70 30 20 3f 20 70 30 20 3a 20 31 29 20 2d 20 31 2c 20 28 70 31 20 | sor_move((p0.?.p0.:.1).-.1,.(p1. |
| 4440 | 3f 20 70 31 20 3a 20 31 29 20 2d 20 31 29 3b 20 62 72 65 61 6b 3b 00 00 00 0d 20 20 20 20 63 61 | ?.p1.:.1).-.1);.break;........ca |
| 4460 | 73 65 20 27 4a 27 3a 00 00 00 52 20 20 20 20 20 20 20 20 69 66 20 28 70 30 20 3d 3d 20 30 29 20 | se.'J':...R........if.(p0.==.0). |
| 4480 | 63 6c 65 61 72 5f 72 65 67 69 6f 6e 28 72 2c 20 63 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f | clear_region(r,.c,.cur_term->nro |
| 44a0 | 77 73 20 2d 20 31 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 2d 20 31 29 3b 00 00 00 | ws.-.1,.cur_term->ncols.-.1);... |
| 44c0 | 33 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 30 20 3d 3d 20 31 29 20 63 6c 65 61 72 | 3........else.if.(p0.==.1).clear |
| 44e0 | 5f 72 65 67 69 6f 6e 28 30 2c 20 30 2c 20 72 2c 20 63 29 3b 00 00 00 4a 20 20 20 20 20 20 20 20 | _region(0,.0,.r,.c);...J........ |
| 4500 | 65 6c 73 65 20 63 6c 65 61 72 5f 72 65 67 69 6f 6e 28 30 2c 20 30 2c 20 63 75 72 5f 74 65 72 6d | else.clear_region(0,.0,.cur_term |
| 4520 | 2d 3e 6e 72 6f 77 73 20 2d 20 31 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 2d 20 31 | ->nrows.-.1,.cur_term->ncols.-.1 |
| 4540 | 29 3b 00 00 00 0e 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 0d 20 20 20 20 63 61 73 65 | );............break;........case |
| 4560 | 20 27 4b 27 3a 00 00 00 40 20 20 20 20 20 20 20 20 69 66 20 28 70 30 20 3d 3d 20 30 29 20 63 6c | .'K':...@........if.(p0.==.0).cl |
| 4580 | 65 61 72 5f 72 65 67 69 6f 6e 28 72 2c 20 63 2c 20 72 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 | ear_region(r,.c,.r,.cur_term->nc |
| 45a0 | 6f 6c 73 20 2d 20 31 29 3b 00 00 00 33 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 30 | ols.-.1);...3........else.if.(p0 |
| 45c0 | 20 3d 3d 20 31 29 20 63 6c 65 61 72 5f 72 65 67 69 6f 6e 28 72 2c 20 30 2c 20 72 2c 20 63 29 3b | .==.1).clear_region(r,.0,.r,.c); |
| 45e0 | 00 00 00 38 20 20 20 20 20 20 20 20 65 6c 73 65 20 63 6c 65 61 72 5f 72 65 67 69 6f 6e 28 72 2c | ...8........else.clear_region(r, |
| 4600 | 20 30 2c 20 72 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 2d 20 31 29 3b 00 00 00 0e | .0,.r,.cur_term->ncols.-.1);.... |
| 4620 | 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 43 20 20 20 20 63 61 73 65 20 27 4c 27 3a 20 | ........break;...C....case.'L':. |
| 4640 | 74 65 72 6d 5f 73 63 72 6f 6c 6c 28 72 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 2c 20 2d 28 | term_scroll(r,.cur_term->bot,.-( |
| 4660 | 70 30 20 3f 20 70 30 20 3a 20 31 29 29 3b 20 62 72 65 61 6b 3b 00 00 00 43 20 20 20 20 63 61 73 | p0.?.p0.:.1));.break;...C....cas |
| 4680 | 65 20 27 4d 27 3a 20 74 65 72 6d 5f 73 63 72 6f 6c 6c 28 72 2c 20 63 75 72 5f 74 65 72 6d 2d 3e | e.'M':.term_scroll(r,.cur_term-> |
| 46a0 | 62 6f 74 2c 20 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 29 3b 20 62 72 65 61 6b 3b 00 00 00 0f | bot,..(p0.?.p0.:.1));.break;.... |
| 46c0 | 20 20 20 20 63 61 73 65 20 27 50 27 3a 20 7b 00 00 00 1c 20 20 20 20 20 20 20 20 69 6e 74 20 6e | ....case.'P':.{............int.n |
| 46e0 | 20 3d 20 70 30 20 3f 20 70 30 20 3a 20 31 3b 00 00 00 26 20 20 20 20 20 20 20 20 52 6f 77 20 2a | .=.p0.?.p0.:.1;...&........Row.* |
| 4700 | 72 6f 77 20 3d 20 26 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 72 5d 3b 00 00 00 5f 20 20 20 | row.=.&cur_term->rows[r];..._... |
| 4720 | 20 20 20 20 20 6d 65 6d 6d 6f 76 65 28 26 72 6f 77 2d 3e 63 65 6c 6c 73 5b 63 5d 2c 20 26 72 6f | .....memmove(&row->cells[c],.&ro |
| 4740 | 77 2d 3e 63 65 6c 6c 73 5b 63 20 2b 20 6e 5d 2c 20 28 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c | w->cells[c.+.n],.(cur_term->ncol |
| 4760 | 73 20 2d 20 63 20 2d 20 6e 29 20 2a 20 73 69 7a 65 6f 66 28 47 6c 79 70 68 29 29 3b 00 00 00 45 | s.-.c.-.n).*.sizeof(Glyph));...E |
| 4780 | 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e | ........for.(int.j.=.cur_term->n |
| 47a0 | 63 6f 6c 73 20 2d 20 6e 3b 20 6a 20 3c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 3b 20 6a | cols.-.n;.j.<.cur_term->ncols;.j |
| 47c0 | 2b 2b 29 20 7b 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 77 2d 3e 63 65 6c 6c 73 5b | ++).{...B............row->cells[ |
| 47e0 | 6a 5d 2e 63 6f 64 65 70 6f 69 6e 74 20 3d 20 27 20 27 3b 20 72 6f 77 2d 3e 63 65 6c 6c 73 5b 6a | j].codepoint.=.'.';.row->cells[j |
| 4800 | 5d 2e 61 74 74 72 20 3d 20 30 3b 00 00 00 4b 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 77 2d 3e | ].attr.=.0;...K............row-> |
| 4820 | 63 65 6c 6c 73 5b 6a 5d 2e 66 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 66 67 3b 20 72 6f 77 2d 3e | cells[j].fg.=.w.defaultfg;.row-> |
| 4840 | 63 65 6c 6c 73 5b 6a 5d 2e 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b 00 00 00 09 20 20 | cells[j].bg.=.w.defaultbg;...... |
| 4860 | 20 20 20 20 20 20 7d 00 00 00 17 20 20 20 20 20 20 20 20 72 6f 77 2d 3e 64 69 72 74 79 20 3d 20 | ......}............row->dirty.=. |
| 4880 | 31 3b 00 00 00 0c 20 20 20 20 7d 20 62 72 65 61 6b 3b 00 00 00 4f 20 20 20 20 63 61 73 65 20 27 | 1;........}.break;...O....case.' |
| 48a0 | 53 27 3a 20 74 65 72 6d 5f 73 63 72 6f 6c 6c 28 63 75 72 5f 74 65 72 6d 2d 3e 74 6f 70 2c 20 63 | S':.term_scroll(cur_term->top,.c |
| 48c0 | 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 2c 20 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 29 3b 20 62 | ur_term->bot,..(p0.?.p0.:.1));.b |
| 48e0 | 72 65 61 6b 3b 00 00 00 4f 20 20 20 20 63 61 73 65 20 27 54 27 3a 20 74 65 72 6d 5f 73 63 72 6f | reak;...O....case.'T':.term_scro |
| 4900 | 6c 6c 28 63 75 72 5f 74 65 72 6d 2d 3e 74 6f 70 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 2c | ll(cur_term->top,.cur_term->bot, |
| 4920 | 20 2d 28 70 30 20 3f 20 70 30 20 3a 20 31 29 29 3b 20 62 72 65 61 6b 3b 00 00 00 42 20 20 20 20 | .-(p0.?.p0.:.1));.break;...B.... |
| 4940 | 63 61 73 65 20 27 58 27 3a 20 63 6c 65 61 72 5f 72 65 67 69 6f 6e 28 72 2c 20 63 2c 20 72 2c 20 | case.'X':.clear_region(r,.c,.r,. |
| 4960 | 63 20 2b 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 20 2d 20 31 29 3b 20 62 72 65 61 6b 3b 00 00 | c.+.(p0.?.p0.:.1).-.1);.break;.. |
| 4980 | 00 37 20 20 20 20 63 61 73 65 20 27 64 27 3a 20 63 75 72 73 6f 72 5f 6d 6f 76 65 28 28 70 30 20 | .7....case.'d':.cursor_move((p0. |
| 49a0 | 3f 20 70 30 20 3a 20 31 29 20 2d 20 31 2c 20 63 29 3b 20 62 72 65 61 6b 3b 00 00 00 22 20 20 20 | ?.p0.:.1).-.1,.c);.break;..."... |
| 49c0 | 20 63 61 73 65 20 27 6d 27 3a 20 68 61 6e 64 6c 65 5f 73 67 72 28 29 3b 20 62 72 65 61 6b 3b 00 | .case.'m':.handle_sgr();.break;. |
| 49e0 | 00 00 0d 20 20 20 20 63 61 73 65 20 27 72 27 3a 00 00 00 2a 20 20 20 20 20 20 20 20 63 75 72 5f | .......case.'r':...*........cur_ |
| 4a00 | 74 65 72 6d 2d 3e 74 6f 70 20 3d 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 20 2d 20 31 3b 00 00 | term->top.=.(p0.?.p0.:.1).-.1;.. |
| 4a20 | 00 38 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 20 3d 20 28 70 31 20 3f 20 | .8........cur_term->bot.=.(p1.?. |
| 4a40 | 70 31 20 3a 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 29 20 2d 20 31 3b 00 00 00 1a 20 20 | p1.:.cur_term->nrows).-.1;...... |
| 4a60 | 20 20 20 20 20 20 63 75 72 73 6f 72 5f 6d 6f 76 65 28 30 2c 20 30 29 3b 00 00 00 0e 20 20 20 20 | ......cursor_move(0,.0);........ |
| 4a80 | 20 20 20 20 62 72 65 61 6b 3b 00 00 00 35 20 20 20 20 63 61 73 65 20 27 73 27 3a 20 63 75 72 5f | ....break;...5....case.'s':.cur_ |
| 4aa0 | 74 65 72 6d 2d 3e 73 61 76 65 64 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 3b 20 62 72 65 | term->saved.=.cur_term->cur;.bre |
| 4ac0 | 61 6b 3b 00 00 00 36 20 20 20 20 63 61 73 65 20 27 75 27 3a 20 63 75 72 5f 74 65 72 6d 2d 3e 63 | ak;...6....case.'u':.cur_term->c |
| 4ae0 | 75 72 20 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 73 61 76 65 64 3b 20 62 72 65 61 6b 3b 00 00 00 | ur..=.cur_term->saved;.break;... |
| 4b00 | 19 20 20 20 20 63 61 73 65 20 27 68 27 3a 20 63 61 73 65 20 27 6c 27 3a 20 7b 00 00 00 1f 20 20 | .....case.'h':.case.'l':.{...... |
| 4b20 | 20 20 20 20 20 20 69 6e 74 20 76 61 6c 20 3d 20 28 63 6d 64 20 3d 3d 20 27 68 27 29 3b 00 00 00 | ......int.val.=.(cmd.==.'h');... |
| 4b40 | 2c 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 63 73 69 | ,........for.(int.i.=.0;.i.<.csi |
| 4b60 | 2e 61 72 67 63 3b 20 69 2b 2b 29 20 7b 00 00 00 26 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 | .argc;.i++).{...&............int |
| 4b80 | 20 71 20 3d 20 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 5d 29 3b 00 00 00 1b 20 20 20 20 20 | .q.=.atoi(csi.argv[i]);......... |
| 4ba0 | 20 20 20 20 20 20 20 69 66 20 28 63 73 69 2e 70 72 69 76 29 20 7b 00 00 00 75 20 20 20 20 20 20 | .......if.(csi.priv).{...u...... |
| 4bc0 | 20 20 20 20 20 20 20 20 20 20 69 66 20 28 71 20 3d 3d 20 31 29 20 20 20 20 7b 20 69 66 20 28 76 | ..........if.(q.==.1)....{.if.(v |
| 4be0 | 61 6c 29 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 41 50 50 4b 45 | al).cur_term->mode.|=.MODE_APPKE |
| 4c00 | 59 50 41 44 3b 20 65 6c 73 65 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f | YPAD;.else.cur_term->mode.&=.~MO |
| 4c20 | 44 45 5f 41 50 50 4b 45 59 50 41 44 3b 20 7d 00 00 00 81 20 20 20 20 20 20 20 20 20 20 20 20 20 | DE_APPKEYPAD;.}................. |
| 4c40 | 20 20 20 69 66 20 28 71 20 3d 3d 20 36 29 20 20 20 20 7b 20 69 66 20 28 76 61 6c 29 20 63 75 72 | ...if.(q.==.6)....{.if.(val).cur |
| 4c60 | 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 4f 52 49 47 49 4e 3b 20 65 6c 73 65 | _term->mode.|=.MODE_ORIGIN;.else |
| 4c80 | 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 5f 4f 52 49 47 49 4e 3b | .cur_term->mode.&=.~MODE_ORIGIN; |
| 4ca0 | 20 63 75 72 73 6f 72 5f 6d 6f 76 65 28 30 2c 30 29 3b 20 7d 00 00 00 6b 20 20 20 20 20 20 20 20 | .cursor_move(0,0);.}...k........ |
| 4cc0 | 20 20 20 20 20 20 20 20 69 66 20 28 71 20 3d 3d 20 37 29 20 20 20 20 7b 20 69 66 20 28 76 61 6c | ........if.(q.==.7)....{.if.(val |
| 4ce0 | 29 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 57 52 41 50 3b 20 65 | ).cur_term->mode.|=.MODE_WRAP;.e |
| 4d00 | 6c 73 65 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 5f 57 52 41 50 | lse.cur_term->mode.&=.~MODE_WRAP |
| 4d20 | 3b 20 7d 00 00 00 79 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 71 20 3d 3d 20 | ;.}...y................if.(q.==. |
| 4d40 | 32 35 29 20 20 20 7b 20 69 66 20 28 76 61 6c 29 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 | 25)...{.if.(val).cur_term->mode. |
| 4d60 | 26 3d 20 7e 4d 4f 44 45 5f 48 49 44 45 5f 43 55 52 53 4f 52 3b 20 65 6c 73 65 20 63 75 72 5f 74 | &=.~MODE_HIDE_CURSOR;.else.cur_t |
| 4d80 | 65 72 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 48 49 44 45 5f 43 55 52 53 4f 52 3b 20 7d | erm->mode.|=.MODE_HIDE_CURSOR;.} |
| 4da0 | 00 00 00 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 71 20 3d 3d 20 31 30 34 | ...8................if.(q.==.104 |
| 4dc0 | 39 20 7c 7c 20 71 20 3d 3d 20 34 37 20 7c 7c 20 71 20 3d 3d 20 31 30 34 37 29 20 7b 00 00 00 44 | 9.||.q.==.47.||.q.==.1047).{...D |
| 4de0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 76 61 6c 20 26 26 20 21 | ....................if.(val.&&.! |
| 4e00 | 28 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 41 4c 54 53 43 52 45 45 4e | (cur_term->mode.&.MODE_ALTSCREEN |
| 4e20 | 29 29 20 7b 00 00 00 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )).{...,........................ |
| 4e40 | 61 6c 74 74 65 72 6d 20 3d 20 2a 63 75 72 5f 74 65 72 6d 3b 00 00 00 2c 20 20 20 20 20 20 20 20 | altterm.=.*cur_term;...,........ |
| 4e60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 20 3d 20 26 61 6c 74 74 | ................cur_term.=.&altt |
| 4e80 | 65 72 6d 3b 00 00 00 3c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | erm;...<........................ |
| 4ea0 | 74 65 72 6d 5f 69 6e 69 74 28 63 75 72 5f 74 65 72 6d 2c 20 77 2e 72 6f 77 73 2c 20 77 2e 63 6f | term_init(cur_term,.w.rows,.w.co |
| 4ec0 | 6c 73 29 3b 00 00 00 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ls);...9........................ |
| 4ee0 | 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 41 4c 54 53 43 52 45 45 4e | cur_term->mode.|=.MODE_ALTSCREEN |
| 4f00 | 3b 00 00 00 24 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 72 | ;...$........................dir |
| 4f20 | 74 79 5f 61 6c 6c 28 29 3b 00 00 00 4b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ty_all();...K................... |
| 4f40 | 20 7d 20 65 6c 73 65 20 69 66 20 28 21 76 61 6c 20 26 26 20 28 63 75 72 5f 74 65 72 6d 2d 3e 6d | .}.else.if.(!val.&&.(cur_term->m |
| 4f60 | 6f 64 65 20 26 20 4d 4f 44 45 5f 41 4c 54 53 43 52 45 45 4e 29 29 20 7b 00 00 00 2c 20 20 20 20 | ode.&.MODE_ALTSCREEN)).{...,.... |
| 4f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 72 6d 5f 66 72 65 65 28 63 75 | ....................term_free(cu |
| 4fa0 | 72 5f 74 65 72 6d 29 3b 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r_term);...).................... |
| 4fc0 | 20 20 20 20 63 75 72 5f 74 65 72 6d 20 3d 20 26 74 65 72 6d 3b 00 00 00 24 20 20 20 20 20 20 20 | ....cur_term.=.&term;...$....... |
| 4fe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 72 74 79 5f 61 6c 6c 28 29 3b 00 00 00 | .................dirty_all();... |
| 5000 | 15 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 11 20 20 20 20 20 20 | .....................}.......... |
| 5020 | 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 75 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 | ..........}...u................i |
| 5040 | 66 20 28 71 20 3d 3d 20 32 30 30 34 29 20 7b 20 69 66 20 28 76 61 6c 29 20 63 75 72 5f 74 65 72 | f.(q.==.2004).{.if.(val).cur_ter |
| 5060 | 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 42 52 41 43 50 41 53 54 45 3b 20 65 6c 73 65 20 | m->mode.|=.MODE_BRACPASTE;.else. |
| 5080 | 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 5f 42 52 41 43 50 41 53 54 | cur_term->mode.&=.~MODE_BRACPAST |
| 50a0 | 45 3b 20 7d 00 00 00 80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 71 20 3d 3d | E;.}....................if.(q.== |
| 50c0 | 20 31 30 30 30 20 7c 7c 20 71 20 3d 3d 20 31 30 30 32 29 20 7b 20 69 66 20 28 76 61 6c 29 20 63 | .1000.||.q.==.1002).{.if.(val).c |
| 50e0 | 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 4d 4f 55 53 45 42 54 4e 3b 20 | ur_term->mode.|=.MODE_MOUSEBTN;. |
| 5100 | 65 6c 73 65 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 5f 4d 4f 55 | else.cur_term->mode.&=.~MODE_MOU |
| 5120 | 53 45 42 54 4e 3b 20 7d 00 00 00 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 | SEBTN;.}...s................if.( |
| 5140 | 71 20 3d 3d 20 31 30 30 33 29 20 7b 20 69 66 20 28 76 61 6c 29 20 63 75 72 5f 74 65 72 6d 2d 3e | q.==.1003).{.if.(val).cur_term-> |
| 5160 | 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 4d 4f 55 53 45 4d 4f 54 3b 20 65 6c 73 65 20 63 75 72 5f | mode.|=.MODE_MOUSEMOT;.else.cur_ |
| 5180 | 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 5f 4d 4f 55 53 45 4d 4f 54 3b 20 7d 00 | term->mode.&=.~MODE_MOUSEMOT;.}. |
| 51a0 | 00 00 7e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 71 20 3d 3d 20 35 29 20 20 | ..~................if.(q.==.5).. |
| 51c0 | 20 20 7b 20 69 66 20 28 76 61 6c 29 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d | ..{.if.(val).cur_term->mode.|=.M |
| 51e0 | 4f 44 45 5f 52 45 56 45 52 53 45 3b 20 65 6c 73 65 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 | ODE_REVERSE;.else.cur_term->mode |
| 5200 | 20 26 3d 20 7e 4d 4f 44 45 5f 52 45 56 45 52 53 45 3b 20 64 69 72 74 79 5f 61 6c 6c 28 29 3b 20 | .&=.~MODE_REVERSE;.dirty_all();. |
| 5220 | 7d 00 00 00 14 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 6d 20 20 20 | }................}.else.{...m... |
| 5240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 71 20 3d 3d 20 34 29 20 20 7b 20 69 66 20 28 | .............if.(q.==.4)..{.if.( |
| 5260 | 76 61 6c 29 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 49 4e 53 45 | val).cur_term->mode.|=.MODE_INSE |
| 5280 | 52 54 3b 20 65 6c 73 65 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 | RT;.else.cur_term->mode.&=.~MODE |
| 52a0 | 5f 49 4e 53 45 52 54 3b 20 7d 00 00 00 69 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 | _INSERT;.}...i................if |
| 52c0 | 20 28 71 20 3d 3d 20 32 30 29 20 7b 20 69 66 20 28 76 61 6c 29 20 63 75 72 5f 74 65 72 6d 2d 3e | .(q.==.20).{.if.(val).cur_term-> |
| 52e0 | 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 43 52 4c 46 3b 20 65 6c 73 65 20 63 75 72 5f 74 65 72 6d | mode.|=.MODE_CRLF;.else.cur_term |
| 5300 | 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 5f 43 52 4c 46 3b 20 7d 00 00 00 0d 20 20 20 20 20 | ->mode.&=.~MODE_CRLF;.}......... |
| 5320 | 20 20 20 20 20 20 20 7d 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 0c 20 20 20 20 7d 20 62 | .......}............}........}.b |
| 5340 | 72 65 61 6b 3b 00 00 00 0d 20 20 20 20 63 61 73 65 20 27 6e 27 3a 00 00 00 16 20 20 20 20 20 20 | reak;........case.'n':.......... |
| 5360 | 20 20 69 66 20 28 70 30 20 3d 3d 20 36 29 20 7b 00 00 00 1a 20 20 20 20 20 20 20 20 20 20 20 20 | ..if.(p0.==.6).{................ |
| 5380 | 63 68 61 72 20 72 65 73 70 5b 33 32 5d 3b 00 00 00 6f 20 20 20 20 20 20 20 20 20 20 20 20 69 6e | char.resp[32];...o............in |
| 53a0 | 74 20 6c 65 6e 20 3d 20 73 6e 70 72 69 6e 74 66 28 72 65 73 70 2c 20 73 69 7a 65 6f 66 20 72 65 | t.len.=.snprintf(resp,.sizeof.re |
| 53c0 | 73 70 2c 20 22 5c 30 33 33 5b 25 64 3b 25 64 52 22 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 | sp,."\033[%d;%dR",.cur_term->cur |
| 53e0 | 2e 72 6f 77 20 2b 20 31 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 2b 20 31 29 | .row.+.1,.cur_term->cur.col.+.1) |
| 5400 | 3b 00 00 00 21 20 20 20 20 20 20 20 20 20 20 20 20 70 74 79 5f 77 72 69 74 65 28 72 65 73 70 2c | ;...!............pty_write(resp, |
| 5420 | 20 6c 65 6e 29 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 0e 20 20 20 20 20 20 20 20 62 | .len);............}............b |
| 5440 | 72 65 61 6b 3b 00 00 00 13 20 20 20 20 64 65 66 61 75 6c 74 3a 20 62 72 65 61 6b 3b 00 00 00 05 | reak;........default:.break;.... |
| 5460 | 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 57 65 6e 75 6d 20 7b 20 53 54 41 54 45 5f 4e | ....}....}.......Wenum.{.STATE_N |
| 5480 | 4f 52 4d 41 4c 2c 20 53 54 41 54 45 5f 45 53 43 2c 20 53 54 41 54 45 5f 43 53 49 2c 20 53 54 41 | ORMAL,.STATE_ESC,.STATE_CSI,.STA |
| 54a0 | 54 45 5f 4f 53 43 2c 20 53 54 41 54 45 5f 44 43 53 2c 20 53 54 41 54 45 5f 50 4d 2c 20 53 54 41 | TE_OSC,.STATE_DCS,.STATE_PM,.STA |
| 54c0 | 54 45 5f 41 50 43 20 7d 3b 00 00 00 00 00 00 00 21 73 74 61 74 69 63 20 69 6e 74 20 20 73 74 61 | TE_APC.};.......!static.int..sta |
| 54e0 | 74 65 20 3d 20 53 54 41 54 45 5f 4e 4f 52 4d 41 4c 3b 00 00 00 1a 73 74 61 74 69 63 20 63 68 61 | te.=.STATE_NORMAL;....static.cha |
| 5500 | 72 20 6f 73 63 5f 62 75 66 5b 31 30 32 34 5d 3b 00 00 00 14 73 74 61 74 69 63 20 69 6e 74 20 20 | r.osc_buf[1024];....static.int.. |
| 5520 | 6f 73 63 5f 6c 65 6e 3b 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 70 75 74 5f | osc_len;.......#static.void.put_ |
| 5540 | 63 68 61 72 28 75 69 6e 74 33 32 5f 74 20 63 70 29 20 7b 00 00 00 1e 20 20 20 20 69 6e 74 20 72 | char(uint32_t.cp).{........int.r |
| 5560 | 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 3b 00 00 00 1e 20 20 20 20 69 6e 74 | .=.cur_term->cur.row;........int |
| 5580 | 20 63 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 3b 00 00 00 00 00 00 00 3d 20 | .c.=.cur_term->cur.col;.......=. |
| 55a0 | 20 20 20 69 66 20 28 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 57 52 41 | ...if.(cur_term->mode.&.MODE_WRA |
| 55c0 | 50 20 26 26 20 63 20 3e 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 29 20 7b 00 00 00 0e | P.&&.c.>=.cur_term->ncols).{.... |
| 55e0 | 20 20 20 20 20 20 20 20 63 20 3d 20 30 3b 00 00 00 0c 20 20 20 20 20 20 20 20 72 2b 2b 3b 00 00 | ........c.=.0;............r++;.. |
| 5600 | 00 20 20 20 20 20 20 20 20 20 69 66 20 28 72 20 3e 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 29 | ..........if.(r.>.cur_term->bot) |
| 5620 | 20 7b 00 00 00 39 20 20 20 20 20 20 20 20 20 20 20 20 74 65 72 6d 5f 73 63 72 6f 6c 6c 28 63 75 | .{...9............term_scroll(cu |
| 5640 | 72 5f 74 65 72 6d 2d 3e 74 6f 70 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 2c 20 31 29 3b 00 | r_term->top,.cur_term->bot,.1);. |
| 5660 | 00 00 1e 20 20 20 20 20 20 20 20 20 20 20 20 72 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 | ...............r.=.cur_term->bot |
| 5680 | 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 1e 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 | ;............}............cur_te |
| 56a0 | 72 6d 2d 3e 63 75 72 2e 72 6f 77 20 3d 20 72 3b 00 00 00 1e 20 20 20 20 20 20 20 20 63 75 72 5f | rm->cur.row.=.r;............cur_ |
| 56c0 | 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3d 20 63 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 | term->cur.col.=.c;........}..... |
| 56e0 | 00 00 42 20 20 20 20 69 66 20 28 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 | ..B....if.(cur_term->mode.&.MODE |
| 5700 | 5f 49 4e 53 45 52 54 20 26 26 20 63 20 3c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 2d | _INSERT.&&.c.<.cur_term->ncols.- |
| 5720 | 20 31 29 20 7b 00 00 00 4d 20 20 20 20 20 20 20 20 6d 65 6d 6d 6f 76 65 28 26 63 75 72 5f 74 65 | .1).{...M........memmove(&cur_te |
| 5740 | 72 6d 2d 3e 72 6f 77 73 5b 72 5d 2e 63 65 6c 6c 73 5b 63 20 2b 20 31 5d 2c 20 26 63 75 72 5f 74 | rm->rows[r].cells[c.+.1],.&cur_t |
| 5760 | 65 72 6d 2d 3e 72 6f 77 73 5b 72 5d 2e 63 65 6c 6c 73 5b 63 5d 2c 00 00 00 3b 20 20 20 20 20 20 | erm->rows[r].cells[c],...;...... |
| 5780 | 20 20 20 20 20 20 20 20 20 20 28 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 2d 20 63 20 2d | ..........(cur_term->ncols.-.c.- |
| 57a0 | 20 31 29 20 2a 20 73 69 7a 65 6f 66 28 47 6c 79 70 68 29 29 3b 00 00 00 05 20 20 20 20 7d 00 00 | .1).*.sizeof(Glyph));........}.. |
| 57c0 | 00 00 00 00 00 17 20 20 20 20 73 65 74 5f 63 65 6c 6c 28 72 2c 20 63 2c 20 63 70 29 3b 00 00 00 | ..........set_cell(r,.c,.cp);... |
| 57e0 | 1e 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3d 20 63 20 2b 20 31 3b 00 | .....cur_term->cur.col.=.c.+.1;. |
| 5800 | 00 00 01 7d 00 00 00 00 00 00 00 2e 73 74 61 74 69 63 20 76 6f 69 64 20 70 72 6f 63 65 73 73 5f | ...}........static.void.process_ |
| 5820 | 62 79 74 65 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 62 79 74 65 29 20 7b 00 00 00 14 20 20 | byte(unsigned.char.byte).{...... |
| 5840 | 20 20 73 77 69 74 63 68 20 28 73 74 61 74 65 29 20 7b 00 00 00 16 20 20 20 20 63 61 73 65 20 53 | ..switch.(state).{........case.S |
| 5860 | 54 41 54 45 5f 4e 4f 52 4d 41 4c 3a 00 00 00 38 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 | TATE_NORMAL:...8........if.(byte |
| 5880 | 20 3d 3d 20 30 78 31 42 29 20 7b 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 45 53 43 3b 20 72 | .==.0x1B).{.state.=.STATE_ESC;.r |
| 58a0 | 65 74 75 72 6e 3b 20 7d 00 00 00 3c 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 20 3d 3d 20 | eturn;.}...<........if.(byte.==. |
| 58c0 | 27 5c 72 27 29 20 7b 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3d 20 30 3b 20 72 | '\r').{.cur_term->cur.col.=.0;.r |
| 58e0 | 65 74 75 72 6e 3b 20 7d 00 00 00 3b 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 20 3d 3d 20 | eturn;.}...;........if.(byte.==. |
| 5900 | 27 5c 6e 27 20 7c 7c 20 62 79 74 65 20 3d 3d 20 27 5c 76 27 20 7c 7c 20 62 79 74 65 20 3d 3d 20 | '\n'.||.byte.==.'\v'.||.byte.==. |
| 5920 | 27 5c 66 27 29 20 7b 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d | '\f').{................cur_term- |
| 5940 | 3e 63 75 72 2e 72 6f 77 2b 2b 3b 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 | >cur.row++;...B............if.(c |
| 5960 | 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 43 52 4c 46 29 20 63 75 72 5f 74 | ur_term->mode.&.MODE_CRLF).cur_t |
| 5980 | 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3d 20 30 3b 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 | erm->cur.col.=.0;...4........... |
| 59a0 | 20 69 66 20 28 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 20 3e 20 63 75 72 5f 74 65 72 | .if.(cur_term->cur.row.>.cur_ter |
| 59c0 | 6d 2d 3e 62 6f 74 29 20 7b 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 72 | m->bot).{...=................ter |
| 59e0 | 6d 5f 73 63 72 6f 6c 6c 28 63 75 72 5f 74 65 72 6d 2d 3e 74 6f 70 2c 20 63 75 72 5f 74 65 72 6d | m_scroll(cur_term->top,.cur_term |
| 5a00 | 2d 3e 62 6f 74 2c 20 31 29 3b 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 | ->bot,.1);...2................cu |
| 5a20 | 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 3b | r_term->cur.row.=.cur_term->bot; |
| 5a40 | 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 13 20 20 20 20 20 20 20 20 20 20 20 | ................}............... |
| 5a60 | 20 72 65 74 75 72 6e 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 1b 20 20 20 20 20 20 20 | .return;............}........... |
| 5a80 | 20 69 66 20 28 62 79 74 65 20 3d 3d 20 27 5c 74 27 29 20 7b 00 00 00 53 20 20 20 20 20 20 20 20 | .if.(byte.==.'\t').{...S........ |
| 5aa0 | 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3d 20 28 63 75 72 5f 74 65 72 | ....cur_term->cur.col.=.(cur_ter |
| 5ac0 | 6d 2d 3e 63 75 72 2e 63 6f 6c 20 2b 20 54 41 42 5f 57 49 44 54 48 29 20 26 20 7e 28 54 41 42 5f | m->cur.col.+.TAB_WIDTH).&.~(TAB_ |
| 5ae0 | 57 49 44 54 48 20 2d 20 31 29 3b 00 00 00 5e 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 | WIDTH.-.1);...^............if.(c |
| 5b00 | 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3e 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 | ur_term->cur.col.>=.cur_term->nc |
| 5b20 | 6f 6c 73 29 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3d 20 63 75 72 5f 74 65 72 | ols).cur_term->cur.col.=.cur_ter |
| 5b40 | 6d 2d 3e 6e 63 6f 6c 73 20 2d 20 31 3b 00 00 00 13 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 | m->ncols.-.1;................ret |
| 5b60 | 75 72 6e 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 55 20 20 20 20 20 20 20 20 69 66 20 | urn;............}...U........if. |
| 5b80 | 28 62 79 74 65 20 3d 3d 20 27 5c 62 27 29 20 7b 20 69 66 20 28 63 75 72 5f 74 65 72 6d 2d 3e 63 | (byte.==.'\b').{.if.(cur_term->c |
| 5ba0 | 75 72 2e 63 6f 6c 20 3e 20 30 29 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 2d 2d 3b | ur.col.>.0).cur_term->cur.col--; |
| 5bc0 | 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 21 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 20 3d | .return;.}...!........if.(byte.= |
| 5be0 | 3d 20 30 78 30 37 29 20 72 65 74 75 72 6e 3b 00 00 00 20 20 20 20 20 20 20 20 20 69 66 20 28 62 | =.0x07).return;............if.(b |
| 5c00 | 79 74 65 20 3c 20 30 78 32 30 29 20 72 65 74 75 72 6e 3b 00 00 00 34 20 20 20 20 20 20 20 20 69 | yte.<.0x20).return;...4........i |
| 5c20 | 66 20 28 62 79 74 65 20 3c 20 30 78 38 30 29 20 7b 20 70 75 74 5f 63 68 61 72 28 62 79 74 65 29 | f.(byte.<.0x80).{.put_char(byte) |
| 5c40 | 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 09 20 20 20 20 20 20 20 20 7b 00 00 00 20 20 20 20 20 | ;.return;.}............{........ |
| 5c60 | 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 63 68 61 72 20 6d 62 75 66 5b 38 5d 3b 00 00 00 21 | ........static.char.mbuf[8];...! |
| 5c80 | 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 69 6e 74 20 20 6d 6c 65 6e 20 3d 20 30 | ............static.int..mlen.=.0 |
| 5ca0 | 3b 00 00 00 22 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 69 6e 74 20 20 6d 6e 65 | ;..."............static.int..mne |
| 5cc0 | 65 64 20 3d 20 30 3b 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 28 62 79 74 65 | ed.=.0;...(............if.((byte |
| 5ce0 | 20 26 20 30 78 43 30 29 20 3d 3d 20 30 78 38 30 29 20 7b 00 00 00 1f 20 20 20 20 20 20 20 20 20 | .&.0xC0).==.0x80).{............. |
| 5d00 | 20 20 20 20 20 20 20 69 66 20 28 6d 6c 65 6e 20 3e 20 30 29 20 7b 00 00 00 28 20 20 20 20 20 20 | .......if.(mlen.>.0).{...(...... |
| 5d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 62 75 66 5b 6d 6c 65 6e 2b 2b 5d 20 3d 20 62 79 74 | ..............mbuf[mlen++].=.byt |
| 5d40 | 65 3b 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 6c | e;...(....................if.(ml |
| 5d60 | 65 6e 20 3d 3d 20 6d 6e 65 65 64 29 20 7b 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | en.==.mneed).{...?.............. |
| 5d80 | 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 75 3b 20 75 74 66 38 64 65 63 6f 64 65 | ..........uint32_t.u;.utf8decode |
| 5da0 | 28 6d 62 75 66 2c 20 26 75 2c 20 6d 6c 65 6e 29 3b 00 00 00 39 20 20 20 20 20 20 20 20 20 20 20 | (mbuf,.&u,.mlen);...9........... |
| 5dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 70 75 74 5f 63 68 61 72 28 75 29 3b 20 6d 6c 65 6e 20 3d | .............put_char(u);.mlen.= |
| 5de0 | 20 30 3b 20 6d 6e 65 65 64 20 3d 20 30 3b 00 00 00 15 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .0;.mneed.=.0;.................. |
| 5e00 | 20 20 20 20 20 20 7d 00 00 00 11 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 14 | ......}....................}.... |
| 5e20 | 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 29 20 20 20 20 20 20 20 20 | ............}.else.{...)........ |
| 5e40 | 20 20 20 20 20 20 20 20 6d 6c 65 6e 20 3d 20 31 3b 20 6d 62 75 66 5b 30 5d 20 3d 20 62 79 74 65 | ........mlen.=.1;.mbuf[0].=.byte |
| 5e60 | 3b 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 20 20 20 20 20 28 28 62 | ;...:................if......((b |
| 5e80 | 79 74 65 20 26 20 30 78 45 30 29 20 3d 3d 20 30 78 43 30 29 20 6d 6e 65 65 64 20 3d 20 32 3b 00 | yte.&.0xE0).==.0xC0).mneed.=.2;. |
| 5ea0 | 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 28 62 79 74 | ..:................else.if.((byt |
| 5ec0 | 65 20 26 20 30 78 46 30 29 20 3d 3d 20 30 78 45 30 29 20 6d 6e 65 65 64 20 3d 20 33 3b 00 00 00 | e.&.0xF0).==.0xE0).mneed.=.3;... |
| 5ee0 | 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 28 62 79 74 65 20 | :................else.if.((byte. |
| 5f00 | 26 20 30 78 46 38 29 20 3d 3d 20 30 78 46 30 29 20 6d 6e 65 65 64 20 3d 20 34 3b 00 00 00 3d 20 | &.0xF8).==.0xF0).mneed.=.4;...=. |
| 5f20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 20 70 75 74 5f 63 68 61 72 28 62 | ...............else.{.put_char(b |
| 5f40 | 79 74 65 29 3b 20 6d 6c 65 6e 20 3d 20 30 3b 20 6d 6e 65 65 64 20 3d 20 30 3b 20 7d 00 00 00 0d | yte);.mlen.=.0;.mneed.=.0;.}.... |
| 5f60 | 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 0e 20 20 | ............}............}...... |
| 5f80 | 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 13 20 20 20 20 63 61 73 65 20 53 54 41 54 45 5f 45 | ......break;........case.STATE_E |
| 5fa0 | 53 43 3a 00 00 00 17 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 62 79 74 65 29 20 7b 00 00 | SC:............switch.(byte).{.. |
| 5fc0 | 00 6a 20 20 20 20 20 20 20 20 63 61 73 65 20 27 5b 27 3a 20 73 74 61 74 65 20 3d 20 53 54 41 54 | .j........case.'[':.state.=.STAT |
| 5fe0 | 45 5f 43 53 49 3b 20 6d 65 6d 73 65 74 28 26 63 73 69 2c 20 30 2c 20 73 69 7a 65 6f 66 20 63 73 | E_CSI;.memset(&csi,.0,.sizeof.cs |
| 6000 | 69 29 3b 20 63 73 69 2e 61 72 67 63 20 3d 20 31 3b 20 63 73 69 2e 61 72 67 76 5b 30 5d 5b 30 5d | i);.csi.argc.=.1;.csi.argv[0][0] |
| 6020 | 20 3d 20 30 3b 20 62 72 65 61 6b 3b 00 00 00 38 20 20 20 20 20 20 20 20 63 61 73 65 20 27 5d 27 | .=.0;.break;...8........case.']' |
| 6040 | 3a 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4f 53 43 3b 20 6f 73 63 5f 6c 65 6e 20 3d 20 30 | :.state.=.STATE_OSC;.osc_len.=.0 |
| 6060 | 3b 20 62 72 65 61 6b 3b 00 00 00 2b 20 20 20 20 20 20 20 20 63 61 73 65 20 27 50 27 3a 20 73 74 | ;.break;...+........case.'P':.st |
| 6080 | 61 74 65 20 3d 20 53 54 41 54 45 5f 44 43 53 3b 20 62 72 65 61 6b 3b 00 00 00 2b 20 20 20 20 20 | ate.=.STATE_DCS;.break;...+..... |
| 60a0 | 20 20 20 63 61 73 65 20 27 5e 27 3a 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 50 4d 3b 20 20 | ...case.'^':.state.=.STATE_PM;.. |
| 60c0 | 62 72 65 61 6b 3b 00 00 00 2b 20 20 20 20 20 20 20 20 63 61 73 65 20 27 5f 27 3a 20 73 74 61 74 | break;...+........case.'_':.stat |
| 60e0 | 65 20 3d 20 53 54 41 54 45 5f 41 50 43 3b 20 62 72 65 61 6b 3b 00 00 00 13 20 20 20 20 20 20 20 | e.=.STATE_APC;.break;........... |
| 6100 | 20 63 61 73 65 20 27 44 27 3a 20 7b 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f | .case.'D':.{................cur_ |
| 6120 | 74 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 2b 2b 3b 00 00 00 87 20 20 20 20 20 20 20 20 20 20 20 20 | term->cur.row++;................ |
| 6140 | 69 66 20 28 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 20 3e 20 63 75 72 5f 74 65 72 6d | if.(cur_term->cur.row.>.cur_term |
| 6160 | 2d 3e 62 6f 74 29 20 7b 20 74 65 72 6d 5f 73 63 72 6f 6c 6c 28 63 75 72 5f 74 65 72 6d 2d 3e 74 | ->bot).{.term_scroll(cur_term->t |
| 6180 | 6f 70 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 2c 20 31 29 3b 20 63 75 72 5f 74 65 72 6d 2d | op,.cur_term->bot,.1);.cur_term- |
| 61a0 | 3e 63 75 72 2e 72 6f 77 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 3b 20 7d 00 00 00 21 20 | >cur.row.=.cur_term->bot;.}...!. |
| 61c0 | 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4e 4f 52 4d 41 4c 3b | ...........state.=.STATE_NORMAL; |
| 61e0 | 00 00 00 10 20 20 20 20 20 20 20 20 7d 20 62 72 65 61 6b 3b 00 00 00 13 20 20 20 20 20 20 20 20 | ............}.break;............ |
| 6200 | 63 61 73 65 20 27 4d 27 3a 20 7b 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 | case.'M':.{................cur_t |
| 6220 | 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 2d 2d 3b 00 00 00 88 20 20 20 20 20 20 20 20 20 20 20 20 69 | erm->cur.row--;................i |
| 6240 | 66 20 28 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 20 3c 20 63 75 72 5f 74 65 72 6d 2d | f.(cur_term->cur.row.<.cur_term- |
| 6260 | 3e 74 6f 70 29 20 7b 20 74 65 72 6d 5f 73 63 72 6f 6c 6c 28 63 75 72 5f 74 65 72 6d 2d 3e 74 6f | >top).{.term_scroll(cur_term->to |
| 6280 | 70 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 2c 20 2d 31 29 3b 20 63 75 72 5f 74 65 72 6d 2d | p,.cur_term->bot,.-1);.cur_term- |
| 62a0 | 3e 63 75 72 2e 72 6f 77 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 74 6f 70 3b 20 7d 00 00 00 21 20 | >cur.row.=.cur_term->top;.}...!. |
| 62c0 | 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4e 4f 52 4d 41 4c 3b | ...........state.=.STATE_NORMAL; |
| 62e0 | 00 00 00 10 20 20 20 20 20 20 20 20 7d 20 62 72 65 61 6b 3b 00 00 00 13 20 20 20 20 20 20 20 20 | ............}.break;............ |
| 6300 | 63 61 73 65 20 27 45 27 3a 20 7b 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 | case.'E':.{................cur_t |
| 6320 | 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 2b 2b 3b 00 00 00 22 20 20 20 20 20 20 20 20 20 20 20 20 63 | erm->cur.row++;..."............c |
| 6340 | 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3d 20 30 3b 00 00 00 87 20 20 20 20 20 20 20 | ur_term->cur.col.=.0;........... |
| 6360 | 20 20 20 20 20 69 66 20 28 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 20 3e 20 63 75 72 | .....if.(cur_term->cur.row.>.cur |
| 6380 | 5f 74 65 72 6d 2d 3e 62 6f 74 29 20 7b 20 74 65 72 6d 5f 73 63 72 6f 6c 6c 28 63 75 72 5f 74 65 | _term->bot).{.term_scroll(cur_te |
| 63a0 | 72 6d 2d 3e 74 6f 70 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 2c 20 31 29 3b 20 63 75 72 5f | rm->top,.cur_term->bot,.1);.cur_ |
| 63c0 | 74 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 3b 20 7d | term->cur.row.=.cur_term->bot;.} |
| 63e0 | 00 00 00 21 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4e 4f | ...!............state.=.STATE_NO |
| 6400 | 52 4d 41 4c 3b 00 00 00 10 20 20 20 20 20 20 20 20 7d 20 62 72 65 61 6b 3b 00 00 00 4f 20 20 20 | RMAL;............}.break;...O... |
| 6420 | 20 20 20 20 20 63 61 73 65 20 27 37 27 3a 20 63 75 72 5f 74 65 72 6d 2d 3e 73 61 76 65 64 20 3d | .....case.'7':.cur_term->saved.= |
| 6440 | 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 3b 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4e 4f | .cur_term->cur;.state.=.STATE_NO |
| 6460 | 52 4d 41 4c 3b 20 62 72 65 61 6b 3b 00 00 00 50 20 20 20 20 20 20 20 20 63 61 73 65 20 27 38 27 | RMAL;.break;...P........case.'8' |
| 6480 | 3a 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 20 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 73 61 76 | :.cur_term->cur..=.cur_term->sav |
| 64a0 | 65 64 3b 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4e 4f 52 4d 41 4c 3b 20 62 72 65 61 6b 3b | ed;.state.=.STATE_NORMAL;.break; |
| 64c0 | 00 00 00 13 20 20 20 20 20 20 20 20 63 61 73 65 20 27 63 27 3a 20 7b 00 00 00 45 20 20 20 20 20 | ............case.'c':.{...E..... |
| 64e0 | 20 20 20 20 20 20 20 63 75 72 5f 61 74 74 72 20 3d 20 30 3b 20 63 75 72 5f 66 67 20 3d 20 77 2e | .......cur_attr.=.0;.cur_fg.=.w. |
| 6500 | 64 65 66 61 75 6c 74 66 67 3b 20 63 75 72 5f 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b | defaultfg;.cur_bg.=.w.defaultbg; |
| 6520 | 00 00 00 43 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 74 6f 70 20 3d 20 | ...C............cur_term->top.=. |
| 6540 | 30 3b 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f | 0;.cur_term->bot.=.cur_term->nro |
| 6560 | 77 73 20 2d 20 31 3b 00 00 00 27 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d | ws.-.1;...'............cur_term- |
| 6580 | 3e 6d 6f 64 65 20 3d 20 4d 4f 44 45 5f 57 52 41 50 3b 00 00 00 49 20 20 20 20 20 20 20 20 20 20 | >mode.=.MODE_WRAP;...I.......... |
| 65a0 | 20 20 63 6c 65 61 72 5f 72 65 67 69 6f 6e 28 30 2c 20 30 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e | ..clear_region(0,.0,.cur_term->n |
| 65c0 | 72 6f 77 73 20 2d 20 31 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 2d 20 31 29 3b 00 | rows.-.1,.cur_term->ncols.-.1);. |
| 65e0 | 00 00 1e 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 73 6f 72 5f 6d 6f 76 65 28 30 2c 20 30 29 | ...............cursor_move(0,.0) |
| 6600 | 3b 00 00 00 21 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4e | ;...!............state.=.STATE_N |
| 6620 | 4f 52 4d 41 4c 3b 00 00 00 10 20 20 20 20 20 20 20 20 7d 20 62 72 65 61 6b 3b 00 00 00 50 20 20 | ORMAL;............}.break;...P.. |
| 6640 | 20 20 20 20 20 20 63 61 73 65 20 27 3d 27 3a 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 7c | ......case.'=':.cur_term->mode.| |
| 6660 | 3d 20 4d 4f 44 45 5f 41 50 50 4b 45 59 50 41 44 3b 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f | =.MODE_APPKEYPAD;.state.=.STATE_ |
| 6680 | 4e 4f 52 4d 41 4c 3b 20 62 72 65 61 6b 3b 00 00 00 51 20 20 20 20 20 20 20 20 63 61 73 65 20 27 | NORMAL;.break;...Q........case.' |
| 66a0 | 3e 27 3a 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 5f 41 50 50 4b | >':.cur_term->mode.&=.~MODE_APPK |
| 66c0 | 45 59 50 41 44 3b 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4e 4f 52 4d 41 4c 3b 20 62 72 65 | EYPAD;.state.=.STATE_NORMAL;.bre |
| 66e0 | 61 6b 3b 00 00 00 2d 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 20 73 74 61 74 65 20 3d 20 | ak;...-........default:.state.=. |
| 6700 | 53 54 41 54 45 5f 4e 4f 52 4d 41 4c 3b 20 62 72 65 61 6b 3b 00 00 00 09 20 20 20 20 20 20 20 20 | STATE_NORMAL;.break;............ |
| 6720 | 7d 00 00 00 0e 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 15 20 20 20 20 63 61 73 65 20 | }............break;........case. |
| 6740 | 53 54 41 54 45 5f 43 53 49 3a 20 7b 00 00 00 31 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 | STATE_CSI:.{...1........if.(byte |
| 6760 | 20 3d 3d 20 27 3f 27 29 20 7b 20 63 73 69 2e 70 72 69 76 20 3d 20 31 3b 20 62 72 65 61 6b 3b 20 | .==.'?').{.csi.priv.=.1;.break;. |
| 6780 | 7d 00 00 00 1a 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 20 3d 3d 20 27 3b 27 29 20 7b 00 | }............if.(byte.==.';').{. |
| 67a0 | 00 00 4b 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 73 69 2e 61 72 67 63 20 3c 20 33 32 | ..K............if.(csi.argc.<.32 |
| 67c0 | 29 20 7b 20 63 73 69 2e 61 72 67 63 2b 2b 3b 20 63 73 69 2e 61 72 67 76 5b 63 73 69 2e 61 72 67 | ).{.csi.argc++;.csi.argv[csi.arg |
| 67e0 | 63 2d 31 5d 5b 30 5d 20 3d 20 30 3b 20 7d 00 00 00 12 20 20 20 20 20 20 20 20 20 20 20 20 62 72 | c-1][0].=.0;.}................br |
| 6800 | 65 61 6b 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 1c 20 20 20 20 20 20 20 20 69 66 20 | eak;............}............if. |
| 6820 | 28 69 73 64 69 67 69 74 28 62 79 74 65 29 29 20 7b 00 00 00 22 20 20 20 20 20 20 20 20 20 20 20 | (isdigit(byte)).{..."........... |
| 6840 | 20 69 6e 74 20 61 69 20 3d 20 63 73 69 2e 61 72 67 63 20 2d 20 31 3b 00 00 00 2b 20 20 20 20 20 | .int.ai.=.csi.argc.-.1;...+..... |
| 6860 | 20 20 20 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 63 73 69 2e 61 72 67 76 | .......int.len.=.strlen(csi.argv |
| 6880 | 5b 61 69 5d 29 3b 00 00 00 50 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6c 65 6e 20 3c 20 | [ai]);...P............if.(len.<. |
| 68a0 | 36 33 29 20 7b 20 63 73 69 2e 61 72 67 76 5b 61 69 5d 5b 6c 65 6e 5d 20 3d 20 62 79 74 65 3b 20 | 63).{.csi.argv[ai][len].=.byte;. |
| 68c0 | 63 73 69 2e 61 72 67 76 5b 61 69 5d 5b 6c 65 6e 2b 31 5d 20 3d 20 30 3b 20 7d 00 00 00 12 20 20 | csi.argv[ai][len+1].=.0;.}...... |
| 68e0 | 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 | ..........break;............}... |
| 6900 | 37 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 20 3d 3d 20 30 78 31 42 29 20 7b 20 73 74 61 | 7........if.(byte.==.0x1B).{.sta |
| 6920 | 74 65 20 3d 20 53 54 41 54 45 5f 45 53 43 3b 20 62 72 65 61 6b 3b 20 7d 00 00 00 2b 20 20 20 20 | te.=.STATE_ESC;.break;.}...+.... |
| 6940 | 20 20 20 20 69 66 20 28 62 79 74 65 20 3e 3d 20 30 78 34 30 20 26 26 20 62 79 74 65 20 3c 3d 20 | ....if.(byte.>=.0x40.&&.byte.<=. |
| 6960 | 30 78 37 45 29 20 7b 00 00 00 1d 20 20 20 20 20 20 20 20 20 20 20 20 68 61 6e 64 6c 65 5f 63 73 | 0x7E).{................handle_cs |
| 6980 | 69 28 62 79 74 65 29 3b 00 00 00 21 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 | i(byte);...!............state.=. |
| 69a0 | 53 54 41 54 45 5f 4e 4f 52 4d 41 4c 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 0c 20 20 | STATE_NORMAL;............}...... |
| 69c0 | 20 20 7d 20 62 72 65 61 6b 3b 00 00 00 13 20 20 20 20 63 61 73 65 20 53 54 41 54 45 5f 4f 53 43 | ..}.break;........case.STATE_OSC |
| 69e0 | 3a 00 00 00 5a 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 20 3d 3d 20 30 78 30 37 20 7c 7c | :...Z........if.(byte.==.0x07.|| |
| 6a00 | 20 28 62 79 74 65 20 3d 3d 20 27 5c 5c 27 20 26 26 20 6f 73 63 5f 6c 65 6e 20 3e 20 30 20 26 26 | .(byte.==.'\\'.&&.osc_len.>.0.&& |
| 6a20 | 20 6f 73 63 5f 62 75 66 5b 6f 73 63 5f 6c 65 6e 2d 31 5d 20 3d 3d 20 30 78 31 42 29 29 20 7b 00 | .osc_buf[osc_len-1].==.0x1B)).{. |
| 6a40 | 00 00 21 20 20 20 20 20 20 20 20 20 20 20 20 6f 73 63 5f 62 75 66 5b 6f 73 63 5f 6c 65 6e 5d 20 | ..!............osc_buf[osc_len]. |
| 6a60 | 3d 20 30 3b 00 00 00 21 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 54 41 54 | =.0;...!............state.=.STAT |
| 6a80 | 45 5f 4e 4f 52 4d 41 4c 3b 00 00 00 22 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 | E_NORMAL;..."........}.else.if.( |
| 6aa0 | 62 79 74 65 20 3d 3d 20 30 78 31 42 29 20 7b 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 20 20 69 | byte.==.0x1B).{...N............i |
| 6ac0 | 66 20 28 6f 73 63 5f 6c 65 6e 20 3c 20 28 69 6e 74 29 73 69 7a 65 6f 66 28 6f 73 63 5f 62 75 66 | f.(osc_len.<.(int)sizeof(osc_buf |
| 6ae0 | 29 20 2d 20 31 29 20 6f 73 63 5f 62 75 66 5b 6f 73 63 5f 6c 65 6e 2b 2b 5d 20 3d 20 62 79 74 65 | ).-.1).osc_buf[osc_len++].=.byte |
| 6b00 | 3b 00 00 00 10 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 4e 20 20 20 20 20 20 20 | ;............}.else.{...N....... |
| 6b20 | 20 20 20 20 20 69 66 20 28 6f 73 63 5f 6c 65 6e 20 3c 20 28 69 6e 74 29 73 69 7a 65 6f 66 28 6f | .....if.(osc_len.<.(int)sizeof(o |
| 6b40 | 73 63 5f 62 75 66 29 20 2d 20 31 29 20 6f 73 63 5f 62 75 66 5b 6f 73 63 5f 6c 65 6e 2b 2b 5d 20 | sc_buf).-.1).osc_buf[osc_len++]. |
| 6b60 | 3d 20 62 79 74 65 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 0e 20 20 20 20 20 20 20 20 | =.byte;............}............ |
| 6b80 | 62 72 65 61 6b 3b 00 00 00 32 20 20 20 20 63 61 73 65 20 53 54 41 54 45 5f 44 43 53 3a 20 63 61 | break;...2....case.STATE_DCS:.ca |
| 6ba0 | 73 65 20 53 54 41 54 45 5f 50 4d 3a 20 63 61 73 65 20 53 54 41 54 45 5f 41 50 43 3a 00 00 00 2c | se.STATE_PM:.case.STATE_APC:..., |
| 6bc0 | 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 20 3d 3d 20 30 78 31 42 29 20 73 74 61 74 65 20 | ........if.(byte.==.0x1B).state. |
| 6be0 | 3d 20 53 54 41 54 45 5f 45 53 43 3b 00 00 00 0e 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 | =.STATE_ESC;............break;.. |
| 6c00 | 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 1f 73 74 61 74 69 63 20 76 6f 69 64 20 | ......}....}........static.void. |
| 6c20 | 70 72 6f 63 65 73 73 5f 70 74 79 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 20 20 63 68 61 72 20 | process_pty(void).{........char. |
| 6c40 | 62 75 66 5b 42 55 46 53 49 5a 5d 3b 00 00 00 0e 20 20 20 20 73 73 69 7a 65 5f 74 20 6e 3b 00 00 | buf[BUFSIZ];........ssize_t.n;.. |
| 6c60 | 00 36 20 20 20 20 77 68 69 6c 65 20 28 28 6e 20 3d 20 72 65 61 64 28 70 74 79 2e 6d 66 64 2c 20 | .6....while.((n.=.read(pty.mfd,. |
| 6c80 | 62 75 66 2c 20 73 69 7a 65 6f 66 20 62 75 66 29 29 20 3e 20 30 29 20 7b 00 00 00 48 20 20 20 20 | buf,.sizeof.buf)).>.0).{...H.... |
| 6ca0 | 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 20 | ....for.(int.i.=.0;.i.<.n;.i++). |
| 6cc0 | 70 72 6f 63 65 73 73 5f 62 79 74 65 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 62 75 66 5b | process_byte((unsigned.char)buf[ |
| 6ce0 | 69 5d 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 34 73 74 61 74 69 63 | i]);........}....}.......4static |
| 6d00 | 20 76 6f 69 64 20 64 72 61 77 5f 67 6c 79 70 68 28 69 6e 74 20 72 6f 77 2c 20 69 6e 74 20 63 6f | .void.draw_glyph(int.row,.int.co |
| 6d20 | 6c 2c 20 47 6c 79 70 68 20 2a 67 29 20 7b 00 00 00 21 20 20 20 20 43 6f 6c 6f 72 20 66 67 20 3d | l,.Glyph.*g).{...!....Color.fg.= |
| 6d40 | 20 67 2d 3e 66 67 2c 20 62 67 20 3d 20 67 2d 3e 62 67 3b 00 00 00 4e 20 20 20 20 69 6e 74 20 72 | .g->fg,.bg.=.g->bg;...N....int.r |
| 6d60 | 65 76 65 72 73 65 20 3d 20 28 67 2d 3e 61 74 74 72 20 26 20 41 54 54 52 5f 52 45 56 45 52 53 45 | everse.=.(g->attr.&.ATTR_REVERSE |
| 6d80 | 29 20 7c 7c 20 28 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 52 45 56 45 | ).||.(cur_term->mode.&.MODE_REVE |
| 6da0 | 52 53 45 29 3b 00 00 00 37 20 20 20 20 69 66 20 28 72 65 76 65 72 73 65 29 20 7b 20 43 6f 6c 6f | RSE);...7....if.(reverse).{.Colo |
| 6dc0 | 72 20 74 6d 70 20 3d 20 66 67 3b 20 66 67 20 3d 20 62 67 3b 20 62 67 20 3d 20 74 6d 70 3b 20 7d | r.tmp.=.fg;.fg.=.bg;.bg.=.tmp;.} |
| 6de0 | 00 00 00 00 00 00 00 20 20 20 20 20 69 6e 74 20 78 20 3d 20 42 4f 52 44 45 52 20 2b 20 63 6f 6c | ............int.x.=.BORDER.+.col |
| 6e00 | 20 2a 20 77 2e 63 77 3b 00 00 00 20 20 20 20 20 69 6e 74 20 79 20 3d 20 42 4f 52 44 45 52 20 2b | .*.w.cw;........int.y.=.BORDER.+ |
| 6e20 | 20 72 6f 77 20 2a 20 77 2e 63 68 3b 00 00 00 00 00 00 00 29 20 20 20 20 58 66 74 43 6f 6c 6f 72 | .row.*.w.ch;.......)....XftColor |
| 6e40 | 20 2a 78 62 67 20 3d 20 67 65 74 5f 78 66 74 5f 63 6f 6c 6f 72 28 62 67 2c 20 30 29 3b 00 00 00 | .*xbg.=.get_xft_color(bg,.0);... |
| 6e60 | 2f 20 20 20 20 58 66 74 44 72 61 77 52 65 63 74 28 77 2e 64 72 61 77 2c 20 78 62 67 2c 20 78 2c | /....XftDrawRect(w.draw,.xbg,.x, |
| 6e80 | 20 79 2c 20 77 2e 63 77 2c 20 77 2e 63 68 29 3b 00 00 00 00 00 00 00 39 20 20 20 20 69 66 20 28 | .y,.w.cw,.w.ch);.......9....if.( |
| 6ea0 | 67 2d 3e 63 6f 64 65 70 6f 69 6e 74 20 3d 3d 20 27 20 27 20 7c 7c 20 67 2d 3e 63 6f 64 65 70 6f | g->codepoint.==.'.'.||.g->codepo |
| 6ec0 | 69 6e 74 20 3d 3d 20 30 29 20 72 65 74 75 72 6e 3b 00 00 00 00 00 00 00 1b 20 20 20 20 58 66 74 | int.==.0).return;............Xft |
| 6ee0 | 46 6f 6e 74 20 2a 66 6f 6e 74 20 3d 20 77 2e 66 6f 6e 74 3b 00 00 00 4a 20 20 20 20 69 66 20 28 | Font.*font.=.w.font;...J....if.( |
| 6f00 | 28 67 2d 3e 61 74 74 72 20 26 20 41 54 54 52 5f 42 4f 4c 44 29 20 26 26 20 28 67 2d 3e 61 74 74 | (g->attr.&.ATTR_BOLD).&&.(g->att |
| 6f20 | 72 20 26 20 41 54 54 52 5f 49 54 41 4c 49 43 29 29 20 66 6f 6e 74 20 3d 20 77 2e 62 69 66 6f 6e | r.&.ATTR_ITALIC)).font.=.w.bifon |
| 6f40 | 74 3b 00 00 00 33 20 20 20 20 65 6c 73 65 20 69 66 20 28 67 2d 3e 61 74 74 72 20 26 20 41 54 54 | t;...3....else.if.(g->attr.&.ATT |
| 6f60 | 52 5f 42 4f 4c 44 29 20 20 20 66 6f 6e 74 20 3d 20 77 2e 62 66 6f 6e 74 3b 00 00 00 33 20 20 20 | R_BOLD)...font.=.w.bfont;...3... |
| 6f80 | 20 65 6c 73 65 20 69 66 20 28 67 2d 3e 61 74 74 72 20 26 20 41 54 54 52 5f 49 54 41 4c 49 43 29 | .else.if.(g->attr.&.ATTR_ITALIC) |
| 6fa0 | 20 66 6f 6e 74 20 3d 20 77 2e 69 66 6f 6e 74 3b 00 00 00 00 00 00 00 29 20 20 20 20 58 66 74 43 | .font.=.w.ifont;.......)....XftC |
| 6fc0 | 6f 6c 6f 72 20 2a 78 66 67 20 3d 20 67 65 74 5f 78 66 74 5f 63 6f 6c 6f 72 28 66 67 2c 20 31 29 | olor.*xfg.=.get_xft_color(fg,.1) |
| 6fe0 | 3b 00 00 00 00 00 00 00 10 20 20 20 20 63 68 61 72 20 75 74 66 5b 38 5d 3b 00 00 00 2c 20 20 20 | ;............char.utf[8];...,... |
| 7000 | 20 69 6e 74 20 6c 65 6e 20 3d 20 75 74 66 38 65 6e 63 6f 64 65 28 67 2d 3e 63 6f 64 65 70 6f 69 | .int.len.=.utf8encode(g->codepoi |
| 7020 | 6e 74 2c 20 75 74 66 29 3b 00 00 00 4b 20 20 20 20 58 66 74 44 72 61 77 53 74 72 69 6e 67 55 74 | nt,.utf);...K....XftDrawStringUt |
| 7040 | 66 38 28 77 2e 64 72 61 77 2c 20 78 66 67 2c 20 66 6f 6e 74 2c 20 78 2c 20 79 20 2b 20 77 2e 63 | f8(w.draw,.xfg,.font,.x,.y.+.w.c |
| 7060 | 61 2c 20 28 46 63 43 68 61 72 38 20 2a 29 75 74 66 2c 20 6c 65 6e 29 3b 00 00 00 00 00 00 00 23 | a,.(FcChar8.*)utf,.len);.......# |
| 7080 | 20 20 20 20 69 66 20 28 67 2d 3e 61 74 74 72 20 26 20 41 54 54 52 5f 55 4e 44 45 52 4c 49 4e 45 | ....if.(g->attr.&.ATTR_UNDERLINE |
| 70a0 | 29 20 7b 00 00 00 3b 20 20 20 20 20 20 20 20 58 66 74 44 72 61 77 52 65 63 74 28 77 2e 64 72 61 | ).{...;........XftDrawRect(w.dra |
| 70c0 | 77 2c 20 78 66 67 2c 20 78 2c 20 79 20 2b 20 77 2e 63 61 20 2b 20 31 2c 20 77 2e 63 77 2c 20 31 | w,.xfg,.x,.y.+.w.ca.+.1,.w.cw,.1 |
| 70e0 | 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 1f 73 74 61 74 69 63 20 76 | );........}....}........static.v |
| 7100 | 6f 69 64 20 64 72 61 77 5f 63 75 72 73 6f 72 28 76 6f 69 64 29 20 7b 00 00 00 32 20 20 20 20 69 | oid.draw_cursor(void).{...2....i |
| 7120 | 66 20 28 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 48 49 44 45 5f 43 55 | f.(cur_term->mode.&.MODE_HIDE_CU |
| 7140 | 52 53 4f 52 29 20 72 65 74 75 72 6e 3b 00 00 00 35 20 20 20 20 69 6e 74 20 72 20 3d 20 63 75 72 | RSOR).return;...5....int.r.=.cur |
| 7160 | 5f 74 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 2c 20 63 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 | _term->cur.row,.c.=.cur_term->cu |
| 7180 | 72 2e 63 6f 6c 3b 00 00 00 36 20 20 20 20 69 66 20 28 63 20 3e 3d 20 63 75 72 5f 74 65 72 6d 2d | r.col;...6....if.(c.>=.cur_term- |
| 71a0 | 3e 6e 63 6f 6c 73 29 20 63 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 2d 20 31 3b | >ncols).c.=.cur_term->ncols.-.1; |
| 71c0 | 00 00 00 36 20 20 20 20 69 66 20 28 72 20 3e 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 | ...6....if.(r.>=.cur_term->nrows |
| 71e0 | 29 20 72 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 20 2d 20 31 3b 00 00 00 1e 20 20 | ).r.=.cur_term->nrows.-.1;...... |
| 7200 | 20 20 69 6e 74 20 78 20 3d 20 42 4f 52 44 45 52 20 2b 20 63 20 2a 20 77 2e 63 77 3b 00 00 00 1e | ..int.x.=.BORDER.+.c.*.w.cw;.... |
| 7220 | 20 20 20 20 69 6e 74 20 79 20 3d 20 42 4f 52 44 45 52 20 2b 20 72 20 2a 20 77 2e 63 68 3b 00 00 | ....int.y.=.BORDER.+.r.*.w.ch;.. |
| 7240 | 00 00 00 00 00 29 20 20 20 20 47 6c 79 70 68 20 67 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f | .....)....Glyph.g.=.cur_term->ro |
| 7260 | 77 73 5b 72 5d 2e 63 65 6c 6c 73 5b 63 5d 3b 00 00 00 1f 20 20 20 20 43 6f 6c 6f 72 20 66 67 20 | ws[r].cells[c];........Color.fg. |
| 7280 | 3d 20 67 2e 66 67 2c 20 62 67 20 3d 20 67 2e 62 67 3b 00 00 00 26 20 20 20 20 43 6f 6c 6f 72 20 | =.g.fg,.bg.=.g.bg;...&....Color. |
| 72a0 | 74 6d 70 20 3d 20 66 67 3b 20 66 67 20 3d 20 62 67 3b 20 62 67 20 3d 20 74 6d 70 3b 00 00 00 2c | tmp.=.fg;.fg.=.bg;.bg.=.tmp;..., |
| 72c0 | 20 20 20 20 69 66 20 28 62 67 20 3d 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 29 20 62 67 20 3d 20 | ....if.(bg.==.w.defaultbg).bg.=. |
| 72e0 | 77 2e 64 65 66 61 75 6c 74 63 73 3b 00 00 00 00 00 00 00 29 20 20 20 20 58 66 74 43 6f 6c 6f 72 | w.defaultcs;.......)....XftColor |
| 7300 | 20 2a 78 62 67 20 3d 20 67 65 74 5f 78 66 74 5f 63 6f 6c 6f 72 28 62 67 2c 20 30 29 3b 00 00 00 | .*xbg.=.get_xft_color(bg,.0);... |
| 7320 | 2f 20 20 20 20 58 66 74 44 72 61 77 52 65 63 74 28 77 2e 64 72 61 77 2c 20 78 62 67 2c 20 78 2c | /....XftDrawRect(w.draw,.xbg,.x, |
| 7340 | 20 79 2c 20 77 2e 63 77 2c 20 77 2e 63 68 29 3b 00 00 00 00 00 00 00 1c 20 20 20 20 69 66 20 28 | .y,.w.cw,.w.ch);............if.( |
| 7360 | 67 2e 63 6f 64 65 70 6f 69 6e 74 20 3e 20 27 20 27 29 20 7b 00 00 00 2d 20 20 20 20 20 20 20 20 | g.codepoint.>.'.').{...-........ |
| 7380 | 58 66 74 43 6f 6c 6f 72 20 2a 78 66 67 20 3d 20 67 65 74 5f 78 66 74 5f 63 6f 6c 6f 72 28 66 67 | XftColor.*xfg.=.get_xft_color(fg |
| 73a0 | 2c 20 31 29 3b 00 00 00 14 20 20 20 20 20 20 20 20 63 68 61 72 20 75 74 66 5b 38 5d 3b 00 00 00 | ,.1);............char.utf[8];... |
| 73c0 | 2f 20 20 20 20 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 75 74 66 38 65 6e 63 6f 64 65 28 67 2e | /........int.len.=.utf8encode(g. |
| 73e0 | 63 6f 64 65 70 6f 69 6e 74 2c 20 75 74 66 29 3b 00 00 00 51 20 20 20 20 20 20 20 20 58 66 74 44 | codepoint,.utf);...Q........XftD |
| 7400 | 72 61 77 53 74 72 69 6e 67 55 74 66 38 28 77 2e 64 72 61 77 2c 20 78 66 67 2c 20 77 2e 66 6f 6e | rawStringUtf8(w.draw,.xfg,.w.fon |
| 7420 | 74 2c 20 78 2c 20 79 20 2b 20 77 2e 63 61 2c 20 28 46 63 43 68 61 72 38 20 2a 29 75 74 66 2c 20 | t,.x,.y.+.w.ca,.(FcChar8.*)utf,. |
| 7440 | 6c 65 6e 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 18 73 74 61 74 69 | len);........}....}........stati |
| 7460 | 63 20 76 6f 69 64 20 64 72 61 77 28 76 6f 69 64 29 20 7b 00 00 00 2f 20 20 20 20 66 6f 72 20 28 | c.void.draw(void).{.../....for.( |
| 7480 | 69 6e 74 20 72 20 3d 20 30 3b 20 72 20 3c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 3b 20 | int.r.=.0;.r.<.cur_term->nrows;. |
| 74a0 | 72 2b 2b 29 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 69 66 20 28 21 63 75 72 5f 74 65 72 6d 2d | r++).{.../........if.(!cur_term- |
| 74c0 | 3e 72 6f 77 73 5b 72 5d 2e 64 69 72 74 79 29 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 33 20 20 20 | >rows[r].dirty).continue;...3... |
| 74e0 | 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 63 20 3d 20 30 3b 20 63 20 3c 20 63 75 72 5f 74 65 72 | .....for.(int.c.=.0;.c.<.cur_ter |
| 7500 | 6d 2d 3e 6e 63 6f 6c 73 3b 20 63 2b 2b 29 20 7b 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 | m->ncols;.c++).{...:............ |
| 7520 | 64 72 61 77 5f 67 6c 79 70 68 28 72 2c 20 63 2c 20 26 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 | draw_glyph(r,.c,.&cur_term->rows |
| 7540 | 5b 72 5d 2e 63 65 6c 6c 73 5b 63 5d 29 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 24 20 | [r].cells[c]);............}...$. |
| 7560 | 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 72 5d 2e 64 69 72 74 79 20 3d | .......cur_term->rows[r].dirty.= |
| 7580 | 20 30 3b 00 00 00 05 20 20 20 20 7d 00 00 00 12 20 20 20 20 64 72 61 77 5f 63 75 72 73 6f 72 28 | .0;........}........draw_cursor( |
| 75a0 | 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2d 73 74 61 74 69 63 20 76 6f 69 64 20 74 65 72 6d 5f | );....}.......-static.void.term_ |
| 75c0 | 72 65 73 69 7a 65 28 69 6e 74 20 72 6f 77 73 2c 20 69 6e 74 20 63 6f 6c 73 29 20 7b 00 00 00 43 | resize(int.rows,.int.cols).{...C |
| 75e0 | 20 20 20 20 69 66 20 28 72 6f 77 73 20 3d 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 20 | ....if.(rows.==.cur_term->nrows. |
| 7600 | 26 26 20 63 6f 6c 73 20 3d 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 29 20 72 65 74 75 | &&.cols.==.cur_term->ncols).retu |
| 7620 | 72 6e 3b 00 00 00 00 00 00 00 2f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 | rn;......./....for.(int.i.=.0;.i |
| 7640 | 20 3c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 3b 20 69 2b 2b 29 20 7b 00 00 00 51 20 20 | .<.cur_term->nrows;.i++).{...Q.. |
| 7660 | 20 20 20 20 20 20 47 6c 79 70 68 20 2a 6e 65 77 63 65 6c 6c 73 20 3d 20 72 65 61 6c 6c 6f 63 28 | ......Glyph.*newcells.=.realloc( |
| 7680 | 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 2c 20 63 6f 6c 73 20 2a 20 | cur_term->rows[i].cells,.cols.*. |
| 76a0 | 73 69 7a 65 6f 66 28 47 6c 79 70 68 29 29 3b 00 00 00 26 20 20 20 20 20 20 20 20 69 66 20 28 21 | sizeof(Glyph));...&........if.(! |
| 76c0 | 6e 65 77 63 65 6c 6c 73 29 20 64 69 65 28 22 72 65 61 6c 6c 6f 63 22 29 3b 00 00 00 36 20 20 20 | newcells).die("realloc");...6... |
| 76e0 | 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c | .....for.(int.j.=.cur_term->ncol |
| 7700 | 73 3b 20 6a 20 3c 20 63 6f 6c 73 3b 20 6a 2b 2b 29 20 7b 00 00 00 3e 20 20 20 20 20 20 20 20 20 | s;.j.<.cols;.j++).{...>......... |
| 7720 | 20 20 20 6e 65 77 63 65 6c 6c 73 5b 6a 5d 2e 63 6f 64 65 70 6f 69 6e 74 20 3d 20 27 20 27 3b 20 | ...newcells[j].codepoint.=.'.';. |
| 7740 | 6e 65 77 63 65 6c 6c 73 5b 6a 5d 2e 61 74 74 72 20 3d 20 30 3b 00 00 00 47 20 20 20 20 20 20 20 | newcells[j].attr.=.0;...G....... |
| 7760 | 20 20 20 20 20 6e 65 77 63 65 6c 6c 73 5b 6a 5d 2e 66 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 66 | .....newcells[j].fg.=.w.defaultf |
| 7780 | 67 3b 20 6e 65 77 63 65 6c 6c 73 5b 6a 5d 2e 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b | g;.newcells[j].bg.=.w.defaultbg; |
| 77a0 | 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 2b 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 | ............}...+........cur_ter |
| 77c0 | 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 20 3d 20 6e 65 77 63 65 6c 6c 73 3b 00 00 00 27 | m->rows[i].cells.=.newcells;...' |
| 77e0 | 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 6f 6c 73 20 20 | ........cur_term->rows[i].cols.. |
| 7800 | 3d 20 63 6f 6c 73 3b 00 00 00 24 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 | =.cols;...$........cur_term->row |
| 7820 | 73 5b 69 5d 2e 64 69 72 74 79 20 3d 20 31 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 21 | s[i].dirty.=.1;........}.......! |
| 7840 | 20 20 20 20 69 66 20 28 72 6f 77 73 20 3e 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 29 20 | ....if.(rows.>.cur_term->nrows). |
| 7860 | 7b 00 00 00 45 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 20 3d 20 72 65 | {...E........cur_term->rows.=.re |
| 7880 | 61 6c 6c 6f 63 28 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 2c 20 72 6f 77 73 20 2a 20 73 69 7a | alloc(cur_term->rows,.rows.*.siz |
| 78a0 | 65 6f 66 28 52 6f 77 29 29 3b 00 00 00 2c 20 20 20 20 20 20 20 20 69 66 20 28 21 63 75 72 5f 74 | eof(Row));...,........if.(!cur_t |
| 78c0 | 65 72 6d 2d 3e 72 6f 77 73 29 20 64 69 65 28 22 72 65 61 6c 6c 6f 63 22 29 3b 00 00 00 36 20 20 | erm->rows).die("realloc");...6.. |
| 78e0 | 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f | ......for.(int.i.=.cur_term->nro |
| 7900 | 77 73 3b 20 69 20 3c 20 72 6f 77 73 3b 20 69 2b 2b 29 20 7b 00 00 00 42 20 20 20 20 20 20 20 20 | ws;.i.<.rows;.i++).{...B........ |
| 7920 | 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 20 3d 20 63 61 | ....cur_term->rows[i].cells.=.ca |
| 7940 | 6c 6c 6f 63 28 63 6f 6c 73 2c 20 73 69 7a 65 6f 66 28 47 6c 79 70 68 29 29 3b 00 00 00 2b 20 20 | lloc(cols,.sizeof(Glyph));...+.. |
| 7960 | 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 6f 6c 73 | ..........cur_term->rows[i].cols |
| 7980 | 20 20 3d 20 63 6f 6c 73 3b 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 | ..=.cols;...(............cur_ter |
| 79a0 | 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 64 69 72 74 79 20 3d 20 31 3b 00 00 00 2c 20 20 20 20 20 20 20 | m->rows[i].dirty.=.1;...,....... |
| 79c0 | 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 30 3b 20 6a 20 3c 20 63 6f 6c 73 3b 20 6a | .....for.(int.j.=.0;.j.<.cols;.j |
| 79e0 | 2b 2b 29 20 7b 00 00 00 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 | ++).{...;................cur_ter |
| 7a00 | 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 63 6f 64 65 70 6f 69 6e 74 20 3d 20 | m->rows[i].cells[j].codepoint.=. |
| 7a20 | 27 20 27 3b 00 00 00 3c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d | '.';...<................cur_term |
| 7a40 | 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 66 67 20 3d 20 77 2e 64 65 66 61 75 6c | ->rows[i].cells[j].fg.=.w.defaul |
| 7a60 | 74 66 67 3b 00 00 00 3c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d | tfg;...<................cur_term |
| 7a80 | 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 62 67 20 3d 20 77 2e 64 65 66 61 75 6c | ->rows[i].cells[j].bg.=.w.defaul |
| 7aa0 | 74 62 67 3b 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 09 20 20 20 20 20 20 20 | tbg;................}........... |
| 7ac0 | 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 1b 20 20 20 20 63 75 72 5f 74 65 72 6d 2d | .}........}............cur_term- |
| 7ae0 | 3e 6e 72 6f 77 73 20 3d 20 72 6f 77 73 3b 00 00 00 1b 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e | >nrows.=.rows;........cur_term-> |
| 7b00 | 6e 63 6f 6c 73 20 3d 20 63 6f 6c 73 3b 00 00 00 18 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 74 | ncols.=.cols;........cur_term->t |
| 7b20 | 6f 70 20 20 20 3d 20 30 3b 00 00 00 1f 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 20 20 | op...=.0;........cur_term->bot.. |
| 7b40 | 20 3d 20 72 6f 77 73 20 2d 20 31 3b 00 00 00 00 00 00 00 40 20 20 20 20 69 66 20 28 63 75 72 5f | .=.rows.-.1;.......@....if.(cur_ |
| 7b60 | 74 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 20 3e 3d 20 72 6f 77 73 29 20 63 75 72 5f 74 65 72 6d 2d | term->cur.row.>=.rows).cur_term- |
| 7b80 | 3e 63 75 72 2e 72 6f 77 20 3d 20 72 6f 77 73 20 2d 20 31 3b 00 00 00 40 20 20 20 20 69 66 20 28 | >cur.row.=.rows.-.1;...@....if.( |
| 7ba0 | 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3e 3d 20 63 6f 6c 73 29 20 63 75 72 5f 74 | cur_term->cur.col.>=.cols).cur_t |
| 7bc0 | 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3d 20 63 6f 6c 73 20 2d 20 31 3b 00 00 00 00 00 00 00 2d | erm->cur.col.=.cols.-.1;.......- |
| 7be0 | 20 20 20 20 73 74 72 75 63 74 20 77 69 6e 73 69 7a 65 20 77 73 20 3d 20 7b 20 72 6f 77 73 2c 20 | ....struct.winsize.ws.=.{.rows,. |
| 7c00 | 63 6f 6c 73 2c 20 30 2c 20 30 20 7d 3b 00 00 00 24 20 20 20 20 69 6f 63 74 6c 28 70 74 79 2e 6d | cols,.0,.0.};...$....ioctl(pty.m |
| 7c20 | 66 64 2c 20 54 49 4f 43 53 57 49 4e 53 5a 2c 20 26 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 | fd,.TIOCSWINSZ,.&ws);....}...... |
| 7c40 | 00 33 73 74 61 74 69 63 20 76 6f 69 64 20 68 61 6e 64 6c 65 5f 6b 65 79 28 78 63 62 5f 6b 65 79 | .3static.void.handle_key(xcb_key |
| 7c60 | 5f 70 72 65 73 73 5f 65 76 65 6e 74 5f 74 20 2a 65 76 29 20 7b 00 00 00 43 20 20 20 20 78 63 62 | _press_event_t.*ev).{...C....xcb |
| 7c80 | 5f 6b 65 79 73 79 6d 5f 74 20 73 79 6d 20 3d 20 78 63 62 5f 6b 65 79 5f 70 72 65 73 73 5f 6c 6f | _keysym_t.sym.=.xcb_key_press_lo |
| 7ca0 | 6f 6b 75 70 5f 6b 65 79 73 79 6d 28 77 2e 6b 73 79 6d 73 2c 20 65 76 2c 20 30 29 3b 00 00 00 1d | okup_keysym(w.ksyms,.ev,.0);.... |
| 7cc0 | 20 20 20 20 75 69 6e 74 31 36 5f 74 20 6d 6f 64 20 3d 20 65 76 2d 3e 73 74 61 74 65 3b 00 00 00 | ....uint16_t.mod.=.ev->state;... |
| 7ce0 | 32 20 20 20 20 69 6e 74 20 73 68 69 66 74 20 20 20 3d 20 28 6d 6f 64 20 26 20 58 43 42 5f 4d 4f | 2....int.shift...=.(mod.&.XCB_MO |
| 7d00 | 44 5f 4d 41 53 4b 5f 53 48 49 46 54 29 20 21 3d 20 30 3b 00 00 00 34 20 20 20 20 69 6e 74 20 63 | D_MASK_SHIFT).!=.0;...4....int.c |
| 7d20 | 74 72 6c 20 20 20 20 3d 20 28 6d 6f 64 20 26 20 58 43 42 5f 4d 4f 44 5f 4d 41 53 4b 5f 43 4f 4e | trl....=.(mod.&.XCB_MOD_MASK_CON |
| 7d40 | 54 52 4f 4c 29 20 21 3d 20 30 3b 00 00 00 2e 20 20 20 20 69 6e 74 20 61 6c 74 20 20 20 20 20 3d | TROL).!=.0;........int.alt.....= |
| 7d60 | 20 28 6d 6f 64 20 26 20 58 43 42 5f 4d 4f 44 5f 4d 41 53 4b 5f 31 29 20 21 3d 20 30 3b 00 00 00 | .(mod.&.XCB_MOD_MASK_1).!=.0;... |
| 7d80 | 11 20 20 20 20 63 68 61 72 20 62 75 66 5b 33 32 5d 3b 00 00 00 11 20 20 20 20 69 6e 74 20 20 6c | .....char.buf[32];........int..l |
| 7da0 | 65 6e 20 3d 20 30 3b 00 00 00 00 00 00 00 49 20 20 20 20 69 66 20 28 63 74 72 6c 20 26 26 20 73 | en.=.0;.......I....if.(ctrl.&&.s |
| 7dc0 | 79 6d 20 3d 3d 20 27 63 27 20 2d 20 27 61 27 20 2b 20 27 61 27 29 20 7b 20 70 74 79 5f 77 72 69 | ym.==.'c'.-.'a'.+.'a').{.pty_wri |
| 7de0 | 74 65 28 22 5c 30 30 33 22 2c 20 31 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 00 00 00 00 3d | te("\003",.1);.return;.}.......= |
| 7e00 | 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 52 65 74 75 72 6e 29 20 20 20 20 20 7b 20 | ....if.(sym.==.XK_Return).....{. |
| 7e20 | 70 74 79 5f 77 72 69 74 65 28 22 5c 72 22 2c 20 31 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 | pty_write("\r",.1);.return;.}... |
| 7e40 | 3f 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 42 61 63 6b 53 70 61 63 65 29 20 20 7b | ?....if.(sym.==.XK_BackSpace)..{ |
| 7e60 | 20 70 74 79 5f 77 72 69 74 65 28 22 5c 31 37 37 22 2c 20 31 29 3b 20 72 65 74 75 72 6e 3b 20 7d | .pty_write("\177",.1);.return;.} |
| 7e80 | 00 00 00 3d 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 54 61 62 29 20 20 20 20 20 20 | ...=....if.(sym.==.XK_Tab)...... |
| 7ea0 | 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 22 5c 74 22 2c 20 31 29 3b 20 72 65 74 75 72 6e 3b 20 | ..{.pty_write("\t",.1);.return;. |
| 7ec0 | 7d 00 00 00 3f 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 45 73 63 61 70 65 29 20 20 | }...?....if.(sym.==.XK_Escape).. |
| 7ee0 | 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 22 5c 30 33 33 22 2c 20 31 29 3b 20 72 65 74 75 72 | ...{.pty_write("\033",.1);.retur |
| 7f00 | 6e 3b 20 7d 00 00 00 00 00 00 00 6e 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 55 70 | n;.}.......n....if.(sym.==.XK_Up |
| 7f20 | 29 20 20 20 20 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 63 75 72 5f 74 65 72 6d 2d 3e | ).........{.pty_write(cur_term-> |
| 7f40 | 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 41 50 50 4b 45 59 50 41 44 20 3f 20 22 5c 30 33 33 4f 41 22 | mode.&.MODE_APPKEYPAD.?."\033OA" |
| 7f60 | 20 3a 20 22 5c 30 33 33 5b 41 22 2c 20 33 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 6e 20 20 | .:."\033[A",.3);.return;.}...n.. |
| 7f80 | 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 44 6f 77 6e 29 20 20 20 20 20 20 20 7b 20 70 74 | ..if.(sym.==.XK_Down).......{.pt |
| 7fa0 | 79 5f 77 72 69 74 65 28 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 41 50 | y_write(cur_term->mode.&.MODE_AP |
| 7fc0 | 50 4b 45 59 50 41 44 20 3f 20 22 5c 30 33 33 4f 42 22 20 3a 20 22 5c 30 33 33 5b 42 22 2c 20 33 | PKEYPAD.?."\033OB".:."\033[B",.3 |
| 7fe0 | 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 6e 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 | );.return;.}...n....if.(sym.==.X |
| 8000 | 4b 5f 52 69 67 68 74 29 20 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 63 75 72 5f 74 65 | K_Right)......{.pty_write(cur_te |
| 8020 | 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 41 50 50 4b 45 59 50 41 44 20 3f 20 22 5c 30 33 | rm->mode.&.MODE_APPKEYPAD.?."\03 |
| 8040 | 33 4f 43 22 20 3a 20 22 5c 30 33 33 5b 43 22 2c 20 33 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 | 3OC".:."\033[C",.3);.return;.}.. |
| 8060 | 00 6e 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 4c 65 66 74 29 20 20 20 20 20 20 20 | .n....if.(sym.==.XK_Left)....... |
| 8080 | 7b 20 70 74 79 5f 77 72 69 74 65 28 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 | {.pty_write(cur_term->mode.&.MOD |
| 80a0 | 45 5f 41 50 50 4b 45 59 50 41 44 20 3f 20 22 5c 30 33 33 4f 44 22 20 3a 20 22 5c 30 33 33 5b 44 | E_APPKEYPAD.?."\033OD".:."\033[D |
| 80c0 | 22 2c 20 33 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 41 20 20 20 20 69 66 20 28 73 79 6d 20 | ",.3);.return;.}...A....if.(sym. |
| 80e0 | 3d 3d 20 58 4b 5f 48 6f 6d 65 29 20 20 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 22 5c | ==.XK_Home).......{.pty_write("\ |
| 8100 | 30 33 33 5b 48 22 2c 20 33 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 41 20 20 20 20 69 66 20 | 033[H",.3);.return;.}...A....if. |
| 8120 | 28 73 79 6d 20 3d 3d 20 58 4b 5f 45 6e 64 29 20 20 20 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 | (sym.==.XK_End)........{.pty_wri |
| 8140 | 74 65 28 22 5c 30 33 33 5b 46 22 2c 20 33 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 42 20 20 | te("\033[F",.3);.return;.}...B.. |
| 8160 | 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 50 72 69 6f 72 29 20 20 20 20 20 20 7b 20 70 74 | ..if.(sym.==.XK_Prior)......{.pt |
| 8180 | 79 5f 77 72 69 74 65 28 22 5c 30 33 33 5b 35 7e 22 2c 20 34 29 3b 20 72 65 74 75 72 6e 3b 20 7d | y_write("\033[5~",.4);.return;.} |
| 81a0 | 00 00 00 42 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 4e 65 78 74 29 20 20 20 20 20 | ...B....if.(sym.==.XK_Next)..... |
| 81c0 | 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 22 5c 30 33 33 5b 36 7e 22 2c 20 34 29 3b 20 72 65 74 | ..{.pty_write("\033[6~",.4);.ret |
| 81e0 | 75 72 6e 3b 20 7d 00 00 00 42 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 49 6e 73 65 | urn;.}...B....if.(sym.==.XK_Inse |
| 8200 | 72 74 29 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 22 5c 30 33 33 5b 32 7e 22 2c 20 34 | rt).....{.pty_write("\033[2~",.4 |
| 8220 | 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 42 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 | );.return;.}...B....if.(sym.==.X |
| 8240 | 4b 5f 44 65 6c 65 74 65 29 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 22 5c 30 33 33 5b | K_Delete).....{.pty_write("\033[ |
| 8260 | 33 7e 22 2c 20 34 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 41 20 20 20 20 69 66 20 28 73 79 | 3~",.4);.return;.}...A....if.(sy |
| 8280 | 6d 20 3d 3d 20 58 4b 5f 46 31 29 20 20 20 20 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 | m.==.XK_F1).........{.pty_write( |
| 82a0 | 22 5c 30 33 33 4f 50 22 2c 20 33 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 41 20 20 20 20 69 | "\033OP",.3);.return;.}...A....i |
| 82c0 | 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 46 32 29 20 20 20 20 20 20 20 20 20 7b 20 70 74 79 5f 77 | f.(sym.==.XK_F2).........{.pty_w |
| 82e0 | 72 69 74 65 28 22 5c 30 33 33 4f 51 22 2c 20 33 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 41 | rite("\033OQ",.3);.return;.}...A |
| 8300 | 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 46 33 29 20 20 20 20 20 20 20 20 20 7b 20 | ....if.(sym.==.XK_F3).........{. |
| 8320 | 70 74 79 5f 77 72 69 74 65 28 22 5c 30 33 33 4f 52 22 2c 20 33 29 3b 20 72 65 74 75 72 6e 3b 20 | pty_write("\033OR",.3);.return;. |
| 8340 | 7d 00 00 00 41 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 46 34 29 20 20 20 20 20 20 | }...A....if.(sym.==.XK_F4)...... |
| 8360 | 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 22 5c 30 33 33 4f 53 22 2c 20 33 29 3b 20 72 65 74 | ...{.pty_write("\033OS",.3);.ret |
| 8380 | 75 72 6e 3b 20 7d 00 00 00 28 20 20 20 20 69 66 20 28 73 79 6d 20 3e 3d 20 58 4b 5f 46 35 20 26 | urn;.}...(....if.(sym.>=.XK_F5.& |
| 83a0 | 26 20 73 79 6d 20 3c 3d 20 58 4b 5f 46 31 32 29 20 7b 00 00 00 53 20 20 20 20 20 20 20 20 73 74 | &.sym.<=.XK_F12).{...S........st |
| 83c0 | 61 74 69 63 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 66 6b 65 79 73 5b 5d 20 3d 20 7b 20 22 5c 30 | atic.const.char.*fkeys[].=.{."\0 |
| 83e0 | 33 33 5b 31 35 7e 22 2c 22 5c 30 33 33 5b 31 37 7e 22 2c 22 5c 30 33 33 5b 31 38 7e 22 2c 22 5c | 33[15~","\033[17~","\033[18~","\ |
| 8400 | 30 33 33 5b 31 39 7e 22 2c 00 00 00 56 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | 033[19~",...V................... |
| 8420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 30 33 33 5b 32 30 7e 22 2c | ....................."\033[20~", |
| 8440 | 22 5c 30 33 33 5b 32 31 7e 22 2c 22 5c 30 33 33 5b 32 33 7e 22 2c 22 5c 30 33 33 5b 32 34 7e 22 | "\033[21~","\033[23~","\033[24~" |
| 8460 | 20 7d 3b 00 00 00 42 20 20 20 20 20 20 20 20 70 74 79 5f 77 72 69 74 65 28 66 6b 65 79 73 5b 73 | .};...B........pty_write(fkeys[s |
| 8480 | 79 6d 20 2d 20 58 4b 5f 46 35 5d 2c 20 73 74 72 6c 65 6e 28 66 6b 65 79 73 5b 73 79 6d 20 2d 20 | ym.-.XK_F5],.strlen(fkeys[sym.-. |
| 84a0 | 58 4b 5f 46 35 5d 29 29 3b 00 00 00 0f 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 | XK_F5]));............return;.... |
| 84c0 | 20 20 20 20 7d 00 00 00 00 00 00 00 1c 20 20 20 20 69 66 20 28 61 6c 74 20 26 26 20 73 79 6d 20 | ....}............if.(alt.&&.sym. |
| 84e0 | 3c 20 30 78 38 30 29 20 7b 00 00 00 16 20 20 20 20 20 20 20 20 62 75 66 5b 30 5d 20 3d 20 30 78 | <.0x80).{............buf[0].=.0x |
| 8500 | 31 42 3b 00 00 00 15 20 20 20 20 20 20 20 20 62 75 66 5b 31 5d 20 3d 20 73 79 6d 3b 00 00 00 1a | 1B;............buf[1].=.sym;.... |
| 8520 | 20 20 20 20 20 20 20 20 70 74 79 5f 77 72 69 74 65 28 62 75 66 2c 20 32 29 3b 00 00 00 0f 20 20 | ........pty_write(buf,.2);...... |
| 8540 | 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 2d 20 20 | ......return;........}.......-.. |
| 8560 | 20 20 69 66 20 28 63 74 72 6c 20 26 26 20 73 79 6d 20 3e 3d 20 30 78 34 30 20 26 26 20 73 79 6d | ..if.(ctrl.&&.sym.>=.0x40.&&.sym |
| 8580 | 20 3c 3d 20 30 78 37 46 29 20 7b 00 00 00 1c 20 20 20 20 20 20 20 20 62 75 66 5b 30 5d 20 3d 20 | .<=.0x7F).{............buf[0].=. |
| 85a0 | 73 79 6d 20 26 20 30 78 31 46 3b 00 00 00 1a 20 20 20 20 20 20 20 20 70 74 79 5f 77 72 69 74 65 | sym.&.0x1F;............pty_write |
| 85c0 | 28 62 75 66 2c 20 31 29 3b 00 00 00 0f 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 | (buf,.1);............return;.... |
| 85e0 | 20 20 20 20 7d 00 00 00 2c 20 20 20 20 69 66 20 28 63 74 72 6c 20 26 26 20 73 79 6d 20 3e 3d 20 | ....}...,....if.(ctrl.&&.sym.>=. |
| 8600 | 30 78 32 30 20 26 26 20 73 79 6d 20 3c 20 30 78 34 30 29 20 7b 00 00 00 15 20 20 20 20 20 20 20 | 0x20.&&.sym.<.0x40).{........... |
| 8620 | 20 62 75 66 5b 30 5d 20 3d 20 73 79 6d 3b 00 00 00 1a 20 20 20 20 20 20 20 20 70 74 79 5f 77 72 | .buf[0].=.sym;............pty_wr |
| 8640 | 69 74 65 28 62 75 66 2c 20 31 29 3b 00 00 00 0f 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 | ite(buf,.1);............return;. |
| 8660 | 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 26 20 20 20 20 69 66 20 28 73 79 6d 20 3c 20 30 78 | .......}.......&....if.(sym.<.0x |
| 8680 | 38 30 20 26 26 20 21 63 74 72 6c 20 26 26 20 21 61 6c 74 29 20 7b 00 00 00 2c 20 20 20 20 20 20 | 80.&&.!ctrl.&&.!alt).{...,...... |
| 86a0 | 20 20 62 75 66 5b 30 5d 20 3d 20 73 68 69 66 74 20 3f 20 74 6f 75 70 70 65 72 28 73 79 6d 29 20 | ..buf[0].=.shift.?.toupper(sym). |
| 86c0 | 3a 20 73 79 6d 3b 00 00 00 10 20 20 20 20 20 20 20 20 6c 65 6e 20 3d 20 31 3b 00 00 00 31 20 20 | :.sym;............len.=.1;...1.. |
| 86e0 | 20 20 7d 20 65 6c 73 65 20 69 66 20 28 73 79 6d 20 3e 3d 20 30 78 38 30 20 26 26 20 73 79 6d 20 | ..}.else.if.(sym.>=.0x80.&&.sym. |
| 8700 | 3c 20 30 78 31 31 30 30 30 30 30 30 29 20 7b 00 00 00 23 20 20 20 20 20 20 20 20 6c 65 6e 20 3d | <.0x11000000).{...#........len.= |
| 8720 | 20 75 74 66 38 65 6e 63 6f 64 65 28 73 79 6d 2c 20 62 75 66 29 3b 00 00 00 14 20 20 20 20 20 20 | .utf8encode(sym,.buf);.......... |
| 8740 | 20 20 28 76 6f 69 64 29 73 68 69 66 74 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 25 20 | ..(void)shift;........}.......%. |
| 8760 | 20 20 20 69 66 20 28 6c 65 6e 20 3e 20 30 29 20 70 74 79 5f 77 72 69 74 65 28 62 75 66 2c 20 6c | ...if.(len.>.0).pty_write(buf,.l |
| 8780 | 65 6e 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1f 73 74 61 74 69 63 20 76 6f 69 64 20 78 65 76 | en);....}........static.void.xev |
| 87a0 | 65 6e 74 5f 6c 6f 6f 70 28 76 6f 69 64 29 20 7b 00 00 00 1c 20 20 20 20 78 63 62 5f 67 65 6e 65 | ent_loop(void).{........xcb_gene |
| 87c0 | 72 69 63 5f 65 76 65 6e 74 5f 74 20 2a 65 76 3b 00 00 00 2e 20 20 20 20 77 68 69 6c 65 20 28 28 | ric_event_t.*ev;........while.(( |
| 87e0 | 65 76 20 3d 20 78 63 62 5f 70 6f 6c 6c 5f 66 6f 72 5f 65 76 65 6e 74 28 77 2e 63 6f 6e 29 29 29 | ev.=.xcb_poll_for_event(w.con))) |
| 8800 | 20 7b 00 00 00 2c 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 65 76 2d 3e 72 65 73 70 6f 6e | .{...,........switch.(ev->respon |
| 8820 | 73 65 5f 74 79 70 65 20 26 20 7e 30 78 38 30 29 20 7b 00 00 00 18 20 20 20 20 20 20 20 20 63 61 | se_type.&.~0x80).{............ca |
| 8840 | 73 65 20 58 43 42 5f 45 58 50 4f 53 45 3a 00 00 00 18 20 20 20 20 20 20 20 20 20 20 20 20 64 69 | se.XCB_EXPOSE:................di |
| 8860 | 72 74 79 5f 61 6c 6c 28 29 3b 00 00 00 12 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b | rty_all();................break; |
| 8880 | 00 00 00 1b 20 20 20 20 20 20 20 20 63 61 73 65 20 58 43 42 5f 4b 45 59 5f 50 52 45 53 53 3a 00 | ............case.XCB_KEY_PRESS:. |
| 88a0 | 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 68 61 6e 64 6c 65 5f 6b 65 79 28 28 78 63 62 5f 6b | ..4............handle_key((xcb_k |
| 88c0 | 65 79 5f 70 72 65 73 73 5f 65 76 65 6e 74 5f 74 20 2a 29 65 76 29 3b 00 00 00 12 20 20 20 20 20 | ey_press_event_t.*)ev);......... |
| 88e0 | 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 24 20 20 20 20 20 20 20 20 63 61 73 65 20 58 43 | .......break;...$........case.XC |
| 8900 | 42 5f 43 4f 4e 46 49 47 55 52 45 5f 4e 4f 54 49 46 59 3a 20 7b 00 00 00 52 20 20 20 20 20 20 20 | B_CONFIGURE_NOTIFY:.{...R....... |
| 8920 | 20 20 20 20 20 78 63 62 5f 63 6f 6e 66 69 67 75 72 65 5f 6e 6f 74 69 66 79 5f 65 76 65 6e 74 5f | .....xcb_configure_notify_event_ |
| 8940 | 74 20 2a 63 6e 20 3d 20 28 78 63 62 5f 63 6f 6e 66 69 67 75 72 65 5f 6e 6f 74 69 66 79 5f 65 76 | t.*cn.=.(xcb_configure_notify_ev |
| 8960 | 65 6e 74 5f 74 20 2a 29 65 76 3b 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 6e | ent_t.*)ev;...:............int.n |
| 8980 | 65 77 63 6f 6c 73 20 3d 20 28 63 6e 2d 3e 77 69 64 74 68 20 2d 20 32 20 2a 20 42 4f 52 44 45 52 | ewcols.=.(cn->width.-.2.*.BORDER |
| 89a0 | 29 20 2f 20 77 2e 63 77 3b 00 00 00 3b 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 6e 65 77 | )./.w.cw;...;............int.new |
| 89c0 | 72 6f 77 73 20 3d 20 28 63 6e 2d 3e 68 65 69 67 68 74 20 2d 20 32 20 2a 20 42 4f 52 44 45 52 29 | rows.=.(cn->height.-.2.*.BORDER) |
| 89e0 | 20 2f 20 77 2e 63 68 3b 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6e 65 77 63 | ./.w.ch;...)............if.(newc |
| 8a00 | 6f 6c 73 20 3c 20 31 29 20 6e 65 77 63 6f 6c 73 20 3d 20 31 3b 00 00 00 29 20 20 20 20 20 20 20 | ols.<.1).newcols.=.1;...)....... |
| 8a20 | 20 20 20 20 20 69 66 20 28 6e 65 77 72 6f 77 73 20 3c 20 31 29 20 6e 65 77 72 6f 77 73 20 3d 20 | .....if.(newrows.<.1).newrows.=. |
| 8a40 | 31 3b 00 00 00 1f 20 20 20 20 20 20 20 20 20 20 20 20 77 2e 77 69 6e 77 20 3d 20 63 6e 2d 3e 77 | 1;................w.winw.=.cn->w |
| 8a60 | 69 64 74 68 3b 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 77 2e 77 69 6e 68 20 3d 20 63 6e | idth;................w.winh.=.cn |
| 8a80 | 2d 3e 68 65 69 67 68 74 3b 00 00 00 1d 20 20 20 20 20 20 20 20 20 20 20 20 77 2e 63 6f 6c 73 20 | ->height;................w.cols. |
| 8aa0 | 3d 20 6e 65 77 63 6f 6c 73 3b 00 00 00 1d 20 20 20 20 20 20 20 20 20 20 20 20 77 2e 72 6f 77 73 | =.newcols;................w.rows |
| 8ac0 | 20 3d 20 6e 65 77 72 6f 77 73 3b 00 00 00 2a 20 20 20 20 20 20 20 20 20 20 20 20 74 65 72 6d 5f | .=.newrows;...*............term_ |
| 8ae0 | 72 65 73 69 7a 65 28 6e 65 77 72 6f 77 73 2c 20 6e 65 77 63 6f 6c 73 29 3b 00 00 00 12 20 20 20 | resize(newrows,.newcols);....... |
| 8b00 | 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 22 | .........break;............}..." |
| 8b20 | 20 20 20 20 20 20 20 20 63 61 73 65 20 58 43 42 5f 43 4c 49 45 4e 54 5f 4d 45 53 53 41 47 45 3a | ........case.XCB_CLIENT_MESSAGE: |
| 8b40 | 20 7b 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 20 20 78 63 62 5f 63 6c 69 65 6e 74 5f 6d 65 73 | .{...N............xcb_client_mes |
| 8b60 | 73 61 67 65 5f 65 76 65 6e 74 5f 74 20 2a 63 6d 20 3d 20 28 78 63 62 5f 63 6c 69 65 6e 74 5f 6d | sage_event_t.*cm.=.(xcb_client_m |
| 8b80 | 65 73 73 61 67 65 5f 65 76 65 6e 74 5f 74 20 2a 29 65 76 3b 00 00 00 15 20 20 20 20 20 20 20 20 | essage_event_t.*)ev;............ |
| 8ba0 | 20 20 20 20 28 76 6f 69 64 29 63 6d 3b 00 00 00 18 20 20 20 20 20 20 20 20 20 20 20 20 72 75 6e | ....(void)cm;................run |
| 8bc0 | 6e 69 6e 67 20 3d 20 30 3b 00 00 00 12 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 | ning.=.0;................break;. |
| 8be0 | 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 11 20 20 20 | ...........}............}....... |
| 8c00 | 20 20 20 20 20 66 72 65 65 28 65 76 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 | .....free(ev);........}....}.... |
| 8c20 | 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 73 69 67 63 68 6c 64 5f 68 61 6e 64 6c 65 72 28 | ...&static.void.sigchld_handler( |
| 8c40 | 69 6e 74 20 73 69 67 29 20 7b 00 00 00 0e 20 20 20 20 28 76 6f 69 64 29 73 69 67 3b 00 00 00 0f | int.sig).{........(void)sig;.... |
| 8c60 | 20 20 20 20 69 6e 74 20 73 74 61 74 75 73 3b 00 00 00 27 20 20 20 20 77 61 69 74 70 69 64 28 70 | ....int.status;...'....waitpid(p |
| 8c80 | 74 79 2e 70 69 64 2c 20 26 73 74 61 74 75 73 2c 20 57 4e 4f 48 41 4e 47 29 3b 00 00 00 10 20 20 | ty.pid,.&status,.WNOHANG);...... |
| 8ca0 | 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d | ..running.=.0;....}........int.m |
| 8cc0 | 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 1a 20 20 20 20 73 65 74 6c 6f 63 61 6c 65 28 4c 43 5f | ain(void).{........setlocale(LC_ |
| 8ce0 | 41 4c 4c 2c 20 22 22 29 3b 00 00 00 25 20 20 20 20 73 69 67 6e 61 6c 28 53 49 47 43 48 4c 44 2c | ALL,."");...%....signal(SIGCHLD, |
| 8d00 | 20 73 69 67 63 68 6c 64 5f 68 61 6e 64 6c 65 72 29 3b 00 00 00 00 00 00 00 0f 20 20 20 20 78 63 | .sigchld_handler);............xc |
| 8d20 | 62 5f 69 6e 69 74 28 29 3b 00 00 00 19 20 20 20 20 63 75 72 5f 66 67 20 3d 20 77 2e 64 65 66 61 | b_init();........cur_fg.=.w.defa |
| 8d40 | 75 6c 74 66 67 3b 00 00 00 19 20 20 20 20 63 75 72 5f 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 | ultfg;........cur_bg.=.w.default |
| 8d60 | 62 67 3b 00 00 00 11 20 20 20 20 63 75 72 5f 61 74 74 72 20 3d 20 30 3b 00 00 00 00 00 00 00 25 | bg;........cur_attr.=.0;.......% |
| 8d80 | 20 20 20 20 74 65 72 6d 5f 69 6e 69 74 28 26 74 65 72 6d 2c 20 77 2e 72 6f 77 73 2c 20 77 2e 63 | ....term_init(&term,.w.rows,.w.c |
| 8da0 | 6f 6c 73 29 3b 00 00 00 28 20 20 20 20 74 65 72 6d 5f 69 6e 69 74 28 26 61 6c 74 74 65 72 6d 2c | ols);...(....term_init(&altterm, |
| 8dc0 | 20 77 2e 72 6f 77 73 2c 20 77 2e 63 6f 6c 73 29 3b 00 00 00 00 00 00 00 0f 20 20 20 20 70 74 79 | .w.rows,.w.cols);............pty |
| 8de0 | 5f 69 6e 69 74 28 29 3b 00 00 00 00 00 00 00 15 20 20 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 | _init();............while.(runni |
| 8e00 | 6e 67 29 20 7b 00 00 00 14 20 20 20 20 20 20 20 20 66 64 5f 73 65 74 20 72 66 64 73 3b 00 00 00 | ng).{............fd_set.rfds;... |
| 8e20 | 17 20 20 20 20 20 20 20 20 46 44 5f 5a 45 52 4f 28 26 72 66 64 73 29 3b 00 00 00 1f 20 20 20 20 | .........FD_ZERO(&rfds);........ |
| 8e40 | 20 20 20 20 46 44 5f 53 45 54 28 70 74 79 2e 6d 66 64 2c 20 26 72 66 64 73 29 3b 00 00 00 31 20 | ....FD_SET(pty.mfd,.&rfds);...1. |
| 8e60 | 20 20 20 20 20 20 20 69 6e 74 20 78 66 64 20 3d 20 78 63 62 5f 67 65 74 5f 66 69 6c 65 5f 64 65 | .......int.xfd.=.xcb_get_file_de |
| 8e80 | 73 63 72 69 70 74 6f 72 28 77 2e 63 6f 6e 29 3b 00 00 00 1b 20 20 20 20 20 20 20 20 46 44 5f 53 | scriptor(w.con);............FD_S |
| 8ea0 | 45 54 28 78 66 64 2c 20 26 72 66 64 73 29 3b 00 00 00 32 20 20 20 20 20 20 20 20 69 6e 74 20 6d | ET(xfd,.&rfds);...2........int.m |
| 8ec0 | 61 78 66 64 20 3d 20 70 74 79 2e 6d 66 64 20 3e 20 78 66 64 20 3f 20 70 74 79 2e 6d 66 64 20 3a | axfd.=.pty.mfd.>.xfd.?.pty.mfd.: |
| 8ee0 | 20 78 66 64 3b 00 00 00 00 00 00 00 29 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 74 69 6d 65 | .xfd;.......)........struct.time |
| 8f00 | 76 61 6c 20 74 76 20 3d 20 7b 20 30 2c 20 31 30 30 30 30 20 7d 3b 00 00 00 3a 20 20 20 20 20 20 | val.tv.=.{.0,.10000.};...:...... |
| 8f20 | 20 20 69 6e 74 20 6e 20 3d 20 73 65 6c 65 63 74 28 6d 61 78 66 64 20 2b 20 31 2c 20 26 72 66 64 | ..int.n.=.select(maxfd.+.1,.&rfd |
| 8f40 | 73 2c 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 2c 20 26 74 76 29 3b 00 00 00 3b 20 20 20 20 20 20 20 20 | s,.NULL,.NULL,.&tv);...;........ |
| 8f60 | 69 66 20 28 6e 20 3c 20 30 29 20 7b 20 69 66 20 28 65 72 72 6e 6f 20 3d 3d 20 45 49 4e 54 52 29 | if.(n.<.0).{.if.(errno.==.EINTR) |
| 8f80 | 20 63 6f 6e 74 69 6e 75 65 3b 20 62 72 65 61 6b 3b 20 7d 00 00 00 00 00 00 00 34 20 20 20 20 20 | .continue;.break;.}.......4..... |
| 8fa0 | 20 20 20 69 66 20 28 46 44 5f 49 53 53 45 54 28 70 74 79 2e 6d 66 64 2c 20 26 72 66 64 73 29 29 | ...if.(FD_ISSET(pty.mfd,.&rfds)) |
| 8fc0 | 20 70 72 6f 63 65 73 73 5f 70 74 79 28 29 3b 00 00 00 16 20 20 20 20 20 20 20 20 78 65 76 65 6e | .process_pty();............xeven |
| 8fe0 | 74 5f 6c 6f 6f 70 28 29 3b 00 00 00 00 00 00 00 0f 20 20 20 20 20 20 20 20 64 72 61 77 28 29 3b | t_loop();................draw(); |
| 9000 | 00 00 00 19 20 20 20 20 20 20 20 20 78 63 62 5f 66 6c 75 73 68 28 77 2e 63 6f 6e 29 3b 00 00 00 | ............xcb_flush(w.con);... |
| 9020 | 05 20 20 20 20 7d 00 00 00 00 00 00 00 15 20 20 20 20 74 65 72 6d 5f 66 72 65 65 28 26 74 65 72 | .....}............term_free(&ter |
| 9040 | 6d 29 3b 00 00 00 32 20 20 20 20 69 66 20 28 63 75 72 5f 74 65 72 6d 20 3d 3d 20 26 61 6c 74 74 | m);...2....if.(cur_term.==.&altt |
| 9060 | 65 72 6d 29 20 74 65 72 6d 5f 66 72 65 65 28 26 61 6c 74 74 65 72 6d 29 3b 00 00 00 1b 20 20 20 | erm).term_free(&altterm);....... |
| 9080 | 20 58 66 74 44 72 61 77 44 65 73 74 72 6f 79 28 77 2e 64 72 61 77 29 3b 00 00 00 22 20 20 20 20 | .XftDrawDestroy(w.draw);...".... |
| 90a0 | 78 63 62 5f 6b 65 79 5f 73 79 6d 62 6f 6c 73 5f 66 72 65 65 28 77 2e 6b 73 79 6d 73 29 3b 00 00 | xcb_key_symbols_free(w.ksyms);.. |
| 90c0 | 00 1a 20 20 20 20 78 63 62 5f 64 69 73 63 6f 6e 6e 65 63 74 28 77 2e 63 6f 6e 29 3b 00 00 00 0d | ......xcb_disconnect(w.con);.... |
| 90e0 | 20 20 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 | ....return.0;....}5............. |
| 9100 | 00 00 d2 03 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 79 83 00 00 00 00 | ..........................y..... |
| 9120 | 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 00 00 00 | ..........5._................... |
| 9140 | 00 02 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 91a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 91c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 91e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 92a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 a0 f7 39 04 01 00 00 00 00 00 f5 18 00 00 03 | ................i..9............ |
| 92c0 | ad 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 03 ae 00 00 00 00 00 00 00 00 00 | ................................ |
| 92e0 | 00 00 00 f5 18 00 00 03 39 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 23 20 20 20 20 69 66 20 | ........9...............#....if. |
| 9300 | 28 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3e 3d 20 63 6f 6c 73 29 20 f5 18 00 00 | (cur_term->cur.col.>=.cols)..... |
| 9320 | 03 3a 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 bf 00 00 00 00 00 00 00 00 00 00 00 01 | .:.............................. |
| 9340 | 00 00 00 06 20 20 20 20 20 20 f5 18 00 00 02 c0 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 | ................................ |
| 9360 | 02 5e 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 3b 20 20 20 20 20 20 20 20 69 66 20 28 62 79 | .^...............;........if.(by |
| 9380 | 74 65 20 3d 3d 20 27 5c 6e 27 20 7c 7c 20 62 79 74 65 20 3d 3d 20 27 5c 76 27 20 7c 7c 20 62 79 | te.==.'\n'.||.byte.==.'\v'.||.by |
| 93a0 | 74 65 20 3d 3d 20 27 5c 66 27 29 20 7b f5 18 00 00 02 5f 00 00 00 00 00 00 00 00 00 00 00 00 f5 | te.==.'\f').{....._............. |
| 93c0 | 18 00 00 01 ff 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 41 20 20 20 20 20 20 20 20 20 20 20 | ....................A........... |
| 93e0 | 20 72 6f 77 2d 3e 63 65 6c 6c 73 5b 6a 5d 2e 63 6f 64 65 70 6f 69 6e 74 20 3d 20 27 20 27 3b 20 | .row->cells[j].codepoint.=.'.';. |
| 9400 | 72 6f 77 2d 3e 63 65 6c 6c 73 5b 6a 5d 2e 61 74 74 72 20 3d 20 30 f5 18 00 00 02 00 00 00 00 00 | row->cells[j].attr.=.0.......... |
| 9420 | 00 00 00 00 00 00 00 00 f5 18 00 00 01 a4 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 48 20 20 | .............................H.. |
| 9440 | 20 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3d 20 63 6f 6c 20 3c 20 30 20 3f 20 | ..cur_term->cur.col.=.col.<.0.?. |
| 9460 | 30 20 3a 20 28 63 6f 6c 20 3e 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 3f 20 63 75 | 0.:.(col.>=.cur_term->ncols.?.cu |
| 9480 | 72 5f 74 65 72 6d f5 18 00 00 01 a5 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 28 00 00 | r_term.......................(.. |
| 94a0 | 00 00 00 00 00 00 00 00 00 01 00 00 00 16 20 20 20 20 78 63 62 5f 73 69 7a 65 5f 68 69 6e 74 73 | ..................xcb_size_hints |
| 94c0 | 5f 74 20 68 f5 18 00 00 01 29 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 aa 00 00 00 00 | _t.h.....)...................... |
| 94e0 | 00 00 00 00 00 00 00 01 00 00 00 15 20 20 20 20 20 20 20 20 30 78 30 30 30 30 66 66 2c 20 30 78 | ....................0x0000ff,.0x |
| 9500 | 66 f5 18 00 00 00 ab 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 | f............................... |
| 9520 | 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 | ...........................5.... |
| 9540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 aa 00 00 00 15 00 00 00 00 00 00 00 00 | ................................ |
| 9560 | 00 00 00 00 00 00 00 00 00 00 00 f9 0f 00 00 00 00 00 00 f5 18 00 00 00 00 aa 00 00 00 15 00 00 | ................................ |
| 9580 | 00 00 00 00 00 00 00 00 00 7e 00 00 00 16 00 00 00 f9 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........~...................... |
| 95a0 | 00 ff 0f 00 00 00 00 00 00 f5 18 00 00 00 00 28 01 00 00 16 00 00 00 00 00 00 00 00 00 00 00 7c | ...............(...............| |
| 95c0 | 00 00 00 48 00 00 00 f8 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 f5 | ...H............................ |
| 95e0 | 18 00 00 00 00 a4 01 00 00 48 00 00 00 00 00 00 00 00 00 00 00 5b 00 00 00 41 00 00 00 f8 2f 00 | .........H...........[...A..../. |
| 9600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 f5 18 00 00 00 00 ff 01 00 00 41 | ...............................A |
| 9620 | 00 00 00 00 00 00 00 00 00 00 00 5f 00 00 00 3b 00 00 00 f8 3f 00 00 00 00 00 00 00 00 00 00 00 | ..........._...;....?........... |
| 9640 | 00 00 00 ff 0f 00 00 00 00 00 00 f5 18 00 00 00 00 5e 02 00 00 3b 00 00 00 00 00 00 00 00 00 00 | .................^...;.......... |
| 9660 | 00 61 00 00 00 06 00 00 00 f7 4f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 0f 00 00 00 00 00 | .a........O..................... |
| 9680 | 00 f5 18 00 00 00 00 bf 02 00 00 06 00 00 00 00 00 00 00 00 00 00 00 7a 00 00 00 23 00 00 00 f6 | .......................z...#.... |
| 96a0 | 5f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 0f 00 00 00 00 00 00 f5 18 00 00 00 00 39 03 00 | _............................9.. |
| 96c0 | 00 23 00 00 00 00 00 00 00 00 00 00 00 74 00 00 00 00 00 00 00 f5 6f 00 00 00 00 00 00 00 00 00 | .#...........t........o......... |
| 96e0 | 00 00 00 00 00 ff 0f 00 00 00 00 00 00 f5 18 00 00 00 00 ad 03 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9700 | 00 00 00 24 00 00 00 01 00 00 00 f4 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70 03 00 00 00 | ...$.......................p.... |
| 9720 | 00 00 00 35 81 5f d0 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 03 d2 00 | ...5._.......................... |
| 9740 | 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 97a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 97c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 97e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98a0 | 00 00 00 00 00 00 00 00 00 69 a0 f7 3a 04 01 00 00 00 02 00 f5 18 00 00 00 16 00 00 05 3c 00 00 | .........i..:................<.. |
| 98c0 | 03 d2 00 00 03 bb 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 78 63 62 2f 78 63 62 2e 68 3e 00 00 | ..........#include.<xcb/xcb.h>.. |
| 98e0 | 00 1c 23 69 6e 63 6c 75 64 65 20 3c 78 63 62 2f 78 63 62 5f 6b 65 79 73 79 6d 73 2e 68 3e 00 00 | ..#include.<xcb/xcb_keysyms.h>.. |
| 9900 | 00 1a 23 69 6e 63 6c 75 64 65 20 3c 78 63 62 2f 78 63 62 5f 69 63 63 63 6d 2e 68 3e 00 00 00 17 | ..#include.<xcb/xcb_icccm.h>.... |
| 9920 | 23 69 6e 63 6c 75 64 65 20 3c 58 31 31 2f 6b 65 79 73 79 6d 2e 68 3e 00 00 00 18 23 69 6e 63 6c | #include.<X11/keysym.h>....#incl |
| 9940 | 75 64 65 20 3c 58 31 31 2f 58 66 74 2f 58 66 74 2e 68 3e 00 00 00 19 23 69 6e 63 6c 75 64 65 20 | ude.<X11/Xft/Xft.h>....#include. |
| 9960 | 3c 58 31 31 2f 58 6c 69 62 2d 78 63 62 2e 68 3e 00 00 00 00 00 00 00 28 23 64 65 66 69 6e 65 20 | <X11/Xlib-xcb.h>.......(#define. |
| 9980 | 46 4f 4e 54 5f 4e 41 4d 45 20 20 20 20 22 6d 6f 6e 6f 73 70 61 63 65 3a 73 69 7a 65 3d 31 32 22 | FONT_NAME...."monospace:size=12" |
| 99a0 | 00 00 00 1e 23 64 65 66 69 6e 65 20 53 48 45 4c 4c 20 20 20 20 20 20 20 20 22 2f 62 69 6e 2f 73 | ....#define.SHELL........"/bin/s |
| 99c0 | 68 22 00 00 00 19 23 64 65 66 69 6e 65 20 53 43 52 4f 4c 4c 42 41 43 4b 20 20 20 31 30 30 30 00 | h"....#define.SCROLLBACK...1000. |
| 99e0 | 00 00 16 23 64 65 66 69 6e 65 20 54 41 42 5f 57 49 44 54 48 20 20 20 20 38 00 00 00 16 23 64 65 | ...#define.TAB_WIDTH....8....#de |
| 9a00 | 66 69 6e 65 20 42 4f 52 44 45 52 20 20 20 20 20 20 20 32 00 00 00 00 00 00 00 1f 23 64 65 66 69 | fine.BORDER.......2........#defi |
| 9a20 | 6e 65 20 41 54 54 52 5f 42 4f 4c 44 20 20 20 20 20 20 28 31 20 3c 3c 20 30 29 00 00 00 1f 23 64 | ne.ATTR_BOLD......(1.<<.0)....#d |
| 9a40 | 65 66 69 6e 65 20 41 54 54 52 5f 55 4e 44 45 52 4c 49 4e 45 20 28 31 20 3c 3c 20 31 29 00 00 00 | efine.ATTR_UNDERLINE.(1.<<.1)... |
| 9a60 | 1f 23 64 65 66 69 6e 65 20 41 54 54 52 5f 52 45 56 45 52 53 45 20 20 20 28 31 20 3c 3c 20 32 29 | .#define.ATTR_REVERSE...(1.<<.2) |
| 9a80 | 00 00 00 1f 23 64 65 66 69 6e 65 20 41 54 54 52 5f 49 54 41 4c 49 43 20 20 20 20 28 31 20 3c 3c | ....#define.ATTR_ITALIC....(1.<< |
| 9aa0 | 20 33 29 00 00 00 1f 23 64 65 66 69 6e 65 20 41 54 54 52 5f 42 4c 49 4e 4b 20 20 20 20 20 28 31 | .3)....#define.ATTR_BLINK.....(1 |
| 9ac0 | 20 3c 3c 20 34 29 00 00 00 1f 23 64 65 66 69 6e 65 20 41 54 54 52 5f 44 49 52 54 59 20 20 20 20 | .<<.4)....#define.ATTR_DIRTY.... |
| 9ae0 | 20 28 31 20 3c 3c 20 35 29 00 00 00 00 00 00 00 17 74 79 70 65 64 65 66 20 75 69 6e 74 33 32 5f | .(1.<<.5)........typedef.uint32_ |
| 9b00 | 74 20 43 6f 6c 6f 72 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b | t.Color;........typedef.struct.{ |
| 9b20 | 00 00 00 17 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 6f 64 65 70 6f 69 6e 74 3b 00 00 00 12 20 | ........uint32_t.codepoint;..... |
| 9b40 | 20 20 20 75 69 6e 74 31 36 5f 74 20 61 74 74 72 3b 00 00 00 10 20 20 20 20 43 6f 6c 6f 72 20 20 | ...uint16_t.attr;........Color.. |
| 9b60 | 20 20 66 67 3b 00 00 00 10 20 20 20 20 43 6f 6c 6f 72 20 20 20 20 62 67 3b 00 00 00 07 7d 20 43 | ..fg;........Color....bg;....}.C |
| 9b80 | 65 6c 6c 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 0d | ell;........typedef.struct.{.... |
| 9ba0 | 20 20 20 20 69 6e 74 20 78 2c 20 79 3b 00 00 00 08 7d 20 50 6f 69 6e 74 3b 00 00 00 00 00 00 00 | ....int.x,.y;....}.Point;....... |
| 9bc0 | 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 11 20 20 20 20 69 6e 74 20 72 6f 77 | .typedef.struct.{........int.row |
| 9be0 | 2c 20 63 6f 6c 3b 00 00 00 06 7d 20 50 6f 73 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 | ,.col;....}.Pos;........typedef. |
| 9c00 | 73 74 72 75 63 74 20 7b 00 00 00 10 20 20 20 20 43 65 6c 6c 20 2a 63 65 6c 6c 73 3b 00 00 00 10 | struct.{........Cell.*cells;.... |
| 9c20 | 20 20 20 20 69 6e 74 20 20 20 20 63 6f 6c 73 3b 00 00 00 11 20 20 20 20 69 6e 74 20 20 20 20 64 | ....int....cols;........int....d |
| 9c40 | 69 72 74 79 3b 00 00 00 06 7d 20 52 6f 77 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 | irty;....}.Row;........typedef.s |
| 9c60 | 74 72 75 63 74 20 7b 00 00 00 11 20 20 20 20 52 6f 77 20 20 20 20 2a 72 6f 77 73 3b 00 00 00 12 | truct.{........Row....*rows;.... |
| 9c80 | 20 20 20 20 69 6e 74 20 20 20 20 20 6e 72 6f 77 73 3b 00 00 00 12 20 20 20 20 69 6e 74 20 20 20 | ....int.....nrows;........int... |
| 9ca0 | 20 20 6e 63 6f 6c 73 3b 00 00 00 10 20 20 20 20 69 6e 74 20 20 20 20 20 74 6f 70 3b 00 00 00 10 | ..ncols;........int.....top;.... |
| 9cc0 | 20 20 20 20 69 6e 74 20 20 20 20 20 62 6f 74 3b 00 00 00 0d 20 20 20 20 50 6f 73 20 20 63 75 72 | ....int.....bot;........Pos..cur |
| 9ce0 | 3b 00 00 00 0f 20 20 20 20 50 6f 73 20 20 73 61 76 65 64 3b 00 00 00 11 20 20 20 20 69 6e 74 20 | ;........Pos..saved;........int. |
| 9d00 | 20 20 20 20 6d 6f 64 65 3b 00 00 00 14 20 20 20 20 69 6e 74 20 20 20 20 20 63 68 61 72 73 65 74 | ....mode;........int.....charset |
| 9d20 | 3b 00 00 00 07 7d 20 54 65 72 6d 3b 00 00 00 00 00 00 00 1f 23 64 65 66 69 6e 65 20 4d 4f 44 45 | ;....}.Term;........#define.MODE |
| 9d40 | 5f 57 52 41 50 20 20 20 20 20 20 28 31 20 3c 3c 20 30 29 00 00 00 1f 23 64 65 66 69 6e 65 20 4d | _WRAP......(1.<<.0)....#define.M |
| 9d60 | 4f 44 45 5f 49 4e 53 45 52 54 20 20 20 20 28 31 20 3c 3c 20 31 29 00 00 00 1f 23 64 65 66 69 6e | ODE_INSERT....(1.<<.1)....#defin |
| 9d80 | 65 20 4d 4f 44 45 5f 41 50 50 4b 45 59 50 41 44 20 28 31 20 3c 3c 20 32 29 00 00 00 1f 23 64 65 | e.MODE_APPKEYPAD.(1.<<.2)....#de |
| 9da0 | 66 69 6e 65 20 4d 4f 44 45 5f 41 4c 54 53 43 52 45 45 4e 20 28 31 20 3c 3c 20 33 29 00 00 00 1f | fine.MODE_ALTSCREEN.(1.<<.3).... |
| 9dc0 | 23 64 65 66 69 6e 65 20 4d 4f 44 45 5f 43 52 4c 46 20 20 20 20 20 20 28 31 20 3c 3c 20 34 29 00 | #define.MODE_CRLF......(1.<<.4). |
| 9de0 | 00 00 1f 23 64 65 66 69 6e 65 20 4d 4f 44 45 5f 45 43 48 4f 20 20 20 20 20 20 28 31 20 3c 3c 20 | ...#define.MODE_ECHO......(1.<<. |
| 9e00 | 35 29 00 00 00 1f 23 64 65 66 69 6e 65 20 4d 4f 44 45 5f 4f 52 49 47 49 4e 20 20 20 20 28 31 20 | 5)....#define.MODE_ORIGIN....(1. |
| 9e20 | 3c 3c 20 36 29 00 00 00 1f 23 64 65 66 69 6e 65 20 4d 4f 44 45 5f 4d 4f 55 53 45 42 54 4e 20 20 | <<.6)....#define.MODE_MOUSEBTN.. |
| 9e40 | 28 31 20 3c 3c 20 37 29 00 00 00 1f 23 64 65 66 69 6e 65 20 4d 4f 44 45 5f 4d 4f 55 53 45 4d 4f | (1.<<.7)....#define.MODE_MOUSEMO |
| 9e60 | 54 20 20 28 31 20 3c 3c 20 38 29 00 00 00 1f 23 64 65 66 69 6e 65 20 4d 4f 44 45 5f 52 45 56 45 | T..(1.<<.8)....#define.MODE_REVE |
| 9e80 | 52 53 45 20 20 20 28 31 20 3c 3c 20 39 29 00 00 00 22 23 64 65 66 69 6e 65 20 4d 4f 44 45 5f 48 | RSE...(1.<<.9)..."#define.MODE_H |
| 9ea0 | 49 44 45 5f 43 55 52 53 4f 52 20 28 31 20 3c 3c 20 31 30 29 00 00 00 20 23 64 65 66 69 6e 65 20 | IDE_CURSOR.(1.<<.10)....#define. |
| 9ec0 | 4d 4f 44 45 5f 42 52 41 43 50 41 53 54 45 20 28 31 20 3c 3c 20 31 31 29 00 00 00 00 00 00 00 10 | MODE_BRACPASTE.(1.<<.11)........ |
| 9ee0 | 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 18 20 20 20 20 44 69 73 70 6c 61 79 20 | typedef.struct.{........Display. |
| 9f00 | 20 20 20 20 20 20 20 2a 64 70 79 3b 00 00 00 1a 20 20 20 20 78 63 62 5f 63 6f 6e 6e 65 63 74 69 | .......*dpy;........xcb_connecti |
| 9f20 | 6f 6e 5f 74 20 2a 63 6f 6e 3b 00 00 00 18 20 20 20 20 78 63 62 5f 73 63 72 65 65 6e 5f 74 20 20 | on_t.*con;........xcb_screen_t.. |
| 9f40 | 20 2a 73 63 72 3b 00 00 00 18 20 20 20 20 78 63 62 5f 77 69 6e 64 6f 77 5f 74 20 20 20 20 77 69 | .*scr;........xcb_window_t....wi |
| 9f60 | 6e 3b 00 00 00 1d 20 20 20 20 78 63 62 5f 6b 65 79 5f 73 79 6d 62 6f 6c 73 5f 74 20 2a 6b 73 79 | n;........xcb_key_symbols_t.*ksy |
| 9f80 | 6d 73 3b 00 00 00 19 20 20 20 20 58 66 74 46 6f 6e 74 20 20 20 20 20 20 20 20 2a 66 6f 6e 74 3b | ms;........XftFont........*font; |
| 9fa0 | 00 00 00 1a 20 20 20 20 58 66 74 46 6f 6e 74 20 20 20 20 20 20 20 20 2a 62 66 6f 6e 74 3b 00 00 | ........XftFont........*bfont;.. |
| 9fc0 | 00 1a 20 20 20 20 58 66 74 46 6f 6e 74 20 20 20 20 20 20 20 20 2a 69 66 6f 6e 74 3b 00 00 00 1b | ......XftFont........*ifont;.... |
| 9fe0 | 20 20 20 20 58 66 74 46 6f 6e 74 20 20 20 20 20 20 20 20 2a 62 69 66 6f 6e 74 3b 00 00 00 19 20 | ....XftFont........*bifont;..... |
| a000 | 20 20 20 58 66 74 44 72 61 77 20 20 20 20 20 20 20 20 2a 64 72 61 77 3b 00 00 00 1b 20 20 20 20 | ...XftDraw........*draw;........ |
| a020 | 56 69 73 75 61 6c 20 20 20 20 20 20 20 20 20 2a 76 69 73 75 61 6c 3b 00 00 00 1d 20 20 20 20 43 | Visual.........*visual;........C |
| a040 | 6f 6c 6f 72 6d 61 70 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 6d 61 70 3b 00 00 00 1f 20 20 20 20 | olormap........colormap;........ |
| a060 | 69 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20 63 77 2c 20 63 68 2c 20 63 61 3b 00 00 00 1f 20 | int.............cw,.ch,.ca;..... |
| a080 | 20 20 20 69 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20 77 69 6e 77 2c 20 77 69 6e 68 3b 00 00 | ...int.............winw,.winh;.. |
| a0a0 | 00 1f 20 20 20 20 69 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 73 2c 20 72 6f 77 73 | ......int.............cols,.rows |
| a0c0 | 3b 00 00 00 1e 20 20 20 20 43 6f 6c 6f 72 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 | ;........Color...........default |
| a0e0 | 66 67 3b 00 00 00 1e 20 20 20 20 43 6f 6c 6f 72 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 | fg;........Color...........defau |
| a100 | 6c 74 62 67 3b 00 00 00 1e 20 20 20 20 43 6f 6c 6f 72 20 20 20 20 20 20 20 20 20 20 20 64 65 66 | ltbg;........Color...........def |
| a120 | 61 75 6c 74 63 73 3b 00 00 00 06 7d 20 57 69 6e 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 | aultcs;....}.Win;........typedef |
| a140 | 20 73 74 72 75 63 74 20 7b 00 00 00 0f 20 20 20 20 69 6e 74 20 20 20 20 6d 66 64 3b 00 00 00 0f | .struct.{........int....mfd;.... |
| a160 | 20 20 20 20 69 6e 74 20 20 20 20 73 66 64 3b 00 00 00 0f 20 20 20 20 70 69 64 5f 74 20 20 70 69 | ....int....sfd;........pid_t..pi |
| a180 | 64 3b 00 00 00 17 20 20 20 20 63 68 61 72 20 20 20 62 75 66 5b 42 55 46 53 49 5a 5d 3b 00 00 00 | d;........char...buf[BUFSIZ];... |
| a1a0 | 12 20 20 20 20 69 6e 74 20 20 20 20 62 75 66 6c 65 6e 3b 00 00 00 06 7d 20 50 74 79 3b 00 00 00 | .....int....buflen;....}.Pty;... |
| a1c0 | 00 00 00 00 11 73 74 61 74 69 63 20 57 69 6e 20 20 20 20 20 77 3b 00 00 00 14 73 74 61 74 69 63 | .....static.Win.....w;....static |
| a1e0 | 20 54 65 72 6d 20 20 20 20 74 65 72 6d 3b 00 00 00 17 73 74 61 74 69 63 20 54 65 72 6d 20 20 20 | .Term....term;....static.Term... |
| a200 | 20 61 6c 74 74 65 72 6d 3b 00 00 00 20 73 74 61 74 69 63 20 54 65 72 6d 20 20 20 2a 63 75 72 5f | .altterm;....static.Term...*cur_ |
| a220 | 74 65 72 6d 20 3d 20 26 74 65 72 6d 3b 00 00 00 13 73 74 61 74 69 63 20 50 74 79 20 20 20 20 20 | term.=.&term;....static.Pty..... |
| a240 | 70 74 79 3b 00 00 00 1b 73 74 61 74 69 63 20 69 6e 74 20 20 20 20 20 72 75 6e 6e 69 6e 67 20 3d | pty;....static.int.....running.= |
| a260 | 20 31 3b 00 00 00 00 00 00 00 1e 73 74 61 74 69 63 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 | .1;........static.uint32_t.color |
| a280 | 32 35 36 5b 32 35 36 5d 3b 00 00 00 23 73 74 61 74 69 63 20 58 66 74 43 6f 6c 6f 72 20 78 66 74 | 256[256];...#static.XftColor.xft |
| a2a0 | 63 6f 6c 6f 72 5b 32 35 36 20 2b 20 31 36 5d 3b 00 00 00 00 00 00 00 27 73 74 61 74 69 63 20 76 | color[256.+.16];.......'static.v |
| a2c0 | 6f 69 64 20 64 69 65 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 66 6d 74 2c 20 2e 2e 2e 29 20 7b 00 | oid.die(const.char.*fmt,....).{. |
| a2e0 | 00 00 0f 20 20 20 20 76 61 5f 6c 69 73 74 20 61 70 3b 00 00 00 16 20 20 20 20 76 61 5f 73 74 61 | .......va_list.ap;........va_sta |
| a300 | 72 74 28 61 70 2c 20 66 6d 74 29 3b 00 00 00 1e 20 20 20 20 76 66 70 72 69 6e 74 66 28 73 74 64 | rt(ap,.fmt);........vfprintf(std |
| a320 | 65 72 72 2c 20 66 6d 74 2c 20 61 70 29 3b 00 00 00 0f 20 20 20 20 76 61 5f 65 6e 64 28 61 70 29 | err,.fmt,.ap);........va_end(ap) |
| a340 | 3b 00 00 00 18 20 20 20 20 66 70 75 74 63 28 27 5c 6e 27 2c 20 73 74 64 65 72 72 29 3b 00 00 00 | ;........fputc('\n',.stderr);... |
| a360 | 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3c 73 74 61 74 69 63 | .....exit(1);....}.......<static |
| a380 | 20 69 6e 74 20 75 74 66 38 64 65 63 6f 64 65 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 75 | .int.utf8decode(const.char.*s,.u |
| a3a0 | 69 6e 74 33 32 5f 74 20 2a 75 2c 20 69 6e 74 20 6c 65 6e 29 20 7b 00 00 00 1b 20 20 20 20 75 6e | int32_t.*u,.int.len).{........un |
| a3c0 | 73 69 67 6e 65 64 20 63 68 61 72 20 63 20 3d 20 73 5b 30 5d 3b 00 00 00 0a 20 20 20 20 69 6e 74 | signed.char.c.=.s[0];........int |
| a3e0 | 20 6e 3b 00 00 00 2c 20 20 20 20 69 66 20 28 63 20 3c 20 30 78 38 30 29 20 20 20 20 20 20 7b 20 | .n;...,....if.(c.<.0x80)......{. |
| a400 | 2a 75 20 3d 20 63 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 00 00 31 20 20 20 20 65 6c 73 65 20 | *u.=.c;.return.1;.}...1....else. |
| a420 | 69 66 20 28 63 20 3c 20 30 78 43 30 29 20 7b 20 2a 75 20 3d 20 30 78 46 46 46 44 3b 20 72 65 74 | if.(c.<.0xC0).{.*u.=.0xFFFD;.ret |
| a440 | 75 72 6e 20 31 3b 20 7d 00 00 00 30 20 20 20 20 65 6c 73 65 20 69 66 20 28 63 20 3c 20 30 78 45 | urn.1;.}...0....else.if.(c.<.0xE |
| a460 | 30 29 20 7b 20 2a 75 20 3d 20 63 20 26 20 30 78 31 46 3b 20 6e 20 3d 20 32 3b 20 7d 00 00 00 30 | 0).{.*u.=.c.&.0x1F;.n.=.2;.}...0 |
| a480 | 20 20 20 20 65 6c 73 65 20 69 66 20 28 63 20 3c 20 30 78 46 30 29 20 7b 20 2a 75 20 3d 20 63 20 | ....else.if.(c.<.0xF0).{.*u.=.c. |
| a4a0 | 26 20 30 78 30 46 3b 20 6e 20 3d 20 33 3b 20 7d 00 00 00 30 20 20 20 20 65 6c 73 65 20 20 20 20 | &.0x0F;.n.=.3;.}...0....else.... |
| a4c0 | 20 20 20 20 20 20 20 20 20 20 20 7b 20 2a 75 20 3d 20 63 20 26 20 30 78 30 37 3b 20 6e 20 3d 20 | ...........{.*u.=.c.&.0x07;.n.=. |
| a4e0 | 34 3b 20 7d 00 00 00 2b 20 20 20 20 69 66 20 28 6c 65 6e 20 3c 20 6e 29 20 7b 20 2a 75 20 3d 20 | 4;.}...+....if.(len.<.n).{.*u.=. |
| a500 | 30 78 46 46 46 44 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 00 00 21 20 20 20 20 66 6f 72 20 28 | 0xFFFD;.return.1;.}...!....for.( |
| a520 | 69 6e 74 20 69 20 3d 20 31 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 3d 20 20 20 20 | int.i.=.1;.i.<.n;.i++).{...=.... |
| a540 | 20 20 20 20 69 66 20 28 28 73 5b 69 5d 20 26 20 30 78 43 30 29 20 21 3d 20 30 78 38 30 29 20 7b | ....if.((s[i].&.0xC0).!=.0x80).{ |
| a560 | 20 2a 75 20 3d 20 30 78 46 46 46 44 3b 20 72 65 74 75 72 6e 20 69 3b 20 7d 00 00 00 27 20 20 20 | .*u.=.0xFFFD;.return.i;.}...'... |
| a580 | 20 20 20 20 20 2a 75 20 3d 20 28 2a 75 20 3c 3c 20 36 29 20 7c 20 28 73 5b 69 5d 20 26 20 30 78 | .....*u.=.(*u.<<.6).|.(s[i].&.0x |
| a5a0 | 33 46 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 6e 3b 00 00 | 3F);........}........return.n;.. |
| a5c0 | 00 01 7d 00 00 00 00 00 00 00 2c 73 74 61 74 69 63 20 69 6e 74 20 75 74 66 38 65 6e 63 6f 64 65 | ..}.......,static.int.utf8encode |
| a5e0 | 28 75 69 6e 74 33 32 5f 74 20 75 2c 20 63 68 61 72 20 2a 73 29 20 7b 00 00 00 2b 20 20 20 20 69 | (uint32_t.u,.char.*s).{...+....i |
| a600 | 66 20 28 75 20 3c 20 30 78 38 30 29 20 20 20 7b 20 73 5b 30 5d 20 3d 20 75 3b 20 72 65 74 75 72 | f.(u.<.0x80)...{.s[0].=.u;.retur |
| a620 | 6e 20 31 3b 20 7d 00 00 00 4b 20 20 20 20 69 66 20 28 75 20 3c 20 30 78 38 30 30 29 20 20 7b 20 | n.1;.}...K....if.(u.<.0x800)..{. |
| a640 | 73 5b 30 5d 20 3d 20 30 78 43 30 7c 28 75 3e 3e 36 29 3b 20 73 5b 31 5d 20 3d 20 30 78 38 30 7c | s[0].=.0xC0|(u>>6);.s[1].=.0x80| |
| a660 | 28 75 26 30 78 33 46 29 3b 20 72 65 74 75 72 6e 20 32 3b 20 7d 00 00 00 67 20 20 20 20 69 66 20 | (u&0x3F);.return.2;.}...g....if. |
| a680 | 28 75 20 3c 20 30 78 31 30 30 30 30 29 7b 20 73 5b 30 5d 20 3d 20 30 78 45 30 7c 28 75 3e 3e 31 | (u.<.0x10000){.s[0].=.0xE0|(u>>1 |
| a6a0 | 32 29 3b 20 73 5b 31 5d 20 3d 20 30 78 38 30 7c 28 28 75 3e 3e 36 29 26 30 78 33 46 29 3b 20 73 | 2);.s[1].=.0x80|((u>>6)&0x3F);.s |
| a6c0 | 5b 32 5d 20 3d 20 30 78 38 30 7c 28 75 26 30 78 33 46 29 3b 20 72 65 74 75 72 6e 20 33 3b 20 7d | [2].=.0x80|(u&0x3F);.return.3;.} |
| a6e0 | 00 00 00 67 20 20 20 20 73 5b 30 5d 3d 30 78 46 30 7c 28 75 3e 3e 31 38 29 3b 20 73 5b 31 5d 3d | ...g....s[0]=0xF0|(u>>18);.s[1]= |
| a700 | 30 78 38 30 7c 28 28 75 3e 3e 31 32 29 26 30 78 33 46 29 3b 20 73 5b 32 5d 3d 30 78 38 30 7c 28 | 0x80|((u>>12)&0x3F);.s[2]=0x80|( |
| a720 | 28 75 3e 3e 36 29 26 30 78 33 46 29 3b 20 73 5b 33 5d 3d 30 78 38 30 7c 28 75 26 30 78 33 46 29 | (u>>6)&0x3F);.s[3]=0x80|(u&0x3F) |
| a740 | 3b 20 72 65 74 75 72 6e 20 34 3b 00 00 00 01 7d 00 00 00 00 00 00 00 38 73 74 61 74 69 63 20 43 | ;.return.4;....}.......8static.C |
| a760 | 6f 6c 6f 72 20 70 61 63 6b 5f 72 67 62 28 75 69 6e 74 38 5f 74 20 72 2c 20 75 69 6e 74 38 5f 74 | olor.pack_rgb(uint8_t.r,.uint8_t |
| a780 | 20 67 2c 20 75 69 6e 74 38 5f 74 20 62 29 20 7b 00 00 00 38 20 20 20 20 72 65 74 75 72 6e 20 28 | .g,.uint8_t.b).{...8....return.( |
| a7a0 | 28 75 69 6e 74 33 32 5f 74 29 72 20 3c 3c 20 31 36 29 20 7c 20 28 28 75 69 6e 74 33 32 5f 74 29 | (uint32_t)r.<<.16).|.((uint32_t) |
| a7c0 | 67 20 3c 3c 20 38 29 20 7c 20 62 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1f 73 74 61 74 69 63 20 | g.<<.8).|.b;....}........static. |
| a7e0 | 76 6f 69 64 20 69 6e 69 74 5f 63 6f 6c 6f 72 73 28 76 6f 69 64 29 20 7b 00 00 00 1b 20 20 20 20 | void.init_colors(void).{........ |
| a800 | 75 69 6e 74 33 32 5f 74 20 62 61 73 65 31 36 5b 31 36 5d 20 3d 20 7b 00 00 00 2f 20 20 20 20 20 | uint32_t.base16[16].=.{.../..... |
| a820 | 20 20 20 30 78 30 30 30 30 30 30 2c 20 30 78 63 63 30 30 30 30 2c 20 30 78 30 30 63 63 30 30 2c | ...0x000000,.0xcc0000,.0x00cc00, |
| a840 | 20 30 78 63 63 63 63 30 30 2c 00 00 00 2f 20 20 20 20 20 20 20 20 30 78 30 30 30 30 63 63 2c 20 | .0xcccc00,.../........0x0000cc,. |
| a860 | 30 78 63 63 30 30 63 63 2c 20 30 78 30 30 63 63 63 63 2c 20 30 78 64 30 64 30 64 30 2c 00 00 00 | 0xcc00cc,.0x00cccc,.0xd0d0d0,... |
| a880 | 2f 20 20 20 20 20 20 20 20 30 78 38 30 38 30 38 30 2c 20 30 78 66 66 30 30 30 30 2c 20 30 78 30 | /........0x808080,.0xff0000,.0x0 |
| a8a0 | 30 66 66 30 30 2c 20 30 78 66 66 66 66 30 30 2c 00 00 00 2f 20 20 20 20 20 20 20 20 30 78 30 30 | 0ff00,.0xffff00,.../........0x00 |
| a8c0 | 30 30 66 66 2c 20 30 78 66 66 30 30 66 66 2c 20 30 78 30 30 66 66 66 66 2c 20 30 78 66 66 66 66 | 00ff,.0xff00ff,.0x00ffff,.0xffff |
| a8e0 | 66 66 2c 00 00 00 06 20 20 20 20 7d 3b 00 00 00 39 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 | ff,........};...9....for.(int.i. |
| a900 | 3d 20 30 3b 20 69 20 3c 20 31 36 3b 20 69 2b 2b 29 20 63 6f 6c 6f 72 32 35 36 5b 69 5d 20 3d 20 | =.0;.i.<.16;.i++).color256[i].=. |
| a920 | 62 61 73 65 31 36 5b 69 5d 3b 00 00 00 32 20 20 20 20 69 6e 74 20 6c 65 76 65 6c 73 5b 36 5d 20 | base16[i];...2....int.levels[6]. |
| a940 | 3d 20 7b 20 30 2c 20 39 35 2c 20 31 33 35 2c 20 31 37 35 2c 20 32 31 35 2c 20 32 35 35 20 7d 3b | =.{.0,.95,.135,.175,.215,.255.}; |
| a960 | 00 00 00 24 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 31 36 3b 20 69 20 3c 20 32 33 32 | ...$....for.(int.i.=.16;.i.<.232 |
| a980 | 3b 20 69 2b 2b 29 20 7b 00 00 00 17 20 20 20 20 20 20 20 20 69 6e 74 20 76 20 3d 20 69 20 2d 20 | ;.i++).{............int.v.=.i.-. |
| a9a0 | 31 36 3b 00 00 00 4f 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 32 35 36 5b 69 5d 20 3d 20 70 61 63 | 16;...O........color256[i].=.pac |
| a9c0 | 6b 5f 72 67 62 28 6c 65 76 65 6c 73 5b 28 76 2f 33 36 29 25 36 5d 2c 20 6c 65 76 65 6c 73 5b 28 | k_rgb(levels[(v/36)%6],.levels[( |
| a9e0 | 76 2f 36 29 25 36 5d 2c 20 6c 65 76 65 6c 73 5b 76 25 36 5d 29 3b 00 00 00 05 20 20 20 20 7d 00 | v/6)%6],.levels[v%6]);........}. |
| aa00 | 00 00 25 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 32 33 32 3b 20 69 20 3c 20 32 35 36 | ..%....for.(int.i.=.232;.i.<.256 |
| aa20 | 3b 20 69 2b 2b 29 20 7b 00 00 00 23 20 20 20 20 20 20 20 20 69 6e 74 20 76 20 3d 20 38 20 2b 20 | ;.i++).{...#........int.v.=.8.+. |
| aa40 | 28 69 20 2d 20 32 33 32 29 20 2a 20 31 30 3b 00 00 00 28 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 | (i.-.232).*.10;...(........color |
| aa60 | 32 35 36 5b 69 5d 20 3d 20 70 61 63 6b 5f 72 67 62 28 76 2c 20 76 2c 20 76 29 3b 00 00 00 05 20 | 256[i].=.pack_rgb(v,.v,.v);..... |
| aa80 | 20 20 20 7d 00 00 00 1e 20 20 20 20 77 2e 64 65 66 61 75 6c 74 66 67 20 3d 20 63 6f 6c 6f 72 32 | ...}........w.defaultfg.=.color2 |
| aaa0 | 35 36 5b 37 5d 3b 00 00 00 1e 20 20 20 20 77 2e 64 65 66 61 75 6c 74 62 67 20 3d 20 63 6f 6c 6f | 56[7];........w.defaultbg.=.colo |
| aac0 | 72 32 35 36 5b 30 5d 3b 00 00 00 1e 20 20 20 20 77 2e 64 65 66 61 75 6c 74 63 73 20 3d 20 63 6f | r256[0];........w.defaultcs.=.co |
| aae0 | 6c 6f 72 32 35 36 5b 37 5d 3b 00 00 00 00 00 00 00 23 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 | lor256[7];.......#....for.(int.i |
| ab00 | 20 3d 20 30 3b 20 69 20 3c 20 32 35 36 3b 20 69 2b 2b 29 20 7b 00 00 00 18 20 20 20 20 20 20 20 | .=.0;.i.<.256;.i++).{........... |
| ab20 | 20 58 52 65 6e 64 65 72 43 6f 6c 6f 72 20 72 63 3b 00 00 00 38 20 20 20 20 20 20 20 20 72 63 2e | .XRenderColor.rc;...8........rc. |
| ab40 | 72 65 64 20 20 20 3d 20 28 28 63 6f 6c 6f 72 32 35 36 5b 69 5d 20 3e 3e 20 31 36 29 20 26 20 30 | red...=.((color256[i].>>.16).&.0 |
| ab60 | 78 66 66 29 20 2a 20 30 78 31 30 31 3b 00 00 00 38 20 20 20 20 20 20 20 20 72 63 2e 67 72 65 65 | xff).*.0x101;...8........rc.gree |
| ab80 | 6e 20 3d 20 28 28 63 6f 6c 6f 72 32 35 36 5b 69 5d 20 3e 3e 20 38 29 20 20 26 20 30 78 66 66 29 | n.=.((color256[i].>>.8)..&.0xff) |
| aba0 | 20 2a 20 30 78 31 30 31 3b 00 00 00 38 20 20 20 20 20 20 20 20 72 63 2e 62 6c 75 65 20 20 3d 20 | .*.0x101;...8........rc.blue..=. |
| abc0 | 28 28 63 6f 6c 6f 72 32 35 36 5b 69 5d 29 20 20 20 20 20 20 20 26 20 30 78 66 66 29 20 2a 20 30 | ((color256[i]).......&.0xff).*.0 |
| abe0 | 78 31 30 31 3b 00 00 00 1a 20 20 20 20 20 20 20 20 72 63 2e 61 6c 70 68 61 20 3d 20 30 78 66 66 | x101;............rc.alpha.=.0xff |
| ac00 | 66 66 3b 00 00 00 4b 20 20 20 20 20 20 20 20 58 66 74 43 6f 6c 6f 72 41 6c 6c 6f 63 56 61 6c 75 | ff;...K........XftColorAllocValu |
| ac20 | 65 28 77 2e 64 70 79 2c 20 77 2e 76 69 73 75 61 6c 2c 20 77 2e 63 6f 6c 6f 72 6d 61 70 2c 20 26 | e(w.dpy,.w.visual,.w.colormap,.& |
| ac40 | 72 63 2c 20 26 78 66 74 63 6f 6c 6f 72 5b 69 5d 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d | rc,.&xftcolor[i]);........}....} |
| ac60 | 00 00 00 00 00 00 00 34 73 74 61 74 69 63 20 58 66 74 43 6f 6c 6f 72 20 2a 67 65 74 5f 78 66 74 | .......4static.XftColor.*get_xft |
| ac80 | 5f 63 6f 6c 6f 72 28 43 6f 6c 6f 72 20 63 2c 20 69 6e 74 20 69 73 5f 66 67 29 20 7b 00 00 00 10 | _color(Color.c,.int.is_fg).{.... |
| aca0 | 20 20 20 20 28 76 6f 69 64 29 69 73 5f 66 67 3b 00 00 00 23 20 20 20 20 66 6f 72 20 28 69 6e 74 | ....(void)is_fg;...#....for.(int |
| acc0 | 20 69 20 3d 20 30 3b 20 69 20 3c 20 32 35 36 3b 20 69 2b 2b 29 20 7b 00 00 00 32 20 20 20 20 20 | .i.=.0;.i.<.256;.i++).{...2..... |
| ace0 | 20 20 20 69 66 20 28 63 6f 6c 6f 72 32 35 36 5b 69 5d 20 3d 3d 20 63 29 20 72 65 74 75 72 6e 20 | ...if.(color256[i].==.c).return. |
| ad00 | 26 78 66 74 63 6f 6c 6f 72 5b 69 5d 3b 00 00 00 05 20 20 20 20 7d 00 00 00 18 20 20 20 20 73 74 | &xftcolor[i];........}........st |
| ad20 | 61 74 69 63 20 58 66 74 43 6f 6c 6f 72 20 74 6d 70 3b 00 00 00 14 20 20 20 20 58 52 65 6e 64 65 | atic.XftColor.tmp;........XRende |
| ad40 | 72 43 6f 6c 6f 72 20 72 63 3b 00 00 00 2a 20 20 20 20 72 63 2e 72 65 64 20 20 20 3d 20 28 28 63 | rColor.rc;...*....rc.red...=.((c |
| ad60 | 20 3e 3e 20 31 36 29 20 26 20 30 78 66 66 29 20 2a 20 30 78 31 30 31 3b 00 00 00 2a 20 20 20 20 | .>>.16).&.0xff).*.0x101;...*.... |
| ad80 | 72 63 2e 67 72 65 65 6e 20 3d 20 28 28 63 20 3e 3e 20 38 29 20 20 26 20 30 78 66 66 29 20 2a 20 | rc.green.=.((c.>>.8)..&.0xff).*. |
| ada0 | 30 78 31 30 31 3b 00 00 00 2a 20 20 20 20 72 63 2e 62 6c 75 65 20 20 3d 20 28 28 63 29 20 20 20 | 0x101;...*....rc.blue..=.((c)... |
| adc0 | 20 20 20 20 26 20 30 78 66 66 29 20 2a 20 30 78 31 30 31 3b 00 00 00 16 20 20 20 20 72 63 2e 61 | ....&.0xff).*.0x101;........rc.a |
| ade0 | 6c 70 68 61 20 3d 20 30 78 66 66 66 66 3b 00 00 00 3f 20 20 20 20 58 66 74 43 6f 6c 6f 72 41 6c | lpha.=.0xffff;...?....XftColorAl |
| ae00 | 6c 6f 63 56 61 6c 75 65 28 77 2e 64 70 79 2c 20 77 2e 76 69 73 75 61 6c 2c 20 77 2e 63 6f 6c 6f | locValue(w.dpy,.w.visual,.w.colo |
| ae20 | 72 6d 61 70 2c 20 26 72 63 2c 20 26 74 6d 70 29 3b 00 00 00 10 20 20 20 20 72 65 74 75 72 6e 20 | rmap,.&rc,.&tmp);........return. |
| ae40 | 26 74 6d 70 3b 00 00 00 01 7d 00 00 00 00 00 00 00 34 73 74 61 74 69 63 20 76 6f 69 64 20 74 65 | &tmp;....}.......4static.void.te |
| ae60 | 72 6d 5f 69 6e 69 74 28 54 65 72 6d 20 2a 74 2c 20 69 6e 74 20 72 6f 77 73 2c 20 69 6e 74 20 63 | rm_init(Term.*t,.int.rows,.int.c |
| ae80 | 6f 6c 73 29 20 7b 00 00 00 14 20 20 20 20 74 2d 3e 6e 72 6f 77 73 20 3d 20 72 6f 77 73 3b 00 00 | ols).{........t->nrows.=.rows;.. |
| aea0 | 00 14 20 20 20 20 74 2d 3e 6e 63 6f 6c 73 20 3d 20 63 6f 6c 73 3b 00 00 00 29 20 20 20 20 74 2d | ......t->ncols.=.cols;...)....t- |
| aec0 | 3e 72 6f 77 73 20 20 3d 20 63 61 6c 6c 6f 63 28 72 6f 77 73 2c 20 73 69 7a 65 6f 66 28 52 6f 77 | >rows..=.calloc(rows,.sizeof(Row |
| aee0 | 29 29 3b 00 00 00 24 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 72 | ));...$....for.(int.i.=.0;.i.<.r |
| af00 | 6f 77 73 3b 20 69 2b 2b 29 20 7b 00 00 00 36 20 20 20 20 20 20 20 20 74 2d 3e 72 6f 77 73 5b 69 | ows;.i++).{...6........t->rows[i |
| af20 | 5d 2e 63 65 6c 6c 73 20 3d 20 63 61 6c 6c 6f 63 28 63 6f 6c 73 2c 20 73 69 7a 65 6f 66 28 43 65 | ].cells.=.calloc(cols,.sizeof(Ce |
| af40 | 6c 6c 29 29 3b 00 00 00 20 20 20 20 20 20 20 20 20 74 2d 3e 72 6f 77 73 5b 69 5d 2e 63 6f 6c 73 | ll));............t->rows[i].cols |
| af60 | 20 20 3d 20 63 6f 6c 73 3b 00 00 00 1d 20 20 20 20 20 20 20 20 74 2d 3e 72 6f 77 73 5b 69 5d 2e | ..=.cols;............t->rows[i]. |
| af80 | 64 69 72 74 79 20 3d 20 31 3b 00 00 00 28 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 6a | dirty.=.1;...(........for.(int.j |
| afa0 | 20 3d 20 30 3b 20 6a 20 3c 20 63 6f 6c 73 3b 20 6a 2b 2b 29 20 7b 00 00 00 31 20 20 20 20 20 20 | .=.0;.j.<.cols;.j++).{...1...... |
| afc0 | 20 20 20 20 20 20 74 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 66 67 20 3d 20 77 | ......t->rows[i].cells[j].fg.=.w |
| afe0 | 2e 64 65 66 61 75 6c 74 66 67 3b 00 00 00 31 20 20 20 20 20 20 20 20 20 20 20 20 74 2d 3e 72 6f | .defaultfg;...1............t->ro |
| b000 | 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b | ws[i].cells[j].bg.=.w.defaultbg; |
| b020 | 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 20 74 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 | ...0............t->rows[i].cells |
| b040 | 5b 6a 5d 2e 63 6f 64 65 70 6f 69 6e 74 20 3d 20 27 20 27 3b 00 00 00 09 20 20 20 20 20 20 20 20 | [j].codepoint.=.'.';............ |
| b060 | 7d 00 00 00 05 20 20 20 20 7d 00 00 00 10 20 20 20 20 74 2d 3e 74 6f 70 20 20 3d 20 30 3b 00 00 | }........}........t->top..=.0;.. |
| b080 | 00 17 20 20 20 20 74 2d 3e 62 6f 74 20 20 3d 20 72 6f 77 73 20 2d 20 31 3b 00 00 00 18 20 20 20 | ......t->bot..=.rows.-.1;....... |
| b0a0 | 20 74 2d 3e 6d 6f 64 65 20 3d 20 4d 4f 44 45 5f 57 52 41 50 3b 00 00 00 13 20 20 20 20 74 2d 3e | .t->mode.=.MODE_WRAP;........t-> |
| b0c0 | 63 75 72 2e 72 6f 77 20 3d 20 30 3b 00 00 00 13 20 20 20 20 74 2d 3e 63 75 72 2e 63 6f 6c 20 3d | cur.row.=.0;........t->cur.col.= |
| b0e0 | 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 20 73 74 61 74 69 63 20 76 6f 69 64 20 74 65 72 6d | .0;....}........static.void.term |
| b100 | 5f 66 72 65 65 28 54 65 72 6d 20 2a 74 29 20 7b 00 00 00 3e 20 20 20 20 66 6f 72 20 28 69 6e 74 | _free(Term.*t).{...>....for.(int |
| b120 | 20 69 20 3d 20 30 3b 20 69 20 3c 20 74 2d 3e 6e 72 6f 77 73 3b 20 69 2b 2b 29 20 66 72 65 65 28 | .i.=.0;.i.<.t->nrows;.i++).free( |
| b140 | 74 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 29 3b 00 00 00 12 20 20 20 20 66 72 65 65 28 74 | t->rows[i].cells);........free(t |
| b160 | 2d 3e 72 6f 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2c 73 74 61 74 69 63 20 76 6f 69 64 | ->rows);....}.......,static.void |
| b180 | 20 74 65 72 6d 5f 72 65 73 69 7a 65 28 69 6e 74 20 72 6f 77 73 2c 20 69 6e 74 20 63 6f 6c 73 29 | .term_resize(int.rows,.int.cols) |
| b1a0 | 3b 00 00 00 00 00 00 00 1c 73 74 61 74 69 63 20 76 6f 69 64 20 78 63 62 5f 69 6e 69 74 28 76 6f | ;........static.void.xcb_init(vo |
| b1c0 | 69 64 29 20 7b 00 00 00 1f 20 20 20 20 77 2e 64 70 79 20 3d 20 58 4f 70 65 6e 44 69 73 70 6c 61 | id).{........w.dpy.=.XOpenDispla |
| b1e0 | 79 28 4e 55 4c 4c 29 3b 00 00 00 2b 20 20 20 20 69 66 20 28 21 77 2e 64 70 79 29 20 64 69 65 28 | y(NULL);...+....if.(!w.dpy).die( |
| b200 | 22 63 61 6e 6e 6f 74 20 6f 70 65 6e 20 64 69 73 70 6c 61 79 22 29 3b 00 00 00 25 20 20 20 20 77 | "cannot.open.display");...%....w |
| b220 | 2e 63 6f 6e 20 3d 20 58 47 65 74 58 43 42 43 6f 6e 6e 65 63 74 69 6f 6e 28 77 2e 64 70 79 29 3b | .con.=.XGetXCBConnection(w.dpy); |
| b240 | 00 00 00 32 20 20 20 20 58 53 65 74 45 76 65 6e 74 51 75 65 75 65 4f 77 6e 65 72 28 77 2e 64 70 | ...2....XSetEventQueueOwner(w.dp |
| b260 | 79 2c 20 58 43 42 4f 77 6e 73 45 76 65 6e 74 51 75 65 75 65 29 3b 00 00 00 00 00 00 00 2a 20 20 | y,.XCBOwnsEventQueue);.......*.. |
| b280 | 20 20 69 6e 74 20 73 63 72 65 65 6e 5f 6e 75 6d 20 3d 20 44 65 66 61 75 6c 74 53 63 72 65 65 6e | ..int.screen_num.=.DefaultScreen |
| b2a0 | 28 77 2e 64 70 79 29 3b 00 00 00 40 20 20 20 20 77 2e 73 63 72 20 3d 20 78 63 62 5f 73 65 74 75 | (w.dpy);...@....w.scr.=.xcb_setu |
| b2c0 | 70 5f 72 6f 6f 74 73 5f 69 74 65 72 61 74 6f 72 28 78 63 62 5f 67 65 74 5f 73 65 74 75 70 28 77 | p_roots_iterator(xcb_get_setup(w |
| b2e0 | 2e 63 6f 6e 29 29 2e 64 61 74 61 3b 00 00 00 00 00 00 00 32 20 20 20 20 77 2e 76 69 73 75 61 6c | .con)).data;.......2....w.visual |
| b300 | 20 20 20 3d 20 44 65 66 61 75 6c 74 56 69 73 75 61 6c 28 77 2e 64 70 79 2c 20 73 63 72 65 65 6e | ...=.DefaultVisual(w.dpy,.screen |
| b320 | 5f 6e 75 6d 29 3b 00 00 00 34 20 20 20 20 77 2e 63 6f 6c 6f 72 6d 61 70 20 3d 20 44 65 66 61 75 | _num);...4....w.colormap.=.Defau |
| b340 | 6c 74 43 6f 6c 6f 72 6d 61 70 28 77 2e 64 70 79 2c 20 73 63 72 65 65 6e 5f 6e 75 6d 29 3b 00 00 | ltColormap(w.dpy,.screen_num);.. |
| b360 | 00 00 00 00 00 3b 20 20 20 20 77 2e 66 6f 6e 74 20 3d 20 58 66 74 46 6f 6e 74 4f 70 65 6e 4e 61 | .....;....w.font.=.XftFontOpenNa |
| b380 | 6d 65 28 77 2e 64 70 79 2c 20 73 63 72 65 65 6e 5f 6e 75 6d 2c 20 46 4f 4e 54 5f 4e 41 4d 45 29 | me(w.dpy,.screen_num,.FONT_NAME) |
| b3a0 | 3b 00 00 00 38 20 20 20 20 69 66 20 28 21 77 2e 66 6f 6e 74 29 20 64 69 65 28 22 63 61 6e 6e 6f | ;...8....if.(!w.font).die("canno |
| b3c0 | 74 20 6f 70 65 6e 20 66 6f 6e 74 3a 20 25 73 22 2c 20 46 4f 4e 54 5f 4e 41 4d 45 29 3b 00 00 00 | t.open.font:.%s",.FONT_NAME);... |
| b3e0 | 00 00 00 00 12 20 20 20 20 63 68 61 72 20 62 75 66 5b 32 35 36 5d 3b 00 00 00 34 20 20 20 20 73 | .........char.buf[256];...4....s |
| b400 | 6e 70 72 69 6e 74 66 28 62 75 66 2c 20 73 69 7a 65 6f 66 20 62 75 66 2c 20 22 25 73 3a 62 6f 6c | nprintf(buf,.sizeof.buf,."%s:bol |
| b420 | 64 22 2c 20 46 4f 4e 54 5f 4e 41 4d 45 29 3b 00 00 00 36 20 20 20 20 77 2e 62 66 6f 6e 74 20 3d | d",.FONT_NAME);...6....w.bfont.= |
| b440 | 20 58 66 74 46 6f 6e 74 4f 70 65 6e 4e 61 6d 65 28 77 2e 64 70 79 2c 20 73 63 72 65 65 6e 5f 6e | .XftFontOpenName(w.dpy,.screen_n |
| b460 | 75 6d 2c 20 62 75 66 29 3b 00 00 00 23 20 20 20 20 69 66 20 28 21 77 2e 62 66 6f 6e 74 29 20 77 | um,.buf);...#....if.(!w.bfont).w |
| b480 | 2e 62 66 6f 6e 74 20 3d 20 77 2e 66 6f 6e 74 3b 00 00 00 00 00 00 00 36 20 20 20 20 73 6e 70 72 | .bfont.=.w.font;.......6....snpr |
| b4a0 | 69 6e 74 66 28 62 75 66 2c 20 73 69 7a 65 6f 66 20 62 75 66 2c 20 22 25 73 3a 69 74 61 6c 69 63 | intf(buf,.sizeof.buf,."%s:italic |
| b4c0 | 22 2c 20 46 4f 4e 54 5f 4e 41 4d 45 29 3b 00 00 00 36 20 20 20 20 77 2e 69 66 6f 6e 74 20 3d 20 | ",.FONT_NAME);...6....w.ifont.=. |
| b4e0 | 58 66 74 46 6f 6e 74 4f 70 65 6e 4e 61 6d 65 28 77 2e 64 70 79 2c 20 73 63 72 65 65 6e 5f 6e 75 | XftFontOpenName(w.dpy,.screen_nu |
| b500 | 6d 2c 20 62 75 66 29 3b 00 00 00 23 20 20 20 20 69 66 20 28 21 77 2e 69 66 6f 6e 74 29 20 77 2e | m,.buf);...#....if.(!w.ifont).w. |
| b520 | 69 66 6f 6e 74 20 3d 20 77 2e 66 6f 6e 74 3b 00 00 00 00 00 00 00 3b 20 20 20 20 73 6e 70 72 69 | ifont.=.w.font;.......;....snpri |
| b540 | 6e 74 66 28 62 75 66 2c 20 73 69 7a 65 6f 66 20 62 75 66 2c 20 22 25 73 3a 62 6f 6c 64 3a 69 74 | ntf(buf,.sizeof.buf,."%s:bold:it |
| b560 | 61 6c 69 63 22 2c 20 46 4f 4e 54 5f 4e 41 4d 45 29 3b 00 00 00 37 20 20 20 20 77 2e 62 69 66 6f | alic",.FONT_NAME);...7....w.bifo |
| b580 | 6e 74 20 3d 20 58 66 74 46 6f 6e 74 4f 70 65 6e 4e 61 6d 65 28 77 2e 64 70 79 2c 20 73 63 72 65 | nt.=.XftFontOpenName(w.dpy,.scre |
| b5a0 | 65 6e 5f 6e 75 6d 2c 20 62 75 66 29 3b 00 00 00 26 20 20 20 20 69 66 20 28 21 77 2e 62 69 66 6f | en_num,.buf);...&....if.(!w.bifo |
| b5c0 | 6e 74 29 20 77 2e 62 69 66 6f 6e 74 20 3d 20 77 2e 62 66 6f 6e 74 3b 00 00 00 00 00 00 00 25 20 | nt).w.bifont.=.w.bfont;.......%. |
| b5e0 | 20 20 20 77 2e 63 77 20 3d 20 77 2e 66 6f 6e 74 2d 3e 6d 61 78 5f 61 64 76 61 6e 63 65 5f 77 69 | ...w.cw.=.w.font->max_advance_wi |
| b600 | 64 74 68 3b 00 00 00 2c 20 20 20 20 77 2e 63 68 20 3d 20 77 2e 66 6f 6e 74 2d 3e 61 73 63 65 6e | dth;...,....w.ch.=.w.font->ascen |
| b620 | 74 20 2b 20 77 2e 66 6f 6e 74 2d 3e 64 65 73 63 65 6e 74 3b 00 00 00 1a 20 20 20 20 77 2e 63 61 | t.+.w.font->descent;........w.ca |
| b640 | 20 3d 20 77 2e 66 6f 6e 74 2d 3e 61 73 63 65 6e 74 3b 00 00 00 00 00 00 00 12 20 20 20 20 69 6e | .=.w.font->ascent;............in |
| b660 | 69 74 5f 63 6f 6c 6f 72 73 28 29 3b 00 00 00 00 00 00 00 10 20 20 20 20 77 2e 63 6f 6c 73 20 3d | it_colors();............w.cols.= |
| b680 | 20 38 30 3b 00 00 00 10 20 20 20 20 77 2e 72 6f 77 73 20 3d 20 32 34 3b 00 00 00 28 20 20 20 20 | .80;........w.rows.=.24;...(.... |
| b6a0 | 77 2e 77 69 6e 77 20 3d 20 77 2e 63 6f 6c 73 20 2a 20 77 2e 63 77 20 2b 20 32 20 2a 20 42 4f 52 | w.winw.=.w.cols.*.w.cw.+.2.*.BOR |
| b6c0 | 44 45 52 3b 00 00 00 28 20 20 20 20 77 2e 77 69 6e 68 20 3d 20 77 2e 72 6f 77 73 20 2a 20 77 2e | DER;...(....w.winh.=.w.rows.*.w. |
| b6e0 | 63 68 20 2b 20 32 20 2a 20 42 4f 52 44 45 52 3b 00 00 00 00 00 00 00 3c 20 20 20 20 75 69 6e 74 | ch.+.2.*.BORDER;.......<....uint |
| b700 | 33 32 5f 74 20 6d 61 73 6b 20 20 20 3d 20 58 43 42 5f 43 57 5f 42 41 43 4b 5f 50 49 58 45 4c 20 | 32_t.mask...=.XCB_CW_BACK_PIXEL. |
| b720 | 7c 20 58 43 42 5f 43 57 5f 45 56 45 4e 54 5f 4d 41 53 4b 3b 00 00 00 17 20 20 20 20 75 69 6e 74 | |.XCB_CW_EVENT_MASK;........uint |
| b740 | 33 32 5f 74 20 76 61 6c 75 65 73 5b 32 5d 3b 00 00 00 2e 20 20 20 20 76 61 6c 75 65 73 5b 30 5d | 32_t.values[2];........values[0] |
| b760 | 20 3d 20 42 6c 61 63 6b 50 69 78 65 6c 28 77 2e 64 70 79 2c 20 73 63 72 65 65 6e 5f 6e 75 6d 29 | .=.BlackPixel(w.dpy,.screen_num) |
| b780 | 3b 00 00 00 27 20 20 20 20 76 61 6c 75 65 73 5b 31 5d 20 3d 20 58 43 42 5f 45 56 45 4e 54 5f 4d | ;...'....values[1].=.XCB_EVENT_M |
| b7a0 | 41 53 4b 5f 45 58 50 4f 53 55 52 45 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 | ASK_EXPOSURE...(..............|. |
| b7c0 | 58 43 42 5f 45 56 45 4e 54 5f 4d 41 53 4b 5f 4b 45 59 5f 50 52 45 53 53 00 00 00 2b 20 20 20 20 | XCB_EVENT_MASK_KEY_PRESS...+.... |
| b7e0 | 20 20 20 20 20 20 20 20 20 20 7c 20 58 43 42 5f 45 56 45 4e 54 5f 4d 41 53 4b 5f 42 55 54 54 4f | ..........|.XCB_EVENT_MASK_BUTTO |
| b800 | 4e 5f 50 52 45 53 53 00 00 00 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 58 43 42 5f 45 | N_PRESS...-..............|.XCB_E |
| b820 | 56 45 4e 54 5f 4d 41 53 4b 5f 42 55 54 54 4f 4e 5f 52 45 4c 45 41 53 45 00 00 00 30 20 20 20 20 | VENT_MASK_BUTTON_RELEASE...0.... |
| b840 | 20 20 20 20 20 20 20 20 20 20 7c 20 58 43 42 5f 45 56 45 4e 54 5f 4d 41 53 4b 5f 53 54 52 55 43 | ..........|.XCB_EVENT_MASK_STRUC |
| b860 | 54 55 52 45 5f 4e 4f 54 49 46 59 3b 00 00 00 00 00 00 00 23 20 20 20 20 77 2e 77 69 6e 20 3d 20 | TURE_NOTIFY;.......#....w.win.=. |
| b880 | 78 63 62 5f 67 65 6e 65 72 61 74 65 5f 69 64 28 77 2e 63 6f 6e 29 3b 00 00 00 46 20 20 20 20 78 | xcb_generate_id(w.con);...F....x |
| b8a0 | 63 62 5f 63 72 65 61 74 65 5f 77 69 6e 64 6f 77 28 77 2e 63 6f 6e 2c 20 58 43 42 5f 43 4f 50 59 | cb_create_window(w.con,.XCB_COPY |
| b8c0 | 5f 46 52 4f 4d 5f 50 41 52 45 4e 54 2c 20 77 2e 77 69 6e 2c 20 77 2e 73 63 72 2d 3e 72 6f 6f 74 | _FROM_PARENT,.w.win,.w.scr->root |
| b8e0 | 2c 00 00 00 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 2c 20 30 2c | ,..........................0,.0, |
| b900 | 20 77 2e 77 69 6e 77 2c 20 77 2e 77 69 6e 68 2c 20 30 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 | .w.winw,.w.winh,.0,...4......... |
| b920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 58 43 42 5f 57 49 4e 44 4f 57 5f 43 4c 41 53 53 5f 49 4e | .............XCB_WINDOW_CLASS_IN |
| b940 | 50 55 54 5f 4f 55 54 50 55 54 2c 00 00 00 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | PUT_OUTPUT,...8................. |
| b960 | 20 20 20 20 20 77 2e 73 63 72 2d 3e 72 6f 6f 74 5f 76 69 73 75 61 6c 2c 20 6d 61 73 6b 2c 20 76 | .....w.scr->root_visual,.mask,.v |
| b980 | 61 6c 75 65 73 29 3b 00 00 00 00 00 00 00 46 20 20 20 20 78 63 62 5f 69 63 63 63 6d 5f 73 65 74 | alues);.......F....xcb_icccm_set |
| b9a0 | 5f 77 6d 5f 6e 61 6d 65 28 77 2e 63 6f 6e 2c 20 77 2e 77 69 6e 2c 20 58 43 42 5f 41 54 4f 4d 5f | _wm_name(w.con,.w.win,.XCB_ATOM_ |
| b9c0 | 53 54 52 49 4e 47 2c 20 38 2c 20 34 2c 20 22 78 73 74 22 29 3b 00 00 00 4b 20 20 20 20 78 63 62 | STRING,.8,.4,."xst");...K....xcb |
| b9e0 | 5f 69 63 63 63 6d 5f 73 65 74 5f 77 6d 5f 69 63 6f 6e 5f 6e 61 6d 65 28 77 2e 63 6f 6e 2c 20 77 | _icccm_set_wm_icon_name(w.con,.w |
| ba00 | 2e 77 69 6e 2c 20 58 43 42 5f 41 54 4f 4d 5f 53 54 52 49 4e 47 2c 20 38 2c 20 34 2c 20 22 78 73 | .win,.XCB_ATOM_STRING,.8,.4,."xs |
| ba20 | 74 22 29 3b 00 00 00 00 00 00 00 1b 20 20 20 20 78 63 62 5f 73 69 7a 65 5f 68 69 6e 74 73 5f 74 | t");............xcb_size_hints_t |
| ba40 | 20 68 69 6e 74 73 3b 00 00 00 24 20 20 20 20 6d 65 6d 73 65 74 28 26 68 69 6e 74 73 2c 20 30 2c | .hints;...$....memset(&hints,.0, |
| ba60 | 20 73 69 7a 65 6f 66 20 68 69 6e 74 73 29 3b 00 00 00 3c 20 20 20 20 78 63 62 5f 69 63 63 63 6d | .sizeof.hints);...<....xcb_icccm |
| ba80 | 5f 73 69 7a 65 5f 68 69 6e 74 73 5f 73 65 74 5f 72 65 73 69 7a 65 5f 69 6e 63 28 26 68 69 6e 74 | _size_hints_set_resize_inc(&hint |
| baa0 | 73 2c 20 77 2e 63 77 2c 20 77 2e 63 68 29 3b 00 00 00 47 20 20 20 20 78 63 62 5f 69 63 63 63 6d | s,.w.cw,.w.ch);...G....xcb_icccm |
| bac0 | 5f 73 69 7a 65 5f 68 69 6e 74 73 5f 73 65 74 5f 62 61 73 65 5f 73 69 7a 65 28 26 68 69 6e 74 73 | _size_hints_set_base_size(&hints |
| bae0 | 2c 20 32 20 2a 20 42 4f 52 44 45 52 2c 20 32 20 2a 20 42 4f 52 44 45 52 29 3b 00 00 00 54 20 20 | ,.2.*.BORDER,.2.*.BORDER);...T.. |
| bb00 | 20 20 78 63 62 5f 69 63 63 63 6d 5f 73 69 7a 65 5f 68 69 6e 74 73 5f 73 65 74 5f 6d 69 6e 5f 73 | ..xcb_icccm_size_hints_set_min_s |
| bb20 | 69 7a 65 28 26 68 69 6e 74 73 2c 20 77 2e 63 77 20 2b 20 32 20 2a 20 42 4f 52 44 45 52 2c 20 77 | ize(&hints,.w.cw.+.2.*.BORDER,.w |
| bb40 | 2e 63 68 20 2b 20 32 20 2a 20 42 4f 52 44 45 52 29 3b 00 00 00 38 20 20 20 20 78 63 62 5f 69 63 | .ch.+.2.*.BORDER);...8....xcb_ic |
| bb60 | 63 63 6d 5f 73 65 74 5f 77 6d 5f 6e 6f 72 6d 61 6c 5f 68 69 6e 74 73 28 77 2e 63 6f 6e 2c 20 77 | ccm_set_wm_normal_hints(w.con,.w |
| bb80 | 2e 77 69 6e 2c 20 26 68 69 6e 74 73 29 3b 00 00 00 00 00 00 00 1d 20 20 20 20 78 63 62 5f 61 74 | .win,.&hints);............xcb_at |
| bba0 | 6f 6d 5f 74 20 77 6d 5f 64 65 6c 65 74 65 20 3d 20 30 3b 00 00 00 05 20 20 20 20 7b 00 00 00 42 | om_t.wm_delete.=.0;........{...B |
| bbc0 | 20 20 20 20 20 20 20 20 78 63 62 5f 69 6e 74 65 72 6e 5f 61 74 6f 6d 5f 72 65 70 6c 79 5f 74 20 | ........xcb_intern_atom_reply_t. |
| bbe0 | 2a 72 31 20 3d 20 78 63 62 5f 69 6e 74 65 72 6e 5f 61 74 6f 6d 5f 72 65 70 6c 79 28 77 2e 63 6f | *r1.=.xcb_intern_atom_reply(w.co |
| bc00 | 6e 2c 00 00 00 45 20 20 20 20 20 20 20 20 20 20 20 20 78 63 62 5f 69 6e 74 65 72 6e 5f 61 74 6f | n,...E............xcb_intern_ato |
| bc20 | 6d 28 77 2e 63 6f 6e 2c 20 30 2c 20 31 36 2c 20 22 57 4d 5f 44 45 4c 45 54 45 5f 57 49 4e 44 4f | m(w.con,.0,.16,."WM_DELETE_WINDO |
| bc40 | 57 22 29 2c 20 4e 55 4c 4c 29 3b 00 00 00 42 20 20 20 20 20 20 20 20 78 63 62 5f 69 6e 74 65 72 | W"),.NULL);...B........xcb_inter |
| bc60 | 6e 5f 61 74 6f 6d 5f 72 65 70 6c 79 5f 74 20 2a 72 32 20 3d 20 78 63 62 5f 69 6e 74 65 72 6e 5f | n_atom_reply_t.*r2.=.xcb_intern_ |
| bc80 | 61 74 6f 6d 5f 72 65 70 6c 79 28 77 2e 63 6f 6e 2c 00 00 00 41 20 20 20 20 20 20 20 20 20 20 20 | atom_reply(w.con,...A........... |
| bca0 | 20 78 63 62 5f 69 6e 74 65 72 6e 5f 61 74 6f 6d 28 77 2e 63 6f 6e 2c 20 30 2c 20 31 32 2c 20 22 | .xcb_intern_atom(w.con,.0,.12,." |
| bcc0 | 57 4d 5f 50 52 4f 54 4f 43 4f 4c 53 22 29 2c 20 4e 55 4c 4c 29 3b 00 00 00 17 20 20 20 20 20 20 | WM_PROTOCOLS"),.NULL);.......... |
| bce0 | 20 20 69 66 20 28 72 31 20 26 26 20 72 32 29 20 7b 00 00 00 21 20 20 20 20 20 20 20 20 20 20 20 | ..if.(r1.&&.r2).{...!........... |
| bd00 | 20 77 6d 5f 64 65 6c 65 74 65 20 3d 20 72 31 2d 3e 61 74 6f 6d 3b 00 00 00 4e 20 20 20 20 20 20 | .wm_delete.=.r1->atom;...N...... |
| bd20 | 20 20 20 20 20 20 78 63 62 5f 69 63 63 63 6d 5f 73 65 74 5f 77 6d 5f 70 72 6f 74 6f 63 6f 6c 73 | ......xcb_icccm_set_wm_protocols |
| bd40 | 28 77 2e 63 6f 6e 2c 20 77 2e 77 69 6e 2c 20 72 32 2d 3e 61 74 6f 6d 2c 20 31 2c 20 26 77 6d 5f | (w.con,.w.win,.r2->atom,.1,.&wm_ |
| bd60 | 64 65 6c 65 74 65 29 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 1b 20 20 20 20 20 20 20 | delete);............}........... |
| bd80 | 20 66 72 65 65 28 72 31 29 3b 20 66 72 65 65 28 72 32 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 | .free(r1);.free(r2);........}... |
| bda0 | 00 00 00 00 21 20 20 20 20 78 63 62 5f 6d 61 70 5f 77 69 6e 64 6f 77 28 77 2e 63 6f 6e 2c 20 77 | ....!....xcb_map_window(w.con,.w |
| bdc0 | 2e 77 69 6e 29 3b 00 00 00 15 20 20 20 20 78 63 62 5f 66 6c 75 73 68 28 77 2e 63 6f 6e 29 3b 00 | .win);........xcb_flush(w.con);. |
| bde0 | 00 00 00 00 00 00 3f 20 20 20 20 77 2e 64 72 61 77 20 3d 20 58 66 74 44 72 61 77 43 72 65 61 74 | ......?....w.draw.=.XftDrawCreat |
| be00 | 65 28 77 2e 64 70 79 2c 20 77 2e 77 69 6e 2c 20 77 2e 76 69 73 75 61 6c 2c 20 77 2e 63 6f 6c 6f | e(w.dpy,.w.win,.w.visual,.w.colo |
| be20 | 72 6d 61 70 29 3b 00 00 00 2e 20 20 20 20 69 66 20 28 21 77 2e 64 72 61 77 29 20 64 69 65 28 22 | rmap);........if.(!w.draw).die(" |
| be40 | 63 61 6e 6e 6f 74 20 63 72 65 61 74 65 20 58 66 74 44 72 61 77 22 29 3b 00 00 00 00 00 00 00 2b | cannot.create.XftDraw");.......+ |
| be60 | 20 20 20 20 77 2e 6b 73 79 6d 73 20 3d 20 78 63 62 5f 6b 65 79 5f 73 79 6d 62 6f 6c 73 5f 61 6c | ....w.ksyms.=.xcb_key_symbols_al |
| be80 | 6c 6f 63 28 77 2e 63 6f 6e 29 3b 00 00 00 00 00 00 00 14 20 20 20 20 28 76 6f 69 64 29 77 6d 5f | loc(w.con);............(void)wm_ |
| bea0 | 64 65 6c 65 74 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1c 73 74 61 74 69 63 20 76 6f 69 64 20 | delete;....}........static.void. |
| bec0 | 70 74 79 5f 69 6e 69 74 28 76 6f 69 64 29 20 7b 00 00 00 31 20 20 20 20 73 74 72 75 63 74 20 77 | pty_init(void).{...1....struct.w |
| bee0 | 69 6e 73 69 7a 65 20 77 73 20 3d 20 7b 20 77 2e 72 6f 77 73 2c 20 77 2e 63 6f 6c 73 2c 20 30 2c | insize.ws.=.{.w.rows,.w.cols,.0, |
| bf00 | 20 30 20 7d 3b 00 00 00 31 20 20 20 20 70 74 79 2e 70 69 64 20 3d 20 66 6f 72 6b 70 74 79 28 26 | .0.};...1....pty.pid.=.forkpty(& |
| bf20 | 70 74 79 2e 6d 66 64 2c 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 2c 20 26 77 73 29 3b 00 00 00 39 20 20 | pty.mfd,.NULL,.NULL,.&ws);...9.. |
| bf40 | 20 20 69 66 20 28 70 74 79 2e 70 69 64 20 3c 20 30 29 20 64 69 65 28 22 66 6f 72 6b 70 74 79 3a | ..if.(pty.pid.<.0).die("forkpty: |
| bf60 | 20 25 73 22 2c 20 73 74 72 65 72 72 6f 72 28 65 72 72 6e 6f 29 29 3b 00 00 00 17 20 20 20 20 69 | .%s",.strerror(errno));........i |
| bf80 | 66 20 28 70 74 79 2e 70 69 64 20 3d 3d 20 30 29 20 7b 00 00 00 2c 20 20 20 20 20 20 20 20 73 65 | f.(pty.pid.==.0).{...,........se |
| bfa0 | 74 65 6e 76 28 22 54 45 52 4d 22 2c 20 22 78 74 65 72 6d 2d 32 35 36 63 6f 6c 6f 72 22 2c 20 31 | tenv("TERM",."xterm-256color",.1 |
| bfc0 | 29 3b 00 00 00 2c 20 20 20 20 20 20 20 20 73 65 74 65 6e 76 28 22 43 4f 4c 4f 52 54 45 52 4d 22 | );...,........setenv("COLORTERM" |
| bfe0 | 2c 20 22 74 72 75 65 63 6f 6c 6f 72 22 2c 20 31 29 3b 00 00 00 27 20 20 20 20 20 20 20 20 63 68 | ,."truecolor",.1);...'........ch |
| c000 | 61 72 20 2a 61 72 67 73 5b 5d 20 3d 20 7b 20 53 48 45 4c 4c 2c 20 4e 55 4c 4c 20 7d 3b 00 00 00 | ar.*args[].=.{.SHELL,.NULL.};... |
| c020 | 1c 20 20 20 20 20 20 20 20 65 78 65 63 76 70 28 53 48 45 4c 4c 2c 20 61 72 67 73 29 3b 00 00 00 | .........execvp(SHELL,.args);... |
| c040 | 2b 20 20 20 20 20 20 20 20 64 69 65 28 22 65 78 65 63 76 70 3a 20 25 73 22 2c 20 73 74 72 65 72 | +........die("execvp:.%s",.strer |
| c060 | 72 6f 72 28 65 72 72 6e 6f 29 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 28 20 20 20 20 66 63 6e | ror(errno));........}...(....fcn |
| c080 | 74 6c 28 70 74 79 2e 6d 66 64 2c 20 46 5f 53 45 54 46 4c 2c 20 4f 5f 4e 4f 4e 42 4c 4f 43 4b 29 | tl(pty.mfd,.F_SETFL,.O_NONBLOCK) |
| c0a0 | 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2f 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 79 5f 77 72 | ;....}......./static.void.pty_wr |
| c0c0 | 69 74 65 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 69 6e 74 20 6c 65 6e 29 20 7b 00 00 00 | ite(const.char.*s,.int.len).{... |
| c0e0 | 15 20 20 20 20 77 68 69 6c 65 20 28 6c 65 6e 20 3e 20 30 29 20 7b 00 00 00 27 20 20 20 20 20 20 | .....while.(len.>.0).{...'...... |
| c100 | 20 20 69 6e 74 20 6e 20 3d 20 77 72 69 74 65 28 70 74 79 2e 6d 66 64 2c 20 73 2c 20 6c 65 6e 29 | ..int.n.=.write(pty.mfd,.s,.len) |
| c120 | 3b 00 00 00 31 20 20 20 20 20 20 20 20 69 66 20 28 6e 20 3c 20 30 29 20 7b 20 69 66 20 28 65 72 | ;...1........if.(n.<.0).{.if.(er |
| c140 | 72 6e 6f 20 21 3d 20 45 49 4e 54 52 29 20 62 72 65 61 6b 3b 20 7d 00 00 00 22 20 20 20 20 20 20 | rno.!=.EINTR).break;.}..."...... |
| c160 | 20 20 65 6c 73 65 20 7b 20 73 20 2b 3d 20 6e 3b 20 6c 65 6e 20 2d 3d 20 6e 3b 20 7d 00 00 00 05 | ..else.{.s.+=.n;.len.-=.n;.}.... |
| c180 | 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 | ....}....}........typedef.struct |
| c1a0 | 20 7b 00 00 00 10 20 20 20 20 69 6e 74 20 20 20 20 61 72 67 63 3b 00 00 00 18 20 20 20 20 63 68 | .{........int....argc;........ch |
| c1c0 | 61 72 20 20 20 61 72 67 76 5b 33 32 5d 5b 36 34 5d 3b 00 00 00 10 20 20 20 20 69 6e 74 20 20 20 | ar...argv[32][64];........int... |
| c1e0 | 20 70 72 69 76 3b 00 00 00 11 20 20 20 20 69 6e 74 20 20 20 20 69 6e 74 65 72 3b 00 00 00 0c 7d | .priv;........int....inter;....} |
| c200 | 20 43 53 49 45 73 63 61 70 65 3b 00 00 00 00 00 00 00 15 73 74 61 74 69 63 20 43 53 49 45 73 63 | .CSIEscape;........static.CSIEsc |
| c220 | 61 70 65 20 63 73 69 3b 00 00 00 00 00 00 00 14 73 74 61 74 69 63 20 69 6e 74 20 63 75 72 5f 61 | ape.csi;........static.int.cur_a |
| c240 | 74 74 72 3b 00 00 00 14 73 74 61 74 69 63 20 43 6f 6c 6f 72 20 63 75 72 5f 66 67 3b 00 00 00 14 | ttr;....static.Color.cur_fg;.... |
| c260 | 73 74 61 74 69 63 20 43 6f 6c 6f 72 20 63 75 72 5f 62 67 3b 00 00 00 00 00 00 00 1d 73 74 61 74 | static.Color.cur_bg;........stat |
| c280 | 69 63 20 76 6f 69 64 20 64 69 72 74 79 5f 61 6c 6c 28 76 6f 69 64 29 20 7b 00 00 00 4a 20 20 20 | ic.void.dirty_all(void).{...J... |
| c2a0 | 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e | .for.(int.i.=.0;.i.<.cur_term->n |
| c2c0 | 72 6f 77 73 3b 20 69 2b 2b 29 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 64 69 72 | rows;.i++).cur_term->rows[i].dir |
| c2e0 | 74 79 20 3d 20 31 3b 00 00 00 01 7d 00 00 00 00 00 00 00 35 73 74 61 74 69 63 20 76 6f 69 64 20 | ty.=.1;....}.......5static.void. |
| c300 | 73 65 74 5f 63 65 6c 6c 28 69 6e 74 20 72 6f 77 2c 20 69 6e 74 20 63 6f 6c 2c 20 75 69 6e 74 33 | set_cell(int.row,.int.col,.uint3 |
| c320 | 32 5f 74 20 63 70 29 20 7b 00 00 00 57 20 20 20 20 69 66 20 28 72 6f 77 20 3c 20 30 20 7c 7c 20 | 2_t.cp).{...W....if.(row.<.0.||. |
| c340 | 72 6f 77 20 3e 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 20 7c 7c 20 63 6f 6c 20 3c 20 | row.>=.cur_term->nrows.||.col.<. |
| c360 | 30 20 7c 7c 20 63 6f 6c 20 3e 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 29 20 72 65 74 | 0.||.col.>=.cur_term->ncols).ret |
| c380 | 75 72 6e 3b 00 00 00 2e 20 20 20 20 43 65 6c 6c 20 2a 67 20 3d 20 26 63 75 72 5f 74 65 72 6d 2d | urn;........Cell.*g.=.&cur_term- |
| c3a0 | 3e 72 6f 77 73 5b 72 6f 77 5d 2e 63 65 6c 6c 73 5b 63 6f 6c 5d 3b 00 00 00 16 20 20 20 20 67 2d | >rows[row].cells[col];........g- |
| c3c0 | 3e 63 6f 64 65 70 6f 69 6e 74 20 3d 20 63 70 3b 00 00 00 1c 20 20 20 20 67 2d 3e 61 74 74 72 20 | >codepoint.=.cp;........g->attr. |
| c3e0 | 20 20 20 20 20 3d 20 63 75 72 5f 61 74 74 72 3b 00 00 00 1a 20 20 20 20 67 2d 3e 66 67 20 20 20 | .....=.cur_attr;........g->fg... |
| c400 | 20 20 20 20 20 3d 20 63 75 72 5f 66 67 3b 00 00 00 1a 20 20 20 20 67 2d 3e 62 67 20 20 20 20 20 | .....=.cur_fg;........g->bg..... |
| c420 | 20 20 20 3d 20 63 75 72 5f 62 67 3b 00 00 00 22 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f | ...=.cur_bg;..."....cur_term->ro |
| c440 | 77 73 5b 72 6f 77 5d 2e 64 69 72 74 79 20 3d 20 31 3b 00 00 00 01 7d 00 00 00 00 00 00 00 32 73 | ws[row].dirty.=.1;....}.......2s |
| c460 | 74 61 74 69 63 20 76 6f 69 64 20 74 65 72 6d 5f 73 63 72 6f 6c 6c 28 69 6e 74 20 74 6f 70 2c 20 | tatic.void.term_scroll(int.top,. |
| c480 | 69 6e 74 20 62 6f 74 2c 20 69 6e 74 20 6e 29 20 7b 00 00 00 17 20 20 20 20 69 66 20 28 6e 20 3d | int.bot,.int.n).{........if.(n.= |
| c4a0 | 3d 20 30 29 20 72 65 74 75 72 6e 3b 00 00 00 10 20 20 20 20 69 66 20 28 6e 20 3e 20 30 29 20 7b | =.0).return;........if.(n.>.0).{ |
| c4c0 | 00 00 00 2e 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 74 6f 70 3b 20 69 20 | ............for.(int.i.=.top;.i. |
| c4e0 | 3c 3d 20 62 6f 74 20 2d 20 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 28 20 20 20 20 20 20 20 20 20 20 | <=.bot.-.n;.i++).{...(.......... |
| c500 | 20 20 52 6f 77 20 74 6d 70 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 3b 00 00 | ..Row.tmp.=.cur_term->rows[i];.. |
| c520 | 00 36 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 20 | .6............cur_term->rows[i]. |
| c540 | 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 20 2b 20 6e 5d 3b 00 00 00 28 20 20 20 20 | =.cur_term->rows[i.+.n];...(.... |
| c560 | 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 20 2b 20 6e 5d 20 3d 20 | ........cur_term->rows[i.+.n].=. |
| c580 | 74 6d 70 3b 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f | tmp;...(............cur_term->ro |
| c5a0 | 77 73 5b 69 5d 2e 64 69 72 74 79 20 3d 20 31 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 | ws[i].dirty.=.1;............}... |
| c5c0 | 32 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 62 6f 74 20 2d 20 6e 20 2b 20 | 2........for.(int.i.=.bot.-.n.+. |
| c5e0 | 31 3b 20 69 20 3c 3d 20 62 6f 74 3b 20 69 2b 2b 29 20 7b 00 00 00 37 20 20 20 20 20 20 20 20 20 | 1;.i.<=.bot;.i++).{...7......... |
| c600 | 20 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 30 3b 20 6a 20 3c 20 63 75 72 5f 74 65 72 6d 2d | ...for.(int.j.=.0;.j.<.cur_term- |
| c620 | 3e 6e 63 6f 6c 73 3b 20 6a 2b 2b 29 20 7b 00 00 00 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | >ncols;.j++).{...;.............. |
| c640 | 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 63 6f 64 | ..cur_term->rows[i].cells[j].cod |
| c660 | 65 70 6f 69 6e 74 20 3d 20 27 20 27 3b 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | epoint.=.'.';...4............... |
| c680 | 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 61 74 74 72 | .cur_term->rows[i].cells[j].attr |
| c6a0 | 20 3d 20 30 3b 00 00 00 3c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 | .=.0;...<................cur_ter |
| c6c0 | 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 66 67 20 3d 20 77 2e 64 65 66 61 75 | m->rows[i].cells[j].fg.=.w.defau |
| c6e0 | 6c 74 66 67 3b 00 00 00 3c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 | ltfg;...<................cur_ter |
| c700 | 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 62 67 20 3d 20 77 2e 64 65 66 61 75 | m->rows[i].cells[j].bg.=.w.defau |
| c720 | 6c 74 62 67 3b 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 28 20 20 20 20 20 20 | ltbg;................}...(...... |
| c740 | 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 64 69 72 74 79 20 3d 20 | ......cur_term->rows[i].dirty.=. |
| c760 | 31 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 0c 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 | 1;............}........}.else.{. |
| c780 | 00 00 0f 20 20 20 20 20 20 20 20 6e 20 3d 20 2d 6e 3b 00 00 00 2e 20 20 20 20 20 20 20 20 66 6f | ...........n.=.-n;............fo |
| c7a0 | 72 20 28 69 6e 74 20 69 20 3d 20 62 6f 74 3b 20 69 20 3e 3d 20 74 6f 70 20 2b 20 6e 3b 20 69 2d | r.(int.i.=.bot;.i.>=.top.+.n;.i- |
| c7c0 | 2d 29 20 7b 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 52 6f 77 20 74 6d 70 20 3d 20 63 75 | -).{...(............Row.tmp.=.cu |
| c7e0 | 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 3b 00 00 00 36 20 20 20 20 20 20 20 20 20 20 20 20 | r_term->rows[i];...6............ |
| c800 | 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f | cur_term->rows[i].=.cur_term->ro |
| c820 | 77 73 5b 69 20 2d 20 6e 5d 3b 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 | ws[i.-.n];...(............cur_te |
| c840 | 72 6d 2d 3e 72 6f 77 73 5b 69 20 2d 20 6e 5d 20 3d 20 74 6d 70 3b 00 00 00 28 20 20 20 20 20 20 | rm->rows[i.-.n].=.tmp;...(...... |
| c860 | 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 64 69 72 74 79 20 3d 20 | ......cur_term->rows[i].dirty.=. |
| c880 | 31 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 2d 20 20 20 20 20 20 20 20 66 6f 72 20 28 | 1;............}...-........for.( |
| c8a0 | 69 6e 74 20 69 20 3d 20 74 6f 70 3b 20 69 20 3c 20 74 6f 70 20 2b 20 6e 3b 20 69 2b 2b 29 20 7b | int.i.=.top;.i.<.top.+.n;.i++).{ |
| c8c0 | 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 30 3b 20 | ...7............for.(int.j.=.0;. |
| c8e0 | 6a 20 3c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 3b 20 6a 2b 2b 29 20 7b 00 00 00 3b 20 | j.<.cur_term->ncols;.j++).{...;. |
| c900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d | ...............cur_term->rows[i] |
| c920 | 2e 63 65 6c 6c 73 5b 6a 5d 2e 63 6f 64 65 70 6f 69 6e 74 20 3d 20 27 20 27 3b 00 00 00 34 20 20 | .cells[j].codepoint.=.'.';...4.. |
| c940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e | ..............cur_term->rows[i]. |
| c960 | 63 65 6c 6c 73 5b 6a 5d 2e 61 74 74 72 20 3d 20 30 3b 00 00 00 3c 20 20 20 20 20 20 20 20 20 20 | cells[j].attr.=.0;...<.......... |
| c980 | 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d | ......cur_term->rows[i].cells[j] |
| c9a0 | 2e 66 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 66 67 3b 00 00 00 3c 20 20 20 20 20 20 20 20 20 20 | .fg.=.w.defaultfg;...<.......... |
| c9c0 | 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 5b 6a 5d | ......cur_term->rows[i].cells[j] |
| c9e0 | 2e 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 | .bg.=.w.defaultbg;.............. |
| ca00 | 20 20 7d 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 | ..}...(............cur_term->row |
| ca20 | 73 5b 69 5d 2e 64 69 72 74 79 20 3d 20 31 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 05 | s[i].dirty.=.1;............}.... |
| ca40 | 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 2b 73 74 61 74 69 63 20 76 6f 69 64 20 63 75 | ....}....}.......+static.void.cu |
| ca60 | 72 73 6f 72 5f 6d 6f 76 65 28 69 6e 74 20 72 6f 77 2c 20 69 6e 74 20 63 6f 6c 29 20 7b 00 00 00 | rsor_move(int.row,.int.col).{... |
| ca80 | 27 20 20 20 20 69 66 20 28 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 4f | '....if.(cur_term->mode.&.MODE_O |
| caa0 | 52 49 47 49 4e 29 20 7b 00 00 00 1d 20 20 20 20 20 20 20 20 72 6f 77 20 2b 3d 20 63 75 72 5f 74 | RIGIN).{............row.+=.cur_t |
| cac0 | 65 72 6d 2d 3e 74 6f 70 3b 00 00 00 35 20 20 20 20 20 20 20 20 69 66 20 28 72 6f 77 20 3e 20 63 | erm->top;...5........if.(row.>.c |
| cae0 | 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 29 20 72 6f 77 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f | ur_term->bot).row.=.cur_term->bo |
| cb00 | 74 3b 00 00 00 05 20 20 20 20 7d 00 00 00 5b 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 | t;........}...[....cur_term->cur |
| cb20 | 2e 72 6f 77 20 3d 20 72 6f 77 20 3c 20 30 20 3f 20 30 20 3a 20 28 72 6f 77 20 3e 3d 20 63 75 72 | .row.=.row.<.0.?.0.:.(row.>=.cur |
| cb40 | 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 20 3f 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 20 2d | _term->nrows.?.cur_term->nrows.- |
| cb60 | 20 31 20 3a 20 72 6f 77 29 3b 00 00 00 5b 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e | .1.:.row);...[....cur_term->cur. |
| cb80 | 63 6f 6c 20 3d 20 63 6f 6c 20 3c 20 30 20 3f 20 30 20 3a 20 28 63 6f 6c 20 3e 3d 20 63 75 72 5f | col.=.col.<.0.?.0.:.(col.>=.cur_ |
| cba0 | 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 3f 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 2d 20 | term->ncols.?.cur_term->ncols.-. |
| cbc0 | 31 20 3a 20 63 6f 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3a 73 74 61 74 69 63 20 76 6f 69 | 1.:.col);....}.......:static.voi |
| cbe0 | 64 20 63 6c 65 61 72 5f 72 65 67 69 6f 6e 28 69 6e 74 20 72 31 2c 20 69 6e 74 20 63 31 2c 20 69 | d.clear_region(int.r1,.int.c1,.i |
| cc00 | 6e 74 20 72 32 2c 20 69 6e 74 20 63 32 29 20 7b 00 00 00 24 20 20 20 20 66 6f 72 20 28 69 6e 74 | nt.r2,.int.c2).{...$....for.(int |
| cc20 | 20 72 20 3d 20 72 31 3b 20 72 20 3c 3d 20 72 32 3b 20 72 2b 2b 29 20 7b 00 00 00 34 20 20 20 20 | .r.=.r1;.r.<=.r2;.r++).{...4.... |
| cc40 | 20 20 20 20 69 66 20 28 72 20 3c 20 30 20 7c 7c 20 72 20 3e 3d 20 63 75 72 5f 74 65 72 6d 2d 3e | ....if.(r.<.0.||.r.>=.cur_term-> |
| cc60 | 6e 72 6f 77 73 29 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 28 20 20 20 20 20 20 20 20 66 6f 72 20 | nrows).continue;...(........for. |
| cc80 | 28 69 6e 74 20 63 20 3d 20 63 31 3b 20 63 20 3c 3d 20 63 32 3b 20 63 2b 2b 29 20 7b 00 00 00 38 | (int.c.=.c1;.c.<=.c2;.c++).{...8 |
| cca0 | 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 20 3c 20 30 20 7c 7c 20 63 20 3e 3d 20 63 75 | ............if.(c.<.0.||.c.>=.cu |
| ccc0 | 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 29 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 37 20 20 20 20 | r_term->ncols).continue;...7.... |
| cce0 | 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 72 5d 2e 63 65 6c 6c 73 5b | ........cur_term->rows[r].cells[ |
| cd00 | 63 5d 2e 63 6f 64 65 70 6f 69 6e 74 20 3d 20 27 20 27 3b 00 00 00 30 20 20 20 20 20 20 20 20 20 | c].codepoint.=.'.';...0......... |
| cd20 | 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 72 5d 2e 63 65 6c 6c 73 5b 63 5d 2e 61 74 | ...cur_term->rows[r].cells[c].at |
| cd40 | 74 72 20 3d 20 30 3b 00 00 00 38 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d | tr.=.0;...8............cur_term- |
| cd60 | 3e 72 6f 77 73 5b 72 5d 2e 63 65 6c 6c 73 5b 63 5d 2e 66 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 | >rows[r].cells[c].fg.=.w.default |
| cd80 | 66 67 3b 00 00 00 38 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 | fg;...8............cur_term->row |
| cda0 | 73 5b 72 5d 2e 63 65 6c 6c 73 5b 63 5d 2e 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b 00 | s[r].cells[c].bg.=.w.defaultbg;. |
| cdc0 | 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 24 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d | ...........}...$........cur_term |
| cde0 | 2d 3e 72 6f 77 73 5b 72 5d 2e 64 69 72 74 79 20 3d 20 31 3b 00 00 00 05 20 20 20 20 7d 00 00 00 | ->rows[r].dirty.=.1;........}... |
| ce00 | 01 7d 00 00 00 00 00 00 00 1e 73 74 61 74 69 63 20 76 6f 69 64 20 68 61 6e 64 6c 65 5f 73 67 72 | .}........static.void.handle_sgr |
| ce20 | 28 76 6f 69 64 29 20 7b 00 00 00 5c 20 20 20 20 69 66 20 28 63 73 69 2e 61 72 67 63 20 3d 3d 20 | (void).{...\....if.(csi.argc.==. |
| ce40 | 30 29 20 7b 20 63 75 72 5f 61 74 74 72 20 3d 20 30 3b 20 63 75 72 5f 66 67 20 3d 20 77 2e 64 65 | 0).{.cur_attr.=.0;.cur_fg.=.w.de |
| ce60 | 66 61 75 6c 74 66 67 3b 20 63 75 72 5f 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b 20 72 | faultfg;.cur_bg.=.w.defaultbg;.r |
| ce80 | 65 74 75 72 6e 3b 20 7d 00 00 00 28 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 | eturn;.}...(....for.(int.i.=.0;. |
| cea0 | 69 20 3c 20 63 73 69 2e 61 72 67 63 3b 20 69 2b 2b 29 20 7b 00 00 00 22 20 20 20 20 20 20 20 20 | i.<.csi.argc;.i++).{..."........ |
| cec0 | 69 6e 74 20 70 20 3d 20 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 5d 29 3b 00 00 00 52 20 20 | int.p.=.atoi(csi.argv[i]);...R.. |
| cee0 | 20 20 20 20 20 20 69 66 20 28 70 20 3d 3d 20 30 29 20 20 7b 20 63 75 72 5f 61 74 74 72 20 3d 20 | ......if.(p.==.0)..{.cur_attr.=. |
| cf00 | 30 3b 20 63 75 72 5f 66 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 66 67 3b 20 63 75 72 5f 62 67 20 | 0;.cur_fg.=.w.defaultfg;.cur_bg. |
| cf20 | 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b 20 7d 00 00 00 30 20 20 20 20 20 20 20 20 65 6c 73 65 | =.w.defaultbg;.}...0........else |
| cf40 | 20 69 66 20 28 70 20 3d 3d 20 31 29 20 20 63 75 72 5f 61 74 74 72 20 7c 3d 20 41 54 54 52 5f 42 | .if.(p.==.1)..cur_attr.|=.ATTR_B |
| cf60 | 4f 4c 44 3b 00 00 00 32 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 33 29 | OLD;...2........else.if.(p.==.3) |
| cf80 | 20 20 63 75 72 5f 61 74 74 72 20 7c 3d 20 41 54 54 52 5f 49 54 41 4c 49 43 3b 00 00 00 35 20 20 | ..cur_attr.|=.ATTR_ITALIC;...5.. |
| cfa0 | 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 34 29 20 20 63 75 72 5f 61 74 74 72 | ......else.if.(p.==.4)..cur_attr |
| cfc0 | 20 7c 3d 20 41 54 54 52 5f 55 4e 44 45 52 4c 49 4e 45 3b 00 00 00 31 20 20 20 20 20 20 20 20 65 | .|=.ATTR_UNDERLINE;...1........e |
| cfe0 | 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 35 29 20 20 63 75 72 5f 61 74 74 72 20 7c 3d 20 41 54 54 | lse.if.(p.==.5)..cur_attr.|=.ATT |
| d000 | 52 5f 42 4c 49 4e 4b 3b 00 00 00 33 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d | R_BLINK;...3........else.if.(p.= |
| d020 | 3d 20 37 29 20 20 63 75 72 5f 61 74 74 72 20 7c 3d 20 41 54 54 52 5f 52 45 56 45 52 53 45 3b 00 | =.7)..cur_attr.|=.ATTR_REVERSE;. |
| d040 | 00 00 31 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 32 32 29 20 63 75 72 | ..1........else.if.(p.==.22).cur |
| d060 | 5f 61 74 74 72 20 26 3d 20 7e 41 54 54 52 5f 42 4f 4c 44 3b 00 00 00 33 20 20 20 20 20 20 20 20 | _attr.&=.~ATTR_BOLD;...3........ |
| d080 | 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 32 33 29 20 63 75 72 5f 61 74 74 72 20 26 3d 20 7e 41 | else.if.(p.==.23).cur_attr.&=.~A |
| d0a0 | 54 54 52 5f 49 54 41 4c 49 43 3b 00 00 00 36 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 | TTR_ITALIC;...6........else.if.( |
| d0c0 | 70 20 3d 3d 20 32 34 29 20 63 75 72 5f 61 74 74 72 20 26 3d 20 7e 41 54 54 52 5f 55 4e 44 45 52 | p.==.24).cur_attr.&=.~ATTR_UNDER |
| d0e0 | 4c 49 4e 45 3b 00 00 00 32 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 32 | LINE;...2........else.if.(p.==.2 |
| d100 | 35 29 20 63 75 72 5f 61 74 74 72 20 26 3d 20 7e 41 54 54 52 5f 42 4c 49 4e 4b 3b 00 00 00 34 20 | 5).cur_attr.&=.~ATTR_BLINK;...4. |
| d120 | 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 32 37 29 20 63 75 72 5f 61 74 74 | .......else.if.(p.==.27).cur_att |
| d140 | 72 20 26 3d 20 7e 41 54 54 52 5f 52 45 56 45 52 53 45 3b 00 00 00 3f 20 20 20 20 20 20 20 20 65 | r.&=.~ATTR_REVERSE;...?........e |
| d160 | 6c 73 65 20 69 66 20 28 70 20 3e 3d 20 33 30 20 26 26 20 70 20 3c 3d 20 33 37 29 20 63 75 72 5f | lse.if.(p.>=.30.&&.p.<=.37).cur_ |
| d180 | 66 67 20 3d 20 63 6f 6c 6f 72 32 35 36 5b 70 20 2d 20 33 30 5d 3b 00 00 00 1b 20 20 20 20 20 20 | fg.=.color256[p.-.30];.......... |
| d1a0 | 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 33 38 29 20 7b 00 00 00 3f 20 20 20 20 20 20 20 | ..else.if.(p.==.38).{...?....... |
| d1c0 | 20 20 20 20 20 69 66 20 28 69 20 2b 20 32 20 3c 20 63 73 69 2e 61 72 67 63 20 26 26 20 61 74 6f | .....if.(i.+.2.<.csi.argc.&&.ato |
| d1e0 | 69 28 63 73 69 2e 61 72 67 76 5b 69 2b 31 5d 29 20 3d 3d 20 35 29 20 7b 00 00 00 3e 20 20 20 20 | i(csi.argv[i+1]).==.5).{...>.... |
| d200 | 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 66 67 20 3d 20 63 6f 6c 6f 72 32 35 36 5b 61 74 | ............cur_fg.=.color256[at |
| d220 | 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 2b 32 5d 29 20 26 20 30 78 66 66 5d 3b 00 00 00 17 20 20 | oi(csi.argv[i+2]).&.0xff];...... |
| d240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 20 2b 3d 20 32 3b 00 00 00 46 20 20 20 20 20 20 20 | ..............i.+=.2;...F....... |
| d260 | 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 69 20 2b 20 34 20 3c 20 63 73 69 2e 61 72 67 63 | .....}.else.if.(i.+.4.<.csi.argc |
| d280 | 20 26 26 20 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 2b 31 5d 29 20 3d 3d 20 32 29 20 7b 00 | .&&.atoi(csi.argv[i+1]).==.2).{. |
| d2a0 | 00 00 61 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 66 67 20 3d 20 70 61 63 6b | ..a................cur_fg.=.pack |
| d2c0 | 5f 72 67 62 28 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 2b 32 5d 29 2c 20 61 74 6f 69 28 63 | _rgb(atoi(csi.argv[i+2]),.atoi(c |
| d2e0 | 73 69 2e 61 72 67 76 5b 69 2b 33 5d 29 2c 20 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 2b 34 | si.argv[i+3]),.atoi(csi.argv[i+4 |
| d300 | 5d 29 29 3b 00 00 00 17 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 20 2b 3d 20 34 3b 00 | ]));....................i.+=.4;. |
| d320 | 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 | ...............}............}... |
| d340 | 2f 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 33 39 29 20 63 75 72 5f 66 | /........else.if.(p.==.39).cur_f |
| d360 | 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 66 67 3b 00 00 00 3f 20 20 20 20 20 20 20 20 65 6c 73 65 | g.=.w.defaultfg;...?........else |
| d380 | 20 69 66 20 28 70 20 3e 3d 20 34 30 20 26 26 20 70 20 3c 3d 20 34 37 29 20 63 75 72 5f 62 67 20 | .if.(p.>=.40.&&.p.<=.47).cur_bg. |
| d3a0 | 3d 20 63 6f 6c 6f 72 32 35 36 5b 70 20 2d 20 34 30 5d 3b 00 00 00 1b 20 20 20 20 20 20 20 20 65 | =.color256[p.-.40];............e |
| d3c0 | 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 34 38 29 20 7b 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 | lse.if.(p.==.48).{...?.......... |
| d3e0 | 20 20 69 66 20 28 69 20 2b 20 32 20 3c 20 63 73 69 2e 61 72 67 63 20 26 26 20 61 74 6f 69 28 63 | ..if.(i.+.2.<.csi.argc.&&.atoi(c |
| d400 | 73 69 2e 61 72 67 76 5b 69 2b 31 5d 29 20 3d 3d 20 35 29 20 7b 00 00 00 3e 20 20 20 20 20 20 20 | si.argv[i+1]).==.5).{...>....... |
| d420 | 20 20 20 20 20 20 20 20 20 63 75 72 5f 62 67 20 3d 20 63 6f 6c 6f 72 32 35 36 5b 61 74 6f 69 28 | .........cur_bg.=.color256[atoi( |
| d440 | 63 73 69 2e 61 72 67 76 5b 69 2b 32 5d 29 20 26 20 30 78 66 66 5d 3b 00 00 00 17 20 20 20 20 20 | csi.argv[i+2]).&.0xff];......... |
| d460 | 20 20 20 20 20 20 20 20 20 20 20 69 20 2b 3d 20 32 3b 00 00 00 46 20 20 20 20 20 20 20 20 20 20 | ...........i.+=.2;...F.......... |
| d480 | 20 20 7d 20 65 6c 73 65 20 69 66 20 28 69 20 2b 20 34 20 3c 20 63 73 69 2e 61 72 67 63 20 26 26 | ..}.else.if.(i.+.4.<.csi.argc.&& |
| d4a0 | 20 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 2b 31 5d 29 20 3d 3d 20 32 29 20 7b 00 00 00 61 | .atoi(csi.argv[i+1]).==.2).{...a |
| d4c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 62 67 20 3d 20 70 61 63 6b 5f 72 67 | ................cur_bg.=.pack_rg |
| d4e0 | 62 28 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 2b 32 5d 29 2c 20 61 74 6f 69 28 63 73 69 2e | b(atoi(csi.argv[i+2]),.atoi(csi. |
| d500 | 61 72 67 76 5b 69 2b 33 5d 29 2c 20 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 2b 34 5d 29 29 | argv[i+3]),.atoi(csi.argv[i+4])) |
| d520 | 3b 00 00 00 17 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 20 2b 3d 20 34 3b 00 00 00 0d | ;....................i.+=.4;.... |
| d540 | 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 2f 20 20 | ............}............}.../.. |
| d560 | 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 20 3d 3d 20 34 39 29 20 63 75 72 5f 62 67 20 3d | ......else.if.(p.==.49).cur_bg.= |
| d580 | 20 77 2e 64 65 66 61 75 6c 74 62 67 3b 00 00 00 43 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 | .w.defaultbg;...C........else.if |
| d5a0 | 20 28 70 20 3e 3d 20 39 30 20 26 26 20 70 20 3c 3d 20 39 37 29 20 63 75 72 5f 66 67 20 3d 20 63 | .(p.>=.90.&&.p.<=.97).cur_fg.=.c |
| d5c0 | 6f 6c 6f 72 32 35 36 5b 70 20 2d 20 39 30 20 2b 20 38 5d 3b 00 00 00 46 20 20 20 20 20 20 20 20 | olor256[p.-.90.+.8];...F........ |
| d5e0 | 65 6c 73 65 20 69 66 20 28 70 20 3e 3d 20 31 30 30 20 26 26 20 70 20 3c 3d 20 31 30 37 29 20 63 | else.if.(p.>=.100.&&.p.<=.107).c |
| d600 | 75 72 5f 62 67 20 3d 20 63 6f 6c 6f 72 32 35 36 5b 70 20 2d 20 31 30 30 20 2b 20 38 5d 3b 00 00 | ur_bg.=.color256[p.-.100.+.8];.. |
| d620 | 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 22 73 74 61 74 69 63 20 76 6f 69 64 20 | ......}....}......."static.void. |
| d640 | 68 61 6e 64 6c 65 5f 63 73 69 28 63 68 61 72 20 63 6d 64 29 20 7b 00 00 00 32 20 20 20 20 69 6e | handle_csi(char.cmd).{...2....in |
| d660 | 74 20 70 30 20 3d 20 63 73 69 2e 61 72 67 63 20 3e 20 30 20 3f 20 61 74 6f 69 28 63 73 69 2e 61 | t.p0.=.csi.argc.>.0.?.atoi(csi.a |
| d680 | 72 67 76 5b 30 5d 29 20 3a 20 30 3b 00 00 00 32 20 20 20 20 69 6e 74 20 70 31 20 3d 20 63 73 69 | rgv[0]).:.0;...2....int.p1.=.csi |
| d6a0 | 2e 61 72 67 63 20 3e 20 31 20 3f 20 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 31 5d 29 20 3a 20 | .argc.>.1.?.atoi(csi.argv[1]).:. |
| d6c0 | 30 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 72 20 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 | 0;........int.r..=.cur_term->cur |
| d6e0 | 2e 72 6f 77 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 63 20 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e | .row;........int.c..=.cur_term-> |
| d700 | 63 75 72 2e 63 6f 6c 3b 00 00 00 00 00 00 00 12 20 20 20 20 73 77 69 74 63 68 20 28 63 6d 64 29 | cur.col;............switch.(cmd) |
| d720 | 20 7b 00 00 00 37 20 20 20 20 63 61 73 65 20 27 41 27 3a 20 63 75 72 73 6f 72 5f 6d 6f 76 65 28 | .{...7....case.'A':.cursor_move( |
| d740 | 72 20 2d 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 2c 20 63 29 3b 20 62 72 65 61 6b 3b 00 00 00 | r.-.(p0.?.p0.:.1),.c);.break;... |
| d760 | 37 20 20 20 20 63 61 73 65 20 27 42 27 3a 20 63 75 72 73 6f 72 5f 6d 6f 76 65 28 72 20 2b 20 28 | 7....case.'B':.cursor_move(r.+.( |
| d780 | 70 30 20 3f 20 70 30 20 3a 20 31 29 2c 20 63 29 3b 20 62 72 65 61 6b 3b 00 00 00 37 20 20 20 20 | p0.?.p0.:.1),.c);.break;...7.... |
| d7a0 | 63 61 73 65 20 27 43 27 3a 20 63 75 72 73 6f 72 5f 6d 6f 76 65 28 72 2c 20 63 20 2b 20 28 70 30 | case.'C':.cursor_move(r,.c.+.(p0 |
| d7c0 | 20 3f 20 70 30 20 3a 20 31 29 29 3b 20 62 72 65 61 6b 3b 00 00 00 37 20 20 20 20 63 61 73 65 20 | .?.p0.:.1));.break;...7....case. |
| d7e0 | 27 44 27 3a 20 63 75 72 73 6f 72 5f 6d 6f 76 65 28 72 2c 20 63 20 2d 20 28 70 30 20 3f 20 70 30 | 'D':.cursor_move(r,.c.-.(p0.?.p0 |
| d800 | 20 3a 20 31 29 29 3b 20 62 72 65 61 6b 3b 00 00 00 37 20 20 20 20 63 61 73 65 20 27 45 27 3a 20 | .:.1));.break;...7....case.'E':. |
| d820 | 63 75 72 73 6f 72 5f 6d 6f 76 65 28 72 20 2b 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 2c 20 30 | cursor_move(r.+.(p0.?.p0.:.1),.0 |
| d840 | 29 3b 20 62 72 65 61 6b 3b 00 00 00 37 20 20 20 20 63 61 73 65 20 27 46 27 3a 20 63 75 72 73 6f | );.break;...7....case.'F':.curso |
| d860 | 72 5f 6d 6f 76 65 28 72 20 2d 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 2c 20 30 29 3b 20 62 72 | r_move(r.-.(p0.?.p0.:.1),.0);.br |
| d880 | 65 61 6b 3b 00 00 00 37 20 20 20 20 63 61 73 65 20 27 47 27 3a 20 63 75 72 73 6f 72 5f 6d 6f 76 | eak;...7....case.'G':.cursor_mov |
| d8a0 | 65 28 72 2c 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 20 2d 20 31 29 3b 20 62 72 65 61 6b 3b 00 | e(r,.(p0.?.p0.:.1).-.1);.break;. |
| d8c0 | 00 00 51 20 20 20 20 63 61 73 65 20 27 48 27 3a 20 63 61 73 65 20 27 66 27 3a 20 63 75 72 73 6f | ..Q....case.'H':.case.'f':.curso |
| d8e0 | 72 5f 6d 6f 76 65 28 28 70 30 20 3f 20 70 30 20 3a 20 31 29 20 2d 20 31 2c 20 28 70 31 20 3f 20 | r_move((p0.?.p0.:.1).-.1,.(p1.?. |
| d900 | 70 31 20 3a 20 31 29 20 2d 20 31 29 3b 20 62 72 65 61 6b 3b 00 00 00 0d 20 20 20 20 63 61 73 65 | p1.:.1).-.1);.break;........case |
| d920 | 20 27 4a 27 3a 00 00 00 52 20 20 20 20 20 20 20 20 69 66 20 28 70 30 20 3d 3d 20 30 29 20 63 6c | .'J':...R........if.(p0.==.0).cl |
| d940 | 65 61 72 5f 72 65 67 69 6f 6e 28 72 2c 20 63 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 | ear_region(r,.c,.cur_term->nrows |
| d960 | 20 2d 20 31 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 2d 20 31 29 3b 00 00 00 33 20 | .-.1,.cur_term->ncols.-.1);...3. |
| d980 | 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 30 20 3d 3d 20 31 29 20 63 6c 65 61 72 5f 72 | .......else.if.(p0.==.1).clear_r |
| d9a0 | 65 67 69 6f 6e 28 30 2c 20 30 2c 20 72 2c 20 63 29 3b 00 00 00 4a 20 20 20 20 20 20 20 20 65 6c | egion(0,.0,.r,.c);...J........el |
| d9c0 | 73 65 20 63 6c 65 61 72 5f 72 65 67 69 6f 6e 28 30 2c 20 30 2c 20 63 75 72 5f 74 65 72 6d 2d 3e | se.clear_region(0,.0,.cur_term-> |
| d9e0 | 6e 72 6f 77 73 20 2d 20 31 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 2d 20 31 29 3b | nrows.-.1,.cur_term->ncols.-.1); |
| da00 | 00 00 00 0e 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 0d 20 20 20 20 63 61 73 65 20 27 | ............break;........case.' |
| da20 | 4b 27 3a 00 00 00 40 20 20 20 20 20 20 20 20 69 66 20 28 70 30 20 3d 3d 20 30 29 20 63 6c 65 61 | K':...@........if.(p0.==.0).clea |
| da40 | 72 5f 72 65 67 69 6f 6e 28 72 2c 20 63 2c 20 72 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c | r_region(r,.c,.r,.cur_term->ncol |
| da60 | 73 20 2d 20 31 29 3b 00 00 00 33 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 30 20 3d | s.-.1);...3........else.if.(p0.= |
| da80 | 3d 20 31 29 20 63 6c 65 61 72 5f 72 65 67 69 6f 6e 28 72 2c 20 30 2c 20 72 2c 20 63 29 3b 00 00 | =.1).clear_region(r,.0,.r,.c);.. |
| daa0 | 00 38 20 20 20 20 20 20 20 20 65 6c 73 65 20 63 6c 65 61 72 5f 72 65 67 69 6f 6e 28 72 2c 20 30 | .8........else.clear_region(r,.0 |
| dac0 | 2c 20 72 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 2d 20 31 29 3b 00 00 00 0e 20 20 | ,.r,.cur_term->ncols.-.1);...... |
| dae0 | 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 43 20 20 20 20 63 61 73 65 20 27 4c 27 3a 20 74 65 | ......break;...C....case.'L':.te |
| db00 | 72 6d 5f 73 63 72 6f 6c 6c 28 72 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 2c 20 2d 28 70 30 | rm_scroll(r,.cur_term->bot,.-(p0 |
| db20 | 20 3f 20 70 30 20 3a 20 31 29 29 3b 20 62 72 65 61 6b 3b 00 00 00 43 20 20 20 20 63 61 73 65 20 | .?.p0.:.1));.break;...C....case. |
| db40 | 27 4d 27 3a 20 74 65 72 6d 5f 73 63 72 6f 6c 6c 28 72 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f | 'M':.term_scroll(r,.cur_term->bo |
| db60 | 74 2c 20 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 29 3b 20 62 72 65 61 6b 3b 00 00 00 0f 20 20 | t,..(p0.?.p0.:.1));.break;...... |
| db80 | 20 20 63 61 73 65 20 27 50 27 3a 20 7b 00 00 00 1c 20 20 20 20 20 20 20 20 69 6e 74 20 6e 20 3d | ..case.'P':.{............int.n.= |
| dba0 | 20 70 30 20 3f 20 70 30 20 3a 20 31 3b 00 00 00 26 20 20 20 20 20 20 20 20 52 6f 77 20 2a 72 6f | .p0.?.p0.:.1;...&........Row.*ro |
| dbc0 | 77 20 3d 20 26 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 72 5d 3b 00 00 00 5e 20 20 20 20 20 | w.=.&cur_term->rows[r];...^..... |
| dbe0 | 20 20 20 6d 65 6d 6d 6f 76 65 28 26 72 6f 77 2d 3e 63 65 6c 6c 73 5b 63 5d 2c 20 26 72 6f 77 2d | ...memmove(&row->cells[c],.&row- |
| dc00 | 3e 63 65 6c 6c 73 5b 63 20 2b 20 6e 5d 2c 20 28 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 | >cells[c.+.n],.(cur_term->ncols. |
| dc20 | 2d 20 63 20 2d 20 6e 29 20 2a 20 73 69 7a 65 6f 66 28 43 65 6c 6c 29 29 3b 00 00 00 45 20 20 20 | -.c.-.n).*.sizeof(Cell));...E... |
| dc40 | 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c | .....for.(int.j.=.cur_term->ncol |
| dc60 | 73 20 2d 20 6e 3b 20 6a 20 3c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 3b 20 6a 2b 2b 29 | s.-.n;.j.<.cur_term->ncols;.j++) |
| dc80 | 20 7b 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 77 2d 3e 63 65 6c 6c 73 5b 6a 5d 2e | .{...B............row->cells[j]. |
| dca0 | 63 6f 64 65 70 6f 69 6e 74 20 3d 20 27 20 27 3b 20 72 6f 77 2d 3e 63 65 6c 6c 73 5b 6a 5d 2e 61 | codepoint.=.'.';.row->cells[j].a |
| dcc0 | 74 74 72 20 3d 20 30 3b 00 00 00 4b 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 77 2d 3e 63 65 6c | ttr.=.0;...K............row->cel |
| dce0 | 6c 73 5b 6a 5d 2e 66 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 66 67 3b 20 72 6f 77 2d 3e 63 65 6c | ls[j].fg.=.w.defaultfg;.row->cel |
| dd00 | 6c 73 5b 6a 5d 2e 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b 00 00 00 09 20 20 20 20 20 | ls[j].bg.=.w.defaultbg;......... |
| dd20 | 20 20 20 7d 00 00 00 17 20 20 20 20 20 20 20 20 72 6f 77 2d 3e 64 69 72 74 79 20 3d 20 31 3b 00 | ...}............row->dirty.=.1;. |
| dd40 | 00 00 0c 20 20 20 20 7d 20 62 72 65 61 6b 3b 00 00 00 4f 20 20 20 20 63 61 73 65 20 27 53 27 3a | .......}.break;...O....case.'S': |
| dd60 | 20 74 65 72 6d 5f 73 63 72 6f 6c 6c 28 63 75 72 5f 74 65 72 6d 2d 3e 74 6f 70 2c 20 63 75 72 5f | .term_scroll(cur_term->top,.cur_ |
| dd80 | 74 65 72 6d 2d 3e 62 6f 74 2c 20 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 29 3b 20 62 72 65 61 | term->bot,..(p0.?.p0.:.1));.brea |
| dda0 | 6b 3b 00 00 00 4f 20 20 20 20 63 61 73 65 20 27 54 27 3a 20 74 65 72 6d 5f 73 63 72 6f 6c 6c 28 | k;...O....case.'T':.term_scroll( |
| ddc0 | 63 75 72 5f 74 65 72 6d 2d 3e 74 6f 70 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 2c 20 2d 28 | cur_term->top,.cur_term->bot,.-( |
| dde0 | 70 30 20 3f 20 70 30 20 3a 20 31 29 29 3b 20 62 72 65 61 6b 3b 00 00 00 42 20 20 20 20 63 61 73 | p0.?.p0.:.1));.break;...B....cas |
| de00 | 65 20 27 58 27 3a 20 63 6c 65 61 72 5f 72 65 67 69 6f 6e 28 72 2c 20 63 2c 20 72 2c 20 63 20 2b | e.'X':.clear_region(r,.c,.r,.c.+ |
| de20 | 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 20 2d 20 31 29 3b 20 62 72 65 61 6b 3b 00 00 00 37 20 | .(p0.?.p0.:.1).-.1);.break;...7. |
| de40 | 20 20 20 63 61 73 65 20 27 64 27 3a 20 63 75 72 73 6f 72 5f 6d 6f 76 65 28 28 70 30 20 3f 20 70 | ...case.'d':.cursor_move((p0.?.p |
| de60 | 30 20 3a 20 31 29 20 2d 20 31 2c 20 63 29 3b 20 62 72 65 61 6b 3b 00 00 00 22 20 20 20 20 63 61 | 0.:.1).-.1,.c);.break;..."....ca |
| de80 | 73 65 20 27 6d 27 3a 20 68 61 6e 64 6c 65 5f 73 67 72 28 29 3b 20 62 72 65 61 6b 3b 00 00 00 0d | se.'m':.handle_sgr();.break;.... |
| dea0 | 20 20 20 20 63 61 73 65 20 27 72 27 3a 00 00 00 2a 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 | ....case.'r':...*........cur_ter |
| dec0 | 6d 2d 3e 74 6f 70 20 3d 20 28 70 30 20 3f 20 70 30 20 3a 20 31 29 20 2d 20 31 3b 00 00 00 38 20 | m->top.=.(p0.?.p0.:.1).-.1;...8. |
| dee0 | 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 20 3d 20 28 70 31 20 3f 20 70 31 20 | .......cur_term->bot.=.(p1.?.p1. |
| df00 | 3a 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 29 20 2d 20 31 3b 00 00 00 1a 20 20 20 20 20 | :.cur_term->nrows).-.1;......... |
| df20 | 20 20 20 63 75 72 73 6f 72 5f 6d 6f 76 65 28 30 2c 20 30 29 3b 00 00 00 0e 20 20 20 20 20 20 20 | ...cursor_move(0,.0);........... |
| df40 | 20 62 72 65 61 6b 3b 00 00 00 35 20 20 20 20 63 61 73 65 20 27 73 27 3a 20 63 75 72 5f 74 65 72 | .break;...5....case.'s':.cur_ter |
| df60 | 6d 2d 3e 73 61 76 65 64 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 3b 20 62 72 65 61 6b 3b | m->saved.=.cur_term->cur;.break; |
| df80 | 00 00 00 36 20 20 20 20 63 61 73 65 20 27 75 27 3a 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 20 | ...6....case.'u':.cur_term->cur. |
| dfa0 | 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 73 61 76 65 64 3b 20 62 72 65 61 6b 3b 00 00 00 19 20 20 | .=.cur_term->saved;.break;...... |
| dfc0 | 20 20 63 61 73 65 20 27 68 27 3a 20 63 61 73 65 20 27 6c 27 3a 20 7b 00 00 00 1f 20 20 20 20 20 | ..case.'h':.case.'l':.{......... |
| dfe0 | 20 20 20 69 6e 74 20 76 61 6c 20 3d 20 28 63 6d 64 20 3d 3d 20 27 68 27 29 3b 00 00 00 2c 20 20 | ...int.val.=.(cmd.==.'h');...,.. |
| e000 | 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 63 73 69 2e 61 72 | ......for.(int.i.=.0;.i.<.csi.ar |
| e020 | 67 63 3b 20 69 2b 2b 29 20 7b 00 00 00 26 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 71 20 | gc;.i++).{...&............int.q. |
| e040 | 3d 20 61 74 6f 69 28 63 73 69 2e 61 72 67 76 5b 69 5d 29 3b 00 00 00 1b 20 20 20 20 20 20 20 20 | =.atoi(csi.argv[i]);............ |
| e060 | 20 20 20 20 69 66 20 28 63 73 69 2e 70 72 69 76 29 20 7b 00 00 00 75 20 20 20 20 20 20 20 20 20 | ....if.(csi.priv).{...u......... |
| e080 | 20 20 20 20 20 20 20 69 66 20 28 71 20 3d 3d 20 31 29 20 20 20 20 7b 20 69 66 20 28 76 61 6c 29 | .......if.(q.==.1)....{.if.(val) |
| e0a0 | 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 41 50 50 4b 45 59 50 41 | .cur_term->mode.|=.MODE_APPKEYPA |
| e0c0 | 44 3b 20 65 6c 73 65 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 5f | D;.else.cur_term->mode.&=.~MODE_ |
| e0e0 | 41 50 50 4b 45 59 50 41 44 3b 20 7d 00 00 00 81 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | APPKEYPAD;.}.................... |
| e100 | 69 66 20 28 71 20 3d 3d 20 36 29 20 20 20 20 7b 20 69 66 20 28 76 61 6c 29 20 63 75 72 5f 74 65 | if.(q.==.6)....{.if.(val).cur_te |
| e120 | 72 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 4f 52 49 47 49 4e 3b 20 65 6c 73 65 20 63 75 | rm->mode.|=.MODE_ORIGIN;.else.cu |
| e140 | 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 5f 4f 52 49 47 49 4e 3b 20 63 75 | r_term->mode.&=.~MODE_ORIGIN;.cu |
| e160 | 72 73 6f 72 5f 6d 6f 76 65 28 30 2c 30 29 3b 20 7d 00 00 00 6b 20 20 20 20 20 20 20 20 20 20 20 | rsor_move(0,0);.}...k........... |
| e180 | 20 20 20 20 20 69 66 20 28 71 20 3d 3d 20 37 29 20 20 20 20 7b 20 69 66 20 28 76 61 6c 29 20 63 | .....if.(q.==.7)....{.if.(val).c |
| e1a0 | 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 57 52 41 50 3b 20 65 6c 73 65 | ur_term->mode.|=.MODE_WRAP;.else |
| e1c0 | 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 5f 57 52 41 50 3b 20 7d | .cur_term->mode.&=.~MODE_WRAP;.} |
| e1e0 | 00 00 00 79 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 71 20 3d 3d 20 32 35 29 | ...y................if.(q.==.25) |
| e200 | 20 20 20 7b 20 69 66 20 28 76 61 6c 29 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d 20 | ...{.if.(val).cur_term->mode.&=. |
| e220 | 7e 4d 4f 44 45 5f 48 49 44 45 5f 43 55 52 53 4f 52 3b 20 65 6c 73 65 20 63 75 72 5f 74 65 72 6d | ~MODE_HIDE_CURSOR;.else.cur_term |
| e240 | 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 48 49 44 45 5f 43 55 52 53 4f 52 3b 20 7d 00 00 00 | ->mode.|=.MODE_HIDE_CURSOR;.}... |
| e260 | 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 71 20 3d 3d 20 31 30 34 39 20 7c | 8................if.(q.==.1049.| |
| e280 | 7c 20 71 20 3d 3d 20 34 37 20 7c 7c 20 71 20 3d 3d 20 31 30 34 37 29 20 7b 00 00 00 44 20 20 20 | |.q.==.47.||.q.==.1047).{...D... |
| e2a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 76 61 6c 20 26 26 20 21 28 63 75 | .................if.(val.&&.!(cu |
| e2c0 | 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 41 4c 54 53 43 52 45 45 4e 29 29 20 | r_term->mode.&.MODE_ALTSCREEN)). |
| e2e0 | 7b 00 00 00 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6c 74 | {...,........................alt |
| e300 | 74 65 72 6d 20 3d 20 2a 63 75 72 5f 74 65 72 6d 3b 00 00 00 2c 20 20 20 20 20 20 20 20 20 20 20 | term.=.*cur_term;...,........... |
| e320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 20 3d 20 26 61 6c 74 74 65 72 6d | .............cur_term.=.&altterm |
| e340 | 3b 00 00 00 3c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 72 | ;...<........................ter |
| e360 | 6d 5f 69 6e 69 74 28 63 75 72 5f 74 65 72 6d 2c 20 77 2e 72 6f 77 73 2c 20 77 2e 63 6f 6c 73 29 | m_init(cur_term,.w.rows,.w.cols) |
| e380 | 3b 00 00 00 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 | ;...9........................cur |
| e3a0 | 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 41 4c 54 53 43 52 45 45 4e 3b 00 00 | _term->mode.|=.MODE_ALTSCREEN;.. |
| e3c0 | 00 24 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 72 74 79 5f | .$........................dirty_ |
| e3e0 | 61 6c 6c 28 29 3b 00 00 00 4b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 | all();...K....................}. |
| e400 | 65 6c 73 65 20 69 66 20 28 21 76 61 6c 20 26 26 20 28 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 | else.if.(!val.&&.(cur_term->mode |
| e420 | 20 26 20 4d 4f 44 45 5f 41 4c 54 53 43 52 45 45 4e 29 29 20 7b 00 00 00 2c 20 20 20 20 20 20 20 | .&.MODE_ALTSCREEN)).{...,....... |
| e440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 72 6d 5f 66 72 65 65 28 63 75 72 5f 74 | .................term_free(cur_t |
| e460 | 65 72 6d 29 3b 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | erm);...)....................... |
| e480 | 20 63 75 72 5f 74 65 72 6d 20 3d 20 26 74 65 72 6d 3b 00 00 00 24 20 20 20 20 20 20 20 20 20 20 | .cur_term.=.&term;...$.......... |
| e4a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 72 74 79 5f 61 6c 6c 28 29 3b 00 00 00 15 20 20 | ..............dirty_all();...... |
| e4c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 11 20 20 20 20 20 20 20 20 20 | ..................}............. |
| e4e0 | 20 20 20 20 20 20 20 7d 00 00 00 75 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 | .......}...u................if.( |
| e500 | 71 20 3d 3d 20 32 30 30 34 29 20 7b 20 69 66 20 28 76 61 6c 29 20 63 75 72 5f 74 65 72 6d 2d 3e | q.==.2004).{.if.(val).cur_term-> |
| e520 | 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 42 52 41 43 50 41 53 54 45 3b 20 65 6c 73 65 20 63 75 72 | mode.|=.MODE_BRACPASTE;.else.cur |
| e540 | 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 5f 42 52 41 43 50 41 53 54 45 3b 20 | _term->mode.&=.~MODE_BRACPASTE;. |
| e560 | 7d 00 00 00 80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 71 20 3d 3d 20 31 30 | }....................if.(q.==.10 |
| e580 | 30 30 20 7c 7c 20 71 20 3d 3d 20 31 30 30 32 29 20 7b 20 69 66 20 28 76 61 6c 29 20 63 75 72 5f | 00.||.q.==.1002).{.if.(val).cur_ |
| e5a0 | 74 65 72 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 4d 4f 55 53 45 42 54 4e 3b 20 65 6c 73 | term->mode.|=.MODE_MOUSEBTN;.els |
| e5c0 | 65 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 5f 4d 4f 55 53 45 42 | e.cur_term->mode.&=.~MODE_MOUSEB |
| e5e0 | 54 4e 3b 20 7d 00 00 00 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 71 20 3d | TN;.}...s................if.(q.= |
| e600 | 3d 20 31 30 30 33 29 20 7b 20 69 66 20 28 76 61 6c 29 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 | =.1003).{.if.(val).cur_term->mod |
| e620 | 65 20 7c 3d 20 4d 4f 44 45 5f 4d 4f 55 53 45 4d 4f 54 3b 20 65 6c 73 65 20 63 75 72 5f 74 65 72 | e.|=.MODE_MOUSEMOT;.else.cur_ter |
| e640 | 6d 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 5f 4d 4f 55 53 45 4d 4f 54 3b 20 7d 00 00 00 7e | m->mode.&=.~MODE_MOUSEMOT;.}...~ |
| e660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 71 20 3d 3d 20 35 29 20 20 20 20 7b | ................if.(q.==.5)....{ |
| e680 | 20 69 66 20 28 76 61 6c 29 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 | .if.(val).cur_term->mode.|=.MODE |
| e6a0 | 5f 52 45 56 45 52 53 45 3b 20 65 6c 73 65 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d | _REVERSE;.else.cur_term->mode.&= |
| e6c0 | 20 7e 4d 4f 44 45 5f 52 45 56 45 52 53 45 3b 20 64 69 72 74 79 5f 61 6c 6c 28 29 3b 20 7d 00 00 | .~MODE_REVERSE;.dirty_all();.}.. |
| e6e0 | 00 14 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 6d 20 20 20 20 20 20 | ..............}.else.{...m...... |
| e700 | 20 20 20 20 20 20 20 20 20 20 69 66 20 28 71 20 3d 3d 20 34 29 20 20 7b 20 69 66 20 28 76 61 6c | ..........if.(q.==.4)..{.if.(val |
| e720 | 29 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f 44 45 5f 49 4e 53 45 52 54 3b | ).cur_term->mode.|=.MODE_INSERT; |
| e740 | 20 65 6c 73 65 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 5f 49 4e | .else.cur_term->mode.&=.~MODE_IN |
| e760 | 53 45 52 54 3b 20 7d 00 00 00 69 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 71 | SERT;.}...i................if.(q |
| e780 | 20 3d 3d 20 32 30 29 20 7b 20 69 66 20 28 76 61 6c 29 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 | .==.20).{.if.(val).cur_term->mod |
| e7a0 | 65 20 7c 3d 20 4d 4f 44 45 5f 43 52 4c 46 3b 20 65 6c 73 65 20 63 75 72 5f 74 65 72 6d 2d 3e 6d | e.|=.MODE_CRLF;.else.cur_term->m |
| e7c0 | 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 5f 43 52 4c 46 3b 20 7d 00 00 00 0d 20 20 20 20 20 20 20 20 | ode.&=.~MODE_CRLF;.}............ |
| e7e0 | 20 20 20 20 7d 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 0c 20 20 20 20 7d 20 62 72 65 61 | ....}............}........}.brea |
| e800 | 6b 3b 00 00 00 0d 20 20 20 20 63 61 73 65 20 27 6e 27 3a 00 00 00 16 20 20 20 20 20 20 20 20 69 | k;........case.'n':............i |
| e820 | 66 20 28 70 30 20 3d 3d 20 36 29 20 7b 00 00 00 1a 20 20 20 20 20 20 20 20 20 20 20 20 63 68 61 | f.(p0.==.6).{................cha |
| e840 | 72 20 72 65 73 70 5b 33 32 5d 3b 00 00 00 6f 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 6c | r.resp[32];...o............int.l |
| e860 | 65 6e 20 3d 20 73 6e 70 72 69 6e 74 66 28 72 65 73 70 2c 20 73 69 7a 65 6f 66 20 72 65 73 70 2c | en.=.snprintf(resp,.sizeof.resp, |
| e880 | 20 22 5c 30 33 33 5b 25 64 3b 25 64 52 22 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 72 6f | ."\033[%d;%dR",.cur_term->cur.ro |
| e8a0 | 77 20 2b 20 31 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 2b 20 31 29 3b 00 00 | w.+.1,.cur_term->cur.col.+.1);.. |
| e8c0 | 00 21 20 20 20 20 20 20 20 20 20 20 20 20 70 74 79 5f 77 72 69 74 65 28 72 65 73 70 2c 20 6c 65 | .!............pty_write(resp,.le |
| e8e0 | 6e 29 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 0e 20 20 20 20 20 20 20 20 62 72 65 61 | n);............}............brea |
| e900 | 6b 3b 00 00 00 13 20 20 20 20 64 65 66 61 75 6c 74 3a 20 62 72 65 61 6b 3b 00 00 00 05 20 20 20 | k;........default:.break;....... |
| e920 | 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 57 65 6e 75 6d 20 7b 20 53 54 41 54 45 5f 4e 4f 52 4d | .}....}.......Wenum.{.STATE_NORM |
| e940 | 41 4c 2c 20 53 54 41 54 45 5f 45 53 43 2c 20 53 54 41 54 45 5f 43 53 49 2c 20 53 54 41 54 45 5f | AL,.STATE_ESC,.STATE_CSI,.STATE_ |
| e960 | 4f 53 43 2c 20 53 54 41 54 45 5f 44 43 53 2c 20 53 54 41 54 45 5f 50 4d 2c 20 53 54 41 54 45 5f | OSC,.STATE_DCS,.STATE_PM,.STATE_ |
| e980 | 41 50 43 20 7d 3b 00 00 00 00 00 00 00 21 73 74 61 74 69 63 20 69 6e 74 20 20 73 74 61 74 65 20 | APC.};.......!static.int..state. |
| e9a0 | 3d 20 53 54 41 54 45 5f 4e 4f 52 4d 41 4c 3b 00 00 00 1a 73 74 61 74 69 63 20 63 68 61 72 20 6f | =.STATE_NORMAL;....static.char.o |
| e9c0 | 73 63 5f 62 75 66 5b 31 30 32 34 5d 3b 00 00 00 14 73 74 61 74 69 63 20 69 6e 74 20 20 6f 73 63 | sc_buf[1024];....static.int..osc |
| e9e0 | 5f 6c 65 6e 3b 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 70 75 74 5f 63 68 61 | _len;.......#static.void.put_cha |
| ea00 | 72 28 75 69 6e 74 33 32 5f 74 20 63 70 29 20 7b 00 00 00 1e 20 20 20 20 69 6e 74 20 72 20 3d 20 | r(uint32_t.cp).{........int.r.=. |
| ea20 | 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 3b 00 00 00 1e 20 20 20 20 69 6e 74 20 63 20 | cur_term->cur.row;........int.c. |
| ea40 | 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 3b 00 00 00 00 00 00 00 3d 20 20 20 20 | =.cur_term->cur.col;.......=.... |
| ea60 | 69 66 20 28 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 57 52 41 50 20 26 | if.(cur_term->mode.&.MODE_WRAP.& |
| ea80 | 26 20 63 20 3e 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 29 20 7b 00 00 00 0e 20 20 20 | &.c.>=.cur_term->ncols).{....... |
| eaa0 | 20 20 20 20 20 63 20 3d 20 30 3b 00 00 00 0c 20 20 20 20 20 20 20 20 72 2b 2b 3b 00 00 00 20 20 | .....c.=.0;............r++;..... |
| eac0 | 20 20 20 20 20 20 20 69 66 20 28 72 20 3e 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 29 20 7b 00 | .......if.(r.>.cur_term->bot).{. |
| eae0 | 00 00 39 20 20 20 20 20 20 20 20 20 20 20 20 74 65 72 6d 5f 73 63 72 6f 6c 6c 28 63 75 72 5f 74 | ..9............term_scroll(cur_t |
| eb00 | 65 72 6d 2d 3e 74 6f 70 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 2c 20 31 29 3b 00 00 00 1e | erm->top,.cur_term->bot,.1);.... |
| eb20 | 20 20 20 20 20 20 20 20 20 20 20 20 72 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 3b 00 00 | ............r.=.cur_term->bot;.. |
| eb40 | 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 1e 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d | ..........}............cur_term- |
| eb60 | 3e 63 75 72 2e 72 6f 77 20 3d 20 72 3b 00 00 00 1e 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 | >cur.row.=.r;............cur_ter |
| eb80 | 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3d 20 63 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 42 | m->cur.col.=.c;........}.......B |
| eba0 | 20 20 20 20 69 66 20 28 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 49 4e | ....if.(cur_term->mode.&.MODE_IN |
| ebc0 | 53 45 52 54 20 26 26 20 63 20 3c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 2d 20 31 29 | SERT.&&.c.<.cur_term->ncols.-.1) |
| ebe0 | 20 7b 00 00 00 4d 20 20 20 20 20 20 20 20 6d 65 6d 6d 6f 76 65 28 26 63 75 72 5f 74 65 72 6d 2d | .{...M........memmove(&cur_term- |
| ec00 | 3e 72 6f 77 73 5b 72 5d 2e 63 65 6c 6c 73 5b 63 20 2b 20 31 5d 2c 20 26 63 75 72 5f 74 65 72 6d | >rows[r].cells[c.+.1],.&cur_term |
| ec20 | 2d 3e 72 6f 77 73 5b 72 5d 2e 63 65 6c 6c 73 5b 63 5d 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 | ->rows[r].cells[c],...:......... |
| ec40 | 20 20 20 20 20 20 20 28 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 2d 20 63 20 2d 20 31 29 | .......(cur_term->ncols.-.c.-.1) |
| ec60 | 20 2a 20 73 69 7a 65 6f 66 28 43 65 6c 6c 29 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 | .*.sizeof(Cell));........}...... |
| ec80 | 00 17 20 20 20 20 73 65 74 5f 63 65 6c 6c 28 72 2c 20 63 2c 20 63 70 29 3b 00 00 00 1e 20 20 20 | ......set_cell(r,.c,.cp);....... |
| eca0 | 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3d 20 63 20 2b 20 31 3b 00 00 00 01 7d | .cur_term->cur.col.=.c.+.1;....} |
| ecc0 | 00 00 00 00 00 00 00 2e 73 74 61 74 69 63 20 76 6f 69 64 20 70 72 6f 63 65 73 73 5f 62 79 74 65 | ........static.void.process_byte |
| ece0 | 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 62 79 74 65 29 20 7b 00 00 00 14 20 20 20 20 73 77 | (unsigned.char.byte).{........sw |
| ed00 | 69 74 63 68 20 28 73 74 61 74 65 29 20 7b 00 00 00 16 20 20 20 20 63 61 73 65 20 53 54 41 54 45 | itch.(state).{........case.STATE |
| ed20 | 5f 4e 4f 52 4d 41 4c 3a 00 00 00 38 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 20 3d 3d 20 | _NORMAL:...8........if.(byte.==. |
| ed40 | 30 78 31 42 29 20 7b 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 45 53 43 3b 20 72 65 74 75 72 | 0x1B).{.state.=.STATE_ESC;.retur |
| ed60 | 6e 3b 20 7d 00 00 00 3c 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 20 3d 3d 20 27 5c 72 27 | n;.}...<........if.(byte.==.'\r' |
| ed80 | 29 20 7b 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3d 20 30 3b 20 72 65 74 75 72 | ).{.cur_term->cur.col.=.0;.retur |
| eda0 | 6e 3b 20 7d 00 00 00 3b 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 20 3d 3d 20 27 5c 6e 27 | n;.}...;........if.(byte.==.'\n' |
| edc0 | 20 7c 7c 20 62 79 74 65 20 3d 3d 20 27 5c 76 27 20 7c 7c 20 62 79 74 65 20 3d 3d 20 27 5c 66 27 | .||.byte.==.'\v'.||.byte.==.'\f' |
| ede0 | 29 20 7b 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 | ).{................cur_term->cur |
| ee00 | 2e 72 6f 77 2b 2b 3b 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 75 72 5f 74 | .row++;...B............if.(cur_t |
| ee20 | 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 43 52 4c 46 29 20 63 75 72 5f 74 65 72 6d 2d | erm->mode.&.MODE_CRLF).cur_term- |
| ee40 | 3e 63 75 72 2e 63 6f 6c 20 3d 20 30 3b 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 | >cur.col.=.0;...4............if. |
| ee60 | 28 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 20 3e 20 63 75 72 5f 74 65 72 6d 2d 3e 62 | (cur_term->cur.row.>.cur_term->b |
| ee80 | 6f 74 29 20 7b 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 72 6d 5f 73 63 | ot).{...=................term_sc |
| eea0 | 72 6f 6c 6c 28 63 75 72 5f 74 65 72 6d 2d 3e 74 6f 70 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f | roll(cur_term->top,.cur_term->bo |
| eec0 | 74 2c 20 31 29 3b 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 | t,.1);...2................cur_te |
| eee0 | 72 6d 2d 3e 63 75 72 2e 72 6f 77 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 3b 00 00 00 0d | rm->cur.row.=.cur_term->bot;.... |
| ef00 | 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 13 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 | ............}................ret |
| ef20 | 75 72 6e 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 1b 20 20 20 20 20 20 20 20 69 66 20 | urn;............}............if. |
| ef40 | 28 62 79 74 65 20 3d 3d 20 27 5c 74 27 29 20 7b 00 00 00 53 20 20 20 20 20 20 20 20 20 20 20 20 | (byte.==.'\t').{...S............ |
| ef60 | 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3d 20 28 63 75 72 5f 74 65 72 6d 2d 3e 63 | cur_term->cur.col.=.(cur_term->c |
| ef80 | 75 72 2e 63 6f 6c 20 2b 20 54 41 42 5f 57 49 44 54 48 29 20 26 20 7e 28 54 41 42 5f 57 49 44 54 | ur.col.+.TAB_WIDTH).&.~(TAB_WIDT |
| efa0 | 48 20 2d 20 31 29 3b 00 00 00 5e 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 75 72 5f 74 | H.-.1);...^............if.(cur_t |
| efc0 | 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3e 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 29 | erm->cur.col.>=.cur_term->ncols) |
| efe0 | 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e | .cur_term->cur.col.=.cur_term->n |
| f000 | 63 6f 6c 73 20 2d 20 31 3b 00 00 00 13 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b | cols.-.1;................return; |
| f020 | 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 55 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 | ............}...U........if.(byt |
| f040 | 65 20 3d 3d 20 27 5c 62 27 29 20 7b 20 69 66 20 28 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 | e.==.'\b').{.if.(cur_term->cur.c |
| f060 | 6f 6c 20 3e 20 30 29 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 2d 2d 3b 20 72 65 74 | ol.>.0).cur_term->cur.col--;.ret |
| f080 | 75 72 6e 3b 20 7d 00 00 00 21 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 20 3d 3d 20 30 78 | urn;.}...!........if.(byte.==.0x |
| f0a0 | 30 37 29 20 72 65 74 75 72 6e 3b 00 00 00 20 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 20 | 07).return;............if.(byte. |
| f0c0 | 3c 20 30 78 32 30 29 20 72 65 74 75 72 6e 3b 00 00 00 34 20 20 20 20 20 20 20 20 69 66 20 28 62 | <.0x20).return;...4........if.(b |
| f0e0 | 79 74 65 20 3c 20 30 78 38 30 29 20 7b 20 70 75 74 5f 63 68 61 72 28 62 79 74 65 29 3b 20 72 65 | yte.<.0x80).{.put_char(byte);.re |
| f100 | 74 75 72 6e 3b 20 7d 00 00 00 09 20 20 20 20 20 20 20 20 7b 00 00 00 20 20 20 20 20 20 20 20 20 | turn;.}............{............ |
| f120 | 20 20 20 20 73 74 61 74 69 63 20 63 68 61 72 20 6d 62 75 66 5b 38 5d 3b 00 00 00 21 20 20 20 20 | ....static.char.mbuf[8];...!.... |
| f140 | 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 69 6e 74 20 20 6d 6c 65 6e 20 3d 20 30 3b 00 00 00 | ........static.int..mlen.=.0;... |
| f160 | 22 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 69 6e 74 20 20 6d 6e 65 65 64 20 3d | "............static.int..mneed.= |
| f180 | 20 30 3b 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 28 62 79 74 65 20 26 20 30 | .0;...(............if.((byte.&.0 |
| f1a0 | 78 43 30 29 20 3d 3d 20 30 78 38 30 29 20 7b 00 00 00 1f 20 20 20 20 20 20 20 20 20 20 20 20 20 | xC0).==.0x80).{................. |
| f1c0 | 20 20 20 69 66 20 28 6d 6c 65 6e 20 3e 20 30 29 20 7b 00 00 00 28 20 20 20 20 20 20 20 20 20 20 | ...if.(mlen.>.0).{...(.......... |
| f1e0 | 20 20 20 20 20 20 20 20 20 20 6d 62 75 66 5b 6d 6c 65 6e 2b 2b 5d 20 3d 20 62 79 74 65 3b 00 00 | ..........mbuf[mlen++].=.byte;.. |
| f200 | 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 6c 65 6e 20 3d | .(....................if.(mlen.= |
| f220 | 3d 20 6d 6e 65 65 64 29 20 7b 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | =.mneed).{...?.................. |
| f240 | 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 75 3b 20 75 74 66 38 64 65 63 6f 64 65 28 6d 62 75 | ......uint32_t.u;.utf8decode(mbu |
| f260 | 66 2c 20 26 75 2c 20 6d 6c 65 6e 29 3b 00 00 00 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | f,.&u,.mlen);...9............... |
| f280 | 20 20 20 20 20 20 20 20 20 70 75 74 5f 63 68 61 72 28 75 29 3b 20 6d 6c 65 6e 20 3d 20 30 3b 20 | .........put_char(u);.mlen.=.0;. |
| f2a0 | 6d 6e 65 65 64 20 3d 20 30 3b 00 00 00 15 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mneed.=.0;...................... |
| f2c0 | 20 20 7d 00 00 00 11 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 14 20 20 20 20 | ..}....................}........ |
| f2e0 | 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 | ........}.else.{...)............ |
| f300 | 20 20 20 20 6d 6c 65 6e 20 3d 20 31 3b 20 6d 62 75 66 5b 30 5d 20 3d 20 62 79 74 65 3b 00 00 00 | ....mlen.=.1;.mbuf[0].=.byte;... |
| f320 | 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 20 20 20 20 20 28 28 62 79 74 65 20 | :................if......((byte. |
| f340 | 26 20 30 78 45 30 29 20 3d 3d 20 30 78 43 30 29 20 6d 6e 65 65 64 20 3d 20 32 3b 00 00 00 3a 20 | &.0xE0).==.0xC0).mneed.=.2;...:. |
| f360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 28 62 79 74 65 20 26 20 | ...............else.if.((byte.&. |
| f380 | 30 78 46 30 29 20 3d 3d 20 30 78 45 30 29 20 6d 6e 65 65 64 20 3d 20 33 3b 00 00 00 3a 20 20 20 | 0xF0).==.0xE0).mneed.=.3;...:... |
| f3a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 28 62 79 74 65 20 26 20 30 78 | .............else.if.((byte.&.0x |
| f3c0 | 46 38 29 20 3d 3d 20 30 78 46 30 29 20 6d 6e 65 65 64 20 3d 20 34 3b 00 00 00 3d 20 20 20 20 20 | F8).==.0xF0).mneed.=.4;...=..... |
| f3e0 | 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 20 70 75 74 5f 63 68 61 72 28 62 79 74 65 29 | ...........else.{.put_char(byte) |
| f400 | 3b 20 6d 6c 65 6e 20 3d 20 30 3b 20 6d 6e 65 65 64 20 3d 20 30 3b 20 7d 00 00 00 0d 20 20 20 20 | ;.mlen.=.0;.mneed.=.0;.}........ |
| f420 | 20 20 20 20 20 20 20 20 7d 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 0e 20 20 20 20 20 20 | ........}............}.......... |
| f440 | 20 20 62 72 65 61 6b 3b 00 00 00 13 20 20 20 20 63 61 73 65 20 53 54 41 54 45 5f 45 53 43 3a 00 | ..break;........case.STATE_ESC:. |
| f460 | 00 00 17 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 62 79 74 65 29 20 7b 00 00 00 6a 20 20 | ...........switch.(byte).{...j.. |
| f480 | 20 20 20 20 20 20 63 61 73 65 20 27 5b 27 3a 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 43 53 | ......case.'[':.state.=.STATE_CS |
| f4a0 | 49 3b 20 6d 65 6d 73 65 74 28 26 63 73 69 2c 20 30 2c 20 73 69 7a 65 6f 66 20 63 73 69 29 3b 20 | I;.memset(&csi,.0,.sizeof.csi);. |
| f4c0 | 63 73 69 2e 61 72 67 63 20 3d 20 31 3b 20 63 73 69 2e 61 72 67 76 5b 30 5d 5b 30 5d 20 3d 20 30 | csi.argc.=.1;.csi.argv[0][0].=.0 |
| f4e0 | 3b 20 62 72 65 61 6b 3b 00 00 00 38 20 20 20 20 20 20 20 20 63 61 73 65 20 27 5d 27 3a 20 73 74 | ;.break;...8........case.']':.st |
| f500 | 61 74 65 20 3d 20 53 54 41 54 45 5f 4f 53 43 3b 20 6f 73 63 5f 6c 65 6e 20 3d 20 30 3b 20 62 72 | ate.=.STATE_OSC;.osc_len.=.0;.br |
| f520 | 65 61 6b 3b 00 00 00 2b 20 20 20 20 20 20 20 20 63 61 73 65 20 27 50 27 3a 20 73 74 61 74 65 20 | eak;...+........case.'P':.state. |
| f540 | 3d 20 53 54 41 54 45 5f 44 43 53 3b 20 62 72 65 61 6b 3b 00 00 00 2b 20 20 20 20 20 20 20 20 63 | =.STATE_DCS;.break;...+........c |
| f560 | 61 73 65 20 27 5e 27 3a 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 50 4d 3b 20 20 62 72 65 61 | ase.'^':.state.=.STATE_PM;..brea |
| f580 | 6b 3b 00 00 00 2b 20 20 20 20 20 20 20 20 63 61 73 65 20 27 5f 27 3a 20 73 74 61 74 65 20 3d 20 | k;...+........case.'_':.state.=. |
| f5a0 | 53 54 41 54 45 5f 41 50 43 3b 20 62 72 65 61 6b 3b 00 00 00 13 20 20 20 20 20 20 20 20 63 61 73 | STATE_APC;.break;............cas |
| f5c0 | 65 20 27 44 27 3a 20 7b 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d | e.'D':.{................cur_term |
| f5e0 | 2d 3e 63 75 72 2e 72 6f 77 2b 2b 3b 00 00 00 87 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 | ->cur.row++;................if.( |
| f600 | 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 20 3e 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f | cur_term->cur.row.>.cur_term->bo |
| f620 | 74 29 20 7b 20 74 65 72 6d 5f 73 63 72 6f 6c 6c 28 63 75 72 5f 74 65 72 6d 2d 3e 74 6f 70 2c 20 | t).{.term_scroll(cur_term->top,. |
| f640 | 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 2c 20 31 29 3b 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 | cur_term->bot,.1);.cur_term->cur |
| f660 | 2e 72 6f 77 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 3b 20 7d 00 00 00 21 20 20 20 20 20 | .row.=.cur_term->bot;.}...!..... |
| f680 | 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4e 4f 52 4d 41 4c 3b 00 00 00 10 | .......state.=.STATE_NORMAL;.... |
| f6a0 | 20 20 20 20 20 20 20 20 7d 20 62 72 65 61 6b 3b 00 00 00 13 20 20 20 20 20 20 20 20 63 61 73 65 | ........}.break;............case |
| f6c0 | 20 27 4d 27 3a 20 7b 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d | .'M':.{................cur_term- |
| f6e0 | 3e 63 75 72 2e 72 6f 77 2d 2d 3b 00 00 00 88 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 | >cur.row--;................if.(c |
| f700 | 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 20 3c 20 63 75 72 5f 74 65 72 6d 2d 3e 74 6f 70 | ur_term->cur.row.<.cur_term->top |
| f720 | 29 20 7b 20 74 65 72 6d 5f 73 63 72 6f 6c 6c 28 63 75 72 5f 74 65 72 6d 2d 3e 74 6f 70 2c 20 63 | ).{.term_scroll(cur_term->top,.c |
| f740 | 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 2c 20 2d 31 29 3b 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 | ur_term->bot,.-1);.cur_term->cur |
| f760 | 2e 72 6f 77 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 74 6f 70 3b 20 7d 00 00 00 21 20 20 20 20 20 | .row.=.cur_term->top;.}...!..... |
| f780 | 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4e 4f 52 4d 41 4c 3b 00 00 00 10 | .......state.=.STATE_NORMAL;.... |
| f7a0 | 20 20 20 20 20 20 20 20 7d 20 62 72 65 61 6b 3b 00 00 00 13 20 20 20 20 20 20 20 20 63 61 73 65 | ........}.break;............case |
| f7c0 | 20 27 45 27 3a 20 7b 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d | .'E':.{................cur_term- |
| f7e0 | 3e 63 75 72 2e 72 6f 77 2b 2b 3b 00 00 00 22 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 | >cur.row++;..."............cur_t |
| f800 | 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c 20 3d 20 30 3b 00 00 00 87 20 20 20 20 20 20 20 20 20 20 20 | erm->cur.col.=.0;............... |
| f820 | 20 69 66 20 28 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 20 3e 20 63 75 72 5f 74 65 72 | .if.(cur_term->cur.row.>.cur_ter |
| f840 | 6d 2d 3e 62 6f 74 29 20 7b 20 74 65 72 6d 5f 73 63 72 6f 6c 6c 28 63 75 72 5f 74 65 72 6d 2d 3e | m->bot).{.term_scroll(cur_term-> |
| f860 | 74 6f 70 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 2c 20 31 29 3b 20 63 75 72 5f 74 65 72 6d | top,.cur_term->bot,.1);.cur_term |
| f880 | 2d 3e 63 75 72 2e 72 6f 77 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 3b 20 7d 00 00 00 21 | ->cur.row.=.cur_term->bot;.}...! |
| f8a0 | 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4e 4f 52 4d 41 4c | ............state.=.STATE_NORMAL |
| f8c0 | 3b 00 00 00 10 20 20 20 20 20 20 20 20 7d 20 62 72 65 61 6b 3b 00 00 00 4f 20 20 20 20 20 20 20 | ;............}.break;...O....... |
| f8e0 | 20 63 61 73 65 20 27 37 27 3a 20 63 75 72 5f 74 65 72 6d 2d 3e 73 61 76 65 64 20 3d 20 63 75 72 | .case.'7':.cur_term->saved.=.cur |
| f900 | 5f 74 65 72 6d 2d 3e 63 75 72 3b 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4e 4f 52 4d 41 4c | _term->cur;.state.=.STATE_NORMAL |
| f920 | 3b 20 62 72 65 61 6b 3b 00 00 00 50 20 20 20 20 20 20 20 20 63 61 73 65 20 27 38 27 3a 20 63 75 | ;.break;...P........case.'8':.cu |
| f940 | 72 5f 74 65 72 6d 2d 3e 63 75 72 20 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 73 61 76 65 64 3b 20 | r_term->cur..=.cur_term->saved;. |
| f960 | 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4e 4f 52 4d 41 4c 3b 20 62 72 65 61 6b 3b 00 00 00 13 | state.=.STATE_NORMAL;.break;.... |
| f980 | 20 20 20 20 20 20 20 20 63 61 73 65 20 27 63 27 3a 20 7b 00 00 00 45 20 20 20 20 20 20 20 20 20 | ........case.'c':.{...E......... |
| f9a0 | 20 20 20 63 75 72 5f 61 74 74 72 20 3d 20 30 3b 20 63 75 72 5f 66 67 20 3d 20 77 2e 64 65 66 61 | ...cur_attr.=.0;.cur_fg.=.w.defa |
| f9c0 | 75 6c 74 66 67 3b 20 63 75 72 5f 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b 00 00 00 43 | ultfg;.cur_bg.=.w.defaultbg;...C |
| f9e0 | 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 74 6f 70 20 3d 20 30 3b 20 63 | ............cur_term->top.=.0;.c |
| fa00 | 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 20 2d | ur_term->bot.=.cur_term->nrows.- |
| fa20 | 20 31 3b 00 00 00 27 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 | .1;...'............cur_term->mod |
| fa40 | 65 20 3d 20 4d 4f 44 45 5f 57 52 41 50 3b 00 00 00 49 20 20 20 20 20 20 20 20 20 20 20 20 63 6c | e.=.MODE_WRAP;...I............cl |
| fa60 | 65 61 72 5f 72 65 67 69 6f 6e 28 30 2c 20 30 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 | ear_region(0,.0,.cur_term->nrows |
| fa80 | 20 2d 20 31 2c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 2d 20 31 29 3b 00 00 00 1e 20 | .-.1,.cur_term->ncols.-.1);..... |
| faa0 | 20 20 20 20 20 20 20 20 20 20 20 63 75 72 73 6f 72 5f 6d 6f 76 65 28 30 2c 20 30 29 3b 00 00 00 | ...........cursor_move(0,.0);... |
| fac0 | 21 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4e 4f 52 4d 41 | !............state.=.STATE_NORMA |
| fae0 | 4c 3b 00 00 00 10 20 20 20 20 20 20 20 20 7d 20 62 72 65 61 6b 3b 00 00 00 50 20 20 20 20 20 20 | L;............}.break;...P...... |
| fb00 | 20 20 63 61 73 65 20 27 3d 27 3a 20 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 7c 3d 20 4d 4f | ..case.'=':.cur_term->mode.|=.MO |
| fb20 | 44 45 5f 41 50 50 4b 45 59 50 41 44 3b 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4e 4f 52 4d | DE_APPKEYPAD;.state.=.STATE_NORM |
| fb40 | 41 4c 3b 20 62 72 65 61 6b 3b 00 00 00 51 20 20 20 20 20 20 20 20 63 61 73 65 20 27 3e 27 3a 20 | AL;.break;...Q........case.'>':. |
| fb60 | 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 3d 20 7e 4d 4f 44 45 5f 41 50 50 4b 45 59 50 41 | cur_term->mode.&=.~MODE_APPKEYPA |
| fb80 | 44 3b 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4e 4f 52 4d 41 4c 3b 20 62 72 65 61 6b 3b 00 | D;.state.=.STATE_NORMAL;.break;. |
| fba0 | 00 00 2d 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 20 73 74 61 74 65 20 3d 20 53 54 41 54 | ..-........default:.state.=.STAT |
| fbc0 | 45 5f 4e 4f 52 4d 41 4c 3b 20 62 72 65 61 6b 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 | E_NORMAL;.break;............}... |
| fbe0 | 0e 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 15 20 20 20 20 63 61 73 65 20 53 54 41 54 | .........break;........case.STAT |
| fc00 | 45 5f 43 53 49 3a 20 7b 00 00 00 31 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 20 3d 3d 20 | E_CSI:.{...1........if.(byte.==. |
| fc20 | 27 3f 27 29 20 7b 20 63 73 69 2e 70 72 69 76 20 3d 20 31 3b 20 62 72 65 61 6b 3b 20 7d 00 00 00 | '?').{.csi.priv.=.1;.break;.}... |
| fc40 | 1a 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 20 3d 3d 20 27 3b 27 29 20 7b 00 00 00 4b 20 | .........if.(byte.==.';').{...K. |
| fc60 | 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 73 69 2e 61 72 67 63 20 3c 20 33 32 29 20 7b 20 | ...........if.(csi.argc.<.32).{. |
| fc80 | 63 73 69 2e 61 72 67 63 2b 2b 3b 20 63 73 69 2e 61 72 67 76 5b 63 73 69 2e 61 72 67 63 2d 31 5d | csi.argc++;.csi.argv[csi.argc-1] |
| fca0 | 5b 30 5d 20 3d 20 30 3b 20 7d 00 00 00 12 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b | [0].=.0;.}................break; |
| fcc0 | 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 1c 20 20 20 20 20 20 20 20 69 66 20 28 69 73 64 | ............}............if.(isd |
| fce0 | 69 67 69 74 28 62 79 74 65 29 29 20 7b 00 00 00 22 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 | igit(byte)).{..."............int |
| fd00 | 20 61 69 20 3d 20 63 73 69 2e 61 72 67 63 20 2d 20 31 3b 00 00 00 2b 20 20 20 20 20 20 20 20 20 | .ai.=.csi.argc.-.1;...+......... |
| fd20 | 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 63 73 69 2e 61 72 67 76 5b 61 69 5d | ...int.len.=.strlen(csi.argv[ai] |
| fd40 | 29 3b 00 00 00 50 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6c 65 6e 20 3c 20 36 33 29 20 | );...P............if.(len.<.63). |
| fd60 | 7b 20 63 73 69 2e 61 72 67 76 5b 61 69 5d 5b 6c 65 6e 5d 20 3d 20 62 79 74 65 3b 20 63 73 69 2e | {.csi.argv[ai][len].=.byte;.csi. |
| fd80 | 61 72 67 76 5b 61 69 5d 5b 6c 65 6e 2b 31 5d 20 3d 20 30 3b 20 7d 00 00 00 12 20 20 20 20 20 20 | argv[ai][len+1].=.0;.}.......... |
| fda0 | 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 37 20 20 20 | ......break;............}...7... |
| fdc0 | 20 20 20 20 20 69 66 20 28 62 79 74 65 20 3d 3d 20 30 78 31 42 29 20 7b 20 73 74 61 74 65 20 3d | .....if.(byte.==.0x1B).{.state.= |
| fde0 | 20 53 54 41 54 45 5f 45 53 43 3b 20 62 72 65 61 6b 3b 20 7d 00 00 00 2b 20 20 20 20 20 20 20 20 | .STATE_ESC;.break;.}...+........ |
| fe00 | 69 66 20 28 62 79 74 65 20 3e 3d 20 30 78 34 30 20 26 26 20 62 79 74 65 20 3c 3d 20 30 78 37 45 | if.(byte.>=.0x40.&&.byte.<=.0x7E |
| fe20 | 29 20 7b 00 00 00 1d 20 20 20 20 20 20 20 20 20 20 20 20 68 61 6e 64 6c 65 5f 63 73 69 28 62 79 | ).{................handle_csi(by |
| fe40 | 74 65 29 3b 00 00 00 21 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 54 41 54 | te);...!............state.=.STAT |
| fe60 | 45 5f 4e 4f 52 4d 41 4c 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 0c 20 20 20 20 7d 20 | E_NORMAL;............}........}. |
| fe80 | 62 72 65 61 6b 3b 00 00 00 13 20 20 20 20 63 61 73 65 20 53 54 41 54 45 5f 4f 53 43 3a 00 00 00 | break;........case.STATE_OSC:... |
| fea0 | 5a 20 20 20 20 20 20 20 20 69 66 20 28 62 79 74 65 20 3d 3d 20 30 78 30 37 20 7c 7c 20 28 62 79 | Z........if.(byte.==.0x07.||.(by |
| fec0 | 74 65 20 3d 3d 20 27 5c 5c 27 20 26 26 20 6f 73 63 5f 6c 65 6e 20 3e 20 30 20 26 26 20 6f 73 63 | te.==.'\\'.&&.osc_len.>.0.&&.osc |
| fee0 | 5f 62 75 66 5b 6f 73 63 5f 6c 65 6e 2d 31 5d 20 3d 3d 20 30 78 31 42 29 29 20 7b 00 00 00 21 20 | _buf[osc_len-1].==.0x1B)).{...!. |
| ff00 | 20 20 20 20 20 20 20 20 20 20 20 6f 73 63 5f 62 75 66 5b 6f 73 63 5f 6c 65 6e 5d 20 3d 20 30 3b | ...........osc_buf[osc_len].=.0; |
| ff20 | 00 00 00 21 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 54 41 54 45 5f 4e 4f | ...!............state.=.STATE_NO |
| ff40 | 52 4d 41 4c 3b 00 00 00 22 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 62 79 74 65 | RMAL;..."........}.else.if.(byte |
| ff60 | 20 3d 3d 20 30 78 31 42 29 20 7b 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6f | .==.0x1B).{...N............if.(o |
| ff80 | 73 63 5f 6c 65 6e 20 3c 20 28 69 6e 74 29 73 69 7a 65 6f 66 28 6f 73 63 5f 62 75 66 29 20 2d 20 | sc_len.<.(int)sizeof(osc_buf).-. |
| ffa0 | 31 29 20 6f 73 63 5f 62 75 66 5b 6f 73 63 5f 6c 65 6e 2b 2b 5d 20 3d 20 62 79 74 65 3b 00 00 00 | 1).osc_buf[osc_len++].=.byte;... |
| ffc0 | 10 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 20 | .........}.else.{...N........... |
| ffe0 | 20 69 66 20 28 6f 73 63 5f 6c 65 6e 20 3c 20 28 69 6e 74 29 73 69 7a 65 6f 66 28 6f 73 63 5f 62 | .if.(osc_len.<.(int)sizeof(osc_b |
| 10000 | 75 66 29 20 2d 20 31 29 20 6f 73 63 5f 62 75 66 5b 6f 73 63 5f 6c 65 6e 2b 2b 5d 20 3d 20 62 79 | uf).-.1).osc_buf[osc_len++].=.by |
| 10020 | 74 65 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 0e 20 20 20 20 20 20 20 20 62 72 65 61 | te;............}............brea |
| 10040 | 6b 3b 00 00 00 32 20 20 20 20 63 61 73 65 20 53 54 41 54 45 5f 44 43 53 3a 20 63 61 73 65 20 53 | k;...2....case.STATE_DCS:.case.S |
| 10060 | 54 41 54 45 5f 50 4d 3a 20 63 61 73 65 20 53 54 41 54 45 5f 41 50 43 3a 00 00 00 2c 20 20 20 20 | TATE_PM:.case.STATE_APC:...,.... |
| 10080 | 20 20 20 20 69 66 20 28 62 79 74 65 20 3d 3d 20 30 78 31 42 29 20 73 74 61 74 65 20 3d 20 53 54 | ....if.(byte.==.0x1B).state.=.ST |
| 100a0 | 41 54 45 5f 45 53 43 3b 00 00 00 0e 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 05 20 20 | ATE_ESC;............break;...... |
| 100c0 | 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 1f 73 74 61 74 69 63 20 76 6f 69 64 20 70 72 6f 63 | ..}....}........static.void.proc |
| 100e0 | 65 73 73 5f 70 74 79 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 20 20 63 68 61 72 20 62 75 66 5b | ess_pty(void).{........char.buf[ |
| 10100 | 42 55 46 53 49 5a 5d 3b 00 00 00 0e 20 20 20 20 73 73 69 7a 65 5f 74 20 6e 3b 00 00 00 36 20 20 | BUFSIZ];........ssize_t.n;...6.. |
| 10120 | 20 20 77 68 69 6c 65 20 28 28 6e 20 3d 20 72 65 61 64 28 70 74 79 2e 6d 66 64 2c 20 62 75 66 2c | ..while.((n.=.read(pty.mfd,.buf, |
| 10140 | 20 73 69 7a 65 6f 66 20 62 75 66 29 29 20 3e 20 30 29 20 7b 00 00 00 48 20 20 20 20 20 20 20 20 | .sizeof.buf)).>.0).{...H........ |
| 10160 | 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 20 70 72 6f 63 | for.(int.i.=.0;.i.<.n;.i++).proc |
| 10180 | 65 73 73 5f 62 79 74 65 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 62 75 66 5b 69 5d 29 3b | ess_byte((unsigned.char)buf[i]); |
| 101a0 | 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 33 73 74 61 74 69 63 20 76 6f 69 | ........}....}.......3static.voi |
| 101c0 | 64 20 64 72 61 77 5f 67 6c 79 70 68 28 69 6e 74 20 72 6f 77 2c 20 69 6e 74 20 63 6f 6c 2c 20 43 | d.draw_glyph(int.row,.int.col,.C |
| 101e0 | 65 6c 6c 20 2a 67 29 20 7b 00 00 00 21 20 20 20 20 43 6f 6c 6f 72 20 66 67 20 3d 20 67 2d 3e 66 | ell.*g).{...!....Color.fg.=.g->f |
| 10200 | 67 2c 20 62 67 20 3d 20 67 2d 3e 62 67 3b 00 00 00 4e 20 20 20 20 69 6e 74 20 72 65 76 65 72 73 | g,.bg.=.g->bg;...N....int.revers |
| 10220 | 65 20 3d 20 28 67 2d 3e 61 74 74 72 20 26 20 41 54 54 52 5f 52 45 56 45 52 53 45 29 20 7c 7c 20 | e.=.(g->attr.&.ATTR_REVERSE).||. |
| 10240 | 28 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 52 45 56 45 52 53 45 29 3b | (cur_term->mode.&.MODE_REVERSE); |
| 10260 | 00 00 00 37 20 20 20 20 69 66 20 28 72 65 76 65 72 73 65 29 20 7b 20 43 6f 6c 6f 72 20 74 6d 70 | ...7....if.(reverse).{.Color.tmp |
| 10280 | 20 3d 20 66 67 3b 20 66 67 20 3d 20 62 67 3b 20 62 67 20 3d 20 74 6d 70 3b 20 7d 00 00 00 00 00 | .=.fg;.fg.=.bg;.bg.=.tmp;.}..... |
| 102a0 | 00 00 20 20 20 20 20 69 6e 74 20 78 20 3d 20 42 4f 52 44 45 52 20 2b 20 63 6f 6c 20 2a 20 77 2e | .......int.x.=.BORDER.+.col.*.w. |
| 102c0 | 63 77 3b 00 00 00 20 20 20 20 20 69 6e 74 20 79 20 3d 20 42 4f 52 44 45 52 20 2b 20 72 6f 77 20 | cw;........int.y.=.BORDER.+.row. |
| 102e0 | 2a 20 77 2e 63 68 3b 00 00 00 00 00 00 00 29 20 20 20 20 58 66 74 43 6f 6c 6f 72 20 2a 78 62 67 | *.w.ch;.......)....XftColor.*xbg |
| 10300 | 20 3d 20 67 65 74 5f 78 66 74 5f 63 6f 6c 6f 72 28 62 67 2c 20 30 29 3b 00 00 00 2f 20 20 20 20 | .=.get_xft_color(bg,.0);.../.... |
| 10320 | 58 66 74 44 72 61 77 52 65 63 74 28 77 2e 64 72 61 77 2c 20 78 62 67 2c 20 78 2c 20 79 2c 20 77 | XftDrawRect(w.draw,.xbg,.x,.y,.w |
| 10340 | 2e 63 77 2c 20 77 2e 63 68 29 3b 00 00 00 00 00 00 00 39 20 20 20 20 69 66 20 28 67 2d 3e 63 6f | .cw,.w.ch);.......9....if.(g->co |
| 10360 | 64 65 70 6f 69 6e 74 20 3d 3d 20 27 20 27 20 7c 7c 20 67 2d 3e 63 6f 64 65 70 6f 69 6e 74 20 3d | depoint.==.'.'.||.g->codepoint.= |
| 10380 | 3d 20 30 29 20 72 65 74 75 72 6e 3b 00 00 00 00 00 00 00 1b 20 20 20 20 58 66 74 46 6f 6e 74 20 | =.0).return;............XftFont. |
| 103a0 | 2a 66 6f 6e 74 20 3d 20 77 2e 66 6f 6e 74 3b 00 00 00 4a 20 20 20 20 69 66 20 28 28 67 2d 3e 61 | *font.=.w.font;...J....if.((g->a |
| 103c0 | 74 74 72 20 26 20 41 54 54 52 5f 42 4f 4c 44 29 20 26 26 20 28 67 2d 3e 61 74 74 72 20 26 20 41 | ttr.&.ATTR_BOLD).&&.(g->attr.&.A |
| 103e0 | 54 54 52 5f 49 54 41 4c 49 43 29 29 20 66 6f 6e 74 20 3d 20 77 2e 62 69 66 6f 6e 74 3b 00 00 00 | TTR_ITALIC)).font.=.w.bifont;... |
| 10400 | 33 20 20 20 20 65 6c 73 65 20 69 66 20 28 67 2d 3e 61 74 74 72 20 26 20 41 54 54 52 5f 42 4f 4c | 3....else.if.(g->attr.&.ATTR_BOL |
| 10420 | 44 29 20 20 20 66 6f 6e 74 20 3d 20 77 2e 62 66 6f 6e 74 3b 00 00 00 33 20 20 20 20 65 6c 73 65 | D)...font.=.w.bfont;...3....else |
| 10440 | 20 69 66 20 28 67 2d 3e 61 74 74 72 20 26 20 41 54 54 52 5f 49 54 41 4c 49 43 29 20 66 6f 6e 74 | .if.(g->attr.&.ATTR_ITALIC).font |
| 10460 | 20 3d 20 77 2e 69 66 6f 6e 74 3b 00 00 00 00 00 00 00 29 20 20 20 20 58 66 74 43 6f 6c 6f 72 20 | .=.w.ifont;.......)....XftColor. |
| 10480 | 2a 78 66 67 20 3d 20 67 65 74 5f 78 66 74 5f 63 6f 6c 6f 72 28 66 67 2c 20 31 29 3b 00 00 00 00 | *xfg.=.get_xft_color(fg,.1);.... |
| 104a0 | 00 00 00 10 20 20 20 20 63 68 61 72 20 75 74 66 5b 38 5d 3b 00 00 00 2c 20 20 20 20 69 6e 74 20 | ........char.utf[8];...,....int. |
| 104c0 | 6c 65 6e 20 3d 20 75 74 66 38 65 6e 63 6f 64 65 28 67 2d 3e 63 6f 64 65 70 6f 69 6e 74 2c 20 75 | len.=.utf8encode(g->codepoint,.u |
| 104e0 | 74 66 29 3b 00 00 00 4b 20 20 20 20 58 66 74 44 72 61 77 53 74 72 69 6e 67 55 74 66 38 28 77 2e | tf);...K....XftDrawStringUtf8(w. |
| 10500 | 64 72 61 77 2c 20 78 66 67 2c 20 66 6f 6e 74 2c 20 78 2c 20 79 20 2b 20 77 2e 63 61 2c 20 28 46 | draw,.xfg,.font,.x,.y.+.w.ca,.(F |
| 10520 | 63 43 68 61 72 38 20 2a 29 75 74 66 2c 20 6c 65 6e 29 3b 00 00 00 00 00 00 00 23 20 20 20 20 69 | cChar8.*)utf,.len);.......#....i |
| 10540 | 66 20 28 67 2d 3e 61 74 74 72 20 26 20 41 54 54 52 5f 55 4e 44 45 52 4c 49 4e 45 29 20 7b 00 00 | f.(g->attr.&.ATTR_UNDERLINE).{.. |
| 10560 | 00 3b 20 20 20 20 20 20 20 20 58 66 74 44 72 61 77 52 65 63 74 28 77 2e 64 72 61 77 2c 20 78 66 | .;........XftDrawRect(w.draw,.xf |
| 10580 | 67 2c 20 78 2c 20 79 20 2b 20 77 2e 63 61 20 2b 20 31 2c 20 77 2e 63 77 2c 20 31 29 3b 00 00 00 | g,.x,.y.+.w.ca.+.1,.w.cw,.1);... |
| 105a0 | 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 1f 73 74 61 74 69 63 20 76 6f 69 64 20 64 | .....}....}........static.void.d |
| 105c0 | 72 61 77 5f 63 75 72 73 6f 72 28 76 6f 69 64 29 20 7b 00 00 00 32 20 20 20 20 69 66 20 28 63 75 | raw_cursor(void).{...2....if.(cu |
| 105e0 | 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 48 49 44 45 5f 43 55 52 53 4f 52 29 | r_term->mode.&.MODE_HIDE_CURSOR) |
| 10600 | 20 72 65 74 75 72 6e 3b 00 00 00 35 20 20 20 20 69 6e 74 20 72 20 3d 20 63 75 72 5f 74 65 72 6d | .return;...5....int.r.=.cur_term |
| 10620 | 2d 3e 63 75 72 2e 72 6f 77 2c 20 63 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 63 6f 6c | ->cur.row,.c.=.cur_term->cur.col |
| 10640 | 3b 00 00 00 36 20 20 20 20 69 66 20 28 63 20 3e 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c | ;...6....if.(c.>=.cur_term->ncol |
| 10660 | 73 29 20 63 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 2d 20 31 3b 00 00 00 36 20 | s).c.=.cur_term->ncols.-.1;...6. |
| 10680 | 20 20 20 69 66 20 28 72 20 3e 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 29 20 72 20 3d | ...if.(r.>=.cur_term->nrows).r.= |
| 106a0 | 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 20 2d 20 31 3b 00 00 00 1e 20 20 20 20 69 6e 74 | .cur_term->nrows.-.1;........int |
| 106c0 | 20 78 20 3d 20 42 4f 52 44 45 52 20 2b 20 63 20 2a 20 77 2e 63 77 3b 00 00 00 1e 20 20 20 20 69 | .x.=.BORDER.+.c.*.w.cw;........i |
| 106e0 | 6e 74 20 79 20 3d 20 42 4f 52 44 45 52 20 2b 20 72 20 2a 20 77 2e 63 68 3b 00 00 00 00 00 00 00 | nt.y.=.BORDER.+.r.*.w.ch;....... |
| 10700 | 28 20 20 20 20 43 65 6c 6c 20 67 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 72 5d 2e | (....Cell.g.=.cur_term->rows[r]. |
| 10720 | 63 65 6c 6c 73 5b 63 5d 3b 00 00 00 1f 20 20 20 20 43 6f 6c 6f 72 20 66 67 20 3d 20 67 2e 66 67 | cells[c];........Color.fg.=.g.fg |
| 10740 | 2c 20 62 67 20 3d 20 67 2e 62 67 3b 00 00 00 26 20 20 20 20 43 6f 6c 6f 72 20 74 6d 70 20 3d 20 | ,.bg.=.g.bg;...&....Color.tmp.=. |
| 10760 | 66 67 3b 20 66 67 20 3d 20 62 67 3b 20 62 67 20 3d 20 74 6d 70 3b 00 00 00 2c 20 20 20 20 69 66 | fg;.fg.=.bg;.bg.=.tmp;...,....if |
| 10780 | 20 28 62 67 20 3d 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 29 20 62 67 20 3d 20 77 2e 64 65 66 61 | .(bg.==.w.defaultbg).bg.=.w.defa |
| 107a0 | 75 6c 74 63 73 3b 00 00 00 00 00 00 00 29 20 20 20 20 58 66 74 43 6f 6c 6f 72 20 2a 78 62 67 20 | ultcs;.......)....XftColor.*xbg. |
| 107c0 | 3d 20 67 65 74 5f 78 66 74 5f 63 6f 6c 6f 72 28 62 67 2c 20 30 29 3b 00 00 00 2f 20 20 20 20 58 | =.get_xft_color(bg,.0);.../....X |
| 107e0 | 66 74 44 72 61 77 52 65 63 74 28 77 2e 64 72 61 77 2c 20 78 62 67 2c 20 78 2c 20 79 2c 20 77 2e | ftDrawRect(w.draw,.xbg,.x,.y,.w. |
| 10800 | 63 77 2c 20 77 2e 63 68 29 3b 00 00 00 00 00 00 00 1c 20 20 20 20 69 66 20 28 67 2e 63 6f 64 65 | cw,.w.ch);............if.(g.code |
| 10820 | 70 6f 69 6e 74 20 3e 20 27 20 27 29 20 7b 00 00 00 2d 20 20 20 20 20 20 20 20 58 66 74 43 6f 6c | point.>.'.').{...-........XftCol |
| 10840 | 6f 72 20 2a 78 66 67 20 3d 20 67 65 74 5f 78 66 74 5f 63 6f 6c 6f 72 28 66 67 2c 20 31 29 3b 00 | or.*xfg.=.get_xft_color(fg,.1);. |
| 10860 | 00 00 14 20 20 20 20 20 20 20 20 63 68 61 72 20 75 74 66 5b 38 5d 3b 00 00 00 2f 20 20 20 20 20 | ...........char.utf[8];.../..... |
| 10880 | 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 75 74 66 38 65 6e 63 6f 64 65 28 67 2e 63 6f 64 65 70 6f | ...int.len.=.utf8encode(g.codepo |
| 108a0 | 69 6e 74 2c 20 75 74 66 29 3b 00 00 00 51 20 20 20 20 20 20 20 20 58 66 74 44 72 61 77 53 74 72 | int,.utf);...Q........XftDrawStr |
| 108c0 | 69 6e 67 55 74 66 38 28 77 2e 64 72 61 77 2c 20 78 66 67 2c 20 77 2e 66 6f 6e 74 2c 20 78 2c 20 | ingUtf8(w.draw,.xfg,.w.font,.x,. |
| 108e0 | 79 20 2b 20 77 2e 63 61 2c 20 28 46 63 43 68 61 72 38 20 2a 29 75 74 66 2c 20 6c 65 6e 29 3b 00 | y.+.w.ca,.(FcChar8.*)utf,.len);. |
| 10900 | 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 18 73 74 61 74 69 63 20 76 6f 69 64 | .......}....}........static.void |
| 10920 | 20 64 72 61 77 28 76 6f 69 64 29 20 7b 00 00 00 2f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 72 20 | .draw(void).{.../....for.(int.r. |
| 10940 | 3d 20 30 3b 20 72 20 3c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 3b 20 72 2b 2b 29 20 7b | =.0;.r.<.cur_term->nrows;.r++).{ |
| 10960 | 00 00 00 2f 20 20 20 20 20 20 20 20 69 66 20 28 21 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b | .../........if.(!cur_term->rows[ |
| 10980 | 72 5d 2e 64 69 72 74 79 29 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 33 20 20 20 20 20 20 20 20 66 | r].dirty).continue;...3........f |
| 109a0 | 6f 72 20 28 69 6e 74 20 63 20 3d 20 30 3b 20 63 20 3c 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f | or.(int.c.=.0;.c.<.cur_term->nco |
| 109c0 | 6c 73 3b 20 63 2b 2b 29 20 7b 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 64 72 61 77 5f 67 | ls;.c++).{...:............draw_g |
| 109e0 | 6c 79 70 68 28 72 2c 20 63 2c 20 26 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 72 5d 2e 63 65 | lyph(r,.c,.&cur_term->rows[r].ce |
| 10a00 | 6c 6c 73 5b 63 5d 29 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 24 20 20 20 20 20 20 20 | lls[c]);............}...$....... |
| 10a20 | 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 72 5d 2e 64 69 72 74 79 20 3d 20 30 3b 00 00 00 | .cur_term->rows[r].dirty.=.0;... |
| 10a40 | 05 20 20 20 20 7d 00 00 00 12 20 20 20 20 64 72 61 77 5f 63 75 72 73 6f 72 28 29 3b 00 00 00 01 | .....}........draw_cursor();.... |
| 10a60 | 7d 00 00 00 00 00 00 00 2d 73 74 61 74 69 63 20 76 6f 69 64 20 74 65 72 6d 5f 72 65 73 69 7a 65 | }.......-static.void.term_resize |
| 10a80 | 28 69 6e 74 20 72 6f 77 73 2c 20 69 6e 74 20 63 6f 6c 73 29 20 7b 00 00 00 43 20 20 20 20 69 66 | (int.rows,.int.cols).{...C....if |
| 10aa0 | 20 28 72 6f 77 73 20 3d 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 20 26 26 20 63 6f 6c | .(rows.==.cur_term->nrows.&&.col |
| 10ac0 | 73 20 3d 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 29 20 72 65 74 75 72 6e 3b 00 00 00 | s.==.cur_term->ncols).return;... |
| 10ae0 | 00 00 00 00 2f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 63 75 72 | ..../....for.(int.i.=.0;.i.<.cur |
| 10b00 | 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 3b 20 69 2b 2b 29 20 7b 00 00 00 4f 20 20 20 20 20 20 20 20 | _term->nrows;.i++).{...O........ |
| 10b20 | 43 65 6c 6c 20 2a 6e 65 77 63 65 6c 6c 73 20 3d 20 72 65 61 6c 6c 6f 63 28 63 75 72 5f 74 65 72 | Cell.*newcells.=.realloc(cur_ter |
| 10b40 | 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 2c 20 63 6f 6c 73 20 2a 20 73 69 7a 65 6f 66 28 | m->rows[i].cells,.cols.*.sizeof( |
| 10b60 | 43 65 6c 6c 29 29 3b 00 00 00 26 20 20 20 20 20 20 20 20 69 66 20 28 21 6e 65 77 63 65 6c 6c 73 | Cell));...&........if.(!newcells |
| 10b80 | 29 20 64 69 65 28 22 72 65 61 6c 6c 6f 63 22 29 3b 00 00 00 36 20 20 20 20 20 20 20 20 66 6f 72 | ).die("realloc");...6........for |
| 10ba0 | 20 28 69 6e 74 20 6a 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 3b 20 6a 20 3c 20 63 | .(int.j.=.cur_term->ncols;.j.<.c |
| 10bc0 | 6f 6c 73 3b 20 6a 2b 2b 29 20 7b 00 00 00 3e 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 63 65 | ols;.j++).{...>............newce |
| 10be0 | 6c 6c 73 5b 6a 5d 2e 63 6f 64 65 70 6f 69 6e 74 20 3d 20 27 20 27 3b 20 6e 65 77 63 65 6c 6c 73 | lls[j].codepoint.=.'.';.newcells |
| 10c00 | 5b 6a 5d 2e 61 74 74 72 20 3d 20 30 3b 00 00 00 47 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 | [j].attr.=.0;...G............new |
| 10c20 | 63 65 6c 6c 73 5b 6a 5d 2e 66 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 66 67 3b 20 6e 65 77 63 65 | cells[j].fg.=.w.defaultfg;.newce |
| 10c40 | 6c 6c 73 5b 6a 5d 2e 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b 00 00 00 09 20 20 20 20 | lls[j].bg.=.w.defaultbg;........ |
| 10c60 | 20 20 20 20 7d 00 00 00 2b 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b | ....}...+........cur_term->rows[ |
| 10c80 | 69 5d 2e 63 65 6c 6c 73 20 3d 20 6e 65 77 63 65 6c 6c 73 3b 00 00 00 27 20 20 20 20 20 20 20 20 | i].cells.=.newcells;...'........ |
| 10ca0 | 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 6f 6c 73 20 20 3d 20 63 6f 6c 73 3b 00 | cur_term->rows[i].cols..=.cols;. |
| 10cc0 | 00 00 24 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 64 69 72 | ..$........cur_term->rows[i].dir |
| 10ce0 | 74 79 20 3d 20 31 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 21 20 20 20 20 69 66 20 28 | ty.=.1;........}.......!....if.( |
| 10d00 | 72 6f 77 73 20 3e 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 29 20 7b 00 00 00 45 20 20 20 | rows.>.cur_term->nrows).{...E... |
| 10d20 | 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 20 3d 20 72 65 61 6c 6c 6f 63 28 63 75 | .....cur_term->rows.=.realloc(cu |
| 10d40 | 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 2c 20 72 6f 77 73 20 2a 20 73 69 7a 65 6f 66 28 52 6f 77 29 | r_term->rows,.rows.*.sizeof(Row) |
| 10d60 | 29 3b 00 00 00 2c 20 20 20 20 20 20 20 20 69 66 20 28 21 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 | );...,........if.(!cur_term->row |
| 10d80 | 73 29 20 64 69 65 28 22 72 65 61 6c 6c 6f 63 22 29 3b 00 00 00 36 20 20 20 20 20 20 20 20 66 6f | s).die("realloc");...6........fo |
| 10da0 | 72 20 28 69 6e 74 20 69 20 3d 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 3b 20 69 20 3c 20 | r.(int.i.=.cur_term->nrows;.i.<. |
| 10dc0 | 72 6f 77 73 3b 20 69 2b 2b 29 20 7b 00 00 00 41 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f | rows;.i++).{...A............cur_ |
| 10de0 | 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 65 6c 6c 73 20 3d 20 63 61 6c 6c 6f 63 28 63 6f 6c | term->rows[i].cells.=.calloc(col |
| 10e00 | 73 2c 20 73 69 7a 65 6f 66 28 43 65 6c 6c 29 29 3b 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 | s,.sizeof(Cell));...+........... |
| 10e20 | 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d 2e 63 6f 6c 73 20 20 3d 20 63 6f 6c 73 3b | .cur_term->rows[i].cols..=.cols; |
| 10e40 | 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 | ...(............cur_term->rows[i |
| 10e60 | 5d 2e 64 69 72 74 79 20 3d 20 31 3b 00 00 00 2c 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 | ].dirty.=.1;...,............for. |
| 10e80 | 28 69 6e 74 20 6a 20 3d 20 30 3b 20 6a 20 3c 20 63 6f 6c 73 3b 20 6a 2b 2b 29 20 7b 00 00 00 3b | (int.j.=.0;.j.<.cols;.j++).{...; |
| 10ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 | ................cur_term->rows[i |
| 10ec0 | 5d 2e 63 65 6c 6c 73 5b 6a 5d 2e 63 6f 64 65 70 6f 69 6e 74 20 3d 20 27 20 27 3b 00 00 00 3c 20 | ].cells[j].codepoint.=.'.';...<. |
| 10ee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d | ...............cur_term->rows[i] |
| 10f00 | 2e 63 65 6c 6c 73 5b 6a 5d 2e 66 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 66 67 3b 00 00 00 3c 20 | .cells[j].fg.=.w.defaultfg;...<. |
| 10f20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 72 6f 77 73 5b 69 5d | ...............cur_term->rows[i] |
| 10f40 | 2e 63 65 6c 6c 73 5b 6a 5d 2e 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b 00 00 00 0d 20 | .cells[j].bg.=.w.defaultbg;..... |
| 10f60 | 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 | ...........}............}....... |
| 10f80 | 20 7d 00 00 00 00 00 00 00 1b 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 72 6f 77 73 20 3d 20 | .}............cur_term->nrows.=. |
| 10fa0 | 72 6f 77 73 3b 00 00 00 1b 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 6e 63 6f 6c 73 20 3d 20 63 | rows;........cur_term->ncols.=.c |
| 10fc0 | 6f 6c 73 3b 00 00 00 18 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 74 6f 70 20 20 20 3d 20 30 3b | ols;........cur_term->top...=.0; |
| 10fe0 | 00 00 00 1f 20 20 20 20 63 75 72 5f 74 65 72 6d 2d 3e 62 6f 74 20 20 20 3d 20 72 6f 77 73 20 2d | ........cur_term->bot...=.rows.- |
| 11000 | 20 31 3b 00 00 00 00 00 00 00 40 20 20 20 20 69 66 20 28 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 | .1;.......@....if.(cur_term->cur |
| 11020 | 2e 72 6f 77 20 3e 3d 20 72 6f 77 73 29 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e 72 6f 77 20 | .row.>=.rows).cur_term->cur.row. |
| 11040 | 3d 20 72 6f 77 73 20 2d 20 31 3b 00 00 00 40 20 20 20 20 69 66 20 28 63 75 72 5f 74 65 72 6d 2d | =.rows.-.1;...@....if.(cur_term- |
| 11060 | 3e 63 75 72 2e 63 6f 6c 20 3e 3d 20 63 6f 6c 73 29 20 63 75 72 5f 74 65 72 6d 2d 3e 63 75 72 2e | >cur.col.>=.cols).cur_term->cur. |
| 11080 | 63 6f 6c 20 3d 20 63 6f 6c 73 20 2d 20 31 3b 00 00 00 00 00 00 00 2d 20 20 20 20 73 74 72 75 63 | col.=.cols.-.1;.......-....struc |
| 110a0 | 74 20 77 69 6e 73 69 7a 65 20 77 73 20 3d 20 7b 20 72 6f 77 73 2c 20 63 6f 6c 73 2c 20 30 2c 20 | t.winsize.ws.=.{.rows,.cols,.0,. |
| 110c0 | 30 20 7d 3b 00 00 00 24 20 20 20 20 69 6f 63 74 6c 28 70 74 79 2e 6d 66 64 2c 20 54 49 4f 43 53 | 0.};...$....ioctl(pty.mfd,.TIOCS |
| 110e0 | 57 49 4e 53 5a 2c 20 26 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 33 73 74 61 74 69 63 20 | WINSZ,.&ws);....}.......3static. |
| 11100 | 76 6f 69 64 20 68 61 6e 64 6c 65 5f 6b 65 79 28 78 63 62 5f 6b 65 79 5f 70 72 65 73 73 5f 65 76 | void.handle_key(xcb_key_press_ev |
| 11120 | 65 6e 74 5f 74 20 2a 65 76 29 20 7b 00 00 00 43 20 20 20 20 78 63 62 5f 6b 65 79 73 79 6d 5f 74 | ent_t.*ev).{...C....xcb_keysym_t |
| 11140 | 20 73 79 6d 20 3d 20 78 63 62 5f 6b 65 79 5f 70 72 65 73 73 5f 6c 6f 6f 6b 75 70 5f 6b 65 79 73 | .sym.=.xcb_key_press_lookup_keys |
| 11160 | 79 6d 28 77 2e 6b 73 79 6d 73 2c 20 65 76 2c 20 30 29 3b 00 00 00 1d 20 20 20 20 75 69 6e 74 31 | ym(w.ksyms,.ev,.0);........uint1 |
| 11180 | 36 5f 74 20 6d 6f 64 20 3d 20 65 76 2d 3e 73 74 61 74 65 3b 00 00 00 32 20 20 20 20 69 6e 74 20 | 6_t.mod.=.ev->state;...2....int. |
| 111a0 | 73 68 69 66 74 20 20 20 3d 20 28 6d 6f 64 20 26 20 58 43 42 5f 4d 4f 44 5f 4d 41 53 4b 5f 53 48 | shift...=.(mod.&.XCB_MOD_MASK_SH |
| 111c0 | 49 46 54 29 20 21 3d 20 30 3b 00 00 00 34 20 20 20 20 69 6e 74 20 63 74 72 6c 20 20 20 20 3d 20 | IFT).!=.0;...4....int.ctrl....=. |
| 111e0 | 28 6d 6f 64 20 26 20 58 43 42 5f 4d 4f 44 5f 4d 41 53 4b 5f 43 4f 4e 54 52 4f 4c 29 20 21 3d 20 | (mod.&.XCB_MOD_MASK_CONTROL).!=. |
| 11200 | 30 3b 00 00 00 2e 20 20 20 20 69 6e 74 20 61 6c 74 20 20 20 20 20 3d 20 28 6d 6f 64 20 26 20 58 | 0;........int.alt.....=.(mod.&.X |
| 11220 | 43 42 5f 4d 4f 44 5f 4d 41 53 4b 5f 31 29 20 21 3d 20 30 3b 00 00 00 11 20 20 20 20 63 68 61 72 | CB_MOD_MASK_1).!=.0;........char |
| 11240 | 20 62 75 66 5b 33 32 5d 3b 00 00 00 11 20 20 20 20 69 6e 74 20 20 6c 65 6e 20 3d 20 30 3b 00 00 | .buf[32];........int..len.=.0;.. |
| 11260 | 00 00 00 00 00 49 20 20 20 20 69 66 20 28 63 74 72 6c 20 26 26 20 73 79 6d 20 3d 3d 20 27 63 27 | .....I....if.(ctrl.&&.sym.==.'c' |
| 11280 | 20 2d 20 27 61 27 20 2b 20 27 61 27 29 20 7b 20 70 74 79 5f 77 72 69 74 65 28 22 5c 30 30 33 22 | .-.'a'.+.'a').{.pty_write("\003" |
| 112a0 | 2c 20 31 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 00 00 00 00 3d 20 20 20 20 69 66 20 28 73 | ,.1);.return;.}.......=....if.(s |
| 112c0 | 79 6d 20 3d 3d 20 58 4b 5f 52 65 74 75 72 6e 29 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 | ym.==.XK_Return).....{.pty_write |
| 112e0 | 28 22 5c 72 22 2c 20 31 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 3f 20 20 20 20 69 66 20 28 | ("\r",.1);.return;.}...?....if.( |
| 11300 | 73 79 6d 20 3d 3d 20 58 4b 5f 42 61 63 6b 53 70 61 63 65 29 20 20 7b 20 70 74 79 5f 77 72 69 74 | sym.==.XK_BackSpace)..{.pty_writ |
| 11320 | 65 28 22 5c 31 37 37 22 2c 20 31 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 3d 20 20 20 20 69 | e("\177",.1);.return;.}...=....i |
| 11340 | 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 54 61 62 29 20 20 20 20 20 20 20 20 7b 20 70 74 79 5f 77 | f.(sym.==.XK_Tab)........{.pty_w |
| 11360 | 72 69 74 65 28 22 5c 74 22 2c 20 31 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 3f 20 20 20 20 | rite("\t",.1);.return;.}...?.... |
| 11380 | 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 45 73 63 61 70 65 29 20 20 20 20 20 7b 20 70 74 79 5f | if.(sym.==.XK_Escape).....{.pty_ |
| 113a0 | 77 72 69 74 65 28 22 5c 30 33 33 22 2c 20 31 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 00 00 | write("\033",.1);.return;.}..... |
| 113c0 | 00 00 6e 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 55 70 29 20 20 20 20 20 20 20 20 | ..n....if.(sym.==.XK_Up)........ |
| 113e0 | 20 7b 20 70 74 79 5f 77 72 69 74 65 28 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f | .{.pty_write(cur_term->mode.&.MO |
| 11400 | 44 45 5f 41 50 50 4b 45 59 50 41 44 20 3f 20 22 5c 30 33 33 4f 41 22 20 3a 20 22 5c 30 33 33 5b | DE_APPKEYPAD.?."\033OA".:."\033[ |
| 11420 | 41 22 2c 20 33 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 6e 20 20 20 20 69 66 20 28 73 79 6d | A",.3);.return;.}...n....if.(sym |
| 11440 | 20 3d 3d 20 58 4b 5f 44 6f 77 6e 29 20 20 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 63 | .==.XK_Down).......{.pty_write(c |
| 11460 | 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 41 50 50 4b 45 59 50 41 44 20 3f | ur_term->mode.&.MODE_APPKEYPAD.? |
| 11480 | 20 22 5c 30 33 33 4f 42 22 20 3a 20 22 5c 30 33 33 5b 42 22 2c 20 33 29 3b 20 72 65 74 75 72 6e | ."\033OB".:."\033[B",.3);.return |
| 114a0 | 3b 20 7d 00 00 00 6e 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 52 69 67 68 74 29 20 | ;.}...n....if.(sym.==.XK_Right). |
| 114c0 | 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 | .....{.pty_write(cur_term->mode. |
| 114e0 | 26 20 4d 4f 44 45 5f 41 50 50 4b 45 59 50 41 44 20 3f 20 22 5c 30 33 33 4f 43 22 20 3a 20 22 5c | &.MODE_APPKEYPAD.?."\033OC".:."\ |
| 11500 | 30 33 33 5b 43 22 2c 20 33 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 6e 20 20 20 20 69 66 20 | 033[C",.3);.return;.}...n....if. |
| 11520 | 28 73 79 6d 20 3d 3d 20 58 4b 5f 4c 65 66 74 29 20 20 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 | (sym.==.XK_Left).......{.pty_wri |
| 11540 | 74 65 28 63 75 72 5f 74 65 72 6d 2d 3e 6d 6f 64 65 20 26 20 4d 4f 44 45 5f 41 50 50 4b 45 59 50 | te(cur_term->mode.&.MODE_APPKEYP |
| 11560 | 41 44 20 3f 20 22 5c 30 33 33 4f 44 22 20 3a 20 22 5c 30 33 33 5b 44 22 2c 20 33 29 3b 20 72 65 | AD.?."\033OD".:."\033[D",.3);.re |
| 11580 | 74 75 72 6e 3b 20 7d 00 00 00 41 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 48 6f 6d | turn;.}...A....if.(sym.==.XK_Hom |
| 115a0 | 65 29 20 20 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 22 5c 30 33 33 5b 48 22 2c 20 33 | e).......{.pty_write("\033[H",.3 |
| 115c0 | 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 41 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 | );.return;.}...A....if.(sym.==.X |
| 115e0 | 4b 5f 45 6e 64 29 20 20 20 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 22 5c 30 33 33 5b | K_End)........{.pty_write("\033[ |
| 11600 | 46 22 2c 20 33 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 42 20 20 20 20 69 66 20 28 73 79 6d | F",.3);.return;.}...B....if.(sym |
| 11620 | 20 3d 3d 20 58 4b 5f 50 72 69 6f 72 29 20 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 22 | .==.XK_Prior)......{.pty_write(" |
| 11640 | 5c 30 33 33 5b 35 7e 22 2c 20 34 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 42 20 20 20 20 69 | \033[5~",.4);.return;.}...B....i |
| 11660 | 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 4e 65 78 74 29 20 20 20 20 20 20 20 7b 20 70 74 79 5f 77 | f.(sym.==.XK_Next).......{.pty_w |
| 11680 | 72 69 74 65 28 22 5c 30 33 33 5b 36 7e 22 2c 20 34 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 | rite("\033[6~",.4);.return;.}... |
| 116a0 | 42 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 49 6e 73 65 72 74 29 20 20 20 20 20 7b | B....if.(sym.==.XK_Insert).....{ |
| 116c0 | 20 70 74 79 5f 77 72 69 74 65 28 22 5c 30 33 33 5b 32 7e 22 2c 20 34 29 3b 20 72 65 74 75 72 6e | .pty_write("\033[2~",.4);.return |
| 116e0 | 3b 20 7d 00 00 00 42 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 44 65 6c 65 74 65 29 | ;.}...B....if.(sym.==.XK_Delete) |
| 11700 | 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 22 5c 30 33 33 5b 33 7e 22 2c 20 34 29 3b 20 | .....{.pty_write("\033[3~",.4);. |
| 11720 | 72 65 74 75 72 6e 3b 20 7d 00 00 00 41 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 46 | return;.}...A....if.(sym.==.XK_F |
| 11740 | 31 29 20 20 20 20 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 22 5c 30 33 33 4f 50 22 2c | 1).........{.pty_write("\033OP", |
| 11760 | 20 33 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 41 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d | .3);.return;.}...A....if.(sym.== |
| 11780 | 20 58 4b 5f 46 32 29 20 20 20 20 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 28 22 5c 30 33 | .XK_F2).........{.pty_write("\03 |
| 117a0 | 33 4f 51 22 2c 20 33 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 41 20 20 20 20 69 66 20 28 73 | 3OQ",.3);.return;.}...A....if.(s |
| 117c0 | 79 6d 20 3d 3d 20 58 4b 5f 46 33 29 20 20 20 20 20 20 20 20 20 7b 20 70 74 79 5f 77 72 69 74 65 | ym.==.XK_F3).........{.pty_write |
| 117e0 | 28 22 5c 30 33 33 4f 52 22 2c 20 33 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 41 20 20 20 20 | ("\033OR",.3);.return;.}...A.... |
| 11800 | 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 5f 46 34 29 20 20 20 20 20 20 20 20 20 7b 20 70 74 79 5f | if.(sym.==.XK_F4).........{.pty_ |
| 11820 | 77 72 69 74 65 28 22 5c 30 33 33 4f 53 22 2c 20 33 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 | write("\033OS",.3);.return;.}... |
| 11840 | 28 20 20 20 20 69 66 20 28 73 79 6d 20 3e 3d 20 58 4b 5f 46 35 20 26 26 20 73 79 6d 20 3c 3d 20 | (....if.(sym.>=.XK_F5.&&.sym.<=. |
| 11860 | 58 4b 5f 46 31 32 29 20 7b 00 00 00 53 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 | XK_F12).{...S........static.cons |
| 11880 | 74 20 63 68 61 72 20 2a 66 6b 65 79 73 5b 5d 20 3d 20 7b 20 22 5c 30 33 33 5b 31 35 7e 22 2c 22 | t.char.*fkeys[].=.{."\033[15~"," |
| 118a0 | 5c 30 33 33 5b 31 37 7e 22 2c 22 5c 30 33 33 5b 31 38 7e 22 2c 22 5c 30 33 33 5b 31 39 7e 22 2c | \033[17~","\033[18~","\033[19~", |
| 118c0 | 00 00 00 56 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...V............................ |
| 118e0 | 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 30 33 33 5b 32 30 7e 22 2c 22 5c 30 33 33 5b 32 31 7e | ............"\033[20~","\033[21~ |
| 11900 | 22 2c 22 5c 30 33 33 5b 32 33 7e 22 2c 22 5c 30 33 33 5b 32 34 7e 22 20 7d 3b 00 00 00 42 20 20 | ","\033[23~","\033[24~".};...B.. |
| 11920 | 20 20 20 20 20 20 70 74 79 5f 77 72 69 74 65 28 66 6b 65 79 73 5b 73 79 6d 20 2d 20 58 4b 5f 46 | ......pty_write(fkeys[sym.-.XK_F |
| 11940 | 35 5d 2c 20 73 74 72 6c 65 6e 28 66 6b 65 79 73 5b 73 79 6d 20 2d 20 58 4b 5f 46 35 5d 29 29 3b | 5],.strlen(fkeys[sym.-.XK_F5])); |
| 11960 | 00 00 00 0f 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 | ............return;........}.... |
| 11980 | 00 00 00 1c 20 20 20 20 69 66 20 28 61 6c 74 20 26 26 20 73 79 6d 20 3c 20 30 78 38 30 29 20 7b | ........if.(alt.&&.sym.<.0x80).{ |
| 119a0 | 00 00 00 16 20 20 20 20 20 20 20 20 62 75 66 5b 30 5d 20 3d 20 30 78 31 42 3b 00 00 00 15 20 20 | ............buf[0].=.0x1B;...... |
| 119c0 | 20 20 20 20 20 20 62 75 66 5b 31 5d 20 3d 20 73 79 6d 3b 00 00 00 1a 20 20 20 20 20 20 20 20 70 | ......buf[1].=.sym;............p |
| 119e0 | 74 79 5f 77 72 69 74 65 28 62 75 66 2c 20 32 29 3b 00 00 00 0f 20 20 20 20 20 20 20 20 72 65 74 | ty_write(buf,.2);............ret |
| 11a00 | 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 2d 20 20 20 20 69 66 20 28 63 74 72 | urn;........}.......-....if.(ctr |
| 11a20 | 6c 20 26 26 20 73 79 6d 20 3e 3d 20 30 78 34 30 20 26 26 20 73 79 6d 20 3c 3d 20 30 78 37 46 29 | l.&&.sym.>=.0x40.&&.sym.<=.0x7F) |
| 11a40 | 20 7b 00 00 00 1c 20 20 20 20 20 20 20 20 62 75 66 5b 30 5d 20 3d 20 73 79 6d 20 26 20 30 78 31 | .{............buf[0].=.sym.&.0x1 |
| 11a60 | 46 3b 00 00 00 1a 20 20 20 20 20 20 20 20 70 74 79 5f 77 72 69 74 65 28 62 75 66 2c 20 31 29 3b | F;............pty_write(buf,.1); |
| 11a80 | 00 00 00 0f 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 2c | ............return;........}..., |
| 11aa0 | 20 20 20 20 69 66 20 28 63 74 72 6c 20 26 26 20 73 79 6d 20 3e 3d 20 30 78 32 30 20 26 26 20 73 | ....if.(ctrl.&&.sym.>=.0x20.&&.s |
| 11ac0 | 79 6d 20 3c 20 30 78 34 30 29 20 7b 00 00 00 15 20 20 20 20 20 20 20 20 62 75 66 5b 30 5d 20 3d | ym.<.0x40).{............buf[0].= |
| 11ae0 | 20 73 79 6d 3b 00 00 00 1a 20 20 20 20 20 20 20 20 70 74 79 5f 77 72 69 74 65 28 62 75 66 2c 20 | .sym;............pty_write(buf,. |
| 11b00 | 31 29 3b 00 00 00 0f 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 | 1);............return;........}. |
| 11b20 | 00 00 00 00 00 00 26 20 20 20 20 69 66 20 28 73 79 6d 20 3c 20 30 78 38 30 20 26 26 20 21 63 74 | ......&....if.(sym.<.0x80.&&.!ct |
| 11b40 | 72 6c 20 26 26 20 21 61 6c 74 29 20 7b 00 00 00 2c 20 20 20 20 20 20 20 20 62 75 66 5b 30 5d 20 | rl.&&.!alt).{...,........buf[0]. |
| 11b60 | 3d 20 73 68 69 66 74 20 3f 20 74 6f 75 70 70 65 72 28 73 79 6d 29 20 3a 20 73 79 6d 3b 00 00 00 | =.shift.?.toupper(sym).:.sym;... |
| 11b80 | 10 20 20 20 20 20 20 20 20 6c 65 6e 20 3d 20 31 3b 00 00 00 31 20 20 20 20 7d 20 65 6c 73 65 20 | .........len.=.1;...1....}.else. |
| 11ba0 | 69 66 20 28 73 79 6d 20 3e 3d 20 30 78 38 30 20 26 26 20 73 79 6d 20 3c 20 30 78 31 31 30 30 30 | if.(sym.>=.0x80.&&.sym.<.0x11000 |
| 11bc0 | 30 30 30 29 20 7b 00 00 00 23 20 20 20 20 20 20 20 20 6c 65 6e 20 3d 20 75 74 66 38 65 6e 63 6f | 000).{...#........len.=.utf8enco |
| 11be0 | 64 65 28 73 79 6d 2c 20 62 75 66 29 3b 00 00 00 14 20 20 20 20 20 20 20 20 28 76 6f 69 64 29 73 | de(sym,.buf);............(void)s |
| 11c00 | 68 69 66 74 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 25 20 20 20 20 69 66 20 28 6c 65 | hift;........}.......%....if.(le |
| 11c20 | 6e 20 3e 20 30 29 20 70 74 79 5f 77 72 69 74 65 28 62 75 66 2c 20 6c 65 6e 29 3b 00 00 00 01 7d | n.>.0).pty_write(buf,.len);....} |
| 11c40 | 00 00 00 00 00 00 00 1f 73 74 61 74 69 63 20 76 6f 69 64 20 78 65 76 65 6e 74 5f 6c 6f 6f 70 28 | ........static.void.xevent_loop( |
| 11c60 | 76 6f 69 64 29 20 7b 00 00 00 1c 20 20 20 20 78 63 62 5f 67 65 6e 65 72 69 63 5f 65 76 65 6e 74 | void).{........xcb_generic_event |
| 11c80 | 5f 74 20 2a 65 76 3b 00 00 00 2e 20 20 20 20 77 68 69 6c 65 20 28 28 65 76 20 3d 20 78 63 62 5f | _t.*ev;........while.((ev.=.xcb_ |
| 11ca0 | 70 6f 6c 6c 5f 66 6f 72 5f 65 76 65 6e 74 28 77 2e 63 6f 6e 29 29 29 20 7b 00 00 00 2c 20 20 20 | poll_for_event(w.con))).{...,... |
| 11cc0 | 20 20 20 20 20 73 77 69 74 63 68 20 28 65 76 2d 3e 72 65 73 70 6f 6e 73 65 5f 74 79 70 65 20 26 | .....switch.(ev->response_type.& |
| 11ce0 | 20 7e 30 78 38 30 29 20 7b 00 00 00 18 20 20 20 20 20 20 20 20 63 61 73 65 20 58 43 42 5f 45 58 | .~0x80).{............case.XCB_EX |
| 11d00 | 50 4f 53 45 3a 00 00 00 18 20 20 20 20 20 20 20 20 20 20 20 20 64 69 72 74 79 5f 61 6c 6c 28 29 | POSE:................dirty_all() |
| 11d20 | 3b 00 00 00 12 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 1b 20 20 20 20 20 | ;................break;......... |
| 11d40 | 20 20 20 63 61 73 65 20 58 43 42 5f 4b 45 59 5f 50 52 45 53 53 3a 00 00 00 34 20 20 20 20 20 20 | ...case.XCB_KEY_PRESS:...4...... |
| 11d60 | 20 20 20 20 20 20 68 61 6e 64 6c 65 5f 6b 65 79 28 28 78 63 62 5f 6b 65 79 5f 70 72 65 73 73 5f | ......handle_key((xcb_key_press_ |
| 11d80 | 65 76 65 6e 74 5f 74 20 2a 29 65 76 29 3b 00 00 00 12 20 20 20 20 20 20 20 20 20 20 20 20 62 72 | event_t.*)ev);................br |
| 11da0 | 65 61 6b 3b 00 00 00 24 20 20 20 20 20 20 20 20 63 61 73 65 20 58 43 42 5f 43 4f 4e 46 49 47 55 | eak;...$........case.XCB_CONFIGU |
| 11dc0 | 52 45 5f 4e 4f 54 49 46 59 3a 20 7b 00 00 00 52 20 20 20 20 20 20 20 20 20 20 20 20 78 63 62 5f | RE_NOTIFY:.{...R............xcb_ |
| 11de0 | 63 6f 6e 66 69 67 75 72 65 5f 6e 6f 74 69 66 79 5f 65 76 65 6e 74 5f 74 20 2a 63 6e 20 3d 20 28 | configure_notify_event_t.*cn.=.( |
| 11e00 | 78 63 62 5f 63 6f 6e 66 69 67 75 72 65 5f 6e 6f 74 69 66 79 5f 65 76 65 6e 74 5f 74 20 2a 29 65 | xcb_configure_notify_event_t.*)e |
| 11e20 | 76 3b 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 6e 65 77 63 6f 6c 73 20 3d 20 | v;...:............int.newcols.=. |
| 11e40 | 28 63 6e 2d 3e 77 69 64 74 68 20 2d 20 32 20 2a 20 42 4f 52 44 45 52 29 20 2f 20 77 2e 63 77 3b | (cn->width.-.2.*.BORDER)./.w.cw; |
| 11e60 | 00 00 00 3b 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 6e 65 77 72 6f 77 73 20 3d 20 28 63 | ...;............int.newrows.=.(c |
| 11e80 | 6e 2d 3e 68 65 69 67 68 74 20 2d 20 32 20 2a 20 42 4f 52 44 45 52 29 20 2f 20 77 2e 63 68 3b 00 | n->height.-.2.*.BORDER)./.w.ch;. |
| 11ea0 | 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6e 65 77 63 6f 6c 73 20 3c 20 31 29 20 | ..)............if.(newcols.<.1). |
| 11ec0 | 6e 65 77 63 6f 6c 73 20 3d 20 31 3b 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 | newcols.=.1;...)............if.( |
| 11ee0 | 6e 65 77 72 6f 77 73 20 3c 20 31 29 20 6e 65 77 72 6f 77 73 20 3d 20 31 3b 00 00 00 1f 20 20 20 | newrows.<.1).newrows.=.1;....... |
| 11f00 | 20 20 20 20 20 20 20 20 20 77 2e 77 69 6e 77 20 3d 20 63 6e 2d 3e 77 69 64 74 68 3b 00 00 00 20 | .........w.winw.=.cn->width;.... |
| 11f20 | 20 20 20 20 20 20 20 20 20 20 20 20 77 2e 77 69 6e 68 20 3d 20 63 6e 2d 3e 68 65 69 67 68 74 3b | ............w.winh.=.cn->height; |
| 11f40 | 00 00 00 1d 20 20 20 20 20 20 20 20 20 20 20 20 77 2e 63 6f 6c 73 20 3d 20 6e 65 77 63 6f 6c 73 | ................w.cols.=.newcols |
| 11f60 | 3b 00 00 00 1d 20 20 20 20 20 20 20 20 20 20 20 20 77 2e 72 6f 77 73 20 3d 20 6e 65 77 72 6f 77 | ;................w.rows.=.newrow |
| 11f80 | 73 3b 00 00 00 2a 20 20 20 20 20 20 20 20 20 20 20 20 74 65 72 6d 5f 72 65 73 69 7a 65 28 6e 65 | s;...*............term_resize(ne |
| 11fa0 | 77 72 6f 77 73 2c 20 6e 65 77 63 6f 6c 73 29 3b 00 00 00 12 20 20 20 20 20 20 20 20 20 20 20 20 | wrows,.newcols);................ |
| 11fc0 | 62 72 65 61 6b 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 22 20 20 20 20 20 20 20 20 63 | break;............}..."........c |
| 11fe0 | 61 73 65 20 58 43 42 5f 43 4c 49 45 4e 54 5f 4d 45 53 53 41 47 45 3a 20 7b 00 00 00 4e 20 20 20 | ase.XCB_CLIENT_MESSAGE:.{...N... |
| 12000 | 20 20 20 20 20 20 20 20 20 78 63 62 5f 63 6c 69 65 6e 74 5f 6d 65 73 73 61 67 65 5f 65 76 65 6e | .........xcb_client_message_even |
| 12020 | 74 5f 74 20 2a 63 6d 20 3d 20 28 78 63 62 5f 63 6c 69 65 6e 74 5f 6d 65 73 73 61 67 65 5f 65 76 | t_t.*cm.=.(xcb_client_message_ev |
| 12040 | 65 6e 74 5f 74 20 2a 29 65 76 3b 00 00 00 15 20 20 20 20 20 20 20 20 20 20 20 20 28 76 6f 69 64 | ent_t.*)ev;................(void |
| 12060 | 29 63 6d 3b 00 00 00 18 20 20 20 20 20 20 20 20 20 20 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b | )cm;................running.=.0; |
| 12080 | 00 00 00 12 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 09 20 20 20 20 20 20 | ................break;.......... |
| 120a0 | 20 20 7d 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 11 20 20 20 20 20 20 20 20 66 72 65 65 | ..}............}............free |
| 120c0 | 28 65 76 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 | (ev);........}....}.......&stati |
| 120e0 | 63 20 76 6f 69 64 20 73 69 67 63 68 6c 64 5f 68 61 6e 64 6c 65 72 28 69 6e 74 20 73 69 67 29 20 | c.void.sigchld_handler(int.sig). |
| 12100 | 7b 00 00 00 0e 20 20 20 20 28 76 6f 69 64 29 73 69 67 3b 00 00 00 0f 20 20 20 20 69 6e 74 20 73 | {........(void)sig;........int.s |
| 12120 | 74 61 74 75 73 3b 00 00 00 27 20 20 20 20 77 61 69 74 70 69 64 28 70 74 79 2e 70 69 64 2c 20 26 | tatus;...'....waitpid(pty.pid,.& |
| 12140 | 73 74 61 74 75 73 2c 20 57 4e 4f 48 41 4e 47 29 3b 00 00 00 10 20 20 20 20 72 75 6e 6e 69 6e 67 | status,.WNOHANG);........running |
| 12160 | 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 | .=.0;....}........int.main(void) |
| 12180 | 20 7b 00 00 00 1a 20 20 20 20 73 65 74 6c 6f 63 61 6c 65 28 4c 43 5f 41 4c 4c 2c 20 22 22 29 3b | .{........setlocale(LC_ALL,.""); |
| 121a0 | 00 00 00 25 20 20 20 20 73 69 67 6e 61 6c 28 53 49 47 43 48 4c 44 2c 20 73 69 67 63 68 6c 64 5f | ...%....signal(SIGCHLD,.sigchld_ |
| 121c0 | 68 61 6e 64 6c 65 72 29 3b 00 00 00 00 00 00 00 0f 20 20 20 20 78 63 62 5f 69 6e 69 74 28 29 3b | handler);............xcb_init(); |
| 121e0 | 00 00 00 19 20 20 20 20 63 75 72 5f 66 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 66 67 3b 00 00 00 | ........cur_fg.=.w.defaultfg;... |
| 12200 | 19 20 20 20 20 63 75 72 5f 62 67 20 3d 20 77 2e 64 65 66 61 75 6c 74 62 67 3b 00 00 00 11 20 20 | .....cur_bg.=.w.defaultbg;...... |
| 12220 | 20 20 63 75 72 5f 61 74 74 72 20 3d 20 30 3b 00 00 00 00 00 00 00 25 20 20 20 20 74 65 72 6d 5f | ..cur_attr.=.0;.......%....term_ |
| 12240 | 69 6e 69 74 28 26 74 65 72 6d 2c 20 77 2e 72 6f 77 73 2c 20 77 2e 63 6f 6c 73 29 3b 00 00 00 28 | init(&term,.w.rows,.w.cols);...( |
| 12260 | 20 20 20 20 74 65 72 6d 5f 69 6e 69 74 28 26 61 6c 74 74 65 72 6d 2c 20 77 2e 72 6f 77 73 2c 20 | ....term_init(&altterm,.w.rows,. |
| 12280 | 77 2e 63 6f 6c 73 29 3b 00 00 00 00 00 00 00 0f 20 20 20 20 70 74 79 5f 69 6e 69 74 28 29 3b 00 | w.cols);............pty_init();. |
| 122a0 | 00 00 00 00 00 00 15 20 20 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 14 | ...........while.(running).{.... |
| 122c0 | 20 20 20 20 20 20 20 20 66 64 5f 73 65 74 20 72 66 64 73 3b 00 00 00 17 20 20 20 20 20 20 20 20 | ........fd_set.rfds;............ |
| 122e0 | 46 44 5f 5a 45 52 4f 28 26 72 66 64 73 29 3b 00 00 00 1f 20 20 20 20 20 20 20 20 46 44 5f 53 45 | FD_ZERO(&rfds);............FD_SE |
| 12300 | 54 28 70 74 79 2e 6d 66 64 2c 20 26 72 66 64 73 29 3b 00 00 00 31 20 20 20 20 20 20 20 20 69 6e | T(pty.mfd,.&rfds);...1........in |
| 12320 | 74 20 78 66 64 20 3d 20 78 63 62 5f 67 65 74 5f 66 69 6c 65 5f 64 65 73 63 72 69 70 74 6f 72 28 | t.xfd.=.xcb_get_file_descriptor( |
| 12340 | 77 2e 63 6f 6e 29 3b 00 00 00 1b 20 20 20 20 20 20 20 20 46 44 5f 53 45 54 28 78 66 64 2c 20 26 | w.con);............FD_SET(xfd,.& |
| 12360 | 72 66 64 73 29 3b 00 00 00 32 20 20 20 20 20 20 20 20 69 6e 74 20 6d 61 78 66 64 20 3d 20 70 74 | rfds);...2........int.maxfd.=.pt |
| 12380 | 79 2e 6d 66 64 20 3e 20 78 66 64 20 3f 20 70 74 79 2e 6d 66 64 20 3a 20 78 66 64 3b 00 00 00 00 | y.mfd.>.xfd.?.pty.mfd.:.xfd;.... |
| 123a0 | 00 00 00 29 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 74 69 6d 65 76 61 6c 20 74 76 20 3d 20 | ...)........struct.timeval.tv.=. |
| 123c0 | 7b 20 30 2c 20 31 30 30 30 30 20 7d 3b 00 00 00 3a 20 20 20 20 20 20 20 20 69 6e 74 20 6e 20 3d | {.0,.10000.};...:........int.n.= |
| 123e0 | 20 73 65 6c 65 63 74 28 6d 61 78 66 64 20 2b 20 31 2c 20 26 72 66 64 73 2c 20 4e 55 4c 4c 2c 20 | .select(maxfd.+.1,.&rfds,.NULL,. |
| 12400 | 4e 55 4c 4c 2c 20 26 74 76 29 3b 00 00 00 3b 20 20 20 20 20 20 20 20 69 66 20 28 6e 20 3c 20 30 | NULL,.&tv);...;........if.(n.<.0 |
| 12420 | 29 20 7b 20 69 66 20 28 65 72 72 6e 6f 20 3d 3d 20 45 49 4e 54 52 29 20 63 6f 6e 74 69 6e 75 65 | ).{.if.(errno.==.EINTR).continue |
| 12440 | 3b 20 62 72 65 61 6b 3b 20 7d 00 00 00 00 00 00 00 34 20 20 20 20 20 20 20 20 69 66 20 28 46 44 | ;.break;.}.......4........if.(FD |
| 12460 | 5f 49 53 53 45 54 28 70 74 79 2e 6d 66 64 2c 20 26 72 66 64 73 29 29 20 70 72 6f 63 65 73 73 5f | _ISSET(pty.mfd,.&rfds)).process_ |
| 12480 | 70 74 79 28 29 3b 00 00 00 16 20 20 20 20 20 20 20 20 78 65 76 65 6e 74 5f 6c 6f 6f 70 28 29 3b | pty();............xevent_loop(); |
| 124a0 | 00 00 00 00 00 00 00 0f 20 20 20 20 20 20 20 20 64 72 61 77 28 29 3b 00 00 00 19 20 20 20 20 20 | ................draw();......... |
| 124c0 | 20 20 20 78 63 62 5f 66 6c 75 73 68 28 77 2e 63 6f 6e 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 | ...xcb_flush(w.con);........}... |
| 124e0 | 00 00 00 00 15 20 20 20 20 74 65 72 6d 5f 66 72 65 65 28 26 74 65 72 6d 29 3b 00 00 00 32 20 20 | .........term_free(&term);...2.. |
| 12500 | 20 20 69 66 20 28 63 75 72 5f 74 65 72 6d 20 3d 3d 20 26 61 6c 74 74 65 72 6d 29 20 74 65 72 6d | ..if.(cur_term.==.&altterm).term |
| 12520 | 5f 66 72 65 65 28 26 61 6c 74 74 65 72 6d 29 3b 00 00 00 1b 20 20 20 20 58 66 74 44 72 61 77 44 | _free(&altterm);........XftDrawD |
| 12540 | 65 73 74 72 6f 79 28 77 2e 64 72 61 77 29 3b 00 00 00 22 20 20 20 20 78 63 62 5f 6b 65 79 5f 73 | estroy(w.draw);..."....xcb_key_s |
| 12560 | 79 6d 62 6f 6c 73 5f 66 72 65 65 28 77 2e 6b 73 79 6d 73 29 3b 00 00 00 1a 20 20 20 20 78 63 62 | ymbols_free(w.ksyms);........xcb |
| 12580 | 5f 64 69 73 63 6f 6e 6e 65 63 74 28 77 2e 63 6f 6e 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 | _disconnect(w.con);........retur |
| 125a0 | 6e 20 30 3b 35 81 f5 18 00 00 00 00 16 00 00 00 0a 00 00 00 ba 03 00 00 02 00 00 00 24 05 00 00 | n.0;5.......................$... |
| 125c0 | 00 00 00 00 c0 01 00 00 00 00 00 00 97 81 00 00 00 00 00 00 b5 7d 00 00 00 00 00 00 35 81 e7 aa | .....................}......5... |