summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pcvt/fed/misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/pcvt/fed/misc.c')
-rw-r--r--usr.sbin/pcvt/fed/misc.c353
1 files changed, 0 insertions, 353 deletions
diff --git a/usr.sbin/pcvt/fed/misc.c b/usr.sbin/pcvt/fed/misc.c
deleted file mode 100644
index c6707ba..0000000
--- a/usr.sbin/pcvt/fed/misc.c
+++ /dev/null
@@ -1,353 +0,0 @@
-/*
- * Copyright (c) 1992, 1993, 1994 by Hellmuth Michaelis
- *
- * 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Hellmuth Michaelis.
- * 4. The name of the developer may not be used to endorse or promote
- * products derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPER ``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 DEVELOPERS 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.
- *
- * misc.c, 3.00, last edit-date: [Sun Jan 2 20:09:21 1994]
- */
-
-/*---------------------------------------------------------------------------
- *
- * misc.c font editor misc routines
- * -----------------------------------------
- *
- * written by Hellmuth Michaelis, hm@hcshh.hcs.de
- *
- * -hm first public release
- * -hm writefont routine
- *
- *---------------------------------------------------------------------------*/
-
-#include "fed.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-static unsigned char *fonttab; /* ptr to font in core memory */
-
-static char *bitmask[] = {
- "....", /* 0 */
- "...*", /* 1 */
- "..*.", /* 2 */
- "..**", /* 3 */
- ".*..", /* 4 */
- ".*.*", /* 5 */
- ".**.", /* 6 */
- ".***", /* 7 */
- "*...", /* 8 */
- "*..*", /* 9 */
- "*.*.", /* A */
- "*.**", /* B */
- "**..", /* C */
- "**.*", /* D */
- "***.", /* E */
- "****", /* F */
- NULL };
-
-static char lfilename[1024]; /* current filename */
-static unsigned int lfilesize; /* current filename's size */
-
-/*---------------------------------------------------------------------------*
- * read fontfile into memory
- *---------------------------------------------------------------------------*/
-void readfont(char *filename)
-{
- FILE *in;
- struct stat sbuf, *sbp;
- int ret;
- char buffer[1024];
-
- sbp = &sbuf;
-
- if((in = fopen(filename, "r")) == NULL)
- {
- sprintf(buffer, "cannot open file %s for reading", filename);
- perror(buffer);
- exit(1);
- }
-
- if((fstat(fileno(in), sbp)) != 0)
- {
- sprintf(buffer, "cannot fstat file %s", filename);
- perror(buffer);
- exit(1);
- }
-
- switch(sbp->st_size)
- {
- case FONT8X8:
- ch_height = HEIGHT8X8;
- ch_width = WIDTH8;
- break;
-
- case FONT8X10:
- ch_height = HEIGHT8X10;
- ch_width = WIDTH8;
- break;
-
- case FONT8X14:
- ch_height = HEIGHT8X14;
- ch_width = WIDTH8;
- break;
-
- case FONT8X16:
- ch_height = HEIGHT8X16;
- ch_width = WIDTH8;
- break;
-
- case FONT16X16:
- ch_height = HEIGHT16X16;
- ch_width = WIDTH16;
- break;
-
- default:
- fprintf(stderr,"error, file %s is no valid font file, size=%d\n",filename,sbp->st_size);
- exit(1);
- }
-
- if((fonttab = (unsigned char *)malloc((size_t)sbp->st_size)) == NULL)
- {
- fprintf(stderr,"error, malloc failed\n");
- exit(1);
- }
-
- strcpy(lfilename, filename); /* save for write */
- lfilesize = sbp->st_size; /* save for write */
-
- if((ret = fread(fonttab, sizeof(*fonttab), sbp->st_size, in)) != sbp->st_size)
- {
- sprintf(buffer,"error reading file %s, size = %d, ret = %d\n",filename,sbp->st_size, ret);
- perror(buffer);
- exit(1);
- }
-}
-
-/*---------------------------------------------------------------------------*
- * write fontfile to disk
- *---------------------------------------------------------------------------*/
-void writefont()
-{
- FILE *in, *out;
- int ret;
- char buffer[1024];
-
- if((in = fopen(lfilename, "r")) != NULL)
- {
- int c;
- char wfn[1024];
-
- strcpy(wfn, lfilename);
- strcat(wfn, ".BAK");
- if((out = fopen(wfn, "w")) == NULL)
- {
- sprintf(buffer, "cannot open file %s for writing", wfn);
- perror(buffer);
- exit(1);
- }
-
- while(( c = fgetc(in) ) != EOF )
- fputc(c, out);
-
- fclose(out);
- fclose(in);
- }
-
- if((out = fopen(lfilename, "w")) == NULL)
- {
- sprintf(buffer, "cannot open file %s for writing", lfilename);
- perror(buffer);
- exit(1);
- }
-
- if((ret = fwrite(fonttab, sizeof(*fonttab), lfilesize, out)) != lfilesize)
- {
- sprintf(buffer,"error writing file %s, size=%d, ret=%d\n",lfilename,lfilesize, ret);
- perror(buffer);
- exit(1);
- }
-}
-
-/*---------------------------------------------------------------------------*
- * display a string
- *---------------------------------------------------------------------------*/
-void dis_cmd(char *strg)
-{
- move(22,0);
- clrtoeol();
- mvaddstr(22,0,strg);
- refresh();
-}
-
-/*---------------------------------------------------------------------------*
- * clear a command string
- *---------------------------------------------------------------------------*/
-void clr_cmd(void)
-{
- move(22,0);
- clrtoeol();
- refresh();
-}
-
-/*---------------------------------------------------------------------------*
- * move char from src to dest
- *---------------------------------------------------------------------------*/
-void move_ch(int src, int dst)
-{
- unsigned char *s, *d;
- int offset = 0;
-
- if(ch_width == WIDTH16)
- offset = 2;
- else
- offset = 1;
-
- s = &(fonttab[ch_height * offset * src]);
- d = &(fonttab[ch_height * offset * dst]);
-
- bcopy(s, d, (ch_height*offset)); /* src -> dst */
-}
-
-/*---------------------------------------------------------------------------*
- * exchange char's src and dest
- *---------------------------------------------------------------------------*/
-void xchg_ch(int src, int dst)
-{
- unsigned char *s, *d;
- unsigned char buf[32];
- int offset = 0;
-
- if(ch_width == WIDTH16)
- offset = 2;
- else
- offset = 1;
-
- s = &(fonttab[ch_height * offset * src]);
- d = &(fonttab[ch_height * offset * dst]);
-
- bcopy(s, buf, (ch_height*offset)); /* src -> tmp */
- bcopy(d, s, (ch_height*offset)); /* dst -> src */
- bcopy(buf, d, (ch_height*offset)); /* tmp -> dst */
-}
-
-/*---------------------------------------------------------------------------*
- * display the current selected character
- *---------------------------------------------------------------------------*/
-void display(int no)
-{
- unsigned char *fontchar;
- char line[32];
- int ln_no;
- unsigned char hibyte;
- unsigned char lobyte;
- int offset;
- int r;
-
- offset = 0;
- r = 1;
- lobyte = 0;
-
- if(ch_width == WIDTH16)
- fontchar = &(fonttab[ch_height * 2 * no]);
- else
- fontchar = &(fonttab[ch_height * no]);
-
- for (ln_no = 0; ln_no < ch_height; ln_no++)
- {
- hibyte = *(fontchar + (offset++));
-
- if(ch_width == WIDTH16)
- {
- lobyte = *(fontchar + offset++);
- }
-
- strcpy(line,bitmask[(int)((hibyte >> 4) & 0x0f)]);
- strcat(line,bitmask[(int)(hibyte & 0x0f)]);
-
- if(ch_width == WIDTH16)
- {
- strcat(line,bitmask[(int)((lobyte >> 4) & 0x0f)]);
- strcat(line,bitmask[(int)(lobyte & 0x0f)]);
- mvwprintw(ch_win, r, 1, "%16.16s", line);
- }
- else
- {
- mvwprintw(ch_win, r, 1, "%8.8s", line);
- }
- r++;
- }
- wmove(ch_win, 1, 1);
- wrefresh(ch_win);
-}
-
-/*---------------------------------------------------------------------------*
- * save character
- *---------------------------------------------------------------------------*/
-void save_ch(void)
-{
- unsigned char *s;
- int offset = 0;
- int r, c;
- unsigned short byte;
- unsigned short shift;
-
- if(ch_width == WIDTH16)
- offset = 2;
- else
- offset = 1;
-
- s = &(fonttab[ch_height * offset * curchar]);
-
- r = 1;
-
- while(r <= ch_height)
- {
- c = 1;
- byte = 0;
- if(offset == 2)
- shift = 0x8000;
- else
- shift = 0x80;
-
- while(c <= ch_width)
- {
- if(mvwinch(ch_win, r, c) == BLACK)
- byte |= shift;
- shift = (shift >> 1);
- c++;
- }
- *s++ = byte;
- r++;
- }
-}
-
-/*---------------------------------- E O F ----------------------------------*/
-
-
OpenPOWER on IntegriCloud