Skip to content

Instantly share code, notes, and snippets.

@0xffea
Created December 25, 2012 21:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save 0xffea/4375437 to your computer and use it in GitHub Desktop.
Save 0xffea/4375437 to your computer and use it in GitHub Desktop.
Importing NetBSD banner
From ab914cb2310d343f4e8b8e73c720f3781bd1519c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20H=C3=B6ppner?= <0xffea@gmail.com>
Date: Mon, 24 Dec 2012 19:00:31 +0000
Subject: [PATCH] Importing NetBSD banner
---
commands/Makefile | 2 +-
commands/banner/Makefile | 4 -
commands/banner/banner.c | 153 ----
man/man1/Makefile | 2 +-
man/man1/banner.1 | 24 -
releasetools/nbsd_ports | 1 +
usr.bin/Makefile | 2 +-
usr.bin/banner/Makefile | 17 +
usr.bin/banner/banner.1 | 63 ++
usr.bin/banner/banner.c | 211 +++++
usr.bin/banner/banner.h | 28 +
usr.bin/banner/chset.c | 2226 ++++++++++++++++++++++++++++++++++++++++++++++
12 files changed, 2549 insertions(+), 184 deletions(-)
delete mode 100644 commands/banner/Makefile
delete mode 100644 commands/banner/banner.c
delete mode 100644 man/man1/banner.1
create mode 100644 usr.bin/banner/Makefile
create mode 100644 usr.bin/banner/banner.1
create mode 100644 usr.bin/banner/banner.c
create mode 100644 usr.bin/banner/banner.h
create mode 100644 usr.bin/banner/chset.c
diff --git a/commands/Makefile b/commands/Makefile
index ffd193b..038a6f9 100644
--- a/commands/Makefile
+++ b/commands/Makefile
@@ -2,7 +2,7 @@
.include <bsd.own.mk>
-SUBDIR= add_route arp ash at backup banner basename btrace cal \
+SUBDIR= add_route arp ash at backup basename btrace cal \
cawf cd cdprobe cpp \
chmod chown ci cleantmp clear cmp co \
comm compress cp crc cron crontab cut \
diff --git a/commands/banner/Makefile b/commands/banner/Makefile
deleted file mode 100644
index 64acb6e..0000000
--- a/commands/banner/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-PROG= banner
-MAN=
-
-.include <bsd.prog.mk>
diff --git a/commands/banner/banner.c b/commands/banner/banner.c
deleted file mode 100644
index 99719e6..0000000
--- a/commands/banner/banner.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* banner - print a banner Author: Brian Wallis */
-
-/*****************************************************************
- *
- * SYSVbanner.c
- *
- * This is a PD version of the SYS V banner program (at least I think
- * it is compatible to SYS V) which I wrote to use with the clock
- * program written by:
- ** DCF, Inc.
- ** 14623 North 49th Place
- ** Scottsdale, AZ 85254
- * and published in the net comp.sources.misc newsgroup in early July
- * since the BSD banner program works quite differently.
- *
- * There is no copyright or responsibility accepted for the use
- * of this software.
- *
- * Brian Wallis, brw@jim.odr.oz, 4 July 1988
- *
- *****************************************************************/
-
-#include <string.h>
-#include <stdio.h>
-
-int main(int argc, char **argv);
-
-char *glyphs[] = {
- " @@@ @@ @@ @ @ @@@@@ @@ @@@ ",
- " @@@ @@ @@ @ @ @ @ @@@ @ @ @ @@@ ",
- " @@@ @ @ @@@@@@@@ @ @@ @ @@ @ ",
- " @ @ @ @@@@@ @ @@@ @ ",
- " @@@@@@@ @ @ @ @ @ @ ",
- " @@@ @ @ @ @ @ @ @@ @ @ ",
- " @@@ @ @ @@@@@ @ @@ @@@@ @ ",
-
- " @@ @@ @",
- " @ @ @ @ @ @ ",
- " @ @ @ @ @ @ ",
- " @ @ @@@@@@@ @@@@@ @@@ @@@@@ @ ",
- " @ @ @ @ @ @@@ @ ",
- " @ @ @ @ @ @ @@@ @ ",
- " @@ @@ @ @@@ @ ",
-
- " @@@ @ @@@@@ @@@@@ @ @@@@@@@ @@@@@ @@@@@@@",
- " @ @ @@ @ @@ @@ @ @ @ @@ @ ",
- "@ @ @ @ @ @ @@ @ @ @ @ ",
- "@ @ @ @ @@@@@ @@@@@ @@@@@@@ @@@@@ @@@@@@ @ ",
- "@ @ @ @ @ @ @ @@ @ @ ",
- " @ @ @ @ @ @ @ @ @@ @ @ ",
- " @@@ @@@@@ @@@@@@@ @@@@@ @ @@@@@ @@@@@ @ ",
-
- " @@@@@ @@@@@ @@@ @ @ @@@@@ ",
- "@ @@ @ @@@ @@@ @ @ @ @",
- "@ @@ @ @@@ @ @@@@@ @ @",
- " @@@@@ @@@@@@ @@@ @ @ @@ ",
- "@ @ @ @@@ @ @@@@@ @ @ ",
- "@ @@ @ @@@ @ @ @ ",
- " @@@@@ @@@@@ @@@ @ @ @ @ ",
-
- " @@@@@ @ @@@@@@ @@@@@ @@@@@@ @@@@@@@@@@@@@@ @@@@@ ",
- "@ @ @ @ @ @@ @@ @@ @ @ @",
- "@ @@@ @ @ @ @ @@ @ @@ @ @ ",
- "@ @ @ @@ @@@@@@@ @ @ @@@@@@ @@@@@ @ @@@@",
- "@ @@@@ @@@@@@@@ @@ @ @@ @ @ @",
- "@ @@ @@ @@ @@ @@ @ @ @",
- " @@@@@ @ @@@@@@@ @@@@@ @@@@@@ @@@@@@@@ @@@@@ ",
-
- "@ @ @*@ @@ @ @ @ @@ @@@@@@@@",
- "@ @ @ @@ @ @ @@ @@@@ @@ @",
- "@ @ @ @@ @ @ @ @ @ @@ @ @@ @",
- "@@@@@@@ @ @@@@ @ @ @ @@ @ @@ @",
- "@ @ @ @ @@ @ @ @ @@ @ @@ @",
- "@ @ @ @ @@ @ @ @ @@ @@@ @",
- "@ @ @@@ @@@@@ @ @ @@@@@@@@ @@ @@@@@@@@",
-
- "@@@@@@ @@@@@ @@@@@@ @@@@@ @@@@@@@@ @@ @@ @",
- "@ @@ @@ @@ @ @ @ @@ @@ @ @",
- "@ @@ @@ @@ @ @ @@ @@ @ @",
- "@@@@@@ @ @@@@@@@ @@@@@ @ @ @@ @@ @ @",
- "@ @ @ @@ @ @ @ @ @ @ @ @ @ @",
- "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @",
- "@ @@@@ @@ @ @@@@@ @ @@@@@ @ @@ @@ ",
-
- "@ @@ @@@@@@@@ @@@@@ @ @@@@@ @ ",
- " @ @ @ @ @ @ @ @ @ @ ",
- " @ @ @ @ @ @ @ @ @ @ ",
- " @ @ @ @ @ @ ",
- " @ @ @ @ @ @ @ ",
- " @ @ @ @ @ @ @ ",
- "@ @ @ @@@@@@@ @@@@@ @ @@@@@ @@@@@@@",
-
- " @@@ ",
- " @@@ @@ @@@@@ @@@@ @@@@@ @@@@@@ @@@@@@ @@@@ ",
- " @ @ @ @ @ @ @ @ @ @ @ @ @",
- " @ @ @ @@@@@ @ @ @ @@@@@ @@@@@ @ ",
- " @@@@@@ @ @ @ @ @ @ @ @ @@@",
- " @ @ @ @ @ @ @ @ @ @ @ @",
- " @ @ @@@@@ @@@@ @@@@@ @@@@@@ @ @@@@ ",
-
- " ",
- " @ @ @ @ @ @ @ @ @ @ @ @@@@ ",
- " @ @ @ @ @ @ @ @@ @@ @@ @ @ @",
- " @@@@@@ @ @ @@@@ @ @ @@ @ @ @ @ @ @",
- " @ @ @ @ @ @ @ @ @ @ @ @ @ @",
- " @ @ @ @ @ @ @ @ @ @ @ @@ @ @",
- " @ @ @ @@@@ @ @ @@@@@@ @ @ @ @ @@@@ ",
-
- " ",
- " @@@@@ @@@@ @@@@@ @@@@ @@@@@ @ @ @ @ @ @",
- " @ @ @ @ @ @ @ @ @ @ @ @ @ @",
- " @ @ @ @ @ @ @@@@ @ @ @ @ @ @ @",
- " @@@@@ @ @ @ @@@@@ @ @ @ @ @ @ @ @@ @",
- " @ @ @ @ @ @ @ @ @ @ @ @ @@ @@",
- " @ @@@ @ @ @ @@@@ @ @@@@ @@ @ @",
-
- " @@@ @ @@@ @@ @ @ @ @",
- " @ @ @ @ @@@@@@ @ @ @ @ @ @ @ @ @ ",
- " @ @ @ @ @ @ @ @ @@ @ @ @ @",
- " @@ @ @ @@ @@ @ @ @ ",
- " @@ @ @ @ @ @ @ @ @ @",
- " @ @ @ @ @ @ @ @ @ @ ",
- " @ @ @ @@@@@@ @@@ @ @@@ @ @ @ @"
-};
-
-int main(argc, argv)
-int argc;
-char *argv[];
-{
- int a, b, c, len, ind;
- char line[80];
-
- for (argv++; --argc; argv++) {
- len = strlen(*argv);
- if (len > 10) len = 10;
- for (a = 0; a < 7; a++) {
- for (b = 0; b < len; b++) {
- if ((ind = (*argv)[b] - ' ') < 0) ind = 0;
- for (c = 0; c < 7; c++) {
- line[b * 8 + c] = glyphs[(ind / 8 * 7) + a][(ind % 8 * 7) + c] == '@' ? ind + ' ' : ' ';
- }
- line[b * 8 + 7] = ' ';
- }
- for (b = len * 8 - 1; b >= 0; b--) {
- if (line[b] != ' ') break;
- line[b] = '\0';
- }
- printf("%s\n", line);
- }
- printf("\n");
- }
- return(0);
-}
diff --git a/man/man1/Makefile b/man/man1/Makefile
index 342b868..d92a292 100644
--- a/man/man1/Makefile
+++ b/man/man1/Makefile
@@ -1,4 +1,4 @@
-MAN= ash.1 at.1 banner.1 basename.1 \
+MAN= ash.1 at.1 basename.1 \
bsfilt.1 cal.1 cawf.1 chgrp.1 \
chmod.1 clear.1 cmp.1 comm.1 compress.1 \
cp.1 crc.1 crontab.1 ctags.1 dd.1 \
diff --git a/man/man1/banner.1 b/man/man1/banner.1
deleted file mode 100644
index a010d81..0000000
--- a/man/man1/banner.1
+++ /dev/null
@@ -1,24 +0,0 @@
-.TH BANNER 1
-.SH NAME
-banner \- print a banner
-.SH SYNOPSIS
-\fBbanner \fIarg ...\fR
-.br
-.de FL
-.TP
-\\fB\\$1\\fR
-\\$2
-..
-.de EX
-.TP 20
-\\fB\\$1\\fR
-# \\$2
-..
-.SH EXAMPLES
-.TP 20
-.B banner happy birthday
-# Print a banner saying happy birthday
-.SH DESCRIPTION
-.PP
-\fIBanner\fR prints its arguments on \fIstdout\fR using a matrix
-of 6 x 6 pixels per character.
diff --git a/releasetools/nbsd_ports b/releasetools/nbsd_ports
index a87a49f..d33f6ef 100644
--- a/releasetools/nbsd_ports
+++ b/releasetools/nbsd_ports
@@ -68,6 +68,7 @@
2012/10/17 12:00:00,tools/sed
2012/10/17 12:00:00,tools/tic
2012/10/17 12:00:00,tools/tsort
+2012/10/17 12:00:00,usr.bin/banner
2012/10/17 12:00:00,usr.bin/gzip/Makefile
2012/10/17 12:00:00,usr.bin/indent
2012/10/17 12:00:00,usr.bin/join
diff --git a/usr.bin/Makefile b/usr.bin/Makefile
index 53984bb..cf00dac 100644
--- a/usr.bin/Makefile
+++ b/usr.bin/Makefile
@@ -4,7 +4,7 @@
.include <bsd.own.mk>
SUBDIR= \
- \
+ banner \
bzip2 bzip2recover \
chpass cksum \
\
diff --git a/usr.bin/banner/Makefile b/usr.bin/banner/Makefile
new file mode 100644
index 0000000..a5db1e3
--- /dev/null
+++ b/usr.bin/banner/Makefile
@@ -0,0 +1,17 @@
+# $NetBSD: Makefile,v 1.4 2009/04/14 22:15:17 lukem Exp $
+
+PROG= banner
+
+SRCS= $(PROG).c chset.c
+
+# if you want to make chars from the letter involved (like lpd), then
+# un-comment the following.
+#CPPFLAGS+= -DNOHASH_ONLY
+
+# if you want to use the same char set that lpd uses then un-comment
+# the following. Lpd uses a much nicer character set but banner
+# output will not be the same as the real thing.
+#CPPFLAGS+= -DLPD_CHSET
+
+.include <bsd.prog.mk>
+
diff --git a/usr.bin/banner/banner.1 b/usr.bin/banner/banner.1
new file mode 100644
index 0000000..73e602a
--- /dev/null
+++ b/usr.bin/banner/banner.1
@@ -0,0 +1,63 @@
+.\" $NetBSD: banner.1,v 1.9 2012/02/29 08:54:55 wiz Exp $
+.\"
+.\" @(#)Copyright (c) 1995, Simon J. Gerraty.
+.\"
+.\" This is free software. It comes with NO WARRANTY.
+.\" Permission to use, modify and distribute this source code
+.\" is granted subject to the following conditions.
+.\" 1/ that the above copyright notice and this notice
+.\" are preserved in all copies and that due credit be given
+.\" to the author.
+.\" 2/ that any changes to this code are clearly commented
+.\" as such so that the author does not get blamed for bugs
+.\" other than his own.
+.\"
+.\" Please send copies of changes and bug-fixes to:
+.\" sjg@zen.void.oz.au
+.\"
+.Dd February 26, 2012
+.Dt BANNER 1
+.Os
+.Sh NAME
+.Nm banner
+.Nd print strings in large letters
+.Sh SYNOPSIS
+.Nm
+.Op Fl l
+.Op Fl b Ar bg
+.Op Fl f Ar fg
+.Ar string ...
+.Sh DESCRIPTION
+.Nm
+prints up to 10 chars of each
+.Ar string
+in large letters on the standard output.
+.Pp
+The options are:
+.Bl -tag -width Ds
+.It Fl b Ar bg
+Use
+.Ar bg
+as the background color (character) rather than the default
+.Dq \ .
+.It Fl f Ar fg
+Use
+.Ar fg
+as the foreground color (character) rather than the default
+.Dq # .
+If
+.Ar fg
+is
+.Dq - ,
+then the actual letter being printed is used as the
+foreground color in the same way that LPD does it.
+The results are quite variable.
+.It Fl l
+Use the more attractive LPD font instead of the traditional
+.Nm
+font.
+.El
+.Sh EXIT STATUS
+.Ex -std
+.Sh SEE ALSO
+.Xr banner 6
diff --git a/usr.bin/banner/banner.c b/usr.bin/banner/banner.c
new file mode 100644
index 0000000..b13ed06
--- /dev/null
+++ b/usr.bin/banner/banner.c
@@ -0,0 +1,211 @@
+/* $NetBSD: banner.c,v 1.15 2012/02/29 08:55:25 wiz Exp $ */
+
+/*
+ * Changes for banner(1)
+ *
+ * @(#)Copyright (c) 1995, Simon J. Gerraty.
+ *
+ * This is free software. It comes with NO WARRANTY.
+ * Permission to use, modify and distribute this source code
+ * is granted subject to the following conditions.
+ * 1/ that the above copyright notice and this notice
+ * are preserved in all copies and that due credit be given
+ * to the author.
+ * 2/ that any changes to this code are clearly commented
+ * as such so that the author does not get blamed for bugs
+ * other than his own.
+ *
+ * Please send copies of changes and bug-fixes to:
+ * sjg@zen.void.oz.au
+ */
+
+/*
+ * Copyright (c) 1983, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+#ifndef lint
+__COPYRIGHT("@(#) Copyright (c) 1983, 1993\
+ The Regents of the University of California. All rights reserved.");
+#endif /* not lint */
+
+#ifndef lint
+#if 0
+static char sccsid[] = "@(#)printjob.c 8.2 (Berkeley) 4/16/94";
+#else
+__RCSID("$NetBSD: banner.c,v 1.15 2012/02/29 08:55:25 wiz Exp $");
+#endif
+#endif /* not lint */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "banner.h"
+
+static long PW = LINELEN;
+/*
+ * <sjg> lpd makes chars out of the letter in question.
+ * the results are somewhat mixed. Sticking to '#' as
+ * banner(1) does is more consistent.
+ */
+static int ForeGnd = '#';
+static int BackGnd = ' ';
+static int Drop = 0; /* 3 for the LPD font */
+
+static int dropit (int);
+static void scan_out (int, char *, int);
+static char *scnline (int, char *, int);
+__dead static void usage(void);
+
+/* the char gen code below is lifted from lpd */
+
+static char *
+scnline(int key, char *p, int c)
+{
+ int scnwidth;
+
+ if (ForeGnd)
+ c = ForeGnd;
+
+ for (scnwidth = WIDTH; --scnwidth;) {
+ key <<= 1;
+ *p++ = key & 0200 ? c : BackGnd;
+ }
+ return (p);
+}
+
+#define TRC(q) (((q)-' ')&0177)
+
+
+static int
+dropit(int c)
+{
+ switch(c) {
+
+ case TRC('_'):
+ case TRC(';'):
+ case TRC(','):
+ case TRC('g'):
+ case TRC('j'):
+ case TRC('p'):
+ case TRC('q'):
+ case TRC('y'):
+ return (Drop);
+
+ default:
+ return (0);
+ }
+}
+
+static void
+scan_out(int scfd, char *scsp, int dlm)
+{
+ char *strp;
+ int nchrs, j;
+ char outbuf[LINELEN+1], *sp, c, cc;
+ int d, scnhgt;
+
+ for (scnhgt = 0; scnhgt++ < HEIGHT+Drop; ) {
+ strp = &outbuf[0];
+ if (BackGnd != ' ')
+ *strp++ = BackGnd;
+ sp = scsp;
+ for (nchrs = 0; *sp != dlm && *sp != '\0'; ) {
+ cc = *sp++;
+ if(cc < ' ' || ((int)cc) >= 0x7f)
+ cc = ' ';
+ d = dropit(c = TRC(cc));
+ if ((!d && scnhgt > HEIGHT) || (scnhgt <= Drop && d))
+ for (j = WIDTH; --j;)
+ *strp++ = BackGnd;
+ else if (Drop == 0)
+ strp = scnline(
+ scnkey_def[(int)c][scnhgt-1-d], strp, cc);
+ else
+ strp = scnline(
+ scnkey_lpd[(int)c][scnhgt-1-d], strp, cc);
+ if (nchrs++ >= PW/(WIDTH+1)-1)
+ break;
+ *strp++ = BackGnd;
+ }
+ if (BackGnd != ' ')
+ *strp++ = BackGnd;
+ else {
+ while (*--strp == ' ' && strp >= outbuf)
+ ;
+ strp++;
+ }
+ *strp++ = '\n';
+ (void) write(scfd, outbuf, strp-outbuf);
+ }
+}
+
+/*
+ * for each word, print up to 10 chars in big letters.
+ */
+int
+main(int argc, char **argv)
+{
+ char word[10+1]; /* strings limited to 10 chars */
+ int c;
+
+ while ((c = getopt(argc, argv, "b:f:l")) != -1) {
+ switch (c) {
+ case 'f':
+ if (*optarg == '-')
+ ForeGnd = 0;
+ else
+ ForeGnd = *optarg;
+ break;
+ case 'b':
+ BackGnd = *optarg;
+ break;
+ case 'l':
+ Drop = 3; /* for LPD font */
+ break;
+ default:
+ usage();
+ }
+ }
+
+ for (; optind < argc; ++optind) {
+ (void)strlcpy(word, argv[optind], sizeof (word));
+ scan_out(STDOUT_FILENO, word, '\0');
+ }
+ exit(0);
+}
+
+static void
+usage(void)
+{
+ fprintf(stderr, "usage: %s [-l] [-b bg] [-f fg] string ...\n",
+ getprogname());
+ exit(1);
+}
diff --git a/usr.bin/banner/banner.h b/usr.bin/banner/banner.h
new file mode 100644
index 0000000..9b4b373
--- /dev/null
+++ b/usr.bin/banner/banner.h
@@ -0,0 +1,28 @@
+/* $NetBSD: banner.h,v 1.4 2000/10/04 19:33:16 mjl Exp $ */
+
+/*
+ * Various defines needed for code lifted from lpd.
+ *
+ * @(#)Copyright (c) 1995, Simon J. Gerraty.
+ *
+ * This is free software. It comes with NO WARRANTY.
+ * Permission to use, modify and distribute this source code
+ * is granted subject to the following conditions.
+ * 1/ that the above copyright notice and this notice
+ * are preserved in all copies and that due credit be given
+ * to the author.
+ * 2/ that any changes to this code are clearly commented
+ * as such so that the author does not get blamed for bugs
+ * other than his own.
+ *
+ * Please send copies of changes and bug-fixes to:
+ * sjg@zen.void.oz.au
+ */
+
+#define LINELEN 132
+#define BACKGND ' '
+#define HEIGHT 9 /* height of characters */
+#define WIDTH 8 /* width of characters */
+
+extern const char scnkey_lpd[][HEIGHT];
+extern const char scnkey_def[][HEIGHT];
diff --git a/usr.bin/banner/chset.c b/usr.bin/banner/chset.c
new file mode 100644
index 0000000..6a6ba15
--- /dev/null
+++ b/usr.bin/banner/chset.c
@@ -0,0 +1,2226 @@
+/* $NetBSD: chset.c,v 1.6 2003/08/07 11:13:09 agc Exp $ */
+
+/*
+ * Changes for banner(1)
+ * @(#)Copyright (c) 1995, Simon J. Gerraty.
+ *
+ * This is free software. It comes with NO WARRANTY.
+ * Permission to use, modify and distribute this source code
+ * is granted subject to the following conditions.
+ * 1/ that the above copyright notice and this notice
+ * are preserved in all copies and that due credit be given
+ * to the author.
+ * 2/ that any changes to this code are clearly commented
+ * as such so that the author does not get blamed for bugs
+ * other than his own.
+ *
+ * Please send copies of changes and bug-fixes to:
+ * sjg@zen.void.oz.au
+ */
+
+/*
+ * Copyright (c) 1983, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+#ifndef lint
+#if 0
+static char sccsid[] = "@(#)lpdchar.c 8.1 (Berkeley) 6/6/93";
+#else
+__RCSID("$NetBSD: chset.c,v 1.6 2003/08/07 11:13:09 agc Exp $");
+#endif
+#endif /* not lint */
+
+#include "banner.h"
+
+/*
+ * <sjg> the following were all re-generated by a perl script,
+ * to fill in the gaps needed by the banner(1) char set.
+ */
+#define c_______ 0
+#define c______1 1
+#define c_____1_ 2
+#define c_____11 3
+#define c____1__ 4
+#define c____1_1 5
+#define c____11_ 6
+#define c____111 7
+#define c___1___ 8
+#define c___1__1 9
+#define c___1_1_ 10
+#define c___1_11 11
+#define c___11__ 12
+#define c___11_1 13
+#define c___111_ 14
+#define c___1111 15
+#define c__1____ 16
+#define c__1___1 17
+#define c__1__1_ 18
+#define c__1__11 19
+#define c__1_1__ 20
+#define c__1_1_1 21
+#define c__1_11_ 22
+#define c__1_111 23
+#define c__11___ 24
+#define c__11__1 25
+#define c__11_1_ 26
+#define c__11_11 27
+#define c__111__ 28
+#define c__111_1 29
+#define c__1111_ 30
+#define c__11111 31
+#define c_1_____ 32
+#define c_1____1 33
+#define c_1___1_ 34
+#define c_1___11 35
+#define c_1__1__ 36
+#define c_1__1_1 37
+#define c_1__11_ 38
+#define c_1__111 39
+#define c_1_1___ 40
+#define c_1_1__1 41
+#define c_1_1_1_ 42
+#define c_1_1_11 43
+#define c_1_11__ 44
+#define c_1_11_1 45
+#define c_1_111_ 46
+#define c_1_1111 47
+#define c_11____ 48
+#define c_11___1 49
+#define c_11__1_ 50
+#define c_11__11 51
+#define c_11_1__ 52
+#define c_11_1_1 53
+#define c_11_11_ 54
+#define c_11_111 55
+#define c_111___ 56
+#define c_111__1 57
+#define c_111_1_ 58
+#define c_111_11 59
+#define c_1111__ 60
+#define c_1111_1 61
+#define c_11111_ 62
+#define c_111111 63
+#define c1______ 64
+#define c1_____1 65
+#define c1____1_ 66
+#define c1____11 67
+#define c1___1__ 68
+#define c1___1_1 69
+#define c1___11_ 70
+#define c1___111 71
+#define c1__1___ 72
+#define c1__1__1 73
+#define c1__1_1_ 74
+#define c1__1_11 75
+#define c1__11__ 76
+#define c1__11_1 77
+#define c1__111_ 78
+#define c1__1111 79
+#define c1_1____ 80
+#define c1_1___1 81
+#define c1_1__1_ 82
+#define c1_1__11 83
+#define c1_1_1__ 84
+#define c1_1_1_1 85
+#define c1_1_11_ 86
+#define c1_1_111 87
+#define c1_11___ 88
+#define c1_11__1 89
+#define c1_11_1_ 90
+#define c1_11_11 91
+#define c1_111__ 92
+#define c1_111_1 93
+#define c1_1111_ 94
+#define c1_11111 95
+#define c11_____ 96
+#define c11____1 97
+#define c11___1_ 98
+#define c11___11 99
+#define c11__1__ 100
+#define c11__1_1 101
+#define c11__11_ 102
+#define c11__111 103
+#define c11_1___ 104
+#define c11_1__1 105
+#define c11_1_1_ 106
+#define c11_1_11 107
+#define c11_11__ 108
+#define c11_11_1 109
+#define c11_111_ 110
+#define c11_1111 111
+#define c111____ 112
+#define c111___1 113
+#define c111__1_ 114
+#define c111__11 115
+#define c111_1__ 116
+#define c111_1_1 117
+#define c111_11_ 118
+#define c111_111 119
+#define c1111___ 120
+#define c1111__1 121
+#define c1111_1_ 122
+#define c1111_11 123
+#define c11111__ 124
+#define c11111_1 125
+#define c111111_ 126
+#define c1111111 127
+
+
+
+/*
+ * This is relatively easy to modify just look:
+ */
+const char scnkey_lpd[][HEIGHT] =
+{
+ { c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______ }, /* */
+
+ { c__11___,
+ c__11___,
+ c__11___,
+ c__11___,
+ c__11___,
+ c_______,
+ c_______,
+ c__11___,
+ c__11___ }, /* ! */
+
+ { c_1__1__,
+ c_1__1__,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______ }, /* " */
+
+ { c_______,
+ c__1_1__,
+ c__1_1__,
+ c1111111,
+ c__1_1__,
+ c1111111,
+ c__1_1__,
+ c__1_1__,
+ c_______ }, /* # */
+
+ { c___1___,
+ c_11111_,
+ c1__1__1,
+ c1__1___,
+ c_11111_,
+ c___1__1,
+ c1__1__1,
+ c_11111_,
+ c___1___ }, /* $ */
+
+ { c_1_____,
+ c1_1___1,
+ c_1___1_,
+ c____1__,
+ c___1___,
+ c__1____,
+ c_1___1_,
+ c1___1_1,
+ c_____1_ }, /* % */
+
+ { c_11____,
+ c1__1___,
+ c1___1__,
+ c_1_1___,
+ c__1____,
+ c_1_1__1,
+ c1___11_,
+ c1___11_,
+ c_111__1 }, /* & */
+
+ { c___11__,
+ c___11__,
+ c___1___,
+ c__1____,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______ }, /* ' */
+
+ { c____1__,
+ c___1___,
+ c__1____,
+ c__1____,
+ c__1____,
+ c__1____,
+ c__1____,
+ c___1___,
+ c____1__ }, /* ( */
+
+ { c__1____,
+ c___1___,
+ c____1__,
+ c____1__,
+ c____1__,
+ c____1__,
+ c____1__,
+ c___1___,
+ c__1____ }, /* ) */
+
+ { c_______,
+ c___1___,
+ c1__1__1,
+ c_1_1_1_,
+ c__111__,
+ c_1_1_1_,
+ c1__1__1,
+ c___1___,
+ c_______ }, /* * */
+
+ { c_______,
+ c___1___,
+ c___1___,
+ c___1___,
+ c1111111,
+ c___1___,
+ c___1___,
+ c___1___,
+ c_______ }, /* + */
+
+ { c_______,
+ c_______,
+ c_______,
+ c_______,
+ c__11___,
+ c__11___,
+ c__1____,
+ c_1_____,
+ c_______ }, /* , */
+
+ { c_______,
+ c_______,
+ c_______,
+ c_______,
+ c1111111,
+ c_______,
+ c_______,
+ c_______,
+ c_______ }, /* - */
+
+ { c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c__11___,
+ c__11___ }, /* . */
+
+ { c_______,
+ c______1,
+ c_____1_,
+ c____1__,
+ c___1___,
+ c__1____,
+ c_1_____,
+ c1______,
+ c_______ }, /* / */
+
+ { c_11111_,
+ c1_____1,
+ c1____11,
+ c1___1_1,
+ c1__1__1,
+ c1_1___1,
+ c11____1,
+ c1_____1,
+ c_11111_ }, /* 0 */
+
+ { c___1___,
+ c__11___,
+ c_1_1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c_11111_ }, /* 1 */
+
+ { c_11111_,
+ c1_____1,
+ c______1,
+ c_____1_,
+ c__111__,
+ c_1_____,
+ c1______,
+ c1______,
+ c1111111 }, /* 2 */
+
+ { c_11111_,
+ c1_____1,
+ c______1,
+ c______1,
+ c__1111_,
+ c______1,
+ c______1,
+ c1_____1,
+ c_11111_ }, /* 3 */
+
+ { c_____1_,
+ c____11_,
+ c___1_1_,
+ c__1__1_,
+ c_1___1_,
+ c1____1_,
+ c1111111,
+ c_____1_,
+ c_____1_ }, /* 4 */
+
+ { c1111111,
+ c1______,
+ c1______,
+ c11111__,
+ c_____1_,
+ c______1,
+ c______1,
+ c1____1_,
+ c_1111__ }, /* 5 */
+
+ { c__1111_,
+ c_1_____,
+ c1______,
+ c1______,
+ c1_1111_,
+ c11____1,
+ c1_____1,
+ c1_____1,
+ c_11111_ }, /* 6 */
+
+ { c1111111,
+ c1_____1,
+ c_____1_,
+ c____1__,
+ c___1___,
+ c__1____,
+ c__1____,
+ c__1____,
+ c__1____ }, /* 7 */
+
+ { c_11111_,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c_11111_,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c_11111_ }, /* 8 */
+
+ { c_11111_,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c_111111,
+ c______1,
+ c______1,
+ c1_____1,
+ c_1111__ }, /* 9 */
+
+ { c_______,
+ c_______,
+ c_______,
+ c__11___,
+ c__11___,
+ c_______,
+ c_______,
+ c__11___,
+ c__11___ }, /* : */
+
+
+ { c__11___,
+ c__11___,
+ c_______,
+ c_______,
+ c__11___,
+ c__11___,
+ c__1____,
+ c_1_____,
+ c_______ }, /* ; */
+
+ { c____1__,
+ c___1___,
+ c__1____,
+ c_1_____,
+ c1______,
+ c_1_____,
+ c__1____,
+ c___1___,
+ c____1__ }, /* < */
+
+ { c_______,
+ c_______,
+ c_______,
+ c1111111,
+ c_______,
+ c1111111,
+ c_______,
+ c_______,
+ c_______ }, /* = */
+
+ { c__1____,
+ c___1___,
+ c____1__,
+ c_____1_,
+ c______1,
+ c_____1_,
+ c____1__,
+ c___1___,
+ c__1____ }, /* > */
+
+ { c__1111_,
+ c_1____1,
+ c_1____1,
+ c______1,
+ c____11_,
+ c___1___,
+ c___1___,
+ c_______,
+ c___1___ }, /* ? */
+
+ { c__1111_,
+ c_1____1,
+ c1__11_1,
+ c1_1_1_1,
+ c1_1_1_1,
+ c1_1111_,
+ c1______,
+ c_1____1,
+ c__1111_ }, /* @ */
+
+ { c__111__,
+ c_1___1_,
+ c1_____1,
+ c1_____1,
+ c1111111,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1 }, /* A */
+
+ { c111111_,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c_11111_,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c111111_ }, /* B */
+
+ { c__1111_,
+ c_1____1,
+ c1______,
+ c1______,
+ c1______,
+ c1______,
+ c1______,
+ c_1____1,
+ c__1111_ }, /* C */
+
+ { c11111__,
+ c_1___1_,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c_1___1_,
+ c11111__ }, /* D */
+
+ { c1111111,
+ c1______,
+ c1______,
+ c1______,
+ c111111_,
+ c1______,
+ c1______,
+ c1______,
+ c1111111 }, /* E */
+
+ { c1111111,
+ c1______,
+ c1______,
+ c1______,
+ c111111_,
+ c1______,
+ c1______,
+ c1______,
+ c1______ }, /* F */
+
+ { c__1111_,
+ c_1____1,
+ c1______,
+ c1______,
+ c1______,
+ c1__1111,
+ c1_____1,
+ c_1____1,
+ c__1111_ }, /* G */
+
+ { c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1111111,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1 }, /* H */
+
+ { c_11111_,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c_11111_ }, /* I */
+
+ { c__11111,
+ c____1__,
+ c____1__,
+ c____1__,
+ c____1__,
+ c____1__,
+ c____1__,
+ c1___1__,
+ c_111___ }, /* J */
+
+ { c1_____1,
+ c1____1_,
+ c1___1__,
+ c1__1___,
+ c1_1____,
+ c11_1___,
+ c1___1__,
+ c1____1_,
+ c1_____1 }, /* K */
+
+ { c1______,
+ c1______,
+ c1______,
+ c1______,
+ c1______,
+ c1______,
+ c1______,
+ c1______,
+ c1111111 }, /* L */
+
+ { c1_____1,
+ c11___11,
+ c1_1_1_1,
+ c1__1__1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1 }, /* M */
+
+ { c1_____1,
+ c11____1,
+ c1_1___1,
+ c1__1__1,
+ c1___1_1,
+ c1____11,
+ c1_____1,
+ c1_____1,
+ c1_____1 }, /* N */
+
+ { c__111__,
+ c_1___1_,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c_1___1_,
+ c__111__ }, /* O */
+
+ { c111111_,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c111111_,
+ c1______,
+ c1______,
+ c1______,
+ c1______ }, /* P */
+
+ { c__111__,
+ c_1___1_,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1__1__1,
+ c1___1_1,
+ c_1___1_,
+ c__111_1 }, /* Q */
+
+ { c111111_,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c111111_,
+ c1__1___,
+ c1___1__,
+ c1____1_,
+ c1_____1 }, /* R */
+
+ { c_11111_,
+ c1_____1,
+ c1______,
+ c1______,
+ c_11111_,
+ c______1,
+ c______1,
+ c1_____1,
+ c_11111_ }, /* S */
+
+ { c1111111,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___ }, /* T */
+
+ { c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c_11111_ }, /* U */
+
+ { c1_____1,
+ c1_____1,
+ c1_____1,
+ c_1___1_,
+ c_1___1_,
+ c__1_1__,
+ c__1_1__,
+ c___1___,
+ c___1___ }, /* V */
+
+ { c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1__1__1,
+ c1__1__1,
+ c1_1_1_1,
+ c11___11,
+ c1_____1 }, /* W */
+
+ { c1_____1,
+ c1_____1,
+ c_1___1_,
+ c__1_1__,
+ c___1___,
+ c__1_1__,
+ c_1___1_,
+ c1_____1,
+ c1_____1 }, /* X */
+
+ { c1_____1,
+ c1_____1,
+ c_1___1_,
+ c__1_1__,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___ }, /* Y */
+
+ { c1111111,
+ c______1,
+ c_____1_,
+ c____1__,
+ c___1___,
+ c__1____,
+ c_1_____,
+ c1______,
+ c1111111 }, /* Z */
+
+ { c_1111__,
+ c_1_____,
+ c_1_____,
+ c_1_____,
+ c_1_____,
+ c_1_____,
+ c_1_____,
+ c_1_____,
+ c_1111__ }, /* [ */
+
+ { c_______,
+ c1______,
+ c_1_____,
+ c__1____,
+ c___1___,
+ c____1__,
+ c_____1_,
+ c______1,
+ c_______ }, /* \ */
+
+ { c__1111_,
+ c_____1_,
+ c_____1_,
+ c_____1_,
+ c_____1_,
+ c_____1_,
+ c_____1_,
+ c_____1_,
+ c__1111_ }, /* ] */
+
+ { c___1___,
+ c__1_1__,
+ c_1___1_,
+ c1_____1,
+ c_______,
+ c_______,
+ c_______,
+ c_______ }, /* ^ */
+
+ { c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c1111111,
+ c_______ }, /* _ */
+
+ { c__11___,
+ c__11___,
+ c___1___,
+ c____1__,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______ }, /* ` */
+
+ { c_______,
+ c_______,
+ c_______,
+ c_1111__,
+ c_____1_,
+ c_11111_,
+ c1_____1,
+ c1____11,
+ c_1111_1 }, /* a */
+
+ { c1______,
+ c1______,
+ c1______,
+ c1_111__,
+ c11___1_,
+ c1_____1,
+ c1_____1,
+ c11___1_,
+ c1_111__ }, /* b */
+
+ { c_______,
+ c_______,
+ c_______,
+ c_1111__,
+ c1____1_,
+ c1______,
+ c1______,
+ c1____1_,
+ c_1111__ }, /* c */
+
+ { c_____1_,
+ c_____1_,
+ c_____1_,
+ c_111_1_,
+ c1___11_,
+ c1____1_,
+ c1____1_,
+ c1___11_,
+ c_111_1_ }, /* d */
+
+ { c_______,
+ c_______,
+ c_______,
+ c_1111__,
+ c1____1_,
+ c111111_,
+ c1______,
+ c1____1_,
+ c_1111__ }, /* e */
+
+ { c___11__,
+ c__1__1_,
+ c__1____,
+ c__1____,
+ c11111__,
+ c__1____,
+ c__1____,
+ c__1____,
+ c__1____ }, /* f */
+
+ { c_111_1_,
+ c1___11_,
+ c1____1_,
+ c1____1_,
+ c1___11_,
+ c_111_1_,
+ c_____1_,
+ c1____1_,
+ c_1111__ }, /* g */
+
+ { c1______,
+ c1______,
+ c1______,
+ c1_111__,
+ c11___1_,
+ c1____1_,
+ c1____1_,
+ c1____1_,
+ c1____1_ }, /* h */
+
+ { c_______,
+ c___1___,
+ c_______,
+ c__11___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c__111__ }, /* i */
+
+ { c____11_,
+ c_____1_,
+ c_____1_,
+ c_____1_,
+ c_____1_,
+ c_____1_,
+ c_____1_,
+ c_1___1_,
+ c__111__ }, /* j */
+
+ { c1______,
+ c1______,
+ c1______,
+ c1___1__,
+ c1__1___,
+ c1_1____,
+ c11_1___,
+ c1___1__,
+ c1____1_ }, /* k */
+
+ { c__11___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c__111__ }, /* l */
+
+ { c_______,
+ c_______,
+ c_______,
+ c1_1_11_,
+ c11_1__1,
+ c1__1__1,
+ c1__1__1,
+ c1__1__1,
+ c1__1__1 }, /* m */
+
+ { c_______,
+ c_______,
+ c_______,
+ c1_111__,
+ c11___1_,
+ c1____1_,
+ c1____1_,
+ c1____1_,
+ c1____1_ }, /* n */
+
+ { c_______,
+ c_______,
+ c_______,
+ c_1111__,
+ c1____1_,
+ c1____1_,
+ c1____1_,
+ c1____1_,
+ c_1111__ }, /* o */
+
+ { c1_111__,
+ c11___1_,
+ c1____1_,
+ c1____1_,
+ c11___1_,
+ c1_111__,
+ c1______,
+ c1______,
+ c1______ }, /* p */
+
+ { c_111_1_,
+ c1___11_,
+ c1____1_,
+ c1____1_,
+ c1___11_,
+ c_111_1_,
+ c_____1_,
+ c_____1_,
+ c_____1_ }, /* q */
+
+ { c_______,
+ c_______,
+ c_______,
+ c1_111__,
+ c11___1_,
+ c1______,
+ c1______,
+ c1______,
+ c1______ }, /* r */
+
+ { c_______,
+ c_______,
+ c_______,
+ c_1111__,
+ c1____1_,
+ c_11____,
+ c___11__,
+ c1____1_,
+ c_1111__ }, /* s */
+
+ { c_______,
+ c__1____,
+ c__1____,
+ c11111__,
+ c__1____,
+ c__1____,
+ c__1____,
+ c__1__1_,
+ c___11__ }, /* t */
+
+ { c_______,
+ c_______,
+ c_______,
+ c1____1_,
+ c1____1_,
+ c1____1_,
+ c1____1_,
+ c1___11_,
+ c_111_1_ }, /* u */
+
+ { c_______,
+ c_______,
+ c_______,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c_1___1_,
+ c__1_1__,
+ c___1___ }, /* v */
+
+ { c_______,
+ c_______,
+ c_______,
+ c1_____1,
+ c1__1__1,
+ c1__1__1,
+ c1__1__1,
+ c1__1__1,
+ c_11_11_ }, /* w */
+
+ { c_______,
+ c_______,
+ c_______,
+ c1____1_,
+ c_1__1__,
+ c__11___,
+ c__11___,
+ c_1__1__,
+ c1____1_ }, /* x */
+
+ { c1____1_,
+ c1____1_,
+ c1____1_,
+ c1____1_,
+ c1___11_,
+ c_111_1_,
+ c_____1_,
+ c1____1_,
+ c_1111__ }, /* y */
+
+ { c_______,
+ c_______,
+ c_______,
+ c111111_,
+ c____1__,
+ c___1___,
+ c__1____,
+ c_1_____,
+ c111111_ }, /* z */
+
+ { c___11__,
+ c__1____,
+ c__1____,
+ c__1____,
+ c_1_____,
+ c__1____,
+ c__1____,
+ c__1____,
+ c___11__ }, /* } */
+
+ { c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___ }, /* | */
+
+ { c__11___,
+ c____1__,
+ c____1__,
+ c____1__,
+ c_____1_,
+ c____1__,
+ c____1__,
+ c____1__,
+ c__11___ }, /* } */
+
+ { c_11____,
+ c1__1__1,
+ c____11_,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______ }, /* ~ */
+
+ { c_1__1__,
+ c1__1__1,
+ c__1__1_,
+ c_1__1__,
+ c1__1__1,
+ c__1__1_,
+ c_1__1__,
+ c1__1__1,
+ c__1__1_ } /* rub-out */
+};
+
+/*
+ * This is the real banner char set
+ */
+const char scnkey_def[][HEIGHT] =
+{
+ {
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______
+ }, /* */
+
+ {
+ c_______,
+ c__111__,
+ c__111__,
+ c__111__,
+ c___1___,
+ c_______,
+ c__111__,
+ c__111__,
+ c_______
+ }, /* ! */
+ {
+ c_______,
+ c111_111,
+ c111_111,
+ c_1___1_,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______
+ }, /* " */
+ {
+ c_______,
+ c__1_1__,
+ c__1_1__,
+ c1111111,
+ c__1_1__,
+ c1111111,
+ c__1_1__,
+ c__1_1__,
+ c_______
+ }, /* # */
+ {
+ c_______,
+ c_11111_,
+ c1__1__1,
+ c1__1___,
+ c_11111_,
+ c___1__1,
+ c1__1__1,
+ c_11111_,
+ c_______
+ }, /* $ */
+ {
+ c_______,
+ c111___1,
+ c1_1__1_,
+ c111_1__,
+ c___1___,
+ c__1_111,
+ c_1__1_1,
+ c1___111,
+ c_______
+ }, /* % */
+ {
+ c_______,
+ c__11___,
+ c_1__1__,
+ c__11___,
+ c_111___,
+ c1___1_1,
+ c1____1_,
+ c_111__1,
+ c_______
+ }, /* & */
+ {
+ c_______,
+ c__111__,
+ c__111__,
+ c___1___,
+ c__1____,
+ c_______,
+ c_______,
+ c_______,
+ c_______
+ }, /* ' */
+ {
+ c_______,
+ c___11__,
+ c__1____,
+ c_1_____,
+ c_1_____,
+ c_1_____,
+ c__1____,
+ c___11__,
+ c_______
+ }, /* ( */
+ {
+ c_______,
+ c__11___,
+ c____1__,
+ c_____1_,
+ c_____1_,
+ c_____1_,
+ c____1__,
+ c__11___,
+ c_______
+ }, /* ) */
+ {
+ c_______,
+ c_______,
+ c_1___1_,
+ c__1_1__,
+ c1111111,
+ c__1_1__,
+ c_1___1_,
+ c_______,
+ c_______
+ }, /* * */
+ {
+ c_______,
+ c_______,
+ c___1___,
+ c___1___,
+ c_11111_,
+ c___1___,
+ c___1___,
+ c_______,
+ c_______
+ }, /* + */
+ {
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c__111__,
+ c__111__,
+ c___1___,
+ c__1____,
+ c_______
+ }, /* , */
+ {
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_11111_,
+ c_______,
+ c_______,
+ c_______,
+ c_______
+ }, /* - */
+ {
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c__111__,
+ c__111__,
+ c__111__,
+ c_______
+ }, /* . */
+ {
+ c_______,
+ c______1,
+ c_____1_,
+ c____1__,
+ c___1___,
+ c__1____,
+ c_1_____,
+ c1______,
+ c_______
+ }, /* / */
+ {
+ c_______,
+ c__111__,
+ c_1___1_,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c_1___1_,
+ c__111__,
+ c_______
+ }, /* 0 */
+ {
+ c_______,
+ c___1___,
+ c__11___,
+ c_1_1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c_11111_,
+ c_______
+ }, /* 1 */
+ {
+ c_______,
+ c_11111_,
+ c1_____1,
+ c______1,
+ c_11111_,
+ c1______,
+ c1______,
+ c1111111,
+ c_______
+ }, /* 2 */
+ {
+ c_______,
+ c_11111_,
+ c1_____1,
+ c______1,
+ c_11111_,
+ c______1,
+ c1_____1,
+ c_11111_,
+ c_______
+ }, /* 3 */
+ {
+ c_______,
+ c1______,
+ c1____1_,
+ c1____1_,
+ c1____1_,
+ c1111111,
+ c_____1_,
+ c_____1_,
+ c_______
+ }, /* 4 */
+ {
+ c_______,
+ c1111111,
+ c1______,
+ c1______,
+ c111111_,
+ c______1,
+ c1_____1,
+ c_11111_,
+ c_______
+ }, /* 5 */
+ {
+ c_______,
+ c_11111_,
+ c1_____1,
+ c1______,
+ c111111_,
+ c1_____1,
+ c1_____1,
+ c_11111_,
+ c_______
+ }, /* 6 */
+ {
+ c_______,
+ c1111111,
+ c1____1_,
+ c____1__,
+ c___1___,
+ c__1____,
+ c__1____,
+ c__1____,
+ c_______
+ }, /* 7 */
+ {
+ c_______,
+ c_11111_,
+ c1_____1,
+ c1_____1,
+ c_11111_,
+ c1_____1,
+ c1_____1,
+ c_11111_,
+ c_______
+ }, /* 8 */
+ {
+ c_______,
+ c_11111_,
+ c1_____1,
+ c1_____1,
+ c_111111,
+ c______1,
+ c1_____1,
+ c_11111_,
+ c_______
+ }, /* 9 */
+ {
+ c_______,
+ c___1___,
+ c__111__,
+ c___1___,
+ c_______,
+ c___1___,
+ c__111__,
+ c___1___,
+ c_______
+ }, /* : */
+ {
+ c_______,
+ c__111__,
+ c__111__,
+ c_______,
+ c__111__,
+ c__111__,
+ c___1___,
+ c__1____,
+ c_______
+ }, /* ; */
+ {
+ c_______,
+ c____1__,
+ c___1___,
+ c__1____,
+ c_1_____,
+ c__1____,
+ c___1___,
+ c____1__,
+ c_______
+ }, /* < */
+ {
+ c_______,
+ c_______,
+ c_______,
+ c_11111_,
+ c_______,
+ c_11111_,
+ c_______,
+ c_______,
+ c_______
+ }, /* = */
+ {
+ c_______,
+ c__1____,
+ c___1___,
+ c____1__,
+ c_____1_,
+ c____1__,
+ c___1___,
+ c__1____,
+ c_______
+ }, /* > */
+ {
+ c_______,
+ c_11111_,
+ c1_____1,
+ c______1,
+ c___111_,
+ c___1___,
+ c_______,
+ c___1___,
+ c_______
+ }, /* ? */
+ {
+ c_______,
+ c_11111_,
+ c1_____1,
+ c1_111_1,
+ c1_111_1,
+ c1_1111_,
+ c1______,
+ c_11111_,
+ c_______
+ }, /* @ */
+ {
+ c_______,
+ c___1___,
+ c__1_1__,
+ c_1___1_,
+ c1_____1,
+ c1111111,
+ c1_____1,
+ c1_____1,
+ c_______
+ }, /* A */
+ {
+ c_______,
+ c111111_,
+ c1_____1,
+ c1_____1,
+ c111111_,
+ c1_____1,
+ c1_____1,
+ c111111_,
+ c_______
+ }, /* B */
+ {
+ c_______,
+ c_11111_,
+ c1_____1,
+ c1______,
+ c1______,
+ c1______,
+ c1_____1,
+ c_11111_,
+ c_______
+ }, /* C */
+ {
+ c_______,
+ c111111_,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c111111_,
+ c_______
+ }, /* D */
+ {
+ c_______,
+ c1111111,
+ c1______,
+ c1______,
+ c11111__,
+ c1______,
+ c1______,
+ c1111111,
+ c_______
+ }, /* E */
+ {
+ c_______,
+ c1111111,
+ c1______,
+ c1______,
+ c11111__,
+ c1______,
+ c1______,
+ c1______,
+ c_______
+ }, /* F */
+ {
+ c_______,
+ c_11111_,
+ c1_____1,
+ c1______,
+ c1__1111,
+ c1_____1,
+ c1_____1,
+ c_11111_,
+ c_______
+ }, /* G */
+ {
+ c_______,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1111111,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c_______
+ }, /* H */
+ {
+ c_______,
+ c__111__,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c__111__,
+ c_______
+ }, /* I */
+ {
+ c_______,
+ c______1,
+ c______1,
+ c______1,
+ c______1,
+ c1_____1,
+ c1_____1,
+ c_11111_,
+ c_______
+ }, /* J */
+ {
+ c_______,
+ c1____1_,
+ c1___1__,
+ c1__1___,
+ c111____,
+ c1__1___,
+ c1___1__,
+ c1____1_,
+ c_______
+ }, /* K */
+ {
+ c_______,
+ c1______,
+ c1______,
+ c1______,
+ c1______,
+ c1______,
+ c1______,
+ c1111111,
+ c_______
+ }, /* L */
+ {
+ c_______,
+ c1_____1,
+ c11___11,
+ c1_1_1_1,
+ c1__1__1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c_______
+ }, /* M */
+ {
+ c_______,
+ c1_____1,
+ c11____1,
+ c1_1___1,
+ c1__1__1,
+ c1___1_1,
+ c1____11,
+ c1_____1,
+ c_______
+ }, /* N */
+ {
+ c_______,
+ c1111111,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1111111,
+ c_______
+ }, /* O */
+ {
+ c_______,
+ c111111_,
+ c1_____1,
+ c1_____1,
+ c111111_,
+ c1______,
+ c1______,
+ c1______,
+ c_______
+ }, /* P */
+ {
+ c_______,
+ c_11111_,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1___1_1,
+ c1____1_,
+ c_1111_1,
+ c_______
+ }, /* Q */
+ {
+ c_______,
+ c111111_,
+ c1_____1,
+ c1_____1,
+ c111111_,
+ c1___1__,
+ c1____1_,
+ c1_____1,
+ c_______
+ }, /* R */
+ {
+ c_______,
+ c_11111_,
+ c1_____1,
+ c1______,
+ c_11111_,
+ c______1,
+ c1_____1,
+ c_11111_,
+ c_______
+ }, /* S */
+ {
+ c_______,
+ c1111111,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c_______
+ }, /* T */
+ {
+ c_______,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c_11111_,
+ c_______
+ }, /* U */
+ {
+ c_______,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c1_____1,
+ c_1___1_,
+ c__1_1__,
+ c___1___,
+ c_______
+ }, /* V */
+ {
+ c_______,
+ c1_____1,
+ c1__1__1,
+ c1__1__1,
+ c1__1__1,
+ c1__1__1,
+ c1__1__1,
+ c_11_11_,
+ c_______
+ }, /* W */
+ {
+ c_______,
+ c1_____1,
+ c_1___1_,
+ c__1_1__,
+ c___1___,
+ c__1_1__,
+ c_1___1_,
+ c1_____1,
+ c_______
+ }, /* X */
+ {
+ c_______,
+ c1_____1,
+ c_1___1_,
+ c__1_1__,
+ c___1___,
+ c___1___,
+ c___1___,
+ c___1___,
+ c_______
+ }, /* Y */
+ {
+ c_______,
+ c1111111,
+ c_____1_,
+ c____1__,
+ c___1___,
+ c__1____,
+ c_1_____,
+ c1111111,
+ c_______
+ }, /* Z */
+ {
+ c_______,
+ c_11111_,
+ c_1_____,
+ c_1_____,
+ c_1_____,
+ c_1_____,
+ c_1_____,
+ c_11111_,
+ c_______
+ }, /* [ */
+ {
+ c_______,
+ c1______,
+ c_1_____,
+ c__1____,
+ c___1___,
+ c____1__,
+ c_____1_,
+ c______1,
+ c_______
+ }, /* \ */
+ {
+ c_______,
+ c_11111_,
+ c_____1_,
+ c_____1_,
+ c_____1_,
+ c_____1_,
+ c_____1_,
+ c_11111_,
+ c_______
+ }, /* ] */
+ {
+ c_______,
+ c___1___,
+ c__1_1__,
+ c_1___1_,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______
+ }, /* ^ */
+ {
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c1111111,
+ c_______
+ }, /* _ */
+ {
+ c_______,
+ c__111__,
+ c__111__,
+ c___1___,
+ c____1__,
+ c_______,
+ c_______,
+ c_______,
+ c_______
+ }, /* ` */
+ {
+ c_______,
+ c_______,
+ c___11__,
+ c__1__1_,
+ c_1____1,
+ c_111111,
+ c_1____1,
+ c_1____1,
+ c_______
+ }, /* a */
+ {
+ c_______,
+ c_______,
+ c_11111_,
+ c_1____1,
+ c_11111_,
+ c_1____1,
+ c_1____1,
+ c_11111_,
+ c_______
+ }, /* b */
+ {
+ c_______,
+ c_______,
+ c__1111_,
+ c_1____1,
+ c_1_____,
+ c_1_____,
+ c_1____1,
+ c__1111_,
+ c_______
+ }, /* c */
+ {
+ c_______,
+ c_______,
+ c_11111_,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c_11111_,
+ c_______
+ }, /* d */
+ {
+ c_______,
+ c_______,
+ c_111111,
+ c_1_____,
+ c_11111_,
+ c_1_____,
+ c_1_____,
+ c_111111,
+ c_______
+ }, /* e */
+ {
+ c_______,
+ c_______,
+ c_111111,
+ c_1_____,
+ c_11111_,
+ c_1_____,
+ c_1_____,
+ c_1_____,
+ c_______
+ }, /* f */
+ {
+ c_______,
+ c_______,
+ c__1111_,
+ c_1____1,
+ c_1_____,
+ c_1__111,
+ c_1____1,
+ c__1111_,
+ c_______
+ }, /* g */
+ {
+ c_______,
+ c_______,
+ c_1____1,
+ c_1____1,
+ c_111111,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c_______
+ }, /* h */
+ {
+ c_______,
+ c_______,
+ c____1__,
+ c____1__,
+ c____1__,
+ c____1__,
+ c____1__,
+ c____1__,
+ c_______
+ }, /* i */
+ {
+ c_______,
+ c_______,
+ c______1,
+ c______1,
+ c______1,
+ c______1,
+ c_1____1,
+ c__1111_,
+ c_______
+ }, /* j */
+ {
+ c_______,
+ c_______,
+ c_1____1,
+ c_1___1_,
+ c_1111__,
+ c_1__1__,
+ c_1___1_,
+ c_1____1,
+ c_______
+ }, /* k */
+ {
+ c_______,
+ c_______,
+ c_1_____,
+ c_1_____,
+ c_1_____,
+ c_1_____,
+ c_1_____,
+ c_111111,
+ c_______
+ }, /* l */
+ {
+ c_______,
+ c_______,
+ c_1____1,
+ c_11__11,
+ c_1_11_1,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c_______
+ }, /* m */
+ {
+ c_______,
+ c_______,
+ c_1____1,
+ c_11___1,
+ c_1_1__1,
+ c_1__1_1,
+ c_1___11,
+ c_1____1,
+ c_______
+ }, /* n */
+ {
+ c_______,
+ c_______,
+ c__1111_,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c__1111_,
+ c_______
+ }, /* o */
+ {
+ c_______,
+ c_______,
+ c_11111_,
+ c_1____1,
+ c_1____1,
+ c_11111_,
+ c_1_____,
+ c_1_____,
+ c_______
+ }, /* p */
+ {
+ c_______,
+ c_______,
+ c__1111_,
+ c_1____1,
+ c_1____1,
+ c_1__1_1,
+ c_1___1_,
+ c__111_1,
+ c_______
+ }, /* q */
+ {
+ c_______,
+ c_______,
+ c_11111_,
+ c_1____1,
+ c_1____1,
+ c_11111_,
+ c_1___1_,
+ c_1____1,
+ c_______
+ }, /* r */
+ {
+ c_______,
+ c_______,
+ c__1111_,
+ c_1_____,
+ c__1111_,
+ c______1,
+ c_1____1,
+ c__1111_,
+ c_______
+ }, /* s */
+ {
+ c_______,
+ c_______,
+ c__11111,
+ c____1__,
+ c____1__,
+ c____1__,
+ c____1__,
+ c____1__,
+ c_______
+ }, /* t */
+ {
+ c_______,
+ c_______,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c__1111_,
+ c_______
+ }, /* u */
+ {
+ c_______,
+ c_______,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c__1__1_,
+ c___11__,
+ c_______
+ }, /* v */
+ {
+ c_______,
+ c_______,
+ c_1____1,
+ c_1____1,
+ c_1____1,
+ c_1_11_1,
+ c_11__11,
+ c_1____1,
+ c_______
+ }, /* w */
+ {
+ c_______,
+ c_______,
+ c_1____1,
+ c__1__1_,
+ c___11__,
+ c___11__,
+ c__1__1_,
+ c_1____1,
+ c_______
+ }, /* x */
+ {
+ c_______,
+ c_______,
+ c__1___1,
+ c___1_1_,
+ c____1__,
+ c____1__,
+ c____1__,
+ c____1__,
+ c_______
+ }, /* y */
+ {
+ c_______,
+ c_______,
+ c_111111,
+ c_____1_,
+ c____1__,
+ c___1___,
+ c__1____,
+ c_111111,
+ c_______
+ }, /* z */
+ {
+ c_______,
+ c__111__,
+ c_1_____,
+ c_1_____,
+ c11_____,
+ c_1_____,
+ c_1_____,
+ c__111__,
+ c_______
+ }, /* { */
+ {
+ c_______,
+ c___1___,
+ c___1___,
+ c___1___,
+ c_______,
+ c___1___,
+ c___1___,
+ c___1___,
+ c_______
+ }, /* | */
+ {
+ c_______,
+ c__111__,
+ c_____1_,
+ c_____1_,
+ c_____11,
+ c_____1_,
+ c_____1_,
+ c__111__,
+ c_______
+ }, /* } */
+ {
+ c_______,
+ c_11____,
+ c1__1__1,
+ c____11_,
+ c_______,
+ c_______,
+ c_______,
+ c_______,
+ c_______
+ }, /* ~ */
+
+ {
+ c_______,
+ c_1__1__,
+ c1__1__1,
+ c__1__1_,
+ c_1__1__,
+ c1__1__1,
+ c__1__1_,
+ c_1__1__,
+ c1__1__1
+ } /* rub-out */
+};
+
--
1.7.7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment