diff -Nru sl-3.03/debian/changelog sl-5.02/debian/changelog --- sl-3.03/debian/changelog 2018-05-03 14:19:08.000000000 +0000 +++ sl-5.02/debian/changelog 2019-02-02 11:57:15.000000000 +0000 @@ -1,31 +1,32 @@ -sl (3.03-17build3) cosmic; urgency=medium +sl (5.02-1) unstable; urgency=medium - * No-change rebuild for ncurses soname changes. + * [db4aaf1] Add watch file for mtoyoda/sl on GitHub + * [ab3971e] Update homepage to GitHub + * [2f27bd2] New upstream version 5.02 (Closes: #744161) + * [649343f] Update patch modify_Makefile + * [644471a] Update patch add_-e_option and merge with remove_SIGINT + * [25fe11b] Remove sl-h from packaging + This was a additional binary added via weird patches. + It might come back at some point, but as extra C source file. + * [515ad8f] Remove cdbs and use debhelper only + * [57fc193] Take maintainership (Closes: #897563) + * [f0fa9d3] Add Vcs info to control + * [b0ffd0e] Disable dbgsym package, its just a game + * [54542b5] rules: Add proper buildflags + * [775a4f8] control: State to conform with standards 4.3.0 - -- Matthias Klose Thu, 03 May 2018 14:19:08 +0000 - -sl (3.03-17build2) bionic; urgency=high - - * No change rebuild to pick up -fPIE compiler default - - -- Balint Reczey Tue, 03 Apr 2018 12:43:43 +0000 - -sl (3.03-17build1) xenial; urgency=medium - - * No-change rebuild for ncurses6 transition. - - -- Matthias Klose Sun, 07 Feb 2016 09:45:52 +0000 + -- Markus Frosch Sat, 02 Feb 2019 12:57:15 +0100 sl (3.03-17) unstable; urgency=low * Upgrade to policy 3.9.3 and debhelper to 9. - * Remove deprecated dpatch and upgrade to packaging format "3.0 quilt" + * Remove deprecated dpatch and upgrade to packaging format "3.0 quilt" (closes: Bug#664331). Thanks Aalto. * Hide cursor (closes: Bug#655148). Thanks Fuchs. * Revert to supporting Ctrl-Z (closes: Bug#598992). -- Hiroyuki Yamamoto Wed, 28 Mar 2012 01:10:16 +0900 - + sl (3.03-16) unstable; urgency=low * Upgrade to policy 3.8.0. diff -Nru sl-3.03/debian/control sl-5.02/debian/control --- sl-3.03/debian/control 2018-04-03 12:43:44.000000000 +0000 +++ sl-5.02/debian/control 2019-02-02 11:56:49.000000000 +0000 @@ -1,11 +1,13 @@ Source: sl Section: games Priority: optional -Maintainer: Ubuntu Developers -XSBC-Original-Maintainer: Hiroyuki Yamamoto -Build-Depends: cdbs, debhelper (>= 9), libncurses5-dev -Standards-Version: 3.9.3 -Homepage: http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/index_e.html +Maintainer: Markus Frosch +Uploaders: Hiroyuki Yamamoto +Build-Depends: debhelper (>= 9), libncurses5-dev +Standards-Version: 4.3.0 +Homepage: https://github.com/mtoyoda/sl +Vcs-Browser: https://salsa.debian.org/debian/sl +Vcs-Git: https://salsa.debian.org/debian/sl.git Package: sl Architecture: any diff -Nru sl-3.03/debian/docs sl-5.02/debian/docs --- sl-3.03/debian/docs 2012-03-27 15:55:05.000000000 +0000 +++ sl-5.02/debian/docs 2019-02-02 11:24:42.000000000 +0000 @@ -1,3 +1,2 @@ debian/README debian/README.jp -debian/README.sl-h.jp diff -Nru sl-3.03/debian/extra/man/de/sl-h.6 sl-5.02/debian/extra/man/de/sl-h.6 --- sl-3.03/debian/extra/man/de/sl-h.6 1970-01-01 00:00:00.000000000 +0000 +++ sl-5.02/debian/extra/man/de/sl-h.6 2019-01-29 12:15:08.000000000 +0000 @@ -0,0 +1,50 @@ +.TH SL-H 6 "16. Jul 2004" +\" +\" Translated into german by Helge Kreutzmann +.UC 5 +.SH NAME +sl-h \- zeigt Animationen mit dem Ziel, Benutzer, die SL auf Ihrem Bildschirm mgen, zu unterhalten +.SH "BERSICHT" +.B sl-h +[ +.B \-alFe +] +.SH BESCHREIBUNG +.B sl-h +zeigt Animationen um Benutzer zu vergngen, die SL gerne auf Ihrem +Bildschirm anschauen. Dies ist eine leicht modifizierte Version von +.BR sl (6), +luft aber viel lnger, um Ihnen viel Spa zu machen :) +.SH OPTIONEN +.TP +.B \-a +rger ist passiert! Sie werden Mitleid mit den hilfebedrftigen Leuten haben :-) +.TP +.B \-l +Zeigt ein mini SL an. +.TP +.B \-F +SL fliegt! (Kennen Sie die japanische Animation Galaxy Express 999?) +.TP +.B \-e +Erlaubt die Unterbrechung mit Strg+C (standardmig, da dieses massiv +und intervenierend ist) +.PP +.SH "SIEHE AUCH" +.BR ls (1) +.SH FEHLER +Es zeigt niemals den Inhalt des aktuellen Verzeichnisses. +.SH AUTOR +.BR sl (6) +wurde von Toyoda Masashi geschrieben. Der +Code in +.B sl-h +stammt von einem Patch der unter http://www.izumix.org.uk/sl/ +vertrieben wird und von Izumi Tomonori geschrieben +wurde. +Diese Handbuchseite +wurde von Brian Ristuccia und Kenshi Muto +fr das Debian GNU/Linux-System geschrieben aber darf auch von anderen unter der +gleichen Lizenz wie +.BR sl (6) +verwendet werden. diff -Nru sl-3.03/debian/extra/man/de.UTF-8/sl-h.6 sl-5.02/debian/extra/man/de.UTF-8/sl-h.6 --- sl-3.03/debian/extra/man/de.UTF-8/sl-h.6 1970-01-01 00:00:00.000000000 +0000 +++ sl-5.02/debian/extra/man/de.UTF-8/sl-h.6 2019-01-29 12:15:08.000000000 +0000 @@ -0,0 +1,50 @@ +.TH SL-H 6 "16. Jul 2004" +\" +\" Translated into german by Helge Kreutzmann +.UC 5 +.SH NAME +sl-h \- zeigt Animationen mit dem Ziel, Benutzer, die SL auf Ihrem Bildschirm mögen, zu unterhalten +.SH "ÜBERSICHT" +.B sl-h +[ +.B \-alFe +] +.SH BESCHREIBUNG +.B sl-h +zeigt Animationen um Benutzer zu vergnügen, die SL gerne auf Ihrem +Bildschirm anschauen. Dies ist eine leicht modifizierte Version von +.BR sl (6), +läuft aber viel länger, um Ihnen viel Spaß zu machen :) +.SH OPTIONEN +.TP +.B \-a +Ärger ist passiert! Sie werden Mitleid mit den hilfebedürftigen Leuten haben :-) +.TP +.B \-l +Zeigt ein mini SL an. +.TP +.B \-F +SL fliegt! (Kennen Sie die japanische Animation »Galaxy Express 999«?) +.TP +.B \-e +Erlaubt die Unterbrechung mit Strg+C (standardmäßig, da dieses massiv +und intervenierend ist) +.PP +.SH "SIEHE AUCH" +.BR ls (1) +.SH FEHLER +Es zeigt niemals den Inhalt des aktuellen Verzeichnisses. +.SH AUTOR +.BR sl (6) +wurde von Toyoda Masashi geschrieben. Der +Code in +.B sl-h +stammt von einem Patch der unter http://www.izumix.org.uk/sl/ +vertrieben wird und von Izumi Tomonori geschrieben +wurde. +Diese Handbuchseite +wurde von Brian Ristuccia und Kenshi Muto +für das Debian GNU/Linux-System geschrieben aber darf auch von anderen unter der +gleichen Lizenz wie +.BR sl (6) +verwendet werden. diff -Nru sl-3.03/debian/extra/man/ja/sl-h.6 sl-5.02/debian/extra/man/ja/sl-h.6 --- sl-3.03/debian/extra/man/ja/sl-h.6 1970-01-01 00:00:00.000000000 +0000 +++ sl-5.02/debian/extra/man/ja/sl-h.6 2019-01-29 12:15:08.000000000 +0000 @@ -0,0 +1,43 @@ +.TH SL-H 6 "Dec 2, 2007" +\" +\" Translated into japanese by Hiroyuki Yamamoto +.UC 5 +.SH ̾ +sl-h \- SL꡼Τʿͤ򡢤ڤޤ륢˥᡼ɽޤ +.SH +.B sl-h +[ +.B \-alFe +] +.SH +.B sl-h +SL꡼Τʿͤ򡢤ڤޤ륢˥᡼ɽޤ +.B sl +ޥɤ龯ѹƤꡢĹɽޤ +.PP +Τ褦ʥץ󤬤ޤ +.TP +.B \-a +ʤˤǥȤä褦Ǥ͡͡ˤǤ +.TP +.B \-l +ʤޤ +.TP +.B \-F +Ӥޤ("Ŵƻ999"ȤܤΥ˥᡼ΤäƤޤ) +.TP +.B \-e +Ctrl+C ǻߤ뤳Ȥޤ(ȤƤŤǤˡǥեȤȤƤ) +.PP +.SH Ϣ +.BR ls (1) +.SH Х +ȥǥ쥯ȥƤϤäɽޤ +.SH +.BR sl (6) +˭ ˤ񤫤ޤ +.B sl-h +Υɤҵˤ񤫤졢http://www.izumix.org.uk/sl/ 󶡤줿ѥåȤäƤޤ +Υޥ˥奢Brian Ristuccia ƣˤꡢDebian GNU/LinuxƥΤ˽񤫤줿Τǡ +.BR sl (6) +Υ饤󥹤˽ޤ diff -Nru sl-3.03/debian/extra/man/ja.UTF-8/sl-h.6 sl-5.02/debian/extra/man/ja.UTF-8/sl-h.6 --- sl-3.03/debian/extra/man/ja.UTF-8/sl-h.6 1970-01-01 00:00:00.000000000 +0000 +++ sl-5.02/debian/extra/man/ja.UTF-8/sl-h.6 2019-01-29 12:15:08.000000000 +0000 @@ -0,0 +1,43 @@ +.TH SL-H 6 "Dec 2, 2007" +\" +\" Translated into japanese by Hiroyuki Yamamoto +.UC 5 +.SH 名称 +sl-h \- SLがスクリーンを走るのが好きな人たちを、より楽ませるアニメーションを表示します。 +.SH 形式 +.B sl-h +[ +.B \-alFe +] +.SH 解説 +.B sl-h +SLがスクリーンを走るのが好きな人たちを、より楽ませるアニメーションを表示します。 +.B sl +コマンドから少し変更しており、大変長く表示されます。 +.PP +次のようなオプションがあります。 +.TP +.B \-a +なにかアクシデントがあったようですね。助けを求める人々が悲痛です。 +.TP +.B \-l +小さくなります。 +.TP +.B \-F +飛びます。("銀河鉄道999"という日本のアニメーションを知ってますか?) +.TP +.B \-e +Ctrl+C で途中で止めることを許します。(とても重くて猛烈である時に、デフォルトとしてください) +.PP +.SH 関連事項 +.BR ls (1) +.SH バグ +カレントディレクトリの内容はけっして表示されません。 +.SH 著者 +.BR sl (6) +は豊田 正史により書かれました。 +.B sl-h +のコードは泉 智紀により書かれ、http://www.izumix.org.uk/sl/ より提供されたパッチを使っています。 +このマニュアルはBrian Ristuccia および武藤 健志により、Debian GNU/Linuxシステムのために書かれたもので、 +.BR sl (6) +のライセンスに従います。 diff -Nru sl-3.03/debian/extra/man/man6/sl-h.6 sl-5.02/debian/extra/man/man6/sl-h.6 --- sl-3.03/debian/extra/man/man6/sl-h.6 1970-01-01 00:00:00.000000000 +0000 +++ sl-5.02/debian/extra/man/man6/sl-h.6 2019-01-29 12:15:08.000000000 +0000 @@ -0,0 +1,47 @@ +.TH SL-H 6 "Apr 3, 2001" +.UC 5 +.SH NAME +sl-h \- display animations aimed to entertain users who liked to see SL runs +on their screen. +.SH SYNOPSIS +.B sl-h +[ +.B \-alFe +] +.SH DESCRIPTION +.B sl-h +displays animations aimed to entertain users who like to see SL runs +on their screen. This is a slightly modified version of +.B sl +command, but it runs much long to please you very well :) +.SH OPTIONS +.TP +.B \-a +Some trouble happen! You'll feel pity for people who need help :-) +.TP +.B \-l +Display mini SL. +.TP +.B \-F +SL flys! (Do you know Japanese animation, "Galaxy Express 999" ?) +.TP +.B \-e +Allow interrupt by Ctrl+C (Default, as this is so heavy and violent). +.PP +.SH "SEE ALSO" +.BR ls (1) +.SH BUGS +It never shows contents of current directory. +.SH AUTHOR +.BR sl (6) +was written by Toyoda Masashi . +The code in +.B sl-h +is taken from a patch which is distributed from +http://www.izumix.org.uk/sl/ and written by Izumi Tomonori +. +This manual page was written by Brian Ristuccia +and Kenshi Muto for the Debian GNU/Linux system +but may be used by others under the same license as +.BR sl (6) +itself. diff -Nru sl-3.03/debian/extra/patches/apply_sl-h.patch sl-5.02/debian/extra/patches/apply_sl-h.patch --- sl-3.03/debian/extra/patches/apply_sl-h.patch 1970-01-01 00:00:00.000000000 +0000 +++ sl-5.02/debian/extra/patches/apply_sl-h.patch 2019-01-29 12:15:08.000000000 +0000 @@ -0,0 +1,1110 @@ +Apply sl-h. +Index: sl-3.03/Makefile +=================================================================== +--- sl-3.03.orig/Makefile 2012-03-28 00:44:16.000000000 +0900 ++++ sl-3.03/Makefile 2012-03-28 00:50:23.000000000 +0900 +@@ -7,12 +7,15 @@ + # 2008/12/27 + #========================================== + +-all: sl ++all: sl sl-h + + sl: sl.c sl.h + $(CC) $(CFLAGS) -o sl sl.c $(LDFLAGS) + ++sl-h: sl-h.c sl-h.h header.h ++ $(CC) $(CFLAGS) -o sl-h sl-h.c $(LDFLAGS) ++ + clean:: +- rm -f sl ++ rm -f sl sl-h + + distclean:: clean +Index: sl-sid/sl-3.03/header.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ sl-3.03/header.h 2012-03-28 00:50:23.000000000 +0900 +@@ -0,0 +1,15 @@ ++/* * ++ * * ++ * */ ++ ++extern int add_D51_coach(); ++extern int add_D51_coach_r(); ++extern int add_sl(); ++extern int add_man(); ++extern int add_smoke(); ++extern int add_smoke_r(); ++extern int add_cross(); ++extern int begin_gate(); ++extern int end_gate(); ++extern int x_gate(); ++extern void end_proc(); +Index: sl-sid/sl-3.03/sl-h.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ sl-3.03/sl-h.c 2012-03-28 00:50:23.000000000 +0900 +@@ -0,0 +1,750 @@ ++/*======================================== ++ * sl.c: ++ * Copyright 1993,1998 Toyoda Masashi ++ * (toyoda@is.titech.ac.jp) ++ * Last Modified: 1998/ 7/22 ++ *======================================== ++ */ ++/* sl version 3.03 : add usleep(20000) */ ++/* by Toyoda Masashi 1998/ 7/22 */ ++/* sl version 3.02 : D51 flies! Change options. */ ++/* by Toyoda Masashi 1993/ 1/19 */ ++/* sl version 3.01 : Wheel turns smoother */ ++/* by Toyoda Masashi 1992/12/25 */ ++/* sl version 3.00 : Add d(D51) option */ ++/* by Toyoda Masashi 1992/12/24 */ ++/* sl version 2.02 : Bug fixed.(dust remains in screen) */ ++/* by Toyoda Masashi 1992/12/17 */ ++/* sl version 2.01 : Smoke run and disappear. */ ++/* Change '-a' to accident option. */ ++/* by Toyoda Masashi 1992/12/16 */ ++/* sl version 2.00 : Add a(all),l(long),F(Fly!) options. */ ++/* by Toyoda Masashi 1992/12/15 */ ++/* sl version 1.02 : Add turning wheel. */ ++/* by Toyoda Masashi 1992/12/14 */ ++/* sl version 1.01 : Add more complex smoke. */ ++/* by Toyoda Masashi 1992/12/14 */ ++/* sl version 1.00 : SL runs vomitting out smoke. */ ++/* by Toyoda Masashi 1992/12/11 */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "sl-h.h" ++#include "header.h" ++ ++#define RTOL 0 ++#define LTOR 1 ++ ++#ifndef useconds_t ++ #define USLEEP_ARG0_TYPE unsigned ++#else ++ #define USLEEP_ARG0_TYPE useconds_t ++#endif ++ ++int ACCIDENT = 0; ++int LOGO = 0; ++int FLY = 0; ++int INTR = 1; ++int PASSNUM = 5; ++int ALL_LENGTH = 0; ++int DIREC = RTOL; ++int WAIT_TIME = 20000; ++ ++int my_mvaddstr(int y, int x, char *str) ++{ ++ int i = 0; ++ ++ for ( ; x < 0; ++x, ++i) ++ if (str[i] == '\0') return ERR; ++ if (mvaddnstr(y, x, &str[i], (int)COLS - x) == ERR) return ERR; ++ return OK; ++} ++ ++int my_mvaddstr_r(int y, int x, char *str) ++{ ++ int i = 0; ++ char c; ++ ++ for ( ; x >= COLS; --x, ++i) ++ if (str[i] == '\0') return ERR; ++ for ( ; str[i] != '\0'; ++i, --x) { ++ c = str[i]; ++ switch (c) { ++ case '\\': c = '/'; break; ++ case '/': c = '\\'; break; ++ case '(': c = ')'; break; ++ case ')': c = '('; break; ++ case '[': c = ']'; break; ++ case ']': c = '['; break; ++ } ++ if (mvaddch(y, x, str[i]) == ERR) return ERR; ++ } ++ return OK; ++} ++ ++void option(char *str) ++{ ++ extern int ACCIDENT, FLY; ++ ++ while (*str != '\0') { ++ switch (*str++) { ++ case 'a': ACCIDENT = 1; break; ++ case 'F': FLY = 1; break; ++ case 'l': LOGO = 1; break; ++ case 'e': INTR = 1; break; ++ default: break; ++ } ++ } ++} ++ ++int dirc(int y, int x) ++ { ++ if (DIREC == RTOL) { ++ my_mvaddstr(y + 5, cros0l[5] + x - 1, "<-- "); ++ } else { ++ my_mvaddstr(y + 5, cros0l[5] + x - 1, " -->"); ++ } ++ return 0; ++} ++ ++int main(int argc, char *argv[]) ++{ ++ int x, i, j, k, p, ONEDIREC, len; ++ int (*sl_func)(); ++ time_t t; ++ char num[10]; ++ unsigned short int s; ++ char *pp; ++ char *c[D51PATTERNS][D51HIGHT+1]; ++ ++ for (i = 1; i < argc; ++i) { ++ if (*argv[i] == '-') { ++ option(argv[i] + 1); ++ } ++ } ++ time(&t); ++ s = (unsigned short int)t; ++ seed48(&s); ++#ifdef DEBUG ++ PASSNUM = 3; ++ ONEDIREC = 1; ++ WAIT_TIME = (USLEEP_ARG0_TYPE)100; ++ signal(SIGINT, end_proc); ++#else ++ if (INTR == 0) { ++ signal(SIGINT, SIG_IGN); ++ } ++ PASSNUM = (int)(drand48() * 20.0) + 10; ++ if (drand48() > 0.5) { ++ ONEDIREC = 1; ++ } else { ++ ONEDIREC = 0; ++ } ++ WAIT_TIME = (USLEEP_ARG0_TYPE)(drand48() * 50000.0); ++#endif ++ ALL_LENGTH = (3 * D51LENGTH + (PASSLENGTH * (PASSNUM - 1)) + LPASSLENGTH); ++ ++ initscr(); ++ noecho(); ++#ifdef DEBUG ++ printf("%d,%d\n\r", COLS, LINES); ++ printf("Hit any key\n\r"); ++ fflush(stdout); ++ getc(stdin); ++#endif ++ leaveok(stdscr, TRUE); ++ scrollok(stdscr, FALSE); ++ ++ DIREC = RTOL; ++ p = 3 * COLS / 10; ++ pp = (char*)malloc((size_t)(COLS + ALL_LENGTH + 10) * (D51HIGHT + 1) * (D51PATTERNS + 1)); ++ for (i = 0; i <= (COLS + ALL_LENGTH + 1) * (D51HIGHT + 1) * D51PATTERNS; ++i) { ++ pp[i] = (char)NULL; ++ } ++ ++ for (j = 0; j < D51PATTERNS; ++j) { ++ for (i = 0; i <= D51HIGHT; ++i) { ++ c[j][i] = pp + (COLS + ALL_LENGTH + 2) * i + (COLS + ALL_LENGTH + 1) * (D51HIGHT + 1) * j; ++ for (k = 0; k < COLS; ++k) { ++ strcat(c[j][i], " "); ++ } ++ strncat(c[j][i], d51[j][i], 53); ++ strncat(c[j][i], coal[i], 29); ++ strncat(c[j][i], d51[j][i], 53); ++ strncat(c[j][i], coal[i], 29); ++ strncat(c[j][i], d51[j][i], 53); ++ strncat(c[j][i], coal[i], 29); ++ for (k = 0; k < PASSNUM - 1; ++k) { ++ strncat(c[j][i], coach[i], 88); ++ if ( i == 3 ) { ++ sprintf(num, "%d", k + 1); ++ len = strlen(num); ++ strncpy(c[j][i] + COLS + 254 + (PASSLENGTH * k), num, len); ++ } ++ } ++ strncat(c[j][i], lcoach[i], 89); ++ if ( i == 3 ) { ++ sprintf(num, "%d", k + 1); ++ len = strlen(num); ++ strncpy(c[j][i] + COLS + 254 + (PASSLENGTH * k), num, len); ++ } ++ } ++ } ++ if (FLY != 1) { ++ begin_gate(p); ++ } ++ if (LOGO == 0) { ++ sl_func = add_D51_coach; ++ } else { ++ sl_func = add_sl; ++ } ++ for (x = COLS - 1; ; --x) { ++ if ((*sl_func)(x, c) == ERR) break; ++ if (FLY != 1) { ++ if (add_cross(p) == ERR) break; ++ } ++ refresh(); ++ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); ++ } ++ if (FLY != 1 && LOGO == 0 && ONEDIREC == 1) { ++ x_gate(p); ++ for (x = 0; ; ++x) { ++ if (add_D51_coach_r(x) == ERR) break; ++ if (add_cross(p) == ERR) break; ++ refresh(); ++ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); ++ } ++ } ++ if (FLY != 1) { ++ end_gate(p); ++ } ++ mvcur(0, COLS - 1, LINES - 1, 0); ++ endwin(); ++ ++ return 0; ++} ++ ++void end_proc() { ++ mvcur(0, COLS - 1, LINES - 1, 0); ++ endwin(); ++ exit(SIGINT); ++} ++ ++ ++int add_cross(int p) ++{ ++ int i, y, n = 20, hn; ++ static int tt; ++#ifdef DEBUG ++ char buf[100]; ++#endif ++ ++ hn = n / 2; ++ if ( LOGO == 0) { ++ y = LINES / 2 - 5; ++ } else { ++ y = LINES / 2 - 7; ++ } ++ for (i = 2; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); ++ } ++ for (i = 8; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, p + 5, cros3[i]); ++ } ++#ifdef DEBUG ++ sprintf(buf, "%d", tt); ++ my_mvaddstr(0, 0, buf); ++#endif ++ ++ if ( tt % n >= 0 && tt % n < hn) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); ++ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); ++ } else if ( tt % n >= hn && tt % n < n) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); ++ dirc(y, p); ++ } ++ ++tt; ++ ++ return 0; ++} ++ ++ ++int begin_gate(int p) ++{ ++ int i, y, n = 20, hn; ++ int tt; ++ ++ hn = n / 2; ++ if ( LOGO == 0) { ++ y = LINES / 2 - 5; ++ } else { ++ y = LINES / 2 - 7; ++ } ++ ++ for (tt = 0; tt < 80; ++tt) { ++ for (i = 0; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, p + 5, cros1[i]); ++ } ++ for (i = 2; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); ++ } ++ if ( tt % n >= 0 && tt % n < hn) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); ++ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); ++ } else if ( tt % n >= hn && tt % n < n) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); ++ dirc(y, p); ++ } ++ my_mvaddstr(LINES + 1, COLS + 1, ""); ++ refresh(); ++ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); ++ } ++ for (tt = 0; tt <= 15; ++tt) { ++ for (i = 0; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, p + 5, cros2[i]); ++ } ++ for (i = 2; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); ++ } ++ if ( tt % n >= 0 && tt % n < hn) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); ++ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); ++ } else if ( tt % n >= hn && tt % n < n) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); ++ dirc(y, p); ++ } ++ my_mvaddstr(LINES + 1, COLS + 1, ""); ++ refresh(); ++ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); ++ } ++ for (tt = 0; tt <= 20; ++tt) { ++ for (i = 0; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, p + 5, cros3[i]); ++ } ++ for (i = 2; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); ++ } ++ if ( tt % n >= 0 && tt % n < hn) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); ++ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); ++ } else if ( tt % n >= hn && tt % n < n) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); ++ dirc(y, p); ++ } ++ my_mvaddstr(LINES + 1, COLS + 1, ""); ++ refresh(); ++ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); ++ } ++ ++ return 0; ++} ++ ++int end_gate(int p) ++{ ++ int i, y, n = 20, hn; ++ int tt; ++ ++ hn = n / 2; ++ if ( LOGO == 0) { ++ y = LINES / 2 - 5; ++ } else { ++ y = LINES / 2 - 7; ++ } ++ ++ for (tt = 0; tt <= 20; ++tt) { ++ for (i = 0; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, p + 5, cros3[i]); ++ } ++ for (i = 2; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); ++ } ++ if ( tt % n >= 0 && tt % n < hn) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); ++ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); ++ } else if ( tt % n >= hn && tt % n < n) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); ++ dirc(y, p); ++ } ++ my_mvaddstr(LINES + 1, COLS + 1, ""); ++ refresh(); ++ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); ++ } ++ for (tt = 0; tt <= 15; ++tt) { ++ for (i = 0; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, p + 5, cros2[i]); ++ } ++ for (i = 2; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); ++ } ++ if ( tt % n >= 0 && tt % n < hn) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); ++ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); ++ } else if ( tt % n >= hn && tt % n < n) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); ++ dirc(y, p); ++ } ++ my_mvaddstr(LINES + 1, COLS + 1, ""); ++ refresh(); ++ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); ++ } ++ for (tt = 0; tt < 80; ++tt) { ++ for (i = 0; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, p + 5, cros1[i]); ++ } ++ for (i = 2; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); ++ } ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); ++ my_mvaddstr(LINES + 1, COLS + 1, ""); ++ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); ++ refresh(); ++ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); ++ } ++ ++ return 0; ++} ++ ++ ++int x_gate(int p) ++ { ++ int i, y, n = 20, hn; ++ int tt; ++ ++ hn = n / 2; ++ if ( LOGO == 0) { ++ y = LINES / 2 - 5; ++ } else { ++ y = LINES / 2 - 7; ++ } ++ ++ for (tt = 0; tt <= 20; ++tt) { ++ for (i = 0; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, p + 5, cros3[i]); ++ } ++ for (i = 2; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); ++ } ++ if ( tt % n >= 0 && tt % n < hn) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); ++ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); ++ } else if ( tt % n >= hn && tt % n < n) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); ++ dirc(y, p); ++ } ++ my_mvaddstr(LINES + 1, COLS + 1, ""); ++ refresh(); ++ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); ++ } ++ for (tt = 0; tt <= 10; ++tt) { ++ for (i = 0; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, p + 5, cros2[i]); ++ } ++ for (i = 2; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); ++ } ++ if ( tt % n >= 0 && tt % n < hn) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); ++ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); ++ } else if ( tt % n >= hn && tt % n < n) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); ++ dirc(y, p); ++ } ++ my_mvaddstr(LINES + 1, COLS + 1, ""); ++ refresh(); ++ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); ++ } ++ DIREC = ( DIREC + 1 ) % 2; ++ for (tt = 0; tt <= 10; ++tt) { ++ for (i = 0; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, p + 5, cros2[i]); ++ } ++ for (i = 2; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); ++ } ++ if ( tt % n >= 0 && tt % n < hn) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); ++ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); ++ } else if ( tt % n >= hn && tt % n < n) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); ++ dirc(y, p); ++ } ++ my_mvaddstr(LINES + 1, COLS + 1, ""); ++ refresh(); ++ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); ++ } ++ for (tt = 0; tt <= 20; ++tt) { ++ for (i = 0; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, p + 5, cros3[i]); ++ } ++ for (i = 2; i < D51HIGHT; ++i) { ++ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); ++ } ++ if ( tt % n >= 0 && tt % n < hn) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); ++ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); ++ } else if ( tt % n >= hn && tt % n < n) { ++ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); ++ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); ++ dirc(y, p); ++ } ++ my_mvaddstr(LINES + 1, COLS + 1, ""); ++ refresh(); ++ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); ++ } ++ ++ return 0; ++} ++ ++int add_sl(int x, char *c[]) ++{ ++ static char *sl[LOGOPATTERNS][LOGOHIGHT + 1] ++ = {{LOGO1, LOGO2, LOGO3, LOGO4, LWHL11, LWHL12, DELLN}, ++ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL21, LWHL22, DELLN}, ++ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL31, LWHL32, DELLN}, ++ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL41, LWHL42, DELLN}, ++ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL51, LWHL52, DELLN}, ++ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL61, LWHL62, DELLN}}; ++ ++ static char *car[LOGOHIGHT + 1] ++ = {LCAR1, LCAR2, LCAR3, LCAR4, LCAR5, LCAR6, DELLN}; ++ ++ int i, y, py1 = 0, py2 = 0, py3 = 0; ++ if (x < - LOGOLENGTH) return ERR; ++ y = LINES / 2 - 3; ++ ++ if (FLY == 1) { ++ y = (x / 6) + LINES - (COLS / 6) - LOGOHIGHT; ++ py1 = 2; py2 = 4; py3 = 6; ++ } ++ for (i = 0; i <= LOGOHIGHT; ++i) { ++ my_mvaddstr(y + i, x, sl[(LOGOLENGTH + x) / 3 % LOGOPATTERNS][i]); ++ my_mvaddstr(y + i + py1, x + 21, lcoal[i]); ++ my_mvaddstr(y + i + py2, x + 42, car[i]); ++ my_mvaddstr(y + i + py3, x + 63, car[i]); ++ } ++ if (ACCIDENT == 1) { ++ add_man(y + 1, x + 14); ++ add_man(y + 1 + py2, x + 45); add_man(y + 1 + py2, x + 53); ++ add_man(y + 1 + py3, x + 66); add_man(y + 1 + py3, x + 74); ++ } ++ add_smoke(y - 1, x + LOGOFUNNEL); ++ return OK; ++} ++ ++ ++int add_D51_coach(int x, char *c[]) ++{ ++ int y, i, dy = 0; ++#ifdef DEBUG ++ char buf[100]; ++#endif ++ ++ if (x < ( 4 - ALL_LENGTH )) return ERR; ++ y = LINES / 2 - 5; ++ ++#ifdef DEBUG ++ sprintf(buf, "%d", x); ++ my_mvaddstr(1, 0, buf); ++#endif ++ if (FLY == 1) { ++ y = (x / 7) + LINES - (COLS / 7) - D51HIGHT; ++ dy = 1; ++ } ++ for (i = 0; i <= D51HIGHT; ++i) { ++ my_mvaddstr(y + i, 0, c[(D51HIGHT + 1) * ((ALL_LENGTH + x) % D51PATTERNS) + i] + COLS - x); ++ } ++ if (ACCIDENT == 1) { ++ add_man(y + 2, x + 43); ++ add_man(y + 2, x + 47); ++ add_man(y + 2, x + 125); ++ add_man(y + 2, x + 129); ++ add_man(y + 2, x + 207); ++ add_man(y + 2, x + 211); ++ } ++ add_smoke(y - 1, x + D51FUNNEL); ++ add_smoke(y - 1, x + D51FUNNEL + 81); ++ add_smoke(y - 1, x + D51FUNNEL + 162); ++ return OK; ++} ++ ++ ++int add_D51_coach_r(int x) ++{ ++ int y, i, j; ++ char num[10]; ++ ++ if (x > ALL_LENGTH + COLS) return ERR; ++ y = LINES / 2 - 5; ++ ++ for (i = 0; i <= D51HIGHT; ++i) { ++ my_mvaddstr_r(y + i, x, d51_r[(ALL_LENGTH + x) % D51PATTERNS][i]); ++ my_mvaddstr_r(y + i, x - 53, coal[i]); ++ my_mvaddstr_r(y + i, x - 82, d51_r[(ALL_LENGTH + x) % D51PATTERNS][i]); ++ my_mvaddstr_r(y + i, x - 135, coal[i]); ++ my_mvaddstr_r(y + i, x - 164, d51_r[(ALL_LENGTH + x) % D51PATTERNS][i]); ++ my_mvaddstr_r(y + i, x - 217, coal[i]); ++ for (j = 0; j < PASSNUM - 1; ++j) { ++ my_mvaddstr_r(y + i, x - 246 - (PASSLENGTH * j), coach[i]); ++ if ( i == 3 ) { ++ sprintf(num, "%d", j + 1); ++ my_mvaddstr(y + i, x - 255 - (PASSLENGTH * j), num); ++ } ++ } ++ my_mvaddstr_r(y + i, x - 246 - (PASSLENGTH * (PASSNUM - 1)), lcoach[i]); ++ if ( i == 3 ) { ++ sprintf(num, "%d", j + 1); ++ my_mvaddstr(y + i, x - 255 - (PASSLENGTH * (PASSNUM - 1)), num); ++ } ++ } ++ if (ACCIDENT == 1) { ++ add_man(y + 2, x - 45); ++ add_man(y + 2, x - 49); ++ add_man(y + 2, x - 127); ++ add_man(y + 2, x - 131); ++ add_man(y + 2, x - 209); ++ add_man(y + 2, x - 213); ++ ++ } ++ add_smoke_r(y - 1, x - D51FUNNEL - 3); ++ add_smoke_r(y - 1, x - D51FUNNEL - 84); ++ add_smoke_r(y - 1, x - D51FUNNEL - 167); ++ return OK; ++} ++ ++ ++int add_man(int y, int x) ++{ ++ static char *man[2][2] = {{"", "(O)"}, {"Help!", "\\O/"}}; ++ int i; ++ ++ if ( x < 0 ) { ++ return 0; ++ } ++ for (i = 0; i < 2; ++i) { ++ my_mvaddstr(y + i, x, man[(LOGOLENGTH + x) / 12 % 2][i]); ++ } ++ return 0; ++} ++ ++ ++int add_smoke(int y, int x) ++#define SMOKEPTNS 16 ++{ ++ static struct smokes { ++ int y, x; ++ int ptrn, kind; ++ } S[1000]; ++ static int sum = 0; ++ static char *Smoke[2][SMOKEPTNS] ++ = {{"( )", "( )", "( )", "( )", "( )", ++ "( )" , "( )" , "( )" , "()" , "()" , ++ "O" , "O" , "O" , "O" , "O" , ++ " " }, ++ {"(@@@)", "(@@@@)", "(@@@@)", "(@@@)", "(@@)", ++ "(@@)" , "(@)" , "(@)" , "@@" , "@@" , ++ "@" , "@" , "@" , "@" , "@" , ++ " " }}; ++ static char *Eraser[SMOKEPTNS] ++ = {" ", " ", " ", " ", " ", ++ " " , " " , " " , " " , " " , ++ " " , " " , " " , " " , " " , ++ " " }; ++ static int dy[SMOKEPTNS] = { 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0 }; ++ static int dx[SMOKEPTNS] = {-2, -1, 0, 1, 1, 1, 1, 1, 2, 2, ++ 2, 2, 2, 3, 3, 3 }; ++ int i; ++ ++ if (x < - COLS) { ++ return 0; ++ } ++ ++ if (x % 4 == 0) { ++ for (i = 0; i < sum; ++i) { ++ my_mvaddstr(S[i].y, S[i].x, Eraser[S[i].ptrn]); ++ S[i].y -= dy[S[i].ptrn]; ++ S[i].x += dx[S[i].ptrn]; ++ S[i].ptrn += (S[i].ptrn < SMOKEPTNS - 1) ? 1 : 0; ++ my_mvaddstr(S[i].y, S[i].x, Smoke[S[i].kind][S[i].ptrn]); ++ } ++ my_mvaddstr(y, x, Smoke[sum % 2][0]); ++ S[sum].y = y; S[sum].x = x; ++ S[sum].ptrn = 0; S[sum].kind = sum % 2; ++ sum ++; ++ } ++ return 0; ++} ++ ++ ++int add_smoke_r(int y, int x) ++#define SMOKEPTNS 16 ++{ ++ static struct smokes { ++ int y, x; ++ int ptrn, kind; ++ } S[1000]; ++ static int sum = 0; ++ static char *Smoke[2][SMOKEPTNS] ++ = {{"( )", "( )", "( )", "( )", "( )", ++ "( )" , "( )" , "( )" , "()" , "()" , ++ "O" , "O" , "O" , "O" , "O" , ++ " " }, ++ {"(@@@)", "(@@@@)", "(@@@@)", "(@@@)", "(@@)", ++ "(@@)" , "(@)" , "(@)" , "@@" , "@@" , ++ "@" , "@" , "@" , "@" , "@" , ++ " " }}; ++ static char *Eraser[SMOKEPTNS] ++ = {" ", " ", " ", " ", " ", ++ " " , " " , " " , " " , " " , ++ " " , " " , " " , " " , " " , ++ " " }; ++ static int dy[SMOKEPTNS] = { 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0 }; ++ static int dx[SMOKEPTNS] = {-2, -1, 0, 1, 1, 1, 1, 1, 2, 2, ++ 2, 2, 2, 3, 3, 3 }; ++ int i; ++ ++ if (x > 2 * COLS) { ++ return 0; ++ } ++ ++ if (x % 4 == 0) { ++ for (i = 0; i < sum; ++i) { ++ my_mvaddstr_r(S[i].y, S[i].x, Eraser[S[i].ptrn]); ++ S[i].y -= dy[S[i].ptrn]; ++ S[i].x -= dx[S[i].ptrn]; ++ S[i].ptrn += (S[i].ptrn < SMOKEPTNS - 1) ? 1 : 0; ++ my_mvaddstr_r(S[i].y, S[i].x, Smoke[S[i].kind][S[i].ptrn]); ++ } ++ my_mvaddstr(y, x, Smoke[sum % 2][0]); ++ S[sum].y = y; S[sum].x = x; ++ S[sum].ptrn = 0; S[sum].kind = sum % 2; ++ sum ++; ++ } ++ return 0; ++} +Index: sl-sid/sl-3.03/sl-h.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ sl-3.03/sl-h.h 2012-03-28 00:50:23.000000000 +0900 +@@ -0,0 +1,237 @@ ++/*======================================== ++ * sl.h: Text data of SL version 3.01 ++ * Copyright 1993 Toyoda Masashi ++ * (toyoda@is.titech.ac.jp) ++ * Last Modified: 1992/12/23 ++ *======================================== ++ */ ++ ++#define D51HIGHT 10 ++#define D51FUNNEL 7 ++/*#define D51LENGTH 82*/ ++#define D51LENGTH 172 ++#define D51PATTERNS 6 ++ ++ ++#define D51STR1 " ==== ________ ___________ " ++#define D51STR2 " _D _| |_______/ \\__I_I_____===__|_________| " ++#define D51STR3 " |(_)--- | H\\________/ | | =|___ ___| " ++#define D51STR4 " / | | H | | | | ||_| |_|| " ++#define D51STR5 " | | | H |__--------------------| [___] | " ++#define D51STR6 " | ________|___H__/__|_____/[][]~\\_______| | " ++#define D51STR7 " |/ | |-----------I_____I [][] [] D |=======|__ " ++ ++#define D51WHL11 "__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__ " ++#define D51WHL12 " |/-=|___|= || || || |_____/~\\___/ " ++#define D51WHL13 " \\_/ \\O=====O=====O=====O_/ \\_/ " ++ ++#define D51WHL21 "__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__ " ++#define D51WHL22 " |/-=|___|=O=====O=====O=====O |_____/~\\___/ " ++#define D51WHL23 " \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ " ++ ++#define D51WHL31 "__/ =| o |=-O=====O=====O=====O \\ ____Y___________|__ " ++#define D51WHL32 " |/-=|___|= || || || |_____/~\\___/ " ++#define D51WHL33 " \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ " ++ ++#define D51WHL41 "__/ =| o |=-~O=====O=====O=====O\\ ____Y___________|__ " ++#define D51WHL42 " |/-=|___|= || || || |_____/~\\___/ " ++#define D51WHL43 " \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ " ++ ++#define D51WHL51 "__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__ " ++#define D51WHL52 " |/-=|___|= O=====O=====O=====O|_____/~\\___/ " ++#define D51WHL53 " \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ " ++ ++#define D51WHL61 "__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__ " ++#define D51WHL62 " |/-=|___|= || || || |_____/~\\___/ " ++#define D51WHL63 " \\_/ \\_O=====O=====O=====O/ \\_/ " ++ ++#define D51DEL " " ++ ++#define COAL01 " " ++#define COAL02 " " ++#define COAL03 " _________________ " ++#define COAL04 " _| \\_____A " ++#define COAL05 " =| | " ++#define COAL06 " -| | " ++#define COAL07 "__|________________________|_" ++#define COAL08 "|__________________________|_" ++#define COAL09 " |_D__D__D_| |_D__D__D_| " ++#define COAL10 " \\_/ \\_/ \\_/ \\_/ " ++ ++#define COALDEL " " ++ ++#define LOGOHIGHT 6 ++#define LOGOFUNNEL 4 ++#define LOGOLENGTH 84 ++#define LOGOPATTERNS 6 ++ ++#define LOGO1 " ++ +------ " ++#define LOGO2 " || |+-+ | " ++#define LOGO3 " /---------|| | | " ++#define LOGO4 " + ======== +-+ | " ++ ++#define LWHL11 " _|--O========O~\\-+ " ++#define LWHL12 "//// \\_/ \\_/ " ++ ++#define LWHL21 " _|--/O========O\\-+ " ++#define LWHL22 "//// \\_/ \\_/ " ++ ++#define LWHL31 " _|--/~O========O-+ " ++#define LWHL32 "//// \\_/ \\_/ " ++ ++#define LWHL41 " _|--/~\\------/~\\-+ " ++#define LWHL42 "//// \\_O========O " ++ ++#define LWHL51 " _|--/~\\------/~\\-+ " ++#define LWHL52 "//// \\O========O/ " ++ ++#define LWHL61 " _|--/~\\------/~\\-+ " ++#define LWHL62 "//// O========O_/ " ++ ++#define LCOAL1 "____ " ++#define LCOAL2 "| \\@@@@@@@@@@@ " ++#define LCOAL3 "| \\@@@@@@@@@@@@@_ " ++#define LCOAL4 "| | " ++#define LCOAL5 "|__________________| " ++#define LCOAL6 " (O) (O) " ++ ++#define LCAR1 "____________________ " ++#define LCAR2 "| ___ ___ ___ ___ | " ++#define LCAR3 "| |_| |_| |_| |_| | " ++#define LCAR4 "|__________________| " ++#define LCAR5 "|__________________| " ++#define LCAR6 " (O) (O) " ++ ++#define DELLN " " ++ ++#define PASSLENGTH 88 ++ ++#define PASS01 " _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ " ++#define PASS02 " _________|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|_________ " ++#define PASS03 " | ____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ ____ | " ++#define PASS04 " | | | | | | | | | | | | | | | | | | | | | | | | | | " ++#define PASS05 " | | | |___| |___| |___| |___| |___| |___| |___| |___| |___| |___| | | | " ++#define PASS06 " | | | | | | " ++#define PASS07 " | | | @@ | | | " ++#define PASS08 "__|_|__|________________________________________________________________________|__|_|__" ++#define PASS09 "\\==|_/_\\____/_\\_| |______|Z +--|_________________|------+ |_/_\\____/_\\_|==/" ++#define PASS10 " \\_/ \\_/ +++~~ \\_/ \\_/ " ++ ++#define PASSDEL " " ++ ++#define LPASSLENGTH 88 ++ ++#define LPASS01 " _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ " ++#define LPASS02 " _________|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|________ " ++#define LPASS03 " | ____ _____ _____ _____ _____ _____ _____ _____ _____ _____ ____ _____| " ++#define LPASS04 " | | | | | | | | | | | | | | | | | | | | | | | | | " ++#define LPASS05 " | | | |___| |___| |___| |___| |___| |___| |___| |___| |___| | | | | " ++#define LPASS06 " | | | | | |___| " ++#define LPASS07 " | | | @@ | | |_|_| " ++#define LPASS08 "__|_|__|_________________________________________________________________|__|___|_|_|___ " ++#define LPASS09 "\\==|_/_\\____/_\\_| |______|XX +-|_______|------+ |_/_\\____/_\\_|==/ " ++#define LPASS10 " \\_/ \\_/ \\_/ \\_/ " ++ ++#define LPASSDEL " " ++ ++#define CROS001 "" ++#define CROS002 "" ++#define CROS003 "-_||_-" ++#define CROS004 "_><_" ++#define CROS005 "- || -" ++#define CROS006 "||" ++#define CROS007 "||" ++#define CROS008 "||" ++#define CROS009 "||" ++#define CROS010 "\\&||~" ++ ++static int cros0l[] = {0, 0, 0, 1, 0, 2, 2, 2, 2, 0}; ++ ++#define CROS101 " | " ++#define CROS102 " | " ++#define CROS103 " | " ++#define CROS104 " | " ++#define CROS105 " | " ++#define CROS106 " | " ++#define CROS107 " | " ++#define CROS108 " | " ++#define CROS109 "_|_ " ++#define CROS110 "||| " ++ ++#define CROS201 " / " ++#define CROS202 " / " ++#define CROS203 " / " ++#define CROS204 " / " ++#define CROS205 " / " ++#define CROS206 " / " ++#define CROS207 " / " ++#define CROS208 " / " ++#define CROS209 "__/ " ++#define CROS210 "|/| " ++ ++#define CROS301 " " ++#define CROS302 " " ++#define CROS303 " " ++#define CROS304 " " ++#define CROS305 " " ++#define CROS306 " " ++#define CROS307 " " ++#define CROS308 " " ++#define CROS309 "___" ++#define CROS310 "|-+-----------------" ++ ++/*#define PASSNUM 5*/ ++/*#define ALL_LENGTH (D51LENGTH + (PASSLENGTH * (PASSNUM - 1)) + LPASSLENGTH)*/ ++ ++static char *cros0[D51HIGHT] ++= {CROS001, CROS002, CROS003, CROS004, CROS005, ++ CROS006, CROS007, CROS008, CROS009, CROS010}; ++static char *cros1[D51HIGHT] ++= {CROS101, CROS102, CROS103, CROS104, CROS105, ++ CROS106, CROS107, CROS108, CROS109, CROS110}; ++static char *cros2[D51HIGHT] ++= {CROS201, CROS202, CROS203, CROS204, CROS205, ++ CROS206, CROS207, CROS208, CROS209, CROS210}; ++static char *cros3[D51HIGHT] ++= {CROS301, CROS302, CROS303, CROS304, CROS305, ++ CROS306, CROS307, CROS308, CROS309, CROS310}; ++ ++static char *lcoal[LOGOHIGHT + 1] ++= {LCOAL1, LCOAL2, LCOAL3, LCOAL4, LCOAL5, LCOAL6, DELLN}; ++ ++static char *d51[D51PATTERNS][D51HIGHT + 1] ++= {{D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, ++ D51WHL11, D51WHL12, D51WHL13, D51DEL}, ++ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, ++ D51WHL21, D51WHL22, D51WHL23, D51DEL}, ++ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, ++ D51WHL31, D51WHL32, D51WHL33, D51DEL}, ++ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, ++ D51WHL41, D51WHL42, D51WHL43, D51DEL}, ++ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, ++ D51WHL51, D51WHL52, D51WHL53, D51DEL}, ++ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, ++ D51WHL61, D51WHL62, D51WHL63, D51DEL}}; ++static char *coal[D51HIGHT + 1] ++= {COAL01, COAL02, COAL03, COAL04, COAL05, ++ COAL06, COAL07, COAL08, COAL09, COAL10, COALDEL}; ++static char *coach[D51HIGHT + 1] ++= {PASS01, PASS02, PASS03, PASS04, PASS05, ++ PASS06, PASS07, PASS08, PASS09, PASS10, PASSDEL}; ++static char *lcoach[D51HIGHT + 1] ++= {LPASS01, LPASS02, LPASS03, LPASS04, LPASS05, ++ LPASS06, LPASS07, LPASS08, LPASS09, LPASS10, LPASSDEL}; ++ ++static char *d51_r[D51PATTERNS][D51HIGHT + 1] ++= {{D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, ++ D51WHL11, D51WHL12, D51WHL13, D51DEL}, ++ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, ++ D51WHL61, D51WHL62, D51WHL63, D51DEL}, ++ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, ++ D51WHL51, D51WHL52, D51WHL53, D51DEL}, ++ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, ++ D51WHL41, D51WHL42, D51WHL43, D51DEL}, ++ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, ++ D51WHL31, D51WHL32, D51WHL33, D51DEL}, ++ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, ++ D51WHL21, D51WHL22, D51WHL23, D51DEL}}; +Index: sl-sid/sl-3.03/sl.c +=================================================================== +--- sl-3.03.orig/sl.c 2012-03-28 00:49:35.000000000 +0900 ++++ sl-3.03/sl.c 2012-03-28 00:50:23.000000000 +0900 +@@ -48,7 +48,7 @@ + + void option(char *str) + { +- extern int ACCIDENT, FLY, LONG; ++ extern int ACCIDENT, FLY; + + while (*str != '\0') { + switch (*str++) { +@@ -61,7 +61,7 @@ + } + } + +-void main(int argc, char *argv[]) ++int main(int argc, char *argv[]) + { + int x, i; + +@@ -89,6 +89,8 @@ + } + mvcur(0, COLS - 1, LINES - 1, 0); + endwin(); ++ ++ return 0; + } + + +@@ -133,7 +135,7 @@ + } + + +-add_D51(int x) ++int add_D51(int x) + { + static char *d51[D51PATTERNS][D51HIGHT + 1] + = {{D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, +@@ -182,6 +184,8 @@ + for (i = 0; i < 2; ++i) { + my_mvaddstr(y + i, x, man[(LOGOLENGTH + x) / 12 % 2][i]); + } ++ ++ return 0; + } + + +@@ -226,4 +230,6 @@ + S[sum].ptrn = 0; S[sum].kind = sum % 2; + sum ++; + } ++ ++ return 0; + } +Index: sl-sid/sl-3.03/sl.h +=================================================================== +--- sl-3.03.orig/sl.h 2012-03-28 00:44:16.000000000 +0900 ++++ sl-3.03/sl.h 2012-03-28 00:50:23.000000000 +0900 +@@ -102,3 +102,9 @@ + #define LCAR6 " (O) (O) " + + #define DELLN " " ++ ++extern int add_D51(); ++extern int add_sl(); ++extern int add_man(); ++extern int add_smoke(); ++ diff -Nru sl-3.03/debian/extra/patches/series sl-5.02/debian/extra/patches/series --- sl-3.03/debian/extra/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ sl-5.02/debian/extra/patches/series 2019-02-02 11:25:51.000000000 +0000 @@ -0,0 +1,3 @@ +# sl-h +#apply_sl-h.patch +#set_curs.patch diff -Nru sl-3.03/debian/extra/patches/set_curs.patch sl-5.02/debian/extra/patches/set_curs.patch --- sl-3.03/debian/extra/patches/set_curs.patch 1970-01-01 00:00:00.000000000 +0000 +++ sl-5.02/debian/extra/patches/set_curs.patch 2019-01-29 12:15:08.000000000 +0000 @@ -0,0 +1,41 @@ +Hide cursor. +Index: sl-sid/sl-3.03/sl-h.c +=================================================================== +--- sl-3.03.orig/sl-h.c 2012-03-28 00:50:23.000000000 +0900 ++++ sl-3.03/sl-h.c 2012-03-28 00:51:05.000000000 +0900 +@@ -159,6 +159,7 @@ + #endif + leaveok(stdscr, TRUE); + scrollok(stdscr, FALSE); ++ (void)curs_set(0); + + DIREC = RTOL; + p = 3 * COLS / 10; +@@ -224,6 +225,7 @@ + end_gate(p); + } + mvcur(0, COLS - 1, LINES - 1, 0); ++ (void)curs_set(0); + endwin(); + + return 0; +Index: sl-sid/sl-3.03/sl.c +=================================================================== +--- sl-3.03.orig/sl.c 2012-03-28 00:50:23.000000000 +0900 ++++ sl-3.03/sl.c 2012-03-28 00:51:05.000000000 +0900 +@@ -77,6 +77,7 @@ + noecho(); + leaveok(stdscr, TRUE); + scrollok(stdscr, FALSE); ++ (void)curs_set(0); + + for (x = COLS - 1; ; --x) { + if (LOGO == 0) { +@@ -88,6 +89,7 @@ + usleep(20000); + } + mvcur(0, COLS - 1, LINES - 1, 0); ++ (void)curs_set(1); + endwin(); + + return 0; diff -Nru sl-3.03/debian/extra/README.sl-h.jp sl-5.02/debian/extra/README.sl-h.jp --- sl-3.03/debian/extra/README.sl-h.jp 1970-01-01 00:00:00.000000000 +0000 +++ sl-5.02/debian/extra/README.sl-h.jp 2019-01-29 12:15:08.000000000 +0000 @@ -0,0 +1,72 @@ + +sl5-1.patch $B$K$D$$$F(B + + 2000 $BG/(B 6 $B7n(B 24 $BF|(B + $BEl5~ETN)2J3X5;=QBg3X(B $B@t(B $BCR5*(B + + +$B!&$O$8$a$K(B + +$B$3$N%Q%C%A$OElBg$NK-ED$5$s:n(B sl $B$K?75!G=$rDI2C$9$k$?$a$N%Q%C%A$G$9(B. +$B?75!G=$O(B, + +(1) $BF'@Z$NDI2C(B +(2) $B5Rl9g$O(B, $Be$,$j$+$1$F$+$i:F$S9_$j$k5!G=(B +(8) D51 $B;0=EO"(B ($BK\Ev$O2_J*NseED$5(B +$B$s$H=);3$5$s$K$h$k2~B$$G$9(B. $B>eED$5$s(B, $B=);3$5$s$"$j$,$H$&$4$6$$$^$9(B. +$B$^$?(B, $BIA2h$N8zN($r>e$2$k$?$a$K(B 5-1 $B$G$OL\$K8+$($J$$JQ99E@$,B??t$"$j$^(B +$B$9(B. + + +$B!&(Bbug fixes + +1. JAIST $B$NEDCf$5$s$K(B sl -aF $B$rL\$G(B core dump $B$9$k$H$$$&%P%0$rH/8+(B. 5-1 $B$G$O(B fix $B$7$^$7(B +$B$?(B. + + +$B!&F0:n4D6-(B + +$BF0:n3NG'$O0J2<$N(B OS $B$G$7$F$"$j$^$9(B. + +sparc-sun-solaris 2.3 +sparc-sun-solaris 2.4 +sparc-sun-solaris 2.6 +ix86-unknown-linux 2.0 (Slackware 3.5) +ix86-unknown-linux 2.0 (Plamo Linux 1.4.5) + +$B$^$?(B, $B>r7oIU$-(B($BCm0UE@(B 2 $B;2>H(B)$B$G(B AIX 4.1.5 $B$G$bF0:n$9$k$H$$$&Js9p$r$$$?(B +$B$@$$$F$$$^$9(B. + + +$B!&:n$jJ}(B + +% tar zxvf sl.tgz +% cd sl +% patch -p1 < ../sl5-1.patch +% make + +$B$G%P%$%J%j(B sl $B$,$G$-$k$O$:$G$9(B. + + +$B!&Cm0UE@(B + +1. Solaris 2.3, 2.4 $B$G$O(B Makefile $B$N(B LDFLAGS $B$K!V(B-lucb -L/usr/ucblib$B!W(B +$B$r2C$($J$$$H%3%s%Q%$%k$G$-$J$$$H;W$$$^$9(B. + +2. AIX 4.1.5 $B$G$O(B sl.h $B$NCf$GJ8;zNs$NDj5A$K(B static char * $B$r;H$&$H(B +core dump $B$9$k$H$$$&Js9p$r?7Eg$5$s$K$$$?$@$-$^$7$?(B. static $B$r$O$:$9$H(B +$BF0:n$9$k$h$&$G$9(B. $B?7Eg$5$s$"$j$,$H$&$4$6$$$^$9(B. + +3. $B$3$N%Q%C%A$N2~B$$O$O$C$-$j$$$C$F$&$C$H$*$7$$$G$9(B. $B@h@8$r$*E\$j$r$+$C(B +$B$F?JO)$K1F6A$r5Z$\$9$h$&$J$3$H$,$"$C$F$b(B, $BEvJ}$G$O0l@Z4XCN$7$^$;$s(B. + diff -Nru sl-3.03/debian/man/de/sl-h.6 sl-5.02/debian/man/de/sl-h.6 --- sl-3.03/debian/man/de/sl-h.6 2012-03-27 15:55:05.000000000 +0000 +++ sl-5.02/debian/man/de/sl-h.6 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ -.TH SL-H 6 "16. Jul 2004" -\" -\" Translated into german by Helge Kreutzmann -.UC 5 -.SH NAME -sl-h \- zeigt Animationen mit dem Ziel, Benutzer, die SL auf Ihrem Bildschirm mgen, zu unterhalten -.SH "BERSICHT" -.B sl-h -[ -.B \-alFe -] -.SH BESCHREIBUNG -.B sl-h -zeigt Animationen um Benutzer zu vergngen, die SL gerne auf Ihrem -Bildschirm anschauen. Dies ist eine leicht modifizierte Version von -.BR sl (6), -luft aber viel lnger, um Ihnen viel Spa zu machen :) -.SH OPTIONEN -.TP -.B \-a -rger ist passiert! Sie werden Mitleid mit den hilfebedrftigen Leuten haben :-) -.TP -.B \-l -Zeigt ein mini SL an. -.TP -.B \-F -SL fliegt! (Kennen Sie die japanische Animation Galaxy Express 999?) -.TP -.B \-e -Erlaubt die Unterbrechung mit Strg+C (standardmig, da dieses massiv -und intervenierend ist) -.PP -.SH "SIEHE AUCH" -.BR ls (1) -.SH FEHLER -Es zeigt niemals den Inhalt des aktuellen Verzeichnisses. -.SH AUTOR -.BR sl (6) -wurde von Toyoda Masashi geschrieben. Der -Code in -.B sl-h -stammt von einem Patch der unter http://www.izumix.org.uk/sl/ -vertrieben wird und von Izumi Tomonori geschrieben -wurde. -Diese Handbuchseite -wurde von Brian Ristuccia und Kenshi Muto -fr das Debian GNU/Linux-System geschrieben aber darf auch von anderen unter der -gleichen Lizenz wie -.BR sl (6) -verwendet werden. diff -Nru sl-3.03/debian/man/de.UTF-8/sl-h.6 sl-5.02/debian/man/de.UTF-8/sl-h.6 --- sl-3.03/debian/man/de.UTF-8/sl-h.6 2012-03-27 15:55:05.000000000 +0000 +++ sl-5.02/debian/man/de.UTF-8/sl-h.6 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ -.TH SL-H 6 "16. Jul 2004" -\" -\" Translated into german by Helge Kreutzmann -.UC 5 -.SH NAME -sl-h \- zeigt Animationen mit dem Ziel, Benutzer, die SL auf Ihrem Bildschirm mögen, zu unterhalten -.SH "ÜBERSICHT" -.B sl-h -[ -.B \-alFe -] -.SH BESCHREIBUNG -.B sl-h -zeigt Animationen um Benutzer zu vergnügen, die SL gerne auf Ihrem -Bildschirm anschauen. Dies ist eine leicht modifizierte Version von -.BR sl (6), -läuft aber viel länger, um Ihnen viel Spaß zu machen :) -.SH OPTIONEN -.TP -.B \-a -Ärger ist passiert! Sie werden Mitleid mit den hilfebedürftigen Leuten haben :-) -.TP -.B \-l -Zeigt ein mini SL an. -.TP -.B \-F -SL fliegt! (Kennen Sie die japanische Animation »Galaxy Express 999«?) -.TP -.B \-e -Erlaubt die Unterbrechung mit Strg+C (standardmäßig, da dieses massiv -und intervenierend ist) -.PP -.SH "SIEHE AUCH" -.BR ls (1) -.SH FEHLER -Es zeigt niemals den Inhalt des aktuellen Verzeichnisses. -.SH AUTOR -.BR sl (6) -wurde von Toyoda Masashi geschrieben. Der -Code in -.B sl-h -stammt von einem Patch der unter http://www.izumix.org.uk/sl/ -vertrieben wird und von Izumi Tomonori geschrieben -wurde. -Diese Handbuchseite -wurde von Brian Ristuccia und Kenshi Muto -für das Debian GNU/Linux-System geschrieben aber darf auch von anderen unter der -gleichen Lizenz wie -.BR sl (6) -verwendet werden. diff -Nru sl-3.03/debian/man/ja/sl-h.6 sl-5.02/debian/man/ja/sl-h.6 --- sl-3.03/debian/man/ja/sl-h.6 2012-03-27 15:55:05.000000000 +0000 +++ sl-5.02/debian/man/ja/sl-h.6 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ -.TH SL-H 6 "Dec 2, 2007" -\" -\" Translated into japanese by Hiroyuki Yamamoto -.UC 5 -.SH ̾ -sl-h \- SL꡼Τʿͤ򡢤ڤޤ륢˥᡼ɽޤ -.SH -.B sl-h -[ -.B \-alFe -] -.SH -.B sl-h -SL꡼Τʿͤ򡢤ڤޤ륢˥᡼ɽޤ -.B sl -ޥɤ龯ѹƤꡢĹɽޤ -.PP -Τ褦ʥץ󤬤ޤ -.TP -.B \-a -ʤˤǥȤä褦Ǥ͡͡ˤǤ -.TP -.B \-l -ʤޤ -.TP -.B \-F -Ӥޤ("Ŵƻ999"ȤܤΥ˥᡼ΤäƤޤ) -.TP -.B \-e -Ctrl+C ǻߤ뤳Ȥޤ(ȤƤŤǤˡǥեȤȤƤ) -.PP -.SH Ϣ -.BR ls (1) -.SH Х -ȥǥ쥯ȥƤϤäɽޤ -.SH -.BR sl (6) -˭ ˤ񤫤ޤ -.B sl-h -Υɤҵˤ񤫤졢http://www.izumix.org.uk/sl/ 󶡤줿ѥåȤäƤޤ -Υޥ˥奢Brian Ristuccia ƣˤꡢDebian GNU/LinuxƥΤ˽񤫤줿Τǡ -.BR sl (6) -Υ饤󥹤˽ޤ diff -Nru sl-3.03/debian/man/ja.UTF-8/sl-h.6 sl-5.02/debian/man/ja.UTF-8/sl-h.6 --- sl-3.03/debian/man/ja.UTF-8/sl-h.6 2012-03-27 15:55:05.000000000 +0000 +++ sl-5.02/debian/man/ja.UTF-8/sl-h.6 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ -.TH SL-H 6 "Dec 2, 2007" -\" -\" Translated into japanese by Hiroyuki Yamamoto -.UC 5 -.SH 名称 -sl-h \- SLがスクリーンを走るのが好きな人たちを、より楽ませるアニメーションを表示します。 -.SH 形式 -.B sl-h -[ -.B \-alFe -] -.SH 解説 -.B sl-h -SLがスクリーンを走るのが好きな人たちを、より楽ませるアニメーションを表示します。 -.B sl -コマンドから少し変更しており、大変長く表示されます。 -.PP -次のようなオプションがあります。 -.TP -.B \-a -なにかアクシデントがあったようですね。助けを求める人々が悲痛です。 -.TP -.B \-l -小さくなります。 -.TP -.B \-F -飛びます。("銀河鉄道999"という日本のアニメーションを知ってますか?) -.TP -.B \-e -Ctrl+C で途中で止めることを許します。(とても重くて猛烈である時に、デフォルトとしてください) -.PP -.SH 関連事項 -.BR ls (1) -.SH バグ -カレントディレクトリの内容はけっして表示されません。 -.SH 著者 -.BR sl (6) -は豊田 正史により書かれました。 -.B sl-h -のコードは泉 智紀により書かれ、http://www.izumix.org.uk/sl/ より提供されたパッチを使っています。 -このマニュアルはBrian Ristuccia および武藤 健志により、Debian GNU/Linuxシステムのために書かれたもので、 -.BR sl (6) -のライセンスに従います。 diff -Nru sl-3.03/debian/man/man6/sl-h.6 sl-5.02/debian/man/man6/sl-h.6 --- sl-3.03/debian/man/man6/sl-h.6 2012-03-27 15:55:05.000000000 +0000 +++ sl-5.02/debian/man/man6/sl-h.6 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -.TH SL-H 6 "Apr 3, 2001" -.UC 5 -.SH NAME -sl-h \- display animations aimed to entertain users who liked to see SL runs -on their screen. -.SH SYNOPSIS -.B sl-h -[ -.B \-alFe -] -.SH DESCRIPTION -.B sl-h -displays animations aimed to entertain users who like to see SL runs -on their screen. This is a slightly modified version of -.B sl -command, but it runs much long to please you very well :) -.SH OPTIONS -.TP -.B \-a -Some trouble happen! You'll feel pity for people who need help :-) -.TP -.B \-l -Display mini SL. -.TP -.B \-F -SL flys! (Do you know Japanese animation, "Galaxy Express 999" ?) -.TP -.B \-e -Allow interrupt by Ctrl+C (Default, as this is so heavy and violent). -.PP -.SH "SEE ALSO" -.BR ls (1) -.SH BUGS -It never shows contents of current directory. -.SH AUTHOR -.BR sl (6) -was written by Toyoda Masashi . -The code in -.B sl-h -is taken from a patch which is distributed from -http://www.izumix.org.uk/sl/ and written by Izumi Tomonori -. -This manual page was written by Brian Ristuccia -and Kenshi Muto for the Debian GNU/Linux system -but may be used by others under the same license as -.BR sl (6) -itself. diff -Nru sl-3.03/debian/patches/add_-e_option.patch sl-5.02/debian/patches/add_-e_option.patch --- sl-3.03/debian/patches/add_-e_option.patch 2012-03-27 17:09:07.000000000 +0000 +++ sl-5.02/debian/patches/add_-e_option.patch 2019-01-29 12:39:52.000000000 +0000 @@ -1,31 +1,30 @@ Add -e option. -Index: sl-3.03/sl.c -=================================================================== ---- sl-3.03.orig/sl.c 2012-03-28 00:48:50.000000000 +0900 -+++ sl-3.03/sl.c 2012-03-28 00:49:35.000000000 +0900 -@@ -35,6 +35,7 @@ - int ACCIDENT = 0; +--- a/sl.c ++++ b/sl.c +@@ -53,6 +53,7 @@ int LOGO = 0; int FLY = 0; + int C51 = 0; +int INTR = 0; int my_mvaddstr(int y, int x, char *str) { -@@ -54,6 +55,7 @@ - case 'a': ACCIDENT = 1; break; - case 'F': FLY = 1; break; - case 'l': LOGO = 1; break; -+ case 'e': INTR = 1; break; - default: break; - } +@@ -73,6 +74,7 @@ + case 'F': FLY = 1; break; + case 'l': LOGO = 1; break; + case 'c': C51 = 1; break; ++ case 'e': INTR = 1; break; + default: break; + } } -@@ -69,6 +71,9 @@ - } +@@ -88,7 +90,9 @@ + } } initscr(); +- signal(SIGINT, SIG_IGN); + if (INTR == 0) { -+ signal(SIGINT, SIG_IGN); ++ signal(SIGINT, SIG_IGN); + } noecho(); - leaveok(stdscr, TRUE); - scrollok(stdscr, FALSE); + curs_set(0); + nodelay(stdscr, TRUE); diff -Nru sl-3.03/debian/patches/apply_sl-h.patch sl-5.02/debian/patches/apply_sl-h.patch --- sl-3.03/debian/patches/apply_sl-h.patch 2012-03-27 17:10:50.000000000 +0000 +++ sl-5.02/debian/patches/apply_sl-h.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,1110 +0,0 @@ -Apply sl-h. -Index: sl-3.03/Makefile -=================================================================== ---- sl-3.03.orig/Makefile 2012-03-28 00:44:16.000000000 +0900 -+++ sl-3.03/Makefile 2012-03-28 00:50:23.000000000 +0900 -@@ -7,12 +7,15 @@ - # 2008/12/27 - #========================================== - --all: sl -+all: sl sl-h - - sl: sl.c sl.h - $(CC) $(CFLAGS) -o sl sl.c $(LDFLAGS) - -+sl-h: sl-h.c sl-h.h header.h -+ $(CC) $(CFLAGS) -o sl-h sl-h.c $(LDFLAGS) -+ - clean:: -- rm -f sl -+ rm -f sl sl-h - - distclean:: clean -Index: sl-sid/sl-3.03/header.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ sl-3.03/header.h 2012-03-28 00:50:23.000000000 +0900 -@@ -0,0 +1,15 @@ -+/* * -+ * * -+ * */ -+ -+extern int add_D51_coach(); -+extern int add_D51_coach_r(); -+extern int add_sl(); -+extern int add_man(); -+extern int add_smoke(); -+extern int add_smoke_r(); -+extern int add_cross(); -+extern int begin_gate(); -+extern int end_gate(); -+extern int x_gate(); -+extern void end_proc(); -Index: sl-sid/sl-3.03/sl-h.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ sl-3.03/sl-h.c 2012-03-28 00:50:23.000000000 +0900 -@@ -0,0 +1,750 @@ -+/*======================================== -+ * sl.c: -+ * Copyright 1993,1998 Toyoda Masashi -+ * (toyoda@is.titech.ac.jp) -+ * Last Modified: 1998/ 7/22 -+ *======================================== -+ */ -+/* sl version 3.03 : add usleep(20000) */ -+/* by Toyoda Masashi 1998/ 7/22 */ -+/* sl version 3.02 : D51 flies! Change options. */ -+/* by Toyoda Masashi 1993/ 1/19 */ -+/* sl version 3.01 : Wheel turns smoother */ -+/* by Toyoda Masashi 1992/12/25 */ -+/* sl version 3.00 : Add d(D51) option */ -+/* by Toyoda Masashi 1992/12/24 */ -+/* sl version 2.02 : Bug fixed.(dust remains in screen) */ -+/* by Toyoda Masashi 1992/12/17 */ -+/* sl version 2.01 : Smoke run and disappear. */ -+/* Change '-a' to accident option. */ -+/* by Toyoda Masashi 1992/12/16 */ -+/* sl version 2.00 : Add a(all),l(long),F(Fly!) options. */ -+/* by Toyoda Masashi 1992/12/15 */ -+/* sl version 1.02 : Add turning wheel. */ -+/* by Toyoda Masashi 1992/12/14 */ -+/* sl version 1.01 : Add more complex smoke. */ -+/* by Toyoda Masashi 1992/12/14 */ -+/* sl version 1.00 : SL runs vomitting out smoke. */ -+/* by Toyoda Masashi 1992/12/11 */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include "sl-h.h" -+#include "header.h" -+ -+#define RTOL 0 -+#define LTOR 1 -+ -+#ifndef useconds_t -+ #define USLEEP_ARG0_TYPE unsigned -+#else -+ #define USLEEP_ARG0_TYPE useconds_t -+#endif -+ -+int ACCIDENT = 0; -+int LOGO = 0; -+int FLY = 0; -+int INTR = 1; -+int PASSNUM = 5; -+int ALL_LENGTH = 0; -+int DIREC = RTOL; -+int WAIT_TIME = 20000; -+ -+int my_mvaddstr(int y, int x, char *str) -+{ -+ int i = 0; -+ -+ for ( ; x < 0; ++x, ++i) -+ if (str[i] == '\0') return ERR; -+ if (mvaddnstr(y, x, &str[i], (int)COLS - x) == ERR) return ERR; -+ return OK; -+} -+ -+int my_mvaddstr_r(int y, int x, char *str) -+{ -+ int i = 0; -+ char c; -+ -+ for ( ; x >= COLS; --x, ++i) -+ if (str[i] == '\0') return ERR; -+ for ( ; str[i] != '\0'; ++i, --x) { -+ c = str[i]; -+ switch (c) { -+ case '\\': c = '/'; break; -+ case '/': c = '\\'; break; -+ case '(': c = ')'; break; -+ case ')': c = '('; break; -+ case '[': c = ']'; break; -+ case ']': c = '['; break; -+ } -+ if (mvaddch(y, x, str[i]) == ERR) return ERR; -+ } -+ return OK; -+} -+ -+void option(char *str) -+{ -+ extern int ACCIDENT, FLY; -+ -+ while (*str != '\0') { -+ switch (*str++) { -+ case 'a': ACCIDENT = 1; break; -+ case 'F': FLY = 1; break; -+ case 'l': LOGO = 1; break; -+ case 'e': INTR = 1; break; -+ default: break; -+ } -+ } -+} -+ -+int dirc(int y, int x) -+ { -+ if (DIREC == RTOL) { -+ my_mvaddstr(y + 5, cros0l[5] + x - 1, "<-- "); -+ } else { -+ my_mvaddstr(y + 5, cros0l[5] + x - 1, " -->"); -+ } -+ return 0; -+} -+ -+int main(int argc, char *argv[]) -+{ -+ int x, i, j, k, p, ONEDIREC, len; -+ int (*sl_func)(); -+ time_t t; -+ char num[10]; -+ unsigned short int s; -+ char *pp; -+ char *c[D51PATTERNS][D51HIGHT+1]; -+ -+ for (i = 1; i < argc; ++i) { -+ if (*argv[i] == '-') { -+ option(argv[i] + 1); -+ } -+ } -+ time(&t); -+ s = (unsigned short int)t; -+ seed48(&s); -+#ifdef DEBUG -+ PASSNUM = 3; -+ ONEDIREC = 1; -+ WAIT_TIME = (USLEEP_ARG0_TYPE)100; -+ signal(SIGINT, end_proc); -+#else -+ if (INTR == 0) { -+ signal(SIGINT, SIG_IGN); -+ } -+ PASSNUM = (int)(drand48() * 20.0) + 10; -+ if (drand48() > 0.5) { -+ ONEDIREC = 1; -+ } else { -+ ONEDIREC = 0; -+ } -+ WAIT_TIME = (USLEEP_ARG0_TYPE)(drand48() * 50000.0); -+#endif -+ ALL_LENGTH = (3 * D51LENGTH + (PASSLENGTH * (PASSNUM - 1)) + LPASSLENGTH); -+ -+ initscr(); -+ noecho(); -+#ifdef DEBUG -+ printf("%d,%d\n\r", COLS, LINES); -+ printf("Hit any key\n\r"); -+ fflush(stdout); -+ getc(stdin); -+#endif -+ leaveok(stdscr, TRUE); -+ scrollok(stdscr, FALSE); -+ -+ DIREC = RTOL; -+ p = 3 * COLS / 10; -+ pp = (char*)malloc((size_t)(COLS + ALL_LENGTH + 10) * (D51HIGHT + 1) * (D51PATTERNS + 1)); -+ for (i = 0; i <= (COLS + ALL_LENGTH + 1) * (D51HIGHT + 1) * D51PATTERNS; ++i) { -+ pp[i] = (char)NULL; -+ } -+ -+ for (j = 0; j < D51PATTERNS; ++j) { -+ for (i = 0; i <= D51HIGHT; ++i) { -+ c[j][i] = pp + (COLS + ALL_LENGTH + 2) * i + (COLS + ALL_LENGTH + 1) * (D51HIGHT + 1) * j; -+ for (k = 0; k < COLS; ++k) { -+ strcat(c[j][i], " "); -+ } -+ strncat(c[j][i], d51[j][i], 53); -+ strncat(c[j][i], coal[i], 29); -+ strncat(c[j][i], d51[j][i], 53); -+ strncat(c[j][i], coal[i], 29); -+ strncat(c[j][i], d51[j][i], 53); -+ strncat(c[j][i], coal[i], 29); -+ for (k = 0; k < PASSNUM - 1; ++k) { -+ strncat(c[j][i], coach[i], 88); -+ if ( i == 3 ) { -+ sprintf(num, "%d", k + 1); -+ len = strlen(num); -+ strncpy(c[j][i] + COLS + 254 + (PASSLENGTH * k), num, len); -+ } -+ } -+ strncat(c[j][i], lcoach[i], 89); -+ if ( i == 3 ) { -+ sprintf(num, "%d", k + 1); -+ len = strlen(num); -+ strncpy(c[j][i] + COLS + 254 + (PASSLENGTH * k), num, len); -+ } -+ } -+ } -+ if (FLY != 1) { -+ begin_gate(p); -+ } -+ if (LOGO == 0) { -+ sl_func = add_D51_coach; -+ } else { -+ sl_func = add_sl; -+ } -+ for (x = COLS - 1; ; --x) { -+ if ((*sl_func)(x, c) == ERR) break; -+ if (FLY != 1) { -+ if (add_cross(p) == ERR) break; -+ } -+ refresh(); -+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); -+ } -+ if (FLY != 1 && LOGO == 0 && ONEDIREC == 1) { -+ x_gate(p); -+ for (x = 0; ; ++x) { -+ if (add_D51_coach_r(x) == ERR) break; -+ if (add_cross(p) == ERR) break; -+ refresh(); -+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); -+ } -+ } -+ if (FLY != 1) { -+ end_gate(p); -+ } -+ mvcur(0, COLS - 1, LINES - 1, 0); -+ endwin(); -+ -+ return 0; -+} -+ -+void end_proc() { -+ mvcur(0, COLS - 1, LINES - 1, 0); -+ endwin(); -+ exit(SIGINT); -+} -+ -+ -+int add_cross(int p) -+{ -+ int i, y, n = 20, hn; -+ static int tt; -+#ifdef DEBUG -+ char buf[100]; -+#endif -+ -+ hn = n / 2; -+ if ( LOGO == 0) { -+ y = LINES / 2 - 5; -+ } else { -+ y = LINES / 2 - 7; -+ } -+ for (i = 2; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); -+ } -+ for (i = 8; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, p + 5, cros3[i]); -+ } -+#ifdef DEBUG -+ sprintf(buf, "%d", tt); -+ my_mvaddstr(0, 0, buf); -+#endif -+ -+ if ( tt % n >= 0 && tt % n < hn) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); -+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); -+ } else if ( tt % n >= hn && tt % n < n) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); -+ dirc(y, p); -+ } -+ ++tt; -+ -+ return 0; -+} -+ -+ -+int begin_gate(int p) -+{ -+ int i, y, n = 20, hn; -+ int tt; -+ -+ hn = n / 2; -+ if ( LOGO == 0) { -+ y = LINES / 2 - 5; -+ } else { -+ y = LINES / 2 - 7; -+ } -+ -+ for (tt = 0; tt < 80; ++tt) { -+ for (i = 0; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, p + 5, cros1[i]); -+ } -+ for (i = 2; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); -+ } -+ if ( tt % n >= 0 && tt % n < hn) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); -+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); -+ } else if ( tt % n >= hn && tt % n < n) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); -+ dirc(y, p); -+ } -+ my_mvaddstr(LINES + 1, COLS + 1, ""); -+ refresh(); -+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); -+ } -+ for (tt = 0; tt <= 15; ++tt) { -+ for (i = 0; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, p + 5, cros2[i]); -+ } -+ for (i = 2; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); -+ } -+ if ( tt % n >= 0 && tt % n < hn) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); -+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); -+ } else if ( tt % n >= hn && tt % n < n) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); -+ dirc(y, p); -+ } -+ my_mvaddstr(LINES + 1, COLS + 1, ""); -+ refresh(); -+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); -+ } -+ for (tt = 0; tt <= 20; ++tt) { -+ for (i = 0; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, p + 5, cros3[i]); -+ } -+ for (i = 2; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); -+ } -+ if ( tt % n >= 0 && tt % n < hn) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); -+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); -+ } else if ( tt % n >= hn && tt % n < n) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); -+ dirc(y, p); -+ } -+ my_mvaddstr(LINES + 1, COLS + 1, ""); -+ refresh(); -+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); -+ } -+ -+ return 0; -+} -+ -+int end_gate(int p) -+{ -+ int i, y, n = 20, hn; -+ int tt; -+ -+ hn = n / 2; -+ if ( LOGO == 0) { -+ y = LINES / 2 - 5; -+ } else { -+ y = LINES / 2 - 7; -+ } -+ -+ for (tt = 0; tt <= 20; ++tt) { -+ for (i = 0; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, p + 5, cros3[i]); -+ } -+ for (i = 2; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); -+ } -+ if ( tt % n >= 0 && tt % n < hn) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); -+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); -+ } else if ( tt % n >= hn && tt % n < n) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); -+ dirc(y, p); -+ } -+ my_mvaddstr(LINES + 1, COLS + 1, ""); -+ refresh(); -+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); -+ } -+ for (tt = 0; tt <= 15; ++tt) { -+ for (i = 0; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, p + 5, cros2[i]); -+ } -+ for (i = 2; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); -+ } -+ if ( tt % n >= 0 && tt % n < hn) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); -+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); -+ } else if ( tt % n >= hn && tt % n < n) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); -+ dirc(y, p); -+ } -+ my_mvaddstr(LINES + 1, COLS + 1, ""); -+ refresh(); -+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); -+ } -+ for (tt = 0; tt < 80; ++tt) { -+ for (i = 0; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, p + 5, cros1[i]); -+ } -+ for (i = 2; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); -+ } -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); -+ my_mvaddstr(LINES + 1, COLS + 1, ""); -+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); -+ refresh(); -+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); -+ } -+ -+ return 0; -+} -+ -+ -+int x_gate(int p) -+ { -+ int i, y, n = 20, hn; -+ int tt; -+ -+ hn = n / 2; -+ if ( LOGO == 0) { -+ y = LINES / 2 - 5; -+ } else { -+ y = LINES / 2 - 7; -+ } -+ -+ for (tt = 0; tt <= 20; ++tt) { -+ for (i = 0; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, p + 5, cros3[i]); -+ } -+ for (i = 2; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); -+ } -+ if ( tt % n >= 0 && tt % n < hn) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); -+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); -+ } else if ( tt % n >= hn && tt % n < n) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); -+ dirc(y, p); -+ } -+ my_mvaddstr(LINES + 1, COLS + 1, ""); -+ refresh(); -+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); -+ } -+ for (tt = 0; tt <= 10; ++tt) { -+ for (i = 0; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, p + 5, cros2[i]); -+ } -+ for (i = 2; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); -+ } -+ if ( tt % n >= 0 && tt % n < hn) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); -+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); -+ } else if ( tt % n >= hn && tt % n < n) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); -+ dirc(y, p); -+ } -+ my_mvaddstr(LINES + 1, COLS + 1, ""); -+ refresh(); -+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); -+ } -+ DIREC = ( DIREC + 1 ) % 2; -+ for (tt = 0; tt <= 10; ++tt) { -+ for (i = 0; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, p + 5, cros2[i]); -+ } -+ for (i = 2; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); -+ } -+ if ( tt % n >= 0 && tt % n < hn) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); -+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); -+ } else if ( tt % n >= hn && tt % n < n) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); -+ dirc(y, p); -+ } -+ my_mvaddstr(LINES + 1, COLS + 1, ""); -+ refresh(); -+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); -+ } -+ for (tt = 0; tt <= 20; ++tt) { -+ for (i = 0; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, p + 5, cros3[i]); -+ } -+ for (i = 2; i < D51HIGHT; ++i) { -+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]); -+ } -+ if ( tt % n >= 0 && tt % n < hn) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X"); -+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || "); -+ } else if ( tt % n >= hn && tt % n < n) { -+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X"); -+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O"); -+ dirc(y, p); -+ } -+ my_mvaddstr(LINES + 1, COLS + 1, ""); -+ refresh(); -+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME); -+ } -+ -+ return 0; -+} -+ -+int add_sl(int x, char *c[]) -+{ -+ static char *sl[LOGOPATTERNS][LOGOHIGHT + 1] -+ = {{LOGO1, LOGO2, LOGO3, LOGO4, LWHL11, LWHL12, DELLN}, -+ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL21, LWHL22, DELLN}, -+ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL31, LWHL32, DELLN}, -+ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL41, LWHL42, DELLN}, -+ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL51, LWHL52, DELLN}, -+ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL61, LWHL62, DELLN}}; -+ -+ static char *car[LOGOHIGHT + 1] -+ = {LCAR1, LCAR2, LCAR3, LCAR4, LCAR5, LCAR6, DELLN}; -+ -+ int i, y, py1 = 0, py2 = 0, py3 = 0; -+ if (x < - LOGOLENGTH) return ERR; -+ y = LINES / 2 - 3; -+ -+ if (FLY == 1) { -+ y = (x / 6) + LINES - (COLS / 6) - LOGOHIGHT; -+ py1 = 2; py2 = 4; py3 = 6; -+ } -+ for (i = 0; i <= LOGOHIGHT; ++i) { -+ my_mvaddstr(y + i, x, sl[(LOGOLENGTH + x) / 3 % LOGOPATTERNS][i]); -+ my_mvaddstr(y + i + py1, x + 21, lcoal[i]); -+ my_mvaddstr(y + i + py2, x + 42, car[i]); -+ my_mvaddstr(y + i + py3, x + 63, car[i]); -+ } -+ if (ACCIDENT == 1) { -+ add_man(y + 1, x + 14); -+ add_man(y + 1 + py2, x + 45); add_man(y + 1 + py2, x + 53); -+ add_man(y + 1 + py3, x + 66); add_man(y + 1 + py3, x + 74); -+ } -+ add_smoke(y - 1, x + LOGOFUNNEL); -+ return OK; -+} -+ -+ -+int add_D51_coach(int x, char *c[]) -+{ -+ int y, i, dy = 0; -+#ifdef DEBUG -+ char buf[100]; -+#endif -+ -+ if (x < ( 4 - ALL_LENGTH )) return ERR; -+ y = LINES / 2 - 5; -+ -+#ifdef DEBUG -+ sprintf(buf, "%d", x); -+ my_mvaddstr(1, 0, buf); -+#endif -+ if (FLY == 1) { -+ y = (x / 7) + LINES - (COLS / 7) - D51HIGHT; -+ dy = 1; -+ } -+ for (i = 0; i <= D51HIGHT; ++i) { -+ my_mvaddstr(y + i, 0, c[(D51HIGHT + 1) * ((ALL_LENGTH + x) % D51PATTERNS) + i] + COLS - x); -+ } -+ if (ACCIDENT == 1) { -+ add_man(y + 2, x + 43); -+ add_man(y + 2, x + 47); -+ add_man(y + 2, x + 125); -+ add_man(y + 2, x + 129); -+ add_man(y + 2, x + 207); -+ add_man(y + 2, x + 211); -+ } -+ add_smoke(y - 1, x + D51FUNNEL); -+ add_smoke(y - 1, x + D51FUNNEL + 81); -+ add_smoke(y - 1, x + D51FUNNEL + 162); -+ return OK; -+} -+ -+ -+int add_D51_coach_r(int x) -+{ -+ int y, i, j; -+ char num[10]; -+ -+ if (x > ALL_LENGTH + COLS) return ERR; -+ y = LINES / 2 - 5; -+ -+ for (i = 0; i <= D51HIGHT; ++i) { -+ my_mvaddstr_r(y + i, x, d51_r[(ALL_LENGTH + x) % D51PATTERNS][i]); -+ my_mvaddstr_r(y + i, x - 53, coal[i]); -+ my_mvaddstr_r(y + i, x - 82, d51_r[(ALL_LENGTH + x) % D51PATTERNS][i]); -+ my_mvaddstr_r(y + i, x - 135, coal[i]); -+ my_mvaddstr_r(y + i, x - 164, d51_r[(ALL_LENGTH + x) % D51PATTERNS][i]); -+ my_mvaddstr_r(y + i, x - 217, coal[i]); -+ for (j = 0; j < PASSNUM - 1; ++j) { -+ my_mvaddstr_r(y + i, x - 246 - (PASSLENGTH * j), coach[i]); -+ if ( i == 3 ) { -+ sprintf(num, "%d", j + 1); -+ my_mvaddstr(y + i, x - 255 - (PASSLENGTH * j), num); -+ } -+ } -+ my_mvaddstr_r(y + i, x - 246 - (PASSLENGTH * (PASSNUM - 1)), lcoach[i]); -+ if ( i == 3 ) { -+ sprintf(num, "%d", j + 1); -+ my_mvaddstr(y + i, x - 255 - (PASSLENGTH * (PASSNUM - 1)), num); -+ } -+ } -+ if (ACCIDENT == 1) { -+ add_man(y + 2, x - 45); -+ add_man(y + 2, x - 49); -+ add_man(y + 2, x - 127); -+ add_man(y + 2, x - 131); -+ add_man(y + 2, x - 209); -+ add_man(y + 2, x - 213); -+ -+ } -+ add_smoke_r(y - 1, x - D51FUNNEL - 3); -+ add_smoke_r(y - 1, x - D51FUNNEL - 84); -+ add_smoke_r(y - 1, x - D51FUNNEL - 167); -+ return OK; -+} -+ -+ -+int add_man(int y, int x) -+{ -+ static char *man[2][2] = {{"", "(O)"}, {"Help!", "\\O/"}}; -+ int i; -+ -+ if ( x < 0 ) { -+ return 0; -+ } -+ for (i = 0; i < 2; ++i) { -+ my_mvaddstr(y + i, x, man[(LOGOLENGTH + x) / 12 % 2][i]); -+ } -+ return 0; -+} -+ -+ -+int add_smoke(int y, int x) -+#define SMOKEPTNS 16 -+{ -+ static struct smokes { -+ int y, x; -+ int ptrn, kind; -+ } S[1000]; -+ static int sum = 0; -+ static char *Smoke[2][SMOKEPTNS] -+ = {{"( )", "( )", "( )", "( )", "( )", -+ "( )" , "( )" , "( )" , "()" , "()" , -+ "O" , "O" , "O" , "O" , "O" , -+ " " }, -+ {"(@@@)", "(@@@@)", "(@@@@)", "(@@@)", "(@@)", -+ "(@@)" , "(@)" , "(@)" , "@@" , "@@" , -+ "@" , "@" , "@" , "@" , "@" , -+ " " }}; -+ static char *Eraser[SMOKEPTNS] -+ = {" ", " ", " ", " ", " ", -+ " " , " " , " " , " " , " " , -+ " " , " " , " " , " " , " " , -+ " " }; -+ static int dy[SMOKEPTNS] = { 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, -+ 0, 0, 0, 0, 0, 0 }; -+ static int dx[SMOKEPTNS] = {-2, -1, 0, 1, 1, 1, 1, 1, 2, 2, -+ 2, 2, 2, 3, 3, 3 }; -+ int i; -+ -+ if (x < - COLS) { -+ return 0; -+ } -+ -+ if (x % 4 == 0) { -+ for (i = 0; i < sum; ++i) { -+ my_mvaddstr(S[i].y, S[i].x, Eraser[S[i].ptrn]); -+ S[i].y -= dy[S[i].ptrn]; -+ S[i].x += dx[S[i].ptrn]; -+ S[i].ptrn += (S[i].ptrn < SMOKEPTNS - 1) ? 1 : 0; -+ my_mvaddstr(S[i].y, S[i].x, Smoke[S[i].kind][S[i].ptrn]); -+ } -+ my_mvaddstr(y, x, Smoke[sum % 2][0]); -+ S[sum].y = y; S[sum].x = x; -+ S[sum].ptrn = 0; S[sum].kind = sum % 2; -+ sum ++; -+ } -+ return 0; -+} -+ -+ -+int add_smoke_r(int y, int x) -+#define SMOKEPTNS 16 -+{ -+ static struct smokes { -+ int y, x; -+ int ptrn, kind; -+ } S[1000]; -+ static int sum = 0; -+ static char *Smoke[2][SMOKEPTNS] -+ = {{"( )", "( )", "( )", "( )", "( )", -+ "( )" , "( )" , "( )" , "()" , "()" , -+ "O" , "O" , "O" , "O" , "O" , -+ " " }, -+ {"(@@@)", "(@@@@)", "(@@@@)", "(@@@)", "(@@)", -+ "(@@)" , "(@)" , "(@)" , "@@" , "@@" , -+ "@" , "@" , "@" , "@" , "@" , -+ " " }}; -+ static char *Eraser[SMOKEPTNS] -+ = {" ", " ", " ", " ", " ", -+ " " , " " , " " , " " , " " , -+ " " , " " , " " , " " , " " , -+ " " }; -+ static int dy[SMOKEPTNS] = { 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, -+ 0, 0, 0, 0, 0, 0 }; -+ static int dx[SMOKEPTNS] = {-2, -1, 0, 1, 1, 1, 1, 1, 2, 2, -+ 2, 2, 2, 3, 3, 3 }; -+ int i; -+ -+ if (x > 2 * COLS) { -+ return 0; -+ } -+ -+ if (x % 4 == 0) { -+ for (i = 0; i < sum; ++i) { -+ my_mvaddstr_r(S[i].y, S[i].x, Eraser[S[i].ptrn]); -+ S[i].y -= dy[S[i].ptrn]; -+ S[i].x -= dx[S[i].ptrn]; -+ S[i].ptrn += (S[i].ptrn < SMOKEPTNS - 1) ? 1 : 0; -+ my_mvaddstr_r(S[i].y, S[i].x, Smoke[S[i].kind][S[i].ptrn]); -+ } -+ my_mvaddstr(y, x, Smoke[sum % 2][0]); -+ S[sum].y = y; S[sum].x = x; -+ S[sum].ptrn = 0; S[sum].kind = sum % 2; -+ sum ++; -+ } -+ return 0; -+} -Index: sl-sid/sl-3.03/sl-h.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ sl-3.03/sl-h.h 2012-03-28 00:50:23.000000000 +0900 -@@ -0,0 +1,237 @@ -+/*======================================== -+ * sl.h: Text data of SL version 3.01 -+ * Copyright 1993 Toyoda Masashi -+ * (toyoda@is.titech.ac.jp) -+ * Last Modified: 1992/12/23 -+ *======================================== -+ */ -+ -+#define D51HIGHT 10 -+#define D51FUNNEL 7 -+/*#define D51LENGTH 82*/ -+#define D51LENGTH 172 -+#define D51PATTERNS 6 -+ -+ -+#define D51STR1 " ==== ________ ___________ " -+#define D51STR2 " _D _| |_______/ \\__I_I_____===__|_________| " -+#define D51STR3 " |(_)--- | H\\________/ | | =|___ ___| " -+#define D51STR4 " / | | H | | | | ||_| |_|| " -+#define D51STR5 " | | | H |__--------------------| [___] | " -+#define D51STR6 " | ________|___H__/__|_____/[][]~\\_______| | " -+#define D51STR7 " |/ | |-----------I_____I [][] [] D |=======|__ " -+ -+#define D51WHL11 "__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__ " -+#define D51WHL12 " |/-=|___|= || || || |_____/~\\___/ " -+#define D51WHL13 " \\_/ \\O=====O=====O=====O_/ \\_/ " -+ -+#define D51WHL21 "__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__ " -+#define D51WHL22 " |/-=|___|=O=====O=====O=====O |_____/~\\___/ " -+#define D51WHL23 " \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ " -+ -+#define D51WHL31 "__/ =| o |=-O=====O=====O=====O \\ ____Y___________|__ " -+#define D51WHL32 " |/-=|___|= || || || |_____/~\\___/ " -+#define D51WHL33 " \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ " -+ -+#define D51WHL41 "__/ =| o |=-~O=====O=====O=====O\\ ____Y___________|__ " -+#define D51WHL42 " |/-=|___|= || || || |_____/~\\___/ " -+#define D51WHL43 " \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ " -+ -+#define D51WHL51 "__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__ " -+#define D51WHL52 " |/-=|___|= O=====O=====O=====O|_____/~\\___/ " -+#define D51WHL53 " \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ " -+ -+#define D51WHL61 "__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__ " -+#define D51WHL62 " |/-=|___|= || || || |_____/~\\___/ " -+#define D51WHL63 " \\_/ \\_O=====O=====O=====O/ \\_/ " -+ -+#define D51DEL " " -+ -+#define COAL01 " " -+#define COAL02 " " -+#define COAL03 " _________________ " -+#define COAL04 " _| \\_____A " -+#define COAL05 " =| | " -+#define COAL06 " -| | " -+#define COAL07 "__|________________________|_" -+#define COAL08 "|__________________________|_" -+#define COAL09 " |_D__D__D_| |_D__D__D_| " -+#define COAL10 " \\_/ \\_/ \\_/ \\_/ " -+ -+#define COALDEL " " -+ -+#define LOGOHIGHT 6 -+#define LOGOFUNNEL 4 -+#define LOGOLENGTH 84 -+#define LOGOPATTERNS 6 -+ -+#define LOGO1 " ++ +------ " -+#define LOGO2 " || |+-+ | " -+#define LOGO3 " /---------|| | | " -+#define LOGO4 " + ======== +-+ | " -+ -+#define LWHL11 " _|--O========O~\\-+ " -+#define LWHL12 "//// \\_/ \\_/ " -+ -+#define LWHL21 " _|--/O========O\\-+ " -+#define LWHL22 "//// \\_/ \\_/ " -+ -+#define LWHL31 " _|--/~O========O-+ " -+#define LWHL32 "//// \\_/ \\_/ " -+ -+#define LWHL41 " _|--/~\\------/~\\-+ " -+#define LWHL42 "//// \\_O========O " -+ -+#define LWHL51 " _|--/~\\------/~\\-+ " -+#define LWHL52 "//// \\O========O/ " -+ -+#define LWHL61 " _|--/~\\------/~\\-+ " -+#define LWHL62 "//// O========O_/ " -+ -+#define LCOAL1 "____ " -+#define LCOAL2 "| \\@@@@@@@@@@@ " -+#define LCOAL3 "| \\@@@@@@@@@@@@@_ " -+#define LCOAL4 "| | " -+#define LCOAL5 "|__________________| " -+#define LCOAL6 " (O) (O) " -+ -+#define LCAR1 "____________________ " -+#define LCAR2 "| ___ ___ ___ ___ | " -+#define LCAR3 "| |_| |_| |_| |_| | " -+#define LCAR4 "|__________________| " -+#define LCAR5 "|__________________| " -+#define LCAR6 " (O) (O) " -+ -+#define DELLN " " -+ -+#define PASSLENGTH 88 -+ -+#define PASS01 " _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ " -+#define PASS02 " _________|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|_________ " -+#define PASS03 " | ____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ ____ | " -+#define PASS04 " | | | | | | | | | | | | | | | | | | | | | | | | | | " -+#define PASS05 " | | | |___| |___| |___| |___| |___| |___| |___| |___| |___| |___| | | | " -+#define PASS06 " | | | | | | " -+#define PASS07 " | | | @@ | | | " -+#define PASS08 "__|_|__|________________________________________________________________________|__|_|__" -+#define PASS09 "\\==|_/_\\____/_\\_| |______|Z +--|_________________|------+ |_/_\\____/_\\_|==/" -+#define PASS10 " \\_/ \\_/ +++~~ \\_/ \\_/ " -+ -+#define PASSDEL " " -+ -+#define LPASSLENGTH 88 -+ -+#define LPASS01 " _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ " -+#define LPASS02 " _________|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|________ " -+#define LPASS03 " | ____ _____ _____ _____ _____ _____ _____ _____ _____ _____ ____ _____| " -+#define LPASS04 " | | | | | | | | | | | | | | | | | | | | | | | | | " -+#define LPASS05 " | | | |___| |___| |___| |___| |___| |___| |___| |___| |___| | | | | " -+#define LPASS06 " | | | | | |___| " -+#define LPASS07 " | | | @@ | | |_|_| " -+#define LPASS08 "__|_|__|_________________________________________________________________|__|___|_|_|___ " -+#define LPASS09 "\\==|_/_\\____/_\\_| |______|XX +-|_______|------+ |_/_\\____/_\\_|==/ " -+#define LPASS10 " \\_/ \\_/ \\_/ \\_/ " -+ -+#define LPASSDEL " " -+ -+#define CROS001 "" -+#define CROS002 "" -+#define CROS003 "-_||_-" -+#define CROS004 "_><_" -+#define CROS005 "- || -" -+#define CROS006 "||" -+#define CROS007 "||" -+#define CROS008 "||" -+#define CROS009 "||" -+#define CROS010 "\\&||~" -+ -+static int cros0l[] = {0, 0, 0, 1, 0, 2, 2, 2, 2, 0}; -+ -+#define CROS101 " | " -+#define CROS102 " | " -+#define CROS103 " | " -+#define CROS104 " | " -+#define CROS105 " | " -+#define CROS106 " | " -+#define CROS107 " | " -+#define CROS108 " | " -+#define CROS109 "_|_ " -+#define CROS110 "||| " -+ -+#define CROS201 " / " -+#define CROS202 " / " -+#define CROS203 " / " -+#define CROS204 " / " -+#define CROS205 " / " -+#define CROS206 " / " -+#define CROS207 " / " -+#define CROS208 " / " -+#define CROS209 "__/ " -+#define CROS210 "|/| " -+ -+#define CROS301 " " -+#define CROS302 " " -+#define CROS303 " " -+#define CROS304 " " -+#define CROS305 " " -+#define CROS306 " " -+#define CROS307 " " -+#define CROS308 " " -+#define CROS309 "___" -+#define CROS310 "|-+-----------------" -+ -+/*#define PASSNUM 5*/ -+/*#define ALL_LENGTH (D51LENGTH + (PASSLENGTH * (PASSNUM - 1)) + LPASSLENGTH)*/ -+ -+static char *cros0[D51HIGHT] -+= {CROS001, CROS002, CROS003, CROS004, CROS005, -+ CROS006, CROS007, CROS008, CROS009, CROS010}; -+static char *cros1[D51HIGHT] -+= {CROS101, CROS102, CROS103, CROS104, CROS105, -+ CROS106, CROS107, CROS108, CROS109, CROS110}; -+static char *cros2[D51HIGHT] -+= {CROS201, CROS202, CROS203, CROS204, CROS205, -+ CROS206, CROS207, CROS208, CROS209, CROS210}; -+static char *cros3[D51HIGHT] -+= {CROS301, CROS302, CROS303, CROS304, CROS305, -+ CROS306, CROS307, CROS308, CROS309, CROS310}; -+ -+static char *lcoal[LOGOHIGHT + 1] -+= {LCOAL1, LCOAL2, LCOAL3, LCOAL4, LCOAL5, LCOAL6, DELLN}; -+ -+static char *d51[D51PATTERNS][D51HIGHT + 1] -+= {{D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, -+ D51WHL11, D51WHL12, D51WHL13, D51DEL}, -+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, -+ D51WHL21, D51WHL22, D51WHL23, D51DEL}, -+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, -+ D51WHL31, D51WHL32, D51WHL33, D51DEL}, -+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, -+ D51WHL41, D51WHL42, D51WHL43, D51DEL}, -+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, -+ D51WHL51, D51WHL52, D51WHL53, D51DEL}, -+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, -+ D51WHL61, D51WHL62, D51WHL63, D51DEL}}; -+static char *coal[D51HIGHT + 1] -+= {COAL01, COAL02, COAL03, COAL04, COAL05, -+ COAL06, COAL07, COAL08, COAL09, COAL10, COALDEL}; -+static char *coach[D51HIGHT + 1] -+= {PASS01, PASS02, PASS03, PASS04, PASS05, -+ PASS06, PASS07, PASS08, PASS09, PASS10, PASSDEL}; -+static char *lcoach[D51HIGHT + 1] -+= {LPASS01, LPASS02, LPASS03, LPASS04, LPASS05, -+ LPASS06, LPASS07, LPASS08, LPASS09, LPASS10, LPASSDEL}; -+ -+static char *d51_r[D51PATTERNS][D51HIGHT + 1] -+= {{D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, -+ D51WHL11, D51WHL12, D51WHL13, D51DEL}, -+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, -+ D51WHL61, D51WHL62, D51WHL63, D51DEL}, -+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, -+ D51WHL51, D51WHL52, D51WHL53, D51DEL}, -+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, -+ D51WHL41, D51WHL42, D51WHL43, D51DEL}, -+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, -+ D51WHL31, D51WHL32, D51WHL33, D51DEL}, -+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, -+ D51WHL21, D51WHL22, D51WHL23, D51DEL}}; -Index: sl-sid/sl-3.03/sl.c -=================================================================== ---- sl-3.03.orig/sl.c 2012-03-28 00:49:35.000000000 +0900 -+++ sl-3.03/sl.c 2012-03-28 00:50:23.000000000 +0900 -@@ -48,7 +48,7 @@ - - void option(char *str) - { -- extern int ACCIDENT, FLY, LONG; -+ extern int ACCIDENT, FLY; - - while (*str != '\0') { - switch (*str++) { -@@ -61,7 +61,7 @@ - } - } - --void main(int argc, char *argv[]) -+int main(int argc, char *argv[]) - { - int x, i; - -@@ -89,6 +89,8 @@ - } - mvcur(0, COLS - 1, LINES - 1, 0); - endwin(); -+ -+ return 0; - } - - -@@ -133,7 +135,7 @@ - } - - --add_D51(int x) -+int add_D51(int x) - { - static char *d51[D51PATTERNS][D51HIGHT + 1] - = {{D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, -@@ -182,6 +184,8 @@ - for (i = 0; i < 2; ++i) { - my_mvaddstr(y + i, x, man[(LOGOLENGTH + x) / 12 % 2][i]); - } -+ -+ return 0; - } - - -@@ -226,4 +230,6 @@ - S[sum].ptrn = 0; S[sum].kind = sum % 2; - sum ++; - } -+ -+ return 0; - } -Index: sl-sid/sl-3.03/sl.h -=================================================================== ---- sl-3.03.orig/sl.h 2012-03-28 00:44:16.000000000 +0900 -+++ sl-3.03/sl.h 2012-03-28 00:50:23.000000000 +0900 -@@ -102,3 +102,9 @@ - #define LCAR6 " (O) (O) " - - #define DELLN " " -+ -+extern int add_D51(); -+extern int add_sl(); -+extern int add_man(); -+extern int add_smoke(); -+ diff -Nru sl-3.03/debian/patches/modify_Makefile.patch sl-5.02/debian/patches/modify_Makefile.patch --- sl-3.03/debian/patches/modify_Makefile.patch 2012-03-27 17:08:36.000000000 +0000 +++ sl-5.02/debian/patches/modify_Makefile.patch 2019-01-29 12:29:33.000000000 +0000 @@ -1,82 +1,23 @@ -Modify Makefile. -Index: sl-3.03/Makefile -=================================================================== ---- sl-3.03.orig/Makefile 1998-07-22 23:00:41.000000000 +0900 -+++ sl-3.03/Makefile 2012-03-28 00:44:16.000000000 +0900 -@@ -3,12 +3,16 @@ - # Copyright 1993,1998 Toyoda Masashi - # (toyoda@is.titech.ac.jp) - # Last Modified: 1998/ 7/22 -+# Modify for Debian by Hiroyuki Yamamoto -+# 2008/12/27 - #========================================== +Description: Update Makefile for building with Debian +Author: Hiroyuki Yamamoto +Last-Update: 2019-01-29, Markus Frosch +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/Makefile ++++ b/Makefile +@@ -8,6 +8,14 @@ --CC=cc --CFLAGS=-O + CC=gcc + CFLAGS=-O ++LDFLAGS=-lncurses ++ +all: sl sl: sl.c sl.h -- $(CC) $(CFLAGS) -o sl sl.c -lcurses -ltermcap --# $(CC) $(CFLAGS) -o sl sl.c -lcurses +- $(CC) $(CFLAGS) -o sl sl.c -lncurses + $(CC) $(CFLAGS) -o sl sl.c $(LDFLAGS) - -+clean:: ++ ++clean: + rm -f sl + -+distclean:: clean -Index: sl-sid/sl-3.03/README -=================================================================== ---- sl-3.03.orig/README 1998-07-22 23:00:03.000000000 +0900 -+++ /dev/null 1970-01-01 00:00:00.000000000 +0000 -@@ -1,12 +0,0 @@ --=========================================== -- SL: $B%-!<%?%$%W6:@5%=%U%H(B -- Copyright 1993,1998 Toyoda Masashi -- (toyoda@is.titech.ac.jp) --=========================================== -- --$B$`$+$7$K$bEj9F$5$l$?>iCL%=%U%H$N(B sl $B$N9k2ZHG$G$9!#(B --$B%"%$%G%"$O>N(J --sl \- $@%-!<%?%$%W$r6:@5$7$^$9!#(J --.SH $@7A<0(J --.B sl --[ --.B \-alF --] --.SH $@2r@b(J --.B sl --$@$O!"9bEY$KH/E8$7$?!"%-!<%?%$%W6:@5$rL\E*$H$9$k%"%K%a!<%7%g%s%W%m%0%i%`$G$9!#(J --.PP --$@.$5$/$J$j$^$9!#(J --.TP --.B \-F --$@Ht$S$^$9!#(J --.PP --.SH $@4XO";v9`(J --.BR ls (1) --.SH $@%P%0(J --$@%+%l%s%H%G%#%l%/%H%j$NFbMF$,I=<($5$l$k$3$H$,$"$j$^$9!#(J --.SH $@Cxl9g$O(B, $Be$,$j$+$1$F$+$i:F$S9_$j$k5!G=(B -(8) D51 $B;0=EO"(B ($BK\Ev$O2_J*NseED$5(B -$B$s$H=);3$5$s$K$h$k2~B$$G$9(B. $B>eED$5$s(B, $B=);3$5$s$"$j$,$H$&$4$6$$$^$9(B. -$B$^$?(B, $BIA2h$N8zN($r>e$2$k$?$a$K(B 5-1 $B$G$OL\$K8+$($J$$JQ99E@$,B??t$"$j$^(B -$B$9(B. - - -$B!&(Bbug fixes - -1. JAIST $B$NEDCf$5$s$K(B sl -aF $B$rL\$G(B core dump $B$9$k$H$$$&%P%0$rH/8+(B. 5-1 $B$G$O(B fix $B$7$^$7(B -$B$?(B. - - -$B!&F0:n4D6-(B - -$BF0:n3NG'$O0J2<$N(B OS $B$G$7$F$"$j$^$9(B. - -sparc-sun-solaris 2.3 -sparc-sun-solaris 2.4 -sparc-sun-solaris 2.6 -ix86-unknown-linux 2.0 (Slackware 3.5) -ix86-unknown-linux 2.0 (Plamo Linux 1.4.5) - -$B$^$?(B, $B>r7oIU$-(B($BCm0UE@(B 2 $B;2>H(B)$B$G(B AIX 4.1.5 $B$G$bF0:n$9$k$H$$$&Js9p$r$$$?(B -$B$@$$$F$$$^$9(B. - - -$B!&:n$jJ}(B - -% tar zxvf sl.tgz -% cd sl -% patch -p1 < ../sl5-1.patch -% make - -$B$G%P%$%J%j(B sl $B$,$G$-$k$O$:$G$9(B. - - -$B!&Cm0UE@(B - -1. Solaris 2.3, 2.4 $B$G$O(B Makefile $B$N(B LDFLAGS $B$K!V(B-lucb -L/usr/ucblib$B!W(B -$B$r2C$($J$$$H%3%s%Q%$%k$G$-$J$$$H;W$$$^$9(B. - -2. AIX 4.1.5 $B$G$O(B sl.h $B$NCf$GJ8;zNs$NDj5A$K(B static char * $B$r;H$&$H(B -core dump $B$9$k$H$$$&Js9p$r?7Eg$5$s$K$$$?$@$-$^$7$?(B. static $B$r$O$:$9$H(B -$BF0:n$9$k$h$&$G$9(B. $B?7Eg$5$s$"$j$,$H$&$4$6$$$^$9(B. - -3. $B$3$N%Q%C%A$N2~B$$O$O$C$-$j$$$C$F$&$C$H$*$7$$$G$9(B. $B@h@8$r$*E\$j$r$+$C(B -$B$F?JO)$K1F6A$r5Z$\$9$h$&$J$3$H$,$"$C$F$b(B, $BEvJ}$G$O0l@Z4XCN$7$^$;$s(B. - diff -Nru sl-3.03/debian/rules sl-5.02/debian/rules --- sl-3.03/debian/rules 2012-03-27 16:04:45.000000000 +0000 +++ sl-5.02/debian/rules 2019-02-02 11:53:43.000000000 +0000 @@ -1,12 +1,17 @@ #!/usr/bin/make -f -include /usr/share/cdbs/1/rules/debhelper.mk -include /usr/share/cdbs/1/class/makefile.mk +#export DH_VERBOSE=1 +export DEB_BUILD_MAINT_OPTIONS=hardening=+all -# Add here any variable or target overrides you need. -CFLAGS=-Wall -O2 # -DDEBUG -LDFLAGS= -lcurses # -ltermcap +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/buildflags.mk -DEB_DH_LINK_ARGS := usr/games/sl -DEB_DH_LINK_sl := usr/games/LS +%: + dh $@ + +override_dh_auto_build: + dh_auto_build -- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS) -lncurses" + +override_dh_strip: + dh_strip --no-automatic-dbgsym diff -Nru sl-3.03/debian/sl.install sl-5.02/debian/sl.install --- sl-3.03/debian/sl.install 2012-03-27 15:55:05.000000000 +0000 +++ sl-5.02/debian/sl.install 2019-01-29 12:45:35.000000000 +0000 @@ -1,5 +1,5 @@ sl usr/games -sl-h usr/games +#sl-h usr/games debian/man/man6/* usr/share/man/man6 debian/man/de/* usr/share/man/de/man6 debian/man/de.UTF-8/* usr/share/man/de.UTF-8/man6 diff -Nru sl-3.03/debian/watch sl-5.02/debian/watch --- sl-3.03/debian/watch 1970-01-01 00:00:00.000000000 +0000 +++ sl-5.02/debian/watch 2019-01-29 12:21:17.000000000 +0000 @@ -0,0 +1,3 @@ +version=4 +opts=filenamemangle=s/.+\/v?(\d\S+)\.tar\.gz/sl-$1\.tar\.gz/ \ + https://github.com/mtoyoda/sl/tags .*/v?(\d\S+)\.tar\.gz diff -Nru sl-3.03/.gitignore sl-5.02/.gitignore --- sl-3.03/.gitignore 1970-01-01 00:00:00.000000000 +0000 +++ sl-5.02/.gitignore 2014-06-16 07:27:59.000000000 +0000 @@ -0,0 +1 @@ +/sl diff -Nru sl-3.03/LICENSE sl-5.02/LICENSE --- sl-3.03/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ sl-5.02/LICENSE 2014-06-16 07:27:59.000000000 +0000 @@ -0,0 +1,6 @@ +Copyright 1993,1998,2014 Toyoda Masashi (mtoyoda@acm.org) + +Everyone is permitted to do anything on this program including copying, +modifying, and improving, unless you try to pretend that you wrote it. +i.e., the above copyright notice has to appear in all copies. +THE AUTHOR DISCLAIMS ANY RESPONSIBILITY WITH REGARD TO THIS SOFTWARE. diff -Nru sl-3.03/Makefile sl-5.02/Makefile --- sl-3.03/Makefile 1998-07-22 14:00:41.000000000 +0000 +++ sl-5.02/Makefile 2014-06-16 07:27:59.000000000 +0000 @@ -1,14 +1,13 @@ #========================================== -# Makefile: makefile for sl -# Copyright 1993,1998 Toyoda Masashi -# (toyoda@is.titech.ac.jp) -# Last Modified: 1998/ 7/22 +# Makefile: makefile for sl 5.1 +# Copyright 1993, 1998, 2014 +# Toyoda Masashi +# (mtoyoda@acm.org) +# Last Modified: 2014/03/31 #========================================== -CC=cc +CC=gcc CFLAGS=-O sl: sl.c sl.h - $(CC) $(CFLAGS) -o sl sl.c -lcurses -ltermcap -# $(CC) $(CFLAGS) -o sl sl.c -lcurses - + $(CC) $(CFLAGS) -o sl sl.c -lncurses diff -Nru sl-3.03/README sl-5.02/README --- sl-3.03/README 1998-07-22 14:00:03.000000000 +0000 +++ sl-5.02/README 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -=========================================== - SL: $B%-!<%?%$%W6:@5%=%U%H(B - Copyright 1993,1998 Toyoda Masashi - (toyoda@is.titech.ac.jp) -=========================================== - -$B$`$+$7$K$bEj9F$5$l$?>iCL%=%U%H$N(B sl $B$N9k2ZHG$G$9!#(B -$B%"%$%G%"$O>N(J -sl \- $@%-!<%?%$%W$r6:@5$7$^$9!#(J -.SH $@7A<0(J +.\" @(#)sl.1 +.\" +.TH SL 1 "March 31, 2014" +.SH NAME +sl \- cure your bad habit of mistyping +.SH SYNOPSIS .B sl [ -.B \-alF +.B \-alFc ] -.SH $@2r@b(J +.SH DESCRIPTION .B sl -$@$O!"9bEY$KH/E8$7$?!"%-!<%?%$%W6:@5$rL\E*$H$9$k%"%K%a!<%7%g%s%W%m%0%i%`$G$9!#(J +is a highly advanced animation program for curing your bad habit of mistyping. .PP -$@.$5$/$J$j$^$9!#(J +Little version .TP .B \-F -$@Ht$S$^$9!#(J +It flies like the galaxy express 999. +.TP +.B \-c +C51 appears instead of D51. .PP -.SH $@4XO";v9`(J +.SH SEE ALSO .BR ls (1) -.SH $@%P%0(J -$@%+%l%s%H%G%#%l%/%H%j$NFbMF$,I=<($5$l$k$3$H$,$"$j$^$9!#(J -.SH $@Cx #include #include #include "sl.h" +void add_smoke(int y, int x); +void add_man(int y, int x); +int add_C51(int x); +int add_D51(int x); +int add_sl(int x); +void option(char *str); +int my_mvaddstr(int y, int x, char *str); + int ACCIDENT = 0; int LOGO = 0; int FLY = 0; +int C51 = 0; int my_mvaddstr(int y, int x, char *str) { for ( ; x < 0; ++x, ++str) - if (*str == '\0') return ERR; + if (*str == '\0') return ERR; for ( ; *str != '\0'; ++str, ++x) - if (mvaddch(y, x, *str) == ERR) return ERR; + if (mvaddch(y, x, *str) == ERR) return ERR; return OK; } @@ -50,38 +68,46 @@ extern int ACCIDENT, FLY, LONG; while (*str != '\0') { - switch (*str++) { - case 'a': ACCIDENT = 1; break; - case 'F': FLY = 1; break; - case 'l': LOGO = 1; break; - default: break; - } + switch (*str++) { + case 'a': ACCIDENT = 1; break; + case 'F': FLY = 1; break; + case 'l': LOGO = 1; break; + case 'c': C51 = 1; break; + default: break; + } } } -void main(int argc, char *argv[]) +int main(int argc, char *argv[]) { int x, i; for (i = 1; i < argc; ++i) { - if (*argv[i] == '-') { - option(argv[i] + 1); - } + if (*argv[i] == '-') { + option(argv[i] + 1); + } } initscr(); signal(SIGINT, SIG_IGN); noecho(); + curs_set(0); + nodelay(stdscr, TRUE); leaveok(stdscr, TRUE); scrollok(stdscr, FALSE); for (x = COLS - 1; ; --x) { - if (LOGO == 0) { - if (add_D51(x) == ERR) break; - } else { - if (add_sl(x) == ERR) break; - } - refresh(); - usleep(20000); + if (LOGO == 1) { + if (add_sl(x) == ERR) break; + } + else if (C51 == 1) { + if (add_C51(x) == ERR) break; + } + else { + if (add_D51(x) == ERR) break; + } + getch(); + refresh(); + usleep(40000); } mvcur(0, COLS - 1, LINES - 1, 0); endwin(); @@ -91,62 +117,62 @@ int add_sl(int x) { static char *sl[LOGOPATTERNS][LOGOHIGHT + 1] - = {{LOGO1, LOGO2, LOGO3, LOGO4, LWHL11, LWHL12, DELLN}, - {LOGO1, LOGO2, LOGO3, LOGO4, LWHL21, LWHL22, DELLN}, - {LOGO1, LOGO2, LOGO3, LOGO4, LWHL31, LWHL32, DELLN}, - {LOGO1, LOGO2, LOGO3, LOGO4, LWHL41, LWHL42, DELLN}, - {LOGO1, LOGO2, LOGO3, LOGO4, LWHL51, LWHL52, DELLN}, - {LOGO1, LOGO2, LOGO3, LOGO4, LWHL61, LWHL62, DELLN}}; + = {{LOGO1, LOGO2, LOGO3, LOGO4, LWHL11, LWHL12, DELLN}, + {LOGO1, LOGO2, LOGO3, LOGO4, LWHL21, LWHL22, DELLN}, + {LOGO1, LOGO2, LOGO3, LOGO4, LWHL31, LWHL32, DELLN}, + {LOGO1, LOGO2, LOGO3, LOGO4, LWHL41, LWHL42, DELLN}, + {LOGO1, LOGO2, LOGO3, LOGO4, LWHL51, LWHL52, DELLN}, + {LOGO1, LOGO2, LOGO3, LOGO4, LWHL61, LWHL62, DELLN}}; static char *coal[LOGOHIGHT + 1] - = {LCOAL1, LCOAL2, LCOAL3, LCOAL4, LCOAL5, LCOAL6, DELLN}; + = {LCOAL1, LCOAL2, LCOAL3, LCOAL4, LCOAL5, LCOAL6, DELLN}; static char *car[LOGOHIGHT + 1] - = {LCAR1, LCAR2, LCAR3, LCAR4, LCAR5, LCAR6, DELLN}; + = {LCAR1, LCAR2, LCAR3, LCAR4, LCAR5, LCAR6, DELLN}; int i, y, py1 = 0, py2 = 0, py3 = 0; - + if (x < - LOGOLENGTH) return ERR; y = LINES / 2 - 3; if (FLY == 1) { - y = (x / 6) + LINES - (COLS / 6) - LOGOHIGHT; - py1 = 2; py2 = 4; py3 = 6; + y = (x / 6) + LINES - (COLS / 6) - LOGOHIGHT; + py1 = 2; py2 = 4; py3 = 6; } for (i = 0; i <= LOGOHIGHT; ++i) { - my_mvaddstr(y + i, x, sl[(LOGOLENGTH + x) / 3 % LOGOPATTERNS][i]); - my_mvaddstr(y + i + py1, x + 21, coal[i]); - my_mvaddstr(y + i + py2, x + 42, car[i]); - my_mvaddstr(y + i + py3, x + 63, car[i]); + my_mvaddstr(y + i, x, sl[(LOGOLENGTH + x) / 3 % LOGOPATTERNS][i]); + my_mvaddstr(y + i + py1, x + 21, coal[i]); + my_mvaddstr(y + i + py2, x + 42, car[i]); + my_mvaddstr(y + i + py3, x + 63, car[i]); } if (ACCIDENT == 1) { - add_man(y + 1, x + 14); - add_man(y + 1 + py2, x + 45); add_man(y + 1 + py2, x + 53); - add_man(y + 1 + py3, x + 66); add_man(y + 1 + py3, x + 74); + add_man(y + 1, x + 14); + add_man(y + 1 + py2, x + 45); add_man(y + 1 + py2, x + 53); + add_man(y + 1 + py3, x + 66); add_man(y + 1 + py3, x + 74); } add_smoke(y - 1, x + LOGOFUNNEL); return OK; } -add_D51(int x) +int add_D51(int x) { static char *d51[D51PATTERNS][D51HIGHT + 1] - = {{D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, - D51WHL11, D51WHL12, D51WHL13, D51DEL}, - {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, - D51WHL21, D51WHL22, D51WHL23, D51DEL}, - {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, - D51WHL31, D51WHL32, D51WHL33, D51DEL}, - {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, - D51WHL41, D51WHL42, D51WHL43, D51DEL}, - {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, - D51WHL51, D51WHL52, D51WHL53, D51DEL}, - {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, - D51WHL61, D51WHL62, D51WHL63, D51DEL}}; + = {{D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, + D51WHL11, D51WHL12, D51WHL13, D51DEL}, + {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, + D51WHL21, D51WHL22, D51WHL23, D51DEL}, + {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, + D51WHL31, D51WHL32, D51WHL33, D51DEL}, + {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, + D51WHL41, D51WHL42, D51WHL43, D51DEL}, + {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, + D51WHL51, D51WHL52, D51WHL53, D51DEL}, + {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7, + D51WHL61, D51WHL62, D51WHL63, D51DEL}}; static char *coal[D51HIGHT + 1] - = {COAL01, COAL02, COAL03, COAL04, COAL05, - COAL06, COAL07, COAL08, COAL09, COAL10, COALDEL}; + = {COAL01, COAL02, COAL03, COAL04, COAL05, + COAL06, COAL07, COAL08, COAL09, COAL10, COALDEL}; int y, i, dy = 0; @@ -154,72 +180,112 @@ y = LINES / 2 - 5; if (FLY == 1) { - y = (x / 7) + LINES - (COLS / 7) - D51HIGHT; - dy = 1; + y = (x / 7) + LINES - (COLS / 7) - D51HIGHT; + dy = 1; } for (i = 0; i <= D51HIGHT; ++i) { - my_mvaddstr(y + i, x, d51[(D51LENGTH + x) % D51PATTERNS][i]); - my_mvaddstr(y + i + dy, x + 53, coal[i]); + my_mvaddstr(y + i, x, d51[(D51LENGTH + x) % D51PATTERNS][i]); + my_mvaddstr(y + i + dy, x + 53, coal[i]); } if (ACCIDENT == 1) { - add_man(y + 2, x + 43); - add_man(y + 2, x + 47); + add_man(y + 2, x + 43); + add_man(y + 2, x + 47); } add_smoke(y - 1, x + D51FUNNEL); return OK; } +int add_C51(int x) +{ + static char *c51[C51PATTERNS][C51HIGHT + 1] + = {{C51STR1, C51STR2, C51STR3, C51STR4, C51STR5, C51STR6, C51STR7, + C51WH11, C51WH12, C51WH13, C51WH14, C51DEL}, + {C51STR1, C51STR2, C51STR3, C51STR4, C51STR5, C51STR6, C51STR7, + C51WH21, C51WH22, C51WH23, C51WH24, C51DEL}, + {C51STR1, C51STR2, C51STR3, C51STR4, C51STR5, C51STR6, C51STR7, + C51WH31, C51WH32, C51WH33, C51WH34, C51DEL}, + {C51STR1, C51STR2, C51STR3, C51STR4, C51STR5, C51STR6, C51STR7, + C51WH41, C51WH42, C51WH43, C51WH44, C51DEL}, + {C51STR1, C51STR2, C51STR3, C51STR4, C51STR5, C51STR6, C51STR7, + C51WH51, C51WH52, C51WH53, C51WH54, C51DEL}, + {C51STR1, C51STR2, C51STR3, C51STR4, C51STR5, C51STR6, C51STR7, + C51WH61, C51WH62, C51WH63, C51WH64, C51DEL}}; + static char *coal[C51HIGHT + 1] + = {COALDEL, COAL01, COAL02, COAL03, COAL04, COAL05, + COAL06, COAL07, COAL08, COAL09, COAL10, COALDEL}; + + int y, i, dy = 0; + + if (x < - C51LENGTH) return ERR; + y = LINES / 2 - 5; + + if (FLY == 1) { + y = (x / 7) + LINES - (COLS / 7) - C51HIGHT; + dy = 1; + } + for (i = 0; i <= C51HIGHT; ++i) { + my_mvaddstr(y + i, x, c51[(C51LENGTH + x) % C51PATTERNS][i]); + my_mvaddstr(y + i + dy, x + 55, coal[i]); + } + if (ACCIDENT == 1) { + add_man(y + 3, x + 45); + add_man(y + 3, x + 49); + } + add_smoke(y - 1, x + C51FUNNEL); + return OK; +} + -int add_man(int y, int x) +void add_man(int y, int x) { static char *man[2][2] = {{"", "(O)"}, {"Help!", "\\O/"}}; int i; for (i = 0; i < 2; ++i) { - my_mvaddstr(y + i, x, man[(LOGOLENGTH + x) / 12 % 2][i]); + my_mvaddstr(y + i, x, man[(LOGOLENGTH + x) / 12 % 2][i]); } } -int add_smoke(int y, int x) -#define SMOKEPTNS 16 +void add_smoke(int y, int x) +#define SMOKEPTNS 16 { static struct smokes { - int y, x; - int ptrn, kind; + int y, x; + int ptrn, kind; } S[1000]; static int sum = 0; static char *Smoke[2][SMOKEPTNS] - = {{"( )", "( )", "( )", "( )", "( )", - "( )" , "( )" , "( )" , "()" , "()" , - "O" , "O" , "O" , "O" , "O" , - " " }, - {"(@@@)", "(@@@@)", "(@@@@)", "(@@@)", "(@@)", - "(@@)" , "(@)" , "(@)" , "@@" , "@@" , - "@" , "@" , "@" , "@" , "@" , - " " }}; + = {{"( )", "( )", "( )", "( )", "( )", + "( )" , "( )" , "( )" , "()" , "()" , + "O" , "O" , "O" , "O" , "O" , + " " }, + {"(@@@)", "(@@@@)", "(@@@@)", "(@@@)", "(@@)", + "(@@)" , "(@)" , "(@)" , "@@" , "@@" , + "@" , "@" , "@" , "@" , "@" , + " " }}; static char *Eraser[SMOKEPTNS] - = {" ", " ", " ", " ", " ", - " " , " " , " " , " " , " " , - " " , " " , " " , " " , " " , - " " }; + = {" ", " ", " ", " ", " ", + " " , " " , " " , " " , " " , + " " , " " , " " , " " , " " , + " " }; static int dy[SMOKEPTNS] = { 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0 }; + 0, 0, 0, 0, 0, 0 }; static int dx[SMOKEPTNS] = {-2, -1, 0, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 3, 3, 3 }; + 2, 2, 2, 3, 3, 3 }; int i; if (x % 4 == 0) { - for (i = 0; i < sum; ++i) { - my_mvaddstr(S[i].y, S[i].x, Eraser[S[i].ptrn]); - S[i].y -= dy[S[i].ptrn]; - S[i].x += dx[S[i].ptrn]; - S[i].ptrn += (S[i].ptrn < SMOKEPTNS - 1) ? 1 : 0; - my_mvaddstr(S[i].y, S[i].x, Smoke[S[i].kind][S[i].ptrn]); - } - my_mvaddstr(y, x, Smoke[sum % 2][0]); - S[sum].y = y; S[sum].x = x; - S[sum].ptrn = 0; S[sum].kind = sum % 2; - sum ++; + for (i = 0; i < sum; ++i) { + my_mvaddstr(S[i].y, S[i].x, Eraser[S[i].ptrn]); + S[i].y -= dy[S[i].ptrn]; + S[i].x += dx[S[i].ptrn]; + S[i].ptrn += (S[i].ptrn < SMOKEPTNS - 1) ? 1 : 0; + my_mvaddstr(S[i].y, S[i].x, Smoke[S[i].kind][S[i].ptrn]); + } + my_mvaddstr(y, x, Smoke[sum % 2][0]); + S[sum].y = y; S[sum].x = x; + S[sum].ptrn = 0; S[sum].kind = sum % 2; + sum ++; } } diff -Nru sl-3.03/sl.h sl-5.02/sl.h --- sl-3.03/sl.h 1994-01-18 17:23:24.000000000 +0000 +++ sl-5.02/sl.h 2014-06-16 07:27:59.000000000 +0000 @@ -1,14 +1,15 @@ /*======================================== - * sl.h: Text data of SL version 3.01 - * Copyright 1993 Toyoda Masashi - * (toyoda@is.titech.ac.jp) - * Last Modified: 1992/12/23 + * sl.h: SL version 5.02 + * Copyright 1993,2002,2014 + * Toyoda Masashi + * (mtoyoda@acm.org) + * Last Modified: 2014/06/03 *======================================== */ #define D51HIGHT 10 #define D51FUNNEL 7 -#define D51LENGTH 83 +#define D51LENGTH 83 #define D51PATTERNS 6 @@ -102,3 +103,48 @@ #define LCAR6 " (O) (O) " #define DELLN " " + +#define C51HIGHT 11 +#define C51FUNNEL 7 +#define C51LENGTH 87 +#define C51PATTERNS 6 + +#define C51DEL " " + +#define C51STR1 " ___ " +#define C51STR2 " _|_|_ _ __ __ ___________" +#define C51STR3 " D__/ \\_(_)___| |__H__| |_____I_Ii_()|_________|" +#define C51STR4 " | `---' |:: `--' H `--' | |___ ___| " +#define C51STR5 " +|~~~~~~~~++::~~~~~~~H~~+=====+~~~~~~|~~||_| |_|| " +#define C51STR6 " || | :: H +=====+ | |:: ...| " +#define C51STR7 "| | _______|_::-----------------[][]-----| | " + +#define C51WH61 "| /~~ || |-----/~~~~\\ /[I_____I][][] --|||_______|__" +#define C51WH62 "------'|oOo|==[]=- || || | ||=======_|__" +#define C51WH63 "/~\\____|___|/~\\_| O=======O=======O |__|+-/~\\_| " +#define C51WH64 "\\_/ \\_/ \\____/ \\____/ \\____/ \\_/ " + +#define C51WH51 "| /~~ || |-----/~~~~\\ /[I_____I][][] --|||_______|__" +#define C51WH52 "------'|oOo|===[]=- || || | ||=======_|__" +#define C51WH53 "/~\\____|___|/~\\_| O=======O=======O |__|+-/~\\_| " +#define C51WH54 "\\_/ \\_/ \\____/ \\____/ \\____/ \\_/ " + +#define C51WH41 "| /~~ || |-----/~~~~\\ /[I_____I][][] --|||_______|__" +#define C51WH42 "------'|oOo|===[]=- O=======O=======O | ||=======_|__" +#define C51WH43 "/~\\____|___|/~\\_| || || |__|+-/~\\_| " +#define C51WH44 "\\_/ \\_/ \\____/ \\____/ \\____/ \\_/ " + +#define C51WH31 "| /~~ || |-----/~~~~\\ /[I_____I][][] --|||_______|__" +#define C51WH32 "------'|oOo|==[]=- O=======O=======O | ||=======_|__" +#define C51WH33 "/~\\____|___|/~\\_| || || |__|+-/~\\_| " +#define C51WH34 "\\_/ \\_/ \\____/ \\____/ \\____/ \\_/ " + +#define C51WH21 "| /~~ || |-----/~~~~\\ /[I_____I][][] --|||_______|__" +#define C51WH22 "------'|oOo|=[]=- O=======O=======O | ||=======_|__" +#define C51WH23 "/~\\____|___|/~\\_| || || |__|+-/~\\_| " +#define C51WH24 "\\_/ \\_/ \\____/ \\____/ \\____/ \\_/ " + +#define C51WH11 "| /~~ || |-----/~~~~\\ /[I_____I][][] --|||_______|__" +#define C51WH12 "------'|oOo|=[]=- || || | ||=======_|__" +#define C51WH13 "/~\\____|___|/~\\_| O=======O=======O |__|+-/~\\_| " +#define C51WH14 "\\_/ \\_/ \\____/ \\____/ \\____/ \\_/ " diff -Nru sl-3.03/sl.txt sl-5.02/sl.txt --- sl-3.03/sl.txt 1994-01-18 17:23:25.000000000 +0000 +++ sl-5.02/sl.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -------------------------------------------------------------------------------- - ==== ________ ___________ - _D _| |_______/ \__I_I_____===__|_________| - |(_)--- | H\________/ | | =|___ ___| - / | | H | | | | ||_| |_|| - | | | H |__--------------------| [___] | - | ________|___H__/__|_____/[][]~\_______| | - |/ | |-----------I_____I [][] [] D |=======|__ -__/ =| o |=-~~\ /~~\ /~~\ /~~\ ____Y___________|__ - |/-=|___|| || || || |_____/~\___/ - \_/ \__/ \__/ \__/ \__/ \_/ -------------------------------------------------------------------------------- - - - _________________ - _| \_____A - =| | - -| | -__|________________________|_ -|__________________________|_ - |_D__D__D_| |_D__D__D_| - \_/ \_/ \_/ \_/ -------------------------------------------------------------------------------- \ No newline at end of file