Newsgroups: comp.sources.unix
From: fkk@stasys.sta.sub.org (Frank Kaefer)
Subject: v26i111: banners - a collection of banner programs, Part03/05
Sender: unix-sources-moderator@vix.com
Approved: paul@vix.com

Submitted-By: fkk@stasys.sta.sub.org (Frank Kaefer)
Posting-Number: Volume 26, Issue 111
Archive-Name: banners/part03

#! /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 3 (of 5)."
# Contents:  banner-2/banner.c banner-3/banr.c banner-5/cursive.c
#   banner-5/kbandat.c banner-9/data.c cursive-2/font.c
# Wrapped by vixie@gw.home.vix.com on Thu Apr  8 12:26:14 1993
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'banner-2/banner.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'banner-2/banner.c'\"
else
echo shar: Extracting \"'banner-2/banner.c'\" \(14453 characters\)
sed "s/^X//" >'banner-2/banner.c' <<'END_OF_FILE'
X/******************************
X *   Banner.C, (c)1990 by     *
X *     Michael Baudisch       *
X ******************************/
X
X/*************************************************************************/
X/*   Achtung!! Hier bitte fuer den jeweiligen Computer-typ einstellen!!  */
X/*************************************************************************/
X/* #define MS_DOS  */       /* Nur fuer MS-DOS-computer + kompatible */
X/* #define AMIGA   */       /* Fuer die Amiganer */
X#   define UNIX             /* Fuer Unix-ler */
X#   define INTERN_DATA      /* Nur das eingebaute Data-file zaehlt */
X
X#ifndef MS_DOS
X# ifndef INTERN_DATA
X#  define STD_DATA_FILE ""  /* Fuer Nicht-MsDos'ler: Path+name vom StdData */
X# endif
X#endif                          
X/*************************************************************************/
X
X#ifdef MS_DOS
X#   include <process.h>
X#endif
X
X#ifndef AMIGA
X#   include <malloc.h>
X#   include <string.h>
X#endif
X
X#include <stdio.h>
X#include <ctype.h>
X
X#ifdef INTERN_DATA
unsigned char intern_data[] = {
X0x012,0x055,0x020,0x000,0x0ff,0x041,0x001,0x007,0x042,0x001,0x00f,0x043,0x001,0x017,0x044,0x001,
X0x01f,0x045,0x001,0x027,0x046,0x001,0x02f,0x047,0x001,0x037,0x048,0x001,0x03f,0x049,0x001,0x047,
X0x04a,0x001,0x04f,0x04b,0x001,0x057,0x04c,0x001,0x05f,0x04d,0x001,0x067,0x04e,0x001,0x06f,0x04f,
X0x001,0x077,0x050,0x001,0x07f,0x051,0x001,0x087,0x052,0x001,0x08f,0x053,0x001,0x097,0x054,0x001,
X0x09f,0x055,0x001,0x0a7,0x056,0x001,0x0af,0x057,0x001,0x0b7,0x058,0x001,0x0bf,0x059,0x001,0x0c7,
X0x05a,0x001,0x0cf,0x03a,0x001,0x0d7,0x03b,0x001,0x0df,0x03d,0x001,0x0e7,0x03f,0x001,0x0ef,0x028,
X0x001,0x0f7,0x029,0x001,0x0ff,0x02d,0x002,0x007,0x02f,0x002,0x00f,0x021,0x002,0x017,0x02e,0x002,
X0x01f,0x02c,0x002,0x027,0x02b,0x002,0x02f,0x02a,0x002,0x037,0x022,0x002,0x03f,0x023,0x002,0x047,
X0x030,0x002,0x04f,0x031,0x002,0x057,0x032,0x002,0x05f,0x033,0x002,0x067,0x034,0x002,0x06f,0x035,
X0x002,0x077,0x036,0x002,0x07f,0x037,0x002,0x087,0x038,0x002,0x08f,0x039,0x002,0x097,0x027,0x002,
X0x09f,0x05c,0x002,0x0a7,0x061,0x002,0x0af,0x062,0x002,0x0b7,0x063,0x002,0x0bf,0x064,0x002,0x0c7,
X0x065,0x002,0x0cf,0x066,0x002,0x0d7,0x067,0x002,0x0df,0x068,0x002,0x0e7,0x069,0x002,0x0ef,0x06a,
X0x002,0x0f7,0x06b,0x002,0x0ff,0x06c,0x003,0x007,0x06d,0x003,0x00f,0x06e,0x003,0x017,0x06f,0x003,
X0x01f,0x070,0x003,0x027,0x071,0x003,0x02f,0x072,0x003,0x037,0x073,0x003,0x03f,0x074,0x003,0x047,
X0x075,0x003,0x04f,0x076,0x003,0x057,0x077,0x003,0x05f,0x078,0x003,0x067,0x079,0x003,0x06f,0x07a,
X0x003,0x077,0x03c,0x003,0x07f,0x03e,0x003,0x087,0x07c,0x003,0x08f,0x05f,0x003,0x097,0x020,0x003,
X0x09f,0x000,0x000,0x000,0x000,0x000,0x000,0x000,0x000,0x018,0x03c,0x066,0x066,0x07e,0x066,0x066,
X0x000,0x0fc,0x066,0x066,0x07c,0x066,0x066,0x0fc,0x000,0x03c,0x066,0x0c0,0x0c0,0x0c0,0x066,0x03c,
X0x000,0x0f8,0x06c,0x066,0x066,0x066,0x06c,0x0f8,0x000,0x0fe,0x062,0x068,0x078,0x068,0x062,0x0fe,
X0x000,0x0fe,0x062,0x068,0x078,0x068,0x060,0x0f0,0x000,0x03c,0x066,0x0c0,0x0c0,0x0ce,0x066,0x03e,
X0x000,0x066,0x066,0x066,0x07e,0x066,0x066,0x066,0x000,0x07e,0x018,0x018,0x018,0x018,0x018,0x07e,
X0x000,0x01e,0x00c,0x00c,0x00c,0x0cc,0x0cc,0x078,0x000,0x0e6,0x066,0x06c,0x078,0x06c,0x066,0x0e6,
X0x000,0x0f0,0x060,0x060,0x060,0x062,0x066,0x0fe,0x000,0x0c6,0x0ee,0x0fe,0x0fe,0x0d6,0x0c6,0x0c6,
X0x000,0x0c6,0x0e6,0x0f6,0x0de,0x0ce,0x0c6,0x0c6,0x000,0x038,0x06c,0x0c6,0x0c6,0x0c6,0x06c,0x038,
X0x000,0x0fc,0x066,0x066,0x07c,0x060,0x060,0x0f0,0x000,0x038,0x06c,0x0c6,0x0c6,0x0da,0x0cc,0x076,
X0x000,0x0fc,0x066,0x066,0x07c,0x06c,0x066,0x0e6,0x000,0x03c,0x066,0x060,0x03c,0x006,0x066,0x03c,
X0x000,0x07e,0x05a,0x018,0x018,0x018,0x018,0x03c,0x000,0x066,0x066,0x066,0x066,0x066,0x066,0x03c,
X0x000,0x066,0x066,0x066,0x066,0x066,0x03c,0x018,0x000,0x0c6,0x0c6,0x0c6,0x0d6,0x0fe,0x0ee,0x0c6,
X0x000,0x0c6,0x06c,0x038,0x038,0x06c,0x0c6,0x0c6,0x000,0x066,0x066,0x066,0x03c,0x018,0x018,0x03c,
X0x000,0x0fe,0x0c6,0x08c,0x018,0x032,0x066,0x0fe,0x000,0x000,0x000,0x018,0x018,0x000,0x018,0x018,
X0x000,0x000,0x000,0x018,0x018,0x000,0x018,0x018,0x030,0x000,0x000,0x07e,0x000,0x000,0x07e,0x000,
X0x000,0x03c,0x066,0x066,0x00c,0x018,0x000,0x018,0x000,0x00c,0x018,0x030,0x030,0x030,0x018,0x00c,
X0x000,0x030,0x018,0x00c,0x00c,0x00c,0x018,0x030,0x000,0x000,0x000,0x000,0x07e,0x000,0x000,0x000,
X0x000,0x006,0x00c,0x018,0x030,0x060,0x0c0,0x080,0x000,0x018,0x018,0x018,0x018,0x018,0x000,0x018,
X0x000,0x000,0x000,0x000,0x000,0x000,0x018,0x018,0x000,0x000,0x000,0x000,0x000,0x000,0x018,0x018,
X0x030,0x000,0x018,0x018,0x07e,0x018,0x018,0x000,0x000,0x000,0x066,0x03c,0x0ff,0x03c,0x066,0x000,
X0x000,0x066,0x066,0x066,0x000,0x000,0x000,0x000,0x000,0x06c,0x06c,0x0fe,0x06c,0x0fe,0x06c,0x06c,
X0x000,0x07c,0x0c6,0x0ce,0x0d6,0x0e6,0x0c6,0x07c,0x000,0x018,0x038,0x018,0x018,0x018,0x018,0x07e,
X0x000,0x03c,0x066,0x006,0x03c,0x060,0x066,0x07e,0x000,0x03c,0x066,0x006,0x01c,0x006,0x066,0x03c,
X0x000,0x01c,0x03c,0x06c,0x0cc,0x0fe,0x00c,0x01e,0x000,0x07e,0x062,0x060,0x07c,0x006,0x066,0x03c,
X0x000,0x03c,0x066,0x060,0x07c,0x066,0x066,0x03c,0x000,0x07e,0x046,0x006,0x00c,0x018,0x018,0x018,
X0x000,0x03c,0x066,0x066,0x03c,0x066,0x066,0x03c,0x000,0x03c,0x066,0x066,0x03e,0x006,0x066,0x03c,
X0x000,0x00c,0x018,0x030,0x000,0x000,0x000,0x000,0x000,0x0c0,0x060,0x030,0x018,0x00c,0x006,0x002,
X0x000,0x000,0x000,0x078,0x00c,0x07c,0x0cc,0x076,0x000,0x0e0,0x060,0x07c,0x066,0x066,0x066,0x0dc,
X0x000,0x000,0x000,0x03c,0x066,0x060,0x066,0x03c,0x000,0x01c,0x00c,0x07c,0x0cc,0x0cc,0x0cc,0x076,
X0x000,0x000,0x000,0x03c,0x066,0x07e,0x060,0x03c,0x000,0x01c,0x036,0x030,0x078,0x030,0x030,0x078,
X0x000,0x000,0x000,0x03e,0x066,0x066,0x03e,0x006,0x07c,0x0e0,0x060,0x06c,0x076,0x066,0x066,0x0e6,
X0x000,0x018,0x000,0x038,0x018,0x018,0x018,0x03c,0x000,0x006,0x000,0x00e,0x006,0x006,0x066,0x066,
X0x03c,0x0e0,0x060,0x066,0x06c,0x078,0x06c,0x0e6,0x000,0x038,0x018,0x018,0x018,0x018,0x018,0x03c,
X0x000,0x000,0x000,0x06c,0x0fe,0x0d6,0x0d6,0x0c6,0x000,0x000,0x000,0x0dc,0x066,0x066,0x066,0x066,
X0x000,0x000,0x000,0x03c,0x066,0x066,0x066,0x03c,0x000,0x000,0x000,0x0dc,0x066,0x066,0x07c,0x060,
X0x0f0,0x000,0x000,0x076,0x0cc,0x0cc,0x07c,0x00c,0x01e,0x000,0x000,0x0dc,0x076,0x060,0x060,0x0f0,
X0x000,0x000,0x000,0x03c,0x060,0x03c,0x006,0x07c,0x000,0x030,0x030,0x07c,0x030,0x030,0x036,0x01c,
X0x000,0x000,0x000,0x066,0x066,0x066,0x066,0x03e,0x000,0x000,0x000,0x066,0x066,0x066,0x03c,0x018,
X0x000,0x000,0x000,0x0c6,0x0d6,0x0d6,0x0fe,0x06c,0x000,0x000,0x000,0x0c6,0x06c,0x038,0x06c,0x0c6,
X0x000,0x000,0x000,0x066,0x066,0x066,0x03e,0x006,0x07c,0x000,0x000,0x07e,0x04c,0x018,0x032,0x07e,
X0x000,0x00c,0x018,0x030,0x060,0x030,0x018,0x00c,0x000,0x060,0x030,0x018,0x00c,0x018,0x030,0x060,
X0x000,0x018,0x018,0x018,0x018,0x018,0x018,0x018,0x000,0x000,0x000,0x000,0x000,0x000,0x000,0x000,
X0x0ff,0x000,0x000,0x000,0x000,0x000,0x000,0x000,0x000 };
X#endif
X
typedef unsigned int UINT;
typedef unsigned char UCHAR;
typedef UCHAR * DATA;
X
X/*******************/
X#define VERSION 1.3
X/*******************/
X
X#ifndef SEEK_END
X#define SEEK_END 2
X#endif
X
X#define TRUE    1
X#define FALSE   0
X#define SIZE_LINE ((size_h+1)*size_y)
X#define SIZE_LINE_Y (size_y)
X#define SIZE_CHAR (size_x*size_y)
X#define CLEAR_LINE 1
X#define CLEAR_CHAR 2
X#define CLEAR_ALL (CLEAR_LINE|CLEAR_CHAR)
X#define XMAX (size_h)
X
void main        (/*int argc, char *argv[]*/);
void help        (/*void*/);
void shutdown    (/*char *txt*/);
void clearmem    (/*int was*/);
void newline     (/*void*/);
void writeword   (/*char *txt*/);
void putword     (/*char *txt*/);
void calc_char   (/*char x*/);
void insert_char (/*char chrx*/);
void writechar   (/*char x*/);
int  read_word   (/*FILE *fh, char *txt*/);
void banner_file (/*FILE *fh*/);
X
DATA zs = 0, chr = 0, line = 0;
XFILE *fh = 0;
UCHAR str[256], b_file[80], fchar = ' ', fchar2 = ' ';
int size_h = 80, size_x = 8, size_y = 8;
int xpos, empty = TRUE, chars=FALSE, pipe=FALSE, upper=FALSE;
int italics = FALSE, inverse = FALSE, fcharf = FALSE, ultraflag = FALSE;
X
void main(argc,argv)
int argc;
char *argv[];
X{
long n,m;
void *puffer;
X	*str=*b_file='\0';
X	if(argc==1||(argc==2&&!(strcmp(argv[1],"?")*strcmp(argv[1],"/?")*strcmp
X													(argv[1],"/h"))))
X	{
X		help();
X		shutdown("");
X	}
X	for(n=1;n<argc;n++)
X	{
X		if(*argv[n]=='/')
X		{
X			switch(tolower(argv[n][1]))
X			{
X				case 's':
X					sscanf(&argv[n][3],"%4u",&size_h);
X					break;
X				case 'd':
X					strcpy(str,&argv[n][3]);
X					break;
X				case 'f':
X					strcpy(b_file,&argv[n][3]);
X					break;
X				case '?':
X				case 'h':
X					help();
X					break;
X				case '#':
X					chars=TRUE;
X					break;
X				case 'p':
X					pipe=TRUE;
X					break;
X				case 'u':
X					upper=TRUE;
X					break;
X				case 'r':
X					inverse=TRUE;
X					break;
X				case 'i':
X					italics=TRUE;
X					size_h-=size_y;
X					break;
X				case 'c':
X					fcharf=TRUE;
X					fchar=argv[n][2];
X					if(strlen(argv[n])>3)
X						fchar2=argv[n][3];
X					if(argv[n][4]=='!')
X						ultraflag=TRUE;
X					break;
X				default:
X					shutdown("Falsche Option! Aufruf mit /h oder /? listet alle Optionen.");
X					break;
X			}
X		}
X	}
X	if(!*str)
X	{
X#ifdef MS_DOS
X		strcpy(str,argv[0]);
X		strcpy(str+strlen(str)-3,"DAT");
X#else
X# ifdef STD_DATA_FILE
X		strcpy(str,STD_DATA_FILE);
X# endif
X#endif
X	}
X#ifdef INTERN_DATA
X        zs=(DATA)intern_data;
X#else
X        if(!(fh=fopen(str,"rb")))
X		shutdown("Datenfile nicht gefunden!!");
X	if(fseek(fh,0L,SEEK_END))
X		shutdown("Interner Fehler.");
X	if((n=ftell(fh))==-1)
X		shutdown("Interner Fehler.");
X        rewind(fh);          
X#  ifdef MS_DOS
X	if(!(zs=(DATA)malloc((size_t)n)))
X		shutdown("Zu wenig Speicher!!");
X        fread((void *)zs, (size_t)1, (size_t)n, (FILE *)fh);
X#  else
X        if(!(zs=(DATA)malloc((int)n)))
X                shutdown("Zu wenig Speicher!!");
X        fread((void *)zs, (int)1, (int)n, (FILE *)fh);
X#  endif       
X        fclose(fh);
X#endif
X	if(!(chr=(DATA)malloc(size_x*size_y)))
X		shutdown("Zu wenig Speicher!!");
X	if(!(line=(DATA)malloc(SIZE_LINE)))
X		shutdown("Zu wenig Speicher!!");
X	if( (float)( (int)VERSION*16)+(VERSION-1.0)*10.0<(float)zs[0])
X		shutdown("Datenfile nicht fuer diese Version von Banner.C geeignet.");
X	if(zs[0]<(UCHAR)0x12)
X		upper=TRUE; /* 1.0 und 1.1 unterstuetzen NUR Grossbuchstaben! */
X	clearmem(CLEAR_ALL);
X	xpos=0;
X	for(n=1;n<argc;n++)
X	{
X		if(argv[n][0]!='/')
X		{
X			writeword(argv[n]);
X			if((xpos+=size_x)>XMAX-1)
X				newline();
X		}
X	}
X	if(xpos) newline();
X#ifndef AMIGA
X	if(*b_file)
X	{
X		if(!(fh=fopen(b_file,"rb")))
X			shutdown("Kann zu bannerndes Datenfile nicht finden.");
X		banner_file(fh);
X		fclose(fh);
X		newline();
X	}
X#endif
X	if(pipe)
X		banner_file(stdin);
X	shutdown("");
X}
X
void banner_file(fh)
XFILE *fh;
X{
long m;
X	while(!feof(fh))
X	{
X		m=(long)read_word(fh,str);
X		if(strlen(str))
X		{
X			writeword(str);
X			if((xpos+=size_x)>XMAX-1 || m)
X			{
X				newline();
X				m=0L;
X			}
X		}
X		if(m) newline();
X	}
X}
X
int read_word(fh,txt)
XFILE *fh;
char *txt;
X{
int flag = TRUE, n = 0, ret=0;
char x;
X	while(flag && n<250)
X	{
X		x=(char)fgetc(fh);
X		if(x==' ' || !isprint(x))
X			flag=FALSE;
X		else
X			str[n++]=x;
X		ret=(x=='\n'||x=='\r'||x==(char)0x0a||x==(char)0x0d)?1:0;
X	}
X	str[n]='\0';
X	return(ret);
X}
X
void writeword(txt)
char *txt;
X{
X	if(xpos+size_x*strlen(txt)>XMAX)
X	{
X		if(!xpos)
X			putword(txt);
X		else
X		{
X			newline();
X			writeword(txt);
X			return;
X		}
X	}
X	else
X		putword(txt);
X}
X
void putword(txt)
char *txt;
X{
int n;
X	for(n=0;n<strlen(txt);n++)
X		writechar(txt[n]);
X}
X
void writechar(x)
char x;
X{
char chr = upper?toupper(x):x;
X	calc_char(chr);
X	insert_char(chr);
X	if((xpos+=size_x)>XMAX-1) newline();
X}
X
void calc_char(x)
char x;
X{
int n,m,a,b;
UINT b2;
X	fchar2|=(UCHAR)0x80;
X	clearmem(CLEAR_CHAR);
X	for(n=0,m=-1;n<zs[1] && m<0;n++)
X	{
X		if(zs[2+n*3]==x)
X			m=n;
X	}
X	if(m<0) return;
X	for(n=0;n<8;n++)
X	{
X		b=(int)zs[2+256*zs[m*3+3]+zs[m*3+4]+n];
X		b2=(UINT)(b<0?256+b:b);
X		for(a=0;a<8;a++)
X		{
X			if(b&1)
X				chr[n*8+7-a]=inverse?(UCHAR)fchar2:(chars?x:(fcharf?fchar:'#'));
X			else
X				chr[n*8+7-a]=inverse?(chars?x:(fcharf?fchar:'#')):(UCHAR)fchar2;
X			b>>=1;
X		}
X	}
X}
X
void insert_char(chrx)
char chrx;
X{
int n,m,a;
UCHAR x = fchar2, xold;
X	empty=FALSE;
X	for(n=0;n<8;n++)
X	{
X		for(m=0;m<8;m++)
X		{
X			xold=x;
X			x=chr[8*n+m];
X			if(!ultraflag)
X				line[size_h*n+xpos+m]=(UCHAR)x&0x7f;
X			else
X			{
X				if(x==fchar2 && xold==(chars?chrx:fchar))
X					x=(UCHAR)' ';
X				line[size_h*n+xpos+m]=(UCHAR)x&0x7f;
X			}
X		}
X	}
X}
X
void newline(/*void*/)
X{
int a,b,c,x, wrote, flag;
X	if(empty)
X	{
X		xpos=0;
X		return;
X	}
X	empty=TRUE;
X	xpos=0;
X	for(a=0;a<SIZE_LINE_Y;a++)
X	{
X		wrote=0;
X		if(italics)
X		{
X			for(b=0;b<(SIZE_LINE_Y-a);b++, wrote++)
X				putchar(' ');
X		}
X		for(b=size_h-1,c=0;b>1 && !c;b--)
X		{
X			if(line[size_h*a+b]!=' ' && line[size_h*a+b]!='\0')
X				c=++b;
X		}
X		for(b=0;b<c && b<size_h;b++)
X		{
X			x=(int)line[size_h*a+b];
X			if(!x) x=32;
X			putchar(x);
X			wrote++;
X		}
X		if(wrote<(size_h+(italics?SIZE_LINE_Y:0)))
X			putchar('\n');
X	}
X	clearmem(CLEAR_LINE);
X}
X
void clearmem(was)
int was;
X{
register UINT n;
X	if(was&CLEAR_CHAR)
X	{
X		for(n=0;n<SIZE_CHAR;n++)
X			chr[n]=(char)32;
X	}
X	if(was&CLEAR_LINE)
X	{
X		for(n=0;n<SIZE_LINE;n++)
X			line[n]=(char)0;
X	}
X}
X
void help(/*void*/)
X{
X	printf("\nBanner.c, V%1.1f, (c)1990 by Lizard\n=================================\n",VERSION);
X#ifdef AMIGA
X	puts("( Geschrieben fuer FALCON :-)");
X#endif /* ;-) */
X	puts("Aufruf:   Banner /<option1> /<opt2> /<opt3> [etc... :-)] <text>\n");
X	puts("Moegliche Optionen:\n");
X	puts(" /?          : Dieser Text hier. Auch: /h oder kein Parameter.");
X	puts(" /S:<breite> : Breite des geBANNERten Textes (Horizontal/Gesamt), Default: 80");
X	puts(" /D:<path>   : Anderes Zeichensatz-Datenfile hernehmen.");
X#ifndef AMIGA
X	puts(" /F:<path>   : File <path> bannern.");
X#endif /* Tja, amiga hat nicht fopen("..","rb") !! */
X	puts(" /#          : Die Buchstaben werden anstatt mit #'s mit den jeweiligen Chars");
X	puts("               gebildet.");
X	puts(" /P          : Pipe-option: Von stdin wird der zu bannernde Text gelesen.");
X	puts(" /U          : Alles in Grossbuchstaben umwandeln.");
X	puts(" /R          : Invertierte Darstellung.");
X	puts(" /I          : Italics (schraege Buchstaben)");
X	puts(" /Cxy!       : 'Vordergrundfarbe'=x, 'Hintergrundfarbe'=y. y ist optional.");
X	puts("             : Bei angegebenem '!' wird die Shadow-funktion aktiviert.");
X	puts("-------------------------------------------------------------------");
X}
X
void shutdown(txt)
char *txt;
X{
X#ifdef MS_DOS
X        fcloseall();
X#endif
X#ifndef INTERN_DATA
X        if(zs) free((void *)zs);
X#endif
X	if(chr) free((void *)chr);
X	if(line) free((void *)line);
X	if(*txt) printf("\n%s\n",txt);
X	exit(0);
X}
END_OF_FILE
if test 14453 -ne `wc -c <'banner-2/banner.c'`; then
    echo shar: \"'banner-2/banner.c'\" unpacked with wrong size!
