home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
unix
/
volume26
/
banners
/
part03
< prev
next >
Wrap
Text File
|
1993-04-07
|
102KB
|
5,439 lines
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