home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
unix
/
volume26
/
banners-1.1
/
part05
< prev
next >
Wrap
Text File
|
1993-04-11
|
23KB
|
1,570 lines
Newsgroups: comp.sources.unix
From: fkk@stasys.sta.sub.org (Frank Kaefer)
Subject: v26i145: banners - a collection of banner programs, V1.1, Part05/07
Sender: unix-sources-moderator@vix.com
Approved: paul@vix.com
Submitted-By: fkk@stasys.sta.sub.org (Frank Kaefer)
Posting-Number: Volume 26, Issue 145
Archive-Name: banners-1.1/part05
#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of archive 5 (of 7)."
# Contents: banner-05/cursive.c
# Wrapped by vixie@gw.home.vix.com on Sun Apr 11 23:19:21 1993
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'banner-05/cursive.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'banner-05/cursive.c'\"
else
echo shar: Extracting \"'banner-05/cursive.c'\" \(19392 characters\)
sed "s/^X//" >'banner-05/cursive.c' <<'END_OF_FILE'
X/* CURSIVE SIGNATURE PROGRAM Version 0.10
X * (c) 1985 - Jan Wolter
X *
X * Purpose: This program translates text into crude cursive script.
X * It works on any terminal with a fairly normal character
X * set (must have backslashes and underscores and suchlike).
X * The font includes all upper and lower case letters, most
X * punctuation, and a few symbols. No numbers are included
X * (It's difficult to make a nice italicized set of numbers).
X * Cursive was originally written to generate fancy signatures
X * for electronic mail messages, but other uses may occur to
X * you. The attractiveness of the font varies greatly with
X * the display device.
X *
X * Usage: If no command line arguments are given, cursive reads the
X * text to translate from standard input. Otherwise the args
X * are translated (e.g. "cursive Jan Wolter" prints my name).
X * Output is always to standard output. A couple command line
X * arguments are recognized:
X *
X * -in Sets the amount of space to insert between letters.
X * The default is "-i1". "-i0" gives interesting
X * results.
X * -tn Sets the length of the trailing line off the end
X * of each word. The default is "-t1".
X *
X * One character in the text is treated in a special way:
X *
X * '_' Can be inserted in text to slightly lengthen the
X * the spacing between two letters, or add a longer
X * tail to the end of a word.
X *
X * Internals: Unfortunately, the program is a kludge and the font is
X * somewhat difficult to edit. It should be easy to port
X * though. Systems with short integers or unsigned characters
X * should be no problem. You should probably run "xstr" on the
X * font.c file, but if you haven't got "xstr", just compiling it
X * the usual way works fine.
X *
X * Copyright: Both the cursive program and the font it generates are
X * copyrighted by yours truly. However, both may be used
X * and distributed freely. You even have my permission to
X * sell it, or include in it a system that you sell. I only
X * ask that my name be retained on this program, or any direct
X * decendents of this program with approximately the same
X * visibility as in this posting.
X *
X * Mail: I'm interested in any comments you have on this program.
X * I can be mailed at "janc@crim.eecs.umich.edu". Better yet,
X * if you are into teleconferencing, call M-Net at (313) 994-6333
X * and type "newuser" at the "login:" prompt to give yourself an
X * account. Send mail to janc, or join the "ugames" conference.
X *
X * Have fun,
X * ___ _ __ _
X * ( > ' ) / // _/_
X * __/___. ____ / / / __|/ / _ __
X * / / (_/|_/ / <__ (_(_/ (_) \_<__</_/ (__
X * <_/
X */
X
X#include <stdio.h>
X
X
X/*
X#include "cursive.h"
X*/
X
X/*****************************************************************************
X * "cursive.h" *
X *****************************************************************************/
X
struct letter {
X char *line[6]; /* What's on each of the six lines */
X char spcs[6]; /* Number of leading spaces for each */
X short tailin,tailout; /* Where the lines in and out go */
X };
X
X/* Special Codes for Character Table */
X
X#define XX -1 /* Ignore character */
X#define SP -2 /* Space */
X#define ST -3 /* Extend trailer */
X#define SA -4 /* Alternate font number */ /* Not used */
X#define SN -5 /* Numbers */ /* Not used */
X
X#define CHARWIDTH 10
X
extern struct letter list[];
extern short code1[], code2[];
X
char *buffer[6]; /* memory buffers to build up line in */
int c[6]; /* current index in each of the buffer lines */
int tail[6]; /* which buffer lines have tails in them */
int lasttail; /* which line was the last letter's tail */
int space; /* how much white space before the next letter */
int interspace = 1; /* how much to spread adjacent letters out */
int taillen = 1; /* how long the tails on ends of words should be */
char firstletter; /* is this the first letter on the line? */
char message[256] = ""; /* message to print */
X
X/*
X * end of "cursive.h"
X */
X
char *malloc();
X
main(argc,argv)
int argc;
char **argv;
X{
int i;
char *s,*m;
char ch;
X
X m = message;
X for (i = 1; i < argc; i++)
X {
X if (*argv[i] == '-')
X switch(ch = argv[i][1])
X {
X case 'i':
X case 't':
X s = argv[i]+2;
X if (*s == '\000')
X if (++i < argc)
X s = argv[i];
X if (*s < '0' || *s > '9')
X {
X printf("%s: Illegal value %s\n",
X argv[0],s);
X exit(1);
X }
X if (ch == 'i')
X interspace = atoi(s);
X else
X taillen = atoi(s);
X break;
X default:
X printf("usage: %s [-tn] [-in] message\n",
X argv[0]);
X exit(1);
X }
X else
X {
X if (m != message)
X *(m++) = ' ';
X for (s=argv[i]; *s != '\000'; s++)
X *(m++) = *s;
X }
X }
X /* Do the deed */
X if (m != message)
X {
X /* Message from the arg list */
X *(m++) = 0;
X prline(message);
X }
X else
X {
X /* Message from standard input */
X while (gets(message) != NULL)
X prline(message);
X }
X}
X
X
X/* Add the given letter to the end of the current line */
X
place(let)
struct letter *let;
X{
int i,j,n;
int col;
int max = -10000;
char pad;
char *l;
X
X if (firstletter)
X {
X col = space; /* Leading spaces */
X firstletter = 0;
X }
X else
X {
X /* Find the furthest left position we can place this letter */
X for(i=0; i<6; i++)
X {
X if (let->line[i][0] != '\000' &&
X (col = c[i] - let->spcs[i]) > max)
X max = col;
X }
X
X /* Insert some spaces between letters */
X col = max + space + interspace;
X }
X
X for(i=0; i<6; i++)
X
X /* If Nothing on this Line, Skip It */
X if (let->line[i][0] != '\000')
X {
X /* Number of Spaces to Put on this Line? */
X n = col - c[i] + let->spcs[i];
X
X /* Flyers off Ends of Letters */
X if (tail[i])
X for (j = 0;
X j < 5 && n > space + 2; j++,n--)
X buffer[i][c[i]++] = '_';
X
X /* Connecting Lines Between Letters */
X pad = (lasttail == i && let->tailin == i) ? '_' : ' ';
X
X /* In the middle of the intersection of South and */
X /* East University, someone is playing the piano. */
X for ( ; n > 0; n--)
X buffer[i][c[i]++] = pad;
X
X /* Copy in the letter text */
X for (l = let->line[i]; *l != '\000'; l++)
X buffer[i][c[i]++] = *l;
X
X tail[i] = (i == let->tailout);
X }
X
X lasttail = let->tailout;
X space = 0;
X}
X
X/* Lengthen the last trailer by n */
tailer(n)
int n;
X{
int j;
X if (lasttail >= 0)
X for (j = 0; j < n; j++)
X buffer[lasttail][c[lasttail]++] = '_';
X}
X
X/* Handle a line */
prline(s)
char *s;
X{
int l,i;
char *ch;
short lcode;
X
X lasttail = -1;
X firstletter = 1;
X space = 0;
X /* Get some memory to put the output into */
X l = strlen(s) * (CHARWIDTH + interspace);
X for (i=0;i<6;i++)
X {
X buffer[i] = malloc((unsigned)l);
X tail[i] = c[i] = 0;
X }
X
X /* do each letter */
X for (ch=s; *ch != '\000'; ch++)
X {
X
X *ch &= '\177';
X /* Find the letter */
X lcode = (lasttail != 2) ? code1[*ch] : code2[*ch];
X if (lcode >= 0)
X place(&list[lcode]);
X else
X /* Various Special characters */
X switch(lcode)
X {
X case SP:
X /* Insert white space before next letter */
X tailer(taillen);
X space += 3;
X lasttail = -1;
X break;
X case ST:
X /* Lengthen the last tail */
X if (lasttail >= 0)
X buffer[lasttail][c[lasttail]++] = '_';
X break;
X }
X }
X tailer(taillen);
X
X /* print the line and release the memory */
X for (i=0;i<6;i++)
X {
X buffer[i][c[i]++] = '\n';
X write(1,buffer[i],c[i]);
X free(buffer[i]);
X }
X}
X
X
X/*****************************************************************************
X * "font.c" *
X *****************************************************************************/
X
X/* CURSIVE FONT FILE
X *
X * This font is copyrighted by Jan Wolter. See notes in "cursive.c".
X *
X * Several of the letters are rather ugly, but the wonder is not how
X * well it sings. A few uppercase letters are a bit too tall. The
X * font has to some extent been chosen to make my name look good to me.
X * Those of you with different names will have to take pot luck, or fix
X * it to taste. Editing this file must be done with some care. The
X * numbers on the defines must match the index numbers of the letter
X * in the list[] structure. The six numbers after the character are how
X * many blank spaces must be added to the beginning of each of the six
X * scan lines to make them line up. The last two numbers are the scan
X * line numbers in which the character is connected to the preceeding and
X * succeeding characters. -1 means it isn't. There are two versions of
X * each lower case letter, one with the line coming in on line 2, and one
X * with the line coming in on line 3.
X */
X
X/*
X#include "cursive.h"
X*/
X
struct letter list[] = {
X
X#define LA 0 /* a type 1 */
X { {
X "",
X "",
X "__.",
X "(_/|",
X "",
X ""
X },
X {0,0,1,0,0,0},
X 3,3
X },
X
X#define LB 1 /* b type 1 */
X { {
X "",
X "/",
X "/_",
X "/_)",
X "",
X ""
X },
X {0,2,1,0,0,0},
X 3,2
X },
X
X#define LC 2 /* c type 1 */
X { {
X "",
X "",
X "_.",
X "(_",
X "",
X ""}
X ,
X {0,0,1,0,0,0},
X 3,3
X },
X
X#define LD 3 /* d type 1 */
X { {
X "",
X "/",
X "__/",
X "(_/",
X "",
X ""
X },
X {0,4,1,0,0,0},
X 3,3
X },
X
X#define LE 4 /* e type 1 */
X { {
X "",
X "",
X "_",
X "</",
X "",
X ""
X },
X {0,0,1,0,0,0},
X 3,3
X },
X
X#define LF 5 /* f type 1 */
X { {
X "",
X "/)",
X "// ",
X "//",
X "/>",
X "</ "
X },
X {0,4,3,2,1,0},
X 3,3
X },
X
X#define LG 6 /* g type 1 */
X { {
X "",
X "",
X "_,",
X "(_)",
X "/|",
X "|/"
X },
X {0,0,1,0,1,0},
X 3,3
X },
X
X#define LH 7 /* h type 1 */
X { {
X "",
X "/",
X "/_",
X "/ /",
X "",
X ""
X },
X {0,2,1,0,0,0},
X 3,3
X },
X
X#define LI 8 /* i type 1 */
X { {
X "",
X "",
X "o",
X "<",
X "",
X ""
X },
X {0,0,1,0,0,0},
X 3,3
X },
X
X#define LJ 9 /* j type 1 */
X { {
X "",
X "",
X "o",
X "/",
X "/",
X "-'"
X },
X {0,0,4,3,2,0},
X 3,3
X },
X
X#define LK 10 /* k type 1 */
X { {
X "",
X "/",
X "/_ ",
X "/ <",
X "",
X ""
X },
X {0,2,1,0,0,0},
X 3,3
X },
X
X#define LL 11 /* l type 1 */
X { {
X "_",
X "//",
X "//",
X "</",
X "",
X ""
X },
X {3,2,1,0,0,0},
X 3,3
X },
X
X#define LM 12 /* m type 1 */
X { {
X "",
X "",
X "______",
X "/ / / <",
X "",
X ""
X },
X {0,0,1,0,0,0},
X 3,3
X },
X
X#define LN 13 /* n type 1 */
X { {
X "",
X "",
X "____",
X "/ / <",
X "",
X ""
X },
X {0,0,1,0,0,0},
X 3,3
X },
X
X#define LO 14 /* o type 1 */
X { {
X "",
X "",
X "_",
X "(_)",
X "",
X ""
X },
X {0,0,1,0,0,0},
X 3,2
X },
X
X#define LP 15 /* p type 1 */
X { {
X "",
X "",
X "_",
X "/_)",
X "/",
X "'"
X },
X {0,0,3,2,1,0},
X 3,3
X },
X
X#define LQ 16 /* q type 1 */
X { {
X "",
X "",
X "_,",
X "(_)",
X "/>",
X "|/"
X },
X {0,0,1,0,1,0},
X 3,3
X },
X
X#define LR 17 /* r type 1 */
X { {
X "",
X "",
X "__",
X "/ (",
X "",
X ""
X },
X {0,0,1,0,0,0},
X 3,3
X },
X
X#define LS 18 /* s type 1 */
X { {
X "",
X "",
X "_",
X "/_)",
X "",
X ""
X },
X {0,0,1,0,0,0},
X 3,3
X },
X
X#define LT 19 /* t type 1 */
X { {
X "",
X "_/_",
X "/",
X "<_",
X "",
X ""
X },
X {0,1,1,0,0,0},
X 3,3
X },
X
X#define LU 20 /* u type 1 */
X { {
X "",
X "",
X ". .",
X "(_/",
X "",
X ""
X },
X {0,0,1,0,0,0},
X 3,3
X },
X
X#define LV 21 /* v type 1 */
X { {
X "",
X "",
X ", ",
X "\\/",
X "",
X ""
X },
X {0,0,0,0,0,0},
X 3,2
X },
X
X#define LW 22 /* w type 1 */
X { {
X "",
X "",
X ", , ,",
X "(_(_/",
X "",
X ""
X },
X {0,0,1,0,0,0},
X 3,3
X },
X
X#define LX 23 /* x type 1 */
X { {
X "",
X "",
X "_.,",
X "/ /\\",
X "",
X ""
X },
X {0,0,1,0,0,0},
X 3,3
X },
X
X#define LY 24 /* y type 1 */
X { {
X "",
X "",
X "__ ,",
X "/ (_/",
X "/",
X "'"
X },
X {0,0,1,0,3,2},
X 3,3
X },
X
X#define LZ 25 /* z type 1 */
X { {
X "",
X "",
X "__.",
X "/ |",
X "(|",
X ""
X },
X {0,0,1,0,2,0},
X 3,3
X },
X
X#define NA 26 /* a type 2 */
X { {
X "",
X "",
X "__.",
X "(_/|",
X "",
X ""
X },
X {0,0,1,0,0,0},
X 2,3
X },
X
X#define NB 27 /* b type 2 */
X { {
X "",
X "/",
X "/_",
X "/_)",
X "",
X ""
X },
X {0,2,1,0,0,0},
X 2,2
X },
X
X#define NC 28 /* c type 2 */
X { {
X "",
X "",
X "__.",
X "(_",
X "",
X ""
X },
X {0,0,0,0,0,0},
X 2,3
X },
X
X#define ND 29 /* d type 2 */
X { {
X "",
X "/",
X "___/",
X "(_/",
X "",
X ""
X },
X {0,4,0,0,0,0},
X 2,3
X },
X
X#define NE 30 /* e type 2 */
X { {
X "",
X "",
X "/>",
X "(_",
X "",
X ""
X },
X {0,0,1,0,0,0},
X 2,3
X },
X
X#define NF 31 /* f type 2 */
X { {
X "",
X "/)",
X "//",
X "/_",
X "/>",
X "</"
X },
X {0,4,3,2,1,0},
X 2,3
X },
X
X#define NG 32 /* g type 2 */
X { {
X "",
X "",
X "__,",
X "(_)",
X "/|",
X "|/"
X },
X {0,0,0,0,1,0},
X 2,3
X },
X
X#define NH 33 /* h type 2 */
X { {
X "",
X "/",
X "/_",
X "/ /",
X "",
X ""
X },
X {0,2,1,0,0,0},
X 2,3
X },
X
X#define NI 34 /* i type 2 */
X { {
X "",
X "",
X "o",
X "<_",
X "",
X ""
X },
X {0,0,1,0,0,0},
X 2,3
X },
X
X#define NJ 35 /* j type 2 */
X { {
X "",
X "",
X "_o",
X "/_",
X "/",
X "-'"
X },
X {0,0,3,3,2,0},
X 2,3
X },
X
X#define NK 36 /* k type 2 */
X { {
X "",
X "/",
X "/_",
X "/ <",
X "",
X ""
X },
X {0,2,1,0,0,0},
X 2,3
X },
X
X#define NL 37 /* l type 2 */
X { {
X "_",
X "//",
X "|/",
X "\\",
X "",
X ""
X },
X {2,1,0,1,0,0},
X 2,3
X },
X
X#define NM 38 /* m type 2 */
X { {
X "",
X "",
X "_______",
X "/ / / <",
X "",
X ""
X },
X {0,0,0,0,0,0},
X 2,3
X },
X
X#define NN 39 /* n type 2 */
X { {
X "",
X "",
X "_____",
X "/ / <",
X "",
X ""
X },
X {0,0,0,0,0,0},
X 2,3
X },
X
X#define NO 40 /* o type 2 */
X { {
X "",
X "",
X "___",
X "(_)",
X "",
X ""
X },
X {0,0,0,0,0,0},
X 2,2
X },
X
X#define NP 41 /* p type 2 */
X { {
X "",
X "",
X "__",
X "/_)",
X "/",
X "'"
X },
X {0,0,2,2,1,0},
X 2,3
X },
X
X#define NQ 42 /* q type 2 */
X { {
X "",
X "",
X "__,",
X "(_)",
X "/>",
X "|/"
X },
X {0,0,0,0,1,0},
X 2,3
X },
X
X#define NR 43 /* r type 2 */
X { {
X "",
X "",
X ",_",
X "(",
X "",
X ""
X },
X {0,0,0,1,0,0},
X 2,3
X },
X
X#define NS 44 /* s type 2 */
X { {
X "",
X "",
X "___ ",
X "\\_)_",
X "",
X ""
X },
X {0,0,0,1,0,0},
X 2,3
X },
X
X#define NT 45 /* t type 2 */
X { {
X "",
X "_/_",
X "_/",
X "(_",
X "",
X ""
X },
X {0,1,0,0,0,0},
X 2,3
X },
X
X#define NU 46 /* u type 2 */
X { {
X "",
X "",
X "_. .",
X "(_/",
X "",
X ""
X },
X {0,0,0,0,0,0},
X 2,3
X },
X
X#define NV 47 /* v type 2 */
X { {
X "",
X "",
X " .",
X "\\/",
X "",
X ""
X },
X {0,0,0,0,0,0},
X 2,3
X },
X
X#define NW 48 /* w type 2 */
X { {
X "",
X "",
X "_, , ,",
X "(_(_/",
X "",
X ""
X },
X {0,0,0,0,0,0},
X 2,3
X },
X
X#define NX 49 /* x type 2 */
X { {
X "",
X "",
X "_.,",
X "/\\",
X "",
X ""
X },
X {0,0,0,1,0,0},
X 2,3
X },
X
X#define NY 50 /* y type 2 */
X { {
X "",
X "",
X "_ ,",
X "(_/__",
X "/",
X "'"
X },
X {0,0,0,0,1,0},
X 2,3
X },
X
X#define NZ 51 /* z type 2 */
X { {
X "",
X "",
X "__.",
X "|",
X "(|",
X ""
X },
X {0,0,0,2,1,0},
X 2,3
X },
X
X#define UA 52 /* A */
X { {
X "__",
X "/ )",
X "/--/",
X "/ (",
X "",
X ""
X },
X {3,2,1,0,0,0},
X 3,3
X },
X
X#define UB 53 /* B */
X { {
X "__",
X "/ )",
X "/--<",
X "/___/",
X "",
X ""
X },
X {3,2,1,0,0,0},
X 3,3
X },
X
X#define UC 54 /* C */
X { {
X "__",
X "/ )",
X "/",
X "(__/",
X "",
X ""
X },
X {3,2,1,0,0,0},
X -1,-1
X },
X
X#define UD 55 /* D */
X { {
X "__",
X "/ )",
X "/ /",
X "/__/",
X "",
X ""
X },
X {3,2,1,0,0,0},
X 3,3
X },
X
X#define UE 56 /* E */
X { {
X "__",
X "/ `",
X "/--",
X "(___,",
X "",
X ""
X },
X {3,2,1,0,0,0},
X -1,-1
X },
X
X#define UF 57 /* F */
X { {
X "_____",
X " / '",
X ",-/-,",
X "(_/",
X "",
X ""
X },
X {3,3,1,0,0,0},
X -1,-1
X },
X
X#define UG 58 /* G */
X { {
X "() ,",
X "/`-'|",
X "/ /",
X "/__-<",
X "",
X ""
X },
X {2,2,1,0,0,0},
X -1,3
X },
X
X#define UH 59 /* H */
X { {
X "_ ,",
X "' ) /",
X "/--/",
X "/ (",
X "",
X ""
X },
X {1,0,1,0,0,0},
X -1,3
X },
X
X#define UI 60 /* I */
X { {
X "_",
X "| )",
X ",---|/",
X "\\_/ \\",
X "",
X ""
X },
X {5,4,0,1,0,0},
X -1,3
X },
X
X#define UJ 61 /* J */
X { {
X "___",
X "( >",
X "__/",
X "/ /",
X "<_/",
X ""
X },
X {2,1,2,1,0,0},
X -1,2
X },
X
X#define UK 62 /* K */
X { {
X "_ ,",
X "' ) /",
X "/-<",
X "/ )",
X "",
X ""
X },
X {1,0,1,0,0,0},
X -1,-1
X },
X
X#define UL 63 /* L */
X { {
X "_",
X "_//",
X "/",
X "/___",
X "",
X ""
X },
X {3,1,1,0,0,0},
X -1,-1
X },
X
X#define UM 64 /* M */
X { {
X "_ _ _",
X "' ) ) )",
X "/ / /",
X "/ ' (",
X "",
X ""
X },
X {1,0,1,0,0,0},
X -1,3
X },
X
X#define UN 65 /* N */
X { {
X "_ __",
X "' ) )",
X "/ /",
X "/ (",
X "",
X ""
X },
X {1,0,1,0,0,0},
X -1,3
X },
X
X#define UO 66 /* O */
X { {
X "__",
X "/ ')",
X "/ /",
X "(__/",
X "",
X ""
X },
X {3,2,1,0,0,0},
X -1,-1
X },
X
X#define UP 67 /* P */
X { {
X "_ __",
X "' ) )",
X "/--'",
X "/",
X "",
X ""
X },
X {1,0,1,0,0,0},
X -1,-1
X },
X
X#define UQ 68 /* Q */
X { {
X "__",
X "/ )",
X "/ /",
X "(_\\/",
X "`",
X ""
X },
X {3,2,1,0,3,0},
X -1,-1
X },
X
X#define UR 69 /* R */
X { {
X "_ __",
X "' ) )",
X "/--'",
X "/ \\",
X "",
X ""
X },
X {1,0,1,0,0,0},
X -1,3
X },
X
X#define US 70 /* S */
X { {
X "()",
X "/\\",
X "/ )",
X "/__/_",
X "",
X ""
X },
X {2,2,1,0,0,0},
X -1,3
X },
X
X#define UT 71 /* T */
X { {
X "______",
X "/ ",
X "--/",
X "(_/",
X "",
X ""
X },
X {2,4,1,0,0,0},
X -1,-1
X },
X
X#define UU 72 /* U */
X { {
X "_ _",
X "' ) /",
X "/ /",
X "(__/",
X "",
X ""
X },
X {1,0,1,0,0,0},
X -1,0
X },
X
X#define UV 73 /* V */
X { {
X "_ ",
X "' ) /",
X "( /",
X "\\/",
X "",
X ""
X },
X {1,0,1,2,0,0},
X -1,0
X },
X
X#define UW 74 /* W */
X { {
X "_ ",
X "' ) /",
X "/ / /",
X "(_(_/",
X "",
X ""
X },
X {1,0,1,0,0,0},
X -1,0
X },
X
X#define UX 75 /* X */
X { {
X "_ ,",
X "' \\ /",
X "X",
X "/ \\",
X "",
X ""
X },
X {1,0,3,2,0,0},
X -1,3
X },
X
X#define UY 76 /* Y */
X { {
X "_ ,",
X "' ) /",
X "/ /",
X "(__/",
X "//",
X "(/"
X },
X {1,0,1,0,1,0},
X -1,3
X },
X
X#define UZ 77 /* Z */
X { {
X "___",
X "/",
X "/",
X "/__",
X "",
X ""
X },
X {0,2,1,0,0,0},
X -1,-1
X },
X
X#define PE 78 /* ! */
X { {
X "/",
X "/",
X "'",
X "o",
X "",
X ""
X },
X {3,2,1,0,0,0},
X -1,-1
X },
X
X#define PU 79 /* " */
X { {
X "o o",
X "' '",
X "",
X "",
X "",
X ""
X },
X {0,0,0,0,0,0},
X -1,-1
X },
X
X#define PX 80 /* # */
X { {
X "/ /",
X "-/-/-",
X "-/-/-",
X "/ /",
X "",
X ""
X },
X {3,1,0,0,0,0},
X -1,-1
X },
X
X#define PK 81 /* $ */
X { {
X ",-/-",
X "(_/",
X "/ )",
X "-/-'",
X "",
X ""
X },
X {2,1,2,0,0,0},
X -1,-1
X },
X
X#define PF 82 /* ' */
X { {
X "o",
X "'",
X "",
X "",
X "",
X ""
X },
X {0,0,0,0,0,0},
X -1,-1
X },
X
X#define PC 83 /* , */
X { {
X "",
X "",
X "",
X "o",
X "'",
X ""
X },
X {0,0,0,0,0,0},
X -1,-1
X },
X
X#define PM 84 /* - */
X { {
X "",
X "",
X "---",
X "",
X "",
X ""
X },
X {0,0,0,0,0,0},
X -1,-1
X },
X
X#define PP 85 /* . */
X { {
X "",
X "",
X "",
X "o",
X "",
X ""
X },
X {0,0,0,0,0,0},
X -1,-1
X },
X
X#define PD 86 /* : */
X { {
X "",
X "o",
X "",
X "o",
X "",
X ""
X },
X {0,2,0,0,0,0},
X -1,-1
X },
X
X#define PS 87 /* ; */
X { {
X "",
X "o",
X "",
X "o",
X "'",
X ""
X },
X {0,2,0,0,0,0},
X -1,-1
X },
X
X#define PQ 88 /* ? */
X { {
X "__",
X "__)",
X "/",
X "o",
X "",
X ""
X },
X {2,2,1,0,0,0},
X -1,-1
X },
X
X#define PB 89 /* ` */
X { {
X "o",
X "`",
X "",
X "",
X "",
X ""
X },
X {0,0,0,0,0,0},
X -1,-1
X }
X };
X
short code1[] = {
X /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 */
X XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX,
X XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX,
X SP, PE, PU, PX, PK, XX, XX, PF, XX, XX, XX, XX, PC, PM, PP, XX,
X SN, SN, SN, SN, SN, SN, SN, SN, SN, SN, PD, PS, XX, XX, XX, PQ,
X XX, UA, UB, UC, UD, UE, UF, UG, UH, UI, UJ, UK, UL, UM, UN, UO,
X UP, UQ, UR, US, UT, UU, UV, UW, UX, UY, UZ, XX, XX, XX, XX, ST,
X PB, LA, LB, LC, LD, LE, LF, LG, LH, LI, LJ, LK, LL, LM, LN, LO,
X LP, LQ, LR, LS, LT, LU, LV, LW, LX, LY, LZ, XX, XX, XX, XX, XX };
X
short code2[] = {
X /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 */
X XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX,
X XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX, XX,
X SP, PE, PU, PX, PK, XX, XX, PF, XX, XX, XX, XX, PC, PM, PP, XX,
X SN, SN, SN, SN, SN, SN, SN, SN, SN, SN, PD, PS, XX, XX, XX, PQ,
X XX, UA, UB, UC, UD, UE, UF, UG, UH, UI, UJ, UK, UL, UM, UN, UO,
X UP, UQ, UR, US, UT, UU, UV, UW, UX, UY, UZ, XX, XX, XX, XX, ST,
X PB, NA, NB, NC, ND, NE, NF, NG, NH, NI, NJ, NK, NL, NM, NN, NO,
X NP, NQ, NR, NS, NT, NU, NV, NW, NX, NY, NZ, XX, XX, XX, XX, XX };
X/*
X * end of "font.c"
X */
END_OF_FILE
if test 19392 -ne `wc -c <'banner-05/cursive.c'`; then
echo shar: \"'banner-05/cursive.c'\" unpacked with wrong size!
fi
# end of 'banner-05/cursive.c'
fi
echo shar: End of archive 5 \(of 7\).
cp /dev/null ark5isdone
MISSING=""
for I in 1 2 3 4 5 6 7 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 7 archives.
rm -f ark[1-9]isdone
else
echo You still need to unpack the following archives:
echo " " ${MISSING}
fi
## End of shell archive.
exit 0