diff --git a/posix.c b/posix.c index 75c80a2..93bbbf4 100644 --- a/posix.c +++ b/posix.c @@ -26,12 +26,11 @@ #include "retcode.h" #include "utf8.h" -int ttrow = HUGE ; /* Row location of HW cursor */ -int ttcol = HUGE ; /* Column location of HW cursor */ +int ttrow = -1 ; /* Row location of HW cursor */ +int ttcol = -1 ; /* Column location of HW cursor */ -/* Since Mac OS X's termios.h doesn't have the following 2 macros, define them. - */ -#if BSD || defined(SYSV) && (defined(_DARWIN_C_SOURCE) || defined(_FREEBSD_C_SOURCE)) +/* Define missing macroes for BSD and CYGWIN environment */ +#if BSD #define OLCUC 0000002 #define XCASE 0000004 #endif @@ -94,10 +93,8 @@ void ttopen(void) kbdflgs = fcntl(0, F_GETFL, 0); kbdpoll = FALSE; - /* on all screens we are not sure of the initial position - of the cursor */ - ttrow = 999; - ttcol = 999; +/* on all screens we are not sure of the initial position of the cursor */ + ttrow = ttcol = -1 ; } /* diff --git a/tcap.c b/tcap.c index 5ae6cee..7a37acb 100644 --- a/tcap.c +++ b/tcap.c @@ -83,7 +83,7 @@ static char *_UP, _PC, *CM, *CE, *CL, *SO, *SE; static char *CS, *DL, *AL, *SF, *SR; # endif -struct terminal term = { +terminal_t term = { 480, /* actual 479 on 2560x1440 landscape terminal window */ 2550, /* actual 2541 */ 0, /* These four values are set dynamically at open time. */ @@ -231,16 +231,14 @@ static void tcapclose(void) } # endif -static void tcapkopen(void) -{ +static void tcapkopen( void) { # if PKCODE - putpad(TI); - ttflush(); - ttrow = 999; - ttcol = 999; - sgarbf = TRUE; + putpad( TI) ; + ttflush() ; + ttrow = ttcol = -1 ; + sgarbf = TRUE ; # endif - strcpy(sres, "NORMAL"); + strcpy(sres, "NORMAL") ; } static void tcapkclose(void) diff --git a/terminal.h b/terminal.h index 3f7d375..247c7dd 100644 --- a/terminal.h +++ b/terminal.h @@ -6,45 +6,45 @@ #include "retcode.h" #include "utf8.h" -/* The editor communicates with the display using a high level interface. A - * "TERM" structure holds useful variables, and indirect pointers to routines - * that do useful operations. The low level get and put routines are here too. - * This lets a terminal, in addition to having non standard commands, have - * funny get and put character code too. The calls might get changed to - * "termp->t_field" style in the future, to make it possible to run more than - * one terminal type. +/* The editor communicates with the display using a high level interface. + A "TERM" structure holds useful variables, and indirect pointers to + routines that do useful operations. The low level get and put routines + are here too. This lets a terminal, in addition to having non standard + commands, have funny get and put character code too. The calls might + get changed to "termp->t_field" style in the future, to make it possible + to run more than one terminal type. */ -struct terminal { - const short t_maxrow ; /* max number of rows allowable */ - const short t_maxcol ; /* max number of columns allowable */ - short t_mrow ; /* max number of rows displayable */ - short t_nrow ; /* current number of rows displayed */ - short t_mcol ; /* max number of rows displayable */ - short t_ncol ; /* current number of columns displayed */ - short t_margin; /* min margin for extended lines */ - short t_scrsiz; /* size of scroll region " */ - int t_pause; /* # times thru update to pause */ - void (*t_open)(void); /* Open terminal at the start. */ - void (*t_close)(void); /* Close terminal at end. */ - void (*t_kopen)(void); /* Open keyboard */ - void (*t_kclose)(void); /* close keyboard */ - int (*t_getchar)(void); /* Get character from keyboard. */ - int (*t_putchar)( unicode_t) ; /* Put character to display. */ - void (*t_flush) (void); /* Flush output buffers. */ - void (*t_move)(int, int);/* Move the cursor, origin 0. */ - void (*t_eeol)(void); /* Erase to end of line. */ - void (*t_eeop)(void); /* Erase to end of page. */ - void (*t_beep)(void); /* Beep. */ - void (*t_rev)(int); /* set reverse video state */ - int (*t_rez)(char *); /* change screen resolution */ +typedef struct { + const short t_maxrow ; /* max number of rows allowable */ + const short t_maxcol ; /* max number of columns allowable */ + short t_mrow ; /* max number of rows displayable */ + short t_nrow ; /* current number of rows displayed */ + short t_mcol ; /* max number of rows displayable */ + short t_ncol ; /* current number of columns displayed */ + short t_margin ; /* min margin for extended lines */ + short t_scrsiz ; /* size of scroll region */ + int t_pause ; /* # times thru update to pause */ + void (*t_open)( void) ; /* Open terminal at the start */ + void (*t_close)( void) ; /* Close terminal at end. */ + void (*t_kopen)( void) ; /* Open keyboard */ + void (*t_kclose)( void) ; /* close keyboard */ + int (*t_getchar)( void) ; /* Get character from keyboard */ + int (*t_putchar)( unicode_t) ; /* Put character to display */ + void (*t_flush) (void) ; /* Flush output buffers */ + void (*t_move)( int, int) ; /* Move the cursor, origin 0 */ + void (*t_eeol)( void) ; /* Erase to end of line */ + void (*t_eeop)( void) ; /* Erase to end of page */ + void (*t_beep)( void) ; /* Beep */ + void (*t_rev)( int) ; /* set reverse video state */ + int (*t_rez)( char *) ; /* change screen resolution */ #if COLOR - int (*t_setfor) (); /* set forground color */ - int (*t_setback) (); /* set background color */ + int (*t_setfor)() ; /* set forground color */ + int (*t_setback)() ; /* set background color */ #endif -#if SCROLLCODE - void (*t_scroll)(int, int,int); /* scroll a region of the screen */ +#if SCROLLCODE + void (*t_scroll)( int, int,int) ; /* scroll a region of the screen */ #endif -}; +} terminal_t ; /* TEMPORARY macros for terminal I/O (to be placed in a machine dependant place later) @@ -68,11 +68,8 @@ struct terminal { #define TTbacg (*term.t_setback) #endif -/* Terminal table defined only in term.c */ -extern struct terminal term ; - -extern int ttrow ; /* Row location of HW cursor */ -extern int ttcol ; /* Column location of HW cursor */ +/* Terminal table defined only in tcap.c */ +extern terminal_t term ; extern boolean eolexist ; /* does clear to EOL exist? */ extern boolean revexist ; /* does reverse video exist? */ diff --git a/termio.c b/termio.c index e306cf2..a5e5b71 100644 --- a/termio.c +++ b/termio.c @@ -21,8 +21,8 @@ #include #include -int ttrow = HUGE ; /* Row location of HW cursor */ -int ttcol = HUGE ; /* Column location of HW cursor */ +int ttrow = -1 ; /* Row location of HW cursor */ +int ttcol = -1 ; /* Column location of HW cursor */ #if USG /* System V */ @@ -139,8 +139,7 @@ void ttopen(void) /* on all screens we are not sure of the initial position of the cursor */ - ttrow = 999; - ttcol = 999; + ttrow = ttcol = -1 ; } /* diff --git a/termio.h b/termio.h index b2603c2..d98a450 100644 --- a/termio.h +++ b/termio.h @@ -6,8 +6,6 @@ #define TYPEAH 1 /* type ahead causes update to be skipped */ -#define HUGE 1000 /* Huge number (for row/col) */ - extern int ttrow ; /* Row location of HW cursor */ extern int ttcol ; /* Column location of HW cursor */