-- Leo's gemini proxy
-- Connecting to git.thebackupbox.net:1965...
-- Connected
-- Sending request
-- Meta line: 20 text/gemini
repo: rxvt-unicode-sixel action: commit revision: path_from: revision_from: 2d62d1b130c8a7f7cc22355cecd4e075603ce2e7: path_to: revision_to:
commit 2d62d1b130c8a7f7cc22355cecd4e075603ce2e7 Author: Marc Lehmann <schmorp@schmorp.de> Date: Tue Mar 16 05:51:38 2004 +0000 *** empty log message *** diff --git a/src/defaultfont.C b/src/defaultfont.C
--- a/src/defaultfont.C +++ b/src/defaultfont.C @@ -202,7 +202,10 @@ rxvt_font::clear_rect (rxvt_drawable &d, int x, int y, int w, int h, int color) } } +#include "table/linedraw.h" + struct rxvt_font_default : rxvt_font { + rxvt_fontprop properties () { rxvt_fontprop p; @@ -219,7 +222,7 @@ struct rxvt_font_default : rxvt_font { width = 1; height = 1; ascent = 1; descent = 0; - set_name ("built-in pseudofont"); + set_name (strdup ("built-in pseudofont")); return true; } @@ -232,7 +235,8 @@ struct rxvt_font_default : rxvt_font { if (unicode >= 0x0080 && unicode <= 0x009f) return true; - if (unicode >= 0x2500 && unicode <= 0x259f) + if (unicode >= 0x2500 && unicode <= 0x259f + && linedraw_offs[unicode - 0x2500] & 15) return true; if (IS_COMPOSE (unicode)) @@ -252,35 +256,12 @@ struct rxvt_font_default : rxvt_font { int fg, int bg); }; -static void rect_stipple (Display *display, Drawable d, GC gc, int s1, int s2, int x, int y, int w, int h) -{ - XGCValues gcv; - char bm[2] = { s1, s2 }; - - gcv.fill_style = FillStippled; - gcv.stipple = XCreateBitmapFromData (display, d, bm, 2, 2); - gcv.ts_x_origin = x; - gcv.ts_y_origin = y; - - if (!gcv.stipple) - return; - - XChangeGC (display, gc, GCFillStyle | GCStipple | GCTileStipXOrigin | GCTileStipYOrigin, &gcv); - XFillRectangle (display, d, gc, x, y, w, h); - - XFreePixmap (display, gcv.stipple); - - gcv.fill_style = FillSolid; - XChangeGC (display, gc, GCFillStyle, &gcv); -} - -#include "table/linedraw.h" - void rxvt_font_default::draw (rxvt_drawable &d, int x, int y, const text_t *text, int len, int fg, int bg) { +return; clear_rect (d, x, y, r->TermWin.fwidth * len, r->TermWin.fheight, bg); XSetForeground (d.display->display, TGC, r->PixColors[fg]); @@ -292,37 +273,39 @@ rxvt_font_default::draw (rxvt_drawable &d, int x, int y, #endif text_t t = *text++; - int x_[16]; - int y_[16]; - int W = r->TermWin.fwidth , w = (W - 1) / 2; int H = r->TermWin.fheight, h = (H - 1) / 2; int x0 = x, x1 = x + w, x2 = x + r->TermWin.fwidth ; int y0 = y, y1 = y + h, y2 = y + r->TermWin.fheight; - for (int i = 0; i <= 8; i++) + if (0x2500 <= t && t <= 0x259f + && linedraw_offs[t - 0x2500] & 15) { - x_[i] = x + ((W-1) * i + (i*7/8)) / 8; - y_[i] = y + ((H-1) * i + (i*7/8)) / 8; - } + uint16_t offs = linedraw_offs[t - 0x2500]; + uint32_t *a = linedraw_command + (offs >> 4); + uint32_t *b = a + (offs & 15); - x_[10] = x + (W - 1) / 2; x_[9] = x_[10] - 1; x_[11] = x_[10] + 1; - y_[10] = y + (H - 1) / 2; y_[9] = y_[10] - 1; y_[11] = y_[10] + 1; + int x_[16]; + int y_[16]; - int i1 = linedraw_offs[t - 0x2500]; - int i2 = linedraw_offs[t - 0x2500 + 1]; + for (int i = 0; i <= 8; i++) + { + x_[i] = x + ((W-1) * i + (i*7/8)) / 8; + y_[i] = y + ((H-1) * i + (i*7/8)) / 8; + } - XGCValues gcv; + x_[10] = x + (W - 1) / 2; x_[9] = x_[10] - 1; x_[11] = x_[10] + 1; + y_[10] = y + (H - 1) / 2; y_[9] = y_[10] - 1; y_[11] = y_[10] + 1; - gcv.cap_style = CapButt; - gcv.line_width = 0; - XChangeGC (d.display->display, TGC, GCLineWidth | GCCapStyle, &gcv); + XGCValues gcv; - if (i1 != i2) - { - while (i1 < i2) + gcv.cap_style = CapButt; + gcv.line_width = 0; + XChangeGC (d.display->display, TGC, GCLineWidth | GCCapStyle, &gcv); + + while (a < b) { - uint32_t command = linedraw_command [i1++]; + uint32_t command = *a++; int op = (command >> 24) & 255; int a = (command >> 20) & 15; @@ -341,7 +324,7 @@ rxvt_font_default::draw (rxvt_drawable &d, int x, int y, case 1: // rectangle, possibly stippled if (a) { - static char bm[] = { 0,0 , 1,3 , 2,1 , 0,1 }; + static char bm[] = { 0,0 , 3,1 , 1,2 , 1,0 }; gcv.fill_style = FillStippled; gcv.stipple = XCreateBitmapFromData (d.display->display, d, bm + a * 2, 2, 2); @@ -359,30 +342,19 @@ rxvt_font_default::draw (rxvt_drawable &d, int x, int y, if (a) { XFreePixmap (d.display->display, gcv.stipple); + gcv.stipple = 0; gcv.fill_style = FillSolid; XChangeGC (d.display->display, TGC, GCFillStyle, &gcv); } break; case 2: // arc + XDrawArc (d.display->display, d, TGC, + x1 - W/2, y1 - H/2, W-1, H-1, + (a - 1) * 90*64, (b - 1) * 90*64); break; } } - -#if 0 - case 'A': XDrawArc (d.display->display, d, TGC, x1 , y1 , W-1, H-1, 90*64, 90*64); break; - case 'B': XDrawArc (d.display->display, d, TGC, x1-W+1, y1 , W-1, H-1, 0*64, 90*64); break; - case 'C': XDrawArc (d.display->display, d, TGC, x1-W+1, y1-H+1, W-1, H-1, 0*64, -90*64); break; - case 'D': XDrawArc (d.display->display, d, TGC, x1 , y1-H+1, W-1, H-1, -90*64, -90*64); break; - - case 'i': XFillRectangle (d.display->display, d, TGC, x0, y0, x1 - x0 + 1, y1 - y0 + 1); break; - case 'j': XFillRectangle (d.display->display, d, TGC, x1, y0, x2 - x1, y1 - y0 + 1); break; - case 'k': XFillRectangle (d.display->display, d, TGC, x0, y1, x1 - x0 + 1, y2 - y1); break; - case 'l': XFillRectangle (d.display->display, d, TGC, x1, y1, x2 - x1, y2 - y1); break; - } - } -#endif - } #if ENABLE_COMBINING else if (IS_COMPOSE (t) && (cc = rxvt_composite[t])) @@ -406,33 +378,6 @@ rxvt_font_default::draw (rxvt_drawable &d, int x, int y, case ZERO_WIDTH_CHAR: break; -#if 0 - case 0x2580: XFillRectangle (d.display->display, d, TGC, x0, y0, W, y1 - y0 + 1); break; - case 0x2581: XFillRectangle (d.display->display, d, TGC, x0, y0 + (H * 7 - 1) / 8, W, H - (H * 7 - 1) / 8); break; - case 0x2582: XFillRectangle (d.display->display, d, TGC, x0, y0 + (H * 6 - 2) / 8, W, H - (H * 6 - 2) / 8); break; - case 0x2583: XFillRectangle (d.display->display, d, TGC, x0, y0 + (H * 5 - 3) / 8, W, H - (H * 5 - 3) / 8); break; - case 0x2584: XFillRectangle (d.display->display, d, TGC, x0, y0 + (H * 4 - 4) / 8, W, H - (H * 4 - 4) / 8); break; - case 0x2585: XFillRectangle (d.display->display, d, TGC, x0, y0 + (H * 3 - 5) / 8, W, H - (H * 3 - 5) / 8); break; - case 0x2586: XFillRectangle (d.display->display, d, TGC, x0, y0 + (H * 2 - 6) / 8, W, H - (H * 2 - 6) / 8); break; - case 0x2587: XFillRectangle (d.display->display, d, TGC, x0, y0 + (H * 1 - 7) / 8, W, H - (H * 1 - 7) / 8); break; - case 0x2588: XFillRectangle (d.display->display, d, TGC, x0, y0, W, H); break; - case 0x2589: XFillRectangle (d.display->display, d, TGC, x0, y0, (W * 7 - 1) / 8, H); break; - case 0x258a: XFillRectangle (d.display->display, d, TGC, x0, y0, (W * 6 - 2) / 8, H); break; - case 0x258b: XFillRectangle (d.display->display, d, TGC, x0, y0, (W * 5 - 3) / 8, H); break; - case 0x258c: XFillRectangle (d.display->display, d, TGC, x0, y0, (W * 4 - 4) / 8, H); break; - case 0x258d: XFillRectangle (d.display->display, d, TGC, x0, y0, (W * 3 - 5) / 8, H); break; - case 0x258e: XFillRectangle (d.display->display, d, TGC, x0, y0, (W * 2 - 6) / 8, H); break; - case 0x258f: XFillRectangle (d.display->display, d, TGC, x0, y0, (W * 1 - 7) / 8, H); break; - case 0x2590: XFillRectangle (d.display->display, d, TGC, x1, y0, x2 - x1, H); break; - - case 0x2591: rect_stipple (d.display->display, d, TGC, 0x00, 0x01, x0, y0, W, H); break; - case 0x2592: rect_stipple (d.display->display, d, TGC, 0x02, 0x01, x0, y0, W, H); break; - case 0x2593: rect_stipple (d.display->display, d, TGC, 0x01, 0x03, x0, y0, W, H); break; - - case 0x2594: XFillRectangle (d.display->display, d, TGC, x0, y0, W, (H * 1 - 7) / 8); break; - case 0x2595: XFillRectangle (d.display->display, d, TGC, x0 + (W * 7 - 1) / 8, y0, W - (W * 7 - 1) / 8, H); break; -#endif - default: int w = 0; while (len > 0 && *text == NOCHAR) diff --git a/src/genlinedraw b/src/genlinedraw new file mode 100755 index 0000000000000000000000000000000000000000..1d302be5b0c7a7b7f89f83d1c076259224ff0956 --- /dev/null +++ b/src/genlinedraw @@ -0,0 +1,350 @@ +#!/usr/bin/perl + +open TABLE, ">", "table/linedraw.h"; +select TABLE; + +my $ch = 0x2500; + +# coordinate system: +# +# 0..8 (equally spaced) 9,11 mid-1,mid+1, makes 4 bit +# one point = 8 bit, two points = 16 bit + +# 8 bit opcode 0 line, 1 rect, 2 arc +# 8 bit opcode arg + +# OOOOOOOO AAAABBBB X1X1Y1Y1 X2X2Y2Y2 + +my $offs = 0; +my @offs; + +sub emit { + my ($code, $x1, $y1, $x2, $y2, $a, $b) = @_; + $offs++; + printf " 0x%08lx,", ($code << 24) + | ($x1 << 12) + | ($y1 << 8) + | ($x2 << 4) + | ($y2 << 0) + | ($a << 20) + | ($b << 16); +} + +print "static uint32_t linedraw_command[] = {\n"; + +while (<DATA>) { + next if /^\//; + next unless /\S/; + + push @offs, $offs; + + my ($v, $V, $h, $H, $s); + + for (;;) { + /\G-/gc and last; + /\G$/gc and last; + + /\G([123])/gc and $w = $1; + + /\Gh/gc and $h = $w; + /\GH/gc and $H = $w; + /\Gv/gc and $v = $w; + /\GV/gc and $V = $w; + + /\G\//gc and emit 0, 0, 8, 8, 0; + /\G\\/gc and emit 0, 0, 0, 8, 8; + + /\GA/gc and emit 2, 8, 8, 0, 0, 2, 2; + /\GB/gc and emit 2, 0, 8, 0, 0, 1, 2; + /\GC/gc and emit 2, 0, 0, 0, 0, 1, 0; + /\GD/gc and emit 2, 8, 0, 0, 0, 0, 0; + + /\Gi/gc and emit 1, 0, 0, 4, 4; + /\Gj/gc and emit 1, 4, 0, 8, 4; + /\Gk/gc and emit 1, 0, 4, 4, 8; + /\Gl/gc and emit 1, 4, 4, 8, 8; + + /\Gs(\d)/gc and $s = $1; + + /\Gr(\d+),(\d+),(\d+),(\d+)/gc and emit 1, $1, $2, $3, $4, $s; + + /\G\s/gc; + } + + if ($h) { + emit 0, 0, 9,10, 9 if $h > 1; + emit 0, 0, 10,10, 10 if $h & 1; + emit 0, 0, 11,10, 11 if $h > 1; + } + + if ($H) { + emit 0,10, 9, 8, 9 if $H > 1; + emit 0,10, 10, 8, 10 if $H & 1; + emit 0,10, 11, 8, 11 if $H > 1; + } + + if ($v) { + emit 0, 9, 0, 9, 10 if $v > 1; + emit 0,10, 0,10, 10 if $v & 1; + emit 0,11, 0,11, 10 if $v > 1; + } + + if ($V) { + emit 0, 9, 10, 9, 8 if $V > 1; + emit 0,10, 10,10, 8 if $V & 1; + emit 0,11, 10,11, 8 if $V > 1; + } + + $offs[-1] = ($offs[-1] << 4) | ($offs - $offs[-1]); + + printf " // %04x\n", $ch; + $ch++; +} + +print <<EOF; +}; + +static uint16_t linedraw_offs[] = { +EOF + +for (@offs) { + printf " 0x%04x,", $_; + print "\n" if ++$cnt % 5 == 0; +} + +print <<EOF; +}; + +EOF + +__END__ +// 2500 + +1hH +3hH +1vV +3vV + +r0,10,1,10 r3,10,5,10 r7,10,8,10 +r0,9,1,11 r3,9,5,11 r7,9,8,11 +r10,0,10,1 r10,3,10,5 r10,7,10,8 +r9,0,11,1 r9,3,11,5 r9,7,11,8 + +r0,10,1,10 r2,10,3,10 r4,10,5,10 r6,10,7,10 +r0,9,1,11 r2,9,3,11 r4,9,5,11 r6,9,7,11 +r10,0,10,1 r10,2,10,3 r10,4,10,5 r10,6,10,7 +r9,0,11,1 r9,2,11,3 r9,4,11,5 r9,6,11,7 + +1HV +3H1V +1H3V +3HV + + +// 2510 + +1hV +3h1V +1h3V +3hV + +1Hv +3H1v +1H3v +3Hv + +1hv +3h1v +1h3v +3hv + +1HvV +3H1vV +1HV3v +1Hv3V + + +// 2530 + +1H3vV +3Hv1V +3HV1v +3HvV + +1hvV +3h1vV +1hV3v +1hv3V + +1h3vV +3hv1V +1v3hV +3hvV + +1hHV +3h1HV +3H1hV +3hH1V + + +// 2530 + +1hH3V +3hV1H +1h3HV +3hHV + +1hHv +1vH3h +1hv3H +1v3hH + +1hH3v +1H3hv +1h3Hv +3hHv + +1hHvV +1vVH3h +1hvV3H +1vV3hH + + +// 2540 + +1hHV3v +1hHv3V +1hH3vV +1HV3hv + +1hV3Hv +1Hv3hV +1hv3HV +1V3hHv + +1v3hHV +1H3hvV +1h3HvV +3hHvV + +- +- +- +- + + +// 2550 + +2hH +2vV +1V2H +2V1H + +2VH +2h1V +1h2V +2hV + +1v2H +2v1H +2vH +2h1v + +1h2v +2hv +1vV2H +2vV1H + + +// 2560 + +2vVH +2h1vV +1h2vV +2hvV + +2hH1V +2V1hH +2hHV +1v2hH + +2v1hH +2vhH +1vV2hH +1hH2vV + +2hHvV +A +B +C + + +// 2570 + +D +1/ +1\ +1/\ + +1h +1v +1H +1V + +3h +3v +3H +3V + +1h3H +1v3V +1H3h +1V3v + + +// 2580 + +r0,0,8,4 +r0,7,8,8 +r0,6,8,8 +r0,5,8,8 + +r0,4,8,8 +r0,3,8,8 +r0,2,8,8 +r0,1,8,8 + +r0,0,8,8 +r0,0,7,8 +r0,0,6,8 +r0,0,5,8 + +r0,0,4,8 +r0,0,3,8 +r0,0,2,8 +r0,0,1,8 + + +// 2590 + +r4,0,8,8 +s3r0,0,8,8 +s2r0,0,8,8 +s1r0,0,8,8 + +r0,0,8,1 +r7,0,8,8 +k +l + +i +ikl +il +ijk + +ijl +j +jk +jkl + + diff --git a/src/table/linedraw.h b/src/table/linedraw.h new file mode 100644 index 0000000000000000000000000000000000000000..e76a6decd25c08983fa8ed1bb4f289dddb62eefa --- /dev/null +++ b/src/table/linedraw.h @@ -0,0 +1,198 @@ +static uint32_t linedraw_command[] = { + 0x00000aaa, 0x0000aa8a, // 2500 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000a989, 0x0000aa8a, 0x0000ab8b, // 2501 + 0x0000a0aa, 0x0000aaa8, // 2502 + 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2503 + 0x01000a1a, 0x01003a5a, 0x01007a8a, // 2504 + 0x0100091b, 0x0100395b, 0x0100798b, // 2505 + 0x0100a0a1, 0x0100a3a5, 0x0100a7a8, // 2506 + 0x010090b1, 0x010093b5, 0x010097b8, // 2507 + 0x01000a1a, 0x01002a3a, 0x01004a5a, 0x01006a7a, // 2508 + 0x0100091b, 0x0100293b, 0x0100495b, 0x0100697b, // 2509 + 0x0100a0a1, 0x0100a2a3, 0x0100a4a5, 0x0100a6a7, // 250a + 0x010090b1, 0x010092b3, 0x010094b5, 0x010096b7, // 250b + 0x0000aa8a, 0x0000aaa8, // 250c + 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000aaa8, // 250d + 0x0000aa8a, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 250e + 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 250f + 0x00000aaa, 0x0000aaa8, // 2510 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000aaa8, // 2511 + 0x00000aaa, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2512 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2513 + 0x0000aa8a, 0x0000a0aa, // 2514 + 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000a0aa, // 2515 + 0x0000aa8a, 0x0000909a, 0x0000a0aa, 0x0000b0ba, // 2516 + 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000909a, 0x0000a0aa, 0x0000b0ba, // 2517 + 0x00000aaa, 0x0000a0aa, // 2518 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000a0aa, // 2519 + 0x00000aaa, 0x0000909a, 0x0000a0aa, 0x0000b0ba, // 251a + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000909a, 0x0000a0aa, 0x0000b0ba, // 251b + 0x0000aa8a, 0x0000a0aa, 0x0000aaa8, // 251c + 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000a0aa, 0x0000aaa8, // 251d + 0x0000aa8a, 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x0000aaa8, // 251e + 0x0000aa8a, 0x0000a0aa, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 251f + 0x0000aa8a, 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2520 + 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x0000aaa8, // 2521 + 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000a0aa, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2522 + 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2523 + 0x00000aaa, 0x0000a0aa, 0x0000aaa8, // 2524 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000a0aa, 0x0000aaa8, // 2525 + 0x00000aaa, 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x0000aaa8, // 2526 + 0x00000aaa, 0x0000a0aa, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2527 + 0x00000aaa, 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2528 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x0000aaa8, // 2529 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000a0aa, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 252a + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 252b + 0x00000aaa, 0x0000aa8a, 0x0000aaa8, // 252c + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000aa8a, 0x0000aaa8, // 252d + 0x00000aaa, 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000aaa8, // 252e + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000aaa8, // 252f + 0x00000aaa, 0x0000aa8a, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2530 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000aa8a, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2531 + 0x00000aaa, 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2532 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2533 + 0x00000aaa, 0x0000aa8a, 0x0000a0aa, // 2534 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000aa8a, 0x0000a0aa, // 2535 + 0x00000aaa, 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000a0aa, // 2536 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000a0aa, // 2537 + 0x00000aaa, 0x0000aa8a, 0x0000909a, 0x0000a0aa, 0x0000b0ba, // 2538 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000aa8a, 0x0000909a, 0x0000a0aa, 0x0000b0ba, // 2539 + 0x00000aaa, 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000909a, 0x0000a0aa, 0x0000b0ba, // 253a + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000909a, 0x0000a0aa, 0x0000b0ba, // 253b + 0x00000aaa, 0x0000aa8a, 0x0000a0aa, 0x0000aaa8, // 253c + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000aa8a, 0x0000a0aa, 0x0000aaa8, // 253d + 0x00000aaa, 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000a0aa, 0x0000aaa8, // 253e + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000a0aa, 0x0000aaa8, // 253f + 0x00000aaa, 0x0000aa8a, 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x0000aaa8, // 2540 + 0x00000aaa, 0x0000aa8a, 0x0000a0aa, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2541 + 0x00000aaa, 0x0000aa8a, 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2542 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000aa8a, 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x0000aaa8, // 2543 + 0x00000aaa, 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x0000aaa8, // 2544 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000aa8a, 0x0000a0aa, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2545 + 0x00000aaa, 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000a0aa, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2546 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x0000aaa8, // 2547 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000a0aa, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2548 + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000aa8a, 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 2549 + 0x00000aaa, 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 254a + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000a989, 0x0000aa8a, 0x0000ab8b, 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 254b + // 254c + // 254d + // 254e + // 254f + 0x000009a9, 0x00000bab, 0x0000a989, 0x0000ab8b, // 2550 + 0x0000909a, 0x0000b0ba, 0x00009a98, 0x0000bab8, // 2551 + 0x0000a989, 0x0000ab8b, 0x0000aaa8, // 2552 + 0x0000aa8a, 0x00009a98, 0x0000bab8, // 2553 + 0x0000a989, 0x0000ab8b, 0x00009a98, 0x0000bab8, // 2554 + 0x000009a9, 0x00000bab, 0x0000aaa8, // 2555 + 0x00000aaa, 0x00009a98, 0x0000bab8, // 2556 + 0x000009a9, 0x00000bab, 0x00009a98, 0x0000bab8, // 2557 + 0x0000a989, 0x0000ab8b, 0x0000a0aa, // 2558 + 0x0000aa8a, 0x0000909a, 0x0000b0ba, // 2559 + 0x0000a989, 0x0000ab8b, 0x0000909a, 0x0000b0ba, // 255a + 0x000009a9, 0x00000bab, 0x0000a0aa, // 255b + 0x00000aaa, 0x0000909a, 0x0000b0ba, // 255c + 0x000009a9, 0x00000bab, 0x0000909a, 0x0000b0ba, // 255d + 0x0000a989, 0x0000ab8b, 0x0000a0aa, 0x0000aaa8, // 255e + 0x0000aa8a, 0x0000909a, 0x0000b0ba, 0x00009a98, 0x0000bab8, // 255f + 0x0000a989, 0x0000ab8b, 0x0000909a, 0x0000b0ba, 0x00009a98, 0x0000bab8, // 2560 + 0x000009a9, 0x00000bab, 0x0000a0aa, 0x0000aaa8, // 2561 + 0x00000aaa, 0x0000909a, 0x0000b0ba, 0x00009a98, 0x0000bab8, // 2562 + 0x000009a9, 0x00000bab, 0x0000909a, 0x0000b0ba, 0x00009a98, 0x0000bab8, // 2563 + 0x000009a9, 0x00000bab, 0x0000a989, 0x0000ab8b, 0x0000aaa8, // 2564 + 0x00000aaa, 0x0000aa8a, 0x00009a98, 0x0000bab8, // 2565 + 0x000009a9, 0x00000bab, 0x0000a989, 0x0000ab8b, 0x00009a98, 0x0000bab8, // 2566 + 0x000009a9, 0x00000bab, 0x0000a989, 0x0000ab8b, 0x0000a0aa, // 2567 + 0x00000aaa, 0x0000aa8a, 0x0000909a, 0x0000b0ba, // 2568 + 0x000009a9, 0x00000bab, 0x0000a989, 0x0000ab8b, 0x0000909a, 0x0000b0ba, // 2569 + 0x000009a9, 0x00000bab, 0x0000a989, 0x0000ab8b, 0x0000a0aa, 0x0000aaa8, // 256a + 0x00000aaa, 0x0000aa8a, 0x0000909a, 0x0000b0ba, 0x00009a98, 0x0000bab8, // 256b + 0x000009a9, 0x00000bab, 0x0000a989, 0x0000ab8b, 0x0000909a, 0x0000b0ba, 0x00009a98, 0x0000bab8, // 256c + 0x02228800, // 256d + 0x02120800, // 256e + 0x02100000, // 256f + 0x02008000, // 2570 + 0x00000880, // 2571 + 0x00000088, // 2572 + 0x00000880, 0x00000088, // 2573 + 0x00000aaa, // 2574 + 0x0000a0aa, // 2575 + 0x0000aa8a, // 2576 + 0x0000aaa8, // 2577 + 0x000009a9, 0x00000aaa, 0x00000bab, // 2578 + 0x0000909a, 0x0000a0aa, 0x0000b0ba, // 2579 + 0x0000a989, 0x0000aa8a, 0x0000ab8b, // 257a + 0x00009a98, 0x0000aaa8, 0x0000bab8, // 257b + 0x00000aaa, 0x0000a989, 0x0000aa8a, 0x0000ab8b, // 257c + 0x0000a0aa, 0x00009a98, 0x0000aaa8, 0x0000bab8, // 257d + 0x000009a9, 0x00000aaa, 0x00000bab, 0x0000aa8a, // 257e + 0x0000909a, 0x0000a0aa, 0x0000b0ba, 0x0000aaa8, // 257f + 0x01000084, // 2580 + 0x01000788, // 2581 + 0x01000688, // 2582 + 0x01000588, // 2583 + 0x01000488, // 2584 + 0x01000388, // 2585 + 0x01000288, // 2586 + 0x01000188, // 2587 + 0x01000088, // 2588 + 0x01000078, // 2589 + 0x01000068, // 258a + 0x01000058, // 258b + 0x01000048, // 258c + 0x01000038, // 258d + 0x01000028, // 258e + 0x01000018, // 258f + 0x01004088, // 2590 + 0x01300088, // 2591 + 0x01200088, // 2592 + 0x01100088, // 2593 + 0x01000081, // 2594 + 0x01007088, // 2595 + 0x01000448, // 2596 + 0x01004488, // 2597 + 0x01000044, // 2598 + 0x01000044, 0x01000448, 0x01004488, // 2599 + 0x01000044, 0x01004488, // 259a + 0x01000044, 0x01004084, 0x01000448, // 259b + 0x01000044, 0x01004084, 0x01004488, // 259c + 0x01004084, // 259d + 0x01004084, 0x01000448, // 259e + 0x01004084, 0x01000448, 0x01004488, // 259f +}; + +static uint16_t linedraw_offs[] = { + 0x0002, 0x0026, 0x0082, 0x00a6, 0x0103, + 0x0133, 0x0163, 0x0193, 0x01c4, 0x0204, + 0x0244, 0x0284, 0x02c2, 0x02e4, 0x0324, + 0x0366, 0x03c2, 0x03e4, 0x0424, 0x0466, + 0x04c2, 0x04e4, 0x0524, 0x0566, 0x05c2, + 0x05e4, 0x0624, 0x0666, 0x06c3, 0x06f5, + 0x0745, 0x0795, 0x07e7, 0x0857, 0x08c7, + 0x0939, 0x09c3, 0x09f5, 0x0a45, 0x0a95, + 0x0ae7, 0x0b57, 0x0bc7, 0x0c39, 0x0cc3, + 0x0cf5, 0x0d45, 0x0d97, 0x0e05, 0x0e57, + 0x0ec7, 0x0f39, 0x0fc3, 0x0ff5, 0x1045, + 0x1097, 0x1105, 0x1157, 0x11c7, 0x1239, + 0x12c4, 0x1306, 0x1366, 0x13c8, 0x1446, + 0x14a6, 0x1508, 0x1588, 0x1608, 0x1688, + 0x1708, 0x178a, 0x182a, 0x18ca, 0x196a, + 0x1a0c, 0x1ac0, 0x1ac0, 0x1ac0, 0x1ac0, + 0x1ac4, 0x1b04, 0x1b43, 0x1b73, 0x1ba4, + 0x1be3, 0x1c13, 0x1c44, 0x1c83, 0x1cb3, + 0x1ce4, 0x1d23, 0x1d53, 0x1d84, 0x1dc4, + 0x1e05, 0x1e56, 0x1eb4, 0x1ef5, 0x1f46, + 0x1fa5, 0x1ff4, 0x2036, 0x2095, 0x20e4, + 0x2126, 0x2186, 0x21e6, 0x2248, 0x22c1, + 0x22d1, 0x22e1, 0x22f1, 0x2301, 0x2311, + 0x2322, 0x2341, 0x2351, 0x2361, 0x2371, + 0x2383, 0x23b3, 0x23e3, 0x2413, 0x2444, + 0x2484, 0x24c4, 0x2504, 0x2541, 0x2551, + 0x2561, 0x2571, 0x2581, 0x2591, 0x25a1, + 0x25b1, 0x25c1, 0x25d1, 0x25e1, 0x25f1, + 0x2601, 0x2611, 0x2621, 0x2631, 0x2641, + 0x2651, 0x2661, 0x2671, 0x2681, 0x2691, + 0x26a1, 0x26b1, 0x26c1, 0x26d3, 0x2702, + 0x2723, 0x2753, 0x2781, 0x2792, 0x27b3, +}; +
-----END OF PAGE-----
-- Response ended
-- Page fetched on Sun Jun 2 13:54:10 2024