From 9726db990301684b115192630d307d644738b80d Mon Sep 17 00:00:00 2001 From: Linux User Date: Tue, 16 Aug 2022 22:29:24 +0000 Subject: [PATCH] Added mouse scroll --- config.def.h | 14 +- config.h | 14 +- st | Bin 106768 -> 111032 bytes st.c | 389 ++++++++++++++++++++++++++++++++++----------------- st.h | 1 + st.o | Bin 76856 -> 81056 bytes x.c | 2 + x.o | Bin 78456 -> 78744 bytes 8 files changed, 282 insertions(+), 138 deletions(-) diff --git a/config.def.h b/config.def.h index 5995351..d1ec4e1 100644 --- a/config.def.h +++ b/config.def.h @@ -6,12 +6,14 @@ * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html */ -static char *font = "Ubuntu Mono:pixelsize=12:antialias=true:autohint=true"; +#define FONTSIZE "14" + +static char *font = "Ubuntu Mono:pixelsize="FONTSIZE":antialias=true:autohint=true"; static char *font2[] = { - "Ubuntu Mono:pixelsize=12:antialias=true:autohint=true", - "Font Awesome 6 Free Solid:pixelsize=12:antialias=true:autohint=true" + "Ubuntu Mono:pixelsize="FONTSIZE":antialias=true:autohint=true", + "Font Awesome 6 Free Solid:pixelsize="FONTSIZE":antialias=true:autohint=true" }; -static int borderpx = 2; +static int borderpx = 10; /* * What program is execed by st depends of these precedence rules: @@ -181,6 +183,8 @@ static uint forcemousemod = ShiftMask; */ static MouseShortcut mshortcuts[] = { /* mask button function argument release */ + { XK_ANY_MOD, Button4, kscrollup, {.i = 1} }, + { XK_ANY_MOD, Button5, kscrolldown, {.i = 1} }, { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, { ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} }, { XK_ANY_MOD, Button4, ttysend, {.s = "\031"} }, @@ -206,6 +210,8 @@ static Shortcut shortcuts[] = { { TERMMOD, XK_Y, selpaste, {.i = 0} }, { ShiftMask, XK_Insert, selpaste, {.i = 0} }, { TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, + { ShiftMask, XK_Page_Up, kscrollup, {.i = -1} }, + { ShiftMask, XK_Page_Down, kscrolldown, {.i = -1} }, }; /* diff --git a/config.h b/config.h index 5995351..d1ec4e1 100644 --- a/config.h +++ b/config.h @@ -6,12 +6,14 @@ * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html */ -static char *font = "Ubuntu Mono:pixelsize=12:antialias=true:autohint=true"; +#define FONTSIZE "14" + +static char *font = "Ubuntu Mono:pixelsize="FONTSIZE":antialias=true:autohint=true"; static char *font2[] = { - "Ubuntu Mono:pixelsize=12:antialias=true:autohint=true", - "Font Awesome 6 Free Solid:pixelsize=12:antialias=true:autohint=true" + "Ubuntu Mono:pixelsize="FONTSIZE":antialias=true:autohint=true", + "Font Awesome 6 Free Solid:pixelsize="FONTSIZE":antialias=true:autohint=true" }; -static int borderpx = 2; +static int borderpx = 10; /* * What program is execed by st depends of these precedence rules: @@ -181,6 +183,8 @@ static uint forcemousemod = ShiftMask; */ static MouseShortcut mshortcuts[] = { /* mask button function argument release */ + { XK_ANY_MOD, Button4, kscrollup, {.i = 1} }, + { XK_ANY_MOD, Button5, kscrolldown, {.i = 1} }, { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, { ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} }, { XK_ANY_MOD, Button4, ttysend, {.s = "\031"} }, @@ -206,6 +210,8 @@ static Shortcut shortcuts[] = { { TERMMOD, XK_Y, selpaste, {.i = 0} }, { ShiftMask, XK_Insert, selpaste, {.i = 0} }, { TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, + { ShiftMask, XK_Page_Up, kscrollup, {.i = -1} }, + { ShiftMask, XK_Page_Down, kscrolldown, {.i = -1} }, }; /* diff --git a/st b/st index 395c87673c6568d86673885a29efe03c0f5b0dbf..53e4867edadb6301a609fcef69efdd384984a9ff 100755 GIT binary patch literal 111032 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 F{{nnAw|@Wt literal 106768 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 KVVefM{Qm*&$&a7_ diff --git a/st.c b/st.c index 6ba467d..16a7df6 100644 --- a/st.c +++ b/st.c @@ -42,6 +42,12 @@ #define ISCONTROLC1(c) (BETWEEN(c, 0x80, 0x9f)) #define ISCONTROL(c) (ISCONTROLC0(c) || ISCONTROLC1(c)) #define ISDELIM(u) (u && wcschr(worddelimiters, u)) +#define STRESCARGREST(n) ((n) == 0 ? strescseq.buf : strescseq.argp[(n)-1] + 1) +#define STRESCARGJUST(n) (*(strescseq.argp[n]) = '\0', STRESCARGREST(n)) + +#define TSCREEN term.screen[IS_SET(MODE_ALTSCREEN)] +#define TLINEOFFSET(y) (((y) + TSCREEN.cur - TSCREEN.off + TSCREEN.size) % TSCREEN.size) +#define TLINE(y) (TSCREEN.buffer[TLINEOFFSET(y)]) enum term_mode { MODE_WRAP = 1 << 0, @@ -109,12 +115,20 @@ typedef struct { int alt; } Selection; +typedef struct { + Line* buffer; /* ring buffer */ + int size; /* size of buffer */ + int cur; /* start of active screen */ + int off; /* scrollback line offset */ + TCursor sc; /* saved cursor */ +} LineBuffer; + /* Internal representation of the screen */ typedef struct { int row; /* nb row */ int col; /* nb col */ - Line *line; /* screen */ - Line *alt; /* alternate screen */ + LineBuffer screen[2]; /* screen and alternate screen */ + int linelen; /* allocated line length */ int *dirty; /* dirtyness of lines */ TCursor c; /* cursor */ int ocx; /* old cursor col */ @@ -148,7 +162,7 @@ typedef struct { char *buf; /* allocated raw string */ size_t siz; /* allocation size */ size_t len; /* raw string length */ - char *args[STR_ARG_SIZ]; + char *argp[STR_ARG_SIZ]; int narg; /* nb of args */ } STREscape; @@ -203,6 +217,8 @@ static void tdeftran(char); static void tstrsequence(uchar); static void drawregion(int, int, int, int); +static void clearline(Line, Glyph, int, int); +static Line ensureline(Line); static void selnormalize(void); static void selscroll(int, int); @@ -408,11 +424,12 @@ int tlinelen(int y) { int i = term.col; + Line line = TLINE(y); - if (term.line[y][i - 1].mode & ATTR_WRAP) + if (line[i - 1].mode & ATTR_WRAP) return i; - while (i > 0 && term.line[y][i - 1].u == ' ') + while (i > 0 && line[i - 1].u == ' ') --i; return i; @@ -521,7 +538,7 @@ selsnap(int *x, int *y, int direction) * Snap around if the word wraps around at the end or * beginning of a line. */ - prevgp = &term.line[*y][*x]; + prevgp = &TLINE(*y)[*x]; prevdelim = ISDELIM(prevgp->u); for (;;) { newx = *x + direction; @@ -536,14 +553,14 @@ selsnap(int *x, int *y, int direction) yt = *y, xt = *x; else yt = newy, xt = newx; - if (!(term.line[yt][xt].mode & ATTR_WRAP)) + if (!(TLINE(yt)[xt].mode & ATTR_WRAP)) break; } if (newx >= tlinelen(newy)) break; - gp = &term.line[newy][newx]; + gp = &TLINE(newy)[newx]; delim = ISDELIM(gp->u); if (!(gp->mode & ATTR_WDUMMY) && (delim != prevdelim || (delim && gp->u != prevgp->u))) @@ -564,14 +581,14 @@ selsnap(int *x, int *y, int direction) *x = (direction < 0) ? 0 : term.col - 1; if (direction < 0) { for (; *y > 0; *y += direction) { - if (!(term.line[*y-1][term.col-1].mode + if (!(TLINE(*y-1)[term.col-1].mode & ATTR_WRAP)) { break; } } } else if (direction > 0) { for (; *y < term.row-1; *y += direction) { - if (!(term.line[*y][term.col-1].mode + if (!(TLINE(*y)[term.col-1].mode & ATTR_WRAP)) { break; } @@ -602,13 +619,13 @@ getsel(void) } if (sel.type == SEL_RECTANGULAR) { - gp = &term.line[y][sel.nb.x]; + gp = &TLINE(y)[sel.nb.x]; lastx = sel.ne.x; } else { - gp = &term.line[y][sel.nb.y == y ? sel.nb.x : 0]; + gp = &TLINE(y)[sel.nb.y == y ? sel.nb.x : 0]; lastx = (sel.ne.y == y) ? sel.ne.x : term.col-1; } - last = &term.line[y][MIN(lastx, linelen-1)]; + last = &TLINE(y)[MIN(lastx, linelen-1)]; while (last >= gp && last->u == ' ') --last; @@ -949,12 +966,15 @@ int tattrset(int attr) { int i, j; + int y = TLINEOFFSET(0); for (i = 0; i < term.row-1; i++) { + Line line = TSCREEN.buffer[y]; for (j = 0; j < term.col-1; j++) { - if (term.line[i][j].mode & attr) + if (line[j].mode & attr) return 1; } + y = (y+1) % TSCREEN.size; } return 0; @@ -976,14 +996,17 @@ void tsetdirtattr(int attr) { int i, j; + int y = TLINEOFFSET(0); for (i = 0; i < term.row-1; i++) { + Line line = TSCREEN.buffer[y]; for (j = 0; j < term.col-1; j++) { - if (term.line[i][j].mode & attr) { + if (line[j].mode & attr) { tsetdirt(i, i); break; } } + y = (y+1) % TSCREEN.size; } } @@ -1000,23 +1023,18 @@ tcursor(int mode) int alt = IS_SET(MODE_ALTSCREEN); if (mode == CURSOR_SAVE) { - c[alt] = term.c; + TSCREEN.sc = term.c; } else if (mode == CURSOR_LOAD) { - term.c = c[alt]; - tmoveto(c[alt].x, c[alt].y); + term.c = TSCREEN.sc; + tmoveto(term.c.x, term.c.y); } } void treset(void) { - uint i; - - term.c = (TCursor){{ - .mode = ATTR_NULL, - .fg = defaultfg, - .bg = defaultbg - }, .x = 0, .y = 0, .state = CURSOR_DEFAULT}; + int i, j; + Glyph g = (Glyph){ .fg = defaultfg, .bg = defaultbg}; memset(term.tabs, 0, term.col * sizeof(*term.tabs)); for (i = tabspaces; i < term.col; i += tabspaces) @@ -1028,17 +1046,37 @@ treset(void) term.charset = 0; for (i = 0; i < 2; i++) { - tmoveto(0, 0); - tcursor(CURSOR_SAVE); - tclearregion(0, 0, term.col-1, term.row-1); - tswapscreen(); + term.screen[i].sc = (TCursor){{ + .fg = defaultfg, + .bg = defaultbg + }}; + term.screen[i].cur = 0; + term.screen[i].off = 0; + for (j = 0; j < term.row; ++j) { + if (term.col != term.linelen) + term.screen[i].buffer[j] = xrealloc(term.screen[i].buffer[j], term.col * sizeof(Glyph)); + clearline(term.screen[i].buffer[j], g, 0, term.col); + } + for (j = term.row; j < term.screen[i].size; ++j) { + free(term.screen[i].buffer[j]); + term.screen[i].buffer[j] = NULL; + } } + tcursor(CURSOR_LOAD); + term.linelen = term.col; + tfulldirt(); } void tnew(int col, int row) { - term = (Term){ .c = { .attr = { .fg = defaultfg, .bg = defaultbg } } }; + int i; + term = (Term){}; + term.screen[0].buffer = xmalloc(HISTSIZE * sizeof(Line)); + term.screen[0].size = HISTSIZE; + term.screen[1].buffer = NULL; + for (i = 0; i < HISTSIZE; ++i) term.screen[0].buffer[i] = NULL; + tresize(col, row); treset(); } @@ -1046,14 +1084,42 @@ tnew(int col, int row) void tswapscreen(void) { - Line *tmp = term.line; - - term.line = term.alt; - term.alt = tmp; term.mode ^= MODE_ALTSCREEN; tfulldirt(); } +void +kscrollup(const Arg *a) +{ + int n = a->i; + + if (IS_SET(MODE_ALTSCREEN)) + return; + + if (n < 0) n = (-n) * term.row; + if (n > TSCREEN.size - term.row - TSCREEN.off) n = TSCREEN.size - term.row - TSCREEN.off; + while (!TLINE(-n)) --n; + TSCREEN.off += n; + selscroll(0, n); + tfulldirt(); +} + +void +kscrolldown(const Arg *a) +{ + + int n = a->i; + + if (IS_SET(MODE_ALTSCREEN)) + return; + + if (n < 0) n = (-n) * term.row; + if (n > TSCREEN.off) n = TSCREEN.off; + TSCREEN.off -= n; + selscroll(0, -n); + tfulldirt(); +} + void tscrolldown(int orig, int n) { @@ -1062,15 +1128,28 @@ tscrolldown(int orig, int n) LIMIT(n, 0, term.bot-orig+1); - tsetdirt(orig, term.bot-n); - tclearregion(0, term.bot-n+1, term.col-1, term.bot); - - for (i = term.bot; i >= orig+n; i--) { - temp = term.line[i]; - term.line[i] = term.line[i-n]; - term.line[i-n] = temp; + for (i = -n; i < 0; i++) { + TLINE(i) = ensureline(TLINE(i)); } + for (i = term.bot+1; i < term.row; i++) { + temp = TLINE(i); + TLINE(i) = TLINE(i-n); + TLINE(i-n) = temp; + } + for (i = 0; i < orig; i++) { + temp = TLINE(i); + TLINE(i) = TLINE(i-n); + TLINE(i-n) = temp; + } + + /* Scroll buffer */ + TSCREEN.cur = (TSCREEN.cur + TSCREEN.size - n) % TSCREEN.size; + /* Clear lines that have entered the view */ + tclearregion(0, orig, term.linelen-1, orig+n-1); + /* Redraw portion of the screen that has scrolled */ + tsetdirt(orig+n-1, term.bot); + selscroll(orig, n); } @@ -1082,15 +1161,30 @@ tscrollup(int orig, int n) LIMIT(n, 0, term.bot-orig+1); - tclearregion(0, orig, term.col-1, orig+n-1); - tsetdirt(orig+n, term.bot); - - for (i = orig; i <= term.bot-n; i++) { - temp = term.line[i]; - term.line[i] = term.line[i+n]; - term.line[i+n] = temp; + /* Ensure that lines are allocated */ + for (i = term.row; i < term.row + n; i++) { + TLINE(i) = ensureline(TLINE(i)); } + /* Shift non-scrolling areas in ring buffer */ + for (i = orig-1; i >= 0; i--) { + temp = TLINE(i); + TLINE(i) = TLINE(i+n); + TLINE(i+n) = temp; + } + for (i = term.row-1; i >term.bot; i--) { + temp = TLINE(i); + TLINE(i) = TLINE(i+n); + TLINE(i+n) = temp; + } + + /* Scroll buffer */ + TSCREEN.cur = (TSCREEN.cur + n) % TSCREEN.size; + /* Clear lines that have entered the view */ + tclearregion(0, term.bot-n+1, term.linelen-1, term.bot); + /* Redraw portion of the screen that has scrolled */ + tsetdirt(orig, term.bot-n+1); + selscroll(orig, -n); } @@ -1194,6 +1288,7 @@ tsetchar(Rune u, const Glyph *attr, int x, int y) "⎻", "─", "⎼", "⎽", "├", "┤", "┴", "┬", /* p - w */ "│", "≤", "≥", "π", "≠", "£", "·", /* x - ~ */ }; + Line line = TLINE(y); /* * The table is proudly stolen from rxvt. @@ -1202,25 +1297,25 @@ tsetchar(Rune u, const Glyph *attr, int x, int y) BETWEEN(u, 0x41, 0x7e) && vt100_0[u - 0x41]) utf8decode(vt100_0[u - 0x41], &u, UTF_SIZ); - if (term.line[y][x].mode & ATTR_WIDE) { + if (line[x].mode & ATTR_WIDE) { if (x+1 < term.col) { - term.line[y][x+1].u = ' '; - term.line[y][x+1].mode &= ~ATTR_WDUMMY; + line[x+1].u = ' '; + line[x+1].mode &= ~ATTR_WDUMMY; } - } else if (term.line[y][x].mode & ATTR_WDUMMY) { - term.line[y][x-1].u = ' '; - term.line[y][x-1].mode &= ~ATTR_WIDE; - } + } else if (line[x].mode & ATTR_WDUMMY) { + line[x-1].u = ' '; + line[x-1].mode &= ~ATTR_WIDE; + } term.dirty[y] = 1; - term.line[y][x] = *attr; - term.line[y][x].u = u; + line[x] = *attr; + line[x].u = u; } void tclearregion(int x1, int y1, int x2, int y2) { - int x, y, temp; + int x, y, L, S, temp; Glyph *gp; if (x1 > x2) @@ -1228,15 +1323,16 @@ tclearregion(int x1, int y1, int x2, int y2) if (y1 > y2) temp = y1, y1 = y2, y2 = temp; - LIMIT(x1, 0, term.col-1); - LIMIT(x2, 0, term.col-1); + LIMIT(x1, 0, term.linelen-1); + LIMIT(x2, 0, term.linelen-1); LIMIT(y1, 0, term.row-1); LIMIT(y2, 0, term.row-1); + L = TLINEOFFSET(y1); for (y = y1; y <= y2; y++) { term.dirty[y] = 1; for (x = x1; x <= x2; x++) { - gp = &term.line[y][x]; + gp = &TSCREEN.buffer[L][x]; if (selected(x, y)) selclear(); gp->fg = term.c.attr.fg; @@ -1244,6 +1340,7 @@ tclearregion(int x1, int y1, int x2, int y2) gp->mode = 0; gp->u = ' '; } + L = (L + 1) % TSCREEN.size; } } @@ -1258,7 +1355,7 @@ tdeletechar(int n) dst = term.c.x; src = term.c.x + n; size = term.col - src; - line = term.line[term.c.y]; + line = TLINE(term.c.y); memmove(&line[dst], &line[src], size * sizeof(Glyph)); tclearregion(term.col-n, term.c.y, term.col-1, term.c.y); @@ -1275,7 +1372,7 @@ tinsertblank(int n) dst = term.c.x + n; src = term.c.x; size = term.col - dst; - line = term.line[term.c.y]; + line = TLINE(term.c.y); memmove(&line[dst], &line[src], size * sizeof(Glyph)); tclearregion(src, term.c.y, dst - 1, term.c.y); @@ -1872,29 +1969,30 @@ strhandle(void) }; term.esc &= ~(ESC_STR_END|ESC_STR); - strparse(); - par = (narg = strescseq.narg) ? atoi(strescseq.args[0]) : 0; + strescseq.buf[strescseq.len] = '\0'; switch (strescseq.type) { case ']': /* OSC -- Operating System Command */ + strparse(); + par = (narg = strescseq.narg) ? atoi(STRESCARGJUST(0)) : 0; switch (par) { case 0: if (narg > 1) { - xsettitle(strescseq.args[1]); - xseticontitle(strescseq.args[1]); + xsettitle(STRESCARGREST(1)); + xseticontitle(STRESCARGREST(1)); } return; case 1: if (narg > 1) - xseticontitle(strescseq.args[1]); + xseticontitle(STRESCARGREST(1)); return; case 2: if (narg > 1) - xsettitle(strescseq.args[1]); + xsettitle(STRESCARGREST(1)); return; case 52: if (narg > 2 && allowwindowops) { - dec = base64dec(strescseq.args[2]); + dec = base64dec(STRESCARGREST(2)); if (dec) { xsetsel(dec); xclipcopy(); @@ -1908,7 +2006,7 @@ strhandle(void) case 12: if (narg < 2) break; - p = strescseq.args[1]; + p = STRESCARGREST(1); if ((j = par - 10) < 0 || j >= LEN(osc_table)) break; /* shouldn't be possible */ @@ -1924,10 +2022,10 @@ strhandle(void) case 4: /* color set */ if (narg < 3) break; - p = strescseq.args[2]; + p = STRESCARGJUST(2); /* FALLTHROUGH */ case 104: /* color reset */ - j = (narg > 1) ? atoi(strescseq.args[1]) : -1; + j = (narg > 1) ? atoi(STRESCARGJUST(1)) : -1; if (p && !strcmp(p, "?")) { osc_color_response(j, 0, 1); @@ -1947,7 +2045,7 @@ strhandle(void) } break; case 'k': /* old title set compatibility */ - xsettitle(strescseq.args[0]); + xsettitle(strescseq.buf); return; case 'P': /* DCS -- Device Control String */ case '_': /* APC -- Application Program Command */ @@ -1966,18 +2064,17 @@ strparse(void) char *p = strescseq.buf; strescseq.narg = 0; - strescseq.buf[strescseq.len] = '\0'; if (*p == '\0') return; while (strescseq.narg < STR_ARG_SIZ) { - strescseq.args[strescseq.narg++] = p; while ((c = *p) != ';' && c != '\0') - ++p; + p++; + strescseq.argp[strescseq.narg++] = p; if (c == '\0') return; - *p++ = '\0'; + p++; } } @@ -2069,7 +2166,7 @@ tdumpline(int n) char buf[UTF_SIZ]; const Glyph *bp, *end; - bp = &term.line[n][0]; + bp = &TLINE(n)[0]; end = &bp[MIN(tlinelen(n), term.col) - 1]; if (bp != end || bp->u != ' ') { for ( ; bp <= end; ++bp) @@ -2452,11 +2549,11 @@ check_control_code: if (selected(term.c.x, term.c.y)) selclear(); - gp = &term.line[term.c.y][term.c.x]; + gp = &TLINE(term.c.y)[term.c.x]; if (IS_SET(MODE_WRAP) && (term.c.state & CURSOR_WRAPNEXT)) { gp->mode |= ATTR_WRAP; tnewline(1); - gp = &term.line[term.c.y][term.c.x]; + gp = &TLINE(term.c.y)[term.c.x]; } if (IS_SET(MODE_INSERT) && term.c.x+width < term.col) @@ -2464,7 +2561,7 @@ check_control_code: if (term.c.x+width > term.col) { tnewline(1); - gp = &term.line[term.c.y][term.c.x]; + gp = &TLINE(term.c.y)[term.c.x]; } tsetchar(u, &term.c.attr, term.c.x, term.c.y); @@ -2495,6 +2592,11 @@ twrite(const char *buf, int buflen, int show_ctrl) Rune u; int n; + if (TSCREEN.off) { + TSCREEN.off = 0; + tfulldirt(); + } + for (n = 0; n < buflen; n += charsize) { if (IS_SET(MODE_UTF8)) { /* process a complete utf8 char */ @@ -2521,15 +2623,35 @@ twrite(const char *buf, int buflen, int show_ctrl) } void -tresize(int col, int row) +clearline(Line line, Glyph g, int x, int xend) { int i; + g.mode = 0; + g.u = ' '; + for (i = x; i < xend; ++i) { + line[i] = g; + } +} + +Line +ensureline(Line line) +{ + if (!line) { + line = xmalloc(term.linelen * sizeof(Glyph)); + } + return line; +} + +void +tresize(int col, int row) +{ + int i, j; int minrow = MIN(row, term.row); int mincol = MIN(col, term.col); + int linelen = MAX(col, term.linelen); int *bp; - TCursor c; - if (col < 1 || row < 1) { + if (col < 1 || row < 1 || row > HISTSIZE) { fprintf(stderr, "tresize: error resizing to %dx%d\n", col, row); return; @@ -2540,37 +2662,52 @@ tresize(int col, int row) * tscrollup would work here, but we can optimize to * memmove because we're freeing the earlier lines */ - for (i = 0; i <= term.c.y - row; i++) { - free(term.line[i]); - free(term.alt[i]); + /* Shift buffer to keep the cursor where we expect it */ + if (row <= term.c.y) { + term.screen[0].cur = (term.screen[0].cur - row + term.c.y + 1) % term.screen[0].size; + } + + /* Resize and clear line buffers as needed */ + if (linelen > term.linelen) { + for (i = 0; i < term.screen[0].size; ++i) { + if (term.screen[0].buffer[i]) { + term.screen[0].buffer[i] = xrealloc(term.screen[0].buffer[i], linelen * sizeof(Glyph)); + clearline(term.screen[0].buffer[i], term.c.attr, term.linelen, linelen); + } + } + for (i = 0; i < minrow; ++i) { + term.screen[1].buffer[i] = xrealloc(term.screen[1].buffer[i], linelen * sizeof(Glyph)); + clearline(term.screen[1].buffer[i], term.c.attr, term.linelen, linelen); + } } /* ensure that both src and dst are not NULL */ - if (i > 0) { - memmove(term.line, term.line + i, row * sizeof(Line)); - memmove(term.alt, term.alt + i, row * sizeof(Line)); + /* Allocate all visible lines for regular line buffer */ + for (j = term.screen[0].cur, i = 0; i < row; ++i, j = (j + 1) % term.screen[0].size) + { + if (!term.screen[0].buffer[j]) { + term.screen[0].buffer[j] = xmalloc(linelen * sizeof(Glyph)); + } + if (i >= term.row) { + clearline(term.screen[0].buffer[j], term.c.attr, 0, linelen); + } } - for (i += row; i < term.row; i++) { - free(term.line[i]); - free(term.alt[i]); + /* Resize alt screen */ + term.screen[1].cur = 0; + term.screen[1].size = row; + for (i = row; i < term.row; ++i) { + free(term.screen[1].buffer[i]); + } + term.screen[1].buffer = xrealloc(term.screen[1].buffer, row * sizeof(Line)); + for (i = term.row; i < row; ++i) { + term.screen[1].buffer[i] = xmalloc(linelen * sizeof(Glyph)); + clearline(term.screen[1].buffer[i], term.c.attr, 0, linelen); } /* resize to new height */ - term.line = xrealloc(term.line, row * sizeof(Line)); - term.alt = xrealloc(term.alt, row * sizeof(Line)); term.dirty = xrealloc(term.dirty, row * sizeof(*term.dirty)); term.tabs = xrealloc(term.tabs, col * sizeof(*term.tabs)); - /* resize each row to new width, zero-pad if needed */ - for (i = 0; i < minrow; i++) { - term.line[i] = xrealloc(term.line[i], col * sizeof(Glyph)); - term.alt[i] = xrealloc(term.alt[i], col * sizeof(Glyph)); - } - - /* allocate any new rows */ - for (/* i = minrow */; i < row; i++) { - term.line[i] = xmalloc(col * sizeof(Glyph)); - term.alt[i] = xmalloc(col * sizeof(Glyph)); - } + /* fix tabstops */ if (col > term.col) { bp = term.tabs + term.col; @@ -2580,26 +2717,16 @@ tresize(int col, int row) for (bp += tabspaces; bp < term.tabs + col; bp += tabspaces) *bp = 1; } + /* update terminal size */ term.col = col; term.row = row; + term.linelen = linelen; /* reset scrolling region */ tsetscroll(0, row-1); /* make use of the LIMIT in tmoveto */ tmoveto(term.c.x, term.c.y); - /* Clearing both screens (it makes dirty all lines) */ - c = term.c; - for (i = 0; i < 2; i++) { - if (mincol < col && 0 < minrow) { - tclearregion(mincol, 0, col - 1, minrow - 1); - } - if (0 < col && minrow < row) { - tclearregion(0, minrow, col - 1, row - 1); - } - tswapscreen(); - tcursor(CURSOR_LOAD); - } - term.c = c; + tfulldirt(); } void @@ -2611,14 +2738,15 @@ resettitle(void) void drawregion(int x1, int y1, int x2, int y2) { - int y; + int y, L; + L = TLINEOFFSET(y1); for (y = y1; y < y2; y++) { - if (!term.dirty[y]) - continue; - - term.dirty[y] = 0; - xdrawline(term.line[y], x1, y, x2); + if (term.dirty[y]) { + term.dirty[y] = 0; + xdrawline(TSCREEN.buffer[L], x1, y, x2); + } + L = (L + 1) % TSCREEN.size; } } @@ -2633,14 +2761,15 @@ draw(void) /* adjust cursor position */ LIMIT(term.ocx, 0, term.col-1); LIMIT(term.ocy, 0, term.row-1); - if (term.line[term.ocy][term.ocx].mode & ATTR_WDUMMY) + if (TLINE(term.ocy)[term.ocx].mode & ATTR_WDUMMY) term.ocx--; - if (term.line[term.c.y][cx].mode & ATTR_WDUMMY) + if (TLINE(term.c.y)[cx].mode & ATTR_WDUMMY) cx--; drawregion(0, 0, term.col, term.row); - xdrawcursor(cx, term.c.y, term.line[term.c.y][cx], - term.ocx, term.ocy, term.line[term.ocy][term.ocx]); + if (TSCREEN.off == 0) + xdrawcursor(cx, term.c.y, TLINE(term.c.y)[cx], + term.ocx, term.ocy, TLINE(term.ocy)[term.ocx]); term.ocx = cx; term.ocy = term.c.y; xfinishdraw(); diff --git a/st.h b/st.h index fd3b0d8..ec35392 100644 --- a/st.h +++ b/st.h @@ -19,6 +19,7 @@ #define TRUECOLOR(r,g,b) (1 << 24 | (r) << 16 | (g) << 8 | (b)) #define IS_TRUECOL(x) (1 << 24 & (x)) +#define HISTSIZE 10000 enum glyph_attribute { ATTR_NULL = 0, diff --git a/st.o b/st.o index 2bd796b9e5d84f1d2fb17fbee59e840f6a400cd3..a36dc3b7b4994f8f4626997df2d3cdeeaaf9098a 100644 GIT binary patch literal 81056 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

