summaryrefslogtreecommitdiff
path: root/config/nvim-1/undo/%home%coast%Projects%X%term%xterm.c
blob: ea2d63a1e06359cf2d1d4d116b7cd391026df025 (plain)
ofshex dumpascii
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...