From 4f64827f3a395072f300b86ef17f730805b47048 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 6 May 2024 04:20:21 +0200 Subject: Adding upstream version 4.6.2. Signed-off-by: Daniel Baumann --- terminfo/8bits | 17 ++ terminfo/README | 20 ++ terminfo/checktc.c | 204 ++++++++++++++++ terminfo/screencap | 23 ++ terminfo/screeninfo.src | 80 +++++++ terminfo/test.txt | 603 ++++++++++++++++++++++++++++++++++++++++++++++++ terminfo/tetris.c | 20 ++ 7 files changed, 967 insertions(+) create mode 100644 terminfo/8bits create mode 100644 terminfo/README create mode 100644 terminfo/checktc.c create mode 100644 terminfo/screencap create mode 100644 terminfo/screeninfo.src create mode 100644 terminfo/test.txt create mode 100644 terminfo/tetris.c (limited to 'terminfo') diff --git a/terminfo/8bits b/terminfo/8bits new file mode 100644 index 0000000..b616622 --- /dev/null +++ b/terminfo/8bits @@ -0,0 +1,17 @@ + +We test some umlauts and other characters coded in +the ISO 8859-1 (Latin 1) standard: + +umlaut A Ä umlaut a ä +umlaut O Ö umlaut o ö +umlaut U Ü umlaut u ü +sharp s ß paragraph § +e + / é e + \ è +e + ^ ê a + \ à +u + \ ù degree ° +log. not ¬ + over - ± +<< « >> » +fraction 1/2 ½ fraction 1/4 ¼ +power of 2 ² middle dot · + +--- diff --git a/terminfo/README b/terminfo/README new file mode 100644 index 0000000..45b39e6 --- /dev/null +++ b/terminfo/README @@ -0,0 +1,20 @@ + +This directory contains various file for termcap/terminfo installation +and testing: + +screencap Termcap entry for screen. Add it to /etc/termcap. + On NetBSD, you should run /usr/bin/cap_mkdb afterwards. + +screeninfo.src Terminfo entry. Use 'tic screeninfo.src' + to install (Sun: /usr/5bin/tic). + +checktc.c Termcap/info test program. Checks margin + handling and other things. + +8bits Some chars from the ISO 8859-1 charset. + +test.txt Test file for alternate charset. + +tetris.c The popular game, by John Tromp. This is one of + the winners of the 1989 IOCCC contest. + diff --git a/terminfo/checktc.c b/terminfo/checktc.c new file mode 100644 index 0000000..ccc9485 --- /dev/null +++ b/terminfo/checktc.c @@ -0,0 +1,204 @@ +#include + +char *CL, *CM, *CS, *SR; +int CO, LI, AM, XN; + +char *tgetstr(), *getenv(); +void PutStr(), CPutStr(), CCPutStr(), GotoPos(), RETURN(); + +main() +{ + char *term, *s; + char tcbuf[1024]; + char tcstr[1024], *tp; + + if ((term = getenv("TERM")) == 0) + { + fprintf(stderr, "No $TERM set\n"); + exit(1); + } + switch (tgetent(tcbuf, term)) + { + case -1: + fprintf(stderr, "Could not open termcap file\n"); + exit(1); + case 0: + fprintf(stderr, "I don't know what a '%s' terminal is.\n", term); + exit(1); + } + tp = tcstr; + if ((CL = tgetstr("cl", &tp)) == 0) + { + fprintf(stderr, "cl capability required\n"); + exit(1); + } + if ((CM = tgetstr("cm", &tp)) == 0) + { + fprintf(stderr, "cm capability required\n"); + exit(1); + } + + if ((s = getenv("COLUMNS"))) + CO = atoi(s); + if ((s = getenv("LINES"))) + LI = atoi(s); + if (CO == 0) + CO = tgetnum("co"); + if (LI == 0) + LI = tgetnum("li"); + if (CO == 0) + CO = 80; + if (LI == 0) + LI = 24; + GotoPos(5, 1); + printf("******* cl capability does not work !!! *******"); + GotoPos(5, 2); + PutStr(CL); + printf("******* cl capability does not home cursor *******"); + GotoPos(0, 0); + printf(" "); + GotoPos(5, 4); + printf("******* cm capability does not work !!! *******"); + GotoPos(5, 4); + printf(" "); + GotoPos(CO/2-12, LI/2); + printf("Your terminal size is"); + GotoPos(CO/2-3, LI/2+1); + printf("%dx%d", CO, LI); + GotoPos(CO/2-2, 0); + printf("top"); + GotoPos(CO/2-3, LI-1); + printf("bottom"); + GotoPos(0, LI/2-2);printf("l"); + GotoPos(0, LI/2-1);printf("e"); + GotoPos(0, LI/2+0);printf("f"); + GotoPos(0, LI/2+1);printf("t"); + GotoPos(CO-1, LI/2-2);printf("r"); + GotoPos(CO-1, LI/2-1);printf("i"); + GotoPos(CO-1, LI/2+0);printf("g"); + GotoPos(CO-1, LI/2+1);printf("h"); + GotoPos(CO-1, LI/2+2);printf("t"); + GotoPos(CO/2-15, LI/2+3); + RETURN(); + AM = tgetflag("am"); + printf("Termcap: terminal does %sauto-wrap", AM ? "" : "not "); + GotoPos(0, 5); + if (AM) + { + printf(" am capability set, but terminal does not wrap"); + GotoPos(CO-1, 3); + } + else + { + printf(" am capability not set, but terminal does wrap"); + GotoPos(CO-1, 4); + } + printf(" \n "); + GotoPos(0, 10); + RETURN(); + if (AM) + { + XN = tgetflag("xn"); + printf("Termcap: terminal has %smagic margins", XN ? "" : "no "); + GotoPos(0, 5); + if ((XN = tgetflag("xn"))) + { + printf(" xn capability set, but terminal has no magic-margins"); + GotoPos(CO-1, 4); + } + else + { + printf(" xn capability not set, but terminal has magic-margins"); + GotoPos(CO-1, 3); + } + printf(" \n"); + printf(" "); + GotoPos(0, 10); + RETURN(); + if (XN) + { + GotoPos(0, 6); + printf(" last col in last row is not usable"); + GotoPos(CO-1, LI-1); + printf(" "); + GotoPos(0, 6); + printf(" "); + GotoPos(0, 0); + printf("testing magic margins in last row"); + GotoPos(0, 10); + RETURN(); + } + } + if ((CS = tgetstr("cs", &tp))) + { + printf("Termcap: terminal has scrollregions"); + GotoPos(0, 5); + printf(" cs capability set, but doesn't work"); + CCPutStr(CS, 4, 5); + GotoPos(0, 5); + printf("\n\n"); + CCPutStr(CS, 0, LI-1); + GotoPos(0, 10); + RETURN(); + } + if ((SR = tgetstr("sr", &tp))) + { + GotoPos(0, 5); + printf(" sr capability set, but doesn't work"); + GotoPos(0, 0); + PutStr(SR); + GotoPos(0, 6); + printf(" "); + GotoPos(0, 0); + printf("Termcap: terminal can scroll backwards"); + GotoPos(0, 10); + RETURN(); + } +} + +void +putcha(c) +char c; +{ + putchar(c); +} + +void +PutStr(s) +char *s; +{ + tputs(s, 1, putcha); + fflush(stdout); +} + +void CPutStr(s, c) +char *s; +int c; +{ + tputs(tgoto(s, 0, c), 1, putcha); + fflush(stdout); +} + +void CCPutStr(s, x, y) +char *s; +int x, y; +{ + tputs(tgoto(s, y, x), 1, putcha); + fflush(stdout); +} + +void GotoPos(x,y) +int x,y; +{ + tputs(tgoto(CM, x, y), 1, putcha); + fflush(stdout); +} + +void +RETURN() +{ + printf("Press to continue"); + fflush(stdout); + while(getchar() != '\n'); + PutStr(CL); +} diff --git a/terminfo/screencap b/terminfo/screencap new file mode 100644 index 0000000..4820d92 --- /dev/null +++ b/terminfo/screencap @@ -0,0 +1,23 @@ +SC|screen|VT 100/ANSI X3.64 virtual terminal:\ + :am:xn:ms:mi:G0:km:\ + :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bs:bt=\E[Z:\ + :cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:ct=\E[3g:\ + :do=^J:nd=\E[C:pt:rc=\E8:rs=\Ec:sc=\E7:st=\EH:up=\EM:\ + :le=^H:bl=^G:cr=^M:it#8:ho=\E[H:nw=\EE:ta=^I:is=\E)0:\ + :li#24:co#80:us=\E[4m:ue=\E[24m:so=\E[3m:se=\E[23m:\ + :mb=\E[5m:md=\E[1m:mr=\E[7m:me=\E[m:sr=\EM:al=\E[L:\ + :AL=\E[%dL:dl=\E[M:DL=\E[%dM:cs=\E[%i%d;%dr:dc=\E[P:\ + :DC=\E[%dP:im=\E[4h:ei=\E[4l:IC=\E[%d@:\ + :ks=\E[?1h\E=:ke=\E[?1l\E>:vb=\Eg:\ + :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:\ + :k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:F1=\E[23~:F2=\E[24~:\ + :kh=\E[1~:kI=\E[2~:kD=\E[3~:kH=\E[4~:@7=\E[4~:kP=\E[5~:\ + :kN=\E[6~:eA=\E(B\E)0:as=^N:ae=^O:ti=\E[?1049h:te=\E[?1049l:\ + :vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l:\ + :Co#8:pa#64:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:AX:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++,,hhII00: +SB|screen-bce|VT 100/ANSI X3.64 virtual terminal with bce:\ + :ut:tc=screen: +SH|screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line:\ + :ts=\E_:fs=\E\\:ds=\E_\E\\:tc=screen: diff --git a/terminfo/screeninfo.src b/terminfo/screeninfo.src new file mode 100644 index 0000000..c5f254a --- /dev/null +++ b/terminfo/screeninfo.src @@ -0,0 +1,80 @@ +screen|VT 100/ANSI X3.64 virtual terminal, + am, km, mir, msgr, xenl, + cols#80, it#8, lines#24, colors#8, pairs#64, + bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, + clear=\E[H\E[J, cr=\r, csr=\E[%i%p1%d;%p2%dr, + cub=\E[%p1%dD, cub1=\b, cud=\E[%p1%dB, cud1=\n, + cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, + cuu=\E[%p1%dA, cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P, + dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, + enacs=\E(B\E)0, home=\E[H, + ht=\t, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, + ind=\n, is2=\E)0, kcub1=\EOD, kcud1=\EOB, + kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kf1=\EOP, + kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, + kf3=\EOR, kf4=\EOS, kf5=\E[15~, kf6=\E[17~, + kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kend=\E[4~, + kich1=\E[2~, knp=\E[6~, kpp=\E[5~, nel=\EE, + rc=\E8, rev=\E[7m, ri=\EM, rmcup=\E[?1049l, rmir=\E[4l, + rmkx=\E[?1l\E>, rmso=\E[23m, rmul=\E[24m, rs2=\Ec, sc=\E7, + sgr0=\E[m, smcup=\E[?1049h, smir=\E[4h, smkx=\E[?1h\E=, + smso=\E[3m, smul=\E[4m, tbc=\E[3g, smacs=^N, rmacs=^O, flash=\Eg, + civis=\E[?25l, cnorm=\E[34h\E[?25h, cvvis=\E[34l, + op=\E[39;49m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, + acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++\054\054hhII00, +screen-bce|VT 100/ANSI X3.64 virtual terminal with bce, + am, bce, km, mir, msgr, xenl, + cols#80, it#8, lines#24, colors#8, pairs#64, + bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, + clear=\E[H\E[J, cr=\r, csr=\E[%i%p1%d;%p2%dr, + cub=\E[%p1%dD, cub1=\b, cud=\E[%p1%dB, cud1=\n, + cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, + cuu=\E[%p1%dA, cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P, + dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, + enacs=\E(B\E)0, home=\E[H, + ht=\t, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, + ind=\n, is2=\E)0, kcub1=\EOD, kcud1=\EOB, + kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kf1=\EOP, + kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, + kf3=\EOR, kf4=\EOS, kf5=\E[15~, kf6=\E[17~, + kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kend=\E[4~, + kich1=\E[2~, knp=\E[6~, kpp=\E[5~, nel=\EE, + rc=\E8, rev=\E[7m, ri=\EM, rmcup=\E[?1049l, rmir=\E[4l, + rmkx=\E[?1l\E>, rmso=\E[23m, rmul=\E[24m, rs2=\Ec, sc=\E7, + sgr0=\E[m, smcup=\E[?1049h, smir=\E[4h, smkx=\E[?1h\E=, + smso=\E[3m, smul=\E[4m, tbc=\E[3g, smacs=^N, rmacs=^O, flash=\Eg, + civis=\E[?25l, cnorm=\E[34h\E[?25h, cvvis=\E[34l, + op=\E[39;49m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, + acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++\054\054hhII00, +screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line, + am, bce, hs, km, mir, msgr, xenl, + cols#80, it#8, lines#24, colors#8, pairs#64, + bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, + clear=\E[H\E[J, cr=\r, csr=\E[%i%p1%d;%p2%dr, + cub=\E[%p1%dD, cub1=\b, cud=\E[%p1%dB, cud1=\n, + cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, + cuu=\E[%p1%dA, cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P, + dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, + enacs=\E(B\E)0, home=\E[H, + ht=\t, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, + ind=\n, is2=\E)0, kcub1=\EOD, kcud1=\EOB, + kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kf1=\EOP, + kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, + kf3=\EOR, kf4=\EOS, kf5=\E[15~, kf6=\E[17~, + kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kend=\E[4~, + kich1=\E[2~, knp=\E[6~, kpp=\E[5~, nel=\EE, + rc=\E8, rev=\E[7m, ri=\EM, rmcup=\E[?1049l, rmir=\E[4l, + rmkx=\E[?1l\E>, rmso=\E[23m, rmul=\E[24m, rs2=\Ec, sc=\E7, + sgr0=\E[m, smcup=\E[?1049h, smir=\E[4h, smkx=\E[?1h\E=, + smso=\E[3m, smul=\E[4m, tbc=\E[3g, smacs=^N, rmacs=^O, flash=\Eg, + tsl=\E_, fsl=\E\\, dsl=\E_\E\\, + civis=\E[?25l, cnorm=\E[34h\E[?25h, cvvis=\E[34l, + op=\E[39;49m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, + acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++\054\054hhII00, +screen-256color|VT 100/ANSI X3.64 virtual terminal, + ccc, + colors#256, pairs#32767, + initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\, + setab=\E[48;5;%p1%dm, setaf=\E[38;5;%p1%dm, + setb=\E[48;5;%p1%dm, setf=\E[38;5;%p1%dm, + use=screen, diff --git a/terminfo/test.txt b/terminfo/test.txt new file mode 100644 index 0000000..2da65e5 --- /dev/null +++ b/terminfo/test.txt @@ -0,0 +1,603 @@ + + <(A)0[?4h[?5l + + + + + + + + + + lqqqqqqqqqwwwqqqqqqqqqk sssssssssssssssssssssssssssss + xMerry Chrxxxmas * Merx \ / + xry Christxxx * Merry x pr rp + xChristmasxxxMerry Chrx oqrs srqo + xistmas * xxxry Christx ooppqqwqwqqppoo + tqqqqqqqqqjxmqqqqqqqqqu x x + tqqqqqqqqqq`qqqqqqqqqqu x x + tqqqqqqqqqkxlqqqqqqqqqu x x + xry Christxxx * Merry x x x + xChristmasxxxMerry Chrx x x + xistmas * xxxry Christx x x + xmas * MerxxxChristmasx srqqj mqqrs + mqqqqqqqqqvvvqqqqqqqqqj  rqpo opqr  +lmxx +lqmqx x +lqwmqvx xx x +lqwqmqvqx x x x +lqwqmqvqx x x x +lqwqmqvqx x x x +lqwqmqvqx x x x +lqwqmqvqx x x x +lqwqmqvqx x x x +lqwqmqvqx x x x +// +// +//  / / +//  / /// +//  //// +//  //// // +/  //// / / + // / // +// / // / +//s/ //  +sssssssssss +/ / //  // / +ss + / //  //  // +rrrrrrrrrrr +/ /s //  // +qqqqqqqqq +//  //  // +srqqqqqqqqqrs +  //  /// +srrs +//  //// // +rrqqqqrr +/  //// / / +ppppppp + // / // +rrqqrr +// / // / +rqppppqr +//s/ //  + +rqpppooooooopppqr +/ / //  // / +qppoooooooooooppq + / //  //  // + + + +sssssssooo ooo. o f + +/ /s //  //.f + +ssss .f + +//  //  // f + +ssssrrrrqqqqqrrrrsssss s + +  //  ///. . . + +sssrrrrqqqqqqqqqrrrrsssf f . f + +//  //// / f . + +rrrqqqqpppppppppqqqqrss. . o f + +/  //// / /f .f + +qqqppppooooooooopppqrss .f . + +s// / // f f + +sssssssssqppoooo oopqrss.o . + +// / // /f f. . + +ssrrrrrrrrrsqpooo opqrssf f f . f + +//s/ // f o o f . + +ssssssrrrrssssss   f o o .. . o f + +s/ //  /  . o o ff .f + +srrrrrrqqqqqqqqqqqqqqrrssrqf o o .  .f . + +/ //  / mqvqqqqqq lqwqqqqqq x x x x . o f + +rqqqqqqppppppppppppppq mqvqqqqq lqwqqqqq x x x xf .o . o + +/s /  mqvqqqq lqwqqqq x x x x f f [14;51 + +qppppppoooooooooooooo mqvqqq lqwqqq x x x xf  .f f . f + +s /  mqvqq lqwqq x x x x. o f o o f f + +poooooo  mqvq lqwq x x x x o o of o o . + +rrrrrrrrrrrrrrrrrrrrrrrrrrrrr   mqv lqw x x x xo + mq lq x  x  . o o of o o .  .f . + m l x x. o o f o . . . o ff f +    f o o f . ff .o . o +#3 Cheers! +#4 Cheers!  + + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + + . o o . o f  f f . . . +#5 +#5 +f . o . f o ff  .f f . f + f f f . o f o o f f . + /ooooooooooooooo\ + o o of o o .. . o f + / sss sss \ +o o o . o o ff .f + x (sOs) (sOs) x + . o o of o o .  .f . + x ` x +. o o f o . . . o ff f + \ \sssssssss/ / +f o o f . ff .o . o + \ / + . o o . o f  f f . . . + \sssssssssss/ +f . o . f o ff  .f f . f + ooppqqrrsss + f f f . o f o o f f . + ooppqqrrsss + o o of o o .. . o f + ooppqqrrsss +o o o . o o ff .f + ooppqqrrsss + . o o of o o .  .f . + ooppqqrrsss +. o o f o . . . o ff f + ooppqqrrsss +f o o f . ff .o . o + ooppqqrrsss . o o . o f  f f . . . +M x ` x +f . o . f o ff  .f f . f +M x (sOs) (sOs) x + f f f . o f o o f f . +M / sss sss \ + o o of o o .. . o f +M /ooooooooooooooo\ +o o o . o o ff .f +M + . o o of o o .  .f . +M +. o o f o . . . o ff f +M +f o o f . ff .o . o +M + . o o . o f  f f . . . + \ / +f . o . f o ff  .f f . f + \sssssssssss/ + f f f . o f o o f f . + ooppqqrrsss + o o of o o .. . o f + ooppqqrrsss +o o o . o o ff .f + ooppqqrrsss + . o o of o o .  .f . + ooppqqrrsss +. o o f o . . . o ff f + ooppqqrrsssf o o f . ff .o . o +M / sss sss \ + . o o . o f  f f . . . +M /ooooooooooooooo\ +f . o . f o ff  .f f . f +M + f f f . o f o o f f . +M + o o of o o .. . o f + ooppqqrrsss +o o o . o o ff .f + ooppqqrrsss + . o o of o o .  .f . + ooppqqrrsss +. o o f o . . . o ff f + ooppqqrrsssf o o f . ff .o . o +M /ooooooooooooooo\ + . o o . o f  f f . . . +M +f . o . f o ff  .f f . f +M + f f f . o f o o f f . +M + o o of o o .. . o f + \sssssssssss/ +o o o . o o ff .f + ooppqqrrsss + . o o of o o .  .f . + ooppqqrrsss +. o o f o . . . o ff f +f o o f . ff .o . o + +Jin + . o o . o f  f f . . . +gle +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f +Bells, + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f +Jin + . o o of o o .  .f . +gle +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f +Bells, + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f +Jin + f f f . o f o o f f . +gle + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +all +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . +the + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +way, +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +Oh! +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . +What + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +fun +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . +it + o o of o o .. . o f +is +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o +to + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +ride, +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +On +o o o . o o ff .f +a + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +one- +f . o . f o ff  .f f . f +horse + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f +op + f f f . o f o o f f . +en + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . +sleigh. + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff f + + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff f + + o o of o o  +. o o o   +f o o    + +o o o . o o ff f + + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff f + + o o of o o  +. o o o   +f o o    + + +Merry Christmas + +- + +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff f + + o o of o o  +. o o o   +f o o    + +o o o . o o ff f + + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff .f + . o o of o o .  .f . +. o o f o . . . o ff f +f o o f . ff .o . o + . o o . o f  f f . . . +f . o . f o ff  .f f . f + f f f . o f o o f f . + o o of o o .. . o f +o o o . o o ff f + + o o of o o  +. o o o   +f o o    + +[?4l + diff --git a/terminfo/tetris.c b/terminfo/tetris.c new file mode 100644 index 0000000..e230373 --- /dev/null +++ b/terminfo/tetris.c @@ -0,0 +1,20 @@ +long h[4];t(){h[3]-=h[3]/3000;setitimer(0,h,0);}c,d,l,v[]={(int)t,0,2},w,s,I,K +=0,i=276,j,k,q[276],Q[276],*n=q,*m,x=17,f[]={7,-13,-12,1,8,-11,-12,-1,9,-1,1, +12,3,-13,-12,-1,12,-1,11,1,15,-1,13,1,18,-1,1,2,0,-12,-1,11,1,-12,1,13,10,-12, +1,12,11,-12,-1,1,2,-12,-1,12,13,-12,12,13,14,-11,-1,1,4,-13,-12,12,16,-11,-12, +12,17,-13,1,-1,5,-12,12,11,6,-12,12,24};u(){for(i=11;++i<264;)if((k=q[i])-Q[i] +){Q[i]=k;if(i-++I||i%12<1)printf("\033[%d;%dH",(I=i)/12,i%12*2+28);printf( +"\033[%dm "+(K-k?0:5),k);K=k;}Q[263]=c=getchar();}G(b){for(i=4;i--;)if(q[i?b+ +n[i]:b])return 0;return 1;}g(b){for(i=4;i--;q[i?x+n[i]:x]=b);}main(C,V,a)char* +*V,*a;{h[3]=1000000/(l=C>1?atoi(V[1]):2);for(a=C>2?V[2]:"jkl pq";i;i--)*n++=i< +25||i%12<2?7:0;srand(getpid());system("stty cbreak -echo stop u");sigvec(14,v, +0);t();puts("\033[H\033[J");for(n=f+rand()%7*4;;g(7),u(),g(0)){if(c<0){if(G(x+ +12))x+=12;else{g(7);++w;for(j=0;j<252;j=12*(j/12+1))for(;q[++j];)if(j%12==10){ +for(;j%12;q[j--]=0);u();for(;--j;q[j+12]=q[j]);u();}n=f+rand()%7*4;G(x=17)||(c +=a[5]);}}if(c==*a)G(--x)||++x;if(c==a[1])n=f+4**(m=n),G(x)||(n=m);if(c==a[2])G +(++x)||--x;if(c==a[3])for(;G(x+12);++w)x+=12;if(c==a[4]||c==a[5]){s=sigblock( +8192);printf("\033[H\033[J\033[0m%d\n",w);if(c==a[5])break;for(j=264;j--;Q[j]= +0);while(getchar()-a[4]);puts("\033[H\033[J\033[7m");sigsetmask(s);}}d=popen( +"stty -cbreak echo stop \023;sort -mnr -o HI - HI;cat HI","w");fprintf(d, +"%4d from level %1d by %s\n",w,l,getlogin());pclose(d);} + -- cgit v1.2.3