^~lbt9k}0 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 gJ_?Vb%a zDA*Y~LY~T}f%K^!+Ugi*PMfXzM=JVPfEv&P21R`C%q`QdMrn7S>YP?dH&**wC5Kyv zx3u2mZ(Va;J*b-8ea+6)HQyw)e%If6ZFmd1*%e6sB<0;Jp{+_Dd( z=vE1NW{m^8um#a&(yZArKg#@m;xRACG<43A{M8-MN50Up`m$3n+q!+JwZq4=!@tFmp5?tF{p&)9@1FEUsJ>0`f>8ab!ET}Y^MV7yM{>f4?C}1^a*x05XiR*m z^Qmx?Q#oPX`->Gpp24uU+ko|C9lKU_WwB$N1b2BiIu|;rZgr1}jy;I6ci27IwxOs) zdtAZx)xk7(_{Y#UH-z4)n3H_QnjfG?zsFU!7dq8$y7NQFKjGJpE*^?NRrEG(U2~xS z4=L8F490)vjzyC`cv6=d>;vk$WLLM}5}or4RIM|y=pg=bpB znLA1@$%*8qxvP8Sgul}{3vbAQ!1$YLifU6qq;zMK@|=%nupiyf!7n=>jMJS1JFrK! z>!E$A@y9~Fyk$?v*DAFX0MpMM@+R67{yK{F9?F<*IzQZ1TdU&>Ps=@wIh}WE8iP4{ zr#{$MXK>A)gwRe`rpj#DRr+K?@G^Z;c`fs&8D~>Z;m4_`X8shsNNl)cu(%bZ308zdcXj9k!O>NAZm&j<01)Iy7gs?mbW?>H_gli)9x+9{w3R1Geu=*Qa56!VQ#0s|2itquiN%F7!Twkxca9Tay zO*er|ld9Y<{7Lvd=%$ndK6CkwGO||12r&yUE!(S_CpU*c}(~0qCLSFZKGd% zw9MnzJ}YaPS(ug_%+?qBGS~Y&1J{Q)@Zmb>P^=4Yj3$AlRbP4*qTgLL4R;l@x1@X* z-=p*FD*G`0LM;`9r}FP$wz_wy1}pRM)M>ilsV*FuIz4lf=gBpm zT@<|v`T+5BN#SQRQt?69ia(gSX~yG9MBSL0K3})5Ahjsljo)n@$!DqbDq?I{h0^+@Tl0Y zYM*D$K~vtJ8HE#j;2}E6Dj(D!54w|B6{HItM$g zen0e5lR?6YSNU`&{b3+UimcXp!+n!@Cpmv(U+B|rO!R^PJh^8>8{*6SVd^E+g2C-! zKw|rz{_qdbeMBA50bi*d`!65J+aWi!Tc97JXokO`*-K8_=uX1g1Y-%w{>)!ye4G>M z-8!c_7YuyP_ZBKrIrW53hen0%i(Lu_P#R{0>58hFD{y3LwW??tN3qTN*>lrZ{z%#t zzDQ0QbzZ>naDzbg(T>m+q)G!VY3~EvzscAJmiD)m{}OWo?`1>pGaRGtJUm{u%BgNS zAkr4@roGR$!`IW3M^4y%7Cd)A7br;wQpOjV?@oK?*Du3gfn$=OHCA<64bCKmk83k^ zs~WrzjIG+Itn&DE4gD&58yKYSCL?N9!%mIUso;V5N36y%+d5+znD&_ckTX?58iFSL zLB?014KD46G_XyZ97(<+^WCX~asq1yMBMAqNg3~EXKcw{Q>Xm!>*weS$}e=CTiVr` z+7aE(vcp|$oroRoeVV$DMw4%*nvlQBtFh}jEs-iu10eCca40N$f-SPMr z`m*GZ^0X_q15SrJpbt;PKE!>jw^^Qr8?#^}aCHT6ZP#mXPHRQk)$MAU99mhXb>ZKY zO@iwib28$0WmB8Tb^+OjD^D_^!Z;ag38JeluZeyJU8}L{*PtR+rw}w7jp%(qbm#L_ z*5HBZkZ5#Y!;MitF6i+icf(_Ia@nQWjAlY}S9Zh9Ugv=FvZ+mVECn6$aTMfsV}&SpD*4%FA_fN8A* zCL#V$9WBS>e^DpO=tOG#5q)BRJfg3l5KD^P2Tg%K_iJn-HjEBWDY2VRZZ(JGd-m6O zGE`)HPE%jh;-9o{2UK^>Ub9n==9vQ<`WpR!S$ZLLgkik3`sPs^-D=n>QR(aDbC*OL zJ6`%S7>dz-27ST@e$;!3ur&(53896xnJdP1@p>Be{1@!~ZgFSBjXk<+54b7rDqD3| ztvz$^Hqe7(SeXmNZf$t`L{B|(T?pC){xO2HX!)ZHGnO2A2*dMSX{xmP{ zrP|@0HjJ-R+YaZgx1oaZ!^>XXcG+-CZGo+4t!gr=d#W!S*4AxgqlN8{ zPT~sHsD?JWs03&~8!p4RG zfd{x*aI>=E8%3c8z!PwT^nVvry04K{QU7GHEPQlw0QMFHOW^MlD@K4$kAIsTQFmu` z6EI^Lx&d!s+o6I0p8J2cpSS6?1XXXS+H;hDbt~wmJ_0CzYQ;#cJpS~Xcf(%%@izzK z*B}3HpGdPUbyVcm5QTeKB$}{yaT3HZW?hbDVeK(^l$+LXxp>_3Te$VSQ z&}LnC0_>PP;H1i@+}cn%*XkbFNmB3*Le|>G+dr1G@xYGd(@s}=+0GPWc0?FCAF5 zD|j~!D?kRJrK+{@9be|QlFWgTX)fP}eik%ZU%&_i54a4Bbi5EQhe`<5YC}?d)k#@9 z37{5Gt&^y#DeGWYYug)#DZKW~b(ljl*0sx&UGewTSHoZ$yy?V2v+VF@!yoEZC%ohg zUItxB9a~<$J%&G13Lx=99fjE9+VH$pxdnDsFzLyLv4Q`>e(2LVsjlW_ls0;G4TwJVoHI;(wf3TmUO5z34P-Qg+F4k*+RLu+sZ z(CMZ=;3RP@-IE-y-b>+NSCUU9s-A7t%R2Hxd0)eh(Bb;v5NJn=pqrDdje&^NHi9Mp zf^N*)r*Zamwqx#-3_1D6)HGiwpEv4YLkCM;qnzDfjD8Se(^OG4oKtyPoibE)(UKb- zjKww-T#tgG`UKDXv2dVt+u`*aAun{)&}!Dg{nk_Y2aqCXvasU0z@eUaDhqL^x?@@s zAtO$k@an5+7+>9gwZdkY7HTL(k}LI|bg>3aniwUl+|^h@`Vb7&8P&eBc&d26s6`5wiThenBXs+jSa@_&JVlOc+a1fkdGtB`OtN23B9(}Z86YPX_}!{ex_)`J2f`p4SsTb zoj`-Ic!x6|`7uLyW8|0Zhh5We_Un!rzroEqF)%W;Cdn7M_k_LXJGhN*XzPPlpwrLI zu7=*G&uzPY^t_&0b)@V97@&Y|$ELCa*)UQuFmp@UXUcv(Y+I{mlEBF4(YG*F8n&Bp z{#_$#!~0>#|E#aEE?eR}?aS9f1-kD(FZ57iZ@KSW2yEfVIx_`>z!Uv%kZ zZtx7+0O65LhZ{YEHo~E|s@^m29;glQE_2=(_|~&f)Q}2|FyFvkzUtm}I&`&)0elRj zUoap>?#PJxGwY^p#=)E~J@dPQMpvBP^7qIIe4D*y7Yv^0E@X9Yuh6HD;abqguXsPS z13O@3WC!{P>R;2Yl~U9^g+Zz(@S0{W7#R2-#&(`lXH|{Chcy+(R5g`a=!U?HbkDrM zVjCCUoel4Ra{>pl*L;_#ypt1#+LayNo|D)C6=hfVPJ_8RNI`pUYqh z5oo|vGS^QZ5?%|gabq7p(tbTE^o4)$Wqg|L+JGr$hj-*8s{SSSOtQoMp!?GtW&Q7I zH~V28&fI;V&`;yuN{v5~2k*MS)4i@kUqRcXMvTb|UvFpNdHqy0Mn^X(2?{kT@*3ujEQ1@f-wel`-}YxTRfPqq>ToDJ_reBthEClH9o%6vjEG4;xO0f zi_#XMURLlYoj;hM6tZEor5((3vf&vlvni5HV?f_>-=O_w)6Lzka09ofJQR=@Ocw3aGIcrd|VLvw_8+ z9Qg*`;Zzd{PbWJ2T7|h!UB>8!AB>jA=(b~H)TH^b!$+I+MtgRt3DsXXsb{EuM)2xL z{|epIgbrUg`3gOkO%Hcv1v{z!8WmA^y*?SgOn--tPM>rtNqVZ@0>kGFPfJ#F;(Y3_ zJ_panA7kLEs=UnYsoW1op`+({W`Ce|T2At;tgx(8ZO^k`cplgQ%nt11Vcl@l)JFW12c?0Fy@8B!5Cav_Wa!+xml zNN7{4E`y%4VPEdP?Hng!ZE26du-CrDHreabWY2XLM`tt&#n{kZMgQeUT| z-v#v`)>smea%yR!_iuv}SYdU`qXQ`);d2O;&(`cu41Mp4ZvGzVe4x5$Q-iIdEzg3- z;BwU%#P6k-(Qo_#L{t>p;m;ZZIaK#aXcLXG#a2U3R)E*7jKkVR@m{(Q!Btw7>DxDe zM05|>;-Fa%IL39)!17d$1+|T1b+KV^NOd19kHZ~Idqx+;)L6x@CMa> z@i;~NF*R%ve~cTcNFSJGpyHWIVov+hLh-E7(d#EA+t-}{rJh+k;H6fhC5?MDI#HqA zdPDGX(y+mQnhSz?6HGw$guVu=;0ZbVZ3rXWX4v8P;)1XuhWc+=6-4jnmR zZ`_Cywx{pL>ObbdO+HfM3jYgtpp^|*{xKQ$Dl&VO^$nd!4PI|Y3UGdeofyIqa!9K* z-G-q-NX}Y`(-hPkS9(~lPENBk-!FSam1F!FnB(AC?$R$G?8v=fhIS=4x}SPNCscH1 zyXL?*RPm^{_pP4U??Xa3L72n??gvy%g1Y!Wbur-c&0F9td^GwDzGHa6r+gm&25JFS zL}YBBJLCFKAQa1?dYmk&TMT$Xtb82(GfEBuNgX9EJhOcbmr1jt;jcmXB0R4z-UxT( z*lBPa?EvHXu~w+217`2**irBpJ^Q(+$B06ijVaP$!zP zK?`<6!S7o)W-E9(Ovv_BZ3bs?y=!jJKK3uTh6S`spkktnV~-iy8uQ%Pa;^Cok_@7d z_SHuq^r`k6`_{Ouq#mw}9>8m|@ETQIRrMfoLU+ibUty%AH6#i%8a$N`fFWuq8G8pX z7I7K9SX|i_j@5IK`D_q92V2>1l0dx*S8WEC=8qImez;d?s@uCz3}%^nBL8T(BywAQ zq?lfYo{cw_KjJA>_rahU=WE5FPvu$rem_R-c#w-U|Dx&Na6V2GCLBawKo#j`Qo&9* zW$s3Zz^c>+>rT#4DPFiAUUW8R*ll?7qlS~l)!OhLc>a}!^HqnSG!B`wC8E!x3l{vI z#Pn}KV&d;e(9E0p13;#iDs|8N>tR3Y$1A(Ro@cefx8$uJ{JpONg(cJ$L*S+DnQrqrKGlleFiJFQmP!_=EW~)y=2EicPJrug}+Q z^)WRUj}DH;#x$P!HFj&`!Ty-tc<{Aa&q3F`9qWW=be3n->)v1ZyYL>a`?I0tz_Mxu zVmkY=WAFrG`Xd$xV4D}+LKl4mC+MP$@}lJcB7Js-4!4?o3duaH&^8k-Q0Om+QbK!f z(M@3NK1CN39ZobCsMAAV^v+Kq2Ks=6z8kglRGo?M%~jz>Y`EzUhescE*D`K1FLiGB#27tvY!oEftxQlR7lsJ}gGcRod|u6-Rpp zJ&k?A7_O)ChxgIkR_X!F$cS$be;(cgqbYCqgM_1d-iPwwB^pzA!GKpURYRw}<_~k% zcgFki?_qKXg~%w-8`|Whqg&Kb79IKFD7t(X_y}j5g!UKen_nysLN~NOT_1%u(J*`L zOc2tArQfRu&w#rVIn=iqwBRdBbA0f~7XaG<)TQwl-Vj^EA-hg1qrP`+Kg60QT4&~A zOn^(Q?mf78Gl-}Jq6<;iTNuB;-(inE1~SpVeob#Ml=EX%s0M=Bc&8n^w}D{^Yq=4? zbX@Jk)Cb|AimQ+D5NGf&OZ8M<1K-g$&{c?C344+LFvED{8=XLjr_aBCXHdlgVYBt; zn5_B`E@ck|RO#xa4yvx%i5<7-CoWfzp156}s%3DArU}7zx;LOb*(Z{GdFC3=Tzt6# z)BbdSPM4l%{zib!JZZtBPYCj-Cx-e$$6>X}J9xPs>+^UTEsVHK){g*7hzw4M#` z$vjmB5GXLTVH+>Xv_m^U;pfjB=(b$ikF!5-42EX2s^-;YZ1HDA?Z6fsvCR$~hqV_l zY`mW*ddJcl0<7nMRCg*HkU){98W?EKGC%Z0&Q&L;wY3t0r*G^BFZwJie`CM4mOEy_ znNUqa=Gy7sZ|vvw;)$7gY4u0r+jI%ytNI(>ftbK`Te?zXocO~Bc)sfu9pKpVWv=sk zZmQEE>vL`AV%Emk)$T32@cbD&^~e|uKK`u6&0)wfuvx8;iS*X*$#u%U$j~(CG(edh z!X9hMf0w>0wmuQ}MRuS&+Qm<^)xCex2Jpxnq<=uCe*%|L;QViwemg;-tAY|bwf>Ac zcpdp;v>2_}3u80-5fvW&vU+#-%>L+LeSI^JevPhbc;tBru5D}o%Bi_$I-unY-Wd#`@#odDy$kT_Nf?*=la7tGrmA~vtwTY){3Fv{xW_bT?MEA0avYR7=e}y*5KQKB#eJFE zr?1qNGpp>6u;30>=K5P$F!bv7hmXS?+u%n~ecUkQHfcrZ@QmQUB7E*hmL#nQCcq?@B+q3Wnb1t*Kz0(WEQf$>!rOH^V@7u64sRiU3W_W;$ zVQHkg0mF*`Jy|Het6^>M%)O~lX`qZ?siQGQS(%2@al6#O$RvE*k;Q2hU?MCxpZU?2TE60l@&swzBtrxCSSB7^+rnr3SUAFOB+YW!Fe2V?TiBLc~ ztnI)?)C1Li9gKJ$F6pNor{)wPuGA_$&%!`Ac1M*8oZZxm51M;nnS(2sciNsCKWTjR zu>pE4F>OumNIu|v~Ru;!nt)74{BP#sD=%ZH|UpsJ>&!0VKpv{P|>7glQTO}gcl z!GnD_`@jfZ=Bwg;wHNGHBV<}rXkBL#fU518{SV9?G^VIU`vZU#!}UzzI6Y^EKX>Yl zt5un>0IR9VCn>6f+AH~f<(1%>vGGb*z`ZCIBYeYb<= z%gb#N?58(SaGScT;EVId`D|GRwP~!EURpNZF6chC!JTTo0WAPjWOaM1=xKQ>AI4@d z?Eb*BIyH2pS17}|08T=J(cBFQaMjH)UH-RJSbrb>F#aB#i0=-+uV3lF zYKcndzchJ+8HR=H%HrN5%F;teyUpkiuUY2|0x3A~%Ee8<}3!C+72Ts-i=pU}~9o~o9xquN7Yu%ISkzXQVv zA7wrV1Q)>cTo9ON!&OlG$Z0tqe_c-a8-Ey{Qk6&O4M}6T#?Hp{@X8d}Y4QSv?!lN& z>_>QBQc_XaF{NUk@tF_gnYYxL1kb!zaYr@(P#k|%V&|h)J3JiT=s_1oAHYhtx?@l> z?n7%6q4L87%V+{rn=BWd_opRQ^a2h4R+rW`%*ThHg2)N~8hvQB>T2}!tnSzfk7w#* z_{|4>d~d_~G~^uhaGklfYM-+JeqA@EEBQ$8^0s`8=0;58;ZvTaBNe}U=v z?06y1gj6|-Emqy-+JyL*cJ=VIr1(}IS3DbXc+$9HYyuWEmegJd@f^KiGt&1Ej!e$} z91u(-(S^*frJ;RjuUCz@tAlQ@x?h90x5Hy^%!_HO6(#QKsctXC6a`eUBVm|5=1zy; zag3ZDkY>~kUW|R*Xb?U&%u`d9jPQYXT55(;A8f>>jh?D20IQ}^jkjTJXQGMIQ2$bh z{a7jNHCaX(8?A|s4Dhn8r!{y&voJVxlj2$4yB$pN*`S`x?w+)zVeMyUT>E(=uKmPY zQe$0+zb003{;KrHpKOB70fBg^$tj-67%RYL6c)8&>u_>GE(Q7)eBh;sZazkO=2yUB z?-8E)bMPD50y?f74L8q*Ih3*HN1Q#YbrVBX+{{wr0@?{+lAbFO=>Tc)U>+@JiDCDk z_xQ4fX5GfP9oEptD)T@~KaM+B@H;HZIZZm?yo|W%(my4KEma8=n(pert$5DEV1zCx z7>{YK58-!fhIx+3@D%Cv#>3W(ndFVd^<-F9N~2KdDQcd#`qht&$`;VL_@ zPCd6Ix2p5@N(V7c>Q^xPNPTCYbpX;yjFzUjBY>t^Mf__?Z*#7e+fDlXz-tiv!X zI@pz>3Z^0~3iY&t-{VtsL#)Blt8M;pEc}HYGR8CU_2f&M8Rgd*)6Y+K;L}F?VC`+H zU2P`~41Aa!s6nF#B)UJVFHWlO%xkS_8K+jEM{$%}sY4lBm+H^_wX8L*mJFVvQ&A#~ zy{(412GKz)saJ_7YdiPBl}U|TUP(z_X(0XTo*CDAvnK|M;4l#MPAr=+Ca=U>lWM>E(KJ%ksRzB5!HI*omVH z8`CQd2B$PS!&{g)acpoL2o`w@izbe3V+Fy;g8TBW^@3rLlsdw6K~;y`@&>al@<(o7 z{^+v8AUNH@DNrcjqj94r=7Oo-z_`&Rki%=e{f6}Qrh7Z!JHMvo(CCMI%km}$@|0xf z@(!K54)b2tA#fRAz<$#{K=bnRf`M`13o1e~Rb>NRRVVGh`xH*MVB)0Fg-{MUUhcWBLvBZJ@pV`dEP)Y~KUSYd zWBMtFPA<{q2nH9G1&hmq-h4320)O0Pr4OH&0e?#HPagci^fRnB)`Zc8g+&2f&Lw%q zL20lgx2)IA$^Aq zy`#ywv3bGb$z=r;%#+6zc}JJzd8ZVW-O$DwV)x6*vHISWbL+rCL#&+aLH&kUL;Kw_ zu&-~hm2*@7LB4_gtXqflyT!6^f;~Lbm?^AqlM5#17EOklfMJap(IruuH!&A;HwIif zzM<4O{sN^1UhBNOIu!KkP;iSCU?+hrlxj)Q1aIlMyuw1QuQaa^8yhq8Sj>4|2nDD^ zMH9W?RV{idxUn?Q4gWw@E1MV?9V~$JMS(yWv{<>8)vcG6KC!H@Fv9}><&7;VDw~*V zjTs#nPrD#jT2#_tE{EZm(WQAky0x)xIOz;m2%SC$Cub8P$cw?(A%K5}x3PB4dI&y$ zgwMn9SzzsaWDa~Dw{|WHSzc@BqqE=$&MXMSXD)mq@OjW$`;xWxW!PH^pK5F8!bR|b zYZrpV!iDfzW$m1|55@c81|N{G9b~5DPD{);?>k z#UFS?E+(e})<&Te-Op0uoU&uf4F1s8fRy7-c`4wqh* zo^kmV9k1+kRp%~Uuh!@PKmJ=^pK8qj8}K)T@%MxAxVfzYVG{mvSv3`P2M$+QHFXE@ z_Au2Zd|>X9rX+K~v z^)py-tX|TUEoVuz4{>2ni&DeYz@`ck|hw?CzG!lpJUULZcs6zaj% z%D9cyUrKj5G5pmy+|ZA6iDkiiivQ@x!J{4h*bXk=M!J&m+nn}*j6 zK)u62U#%*SB)Ummi05F#a%)d)ks_LPCUzCEbollY3n3G>B;3!zU|ECVbTP?(hO&eI zgO3I$JmFBtx1=Q1ZrJ?(2mi)cUq?Dupw642te;Cs!g$(F{L%lWJO(FDcQscapa=7q z?uI|G;j8_V^7xm=JfiGSlI@SOP=2$pj)W5ZDc-_1N>Uf2h2>B|vg%bt6WN4USQhiL zjO1ovp8iv84Njbp=#UqTgM*|?)nOH12?tY>bi0wN-cDK8iy&w9PpL!K;Wg>RRc`|7 z(;!`CRK0~6PHOx0zwz^^#E)GLg^KAcAYE6WMrB(8nx<@c!NCUf`6fCypRQ~4dBQ!W z(^dW*^x(NvnDdTXE&hQLOL#+P6w9C^or5J?|EUc6r)=>i>~zRyPq@6CbY){%KzTOP z&WuV}a&kk1Hoi*N;@dQ3<4A2I)`cx}PW1|*oQ8t;ur5c5kHc$V^TOvCG1V?N#vU|p zx}m|eysh95Y^pp!-!Lk7)Y+TPVfo;O=?^BBf&k>RA${cIn&Ifv3gQ{$hu>{8ixX4b z4snfXY$jcOVIR|;PHFEVeg^SD!111bjQFn8;ov{jsR~zOVX8xc!sVEk9CE}N|2aPV zDT5R8owQ-UV-e|E2K%}mB+Mt*TUmfs(D{E-TJ!Ke6~R8oT)a=s!ahf+W&f0#goFWY zRBr?BSVnIHWAGU1_&e-7#9-%yekaEu_I-L%2kL%IzcF_FDWei@Ng3x$DfXq5`%)@g zzLYtxJ}C=axp1P==|o?%hU)&-BGUg8*46)1HcMQITU$7JQ{Q)@r0?bbrfjkjZ*ryB zeNqPBlae)}`GCWC>rF4y%(w#F?1ss@tsm8soD@iG=$$q_lW5TmtSJUc4Y8hR@SRzD>Z$ppNISn!8?#1zMlKJT}jUplE?hxhJ8}hQz3X3aI{CoFYK$n zF?|1l`153HA2`PCPWYhwKH}Wh4FGpReru?%7Nan15;wfs%&$3g2iaZ&<%@TMQqR|Ayq%Jr~$> z@Nrobl(2t*^8HVe|BO_Pg=5@sjsohro(hor&1;E&LOhG|F&y-vJr(4)&Zq>ocj1G2 z&ZN4p`p4=Fl#xX@1Ukkq?5CmpMP#b#GXwjEcs7;0>MsM^10Rew*LCd>P37Zan)bL^TcmbjeupT{uy192=zj4gGv6A zv-BB`hueuibFSvO{hJ?dTxyDuntx0NOA!C$V$d}V3z21DN@JsW!K6Y4$*yBmpLc!TEZ z{sp^VC_T`Qag~H)-V%*^%50B1-@+QjfWG$=7nq(oTUgvK@cG}A{K@t11o3t(NZ*O7 zezdgI%ueH667g(<;qIx#{equP{93`!CQj~YINP51;0B_1@JEhuv}KOq>BPAn^65^b z=N1O^-HkXdfG{^)tY$&GG~R@;pGEqi@SAKm60d7Q`PsasHCb?6B!~JJ3a;Cs7OI^v zPu)%O*iM^UF7dS{gnj&JC)B@A@M7Yh3qFbXLBXdI=W!Z7{Q&Wsg&*b+$9Bcs<`Ew$ zxV~SuwDJUhoaC{+F}Eee%LK>C%9!8#1b=}zwm0VX3h{FU*W()y=Yp$w|DeCG;Oj^a zwp-@*F7ams-=cU6`0Wi-+Oj?+dHkJ3bK6ex#e(l7`S%2mlKdjUe;{5X_(9UMRq!Lk ze-d0bq%Ex$>U^W6EmZ^C(mG%8Wa3`IPbYr8;O!J|LG`Rr{{ldThaQQ7^{Z5W#KYy1ueCmNkgDPsk5dyoEJR@H_C<-p%?;MEY{&81rd@~1;1|L!R|yTz32_lT#e<&Bob0q79Qef!yrTo};lQtR;QfJPe&0J=XXr)B z*B>0@pLO6kmWg`GsUvbV>ABTGez*gl;J_!5{^v>muhh;>bC9oe;9=79KJ}m3&IcXj zafJ}(Yd-apS^kd>@{c?4XB;?=*ESa?uQ>2G9C!_IwDS>q09E6KPzD=y;17GLB-vf^2Rfe-JVEeoNvbH+Nf9b$?Iq>}s99PdaXFqghlsy;FbL%p)ClPpa z@<|RH-(xfm7KG1Ha3G2ORiwz_GmM-l!d;#&cnJf`dH1XKBt4 z4><674*YQk{w#2`=Q>;4!*Oes20I0;vS5DC+`Is+SQ#@Vn1_cGMwgDqZ$9p+mO;RZ z6Lqp+qLwMgFS-(DujAZwP%{!{`NOn#TtWcrPApukVg+G_er`cY&Zv8V*rP{90uE0~*?ua;zh7_J1#E3pcS@^dYi?w?yWp%}km#Y$=3y&wt4XsX^* z>L`IgVcuw%tv?oK?nA-~mK9sUiFuQ?yhgC*08i&Z7IHy}TKuDRfkkj42rFUq8W-?2 zoK>m9a-G1q!dxJ*4kIuj7fi$a1W-gTq5%^-b+snJ-!4{AEie{Y4DRnK(@dBM))wNyKwO!R! zS1ZY@mE_e*@@ge{wYFMGUacjS{;vA3O1G;@>uR-swc78dv~^S3y6HSBZQYc%Zc1A> zrLCLN(@kC5O8`HruC#Sm+PbT&dZ?>Tp$HeLSh(7Yr5zVeuFimEM~im|Tz>9A}k}fyGJCJQn0)8%pf~IwM#F-kr$h0oT!b zBJ>jkRC!_1=v-(oN_CD#=UT-&YLs_T0NkP5Pb&UEsRhk)fwDoJP`*Kn3Iav2(hluY zfumPp6&05%Q7q;1Kw&{~pa{wgiWZ_U7aOc{{HvN#wMXWa=R*XSj?)t51ruQ1UJyK> zj`e+uUTau541s;em*_nW_fwg_M*L=dS%dsy;v)o~N*sUg7&qwlTb1yECC+No-61%a%RPd#{8Yg?o*xvPN2-Sa6nKC^+kXS#Z|#o#3qJN5NUoc~t&v{|u7DpD;H4vxImj z!50zlCHNfTe!=l4h;bVr_)_A71z${jgy3_D=L^pMDiNIJXA92qj|k3wcuH{A^LN2H zzpprOo?pg(=5%X?Jp1Q8!MPl_3eNIh3(kJqEjau67s0t4j|$HDa?yKywx8o6*@2%f zIO}OAIH!A)!SP)=w*$8se73vFd)!?R{)ed?#8}dFw&&LKg_3Uua z(~|mY=(j$G9$0v9oj(0eiD{oup)BpdujgP%hjbwmt4%;08xPBirNH{?qVdDH%|A#WS<^Bm-# zbKtKV+_duyn)ikIy#hY`oTC3TdF>zM{G2k(kjFgpePpcQ++ICI9A)RhhyD4oA)jsV zs3Biz@E;6$)b%EnV=H>k$mPiQ!P5mVC;9e*R}jBcaBiP_2!21w-yry-#BIU3A3jv@ zWh6gbaK7*43C{POpx|uhT)|l$|En9^*gq`4Sa5EimkQ4JmzM=+`8Ne;`F8|o|9m7k zm&5obSex~B_1mCB{P;9QRBf^#`uC3q$2=`J|m z?|KQ&_fwzXd>`*GIN!%_5j;fc-X%EaH&1Z(^LWA8pZ5#S{`s5WY|l%AbG}{|ob|63 zob6dBIM>q;1ZVwQ1!sG{7M%5bCpgRR7o7DU7o6=(runfPSDdfQ1!uoqPh7_5jY6K= znOg+sdK3_x)14qVKR=cV&h}Rc&hn2r@aF{Q_{Wmf-wc{3UVew>?6h z^L4^OelWef;_|AY`ZCsmR|vj}>nXG%NGm2m*m5O zbNu{OaMts>1K;4lHw(^w`%ZAye>%Oul>WKGflo0w_PbWW2e%5rQ)&Enw%~lfTSFY< z2j}84-|E1>ci=}1{iy38`8kmmf^fc=U*Nzy3(n)Ty&d=+#HIb?4E`r0Uy}{K(BM@L ze4)WjJD?J_nvd z9Lx6+_#CD83*#Mlxxq2dT)r<0&h6()!MPr7H~0Y1!*Tnq!DkzMA8}06e9k(9)`Lj@ zk0#D>%XZ%5!0&V5AqW0P2mX`;f5G5?F!J>;gPZw%i@4114nrQ#ZKry=OK`sL>@oPG zM!E+Kj(Yh1b;#g22b9a@n88t=^(WFiN%k|B?-_#gxN$q;sN*q1{{@Ep;|5PNI9|j0 zuN0i)Ez97hoILU?FQON>9M2ULC*1|-{@Vz_*`D!& zv%HJu*|PpQq(513mOo2ye(t_haMsgZaF#D7j{ccv_-CoXpE3BW27lJz8x6kH;2#`$CWjawJNbBXsLj)%{|hwIB=2l?9t zA4hsd3(o0|75o&c?+c0J<;#q8pEdXrga6&&rhi^F^ba!RR~zzwHuz3M9@EYu`@c8j z|7OVl=pcV?dk}&R{d^OA*l%gXQLUM7hQXH@@|_KC<}1_CZ`zq<@WF1oKDez?JqA7aR7JILQ=@D~mFS%#jW2G{>Rm+tpIXz+&(J*MAk4Lz7Q?vK4^@LLT% z9~*l9Y49C}e4@dR8S*a~+Z1}LHrlIFHLw=6I&HMhthMqZw{9=Qf={{?4Gu@XA{kI!>RvPkVTzzivR}A@` z2LG4AqlSL;HMc)U4Ebt9-c1XVWO%iYM z_;N%4Ck8kD^R2;OH{|yie1*Y}6UTVC)8GkSIDie~;SKn3{kqr-2e6_1UGQOknHLUV zL;02PVcy9L2e6_1aQHC4+6xD;N%?EN3M=^$u*>o{5SQ|U4Eeha`5}h&Y`yJ$~4f#=4qx}mU zkQi*3=2G}@xp;^t(7Da@{NBz%zJrkGbZ-!x?Y~KIwr7}w{*gkS?HT7FUnb-^-MNBu zx(^w8%;)7r4)V_k&i4G(LC-%NY`b9}DTTpYJsI zY=h?#$8tB@|H+0tp5t3F_-(#2FLueoxd4;ks)7iaFl2JTc*PSY{=e)59`0c;2#)#EOBmU_H$HV8~!+uD2kiSZBPWO7j zS^tfOezSfJ7V@lTv>|W$v((`KHtc*^=wZLDa^S5lZ}iU$Y?6Ns-gIGTpPzk%Ba21lFHNj~Ple{tYP1?PB9 zyiz685QiK;X9&*eUg*F(2+sPi6rA;6C-`NQuK|K{x;Gmf{j;m3w)-A~qklNvO2PR) zwZMTd7M$(*yTQ%+@(OWG)2uIR4Q|$#_YFN}IesblB~-8Dg0mk^IPf-|v_CjLSw2;8 z_J2FU*>CBBvz~4a{93_Te;>hF|1E;E{<|G`uHdZae!*GKYzH0@ob@afob{{_oS#QF z3C`{6`^2$q&HnA@LZ1CoCphc*NpQC3gadDNRnv0ke4Q;g>$${%X9(Vr>SK2Y{s+NX z|LqQZtOKt!_-x1ux3_;X_&9?}+&|wT zIO{(wIO|F5493C6^_2N3g0nrB2+sPi6P)e2QE-+I2+rkozu;`oOu<>tT*2AS#e%b* zrGm5k8-la^+k$htp9{|R?{?sE!Fm4eQNdYHt1eB;h54z1v!3$>XZZ{VewE;yU--Ec zwQ)SKexKkxziXJ_X;e?|7JMA>Ji*z{`yBWz2R>JDw*O(l+5RU5XZv3job9P`;2Q+z zbTfAx9-~1|15vL1J7{aT?J=*;75a+lrNW8w&3Hayao%-_T&l9^7jkQ z@(&ms`%CawE+sUse-9H-K9A|jU;3&`I3{M%{9A|jW;3yv@{o4iqn)r7P{D1>L z;=tWkLt?OTJ!1VS4!oTMzgTegPiMhd|8)+0fCInXf#*8#dmZ?6!P(A-1m}2IDma(p zKMih{`)dX_%YB33tp9Vtx!iXd+>Dbw1~=p6xZrGOYPY84%la=BoaK89&hoaw3qU3J zH*PZcY=hrH9BrIq@B%{~&++rZB*D48suY~thxrD-$I$;Yan!xl;4d5eBZIFp^x!r8 zJo}E|Twb3z@Gk}LNcD7=;N0KXBRI>$4|=JM>m#Szi#Xc&34GZ9!-PCPuZ?!##Rg9_ z^pp`t{hu0qrXi2#+R<~?9D|#B9yU0(pTXAf2e!oqM?LI^=M6p{IOppXgPU>nI&sut z#??AQ9?$W3$Y+9Yr*hdL_}j#f3C?!5>H$h&<8tBt)#-xsdswgFJe~%>s@Fsh^WF}8 zsNg)#Hb!tRm+^wL{z-y!{hBH`_cvw>&h>7w;M{LnB{<913eL}Kp9s$Od?`5Vj|$HE zldfs>=ZCP%@smm%W5FC}@EY7~2d*;s`-UF)={~igp3e+!8+@U`hdc0P#4&yf4f%f> z+>G-#3_VTa+>l3`*l+I&&i?tgp=W`S?pH#d_3Rd$^&Aj<9o3g3f^++m*b@?ijq3~l z{#B~rEPsyRobH8!bG?HfQ*5H2<*yZ-lq?Aw;Q7bPowtmUcp&Ux!`P1 zrQqzJ7l~upJ_H|*=XZoW+rLF{PWMZ}xx5lGwck+xdxrjY#JRj!|Am6H{>uet{Wl2C z^8Ey7Kg<%G(|t_vG>W&s3eI}|AvmY|rUPFuIH$W=aL(7Kf^)h@h)aK3*J?jYf1V>a z=j$@TS$`+NIbXdT_>F>dz6J`;`MO&1^MT+z-utECEWcZFs;378=l<1i4!l(_U5;o=C49I(zDS(Qm)o&(dp9qCF>#jf zjS6AwBDu!awSxOe{su$;=OD}W+-mSA41TAL*AT!IL(kp z6FFZY2R>hNxCXb!C8zv83R@?4egl-AGY&!;%L9=|1^V#4f*~CUt;h<1~=0kMjX>E zGUUe?@@BeY4Q}S^UV~Q}da4cmmV|L}W5zu7-@ zXTim=Nk4SSQdq^+B-myD^fb7c-~Pl=kD1?F40+T3F$SLu*RcKqgO?k;*x+Wq?jw%r zn)!Of;FWNW^{*t3<@>0?*Bg9_!M7NEk-@(-_Zg4+iN zu%VsEd45Y9!4Km}*v=H3=eKll;KhO;BRw+&pGv%vI39ilANFTN$PXv^mkf^g>&0|G zZP^D7U_-I5;lp|^C64)>YVd0eKF#3Q8{CWsn>gw><6(p$kLN1M&M}7k2ZsIv2l4yAIh92`hV=F%h!G`u=+FV}k4L$=n z+ml8dW&dgL+YN5U+r5UK3PZl!;HLc#7<$aOT4cz(K@aPfE|*yj@=rMM z<%XV_hMqSaLA@uO`<5Iy7 zw}OjcdtUHk#9uP>?*=)xf3=WjJ(~sR=fN)oXZbq8Io&;i^LXrG!CAguaDJ{l51k7e z*B4IrV!`=&wy)rv?f}6#UsD9 z@PWk31;3d%_OWr}c)pc*g`$o84&s%9k03rraQ?lmxq|1B`~txXh%Xd;0`WzH-%EV4 z;AO;@2tI}QQo*MYUncn5#9t7+iug-{hl#%`c!c;0!5<>NO7ITEYXs-^XPw|LlKdvY zPb0or@YjfM5quo+t%AQre4F5Fh;J8sJ@Goh-yyzB@b`&F1^ z<933dNAm3jUrX{{!G9v2Ciq2XYW?YgUqSji3f`OKI}82`@os|uM!cus$BFkA+(qeT z3EqOZU+~t%`Trkhznw}vN62%%7%cb@k{>EK-*<)yem=<$7yKgPqXg%Aohx_-$&VBK zO5%lrcOhOZcz5DK!TG*ZF8FmMKUHua@e0BF5w8?HoA?~T2NItv_|3!@2!1Q^g@W^a zXOZ9|NPe;4Z&O??5j>CNmkM4$e3{@Ah`%8Cy~JM|_!{ELg0Cl@D)>9Z z+Y0_Z@pgiLNW8t^pAh#7{yFh9!FLc(7yKLI=Km9iBCiqeEaW#4?jqcNTmM@os|OPTc%|Ez$l(#Cr?*#l*7&=k@1)!RM2_EqEf?pCfoH;)4YrM0}{= zcMu;Y_-(|83qG3oD8cV0o-6nm;^PF*CtfJ{J;aLz=XK^m!AnTKT<|``rwZPhc!l88 ziB}5#0P#73&muloa9*#zK=64azfkapi7yiT5#oylf1LOd!Jj0)RPbkrFBAMP#9t8n z@5EmcoY&RAD)=iTze4ck#8(Nvl6Z~atBJ1@d@b=!f^Q(cS@3s>ZxQ?h;#&p(i1;?a zKPA3h@Gpqh3H}xFU4ri<9u@pM;(G<(L;Qf?KM+4C_)o+S3x0_BF~N@zS1(SXo#J-; z1aY?;purP5>fS4IUnuy)#1{$v2=T>&KTdp!;7<}?D)=+RmkItC z;x7pPcj7Mz{tx1>3jPZ56@o7(zDn?w#A^g!O?;i;Yl&|Xd;{^#g1<|Ai{Kv+-zxY= z#J36lDe>)se?h!X@UMvP5_~7|sNmlb-z)eY;s*r(f%rkeer03Vu5Ac7mTpoPYm@?KzjYSIA#LJWcR^ z#M1@8lz2zMFDKqv@Daqj3Eq`>Pr-W-?=ASX#Ippyp15D|KE!RoZzP^0IRD{~PgDg1<<-M(~%3uM_+=;+q72gZO5_-y*(6 z@HND@3cjBBHo@N^zFqM5iPs7KA@N;;e?mMe_~*p;3eLa(azOBJNdBPUyNMqbJVyMO z;QNSMEt|IUKN5Ef{tNLW!G9y3EckKase?Sz-v!~#vcGhbX3O<5(vEUDr{XxO=NWNU~ zZ%KZt;1fu`LhyTuR|;N6e2(B#h|d*#8u0~!AE3BeD7Zy@k>DRw+%6XUFT|G!e#O-~ zPL>MZf#jD7ekIxYg5ayko|gn4MfzVAd?e{#A^6`&|0=;>BwizU6_wXI!5^h`Hwpd} z-A^|Q{ub%qBKR8OTLoWFe4F42^qyk7;CB$O6Z}KcvrF(|l8*|`{iVHv7gD=-K=2CU z2L=BVkN*q)Fv%Yi{2Ag_D;+P~ubxBxcMHCQc#`08;>m*lMm$yUR#c8{1wWH`JHgK( z-d^y_hFDc$VN- z6ZZ>#4RKrWUc_?*zk&E*!TS;)DtLe5!vwD)zYQ1s5#pl+|10ra!B-F;C-_~IZlU1s zlYFt@Ul9)qzMpux;NwaERKbggR|sB8yi)MV#ODZpKk>PO&mg`)@DTBZg3l(tNbrk@ zFBUwT_!7bYNPMZ_j}l)d_@9ZtAox?nUlROT;;#z+SK=!Kf1da%!T(9TM)2vx*9ra? z;+q8DOyd=s1&={kMDn`?Pp126RPgS^_X<9N z_yNHq#1BeN_npIn|AG2r#{_?YIRAbOw}<>Z#lLgIoS&!ocY~OFx&2RSdLQBEDgJ+7 zS)QM#_;-4kUqbfq@ANRwCeFW$!h9=jW-;f(J;x zo8S%of5G{As<+_$Je4IlKTr7u=jSO~@M4OG9KkCn4hIW9g!oXwFC{)q@aHMN!v%ki z>d`2{UnF~S1;3v7IKk^kf1%)Clm24CGbql3g8!dV?k}{hDvksAMe7J#opHvk%>Bu> z(uP^DnG^}L);R0Tu-j6s&|$%*Z8Tuo#PkkQ+J`bClu@w{LFyP7#6fU_^wC4-*R`?S6Z%Uh6l;B@Mdxk9wN`f+sG&3Ve%<>J9z;fA)khKkk7!Q zC^-!`xB74)@FIn%{sok>7*|$-jb!$iIf8o37>m7G9l zF#H;MC%i&_1inOm6n=;N82m2zarg>(93I4RZVv+-3hRQ8bG30t-H3}(d>P9{@{6cX z*K7V?;QV{T7F51Od5Z95avdkF=c(quh4@C)qu#E6FL@8Vo&0Bbiu}6sdJnEA?Ym{dn`qKdZ4$X6Hv&6^A7vVfE{pJ>l=W*SK8^yI>(fq6MM*Q9C z{s$#KNd6>Tx2wi~29Htv?{JTNe5>T=af9)P#CiOl4{sE0*biFohYw49ANlcZ;yhlc z2{1Cf1mp$oWDPH9z#1R&wKE| zCRwlB=Q=!0{?0CmnU*XNgD@CfsnXfxajt5g~xFot8aNm;`#I7o(^&ToOJ`v*ZHSA zC7!QK_dbXGblr6>D!xiyyN*Raq3wJ&Ch?9tHa_Ad2F=vV$uy;Nxnw%wdda-!xWfrA z;kbiiV~(54*aaJY$c_Aa@sL@xWh4X(>(Pddy6MbNBJH?CnURs?s7X7T@sjRKCtiJG z%u5Wth2=L#PrKP%CY#K82y0p&ANK!556pgUZI9*Ii2>RJXPaNosjZZah%GM z;{UQ@j1`sjuzV?Vm7a+d|EBqNfa+M^zgti~p&=-*~HNm>gDAhz>^#T5Ys_vJ-u@|+=XPoP zZ7%z`V4gN7m!CuVIPE_!UovIuZNEwoEyamxx1YT<(DJ(f>eX$+oE7v9KD diff --git a/x.c b/x.c index 04bba5b..33ea66a 100644 --- a/x.c +++ b/x.c @@ -59,6 +59,8 @@ static void zoom(const Arg *); static void zoomabs(const Arg *); static void zoomreset(const Arg *); static void ttysend(const Arg *); +void kscrollup(const Arg *); +void kscrolldown(const Arg *); /* config.h for applying patches and the configuration. */ #include "config.h" diff --git a/x.o b/x.o index ca6ef134f466e840662d0aa2a5c931d83c4291b3..67e1eed24b0ff7896ba0c2e35719cce821d212e9 100644 GIT binary patch delta 1206 zcmZ9KUr1AN6vuz(I&GU%H=S;}{>)}FWa=zy+WfQCvI&BJdPsz5QHZ6awoQc|%vRKr zk@H4B>tP8(K^jUo@+E5`m_78+gOG1pQ9=?SlnUYc{qDV!iwExSd(P*a^ZR#yo8M$3 zKV(B@Mqd~%_|rdwi2clW&LD>9exfp>Sw!VTQ;DjHCJ_aMoEwYI+>h?iKH5|l8e68l z3U^@6SXchlS6SY!_piI`UYUQ*HE4GQf4PFO)y7yXc01}%Ct=|GHYL?O@h!MR*VSAE z3^_(EndiO3L1i$J3@8xQ22bwY@wp`fr-CRKGRqnLTJZBD=f+lWZZL(G4p!1JYNZSpA11?H8U-EK?JYlD28Hd#oqFng%(l$N_!wWx+t)>H52M&|icgmkkEqJ5w-X|_?&7r~FWbe>uqzQAv~XJygDSJ#d+}OlM~A-)iQc8o-m7fJ z_-W2F?t-LdvcenSo=?0@hYIfUyR!_D+1W`?wo#mw9#ccUyd-`z$c!(TK$jigOgwEB z(`7hJ(+){@CTTR22T095J!=9R^bd)*N5wAsG(RQb6%xK6;nMn5376K(#r0^Kx|@gS z>^uADrw^V_96!i&WR*0~jTf(UuuWyiWTK|fF+6c8txU{}Y!ZoNAp@$;4D@jNj zh9sOW@H%mNJr5##7~=#Uw!k*iC&$BuMB7w&xCm;X0WTGSO*xV#T!~qWbBf`Za@0$j ziH$P2g~m~nkZ)%2V-hPIJwjg2Hu`k{#3wBvR{vWRS B_fP-; delta 1011 zcmZ9KUr5tY6vyxRxpH$;H$k`j*J>qZnQl@;hq}>{34-<{^|X2r(U(wv67`@pq}CWI zKkC{`TLh(;n7fe?5+lL((1St2iXMCj6YL>_a)P+d{r!H6u>-r`ozJ=Fd@uL@rhjNs z-!+r9Lh9sH-Jh{#g0WTOStbH%HL3=+3{{I-gla@Rhzf*wc0PHIeDH;319ezkv)Qn zaw}Sr_ii_r&;eXXAg&3XtNj0;eW_pu7-!*Htzg*;CLelsc7rRSLcTTB%Ga=GkImOz zGnNT`K^X*Ap|5!146g-N1?F-&^DLU6oEI?qP$w!-|hjM z6cwY)KO6_<9(`)i>xs3Tw-FL$+qVu2u+B^q_XIrE)Ab6d&une0^vo>(TlBEWw^9BDLjn%`x@H(HyPNUA~X{-S{;1}I(0B1q6 zh)=;Nr7ewcw!p1E_c+k&JWtw`x)taf%yn^5*{+oqht1Sz2dgfjB7=;25D7_<4%wj% z8tI}P+TjY_=F(5?4rmvqN9m9Q+Jw|G8bj5sk1Hb^>8=BuI%7mhJ85$hrl~sR0DIC$ JG@Psl?LY21-Le1x