fi
# end of 'banner-2/banner.c'
fi
if test -f 'banner-3/banr.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'banner-3/banr.c'\"
else
echo shar: Extracting \"'banner-3/banr.c'\" \(12385 characters\)
sed "s/^X//" >'banner-3/banr.c' <<'END_OF_FILE'
X/*
X
NAME
X     banr - print strings in large letters
X
SYNOPSIS
X     banr [-n]
X
DESCRIPTION
X     banr prints its standard input in large letters (but smaller than
X     banner(1)) on the standard output.
X
OPTIONS
X     -n  Forces no underlining to be used even if the capability exists.
X
SEE ALSO
X     banner(1)
X
AUTHOR
X     Art Messenger 10/22/87
X     art@wilbur.coyote.trw.com
X
X*/
X
X/* compile with -ltermcap */
X
X#include <stdio.h>
X
X#define	TRUE	1
X#define	FALSE	0
X#define when	break;case
X#define wlse	break;default
X
char usagem[] = "Usage: %s [-n]\n";
X
struct font {
X    struct {
X	char *line,*ulmask;
X    } c[4];
X} character[128] = {	/* the font file: variable width */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x00 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x01 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x02 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x03 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x04 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x05 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x06 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x07 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x08 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x09 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x0a */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x0b */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x0c */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x0d */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x0e */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x0f */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x10 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x11 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x12 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x13 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x14 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x15 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x16 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x17 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x18 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x19 */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x1a */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x1b */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x1c */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x1d */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x1e */
X	{ {"",""},{"",""},{"",""},{"",""} },	/* 0x1f */
X	{ {"  ","  "},
X	  {"  ","  "},
X	  {"  ","  "},
X	  {"  ","  "} },		/* 0x20: ' ' */
X	{ {" "," "},
X	  {"|"," "},
X	  {"."," "},
X	  {" "," "} },			/* 0x21: ! */
X	{ {"  ","  "},
X	  {"//","  "},
X	  {"  ","  "},
X	  {"  ","  "} },		/* 0x22: " */
X	{ {"   ","   "},
X	  {"|_|","_ _"},
X	  {"|_|","_ _"},
X	  {"| |","   "} },		/* 0x23: # */
X	{ {" __", "   "},
X	  {"(| ", " _ "},
X	  {"_|)", " _ "},
X	  {"   ", "   "} },		/* 0x24: $ */
X	{ {"  ","  "},
X	  {"o/","  "},
X	  {"/o","  "},
X	  {"  ","  "} },		/* 0x25: % */
X	{ {"  ","  "},
X	  {"o ","  "},
X	  {"(X","  "},
X	  {"  ","  "} },		/* 0x26: & */
X	{ {" "," "},
X	  {"/"," "},
X	  {" "," "},
X	  {" "," "} },			/* 0x27: ' */
X	{ {" "," "},
X	  {"/"," "},
X	  {"\\"," "},
X	  {" "," "} },			/* 0x28: ( */
X	{ {" "," "},
X	  {"\\"," "},
X	  {"/"," "},
X	  {" "," "} },			/* 0x29: ) */
X	{ {"  ","  "},
X	  {"\\/","__"},
X	  {"/\\","  "},
X	  {"  ","  "} },		/* 0x2a: * */
X	{ {"   ","   "},
X	  {"_|_"," _ "},
X	  {" | ","   "},
X	  {"   ","   "} },		/* 0x2b: + */
X	{ {" "," "},
X	  {" "," "},
X	  {"o"," "},
X	  {"/"," "} },			/* 0x2c: , */
X	{ {"  ","  "},
X	  {"__","  "},
X	  {"  ","  "},
X	  {"  ","  "} },		/* 0x2d: - */
X	{ {" "," "},
X	  {" "," "},
X	  {"o"," "},
X	  {" "," "} },			/* 0x2e: . */
X	{ {"  ","  "},
X	  {" /","  "},
X	  {"/ ","  "},
X	  {"  ","  "} },		/* 0x2f: / */
X	{ {" _ ", "   "},
X	  {"/.\\", "   "},
X	  {"\\_/", "   "},
X	  {"   ", "   "} },		/* 0x30: 0 */
X	{ {" ", " "},
X	  {"|", " "},
X	  {"|", " "},
X	  {" ", " "} },			/* 0x31: 1 */
X	{ {"_ ", "  "},
X	  {" )", "  "},
X	  {"/_", "_ "},
X	  {"  ", "  "} },		/* 0x32: 2 */
X	{ {"_ ", "  "},
X	  {"_)", "  "},
X	  {"_)", "  "},
X	  {"  ", "  "} },		/* 0x33: 3 */
X	{ {"   ", "   "},
X	  {"/_|", "_  "},
X	  {"  |", "   "},
X	  {"   ", "   "} },		/* 0x34: 4 */
X	{ {" __", "   "},
X	  {"|_ ", "   "},
X	  {"._)", "   "},
X	  {"   ", "   "} },		/* 0x35: 5 */
X	{ {"   ", "   "},
X	  {" / ", " _ "},
X	  {"(_)", "   "},
X	  {"   ", "   "} },		/* 0x36: 6 */
X	{ {"__", "  "},
X	  {" /", "  "},
X	  {"/ ", "  "},
X	  {"  ", "  "} },		/* 0x37: 7 */
X	{ {" _ ", "   "},
X	  {"(_)", "   "},
X	  {"(_)", "   "},
X	  {"   ", "   "} },		/* 0x38: 8 */
X	{ {" _ ", "   "},
X	  {"(_)", "   "},
X	  {" / ", "   "},
X	  {"   ", "   "} },		/* 0x39: 9 */
X	{ {" ", " "},
X	  {"o", " "},
X	  {"o", " "},
X	  {" ", " "} },			/* 0x3a: : */
X	{ {" ", " "},
X	  {"o", " "},
X	  {"o", " "},
X	  {"/", " "} },			/* 0x3b: ; */
X	{ {" ", " "},
X	  {"/", " "},
X	  {"\\", " "},
X	  {" ", " "} },			/* 0x3c: < */
X	{ {"  ", "  "},
X	  {"__", "  "},
X	  {"__", "  "},
X	  {"  ", "  "} },		/* 0x3d: = */
X	{ {" ", " "},
X	  {"\\", " "},
X	  {"/", " "},
X	  {" ", " "} },			/* 0x3e: > */
X	{ {" _ ", "   "},
X	  {"' )", "   "},
X	  {" ! ", "   "},
X	  {"   ", "   "} },		/* 0x3f: ? */
X	{ {"   ", "   "},
X	  {" _ ", "   "},
X	  {"(Q)", " __"},
X	  {"   ", "   "} },		/* 0x40: @ */
X	{ {" _ ", "    "},
X	  {"/_\\", "   "},
X	  {"| |", "_ _"},
X	  {"   ", "   "} },		/* 0x41: A */
X	{ {"__ ", "   "},
X	  {"|_)", "   "},
X	  {"|_)", "_  "},
X	  {"   ", "   "} },		/* 0x42: B */
X	{ {" _ ", "   "},
X	  {"/ '", "   "},
X	  {"\\_,", "   "},
X	  {"   ", "   "} },		/* 0x43: C */
X	{ {"__ ", "   "},
X	  {"| \\", "   "},
X	  {"|_/", "_  "},
X	  {"   ", "   "} },		/* 0x44: D */
X	{ {"___", "   "},
X	  {"|_ ", "   "},
X	  {"|__", "_  "},
X	  {"   ", "   "} },		/* 0x45: E */
X	{ {"___", "   "},
X	  {"|_ ", "   "},
X	  {"|  ", "_  "},
X	  {"   ", "   "} },		/* 0x46: F */
X	{ {" _ ", "   "},
X	  {"/ _", "   "},
X	  {"\\_|", "   "},
X	  {"   ", "   "} },		/* 0x47: G */
X	{ {"_ _", "   "},
X	  {"|_|", "   "},
X	  {"| |", "_ _"},
X	  {"   ", "   "} },		/* 0x48: H */
X	{ {"_", " "},
X	  {"|", " "},
X	  {"|", "_"},
X	  {" ", " "} },			/* 0x49: I */
X	{ {" _", "  "},
X	  {" |", "  "},
X	  {"\\/", "  "},
X	  {"  ", "  "} },		/* 0x4a: J */
X	{ {"_ _", "   "},
X	  {"|_/", "   "},
X	  {"| \\", "_ _"},
X	  {"   ", "   "} },		/* 0x4b: K */
X	{ {"_  ", "   "},
X	  {"|  ", "   "},
X	  {"|__", "_  "},
X	  {"   ", "   "} },		/* 0x4c: L */
X	{ {"_  _", "    "},
X	  {"|\\/|", "    "},
X	  {"|  |", "_  _"},
X	  {"    ", "    "} },		/* 0x4d: M */
X	{ {"_  _", "    "},
X	  {"|\\ |", "    "},
X	  {"| \\|", "_  _"},
X	  {"    ", "    "} },		/* 0x4e: N */
X	{ {" _ ", "   "},
X	  {"/ \\", "   "},
X	  {"\\_/", "   "},
X	  {"   ", "   "} },		/* 0x4f: O */
X	{ {"__ ", "   "},
X	  {"|_)", "   "},
X	  {"|  ", "_  "},
X	  {"   ", "   "} },		/* 0x50: P */
X	{ {" _ ", "   "},
X	  {"/ \\", "   "},
X	  {"\\_X", "   "},
X	  {"   ", "   "} },		/* 0x51: Q */
X	{ {"__ ", "   "},
X	  {"|_)", "   "},
X	  {"| \\", "_ _"},
X	  {"   ", "   "} },		/* 0x52: R */
X	{ {" _ ", "   "},
X	  {"(_'", "   "},
X	  {",_)", "   "},
X	  {"   ", "   "} },		/* 0x53: S */
X	{ {"___", "   "},
X	  {" | ", "   "},
X	  {" | ", " _ "},
X	  {"   ", "   "} },		/* 0x54: T */
X	{ {"_ _", "   "},
X	  {"| |", "   "},
X	  {"\\_/", "   "},
X	  {"   ", "   "} },		/* 0x55: U */
X	{ {"_  _", "    "},
X	  {"\\  /", "    "},
X	  {" \\/ ", "    "},
X	  {"    ", "    "} },		/* 0x56: V */
X	{ {"_  _", "    "},
X	  {"|  |", "    "},
X	  {"\\/\\/", "    "},
X	  {"    ", "    "} },		/* 0x57: W */
X	{ {"_ _", "   "},
X	  {"\\_/", "   "},
X	  {"/ \\", "_ _"},
X	  {"   ", "   "} },		/* 0x58: X */
X	{ {"_ _", "   "},
X	  {"\\_/", "   "},
X	  {" | ", " _ "},
X	  {"   ", "   "} },		/* 0x59: Y */
X	{ {"__", "  "},
X	  {" /", "  "},
X	  {"/_", "_ "},
X	  {"  ", "  "} },		/* 0x5a: Z */
X	{ {"__","  "},
X	  {"| ","  "},
X	  {"|_","_ "},
X	  {"  ","  "} },		/* 0x5b: [ */
X	{ {"  ","  "},
X	  {"\\ ","  "},
X	  {" \\","  "},
X	  {"  ","  "} },		/* 0x5c: \ */
X	{ {"__","  "},
X	  {" |","  "},
X	  {"_|"," _"},
X	  {"  ","  "} },		/* 0x5d: ] */
X	{ {"  ","  "},
X	  {"/\\","  "},
X	  {"  ","  "},
X	  {"  ","  "} },		/* 0x5e: ^ */
X	{ {"  ","  "},
X	  {"  ","  "},
X	  {"__","  "},
X	  {"  ","  "} },		/* 0x5f: _ */
X	{ {" "," "},
X	  {"\\"," "},
X	  {" "," "},
X	  {" "," "} },			/* 0x60: ` */
X	{ {"   ", "   "},
X	  {" _.", "   "},
X	  {"(_|", "   "},
X	  {"   ", "   "} },		/* 0x61: a */
X	{ {"   ", "   "},
X	  {"|_ ", "   "},
X	  {"|_)", "   "},
X	  {"   ", "   "} },		/* 0x62: b */
X	{ {"  ", "  "},
X	  {" _", "  "},
X	  {"|_", "  "},
X	  {"  ", "  "} },		/* 0x63: c */
X	{ {"   ", "   "},
X	  {" _|", "   "},
X	  {"(_|", "   "},
X	  {"   ", "   "} },		/* 0x64: d */
X	{ {"   ", "   "},
X	  {" _ ", "   "},
X	  {"(-'", " _ "},
X	  {"   ", "   "} },		/* 0x65: e */
X	{ {" _", "  "},
X	  {"|_", "_ "},
X	  {"| ", "  "},
X	  {"  ", "  "} },		/* 0x66: f */
X	{ {"   ", "   "},
X	  {" _ ", "   "},
X	  {"(_|", "   "},
X	  {"._)", "   "} },		/* 0x67: g */
X	{ {"   ", "   "},
X	  {"|_ ", "   "},
X	  {"| |", "   "},
X	  {"   ", "   "} },		/* 0x68: h */
X	{ {" ", " "},
X	  {".", " "},
X	  {"|", " "},
X	  {" ", " "} },			/* 0x69: i */
X	{ {"  ", "  "},
X	  {" .", "  "},
X	  {" |", "  "},
X	  {"./", "  "} },		/* 0x6a: j */
X	{ {"  ", "  "},
X	  {"| ", "  "},
X	  {"|<", "  "},
X	  {"  ", "  "} },		/* 0x6b: k */
X	{ {" ", " "},
X	  {"|", " "},
X	  {"|", "_"},
X	  {" ", " "} },			/* 0x6c: l */
X	{ {"     ", "     "},
X	  {"._ _ ", "     "},
X	  {"| | |", "     "},
X	  {"     ", "     "} },		/* 0x6d: m */
X	{ {"   ", "   "},
X	  {"._ ", "   "},
X	  {"| |", "   "},
X	  {"   ", "   "} },		/* 0x6e: n */
X	{ {"   ", "   "},
X	  {" _ ", "   "},
X	  {"(_)", "   "},
X	  {"   ", "   "} },		/* 0x6f: o */
X	{ {"   ", "   "},
X	  {"._ ", "   "},
X	  {"|_)", "   "},
X	  {"|  ", "   "} },		/* 0x70: p */
X	{ {"   ", "   "},
X	  {" _.", "   "},
X	  {"(_|", "   "},
X	  {"  |", "   "} },		/* 0x71: q */
X	{ {"  ", "  "},
X	  {"._", "  "},
X	  {"| ", "  "},
X	  {"  ", "  "} },		/* 0x72: r */
X	{ {" ", " "},
X	  {"_", " "},
X	  {"\\", "_"},
X	  {" ", " "} },			/* 0x73: s */
X	{ {" ", " "},
X	  {"|", "_"},
X	  {"|", " "},
X	  {" ", " "} },			/* 0x74: t */
X	{ {"   ", "   "},
X	  {"   ", "   "},
X	  {"|_|", "   "},
X	  {"   ", "   "} },		/* 0x75: u */
X	{ {"  ", "  "},
X	  {"  ", "  "},
X	  {"\\/", "  "},
X	  {"  ", "  "} },		/* 0x76: v */
X	{ {"    ", "    "},
X	  {"    ", "    "},
X	  {"\\/\\/", "    "},
X	  {"    ", "    "} },		/* 0x77: w */
X	{ {"  ", "  "},
X	  {"  ", "  "},
X	  {"><", "  "},
X	  {"  ", "  "} },		/* 0x78: x */
X	{ {"   ", "   "},
X	  {"   ", "   "},
X	  {"\\_/", "   "},
X	  {"_/ ", "   "} },		/* 0x79: y */
X	{ {" ", " "},
X	  {"_", " "},
X	  {"/", "_"},
X	  {" ", " "} },			/* 0x7a: z */
X	{ {" "," "},
X	  {"("," "},
X	  {"("," "},
X	  {" "," "} },			/* 0x7b: { */
X	{ {" "," "},
X	  {"|"," "},
X	  {"|"," "},
X	  {" "," "} },			/* 0x7c: | */
X	{ {" "," "},
X	  {")"," "},
X	  {")"," "},
X	  {" "," "} },			/* 0x7d: } */
X	{ {"  ","  "},
X	  {"^v","  "},
X	  {"  ","  "},
X	  {"  ","  "} },		/* 0x7e: ~ */
X	{ {"",""},{"",""},{"",""},{"",""} }	/* 0x7f */
X};
X
char *rindex();
X
main(argc,argv)
X    int argc;
X    char *argv[];
X{
X    int
X	nflag=FALSE,		/* -n: don't underline */
X	uflag=FALSE,		/* do underlining */
X	i;
X    char
X	*arg0,			/* the name of this program */
X	line[BUFSIZ],		/* input line */
X	*tname,			/* name of TERM variable */
X	bp[BUFSIZ],		/* buffer used by termcap stuff */
X	buf[BUFSIZ],		/* buffer to place us and ue strings */
X	*area=buf,		/* pointer into buf */
X	*us,*ue,		/* underline start and end strings */
X	*s,
X	*tgetstr(),*getenv();
X
X    /* parse arguments */
X    arg0 = rindex(*argv,'/') ? rindex(*argv,'/')+1 : *argv;
X    while (*++argv)
X	if (**argv == '-')
X	    switch (*++*argv) {
X		when 'n':
X		    nflag=TRUE;
X		wlse:
X		    usage(arg0);
X	    }
X	else usage(arg0);
X
X    /* check for underline ability */
X    if (!nflag && (tname=getenv("TERM")) && tgetent(bp,tname)==1) {
X	/* only do if changing to underlining takes no space (I'm lazy) */
X	uflag= tgetnum("ug") <= 0
X		&& (us=tgetstr("us",&area))
X		&& (ue=tgetstr("ue",&area));
X    }
X
X    /* now portray the strings */
X    while (fgets(line,BUFSIZ,stdin))
X	for (i=0;i<4;i++)
X	    for (s= line; *s; s++) {
X		putouts(*s & 0177,i,uflag,us,ue);
X		if (s[1])
X		    putchar(' ');
X	    }
X    exit(0);
X}
X
putouts(ch,i,uflag,us,ue)
X    int ch,i,uflag;
X    char *us,*ue;
X{
X    int ul,putch();
X    char *l,*u;
X
X    if (ch == '\n')
X	putchar(ch);
X    else {
X	l = character[ch].c[i].line;
X	u = character[ch].c[i].ulmask;
X	while (*l) {
X	    if (ul = (uflag && (*l=='_' || *u=='_')))
X		tputs(us,1,putch);
X	    if (uflag && *l=='_')
X		putchar(' ');
X	    else
X		putchar(*l);
X	    if (ul)
X		tputs(ue,1,putch);
X	    
X	    ++l; ++u;
X	}
X    }
X}
X
putch(ch) { putchar(ch); }
X
X/* usage -- print usage message and exit */
usage(arg0)
X    char *arg0;
X{
X    fprintf(stderr,usagem,arg0);
X    exit(1);
X}
END_OF_FILE
if test 12385 -ne `wc -c <'banner-3/banr.c'`; then
    echo shar: \"'banner-3/banr.c'\" unpacked with wrong size!
