summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pcvt/fontedit/fontedit.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/pcvt/fontedit/fontedit.c')
-rw-r--r--usr.sbin/pcvt/fontedit/fontedit.c925
1 files changed, 0 insertions, 925 deletions
diff --git a/usr.sbin/pcvt/fontedit/fontedit.c b/usr.sbin/pcvt/fontedit/fontedit.c
deleted file mode 100644
index d9ed357c..0000000
--- a/usr.sbin/pcvt/fontedit/fontedit.c
+++ /dev/null
@@ -1,925 +0,0 @@
-/*
- * fontedit
- * Fonteditor for VT220
- *
- * BUGS:
- * o Cursor motion is less than optimal (but who cares at 9600),
- *
- * COMPILE:
- * cc -O fontedit.c -o fontedit
- * (use Makefile)
- *
- * Copyright (c) 1987 by Greg Franks.
- *
- * Permission is granted to do anything you want with this program
- * except claim that you wrote it.
- *
- *
- * REVISION HISTORY:
- *
- * Nov 21, 1987 - Fixed man page to say "Fontedit" instead of "Top"
- * Nov 22, 1987 - Added BSD Compatible ioctl, turned cursor on/off
- * - eap@bucsf.bu.edu
- */
-
-void clear_screen();
-#include <stdio.h>
-#ifdef SYSV
-#include <sys/termio.h>
-#endif SYSV
-#ifdef BSD
-#include <sys/ioctl.h>
-#endif BSD
-#if defined (__NetBSD__) || defined (__FreeBSD__)
-#include <sys/termios.h>
-#include <sys/ioctl.h>
-#endif /* __NetBSD__ || __FreeBSD__ */
-#include <signal.h>
-
-#ifdef CURFIX
-#define CURSORON "\033[?25h"
-#define CURSOROFF "\033[?25l"
-#endif CURFIX
-
-#define MAX_ROWS 10
-#define MAX_COLS 8
-
-typedef enum { false, true } bool;
-
-#define KEY_FIND 0x0100
-#define KEY_INSERT 0x0101
-#define KEY_REMOVE 0x0102
-#define KEY_SELECT 0x0103
-#define KEY_PREV 0x0104
-#define KEY_NEXT 0x0105
-#define KEY_F6 0X0106
-#define KEY_F7 0x0107
-#define KEY_F8 0x0108
-#define KEY_F9 0x0109
-#define KEY_F10 0x010a
-#define KEY_F11 0x010b
-#define KEY_F12 0x010c
-#define KEY_F13 0x010d
-#define KEY_F14 0x010e
-#define KEY_HELP 0x010f
-#define KEY_DO 0x0110
-#define KEY_F17 0x0111
-#define KEY_F18 0x0112
-#define KEY_F19 0x0113
-#define KEY_F20 0x0114
-#define KEY_UP 0x0115
-#define KEY_DOWN 0x0116
-#define KEY_RIGHT 0x0117
-#define KEY_LEFT 0x0118
-
-/*
- * Position of main drawing screen.
- */
-
-#define ROW_OFFSET 3
-#define COL_OFFSET 10
-
-/*
- * Position of the DRCS table.
- */
-
-#define TABLE_ROW 4
-#define TABLE_COL 50
-
-/*
- *
- */
-
-#define ERROR_ROW 20
-#define ERROR_COL 40
-
-bool display_table[MAX_ROWS][MAX_COLS];
-
-#define TOTAL_ENTRIES (128 - 32)
-#define SIXELS_PER_CHAR 16
-
-char font_table[TOTAL_ENTRIES][SIXELS_PER_CHAR];
-unsigned int current_entry;
-
-#ifdef SYSV
-struct termio old_stty, new_stty;
-#endif SYSV
-#ifdef BSD
-struct sgttyb old_stty, new_stty;
-#endif BSD
-#if defined (__NetBSD__) || defined (__FreeBSD__)
-struct termios old_stty, new_stty;
-#endif /* __NetBSD__ || __FreeBSD__ */
-FILE * font_file = (FILE *)0;
-
-
-/*
- * Interrupt
- * Exit gracefully.
- */
-
-interrupt()
-{
- void clear_screen();
-#ifdef CURFIX
- printf("%s\n",CURSORON);
-#endif CURFIX
-#ifdef SYSV
- ioctl( 0, TCSETA, &old_stty );
-#endif SYSV
-#ifdef BSD
- ioctl( 0, TIOCSETP, &old_stty );
-#endif BSD
-#if defined (__NetBSD__) || defined (__FreeBSD__)
- ioctl( 0, TIOCSETA, &old_stty );
-#endif /* __NetBSD__ || __FreeBSD__ */
- clear_screen();
- exit( 0 );
-}
-
-
-/*
- * Main
- * Grab input/output file and call main command processor.
- */
-
-main( argc, argv )
-int argc;
-char *argv[];
-{
- void command(), init_restore(), clear_screen();
- void save_table(), get_table(), extract_entry();
-
- if ( argc != 2 ) {
- fprintf( stderr, "usage: fontedit filename\n" );
- exit( 1 );
- }
-
- printf( "Press HELP for help\n" );
- printf( "\033P1;1;2{ @\033\\" ); /* Clear font buffer */
- fflush( stdout );
- sleep( 1 ); /* Let terminal catch up */
- /* otherwise we get frogs */
-
- if ( ( font_file = fopen( argv[1], "r" ) ) == (FILE *)0 ) {
- if ( ( font_file = fopen( argv[1], "w" ) ) == (FILE *)0 ) {
- fprintf( stderr, "Cannot create file %s \n", argv[1] );
- exit( 1 );
- }
- }
- fclose( font_file );
-
- if ( ( font_file = fopen( argv[1], "r" ) ) != (FILE *)0 ) {
- get_table( font_file );
- fclose( font_file );
- }
-
- if ( ( font_file = fopen( argv[1], "r+" ) ) == (FILE *)0 ) {
- fprintf( stderr, "Cannot open %s for writing\n", argv[1] );
- exit( 1 );
- }
-#ifdef CURFIX
- printf("%s\n",CURSOROFF);
-#endif CURFIX
-#ifdef SYSV
- ioctl( 0, TCGETA, &old_stty );
-#endif SYSV
-#ifdef BSD
- ioctl( 0, TIOCGETP, &old_stty );
-#endif BSD
-#if defined (__NetBSD__) || defined (__FreeBSD__)
- ioctl( 0, TIOCGETA, &old_stty );
-#endif /* __NetBSD__ || __FreeBSD__ */
- signal( SIGINT, (void *) interrupt );
- new_stty = old_stty;
-#ifdef SYSV
- new_stty.c_lflag &= ~ICANON;
- new_stty.c_cc[VMIN] = 1;
- ioctl( 0, TCSETA, &new_stty );
-#endif SYSV
-#if defined (__NetBSD__) || defined (__FreeBSD__)
- new_stty.c_lflag &= ~ICANON;
- new_stty.c_lflag &= ~ECHO;
- new_stty.c_cc[VMIN] = 1;
- ioctl( 0, TIOCSETA, &new_stty );
-#endif /* __NetBSD__ || __FreeBSD__ */
-#ifdef BSD
- new_stty.sg_flags |= CBREAK;
- new_stty.sg_flags &= ~ECHO;
- ioctl( 0, TIOCSETP, &new_stty );
-#endif BSD
- current_entry = 1;
- extract_entry( current_entry );
- init_restore();
- command();
-#ifdef SYSV
- ioctl( 0, TCSETA, &old_stty );
-#endif SYSV
-#ifdef BSD
- ioctl( 0, TIOCSETP, &old_stty );
-#endif BSD
-#if defined (__NetBSD__) || defined (__FreeBSD__)
- ioctl( 0, TIOCSETA, &old_stty );
-#endif /* __NetBSD__ || __FreeBSD__ */
- clear_screen();
-
- /* Overwrite the old file. */
-
- fseek( font_file, 0L, 0 );
- save_table( font_file );
- fclose( font_file );
-#ifdef CURFIX
- printf("%s\n",CURSORON);
-#endif CURFIX
-}
-
-
-
-/*
- * Command
- * Process a function key.
- *
- * The user cannot fill in slots 0 or 95 (space and del respecitively).
- */
-
-void
-command()
-{
- register int c;
- register int row, col;
- register int i, j;
- bool change, error, override;
-
- void build_entry(), extract_entry(), send_entry(), print_entry();
- void highlight(), draw_current(), init_restore(), help();
- void warning();
-
- change = false;
- error = false;
- override = false;
- row = 0; col = 0;
- highlight( row, col, true );
-
- for ( ;; ) {
- c = get_key();
- highlight( row, col, false ); /* turn cursor off */
-
- if ( error ) {
- move ( ERROR_ROW, ERROR_COL );
- printf( "\033[K" ); /* Clear error message */
- move ( ERROR_ROW+1, ERROR_COL );
- printf( "\033[K" ); /* Clear error message */
- error = false;
- } else {
- override = false;
- }
-
- switch ( c ) {
-
- case KEY_FIND: /* update DRCS */
- if ( !change && !override ) {
- warning( "No changes to save" );
- override = true;
- error = true;
- } else {
- build_entry( current_entry );
- send_entry( current_entry );
- print_entry( current_entry, true );
- change = false;
- }
- break;
-
- case KEY_F6: /* Turn on pixel */
- change = true;
- display_table[row][col] = true;
- highlight( row, col, false );
- col = ( col + 1 ) % MAX_COLS;
- if ( col == 0 )
- row = ( row + 1 ) % MAX_ROWS;
- break;
-
- case KEY_F7: /* Turn off pixel */
- change = true;
- display_table[row][col] = false;
- highlight( row, col, false );
- col = ( col + 1 ) % MAX_COLS;
- if ( col == 0 )
- row = ( row + 1 ) % MAX_ROWS;
- break;
-
- case KEY_INSERT: /* Insert a blank row */
- change = true;
- for ( j = 0; j < MAX_COLS; ++j ) {
- for ( i = MAX_ROWS - 1; i > row; --i ) {
- display_table[i][j] = display_table[i-1][j];
- }
- display_table[row][j] = false;
- }
- draw_current();
- break;
-
- case KEY_REMOVE: /* Remove a row */
- change = true;
- for ( j = 0; j < MAX_COLS; ++j ) {
- for ( i = row; i < MAX_ROWS - 1; ++i ) {
- display_table[i][j] = display_table[i+1][j];
- }
- display_table[MAX_ROWS-1][j] = false;
- }
- draw_current();
- break;
-
- case KEY_F13: /* Clear buffer */
- if ( change && !override ) {
- warning( "Changes not saved" );
- error = true;
- override = true;
- } else {
- for ( j = 0; j < MAX_COLS; ++j ) {
- for ( i = 0; i < MAX_ROWS; ++i ) {
- display_table[i][j] = false;
- }
- }
- draw_current();
- }
- break;
-
- case KEY_SELECT: /* Select font from DRCS */
- if ( change && !override ) {
- warning( "Changes not saved" );
- error = true;
- override = true;
- } else {
- extract_entry( current_entry );
- draw_current();
- }
- break;
-
- case KEY_PREV: /* Move to prev entry in DRCS */
- if ( change && !override ) {
- warning( "Changes not saved" );
- override = true;
- error = true;
- } else {
- print_entry( current_entry, false );
- current_entry = current_entry - 1;
- if ( current_entry == 0 )
- current_entry = TOTAL_ENTRIES - 2;
- print_entry( current_entry, true );
- }
- break;
-
- case KEY_NEXT: /* Move to next entry in DRCS */
- if ( change && !override ) {
- warning( "Changes not saved" );
- override = true;
- error = true;
- } else {
- print_entry( current_entry, false );
- current_entry = current_entry + 1;
- if ( current_entry == TOTAL_ENTRIES - 1 )
- current_entry = 1;
- print_entry( current_entry, true );
- }
- break;
-
- case KEY_UP: /* UP one row. */
- if ( row == 0 )
- row = MAX_ROWS;
- row = row - 1;
- break;
-
- case KEY_DOWN: /* Guess. */
- row = ( row + 1 ) % MAX_ROWS;
- break;
-
- case KEY_RIGHT:
- col = ( col + 1 ) % MAX_COLS;
- break;
-
- case KEY_LEFT:
- if ( col == 0 )
- col = MAX_COLS;
- col = col - 1;
- break;
-
- case KEY_HELP: /* Display helpful info */
- clear_screen();
- help();
- c = getchar();
- init_restore();
- break;
-
- case '\004': /* All done! */
- return;
-
- case '\f': /* Redraw display */
- init_restore();
- break;
-
- default: /* user is a klutzy typist */
- move ( ERROR_ROW, ERROR_COL );
- printf( "Unknown key: " );
- if ( c < 0x20 ) {
- printf( "^%c", c );
- } else if ( c < 0x0100 ) {
- printf( "%c", c );
- } else {
- printf( "0x%04x", c );
- }
- fflush( stdout );
- error = true;
- }
-
- highlight( row, col, true ); /* turn cursor on */
- }
-}
-
-
-
-char *key_table[] = {
- "\033[1~", /* Find */
- "\033[2~", /* Insert */
- "\033[3~", /* Remove */
- "\033[4~", /* Select */
- "\033[5~", /* Prev */
- "\033[6~", /* Next */
- "\033[17~",
- "\033[18~",
- "\033[19~",
- "\033[20~",
- "\033[21~",
- "\033[23~",
- "\033[24~",
- "\033[25~",
- "\033[26~",
- "\033[28~",
- "\033[29~",
- "\033[31~",
- "\033[32~",
- "\033[33~",
- "\033[34~",
- "\033[A",
- "\033[B",
- "\033[C",
- "\033[D",
- (char *)0 };
-
-/*
- * get_key
- * Convert VT220 escape sequence into something more reasonable.
- */
-
-int
-get_key()
-{
- register char *p;
- char s[10];
- register int i, j;
-
- p = s;
- for ( i = 0; i < 10; ++i ) {
- *p = getchar();
- if ( i == 0 && *p != '\033' )
- return( (int)*p ); /* Not an escape sequence */
- if ( *p != '\033' && *p < 0x0020 )
- return( (int)*p ); /* Control character */
- *++p = '\0'; /* Null terminate */
- for ( j = 0; key_table[j]; ++j ) {
- if ( strcmp( s, key_table[j] ) == 0 ) {
- return( j | 0x0100 );
- }
- }
- }
- return( -1 );
-}
-
-
-
-/*
- * pad
- * Emit nulls so that the terminal can catch up.
- */
-
-pad()
-{
- int i;
-
- for ( i = 0; i < 20; ++i )
- putchar( '\000' );
- fflush( stdout );
-}
-
-
-
-/*
- * init_restore
- * refresh the main display table.
- */
-
-void
-init_restore()
-{
- register int row, col;
- register int i;
-
- void draw_current(), clear_screen(), print_entry();
-
- clear_screen();
-
- for ( col = 0; col < MAX_COLS; ++col ) {
- move( ROW_OFFSET - 2, col * 3 + COL_OFFSET + 1 );
- printf( "%d", col );
- }
- move( ROW_OFFSET - 1, COL_OFFSET );
- printf( "+--+--+--+--+--+--+--+--+" );
- move( ROW_OFFSET + MAX_ROWS * 2, COL_OFFSET );
- printf( "+--+--+--+--+--+--+--+--+" );
-
- for ( row = 0; row < MAX_ROWS; ++row ) {
- if ( row != 0 && row != 7 ) {
- move( row * 2 + ROW_OFFSET, COL_OFFSET - 2 );
- printf( "%d|", row );
- move( row * 2 + ROW_OFFSET + 1, COL_OFFSET - 1 );
- printf( "|" );
- move( row * 2 + ROW_OFFSET, COL_OFFSET + MAX_COLS * 3 );
- printf( "|" );
- move( row * 2 + ROW_OFFSET + 1, COL_OFFSET + MAX_COLS * 3 );
- printf( "|" );
- } else {
- move( row * 2 + ROW_OFFSET, COL_OFFSET - 2 );
- printf( "%d*", row );
- move( row * 2 + ROW_OFFSET + 1, COL_OFFSET - 1 );
- printf( "*" );
- move( row * 2 + ROW_OFFSET, COL_OFFSET + MAX_COLS * 3 );
- printf( "*" );
- move( row * 2 + ROW_OFFSET + 1, COL_OFFSET + MAX_COLS * 3 );
- printf( "*" );
- }
- }
- draw_current();
-
- move( TABLE_ROW - 1, TABLE_COL - 1 );
- printf( "+-+-+-+-+-+-+-+-+-+-+-+-+" );
- move( TABLE_ROW + 8 * 2 - 1, TABLE_COL - 1 );
- printf( "+-+-+-+-+-+-+-+-+-+-+-+-+" );
- for ( i = 0; i < 8; ++i ) {
- move ( TABLE_ROW + i * 2, TABLE_COL - 1 );
- printf( "|" );
- move ( TABLE_ROW + i * 2 + 1, TABLE_COL - 1 );
- printf( "+" );
- move ( TABLE_ROW + i * 2, TABLE_COL + 12 * 2 - 1);
- printf( "|" );
- move ( TABLE_ROW + i * 2 + 1, TABLE_COL +12 * 2 - 1);
- printf( "+" );
- }
- for ( i = 0; i < TOTAL_ENTRIES; ++i )
- print_entry( i, (i == current_entry) ? true : false );
-}
-
-
-
-/*
- * draw_current
- * Draw the complete current entry.
- */
-
-void
-draw_current()
-{
- register int row, col;
-
- printf( "\033)0" ); /* Special graphics in G1 */
- printf( "\016" ); /* Lock in G1 (SO) */
-
- for ( row = 0; row < MAX_ROWS; ++row ) {
- for ( col = 0; col < MAX_COLS; ++col ) {
- if ( display_table[row][col] ) {
- move( row * 2 + ROW_OFFSET, col * 3 + COL_OFFSET );
- printf( "\141\141\141" );
- move( row * 2 + ROW_OFFSET + 1, col * 3 + COL_OFFSET );
- printf( "\141\141\141" );
- } else {
- move( row * 2 + ROW_OFFSET, col * 3 + COL_OFFSET );
- printf( " " ); /* erase splat */
- move( row * 2 + ROW_OFFSET + 1, col * 3 + COL_OFFSET );
- printf( " " ); /* erase splat */
- }
- }
- pad();
- }
- printf( "\017" ); /* Lock in G0 (SI) */
- fflush( stdout );
-}
-
-
-
-/*
- * highlight
- * Draw the cursor in the main display area.
- */
-
-void
-highlight( row, col, on )
-unsigned int row, col;
-bool on;
-{
-
- printf( "\033)0" ); /* Special graphics in G1 */
- printf( "\016" ); /* Lock in G1 (SO) */
- if ( on ) {
- printf( "\033[7m" ); /* Reverse video cursor */
- }
-
- if ( display_table[row][col] ) {
- move( row * 2 + ROW_OFFSET, col * 3 + COL_OFFSET );
- printf( "\141\141\141" );
- move( row * 2 + ROW_OFFSET + 1, col * 3 + COL_OFFSET );
- printf( "\141\141\141" );
- } else {
- move( row * 2 + ROW_OFFSET, col * 3 + COL_OFFSET );
- printf( " " ); /* erase splat */
- move( row * 2 + ROW_OFFSET + 1, col * 3 + COL_OFFSET );
- printf( " " ); /* erase splat */
- }
- pad();
- printf( "\017" ); /* Lock in G0 (SI) */
- printf( "\033[0m" ); /* normal video */
- printf( "\b" ); /* Back up one spot */
- fflush( stdout );
-}
-
-
-
-/*
- * Clear_screen
- */
-
-void
-clear_screen()
-{
- printf( "\033[H\033[J" ); /* Clear screen. */
- fflush( stdout );
-}
-
-
-
-/*
- * move
- */
-
-move( y, x )
-int y, x;
-{
- printf( "\033[%d;%df", y, x );
-}
-
-
-
-/*
- * Build_entry
- * Convert the bit pattern used in the main display area into something
- * that the vt220 can digest - namely sixels...
- */
-
-void
-build_entry( entry_no )
-unsigned int entry_no;
-{
- register int row, col;
- register unsigned int mask;
-
- for ( col = 0; col < 8; ++col ) {
-
- /* Top set of sixels */
-
- mask = 0;
- for ( row = 5; row >= 0; --row ) {
- mask = mask << 1;
- if ( display_table[row][col] )
- mask |= 1;
- }
- font_table[entry_no][col] = mask + 077;
-
- /* Bottom set of sixels */
-
- mask = 0;
- for ( row = 9; row >= 6; --row ) {
- mask = mask << 1;
- if ( display_table[row][col] )
- mask |= 1;
- }
- font_table[entry_no][col+8] = mask + 077;
- }
-
-}
-
-
-
-/*
- * Extract_engry
- * convert sixel representation into an array of bits.
- */
-
-void
-extract_entry( entry_no )
-unsigned int entry_no;
-{
- register int row, col;
- register unsigned int mask;
-
- for ( col = 0; col < 8; ++col ) {
-
- /* Top set of sixels */
-
- mask = font_table[entry_no][col];
- if ( mask >= 077 )
- mask -= 077;
- else
- mask = 0; /* Bogus entry */
-
- for ( row = 0; row <= 5; ++row ) {
- display_table[row][col] = (bool)(mask & 0x0001);
- mask = mask >> 1;
- }
-
- /* Bottom set of sixels */
-
- mask = font_table[entry_no][col+8];
- if ( mask >= 077 )
- mask -= 077;
- else
- mask = 0;
-
- for ( row = 6; row <= 9; ++row ) {
- display_table[row][col] = (bool)(mask & 0x0001);
- mask = mask >> 1;
- }
- }
-
-}
-
-
-
-/*
- * Send_entry
- * Emit the stuff used by the VT220 to load a character into the
- * DRCS. We could, of course, send more than one entry at a time...
- */
-
-void
-send_entry( entry_no )
-int entry_no;
-{
- register char *fp = font_table[entry_no];
-
- printf( "\033P1;%d;1;0;0;0{ @%c%c%c%c%c%c%c%c/%c%c%c%c%c%c%c%c\033\\",
- entry_no,
- fp[ 0], fp[ 1], fp[ 2], fp[ 3], fp[ 4], fp[ 5], fp[ 6], fp[ 7],
- fp[ 8], fp[ 9], fp[10], fp[11], fp[12], fp[13], fp[14], fp[15] );
-}
-
-
-
-/*
- * Print_entry
- * The terminal normally has G0 in GL. We don't want to change
- * this, nor do we want to use GR. Sooooo send out the necessary
- * magic for shifting in G2 temporarily for the character that we
- * want to display.
- */
-
-void
-print_entry( entry_no, highlight )
-register unsigned int entry_no;
-bool highlight;
-{
-
- register int y, x;
-
- y = entry_no & 0x07;
- x = entry_no >> 3 & 0x1f;
- entry_no += 32; /* Map up to G set */
-
- move( y * 2 + TABLE_ROW, x * 2 + TABLE_COL );
-
- if ( highlight )
- printf( "\033[7m" );
-
- printf( "\033* @" ); /* select DRCS into G2 */
- printf( "\033N" ); /* select single shift */
- printf( "%c", entry_no ); /* Draw the character */
-
- if ( highlight )
- printf( "\033[0m" );
-}
-
-
-
-/*
- * Save_table
- * Save a font table
- */
-
-void
-save_table( font_file )
-FILE *font_file;
-{
- register char *fp;
- register int i;
-
- for ( i = 0; i < TOTAL_ENTRIES; ++i ) {
- fp = font_table[i];
- fprintf( font_file, "\033P1;%d;1;0;0;0{ @%c%c%c%c%c%c%c%c/%c%c%c%c%c%c%c%c\033\\\n",
- i,
- fp[ 0], fp[ 1], fp[ 2], fp[ 3], fp[ 4], fp[ 5], fp[ 6], fp[ 7],
- fp[ 8], fp[ 9], fp[10], fp[11], fp[12], fp[13], fp[14], fp[15] );
- }
-}
-
-
-
-/*
- * Get_table
- * Extract font table entries from a file
- */
-
-void
-get_table( font_file )
-FILE *font_file;
-{
- char s[256];
- register char *p;
- char *fp;
- int i;
- register int j;
-
- while( fgets( s, 255, font_file ) ) {
- if ( strncmp( s, "\033P1;", 4 ) != 0 )
- continue; /* Bogus line */
- p = &s[4];
- if ( sscanf( p, "%d", &i ) != 1 )
- continue; /* Illegal entry number */
-
- if ( i <= 0 || TOTAL_ENTRIES <= i )
- continue; /* Bogues entry */
-
- fp = font_table[i];
-
- while ( *p && *p != '@' )
- ++p; /* Skip to font definition */
- if ( ! *p++ )
- continue; /* Skip @ */
-
- for ( j = 0; *p && *p != '\033' && j < 16; ++j, ++p ) {
- if ( *p == '/' ) {
- j = 8;
- ++p;
- }
- fp[j] = *p;
- }
- send_entry( i );
- }
-}
-
-
-
-/*
- * Help
- * Print out help information.
- */
-
-void
-help()
-{
- printf( "Font editor\n\n" );
- printf( "F6 - Pixel on\n" );
- printf( "F7 - Pixel off\n" );
- printf( "F13 - Clear display area\n" );
- printf( "HELP - This screen\n" );
- printf( "FIND - Update font table\n" );
- printf( "INSERT - Insert a blank row\n" );
- printf( "REMOVE - Remove a row\n" );
- printf( "SELECT - Select current font table entry\n" );
- printf( "PREV - Move to previous font table entry\n" );
- printf( "NEXT - Move to next font table entry\n" );
- printf( "^D - Exit\n" );
- printf( "\n\n\n\nPress any key to continue\n" );
-}
-
-
-
-/*
- * Warning
- * Issue a warning to the regarding the current status.
- */
-
-void
-warning( s )
-char *s;
-{
- move( ERROR_ROW, ERROR_COL );
- printf( "Warning: %s!\n", s );
- move( ERROR_ROW+1, ERROR_COL );
- printf( " Reissue command to override\n" );
-}
OpenPOWER on IntegriCloud