diff options
Diffstat (limited to 'usr.sbin/pcvt/fed')
-rw-r--r-- | usr.sbin/pcvt/fed/Makefile | 29 | ||||
-rw-r--r-- | usr.sbin/pcvt/fed/edit.c | 340 | ||||
-rw-r--r-- | usr.sbin/pcvt/fed/fed.c | 168 | ||||
-rw-r--r-- | usr.sbin/pcvt/fed/fed.h | 127 | ||||
-rw-r--r-- | usr.sbin/pcvt/fed/misc.c | 353 | ||||
-rw-r--r-- | usr.sbin/pcvt/fed/select.c | 334 |
6 files changed, 0 insertions, 1351 deletions
diff --git a/usr.sbin/pcvt/fed/Makefile b/usr.sbin/pcvt/fed/Makefile deleted file mode 100644 index c96ad03..0000000 --- a/usr.sbin/pcvt/fed/Makefile +++ /dev/null @@ -1,29 +0,0 @@ - -.if !exists(${.CURDIR}/../Makefile.inc) -error: - @echo - @echo " You MUST link/copy" - @echo - @echo " ../Makefile.inc.NetBSD or ../Makefile.inc.FreeBSD" - @echo - @echo " to ../Makefile.inc before you can proceed !" - @echo -.else -#CFLAGS = -g -Wall -pipe -CFLAGS = -O -Wall -pipe -I/usr/local/include -OBJS = fed.o select.o edit.o misc.o -LIB = ncurses -DEST = /usr/local/bin - -fed: $(OBJS) - $(CC) -o fed $(OBJS) -l$(LIB) -L/usr/local/lib - -$(OBJS): fed.h - -clean: - rm -f *.o fed *core* trace* - -install: - ${INSTALL} -c -s -o bin -g bin fed $(DEST) - -.endif diff --git a/usr.sbin/pcvt/fed/edit.c b/usr.sbin/pcvt/fed/edit.c deleted file mode 100644 index 67d616b..0000000 --- a/usr.sbin/pcvt/fed/edit.c +++ /dev/null @@ -1,340 +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. - * - * edit.c, 3.00, last edit-date: [Sun Jan 2 20:08:27 1994] - */ - -/*--------------------------------------------------------------------------- - * - * edit.c font editor edit character - * ------------------------------------------ - * - * written by Hellmuth Michaelis, hm@hcshh.hcs.de - * - * -hm first public release - * -hm some debugging & cleanup - * - *---------------------------------------------------------------------------*/ - -#include "fed.h" - -#define UP 0 -#define DOWN 1 - -static int pen; - -/*---------------------------------------------------------------------------* - * fill edit mode command window - *---------------------------------------------------------------------------*/ -void edit_mode(void) -{ - mvwprintw(cmd_win,1,1,"(W)hite "); - mvwprintw(cmd_win,2,1,"(Black "); - mvwprintw(cmd_win,3,1,"(I)nvert "); - mvwprintw(cmd_win,4,1,"(R)ow BLACK "); - mvwprintw(cmd_win,5,1,"(r)ow WHITE "); - mvwprintw(cmd_win,6,1,"(C)ol BLACK "); - mvwprintw(cmd_win,7,1,"(c)ol WHITE "); - mvwprintw(cmd_win,8,1,"(Q)uit/Save "); - - mvwprintw(cmd_win,9 ,1,"e(X)it/undo "); - mvwprintw(cmd_win,10,1,"Pen (U)p "); - mvwprintw(cmd_win,11,1,"Pen (D)own "); - mvwprintw(cmd_win,12,1," "); - mvwprintw(cmd_win,13,1,"(^P)rev Line"); - mvwprintw(cmd_win,14,1,"(^N)ext Line"); - mvwprintw(cmd_win,15,1,"(^F)orwd Col"); - mvwprintw(cmd_win,16,1,"(^B)ack Col"); - wrefresh(cmd_win); -} - -/*---------------------------------------------------------------------------* - * edit mode command loop - *---------------------------------------------------------------------------*/ -int edit(void) -{ - int c, r; - char l; - unsigned int k_ch; - - c = r = 0; - - pen = UP; - - for(;;) - { - if(pen == DOWN) - dis_cmd(" Edit Mode, the Pen is DOWN"); - else - dis_cmd(" Edit Mode, the Pen is UP"); - - l = ((mvwinch(ch_win,(r+1),(c+1))) & A_CHARTEXT); - wattron(ch_win,A_REVERSE); - mvwprintw(ch_win,(r+1),(c+1),"%c",l); - wattroff(ch_win,A_REVERSE); - wmove(ch_win,(r+1),(c+1)); - wrefresh(ch_win); - - k_ch = wgetch(ch_win); - - switch(k_ch) - { - case K_LEFT: - case KEY_LEFT: - if(c > 0) - { - normal_ch(r,c); - c--; - } - break; - - case K_DOWN: - case KEY_DOWN: - if(r < (ch_height-1)) - { - normal_ch(r,c); - r++; - } - break; - - case K_UP: - case KEY_UP: - if(r > 0) - { - normal_ch(r,c); - r--; - } - break; - - case K_RIGHT: - case KEY_RIGHT: - if(c < (ch_width-1)) - { - normal_ch(r,c); - c++; - } - break; - - case KEY_HOME: - normal_ch(r,c); - c = r = 0; - break; - - case KEY_LL: - normal_ch(r,c); - c = ch_width-1; - r = ch_height-1; - break; - - case 0x0c: - wrefresh(curscr); - break; - - case '\n': - case '\r': - case ' ' : - chg_pt(r,c); - break; - - case 'q': - pen = UP; - normal_ch(r,c); - wrefresh(ch_win); - return(1); - break; - - case 'x': - pen = UP; - normal_ch(r,c); - wrefresh(ch_win); - return(0); - break; - - case 'w': - case 'W': - setchr(WHITE); - break; - - case 'b': - case 'B': - setchr(BLACK); - break; - - case 'i': - case 'I': - invert(); - break; - - case 'r': - setrow(WHITE); - break; - - case 'R': - setrow(BLACK); - break; - - case 'c': - setcol(WHITE); - break; - - case 'C': - setcol(BLACK); - break; - - case 'u': - case 'U': - pen = UP; - break; - - case 'd': - case 'D': - pen = DOWN; - break; - - default: - beep(); - break; - - } - } -} - -/*---------------------------------------------------------------------------* - * - *---------------------------------------------------------------------------*/ -void normal_ch(int r, int c) -{ - char l = ((mvwinch(ch_win,(r+1),(c+1))) & A_CHARTEXT); - wattroff(ch_win,A_REVERSE); - if(pen == DOWN) - mvwprintw(ch_win,(r+1),(c+1),"*"); - else - mvwprintw(ch_win,(r+1),(c+1),"%c",l); - wmove(ch_win,(r+1),(c+1)); -} - -/*---------------------------------------------------------------------------* - * - *---------------------------------------------------------------------------*/ -void chg_pt(int r, int c) -{ - char l; - l = ((mvwinch(ch_win,(r+1),(c+1))) & A_CHARTEXT); - if(l == WHITE) - l = BLACK; - else - l = WHITE; - mvwprintw(ch_win,(r+1),(c+1),"%c",l); - wmove(ch_win,(r+1),(c+1)); -} - -/*---------------------------------------------------------------------------* - * invert current character - *---------------------------------------------------------------------------*/ -void invert(void) -{ - int r,c; - - r = 1; - - while(r <= ch_height) - { - c = 1; - while(c <= ch_width) - { - if(WHITE == mvwinch(ch_win, r, c)) - mvwaddch(ch_win, r, c, BLACK); - else - mvwaddch(ch_win, r, c, WHITE); - c++; - } - r++; - } -} - -/*---------------------------------------------------------------------------* - * fill current character black/white - *---------------------------------------------------------------------------*/ -void setchr(char type) -{ - int r,c; - - r = 1; - - while(r <= ch_height) - { - c = 1; - while(c <= ch_width) - { - mvwaddch(ch_win, r, c, type); - c++; - } - r++; - } -} - -/*---------------------------------------------------------------------------* - * set current row to black/white - *---------------------------------------------------------------------------*/ -void setrow(char type) -{ - int r,c; - - getyx(ch_win,r,c); - - c = 1; - - while(c <= ch_width) - { - mvwaddch(ch_win, r, c, type); - c++; - } -} - -/*---------------------------------------------------------------------------* - * set current column to black/white - *---------------------------------------------------------------------------*/ -void setcol(char type) -{ - int r,c; - - getyx(ch_win,r,c); - - r = 1; - - while(r <= ch_height) - { - mvwaddch(ch_win, r, c, type); - r++; - } -} - -/*---------------------------------- E O F ----------------------------------*/ diff --git a/usr.sbin/pcvt/fed/fed.c b/usr.sbin/pcvt/fed/fed.c deleted file mode 100644 index d2fa4f3..0000000 --- a/usr.sbin/pcvt/fed/fed.c +++ /dev/null @@ -1,168 +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. - * - * fed.c, 3.00, last edit-date: [Sun Jan 2 20:08:45 1994] - */ - -/*--------------------------------------------------------------------------- - * - * fed.c font editor main file - * ------------------------------------- - * - * written by Hellmuth Michaelis, hm@hcshh.hcs.de - * - * -hm first public release - * -hm activating font save - * - *---------------------------------------------------------------------------*/ - -#define FED - -#include "fed.h" - -void main(int argc, char *argv[]) -{ - int i; - int row, col; - int ret; - - if(argc != 2) - { - fprintf(stderr,"EGA/VGA Fonteditor, Rel 1.00\n"); - fprintf(stderr,"usage: %s <fontfilename>\n",argv[0]); - exit(1); - } - - readfont(argv[1]); /* read fontfile into memory */ - - initscr(); - cbreak(); - noecho(); - nonl(); - keypad(stdscr,TRUE); - idlok(stdscr, TRUE); - - move(0,0); - standout(); - addstr(" Interactive EGA/VGA Fonteditor - (c) 1993, 1994 Hellmuth Michaelis "); - standend(); - -/* character horizontal ruler */ - - move(WINROW-1, CHCOL + ((WIDTH16 - ch_width)/2) + 1); - if(ch_width == WIDTH16) - addstr("1234567890123456"); - else - addstr("12345678"); - -/* charcater vertical ruler */ - - for(i=1; i < ch_height+1; i++) - mvprintw((WINROW+i), (CHCOL + ((WIDTH16 - ch_width)/2) - 2), "%2d", i); - - -/* select horizontal ruler */ - - move(WINROW-1,SETCOL+2); - addstr("0 1 2 3 4 5 6 7 8 9 A B C D E F "); - -/* select vertical ruler */ - - for(i=0; i<10; i++) - mvaddch((WINROW+i+1),(SETCOL-1),(i+'0')); - for(i=0; i<6; i++) - mvaddch((WINROW+10+i+1),(SETCOL-1),(i+'A')); - -/* label available commands window */ - - move(WINROW-1,CMDCOL+1); - addstr("Commands"); - - refresh(); - -/* command window */ - - cmd_win = newwin(((WSIZE)+(2*WBORDER)),(CMDSIZE+(2*WBORDER)), - WINROW,CMDCOL); - keypad(cmd_win,TRUE); - idlok(cmd_win, TRUE); - box(cmd_win,'|','-'); - - sel_mode(); - -/* character font window */ - - ch_win = newwin((ch_height+(2*WBORDER)),(ch_width+(2*WBORDER)), - WINROW, CHCOL+((WIDTH16 - ch_width)/2)); - keypad(ch_win,TRUE); - idlok(ch_win, TRUE); - - box(ch_win,'|','-'); - wrefresh(ch_win); - -/* character select window */ - - set_win = newwin((WSIZE+(2*WBORDER)),((WSIZE*2)+(2*WBORDER)), - WINROW,SETCOL); /* whole character set */ - keypad(set_win,TRUE); - idlok(set_win, TRUE); - - box(set_win,'|','-'); - - row = 0; - col = 0; - - for(i=0; i<256; i++) - { - mvwprintw(set_win,row+1,col+1,"%02.2X",i); - if(++row > 15) - { - row = 0; - col += 2; - } - } - wmove(set_win,1,1); - wrefresh(set_win); - -/* start */ - - clr_cmd(); - - curchar = 0; - - if((ret = selectc()) == 1) - { - writefont(); - } - endwin(); -} - -/*---------------------------------- E O F ----------------------------------*/ diff --git a/usr.sbin/pcvt/fed/fed.h b/usr.sbin/pcvt/fed/fed.h deleted file mode 100644 index 0911d37..0000000 --- a/usr.sbin/pcvt/fed/fed.h +++ /dev/null @@ -1,127 +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. - * - * fed.h, 3.00, last edit-date: [Sun Jan 2 20:10:31 1994] - */ - -#include <ncurses.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -#ifdef FED - -int ch_height; -int ch_width; - -int curchar; - -WINDOW *ch_win; -WINDOW *set_win; -WINDOW *cmd_win; - -#else - -extern int ch_height; /* current fontfile character dimensions */ -extern int ch_width; - -extern int curchar; /* character being edited */ - -extern WINDOW *ch_win; /* windows */ -extern WINDOW *set_win; -extern WINDOW *cmd_win; - -#endif - -#define FONTCHARS 256 /* no of chars in a fontfile */ - -#define WHITE ('.') -#define BLACK ('*') - -#define K_UP 0x10 /* ^P */ -#define K_DOWN 0x0e /* ^N */ -#define K_RIGHT 0x06 /* ^F */ -#define K_LEFT 0x02 /* ^B */ - -#define WINROW 3 -#define CMDCOL 3 -#define CHCOL 20 -#define SETCOL 41 -#define WSIZE 16 -#define CMDSIZE 12 -#define WBORDER 1 - -/* fonts */ - -#define WIDTH8 8 /* 8 bits wide font */ -#define WIDTH16 16 /* 16 bits wide font */ - -#define FONT8X8 2048 /* filesize for 8x8 font */ -#define HEIGHT8X8 8 /* 8 scan lines char cell height */ - -#define FONT8X10 2560 /* filesize for 8x10 font */ -#define HEIGHT8X10 10 /* 10 scan lines char cell height */ - -#define FONT8X14 3584 /* filesize for 8x14 font */ -#define HEIGHT8X14 14 /* 14 scan lines char cell height */ -#define WIDTH8X14 8 /* 8 bits wide font */ - -#define FONT8X16 4096 /* filesize for 8x16 font */ -#define HEIGHT8X16 16 /* 16 scan lines char cell height */ - -#define FONT16X16 8192 /* filesize for 16x16 font */ -#define HEIGHT16X16 16 /* 16 scan lines char cell height */ - - -void edit_mode ( void ); -int edit ( void ); -void normal_ch ( int r, int c ); -void chg_pt ( int r, int c ); -void invert ( void ); -void setchr ( char type ); -void setrow ( char type ); -void setcol ( char type ); -void main ( int argc, char *argv[] ); -void readfont ( char *filename ); -void dis_cmd ( char *strg ); -void clr_cmd ( void ); -void save_ch ( void ); -void move_ch ( int src, int dest ); -void xchg_ch ( int src, int dest ); -void display ( int no ); -void sel_mode ( void ); -int selectc ( void ); -void normal_set ( int r, int c ); -int sel_dest ( void ); -void normal_uset ( int r, int c ); -void writefont( void ); - -/* ------------------------------ EOF ----------------------------------- */ 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 ----------------------------------*/ - - diff --git a/usr.sbin/pcvt/fed/select.c b/usr.sbin/pcvt/fed/select.c deleted file mode 100644 index b6993bb..0000000 --- a/usr.sbin/pcvt/fed/select.c +++ /dev/null @@ -1,334 +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. - * - * select.c, 3.00, last edit-date: [Sun Jan 2 20:09:36 1994] - */ - -/*--------------------------------------------------------------------------- - * - * select.c font editor select character - * ---------------------------------------------------- - * - * written by Hellmuth Michaelis, hm@hcshh.hcs.de - * - * -hm first public release - * -hm debugging - * - *---------------------------------------------------------------------------*/ - -#include "fed.h" - -int sc, sr, scurchar; - -int edit(); - -void sel_mode(void) -{ - mvwprintw(cmd_win,1,1,"(E)dit "); - mvwprintw(cmd_win,2,1,"(M)ove "); - mvwprintw(cmd_win,3,1,"exchan(G)e "); - mvwprintw(cmd_win,4,1,"(Q)uit/Save "); - mvwprintw(cmd_win,5,1,"e(X)it/Undo "); - mvwprintw(cmd_win,6,1," "); - mvwprintw(cmd_win,7,1," "); - mvwprintw(cmd_win,8,1," "); - - mvwprintw(cmd_win,9 ,1," "); - mvwprintw(cmd_win,10,1," "); - mvwprintw(cmd_win,11,1," "); - mvwprintw(cmd_win,12,1," "); - mvwprintw(cmd_win,13,1,"(^P)rev Line"); - mvwprintw(cmd_win,14,1,"(^N)ext Line"); - mvwprintw(cmd_win,15,1,"(^F)orwd Col"); - mvwprintw(cmd_win,16,1,"(^B)ack Col"); - wrefresh(cmd_win); -} - -int selectc() -{ - int c, r; - int ret; - char h, l; - unsigned int k_ch; - - c = (curchar / 16); - r = (curchar % 16); - - for(;;) - { - dis_cmd(" Select Character"); - - sel_mode(); - - curchar = r + (c*16); - - display(curchar); - - h = ((mvwinch(set_win,(r+1),((c*2)+1))) & A_CHARTEXT); - l = ((mvwinch(set_win,(r+1),((c*2)+2))) & A_CHARTEXT); - wattron(set_win,A_REVERSE); - mvwprintw(set_win,(r+1),((c*2)+1),"%c%c",h,l); - wattroff(set_win,A_REVERSE); - wmove(set_win,(r+1),((c*2)+1)); - wrefresh(set_win); - - k_ch = wgetch(set_win); - - switch(k_ch) - { - case K_LEFT: - case KEY_LEFT: - if(c > 0) - { - normal_set(r,c); - c--; - } - break; - - case K_DOWN: - case KEY_DOWN: - if(r < 15) - { - normal_set(r,c); - r++; - } - break; - - case K_UP: - case KEY_UP: - if(r > 0) - { - normal_set(r,c); - r--; - } - break; - - case K_RIGHT: - case KEY_RIGHT: - if(c < 15) - { - normal_set(r,c); - c++; - } - break; - - case 'e': - case 'E': - edit_mode(); - dis_cmd(" Edit Character"); - display(curchar); - ret = edit(); - if(ret == 1) - save_ch(); - break; - - case 'g': - case 'G': - dis_cmd(" Exchange: select Destination, then press RETURN or any other Key to ABORT"); - sr = r; - sc = c; - scurchar = curchar; - if((curchar = sel_dest()) == -1) - { /* failsafe */ - r = sr; - c = sc; - curchar = scurchar; - } - else - { /* valid return */ - normal_set(r,c); - c = (curchar / 16); - r = (curchar % 16); - xchg_ch(scurchar,curchar); - } - break; - - case 'm': - case 'M': - dis_cmd(" Move: select Destination, then press RETURN or any other Key to ABORT"); - sr = r; - sc = c; - scurchar = curchar; - if((curchar = sel_dest()) == -1) - { /* failsafe */ - r = sr; - c = sc; - curchar = scurchar; - } - else - { /* valid return */ - normal_set(r,c); - c = (curchar / 16); - r = (curchar % 16); - move_ch(scurchar,curchar); - } - break; - - case 'q': - case 'Q': - normal_set(r,c); - wrefresh(set_win); - return(1); - break; - - case 'x': - case 'X': - normal_set(r,c); - wrefresh(set_win); - return(0); - break; - - case 0x0c: - wrefresh(curscr); - break; - - default: - beep(); - break; - - } - } -} - -void normal_set(int r, int c) -{ - char h, l; - - h = ((mvwinch(set_win,(r+1),((c*2)+1))) & A_CHARTEXT); - l = ((mvwinch(set_win,(r+1),((c*2)+2))) & A_CHARTEXT); - wattroff(set_win,A_REVERSE); - mvwprintw(set_win,(r+1),((c*2)+1),"%c%c",h,l); - wmove(set_win,(r+1),((c*2)+1)); -} - -int sel_dest(void) -{ - int c, r; - char h, l; - unsigned int k_ch; - - c = (curchar / 16); - r = (curchar % 16); - - for(;;) - { - - curchar = r + (c*16); - - display(curchar); - - h = ((mvwinch(set_win,(r+1),((c*2)+1))) & A_CHARTEXT); - l = ((mvwinch(set_win,(r+1),((c*2)+2))) & A_CHARTEXT); - wattron(set_win,A_UNDERLINE); - mvwprintw(set_win,(r+1),((c*2)+1),"%c%c",h,l); - wattroff(set_win,A_UNDERLINE); - wmove(set_win,(r+1),((c*2)+1)); - wrefresh(set_win); - - k_ch = wgetch(set_win); - - switch(k_ch) - { - case K_LEFT: - case KEY_LEFT: - if(c > 0) - { - normal_uset(r,c); - c--; - } - break; - - case K_DOWN: - case KEY_DOWN: - if(r < 15) - { - normal_uset(r,c); - r++; - } - break; - - case K_UP: - case KEY_UP: - if(r > 0) - { - normal_uset(r,c); - r--; - } - break; - - case K_RIGHT: - case KEY_RIGHT: - if(c < 15) - { - normal_uset(r,c); - c++; - } - break; - - case '\r': - case '\n': - normal_uset(r,c); - return(r + (c*16)); - - case 0x0c: - wrefresh(curscr); - break; - - default: - normal_uset(r,c); - return(-1); - } - } -} - -void normal_uset(int r, int c) -{ - char h, l; - - h = ((mvwinch(set_win,(r+1),((c*2)+1))) & A_CHARTEXT); - l = ((mvwinch(set_win,(r+1),((c*2)+2))) & A_CHARTEXT); - - wattroff(set_win,A_UNDERLINE); - mvwprintw(set_win,(r+1),((c*2)+1),"%c%c",h,l); - wmove(set_win,(r+1),((c*2)+1)); - - if((r==sr) && (c==sc)) - { - wattron(set_win,A_REVERSE); - mvwprintw(set_win,(r+1),((c*2)+1),"%c%c",h,l); - wattroff(set_win,A_REVERSE); - wmove(set_win,(r+1),((c*2)+1)); - } -} - - - -/*---------------------------------- E O F ----------------------------------*/ |