fi
# end of 'banner-3/banr.c'
fi
if test -f 'banner-5/cursive.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'banner-5/cursive.c'\"
else
echo shar: Extracting \"'banner-5/cursive.c'\" \(19392 characters\)
sed "s/^X//" >'banner-5/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-5/cursive.c'`; then
    echo shar: \"'banner-5/cursive.c'\" unpacked with wrong size!
fi
# end of 'banner-5/cursive.c'
fi
if test -f 'banner-5/kbandat.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'banner-5/kbandat.c'\"
else
echo shar: Extracting \"'banner-5/kbandat.c'\" \(15981 characters\)
sed "s/^X//" >'banner-5/kbandat.c' <<'END_OF_FILE'
X/********************************************************/
X/*							*/
X/*	SEMI's BANNER ( DATA FILE for Ver 1.21- )	*/
X/*							*/
X/********************************************************/
X
X#define	MAX_LEN	 256			/* maximum length of inputed string */
X#define	WIDTH	  13			/* vertical width of characters */
X#define	_WIDTH	  14			/*	-- in even number */
X#define	KOR_LEN	1024			/* 2^( the length of Korean ) */
X
X#define	CMD_CHR	'/'	/* character for mode change, toggle of Korean mode */
X
X#define	Eng_Ptn	 1	/* the number of pattern-series of English */
X#define	Eng_Num	95	/* the number of English Alphabets */
X
char	eng_chr[] = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!?@#$%^&*=+-_~`'\"()[]{}<>:;.,/\\|";
X
short	stepspace = 1;	/* set space steps between characters */
X
X#define	N_MODE	1	/* the number of modes, cmodes */
X#define	N_CMODE	6
X#define	MODE	0	/* the initial value for mode, cmode */
X#define	CMODE	0
X
char	mod_chr[] = ".+";	/* character determining mode(English pattern) */
short	mode = MODE;
char	font_choice[][ 5 ] =	/* fonts for 0, 1, 2, 3 value each */
X	{ " .'|", " .\"!", " _\"O", "#\". ", "O\"_ ", "|'_ " };
short	cmode = CMODE;
X
X#define	Fir_Ptn	 6	/*   - Korean consonants in the 1st location */
X#define	Fir_Num	19
X#define	Sec_Ptn	 2	/*     - vouelles */
X#define Sec_Num	21
X#define	Thi_Ptn	 1	/*     - consonants in the last location */
X#define	Thi_Num	27
X
char	*kor_key[] =	/* FIRST, SECOND, THIRD in keyboard */
X	{ "rsefaqtdwczxvgREQTW", "koiOjpuPlhhhhynnnnbmm", "rrRssseffffffffaqqtTdwczxvg" };
X
short	eng_fnt[ Eng_Ptn ][ Eng_Num ][ WIDTH+1 ] =	/* English fonts */
X{{{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 },		/* SPACE */
X  { 16, 16, 56, 56, 76, 76, 124, 134, 134, 463, 0, 0, 511, 512 },	/* A */
X  { 504, 204, 198, 198, 252, 198, 195, 195, 198, 508, 0, 0, 511, 512 },
X  { 122, 454, 386, 768, 768, 768, 768, 385, 450, 124, 0, 0, 1023, 1024 },
X  { 504, 204, 198, 198, 195, 195, 195, 195, 198, 508, 0, 0, 511, 512 },
X  { 510, 194, 192, 200, 248, 200, 192, 192, 193, 511, 0, 0, 511, 512 },
X  { 255, 97, 96, 100, 124, 100, 96, 96, 96, 240, 0, 0, 255, 256 },
X  { 122, 454, 386, 768, 768, 783, 774, 390, 454, 122, 0, 0, 1023, 1024 },
X  { 975, 390, 390, 390, 510, 390, 390, 390, 390, 975, 0, 0, 1023, 1024 },
X  { 15, 6, 6, 6, 6, 6, 6, 6, 6, 15, 0, 0, 15, 16 },
X  { 15, 6, 6, 6, 6, 6, 6, 6, 102, 108, 56, 0, 127, 128 },
X  { 486, 196, 200, 208, 240, 216, 204, 204, 198, 487, 0, 0, 511, 512 },
X  { 480, 192, 192, 192, 192, 192, 192, 192, 193, 511, 0, 0, 511, 512 },
X  { 903, 390, 462, 462, 462, 374, 374, 294, 294, 943, 0, 0, 1023, 1024 },
X  { 391, 194, 226, 162, 178, 154, 142, 142, 134, 450, 0, 0, 511, 512 },
X  { 124, 460, 390, 774, 771, 771, 771, 387, 454, 124, 0, 0, 1023, 1024 },
X  { 252, 102, 99, 99, 99, 126, 96, 96, 96, 240, 0, 0, 255, 256 },
X  { 124, 460, 390, 774, 771, 771, 787, 393, 198, 123, 0, 0, 1023, 1024 },
X  { 504, 204, 198, 198, 252, 200, 196, 198, 199, 482, 0, 0, 511, 512 },
X  { 122, 198, 194, 240, 124, 30, 7, 259, 390, 380, 0, 0, 511, 512 },
X  { 255, 153, 24, 24, 24, 24, 24, 24, 24, 60, 0, 0, 255, 256 },
X  { 487, 194, 194, 194, 194, 194, 194, 194, 100, 56, 0, 0, 511, 512 },
X  { 487, 194, 194, 100, 100, 100, 56, 56, 16, 16, 0, 0, 511, 512 },
X  { 7655, 3266, 3266, 1636, 1636, 1636, 952, 952, 272, 272, 0, 0, 8191, 8192 },
X  { 247, 98, 52, 52, 24, 24, 44, 44, 70, 199, 0, 0, 255, 256 },
X  { 247, 98, 52, 52, 24, 24, 24, 24, 24, 60, 0, 0, 255, 256 },
X  { 510, 262, 12, 24, 48, 48, 96, 192, 385, 511, 0, 0, 511, 512 },
X
X  { 0, 0, 0, 60, 102, 14, 54, 102, 103, 58, 0, 0, 127, 128 },		/* a */
X  { 224, 96, 96, 110, 115, 99, 97, 97, 98, 60, 0, 0, 255, 256 },
X  { 0, 0, 0, 30, 35, 96, 96, 96, 49, 30, 0, 0, 127, 128 },
X  { 14, 6, 6, 54, 78, 134, 134, 198, 206, 119, 0, 0, 255, 256 },
X  { 0, 0, 0, 30, 35, 127, 96, 96, 49, 30, 0, 0, 127, 128 },
X  { 6, 11, 24, 60, 24, 24, 24, 24, 24, 60, 0, 0, 63, 64 },
X  { 0, 0, 0, 29, 54, 54, 28, 16, 62, 31, 33, 126, 60, 128 },
X  { 224, 96, 96, 108, 118, 102, 102, 102, 102, 247, 0, 0, 255, 256 },
X  { 6, 6, 0, 14, 6, 6, 6, 6, 6, 15, 0, 0, 15, 16 },
X  { 3, 3, 0, 7, 3, 3, 3, 3, 3, 3, 3, 26, 12, 32 },
X  { 224, 96, 96, 102, 100, 104, 120, 108, 102, 247, 0, 0, 255, 256 },
X  { 14, 6, 6, 6, 6, 6, 6, 6, 6, 15, 0, 0, 15, 16 },
X  { 0, 0, 0, 876, 438, 438, 438, 438, 438, 951, 0, 0, 1023, 1024 },
X  { 0, 0, 0, 220, 102, 102, 102, 102, 102, 247, 0, 0, 255, 256 },
X  { 0, 0, 0, 28, 38, 99, 99, 99, 51, 30, 0, 0, 127, 128 },
X  { 0, 0, 0, 238, 115, 99, 97, 97, 98, 124, 96, 96, 240, 256 },
X  { 0, 0, 0, 58, 70, 134, 134, 198, 206, 118, 6, 6, 15, 256 },
X  { 0, 0, 0, 118, 59, 48, 48, 48, 48, 120, 0, 0, 127, 128 },
X  { 0, 0, 0, 30, 50, 56, 12, 39, 51, 46, 0, 0, 63, 64 },
X  { 0, 4, 12, 30, 12, 12, 12, 12, 13, 6, 0, 0, 31, 32 },
X  { 0, 0, 0, 238, 102, 102, 102, 102, 102, 59, 0, 0, 255, 256 },
X  { 0, 0, 0, 247, 98, 50, 52, 28, 24, 8, 0, 0, 255, 256 },
X  { 0, 0, 0, 1911, 818, 818, 476, 476, 136, 136, 0, 0, 2047, 2048 },
X  { 0, 0, 0, 119, 50, 28, 8, 28, 38, 103, 0, 0, 127, 128 },
X  { 0, 0, 0, 247, 98, 50, 52, 28, 24, 8, 16, 208, 96, 256 },
X  { 0, 0, 0, 126, 70, 12, 24, 48, 97, 127, 0, 0, 127, 128 },
X  { 0, },	/* 0 */
X  { 0, },
X  { 0, },
X  { 0, },
X  { 0, },
X  { 0, },
X  { 0, },
X  { 0, },
X  { 0, },
X  { 0, },
X  { 0, },
X  { 2, 7, 7, 7, 7, 2, 2, 2, 0, 2, 7, 2, 0, 8 },
X},}
X;
X
short	fir_fnt[ Fir_Ptn ][ Fir_Num ][ WIDTH ] =	/* first ( Korean ) */
X
X{{{ 992, 32, 32, 32, 32, 32, 64, 64, 64, 128, 128, 256, 512 },	/* Ab */
X  { 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 992 },
X  { 992, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 992 },
X  { 992, 32, 32, 32, 32, 32, 992, 512, 512, 512, 512, 512, 992 },
X  { 992, 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, 992 },
X  { 544, 544, 544, 544, 544, 544, 992, 544, 544, 544, 544, 544, 992 },
X  { 128, 128, 128, 128, 128, 320, 320, 320, 320, 544, 544, 544, 544 },
X  { 128, 320, 320, 544, 544, 544, 544, 544, 544, 544, 320, 320, 128 },
X  { 992, 128, 128, 128, 128, 320, 320, 320, 320, 544, 544, 544, 544 },
X  { 128, 128, 992, 128, 128, 128, 128, 320, 320, 320, 544, 544, 544 },
X  { 992, 32, 32, 32, 992, 32, 64, 64, 64, 128, 128, 256, 512 },
X  { 992, 512, 512, 512, 512, 512, 992, 512, 512, 512, 512, 512, 992 },
X  { 992, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 992 },
X  { 128, 128, 992, 0, 0, 128, 320, 544, 544, 544, 544, 320, 128 },
X  { 864, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 576 },
X  { 864, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 864 },
X  { 672, 672, 672, 672, 672, 672, 992, 672, 672, 672, 672, 672, 992 },
X  { 320, 320, 320, 320, 320, 320, 320, 672, 672, 672, 672, 672, 672 },
X  { 992, 320, 320, 320, 320, 320, 320, 672, 672, 672, 672, 672, 672 } },
X
X {{ 1022, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0 },		/* Al */
X  { 512, 512, 512, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0 },
X  { 1022, 512, 512, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0 },
X  { 1022, 2, 1022, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0 },
X  { 1022, 514, 514, 514, 514, 1022, 0, 0, 0, 0, 0, 0, 0 },
X  { 514, 514, 1022, 514, 514, 1022, 0, 0, 0, 0, 0, 0, 0 },
X  { 32, 32, 80, 136, 260, 514, 0, 0, 0, 0, 0, 0, 0 },
X  { 248, 260, 514, 514, 260, 248, 0, 0, 0, 0, 0, 0, 0 },
X  { 1022, 32, 80, 136, 260, 514, 0, 0, 0, 0, 0, 0, 0 },
X  { 32, 1022, 32, 80, 136, 774, 0, 0, 0, 0, 0, 0, 0 },
X  { 1022, 2, 2, 1022, 2, 2, 0, 0, 0, 0, 0, 0, 0 },
X  { 1022, 512, 1022, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0 },
X  { 1022, 136, 136, 136, 136, 1022, 0, 0, 0, 0, 0, 0, 0 },
X  { 32, 1022, 0, 508, 514, 508, 0, 0, 0, 0, 0, 0, 0 },
X  { 990, 66, 66, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0 },
X  { 990, 528, 528, 528, 528, 990, 0, 0, 0, 0, 0, 0, 0 },
X  { 594, 594, 990, 594, 594, 990, 0, 0, 0, 0, 0, 0, 0 },
X  { 136, 136, 136, 340, 340, 546, 0, 0, 0, 0, 0, 0, 0 },
X  { 1022, 136, 136, 340, 340, 546, 0, 0, 0, 0, 0, 0, 0 } },
X
X {{ 992, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0 },		/* Alb */
X  { 512, 512, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0 },
X  { 992, 512, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0 },
X  { 992, 32, 992, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0 },
X  { 992, 544, 544, 544, 544, 992, 0, 0, 0, 0, 0, 0, 0 },
X  { 544, 544, 992, 544, 544, 992, 0, 0, 0, 0, 0, 0, 0 },
X  { 128, 128, 320, 320, 544, 544, 0, 0, 0, 0, 0, 0, 0 },
X  { 128, 320, 544, 544, 320, 128, 0, 0, 0, 0, 0, 0, 0 },
X  { 992, 128, 128, 320, 320, 544, 0, 0, 0, 0, 0, 0, 0 },
X  { 128, 992, 128, 128, 320, 544, 0, 0, 0, 0, 0, 0, 0 },
X  { 992, 32, 32, 992, 32, 32, 0, 0, 0, 0, 0, 0, 0 },
X  { 992, 512, 992, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0 },
X  { 992, 320, 320, 320, 320, 992, 0, 0, 0, 0, 0, 0, 0 },
X  { 128, 992, 0, 448, 544, 448, 0, 0, 0, 0, 0, 0, 0 }, 
X  { 864, 288, 288, 288, 288, 288, 0, 0, 0, 0, 0, 0, 0 },
X  { 864, 576, 576, 576, 576, 864, 0, 0, 0, 0, 0, 0, 0 },
X  { 672, 672, 992, 672, 672, 992, 0, 0, 0, 0, 0, 0, 0 },
X  { 320, 320, 320, 672, 672, 672, 0, 0, 0, 0, 0, 0, 0 },
X  { 992, 320, 320, 320, 672, 672, 0, 0, 0, 0, 0, 0, 0 } },
X
X {{ 992, 32, 32, 64, 64, 128, 768, 0, 0, 0, 0, 0, 0 },	/* AbA */
X  { 512, 512, 512, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0 },
X  { 992, 512, 512, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0 },
X  { 992, 32, 32, 992, 512, 512, 992, 0, 0, 0, 0, 0, 0 },
X  { 992, 544, 544, 544, 544, 544, 992, 0, 0, 0, 0, 0, 0 },
X  { 544, 544, 544, 992, 544, 544, 992, 0, 0, 0, 0, 0, 0 },
X  { 128, 128, 128, 320, 320, 544, 544, 0, 0, 0, 0, 0, 0 },
X  { 128, 320, 544, 544, 544, 320, 128, 0, 0, 0, 0, 0, 0 },
X  { 992, 128, 128, 320, 320, 544, 544, 0, 0, 0, 0, 0, 0 },
X  { 128, 992, 128, 128, 320, 320, 544, 0, 0, 0, 0, 0, 0 },
X  { 992, 32, 992, 32, 64, 128, 768, 0, 0, 0, 0, 0, 0 },
X  { 992, 512, 512, 992, 512, 512, 992, 0, 0, 0, 0, 0, 0 },
X  { 992, 320, 320, 320, 320, 320, 992, 0, 0, 0, 0, 0, 0 },
X  { 128, 992, 0, 448, 544, 544, 448, 0, 0, 0, 0, 0, 0 },
X  { 864, 288, 288, 288, 288, 288, 576, 0, 0, 0, 0, 0, 0 },
X  { 864, 576, 576, 576, 576, 576, 864, 0, 0, 0, 0, 0, 0 },
X  { 672, 672, 672, 992, 672, 672, 992, 0, 0, 0, 0, 0, 0 },
X  { 320, 320, 320, 672, 672, 672, 672, 0, 0, 0, 0, 0, 0 },
X  { 992, 320, 320, 320, 672, 672, 672, 0, 0, 0, 0, 0, 0 } },
X
X {{ 1022, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0 },		/* AlA */
X  { 512, 512, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 1022, 512, 512, 512, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 1022, 2, 1022, 512, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 1022, 514, 514, 514, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 514, 514, 1022, 514, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 32, 80, 136, 260, 514, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 112, 396, 514, 396, 112, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 1022, 32, 80, 136, 774, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 32, 1022, 32, 216, 774, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 1022, 2, 1022, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 1022, 512, 1022, 512, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 1022, 136, 136, 136, 1022, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 32, 1022, 508, 514, 508, 0, 0, 0, 0, 0, 0, 0, 0 }, 
X  { 990, 66, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 990, 528, 528, 528, 990, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 594, 594, 990, 594, 990, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 136, 136, 340, 340, 546, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 1022, 136, 136, 340, 546, 0, 0, 0, 0, 0, 0, 0, 0 } },
X
X {{ 992, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0 },	/* AlbA */
X  { 512, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 992, 512, 512, 512, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 992, 32, 992, 512, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 992, 544, 544, 544, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 544, 544, 992, 544, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 128, 128, 320, 320, 544, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 448, 544, 544, 544, 448, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 992, 128, 128, 320, 544, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 128, 992, 128, 320, 544, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 992, 32, 992, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 992, 512, 992, 512, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 992, 320, 320, 320, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 128, 992, 448, 544, 448, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 864, 288, 288, 288, 288, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 864, 576, 576, 576, 864, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 672, 672, 992, 672, 992, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 320, 320, 320, 672, 672, 0, 0, 0, 0, 0, 0, 0, 0 },
X  { 992, 320, 320, 672, 672, 0, 0, 0, 0, 0, 0, 0, 0 } } }
X	;
X
short	sec_fnt[ Sec_Ptn ][ Sec_Num ][ WIDTH ] =	/* second ( Korean ) */
X
X{{{ 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2 },		/* Wb, Wl, Wlb */
X  { 10, 10, 10, 10, 10, 10, 14, 10, 10, 10, 10, 10, 10 },
X  { 2, 2, 2, 2, 3, 2, 2, 2, 3, 2, 2, 2, 2 },
X  { 10, 10, 10, 10, 14, 10, 10, 10, 14, 10, 10, 10, 10 },
X  { 2, 2, 2, 2, 2, 2, 14, 2, 2, 2, 2, 2, 2 },
X  { 10, 10, 10, 10, 10, 10, 58, 10, 10, 10, 10, 10, 10 },
X  { 2, 2, 2, 2, 14, 2, 2, 2, 14, 2, 2, 2, 2 },
X  { 10, 10, 10, 10, 58, 10, 10, 10, 58, 10, 10, 10, 10 },
X  { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
X  { 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 1022 },
X  { 2, 2, 2, 2, 2, 2, 3, 130, 130, 130, 130, 130, 994 },
X  { 10, 10, 10, 10, 10, 10, 14, 138, 138, 138, 138, 138, 1002 },
X  { 2, 2, 2, 2, 2, 2, 2, 130, 130, 130, 130, 130, 994 },
X  { 0, 0, 0, 0, 0, 0, 0, 136, 136, 136, 136, 136, 1022 },
X  { 0, 0, 0, 0, 0, 0, 0, 1022, 32, 32, 32, 32, 32 },
X  { 2, 2, 2, 2, 2, 2, 2, 994, 130, 130, 142, 130, 130 },
X  { 10, 10, 10, 10, 10, 10, 10, 1002, 138, 138, 186, 138, 138 },
X  { 2, 2, 2, 2, 2, 2, 2, 994, 130, 130, 130, 130, 130 },
X  { 0, 0, 0, 0, 0, 0, 0, 1022, 136, 136, 136, 136, 136 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1022 },
X  { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 994 } },
X
X {{ 2, 2, 2, 3, 2, 2, 2, 0, 0, 0, 0, 0, 0 },		/* WbW, WlW, WlbW */
X  { 10, 10, 10, 14, 10, 10, 10, 0, 0, 0, 0, 0, 0 },
X  { 2, 2, 3, 2, 3, 2, 2, 0, 0, 0, 0, 0, 0 },
X  { 10, 10, 14, 10, 14, 10, 10, 0, 0, 0, 0, 0, 0 },
X  { 2, 2, 2, 14, 2, 2, 2, 0, 0, 0, 0, 0, 0 },
X  { 10, 10, 10, 58, 10, 10, 10, 0, 0, 0, 0, 0, 0 },
X  { 2, 2, 14, 2, 14, 2, 2, 0, 0, 0, 0, 0, 0 },
X  { 10, 10, 58, 10, 58, 10, 10, 0, 0, 0, 0, 0, 0 },
X  { 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0 },
X  { 0, 0, 0, 0, 32, 32, 1022, 0, 0, 0, 0, 0, 0 },
X  { 2, 2, 2, 3, 130, 130, 994, 0, 0, 0, 0, 0, 0 },
X  { 10, 10, 10, 14, 138, 138, 1002, 0, 0, 0, 0, 0, 0 },
X  { 2, 2, 2, 2, 130, 130, 994, 0, 0, 0, 0, 0, 0 },
X  { 0, 0, 0, 0, 136, 136, 1022, 0, 0, 0, 0, 0, 0 },
X  { 0, 0, 0, 0, 0, 0, 1022, 32, 32, 0, 0, 0, 0 },
X  { 2, 2, 2, 14, 2, 2, 994, 130, 130, 0, 0, 0, 0 },
X  { 10, 10, 10, 58, 10, 10, 1002, 138, 138, 0, 0, 0, 0 },
X  { 2, 2, 2, 2, 2, 2, 994, 130, 130, 0, 0, 0, 0 },
X  { 0, 0, 0, 0, 0, 0, 1022, 136, 136, 0, 0, 0, 0 },
X  { 0, 0, 0, 0, 0, 0, 1022, 0, 0, 0, 0, 0, 0 },
X  { 2, 2, 2, 2, 2, 2, 994, 0, 0, 0, 0, 0, 0 } } }
X	;
X
short	thi_fnt[ Thi_Ptn ][ Thi_Num ][ WIDTH ] =	/* third ( Korean ) */
X
X{{{ 0, 0, 0, 0, 0, 0, 0, 0, 1022, 2, 2, 2, 2 },		/* WbA, WlA, WlbA */
X  { 0, 0, 0, 0, 0, 0, 0, 0, 968, 72, 84, 84, 98 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 990, 66, 66, 66, 66 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 512, 512, 512, 512, 1022 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 574, 520, 520, 532, 994 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 520, 574, 540, 546, 988 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 512, 512, 512, 1022 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 2, 1022, 512, 1022 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 990, 66, 962, 514, 962 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 990, 82, 978, 530, 990 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 978, 82, 990, 530, 990 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 968, 72, 980, 532, 994 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 990, 80, 990, 528, 990 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 84, 980, 532, 1022 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 968, 126, 988, 546, 988 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 514, 514, 514, 1022 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 514, 514, 1022, 514, 1022 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 584, 584, 980, 596, 994 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 32, 80, 136, 260, 514 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 136, 136, 340, 340, 546 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 248, 260, 514, 260, 248 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 32, 80, 136, 774 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 32, 1022, 80, 136, 774 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 2, 1022, 2, 2 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 512, 1022, 512, 1022 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 1022, 136, 136, 136, 1022 },
X  { 0, 0, 0, 0, 0, 0, 0, 0, 32, 1022, 508, 514, 508 } } }
X	;
X
END_OF_FILE
echo shar: 30 control characters may be missing from \"'banner-5/kbandat.c'\"
if test 15981 -ne `wc -c <'banner-5/kbandat.c'`; then
    echo shar: \"'banner-5/kbandat.c'\" unpacked with wrong size!
fi
# end of 'banner-5/kbandat.c'
fi
if test -f 'banner-9/data.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'banner-9/data.c'\"
else
echo shar: Extracting \"'banner-9/data.c'\" \(19204 characters\)
sed "s/^X//" >'banner-9/data.c' <<'END_OF_FILE'
char *data[][10] = {
X	{ /* ^@ */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^A */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^B */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^C */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^D */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^E */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^F */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^G */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^H */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^I */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^J */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^K */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^L */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^M */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^N */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^O */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^P */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^Q */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^R */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^S */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^T */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^U */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^V */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^W */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^X */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^Y */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^Z */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^[ */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^\ */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^] */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^^ */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* ^_ */
X	    "", "", "", "", "", "", "", "", "", "",
X	},
X	{ /* *SPC* */
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* ! */
X	    "@@@",
X	    "@@@",
X	    "@@@",
X	    " @ ",
X	    "   ",
X	    "@@@",
X	    "@@@",
X	    "   ",
X	    "   ",
X	    "   "
X	},
X	{ /* " */
X	    "@@@ @@@",
X	    "@@@ @@@",
X	    " @   @ ",
X	    "@   @  ",
X	    "       ",
X	    "       ",
X	    "       ",
X	    "       ",
X	    "       ",
X	    "       "
X	},
X	{ /* # */
X	    "         ",
X	    "  @   @  ",
X	    "@@@@@@@@@",
X	    "  @   @  ",
X	    "@@@@@@@@@",
X	    "  @   @  ",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* $ */
X	    "    @    ",
X	    " @@@@@@@ ",
X	    "@   @    ",
X	    " @@@@@@@ ",
X	    "    @   @",
X	    " @@@@@@@ ",
X	    "    @    ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* % */
X	    "@@    @",
X	    "@@   @ ",
X	    "    @  ",
X	    "   @   ",
X	    "  @    ",
X	    " @   @@",
X	    "@    @@",
X	    "       ",
X	    "       ",
X	    "       "
X	},
X	{ /* & */
X	    " @@@   ",
X	    "@   @  ",
X	    " @ @   ",
X	    "  @@   ",
X	    " @  @ @",
X	    "@    @ ",
X	    " @@@@ @",
X	    "       ",
X	    "       ",
X	    "       "
X	},
X	{ /* ' */
X	    "@@@",
X	    "@@@",
X	    " @ ",
X	    "@  ",
X	    "   ",
X	    "   ",
X	    "   ",
X	    "   ",
X	    "   ",
X	    "   "
X	},
X	{ /* ( */
X	    "  @",
X	    " @ ",
X	    "@  ",
X	    "@  ",
X	    "@  ",
X	    " @ ",
X	    "  @",
X	    "   ",
X	    "   ",
X	    "   "
X	},
X	{ /* ) */
X	    "@  ",
X	    " @ ",
X	    "  @",
X	    "  @",
X	    "  @",
X	    " @ ",
X	    "@  ",
X	    "   ",
X	    "   ",
X	    "   "
X	},
X	{ /* * */
X	    "   @   ",
X	    "@  @  @",
X	    " @ @ @ ",
X	    "  @@@  ",
X	    " @ @ @ ",
X	    "@  @  @",
X	    "   @   ",
X	    "       ",
X	    "       ",
X	    "       "
X	},
X	{ /* + */
X	    "         ",
X	    "    @    ",
X	    "    @    ",
X	    "@@@@@@@@@",
X	    "    @    ",
X	    "    @    ",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* , */
X	    "   ",
X	    "   ",
X	    "   ",
X	    "   ",
X	    "   ",
X	    "@@@",
X	    "@@@",
X	    " @ ",
X	    "@  ",
X	    "   "
X	},
X	{ /* - */
X	    "         ",
X	    "         ",
X	    "         ",
X	    "@@@@@@@@@",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* . */
X	    "   ",
X	    "   ",
X	    "   ",
X	    "   ",
X	    "   ",
X	    "@@@",
X	    "@@@",
X	    "   ",
X	    "   ",
X	    "   "
X	},
X	{ /* / */
X	    "      @",
X	    "     @ ",
X	    "    @  ",
X	    "   @   ",
X	    "  @    ",
X	    " @     ",
X	    "@      ",
X	    "       ",
X	    "       ",
X	    "       "
X	},
X	{ /* 0 */
X	    "  @@@@@  ",
X	    " @    @@ ",
X	    "@    @  @",
X	    "@   @   @",
X	    "@  @    @",
X	    " @@    @ ",
X	    "  @@@@@  ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* 1 */
X	    " @ ",
X	    "@@ ",
X	    " @ ",
X	    " @ ",
X	    " @ ",
X	    " @ ",
X	    "@@@",
X	    "   ",
X	    "   ",
X	    "   "
X	},
X	{ /* 2 */
X	    " @@@@@@@ ",
X	    "@       @",
X	    "        @",
X	    "  @@@@@@ ",
X	    " @       ",
X	    "@        ",
X	    "@@@@@@@@@",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* 3 */
X	    " @@@@@@@ ",
X	    "@       @",
X	    "        @",
X	    "  @@@@@@ ",
X	    "        @",
X	    "@       @",
X	    " @@@@@@@ ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* 4 */
X	    "   @@@@  ",
X	    "  @   @  ",
X	    " @    @  ",
X	    "@     @  ",
X	    "@@@@@@@@@",
X	    "      @  ",
X	    "      @  ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* 5 */
X	    "@@@@@@@@@",
X	    "@        ",
X	    "@@@@@@@@ ",
X	    "        @",
X	    "        @",
X	    "@       @",
X	    " @@@@@@@ ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* 6 */
X	    " @@@@@@@ ",
X	    "@       @",
X	    "@        ",
X	    "@@@@@@@@ ",
X	    "@       @",
X	    "@       @",
X	    " @@@@@@@ ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* 7 */
X	    "@@@@@@@@@",
X	    "       @ ",
X	    "      @  ",
X	    "     @   ",
X	    "    @    ",
X	    "    @    ",
X	    "    @    ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* 8 */
X	    " @@@@@@@ ",
X	    "@       @",
X	    "@       @",
X	    " @@@@@@@ ",
X	    "@       @",
X	    "@       @",
X	    " @@@@@@@ ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* 9 */
X	    " @@@@@@@ ",
X	    "@       @",
X	    "@       @",
X	    " @@@@@@@@",
X	    "        @",
X	    "@       @",
X	    " @@@@@@@ ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* : */
X	    "   ",
X	    "   ",
X	    "@@@",
X	    "@@@",
X	    "   ",
X	    "@@@",
X	    "@@@",
X	    "   ",
X	    "   ",
X	    "   "
X	},
X	{ /* ; */
X	    "   ",
X	    "   ",
X	    "@@@",
X	    "@@@",
X	    "   ",
X	    "@@@",
X	    "@@@",
X	    " @ ",
X	    "@  ",
X	    "   "
X	},
X	{ /* < */
X	    "      @@",
X	    "    @@  ",
X	    "  @@    ",
X	    "@@      ",
X	    "  @@    ",
X	    "    @@  ",
X	    "      @@",
X	    "        ",
X	    "        ",
X	    "        "
X	},
X	{ /* = */
X	    "         ",
X	    "         ",
X	    "         ",
X	    "@@@@@@@@@",
X	    "         ",
X	    "@@@@@@@@@",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         ",
X	},
X	{ /* > */
X	    "@@      ",
X	    "  @@    ",
X	    "    @@  ",
X	    "      @@",
X	    "    @@  ",
X	    "  @@    ",
X	    "@@      ",
X	    "        ",
X	    "        ",
X	    "        "
X	},
X	{ /* ? */
X	    " @@@@@@@ ",
X	    "@       @",
X	    "        @",
X	    "    @@@@ ",
X	    "    @    ",
X	    "         ",
X	    "    @    ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* @ */
X	    " @@@@@@@ ",
X	    "@       @",
X	    "@  @@@  @",
X	    "@ @  @  @",
X	    "@  @@@@@ ",
X	    "@        ",
X	    " @@@@@@@ ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* A */
X	    "   @@@   ",
X	    "  @   @  ",
X	    " @     @ ",
X	    "@       @",
X	    "@@@@@@@@@",
X	    "@       @",
X	    "@       @",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* B */
X	    "@@@@@@@@ ",
X	    "@       @",
X	    "@       @",
X	    "@@@@@@@@ ",
X	    "@       @",
X	    "@       @",
X	    "@@@@@@@@ ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* C */
X	    "  @@@@@  ",
X	    " @     @ ",
X	    "@       @",
X	    "@        ",
X	    "@       @",
X	    " @     @ ",
X	    "  @@@@@  ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* D */
X	    "@@@@@@@  ",
X	    "@      @ ",
X	    "@       @",
X	    "@       @",
X	    "@       @",
X	    "@      @ ",
X	    "@@@@@@@  ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* E */
X	    "@@@@@@@@@",
X	    "@        ",
X	    "@        ",
X	    "@@@@@@@  ",
X	    "@        ",
X	    "@        ",
X	    "@@@@@@@@@",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* F */
X	    "@@@@@@@@@",
X	    "@        ",
X	    "@        ",
X	    "@@@@@@@  ",
X	    "@        ",
X	    "@        ",
X	    "@        ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* G */
X	    "  @@@@@@ ",
X	    " @      @",
X	    "@        ",
X	    "@    @@@@",
X	    "@       @",
X	    " @     @@",
X	    "  @@@@@ @",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* H */
X	    "@       @",
X	    "@       @",
X	    "@       @",
X	    "@@@@@@@@@",
X	    "@       @",
X	    "@       @",
X	    "@       @",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* I */
X	    "@@@@@",
X	    "  @  ",
X	    "  @  ",
X	    "  @  ",
X	    "  @  ",
X	    "  @  ",
X	    "@@@@@",
X	    "     ",
X	    "     ",
X	    "     "
X	},
X	{ /* J */
X	    "      @@@",
X	    "       @ ",
X	    "       @ ",
X	    "       @ ",
X	    "@      @ ",
X	    " @    @  ",
X	    "  @@@@   ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* K */
X	    "@       @",
X	    "@      @ ",
X	    "@     @  ",
X	    "@@@@@@   ",
X	    "@     @  ",
X	    "@      @ ",
X	    "@       @",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* L */
X	    "@        ",
X	    "@        ",
X	    "@        ",
X	    "@        ",
X	    "@        ",
X	    "@        ",
X	    "@@@@@@@@@",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* M */
X	    "@       @",
X	    "@@     @@",
X	    "@ @   @ @",
X	    "@  @ @  @",
X	    "@   @   @",
X	    "@       @",
X	    "@       @",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* N */
X	    "@      @",
X	    "@@     @",
X	    "@ @    @",
X	    "@  @   @",
X	    "@   @  @",
X	    "@    @ @",
X	    "@     @@",
X	    "        ",
X	    "        ",
X	    "        "
X	},
X	{ /* O */
X	    "  @@@@@  ",
X	    " @     @ ",
X	    "@       @",
X	    "@       @",
X	    "@       @",
X	    " @     @ ",
X	    "  @@@@@  ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* P */
X	    "@@@@@@@@ ",
X	    "@       @",
X	    "@       @",
X	    "@@@@@@@@ ",
X	    "@        ",
X	    "@        ",
X	    "@        ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* Q */
X	    "  @@@@@  ",
X	    " @     @ ",
X	    "@       @",
X	    "@       @",
X	    "@     @ @",
X	    " @     @ ",
X	    "  @@@@@ @",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* R */
X	    "@@@@@@@@ ",
X	    "@       @",
X	    "@       @",
X	    "@@@@@@@@ ",
X	    "@     @  ",
X	    "@      @ ",
X	    "@       @",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* S */
X	    " @@@@@@@ ",
X	    "@       @",
X	    "@        ",
X	    " @@@@@@@ ",
X	    "        @",
X	    "@       @",
X	    " @@@@@@@ ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* T */
X	    "@@@@@@@@@",
X	    "    @    ",
X	    "    @    ",
X	    "    @    ",
X	    "    @    ",
X	    "    @    ",
X	    "    @    ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* U */
X	    "@       @",
X	    "@       @",
X	    "@       @",
X	    "@       @",
X	    "@       @",
X	    " @     @ ",
X	    "  @@@@@  ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* V */
X	    "@       @",
X	    "@       @",
X	    "@       @",
X	    "@       @",
X	    " @     @ ",
X	    "  @   @  ",
X	    "   @@@   ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* W */
X	    "@       @",
X	    "@       @",
X	    "@   @   @",
X	    "@  @ @  @",
X	    "@ @   @ @",
X	    "@@     @@",
X	    "@       @",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* X */
X	    "@       @",
X	    " @     @ ",
X	    "  @   @  ",
X	    "   @@@   ",
X	    "  @   @  ",
X	    " @     @ ",
X	    "@       @",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* Y */
X	    "@       @",
X	    " @     @ ",
X	    "  @   @  ",
X	    "   @ @   ",
X	    "    @    ",
X	    "    @    ",
X	    "    @    ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* Z */
X	    "@@@@@@@@@",
X	    "       @ ",
X	    "     @@  ",
X	    "    @    ",
X	    "  @@     ",
X	    " @       ",
X	    "@@@@@@@@@",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* [ */
X	    "@@@@@",
X	    "@    ",
X	    "@    ",
X	    "@    ",
X	    "@    ",
X	    "@    ",
X	    "@@@@@",
X	    "     ",
X	    "     ",
X	    "     "
X	},
X	{ /* \ */
X	    "@      ",
X	    " @     ",
X	    "  @    ",
X	    "   @   ",
X	    "    @  ",
X	    "     @ ",
X	    "      @",
X	    "       ",
X	    "       ",
X	    "       "
X	},
X	{ /* ] */
X	    "@@@@@",
X	    "    @",
X	    "    @",
X	    "    @",
X	    "    @",
X	    "    @",
X	    "@@@@@",
X	    "     ",
X	    "     ",
X	    "     "
X	},
X	{ /* ^ */
X	    "   @   ",
X	    "  @ @  ",
X	    " @   @ ",
X	    "@     @",
X	    "       ",
X	    "       ",
X	    "       ",
X	    "       ",
X	    "       ",
X	    "       "
X	},
X	{ /* _ */
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "@@@@@@@@@",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* ` */
X	    "@@@",
X	    "@@@",
X	    " @ ",
X	    "  @",
X	    "   ",
X	    "   ",
X	    "   ",
X	    "   ",
X	    "   ",
X	    "   "
X	},
X	
X	{ /* a */
X	    "         ",
X	    "         ",
X	    " @@@@@@  ",
X	    "       @ ",
X	    " @@@@@@@ ",
X	    "@     @@ ",
X	    " @@@@@ @@",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* b */
X	    "@        ",
X	    "@        ",
X	    "@ @@@@@  ",
X	    "@@     @ ",
X	    "@       @",
X	    "@@     @ ",
X	    "@ @@@@@  ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* c */
X	    "       ",
X	    "       ",
X	    " @@@@@ ",
X	    "@     @",
X	    "@      ",
X	    "@     @",
X	    " @@@@@ ",
X	    "       ",
X	    "       ",
X	    "       "
X	},
X	{ /* d */
X	    "        @",
X	    "        @",
X	    "  @@@@@ @",
X	    " @     @@",
X	    "@       @",
X	    " @     @@",
X	    "  @@@@@ @",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* e */
X	    "         ",
X	    "         ",
X	    " @@@@@@@ ",
X	    "@       @",
X	    "@@@@@@@@@",
X	    "@        ",
X	    " @@@@@@@ ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* f */
X	    "  @@ ",
X	    " @  @",
X	    " @   ",
X	    "@@@@@",
X	    " @   ",
X	    " @   ",
X	    " @   ",
X	    "     ",
X	    "     ",
X	    "     "
X	},
X	{ /* g */
X	    "       ",
X	    "       ",
X	    " @@@@ @",
X	    "@    @@",
X	    "@     @",
X	    "@    @@",
X	    " @@@@ @",
X	    "      @",
X	    "      @",
X	    " @@@@@ "
X	},
X	{ /* h */
X	    "@       ",
X	    "@       ",
X	    "@ @@@@@ ",
X	    "@@     @",
X	    "@      @",
X	    "@      @",
X	    "@      @",
X	    "        ",
X	    "        ",
X	    "        "
X	},
X	{ /* i */
X	    "    ",
X	    "@   ",
X	    "    ",
X	    "@   ",
X	    "@   ",
X	    "@  @",
X	    " @@ ",
X	    "    ",
X	    "    ",
X	    "    "
X	},
X	{ /* j */
X	    "        ",
X	    "       @",
X	    "        ",
X	    "       @",
X	    "       @",
X	    "       @",
X	    "       @",
X	    "@      @",
X	    " @    @ ",
X	    "  @@@@  "
X	},
X	{ /* k */
X	    "@     ",
X	    "@     ",
X	    "@    @",
X	    "@   @ ",
X	    "@@@@  ",
X	    "@   @ ",
X	    "@    @",
X	    "      ",
X	    "      ",
X	    "      "
X	},
X	{ /* l */
X	    "@@ ",
X	    " @ ",
X	    " @ ",
X	    " @ ",
X	    " @ ",
X	    " @ ",
X	    "@@@",
X	    "   ",
X	    "   ",
X	    "   "
X	},
X	{ /* m */
X	    "         ",
X	    "         ",
X	    "@ @@ @@@ ",
X	    "@@  @   @",
X	    "@   @   @",
X	    "@   @   @",
X	    "@   @   @",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* n */
X	    "         ",
X	    "         ",
X	    "@ @@@@@  ",
X	    "@@     @ ",
X	    "@       @",
X	    "@       @",
X	    "@       @",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* o */
X	    "         ",
X	    "         ",
X	    "  @@@@@  ",
X	    " @     @ ",
X	    "@       @",
X	    " @     @ ",
X	    "  @@@@@  ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* p */
X	    "         ",
X	    "         ",
X	    "@ @@@@@  ",
X	    "@@     @ ",
X	    "@       @",
X	    "@@     @ ",
X	    "@ @@@@@  ",
X	    "@        ",
X	    "@        ",
X	    "@        "
X	},
X	{ /* q */
X	    "         ",
X	    "         ",
X	    "  @@@@@ @",
X	    " @     @@",
X	    "@       @",
X	    " @     @@",
X	    "  @@@@@ @",
X	    "        @",
X	    "        @",
X	    "        @"
X	},
X	{ /* r */
X	    "     ",
X	    "     ",
X	    "@ @@ ",
X	    "@@  @",
X	    "@    ",
X	    "@    ",
X	    "@    ",
X	    "     ",
X	    "     ",
X	    "     "
X	},
X	{ /* s */
X	    "         ",
X	    "         ",
X	    " @@@@@@@ ",
X	    "@        ",
X	    " @@@@@@@ ",
X	    "        @",
X	    " @@@@@@@ ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* t */
X	    "       ",
X	    "   @   ",
X	    "@@@@@@@",
X	    "   @   ",
X	    "   @   ",
X	    "   @  @",
X	    "    @@ ",
X	    "       ",
X	    "       ",
X	    "       "
X	},
X	{ /* u */
X	    "         ",
X	    "         ",
X	    "@       @",
X	    "@       @",
X	    "@       @",
X	    " @     @@",
X	    "  @@@@@ @",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* v */
X	    "         ",
X	    "         ",
X	    "@       @",
X	    "@       @",
X	    " @     @ ",
X	    "  @   @  ",
X	    "   @@@   ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* w */
X	    "         ",
X	    "         ",
X	    "@       @",
X	    "@   @   @",
X	    "@   @   @",
X	    "@   @   @",
X	    " @@@ @@@ ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* x */
X	    "       ",
X	    "       ",
X	    "@     @",
X	    " @   @ ",
X	    "  @@@  ",
X	    " @   @ ",
X	    "@     @",
X	    "       ",
X	    "       ",
X	    "       "
X	},
X	{ /* y */
X	    "       ",
X	    "       ",
X	    "@     @",
X	    "@     @",
X	    "@     @",
X	    "@     @",
X	    " @@@@@@",
X	    "      @",
X	    "      @",
X	    " @@@@@ "
X	},
X	{ /* z */
X	    "       ",
X	    "       ",
X	    "@@@@@@@",
X	    "    @@ ",
X	    "   @   ",
X	    " @@    ",
X	    "@@@@@@@",
X	    "       ",
X	    "       ",
X	    "       "
X	},
X	{ /* { */
X	    "  @@@",
X	    " @   ",
X	    " @   ",
X	    "@    ",
X	    " @   ",
X	    " @   ",
X	    "  @@@",
X	    "     ",
X	    "     ",
X	    "     "
X	},
X	{ /* | */
X	    "@",
X	    "@",
X	    "@",
X	    " ",
X	    "@",
X	    "@",
X	    "@",
X	    " ",
X	    " ",
X	    " "
X	},
X	{ /* } */
X	    "@@@  ",
X	    "   @ ",
X	    "   @ ",
X	    "    @",
X	    "   @ ",
X	    "   @ ",
X	    "@@@  ",
X	    "     ",
X	    "     ",
X	    "     "
X	},
X	{ /* ~ */
X	    "         ",
X	    "  @@    @",
X	    " @  @  @ ",
X	    "@    @@  ",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         ",
X	    "         "
X	},
X	{ /* *DEL* */
X	    "@@@@@@@@@",
X	    "@@@@@@@@@",
X	    "@@@@@@@@@",
X	    "@@@@@@@@@",
X	    "@@@@@@@@@",
X	    "@@@@@@@@@",
X	    "@@@@@@@@@",
X	    "         ",
X	    "         ",
X	    "         "
X	}
X    };
END_OF_FILE
if test 19204 -ne `wc -c <'banner-9/data.c'`; then
    echo shar: \"'banner-9/data.c'\" unpacked with wrong size!
fi
# end of 'banner-9/data.c'
fi
if test -f 'cursive-2/font.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'cursive-2/font.c'\"
else
echo shar: Extracting \"'cursive-2/font.c'\" \(11797 characters\)
sed "s/^X//" >'cursive-2/font.c' <<'END_OF_FILE'
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 * $Log:	font.c,v $
X * Revision 1.2  87/12/05  09:19:30  hyc
X * Cleaned up some of the characters, made them nicer looking.
X * To me, anyway.
X * 
X */
X
X#include "cursive.h"
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	{0,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,1,0},
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	{2,1,3,0,0,0},
X	-1,-1
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,1,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	{1,1,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,1,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	{2,2,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 };
END_OF_FILE
if test 11797 -ne `wc -c <'cursive-2/font.c'`; then
    echo shar: \"'cursive-2/font.c'\" unpacked with wrong size!
fi
# end of 'cursive-2/font.c'
fi
echo shar: End of archive 3 \(of 5\).
cp /dev/null ark3isdone
MISSING=""
for I in 1 2 3 4 5 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 5 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
