From c4d635756b57f7ef2834b0bd4f5ecd8f86a0ebc5 Mon Sep 17 00:00:00 2001 From: Mark Hessling Date: Fri, 2 Jan 2004 05:50:05 +0000 Subject: [PATCH] Addition of Pacific Compiler support - Ron Thibodeau Code tidy up for prototypes - Ron Thibodeau Change all GO32 to __DJGPP__ --- curses.h | 645 +++++++++++++++++---------------------------- curspriv.h | 375 +++++++++----------------- demos/firework.c | 97 +++---- demos/newdemo.c | 539 +++++++++++++++++++------------------ demos/tui.c | 4 +- dos/pdcdisp.c | 38 ++- dos/pdcscrn.c | 14 +- pdcurses/pdcutil.c | 37 ++- pdcurses/util.c | 6 +- 9 files changed, 783 insertions(+), 972 deletions(-) diff --git a/curses.h b/curses.h index f9197194..da01b1c0 100644 --- a/curses.h +++ b/curses.h @@ -18,7 +18,7 @@ *************************************************************************** */ /* -$Id: curses.h,v 1.18 2003/12/28 08:33:13 mark Exp $ +$Id: curses.h,v 1.19 2004/01/02 05:50:05 mark Exp $ */ /* *---------------------------------------------------------------------- @@ -721,6 +721,41 @@ PDCurses portable platform definitions list: # endif #endif +/* +* HI-TECH COMPILERS Pacific C +* +* Hi-Tech definitions: +* PC +* +* __PACIFIC__, DOS +* are predefined by compiler. +*/ +#ifdef __PACIFIC__ +# define PC __PACIFIC__ +# ifndef HAVE_PROTO +# define HAVE_PROTO 1 +# endif +# include +# include +# include +# include +# ifndef __SMALL__ +# define __SMALL__ +# endif +# ifndef HAVE_LIMITS_H +# define HAVE_LIMITS_H +# endif +# ifndef HAVE_STDARG_H +# define HAVE_STDARG_H +# endif +# ifndef HAVE_MEMMOVE +# define HAVE_MEMMOVE +# endif +# ifndef HAVE_VSSCANF +# define HAVE_VSSCANF +# endif +#endif + /*---------------------------------------------------------------------*/ #include /* Required by X/Open usage below */ /*---------------------------------------------------------------------- @@ -901,7 +936,11 @@ typedef struct _wins typedef struct /* structure for ripped off lines */ { int line; +#ifdef HAVE_PROTO + int (*init)(WINDOW *, int); +#else int (*init)(); +#endif } RIPPEDOFFLINE; @@ -1532,436 +1571,230 @@ extern chtype *acs_map; * PDCurses function declarations */ #ifdef HAVE_PROTO -int PDC_CDECL addchnstr( chtype *, int ); -int PDC_CDECL baudrate( void ); -int PDC_CDECL beep( void ); -int PDC_CDECL border( chtype, chtype, chtype, chtype, chtype, chtype, chtype, chtype ); -int PDC_CDECL can_change_color ( void ); -int PDC_CDECL clearok( WINDOW*, bool ); -int PDC_CDECL color_content( short, short*, short*, short* ); -int PDC_CDECL copywin( WINDOW*, WINDOW*, int, int, int, int, int, int, int ); -int PDC_CDECL curs_set( int ); -int PDC_CDECL def_prog_mode( void ); -int PDC_CDECL def_shell_mode( void ); -int PDC_CDECL delay_output( int ); -int PDC_CDECL delwin( WINDOW* ); -WINDOW* PDC_CDECL derwin( WINDOW*, int, int, int, int ); -int PDC_CDECL doupdate( void ); -WINDOW* PDC_CDECL dupwin( WINDOW* ); -int PDC_CDECL endwin( void ); -int PDC_CDECL erase( void ); -char PDC_CDECL erasechar( void ); -int PDC_CDECL flash( void ); -int PDC_CDECL flushinp( void ); -int PDC_CDECL getsyx( int*, int* ); -int PDC_CDECL halfdelay( int ); -bool PDC_CDECL has_colors( void ); -int PDC_CDECL hline( chtype, int ); -int PDC_CDECL immedok( WINDOW*, bool ); -int PDC_CDECL inchnstr( chtype *, int ); -int PDC_CDECL init_color( short, short, short, short ); -int PDC_CDECL init_pair( short, short, short ); -WINDOW* PDC_CDECL initscr( void ); -#ifdef XCURSES -WINDOW* PDC_CDECL Xinitscr( int, char ** ); -#endif -int PDC_CDECL intrflush( WINDOW*, bool ); -int PDC_CDECL is_linetouched(WINDOW *,int); -int PDC_CDECL is_wintouched(WINDOW *); -char* PDC_CDECL keyname( int ); -char PDC_CDECL killchar( void ); -char* PDC_CDECL longname( void ); -int PDC_CDECL meta( WINDOW*, bool ); -int PDC_CDECL mvcur( int, int, int, int ); -int PDC_CDECL mvderwin( WINDOW*, int, int ); -#ifdef HAVE_STDARG_H -int PDC_CDECL mvprintw( int, int, char*,... ); -int PDC_CDECL mvscanw( int, int, char*,... ); -#endif -int PDC_CDECL mvwaddnstr( WINDOW*,int,int,char*,int ); -int PDC_CDECL mvwin( WINDOW*, int, int ); -int PDC_CDECL mvwinsertln( WINDOW*, int, int ); -#ifdef HAVE_STDARG_H -int PDC_CDECL mvwprintw( WINDOW*, int, int, char*,... ); -int PDC_CDECL mvwscanw( WINDOW*, int, int, char*,... ); -#endif -WINDOW* PDC_CDECL newpad( int, int ); -SCREEN* PDC_CDECL newterm( char*, FILE*, FILE* ); -WINDOW* PDC_CDECL newwin( int, int, int, int ); -int PDC_CDECL noraw( void ); -int PDC_CDECL notimeout( WINDOW *, bool ); -int PDC_CDECL overlay( WINDOW*, WINDOW* ); -int PDC_CDECL overwrite( WINDOW*, WINDOW* ); -int PDC_CDECL pair_content( int, short*, short* ); -int PDC_CDECL pechochar( WINDOW *, chtype ); -int PDC_CDECL pnoutrefresh( WINDOW*, int, int, int, int, int, int ); -int PDC_CDECL prefresh( WINDOW*, int, int, int, int, int, int ); -#ifdef HAVE_STDARG_H -int PDC_CDECL printw( char*,... ); -int PDC_CDECL scanw( char*,... ); -#endif -int PDC_CDECL raw( void ); -int PDC_CDECL refresh( void ); -int PDC_CDECL reset_prog_mode( void ); -int PDC_CDECL reset_shell_mode( void ); -int PDC_CDECL resetty( void ); -int PDC_CDECL ripoffline(int, int (*)(WINDOW *, int)); -int PDC_CDECL savetty( void ); -int PDC_CDECL sb_init(void); -int PDC_CDECL sb_set_horz(int, int, int); -int PDC_CDECL sb_set_vert(int, int, int); -int PDC_CDECL sb_get_horz(int *, int *, int *); -int PDC_CDECL sb_get_vert(int *, int *, int *); -int PDC_CDECL sb_refresh(void); -int PDC_CDECL scroll( WINDOW* ); -SCREEN* PDC_CDECL set_term( SCREEN* ); -int PDC_CDECL setsyx( int, int ); -int PDC_CDECL start_color( void ); -int PDC_CDECL slk_init(int); -int PDC_CDECL slk_set(int, char *, int); -int PDC_CDECL slk_refresh(void); -int PDC_CDECL slk_noutrefresh(void); -char* PDC_CDECL slk_label(int); -int PDC_CDECL slk_clear(void); -int PDC_CDECL slk_restore(void); -int PDC_CDECL slk_touch(void); -int PDC_CDECL slk_attron(attr_t); -int PDC_CDECL slk_attrset(attr_t); -int PDC_CDECL slk_attroff(attr_t); -WINDOW* PDC_CDECL subpad( WINDOW*, int, int, int, int ); -WINDOW* PDC_CDECL subwin( WINDOW*, int, int, int, int ); -int PDC_CDECL syncok(WINDOW*, bool); -attr_t PDC_CDECL termattrs( void ); -char* PDC_CDECL termname( void ); -int PDC_CDECL touchline( WINDOW*, int ,int ); -int PDC_CDECL touchwin( WINDOW* ); -#if !defined (CURSES_LIBRARY) -void PDC_CDECL traceoff( void ); -void PDC_CDECL traceon( void ); -#endif -int PDC_CDECL typeahead( int ); -char* PDC_CDECL unctrl( chtype ); -int PDC_CDECL vline( chtype, int ); -int PDC_CDECL waddchnstr( WINDOW*, chtype*, int ); -int PDC_CDECL waddnstr( WINDOW*, char*, int ); -int PDC_CDECL waddstr( WINDOW*, char* ); -int PDC_CDECL wattroff( WINDOW*, attr_t ); -int PDC_CDECL wattron( WINDOW*, attr_t ); -int PDC_CDECL wattrset( WINDOW*, attr_t ); -int PDC_CDECL wbkgd(WINDOW*, chtype); -void PDC_CDECL wbkgdset(WINDOW*, chtype); -int PDC_CDECL wborder( WINDOW*, chtype, chtype, chtype, chtype, chtype, chtype, chtype, chtype ); -int PDC_CDECL wclear( WINDOW* ); -int PDC_CDECL wclrtobot( WINDOW* ); -int PDC_CDECL wclrtoeol( WINDOW* ); -void PDC_CDECL wcursyncup(WINDOW*); -int PDC_CDECL wdelch( WINDOW* ); -int PDC_CDECL wdeleteln( WINDOW* ); -int PDC_CDECL werase( WINDOW* ); -int PDC_CDECL wgetch( WINDOW* ); -int PDC_CDECL wgetnstr( WINDOW*, char*, int ); -int PDC_CDECL wgetstr( WINDOW*, char* ); -int PDC_CDECL whline( WINDOW*, chtype, int ); -int PDC_CDECL winchnstr( WINDOW*, chtype*, int ); -int PDC_CDECL winnstr( WINDOW*, char*, int ); -int PDC_CDECL winsch( WINDOW*, chtype ); -int PDC_CDECL winsdelln( WINDOW*, int ); -int PDC_CDECL winsertln( WINDOW* ); -int PDC_CDECL winsnstr( WINDOW*, char*, int ); -int PDC_CDECL wmove( WINDOW*, int, int ); -int PDC_CDECL wnoutrefresh( WINDOW* ); -char PDC_CDECL wordchar( void ); -#ifdef HAVE_STDARG_H -int PDC_CDECL wprintw( WINDOW*, char*,... ); -int PDC_CDECL wscanw( WINDOW*, char*,... ); -#endif -int PDC_CDECL wredrawln( WINDOW*, int ,int ); -int PDC_CDECL wrefresh( WINDOW* ); -int PDC_CDECL wscrl( WINDOW*, int ); -int PDC_CDECL wsetscrreg( WINDOW*, int, int ); -int PDC_CDECL wtimeout( WINDOW *, int ); -int PDC_CDECL wtouchln(WINDOW *, int, int, int); -void PDC_CDECL wsyncdown(WINDOW*); -void PDC_CDECL wsyncup(WINDOW*); -int PDC_CDECL wvline( WINDOW*, chtype, int ); - -#ifdef PDCURSES -int PDC_CDECL raw_output( bool ); -int PDC_CDECL resize_term( int, int ); -WINDOW* PDC_CDECL resize_window( WINDOW*, int, int ); -#endif - -#ifdef OBSOLETE_OR_TBD -char PDC_CDECL breakchar( /* void */ ); -int PDC_CDECL cursoff( /* void */ ); -int PDC_CDECL curson( /* void */ ); -int PDC_CDECL gettmode( /* void */ ); -int PDC_CDECL mvaddrawch( /* int, int, chtype */ ); -int PDC_CDECL mvaddrawstr( /* int, int, char* */ ); -int PDC_CDECL mvwinsrawch( /* WINDOW*, int, int, chtype */ ); -int PDC_CDECL mvinsrawch( /* int, int, chtype */ ); -int PDC_CDECL saveoldterm( /* void */ ); -int PDC_CDECL tabsize( /* int */ ); -int PDC_CDECL waddrawstr( /* WINDOW*, char* */ ); -int PDC_CDECL wtabsize( /* WINDOW*, int */ ); -int PDC_CDECL win_print( /* WINDOW*, int */ ); -#endif - -#ifdef XCURSES -void XCursesExit( void ); -int nocbreak( void ); -int cbreak( void ); -int nocrmode( void ); -int crmode( void ); -int noecho( void ); -int echo( void ); -int nodelay( WINDOW *,bool ); -#endif - -int PDC_CDECL mouse_set( unsigned long ); -int PDC_CDECL mouse_on( unsigned long ); -int PDC_CDECL mouse_off( unsigned long ); -int PDC_CDECL request_mouse_pos( void ); -int PDC_CDECL map_button( unsigned long ); -void PDC_CDECL wmouse_position( WINDOW *, int *, int * ); -unsigned long PDC_CDECL getmouse( void ); -unsigned long PDC_CDECL getbmap( void ); - -/* -* Keep the compiler happy with our macros below... -*/ -int PDC_CDECL PDC_chadd( WINDOW*, chtype, bool, bool ); -int PDC_CDECL PDC_chins( WINDOW*, chtype, bool ); -int PDC_CDECL PDC_ungetch( int ); - -void PDC_CDECL PDC_set_title( char * ); - -int PDC_CDECL PDC_getclipboard( char **, long * ); -int PDC_CDECL PDC_setclipboard( char *, long ); -int PDC_CDECL PDC_freeclipboard( char * ); -int PDC_CDECL PDC_clearclipboard( void ); - -unsigned long PDC_CDECL PDC_get_input_fd( void ); -int PDC_CDECL PDC_curs_set( int ); -unsigned long PDC_CDECL PDC_get_key_modifiers( void ); - -int PDC_CDECL PDC_wunderline( WINDOW*, int, bool ); -int PDC_CDECL PDC_wleftline( WINDOW*, int, bool ); -int PDC_CDECL PDC_wrightline( WINDOW*, int, bool ); -int PDC_CDECL PDC_set_line_color( short ); - +# define Args(x) x #else +# define Args(x) () +#endif -int PDC_CDECL addchnstr( /* chtype *, int */ ); -int PDC_CDECL baudrate( /* void */ ); -int PDC_CDECL beep( /* void */ ); -int PDC_CDECL border( /* chtype, chtype, chtype, chtype, chtype, chtype, chtype, chtype */ ); -int PDC_CDECL can_change_color ( /* void */ ); -int PDC_CDECL clearok( /* WINDOW*, bool */ ); -int PDC_CDECL color_content( /* int, short*, short*, short* */ ); -int PDC_CDECL copywin( /* WINDOW*, WINDOW*, int, int, int, int, int, int, int */ ); -int PDC_CDECL curs_set( /* int */ ); -int PDC_CDECL def_prog_mode( /* void */ ); -int PDC_CDECL def_shell_mode( /* void */ ); -int PDC_CDECL delay_output( /* int */ ); -int PDC_CDECL delwin( /* WINDOW* */ ); -WINDOW* PDC_CDECL derwin( /* WINDOW*, int, int, int, int */ ); -int PDC_CDECL doupdate( /* void */ ); -WINDOW* PDC_CDECL dupwin( /* WINDOW* */ ); -int PDC_CDECL endwin( /* void */ ); -int PDC_CDECL erase( /* void */ ); -char PDC_CDECL erasechar( /* void */ ); -int PDC_CDECL flash( /* void */ ); -int PDC_CDECL flushinp( /* void */ ); -int PDC_CDECL getsyx( /* int*, int* */ ); -int PDC_CDECL halfdelay( /* int */ ); -bool PDC_CDECL has_colors( /* void */ ); -int PDC_CDECL hline( /* chtype, int */ ); -int PDC_CDECL immedok( /* WINDOW*, bool */ ); -int PDC_CDECL inchnstr( /* chtype *, int */ ); -int PDC_CDECL init_color( /* short, short, short, short */ ); -int PDC_CDECL init_pair( /* short, short, short */ ); -WINDOW* PDC_CDECL initscr( /* void */ ); +int PDC_CDECL addchnstr Args(( chtype *, int )); +int PDC_CDECL baudrate Args(( void )); +int PDC_CDECL beep Args(( void )); +int PDC_CDECL border Args(( chtype, chtype, chtype, chtype, chtype, chtype, chtype, chtype )); +int PDC_CDECL can_change_color Args(( void )); +int PDC_CDECL clearok Args(( WINDOW*, bool )); +int PDC_CDECL color_content Args(( short, short*, short*, short* )); +int PDC_CDECL copywin Args(( WINDOW*, WINDOW*, int, int, int, int, int, int, int )); +int PDC_CDECL curs_set Args(( int )); +int PDC_CDECL def_prog_mode Args(( void )); +int PDC_CDECL def_shell_mode Args(( void )); +int PDC_CDECL delay_output Args(( int )); +int PDC_CDECL delwin Args(( WINDOW* )); +WINDOW* PDC_CDECL derwin Args(( WINDOW*, int, int, int, int )); +int PDC_CDECL doupdate Args(( void )); +WINDOW* PDC_CDECL dupwin Args(( WINDOW* )); +int PDC_CDECL endwin Args(( void )); +int PDC_CDECL erase Args(( void )); +char PDC_CDECL erasechar Args(( void )); +int PDC_CDECL flash Args(( void )); +int PDC_CDECL flushinp Args(( void )); +int PDC_CDECL getsyx Args(( int*, int* )); +int PDC_CDECL halfdelay Args(( int )); +bool PDC_CDECL has_colors Args(( void )); +int PDC_CDECL hline Args(( chtype, int )); +int PDC_CDECL immedok Args(( WINDOW*, bool )); +int PDC_CDECL inchnstr Args(( chtype *, int )); +int PDC_CDECL init_color Args(( short, short, short, short )); +int PDC_CDECL init_pair Args(( short, short, short )); +WINDOW* PDC_CDECL initscr Args(( void )); #ifdef XCURSES -WINDOW* PDC_CDECL Xinitscr( /* int, char ** */ ); +WINDOW* PDC_CDECL Xinitscr Args(( int, char ** )); #endif -int PDC_CDECL intrflush( /* WINDOW*, bool */ ); -int PDC_CDECL is_linetouched( /*WINDOW *,int*/ ); -int PDC_CDECL is_wintouched( /*WINDOW **/ ); -char* PDC_CDECL keyname( /* int */ ); -char PDC_CDECL killchar( /* void */ ); -char* PDC_CDECL longname( /* void */ ); -int PDC_CDECL meta( /* WINDOW*, bool */ ); -int PDC_CDECL mvcur( /* int, int, int, int */ ); -int PDC_CDECL mvderwin( /* WINDOW*, int, int */ ); -int PDC_CDECL mvprintw( /* int, int, char*,... */ ); -int PDC_CDECL mvscanw( /* int, int, char*,... */ ); -int PDC_CDECL mvwaddnstr(/* WINDOW*,int,int,char*,int */ ); -int PDC_CDECL mvwin( /* WINDOW*, int, int */ ); -int PDC_CDECL mvwinsertln( /* WINDOW*, int, int */ ); -int PDC_CDECL mvwprintw( /* WINDOW*, int, int, char*,... */ ); -int PDC_CDECL mvwscanw( /* WINDOW*, int, int, char*,... */ ); -WINDOW* PDC_CDECL newpad( /* int, int */ ); -SCREEN* PDC_CDECL newterm( /* char*, FILE*, FILE* */ ); -WINDOW* PDC_CDECL newwin( /* int, int, int, int */ ); -int PDC_CDECL noraw( /* void */ ); -int PDC_CDECL notimeout( /* WINDOW *, bool */ ); -int PDC_CDECL overlay( /* WINDOW*, WINDOW* */ ); -int PDC_CDECL overwrite( /* WINDOW*, WINDOW* */ ); -int PDC_CDECL pair_content( /* int, short*, short* */ ); -int PDC_CDECL pechochar( /* WINDOW *pad, chtype ch */ ); -int PDC_CDECL pnoutrefresh( /* WINDOW*, int, int, int, int, int, int */ ); -int PDC_CDECL prefresh( /* WINDOW*, int, int, int, int, int, int */ ); -int PDC_CDECL printw( /* char*,... */ ); -int PDC_CDECL raw( /* void */ ); -int PDC_CDECL refresh( /* void */ ); -int PDC_CDECL reset_prog_mode( /* void */ ); -int PDC_CDECL reset_shell_mode( /* void */ ); -int PDC_CDECL resetty( /* void */ ); -int PDC_CDECL ripoffline( /* int, int (*)(WINDOW *, int) */); -int PDC_CDECL savetty( /* void */ ); -int PDC_CDECL sb_init( /* void */ ); -int PDC_CDECL sb_set_horz( /* int, int, int */ ); -int PDC_CDECL sb_set_vert( /* int, int, int */ ); -int PDC_CDECL sb_get_horz( /* int *, int *, int * */ ); -int PDC_CDECL sb_get_vert( /* int *, int *, int * */ ); -int PDC_CDECL sb_refresh( /* void */ ); -int PDC_CDECL scanw( /* char*,... */ ); -int PDC_CDECL scroll( /* WINDOW* */ ); -int PDC_CDECL setsyx( /* int, int */ ); -SCREEN* PDC_CDECL set_term( /* SCREEN* */ ); -int PDC_CDECL slk_init(/* int */); -int PDC_CDECL slk_set(/* int, char *, int */); -int PDC_CDECL slk_refresh(/* void */); -int PDC_CDECL slk_noutrefresh(/* void */); -char* PDC_CDECL slk_label(/* int */); -int PDC_CDECL slk_clear(/* void */); -int PDC_CDECL slk_restore(/* void */); -int PDC_CDECL slk_touch(/* void */); -int PDC_CDECL slk_attron(/* attr_t */); -int PDC_CDECL slk_attrset(/* attr_t */); -int PDC_CDECL slk_attroff(/* attr_t */); -int PDC_CDECL start_color( /* void */ ); -WINDOW* PDC_CDECL subpad( /* WINDOW*, int, int, int, int */ ); -WINDOW* PDC_CDECL subwin( /* WINDOW*, int, int, int, int */ ); -int PDC_CDECL syncok(/* WINDOW*, bool */); -attr_t PDC_CDECL termattrs( /* void */ ); -char* PDC_CDECL termname( /* void */ ); -int PDC_CDECL touchline( /* WINDOW*, int ,int */ ); -int PDC_CDECL touchwin( /* WINDOW* */ ); +int PDC_CDECL intrflush Args(( WINDOW*, bool )); +int PDC_CDECL is_linetouched Args((WINDOW *,int)); +int PDC_CDECL is_wintouched Args((WINDOW *)); +char* PDC_CDECL keyname Args(( int )); +char PDC_CDECL killchar Args(( void )); +char* PDC_CDECL longname Args(( void )); +int PDC_CDECL meta Args(( WINDOW*, bool )); +int PDC_CDECL mvcur Args(( int, int, int, int )); +int PDC_CDECL mvderwin Args(( WINDOW*, int, int )); +#ifdef HAVE_STDARG_H +int PDC_CDECL mvprintw Args(( int, int, char*,... )); +int PDC_CDECL mvscanw Args(( int, int, char*,... )); +#endif +int PDC_CDECL mvwaddnstr Args(( WINDOW*,int,int,char*,int )); +int PDC_CDECL mvwin Args(( WINDOW*, int, int )); +int PDC_CDECL mvwinsertln Args(( WINDOW*, int, int )); +#ifdef HAVE_STDARG_H +int PDC_CDECL mvwprintw Args(( WINDOW*, int, int, char*,... )); +int PDC_CDECL mvwscanw Args(( WINDOW*, int, int, char*,... )); +#endif +WINDOW* PDC_CDECL newpad Args(( int, int )); +SCREEN* PDC_CDECL newterm Args(( char*, FILE*, FILE* )); +WINDOW* PDC_CDECL newwin Args(( int, int, int, int )); +int PDC_CDECL noraw Args(( void )); +int PDC_CDECL notimeout Args(( WINDOW *, bool )); +int PDC_CDECL overlay Args(( WINDOW*, WINDOW* )); +int PDC_CDECL overwrite Args(( WINDOW*, WINDOW* )); +int PDC_CDECL pair_content Args(( int, short*, short* )); +int PDC_CDECL pechochar Args(( WINDOW *, chtype )); +int PDC_CDECL pnoutrefresh Args(( WINDOW*, int, int, int, int, int, int )); +int PDC_CDECL prefresh Args(( WINDOW*, int, int, int, int, int, int )); +#ifdef HAVE_STDARG_H +int PDC_CDECL printw Args(( char*,... )); +int PDC_CDECL scanw Args(( char*,... )); +#endif +int PDC_CDECL raw Args(( void )); +int PDC_CDECL refresh Args(( void )); +int PDC_CDECL reset_prog_mode Args(( void )); +int PDC_CDECL reset_shell_mode Args(( void )); +int PDC_CDECL resetty Args(( void )); +int PDC_CDECL ripoffline Args((int, int (*)(WINDOW *, int))); +int PDC_CDECL savetty Args(( void )); +int PDC_CDECL sb_init Args((void)); +int PDC_CDECL sb_set_horz Args((int, int, int)); +int PDC_CDECL sb_set_vert Args((int, int, int)); +int PDC_CDECL sb_get_horz Args((int *, int *, int *)); +int PDC_CDECL sb_get_vert Args((int *, int *, int *)); +int PDC_CDECL sb_refresh Args((void)); +int PDC_CDECL scroll Args(( WINDOW* )); +SCREEN* PDC_CDECL set_term Args(( SCREEN* )); +int PDC_CDECL setsyx Args(( int, int )); +int PDC_CDECL start_color Args(( void )); +int PDC_CDECL slk_init Args((int)); +int PDC_CDECL slk_set Args((int, char *, int)); +int PDC_CDECL slk_refresh Args((void)); +int PDC_CDECL slk_noutrefresh Args((void)); +char* PDC_CDECL slk_label Args((int)); +int PDC_CDECL slk_clear Args((void)); +int PDC_CDECL slk_restore Args((void)); +int PDC_CDECL slk_touch Args((void)); +int PDC_CDECL slk_attron Args((attr_t)); +int PDC_CDECL slk_attrset Args((attr_t)); +int PDC_CDECL slk_attroff Args((attr_t)); +WINDOW* PDC_CDECL subpad Args(( WINDOW*, int, int, int, int )); +WINDOW* PDC_CDECL subwin Args(( WINDOW*, int, int, int, int )); +int PDC_CDECL syncok Args((WINDOW*, bool)); +attr_t PDC_CDECL termattrs Args(( void )); +char* PDC_CDECL termname Args(( void )); +int PDC_CDECL touchline Args(( WINDOW*, int ,int )); +int PDC_CDECL touchwin Args(( WINDOW* )); #if !defined (CURSES_LIBRARY) -void PDC_CDECL traceoff(/* void */); -void PDC_CDECL traceon(/* void */); +void PDC_CDECL traceoff Args(( void )); +void PDC_CDECL traceon Args(( void )); #endif -int PDC_CDECL typeahead( /* int */ ); -char* PDC_CDECL unctrl( /* chtype */ ); -int PDC_CDECL vline( /* chtype, int */ ); -int PDC_CDECL waddchnstr( /* WINDOW*, chtype*, int */ ); -int PDC_CDECL waddnstr( /* WINDOW*, char*, int */ ); -int PDC_CDECL waddstr( /* WINDOW*, char* */ ); -int PDC_CDECL wattroff( /* WINDOW*, attr_t */ ); -int PDC_CDECL wattron( /* WINDOW*, attr_t */ ); -int PDC_CDECL wattrset( /* WINDOW*, attr_t */ ); -int PDC_CDECL wbkgd( /*WINDOW*, chtype*/ ); -void PDC_CDECL wbkgdset( /*WINDOW*, chtype*/ ); -int PDC_CDECL wborder( /* WINDOW*, chtype, chtype, chtype, chtype, chtype, chtype, chtype, chtype */ ); -int PDC_CDECL wclear( /* WINDOW* */ ); -int PDC_CDECL wclrtobot( /* WINDOW* */ ); -int PDC_CDECL wclrtoeol( /* WINDOW* */ ); -void PDC_CDECL wcursyncup(/* WINDOW* */); -int PDC_CDECL wdelch( /* WINDOW* */ ); -int PDC_CDECL wdeleteln( /* WINDOW* */ ); -int PDC_CDECL werase( /* WINDOW* */ ); -int PDC_CDECL wgetch( /* WINDOW* */ ); -int PDC_CDECL wgetnstr( /* WINDOW*, char*, int */ ); -int PDC_CDECL wgetstr( /* WINDOW*, char* */ ); -int PDC_CDECL whline( /* WINDOW*, chtype, int */ ); -int PDC_CDECL winchnstr( /* WINDOW*, chtype*, int */ ); -int PDC_CDECL winnstr( /* WINDOW*, char*, int */ ); -int PDC_CDECL winsch( /* WINDOW*, chtype */ ); -int PDC_CDECL winsdelln( /* WINDOW*, int */ ); -int PDC_CDECL winsertln( /* WINDOW* */ ); -int PDC_CDECL winsnstr( /* WINDOW*, char*, int */ ); -int PDC_CDECL wmove( /* WINDOW*, int, int */ ); -int PDC_CDECL wnoutrefresh( /* WINDOW* */ ); -char PDC_CDECL wordchar( /* void */ ); -int PDC_CDECL wprintw( /* WINDOW*, char*,... */ ); -int PDC_CDECL wredrawln( /* WINDOW*, int ,int */ ); -int PDC_CDECL wrefresh( /* WINDOW* */ ); -int PDC_CDECL wscanw( /* WINDOW*, char*,... */ ); -int PDC_CDECL wscrl( /* WINDOW*, int */ ); -int PDC_CDECL wsetscrreg( /* WINDOW*, int, int */ ); -int PDC_CDECL wtimeout( /* WINDOW *, int */ ); -int PDC_CDECL wtouchln( /*WINDOW *, int, int, int*/ ); -void PDC_CDECL wsyncdown(/* WINDOW* */); -void PDC_CDECL wsyncup(/* WINDOW* */); -int PDC_CDECL wvline( /* WINDOW*, chtype, int */ ); +int PDC_CDECL typeahead Args(( int )); +char* PDC_CDECL unctrl Args(( chtype )); +int PDC_CDECL vline Args(( chtype, int )); +int PDC_CDECL waddchnstr Args(( WINDOW*, chtype*, int )); +int PDC_CDECL waddnstr Args(( WINDOW*, char*, int )); +int PDC_CDECL waddstr Args(( WINDOW*, char* )); +int PDC_CDECL wattroff Args(( WINDOW*, attr_t )); +int PDC_CDECL wattron Args(( WINDOW*, attr_t )); +int PDC_CDECL wattrset Args(( WINDOW*, attr_t )); +int PDC_CDECL wbkgd Args((WINDOW*, chtype)); +void PDC_CDECL wbkgdset Args((WINDOW*, chtype)); +int PDC_CDECL wborder Args(( WINDOW*, chtype, chtype, chtype, chtype, chtype, chtype, chtype, chtype )); +int PDC_CDECL wclear Args(( WINDOW* )); +int PDC_CDECL wclrtobot Args(( WINDOW* )); +int PDC_CDECL wclrtoeol Args(( WINDOW* )); +void PDC_CDECL wcursyncup Args((WINDOW*)); +int PDC_CDECL wdelch Args(( WINDOW* )); +int PDC_CDECL wdeleteln Args(( WINDOW* )); +int PDC_CDECL werase Args(( WINDOW* )); +int PDC_CDECL wgetch Args(( WINDOW* )); +int PDC_CDECL wgetnstr Args(( WINDOW*, char*, int )); +int PDC_CDECL wgetstr Args(( WINDOW*, char* )); +int PDC_CDECL whline Args(( WINDOW*, chtype, int )); +int PDC_CDECL winchnstr Args(( WINDOW*, chtype*, int )); +int PDC_CDECL winnstr Args(( WINDOW*, char*, int )); +int PDC_CDECL winsch Args(( WINDOW*, chtype )); +int PDC_CDECL winsdelln Args(( WINDOW*, int )); +int PDC_CDECL winsertln Args(( WINDOW* )); +int PDC_CDECL winsnstr Args(( WINDOW*, char*, int )); +int PDC_CDECL wmove Args(( WINDOW*, int, int )); +int PDC_CDECL wnoutrefresh Args(( WINDOW* )); +char PDC_CDECL wordchar Args(( void )); +#ifdef HAVE_STDARG_H +int PDC_CDECL wprintw Args(( WINDOW*, char*,... )); +int PDC_CDECL wscanw Args(( WINDOW*, char*,... )); +#endif +int PDC_CDECL wredrawln Args(( WINDOW*, int ,int )); +int PDC_CDECL wrefresh Args(( WINDOW* )); +int PDC_CDECL wscrl Args(( WINDOW*, int )); +int PDC_CDECL wsetscrreg Args(( WINDOW*, int, int )); +int PDC_CDECL wtimeout Args(( WINDOW *, int )); +int PDC_CDECL wtouchln Args((WINDOW *, int, int, int)); +void PDC_CDECL wsyncdown Args((WINDOW*)); +void PDC_CDECL wsyncup Args((WINDOW*)); +int PDC_CDECL wvline Args(( WINDOW*, chtype, int )); #ifdef PDCURSES -int PDC_CDECL raw_output( /* bool */ ); -int PDC_CDECL resize_term( /* int, int */ ); -WINDOW* PDC_CDECL resize_window( /* WINDOW*, int, int */ ); +int PDC_CDECL raw_output Args(( bool )); +int PDC_CDECL resize_term Args(( int, int )); +WINDOW* PDC_CDECL resize_window Args(( WINDOW*, int, int )); #endif #ifdef OBSOLETE_OR_TBD -char PDC_CDECL breakchar( /* void */ ); -int PDC_CDECL cursoff( /* void */ ); -int PDC_CDECL curson( /* void */ ); -int PDC_CDECL gettmode( /* void */ ); -int PDC_CDECL mvaddrawch( /* int, int, chtype */ ); -int PDC_CDECL mvaddrawstr( /* int, int, char* */ ); -int PDC_CDECL mvwinsrawch( /* WINDOW*, int, int, chtype */ ); -int PDC_CDECL mvinsrawch( /* int, int, chtype */ ); -int PDC_CDECL saveoldterm( /* void */ ); -int PDC_CDECL tabsize( /* int */ ); -int PDC_CDECL waddrawstr( /* WINDOW*, char* */ ); -int PDC_CDECL wtabsize( /* WINDOW*, int */ ); -int PDC_CDECL win_print( /* WINDOW*, int */ ); +char PDC_CDECL breakchar Args(( /* void */ )); +int PDC_CDECL cursoff Args(( /* void */ )); +int PDC_CDECL curson Args(( /* void */ )); +int PDC_CDECL gettmode Args(( /* void */ )); +int PDC_CDECL mvaddrawch Args(( /* int, int, chtype */ )); +int PDC_CDECL mvaddrawstr Args(( /* int, int, char* */ )); +int PDC_CDECL mvwinsrawch Args(( /* WINDOW*, int, int, chtype */ )); +int PDC_CDECL mvinsrawch Args(( /* int, int, chtype */ )); +int PDC_CDECL saveoldterm Args(( /* void */ )); +int PDC_CDECL tabsize Args(( /* int */ )); +int PDC_CDECL waddrawstr Args(( /* WINDOW*, char* */ )); +int PDC_CDECL wtabsize Args(( /* WINDOW*, int */ )); +int PDC_CDECL win_print Args(( /* WINDOW*, int */ )); #endif #ifdef XCURSES -void XCursesExit(/* void */); -int nocbreak( /* void */ ); -int cbreak( /* void */ ); -int nocrmode( /* void */ ); -int crmode( /* void */ ); -int noecho( /* void */ ); -int echo( /* void */ ); -int nodelay( /* WINDOW *,bool */ ); +void PDC_CDECL XCursesExit Args(( void )); +int PDC_CDECL nocbreak Args(( void )); +int PDC_CDECL cbreak Args(( void )); +int PDC_CDECL nocrmode Args(( void )); +int PDC_CDECL crmode Args(( void )); +int PDC_CDECL noecho Args(( void )); +int PDC_CDECL echo Args(( void )); +int PDC_CDECL nodelay Args(( WINDOW *,bool )); #endif -int PDC_CDECL mouse_set( /* long */ ); -int PDC_CDECL mouse_on( /* long */ ); -int PDC_CDECL mouse_off( /* long */ ); -int PDC_CDECL request_mouse_pos( /* void */ ); -int PDC_CDECL map_button( /* unsigned long */ ); -void PDC_CDECL wmouse_position( /* WINDOW *, int *, int * */ ); -unsigned long PDC_CDECL getmouse( /* void */ ); -unsigned long PDC_CDECL getbmap( /* void */ ); +int PDC_CDECL mouse_set Args(( unsigned long )); +int PDC_CDECL mouse_on Args(( unsigned long )); +int PDC_CDECL mouse_off Args(( unsigned long )); +int PDC_CDECL request_mouse_pos Args(( void )); +int PDC_CDECL map_button Args(( unsigned long )); +void PDC_CDECL wmouse_position Args(( WINDOW *, int *, int * )); +unsigned long PDC_CDECL getmouse Args(( void )); +unsigned long PDC_CDECL getbmap Args(( void )); /* * Keep the compiler happy with our macros below... */ -int PDC_CDECL PDC_chadd( /* WINDOW*, chtype, bool, bool */ ); -int PDC_CDECL PDC_chins( /* WINDOW*, chtype, bool */ ); -int PDC_CDECL PDC_ungetch( /* int */ ); +int PDC_CDECL PDC_chadd Args(( WINDOW*, chtype, bool, bool )); +int PDC_CDECL PDC_chins Args(( WINDOW*, chtype, bool )); +int PDC_CDECL PDC_ungetch Args(( int )); -void PDC_CDECL PDC_set_title( /* char * */ ); -int PDC_CDECL PDC_getclipboard( /* char **, long * */ ); -int PDC_CDECL PDC_setclipboard( /* char *, long */ ); -int PDC_CDECL PDC_clearclipboard( /* void */ ); +void PDC_CDECL PDC_set_title Args(( char * )); -unsigned long PDC_CDECL PDC_get_input_fd( /* void */ ); -int PDC_CDECL PDC_curs_set( /* int */ ); -unsigned long PDC_CDECL PDC_get_key_modifiers( /* void */ ); +int PDC_CDECL PDC_getclipboard Args(( char **, long * )); +int PDC_CDECL PDC_setclipboard Args(( char *, long )); +int PDC_CDECL PDC_freeclipboard Args(( char * )); +int PDC_CDECL PDC_clearclipboard Args(( void )); -int PDC_CDECL PDC_wunderline( /* WINDOW*, int, bool */ ); -int PDC_CDECL PDC_wleftline( /* WINDOW*, int, bool */ ); -int PDC_CDECL PDC_wrightline( /* WINDOW*, int, bool */ ); -int PDC_CDECL PDC_set_line_color( /* short */ ); +unsigned long PDC_CDECL PDC_get_input_fd Args(( void )); +int PDC_CDECL PDC_curs_set Args(( int )); +unsigned long PDC_CDECL PDC_get_key_modifiers Args(( void )); -#endif +int PDC_CDECL PDC_wunderline Args(( WINDOW*, int, bool )); +int PDC_CDECL PDC_wleftline Args(( WINDOW*, int, bool )); +int PDC_CDECL PDC_wrightline Args(( WINDOW*, int, bool )); +int PDC_CDECL PDC_set_line_color Args(( short )); +#undef Args #ifndef max # define max(a,b) (((a) > (b)) ? (a) : (b)) diff --git a/curspriv.h b/curspriv.h index 4d424487..9b7b11b3 100644 --- a/curspriv.h +++ b/curspriv.h @@ -18,7 +18,7 @@ *************************************************************************** */ /* -$Id: curspriv.h,v 1.5 2002/11/27 11:14:27 mark Exp $ +$Id: curspriv.h,v 1.6 2004/01/02 05:50:05 mark Exp $ */ /* * @@ -118,14 +118,14 @@ $Id: curspriv.h,v 1.5 2002/11/27 11:14:27 mark Exp $ typedef union REGS Regs; # endif extern Regs regs; -# ifdef GO32 /* Note: works only in plain DOS... */ +# ifdef __DJGPP__ /* Note: works only in plain DOS... */ # if DJGPP == 2 # define _FAR_POINTER(s,o) ((((int)(s))<<4) + ((int)(o))) # else # define _FAR_POINTER(s,o) (0xe0000000 + (((int)(s))<<4) + ((int)(o))) # endif -# define _FP_SEGMENT(p) (unsigned short)((((long)fp) >> 4) & 0xffff) -# define _FP_OFFSET(p) ((unsigned short)fp & 0x000f) +# define _FP_SEGMENT(p) (unsigned short)((((long)p) >> 4) & 0xffff) +# define _FP_OFFSET(p) ((unsigned short)p & 0x000f) # else # ifdef __TURBOC__ # define _FAR_POINTER(s,o) MK_FP(s,o) @@ -140,27 +140,26 @@ $Id: curspriv.h,v 1.5 2002/11/27 11:14:27 mark Exp $ # endif # endif # endif -# define _FP_SEGMENT(p) (unsigned short)(((long)fp) >> 4) -# define _FP_OFFSET(p) ((unsigned short)fp & 0x000f) +# define _FP_SEGMENT(p) (unsigned short)(((long)p) >> 4) +# define _FP_OFFSET(p) ((unsigned short)p & 0x000f) # endif -# ifdef GO32 +# ifdef __DJGPP__ unsigned char getdosmembyte (int offs); /* see: private\_dosmem.c */ unsigned short getdosmemword (int offs); void setdosmembyte (int offs, unsigned char b); void setdosmemword (int offs, unsigned short w); # else -# if SMALL || MEDIUM || MSC -# define getdosmembyte(offs) (*((unsigned char far *) _FAR_POINTER(0,offs))) -# define getdosmemword(offs) (*((unsigned short far *) _FAR_POINTER(0,offs))) -# define setdosmembyte(offs,x) (*((unsigned char far *) _FAR_POINTER(0,offs)) = (x)) -# define setdosmemword(offs,x) (*((unsigned short far *) _FAR_POINTER(0,offs)) = (x)) +# if SMALL || MEDIUM || MSC || PC +# define PDC_FAR far # else -# define getdosmembyte(offs) (*((unsigned char *) _FAR_POINTER(0,offs))) -# define getdosmemword(offs) (*((unsigned short *) _FAR_POINTER(0,offs))) -# define setdosmembyte(offs,x) (*((unsigned char *) _FAR_POINTER(0,offs)) = (x)) -# define setdosmemword(offs,x) (*((unsigned short *) _FAR_POINTER(0,offs)) = (x)) +# define PDC_FAR # endif +# define getdosmembyte(offs) (*((unsigned char PDC_FAR *) _FAR_POINTER(0,offs))) +# define getdosmemword(offs) (*((unsigned short PDC_FAR *) _FAR_POINTER(0,offs))) +# define setdosmembyte(offs,x) (*((unsigned char PDC_FAR *) _FAR_POINTER(0,offs)) = (x)) +# define setdosmemword(offs,x) (*((unsigned short PDC_FAR *) _FAR_POINTER(0,offs)) = (x)) +# under PDC_FAR # endif #endif @@ -281,255 +280,143 @@ extern WINDOW* twin; /* used by many routines */ * compilation definitions above define HAVE_PROTO if your compiler * supports prototypes. */ -#ifdef HAVE_PROTO -void PDC_beep( void ); -int PDC_backchar( WINDOW*, char*, int* ); -bool PDC_breakout( void ); -int PDC_chadd( WINDOW*, chtype, bool, bool ); -bool PDC_check_bios_key( void ); -int PDC_chg_attr( WINDOW*, chtype, int, int, int, int ); -int PDC_chins( WINDOW*, chtype, bool ); -int PDC_clr_scrn( WINDOW* ); -int PDC_clr_update( WINDOW* ); -int PDC_copy_win( WINDOW *,WINDOW *,int,int,int,int,int,int,int,int,bool ); -int PDC_cursor_off( void ); -int PDC_cursor_on( void ); -int PDC_curs_set( int ); -int PDC_fix_cursor( int ); -int PDC_gattr( void ); -int PDC_get_bios_key( void ); -int PDC_get_columns( void ); -bool PDC_get_ctrl_break( void ); -int PDC_get_cur_col( void ); -int PDC_get_cur_row( void ); -int PDC_get_cursor_pos( int*, int* ); -int PDC_get_cursor_mode( void ); -int PDC_get_font( void ); -int PDC_get_rows( void ); -int PDC_get_buffer_rows( void ); -int PDC_gotoxy( int, int ); -int PDC_init_atrtab(void); -WINDOW* PDC_makenew( int, int, int, int ); -int PDC_mouse_in_slk( int, int ); -int PDC_newline( WINDOW*, int ); -int PDC_print( int, int, int ); -int PDC_putc( chtype, chtype ); -int PDC_putchar( chtype ); -int PDC_putctty( chtype, chtype ); -int PDC_rawgetch( void ); -int PDC_reset_prog_mode( void ); -int PDC_reset_shell_mode( void ); -int PDC_resize_screen( int, int ); -int PDC_sanity_check( int ); -int PDC_scr_close( void ); -int PDC_scr_open( SCREEN*, bool ); -int PDC_scroll( int, int, int, int, int, chtype ); -int PDC_set_80x25( void ); -int PDC_set_ctrl_break( bool ); -int PDC_set_cursor_mode( int, int ); -int PDC_set_font( int ); -int PDC_set_rows( int ); -int PDC_split_plane( WINDOW*, char*, char*, int, int, int, int ); -void PDC_sync( WINDOW * ); -int PDC_sysgetch( void ); -bool PDC_transform_line( int ); -void PDC_usleep( long ); -int PDC_validchar( int ); -int PDC_vsscanf( char *, const char *, va_list); +#ifdef HAVE_PROTO +# define Args(x) x +#else +# define Args(x) () +#endif -void PDC_slk_calc( void ); +void PDC_beep Args(( void )); +int PDC_backchar Args(( WINDOW*, char*, int* )); +bool PDC_breakout Args(( void )); +int PDC_chadd Args(( WINDOW*, chtype, bool, bool )); +bool PDC_check_bios_key Args(( void )); +int PDC_chg_attr Args(( WINDOW*, chtype, int, int, int, int )); +int PDC_chins Args(( WINDOW*, chtype, bool )); +int PDC_clr_scrn Args(( WINDOW* )); +int PDC_clr_update Args(( WINDOW* )); +int PDC_copy_win Args(( WINDOW *,WINDOW *,int,int,int,int,int,int,int,int,bool )); +int PDC_cursor_off Args(( void )); +int PDC_cursor_on Args(( void )); +int PDC_curs_set Args(( int )); +int PDC_fix_cursor Args(( int )); +int PDC_gattr Args(( void )); +int PDC_get_bios_key Args(( void )); +int PDC_get_columns Args(( void )); +bool PDC_get_ctrl_break Args(( void )); +int PDC_get_cur_col Args(( void )); +int PDC_get_cur_row Args(( void )); +int PDC_get_cursor_pos Args(( int*, int* )); +int PDC_get_cursor_mode Args(( void )); +int PDC_get_font Args(( void )); +int PDC_get_rows Args(( void )); +int PDC_get_buffer_rows Args(( void )); +int PDC_gotoxy Args(( int, int )); +int PDC_init_atrtab Args((void)); +WINDOW* PDC_makenew Args(( int, int, int, int )); +int PDC_mouse_in_slk Args(( int, int )); +int PDC_newline Args(( WINDOW*, int )); +int PDC_print Args(( int, int, int )); +int PDC_putc Args(( chtype, chtype )); +int PDC_putchar Args(( chtype )); +int PDC_putctty Args(( chtype, chtype )); +int PDC_rawgetch Args(( void )); +int PDC_reset_prog_mode Args(( void )); +int PDC_reset_shell_mode Args(( void )); +int PDC_resize_screen Args(( int, int )); +int PDC_sanity_check Args(( int )); +int PDC_scr_close Args(( void )); +int PDC_scr_open Args(( SCREEN*, bool )); +int PDC_scroll Args(( int, int, int, int, int, chtype )); +int PDC_set_80x25 Args(( void )); +int PDC_set_ctrl_break Args(( bool )); +int PDC_set_cursor_mode Args(( int, int )); +int PDC_set_font Args(( int )); +int PDC_set_rows Args(( int )); +int PDC_split_plane Args(( WINDOW*, char*, char*, int, int, int, int )); +void PDC_sync Args(( WINDOW * )); +int PDC_sysgetch Args(( void )); +bool PDC_transform_line Args(( int )); +void PDC_usleep Args(( long )); +int PDC_validchar Args(( int )); +int PDC_vsscanf Args(( char *, const char *, va_list)); + +void PDC_slk_calc Args(( void )); # if defined( OS2 ) && !defined( EMXVIDEO ) -int PDC_set_scrn_mode( VIOMODEINFO); -bool PDC_scrn_modes_equal (VIOMODEINFO, VIOMODEINFO); -int PDC_get_scrn_mode( VIOMODEINFO *); -int PDC_query_adapter_type( VIOCONFIGINFO * ); -int PDC_get_keyboard_info( KBDINFO * ); -int PDC_set_keyboard_binary( void ); -int PDC_set_keyboard_default( void ); -int PDC_reset_shell_mode( void ); -int PDC_reset_prog_mode( void ); +int PDC_set_scrn_mode Args(( VIOMODEINFO)); +bool PDC_scrn_modes_equal Args((VIOMODEINFO, VIOMODEINFO)); +int PDC_get_scrn_mode Args(( VIOMODEINFO *)); +int PDC_query_adapter_type Args(( VIOCONFIGINFO * )); +int PDC_get_keyboard_info Args(( KBDINFO * )); +int PDC_set_keyboard_binary Args(( void )); +int PDC_set_keyboard_default Args(( void )); +int PDC_reset_shell_mode Args(( void )); +int PDC_reset_prog_mode Args(( void )); # else -int PDC_set_scrn_mode( int ); -bool PDC_scrn_modes_equal (int, int); -int PDC_get_scrn_mode( void ); -int PDC_query_adapter_type( void ); +int PDC_set_scrn_mode Args(( int )); +bool PDC_scrn_modes_equal Args((int, int)); +int PDC_get_scrn_mode Args(( void )); +int PDC_query_adapter_type Args(( void )); # endif # ifdef FLEXOS -int PDC_flexos_8bitmode( void ); -int PDC_flexos_16bitmode( void ); -char* PDC_flexos_gname( void ); +int PDC_flexos_8bitmode Args(( void )); +int PDC_flexos_16bitmode Args(( void )); +char* PDC_flexos_gname Args(( void )); # endif # ifdef UNIX -int PDC_kbhit(void); -int PDC_setup_keys(void); +int PDC_kbhit Args((void)); +int PDC_setup_keys Args((void)); # endif # ifdef WIN32 -void PDC_doupdate(void); +void PDC_doupdate Args((void)); # endif # if defined (XCURSES) -int XCurses_redraw_curscr(void); -int XCurses_display_cursor(int,int,int,int,int); -int XCurses_rawgetch(int); -bool XCurses_kbhit(void); -int XCurses_get_input_fd(void); -int XCursesInstruct(int); -int XCursesInstructAndWait(int); -int XCurses_transform_line(chtype*, int , int , int ); -int XCursesInitscr(char *,int, char **); -int XCursesEndwin(void); -void XCursesCleanupCursesProcess(int); -int XCursesResizeScreen( int, int ); -int XCurses_get_cols(void); -int XCurses_get_rows(void); -int XCurses_refresh_scrollbar(void); -void XCurses_set_title(char *); -int XCurses_getclipboard( char **, long * ); -int XCurses_setclipboard( char *, long ); -int XCurses_clearclipboard( void ); -unsigned long XCurses_get_key_modifiers( void ); +int XCurses_redraw_curscr Args((void)); +int XCurses_display_cursor Args((int,int,int,int,int)); +int XCurses_rawgetch Args((int)); +bool XCurses_kbhit Args((void)); +int XCurses_get_input_fd Args((void)); +int XCursesInstruct Args((int)); +int XCursesInstructAndWait Args((int)); +int XCurses_transform_line Args((chtype*, int , int , int )); +int XCursesInitscr Args((char *,int, char **)); +int XCursesEndwin Args((void)); +void XCursesCleanupCursesProcess Args((int)); +int XCursesResizeScreen Args(( int, int )); +int XCurses_get_cols Args((void)); +int XCurses_get_rows Args((void)); +int XCurses_refresh_scrollbar Args((void)); +void XCurses_set_title Args((char *)); +int XCurses_getclipboard Args(( char **, long * )); +int XCurses_setclipboard Args(( char *, long )); +int XCurses_clearclipboard Args(( void )); +unsigned long XCurses_get_key_modifiers Args(( void )); # endif -# ifdef PDCDEBUG -void PDC_debug( char*,... ); -# endif - -# ifdef REGISTERWINDOWS -bool PDC_inswin( WINDOW*, WINDOW* ); -int PDC_addtail( WINDOW* ); -int PDC_addwin( WINDOW*, WINDOW* ); -int PDC_rmwin( WINDOW* ); -WINDS* PDC_findwin( WINDOW* ); -# endif - -#else - -void PDC_beep( /* void */ ); -int PDC_backchar( /* WINDOW*, char*, int* */ ); -bool PDC_breakout( /* void */ ); -int PDC_chadd( /* WINDOW*, chtype, bool, bool */ ); -bool PDC_check_bios_key( /* void */ ); -int PDC_chg_attr( /* WINDOW*, chtype, int, int, int, int */ ); -int PDC_chins( /* WINDOW*, chtype, bool */ ); -int PDC_clr_scrn( /* WINDOW* */ ); -int PDC_clr_update( /* WINDOW* */ ); -int PDC_copy_win( /* WINDOW *,WINDOW *,int,int,int,int,int,int,int,int,bool */ ); -int PDC_cursor_off( /* void */ ); -int PDC_cursor_on( /* void */ ); -int PDC_curs_set( /* int */ ); -int PDC_fix_cursor( /* int */ ); -int PDC_gattr( /* void */ ); -int PDC_get_bios_key( /* void */ ); -int PDC_get_columns( /* void */ ); -bool PDC_get_ctrl_break( /* void */ ); -int PDC_get_cur_col( /* void */ ); -int PDC_get_cur_row( /* void */ ); -int PDC_get_cursor_pos( /* int*, int* */ ); -int PDC_get_cursor_mode( /* void */ ); -int PDC_get_font( /* void */ ); -int PDC_get_rows( /* void */ ); -int PDC_get_buffer_rows( /* void */ ); -int PDC_gotoxy( /* int, int */ ); -int PDC_init_atrtab( /*void*/ ); -WINDOW* PDC_makenew( /* int, int, int, int */ ); -int PDC_mouse_in_slk(/* int, int */ ); -int PDC_newline( /* WINDOW*, int */ ); -int PDC_print( /* int, int, int */ ); -int PDC_putc( /* chtype, chtype */ ); -int PDC_putchar( /* chtype */ ); -int PDC_putctty( /* chtype, chtype */ ); -int PDC_rawgetch( /* void */ ); -int PDC_reset_prog_mode( /* void */ ); -int PDC_reset_shell_mode( /* void */ ); -int PDC_resize_screen( /* int, int */ ); -int PDC_sanity_check( /* int */ ); -int PDC_scr_close( /* void */ ); -int PDC_scr_open( /* SCREEN*, bool */ ); -int PDC_scroll( /* int, int, int, int, int, chtype */ ); -int PDC_set_80x25( /* void */ ); -int PDC_set_ctrl_break( /* bool */ ); -int PDC_set_cursor_mode( /* int, int */ ); -int PDC_set_font( /* int */ ); -int PDC_set_rows( /* int */ ); -int PDC_split_plane( /* WINDOW*, char*, char*, int, int, int, int */ ); -void PDC_sync( /* WINDOW * */ ); -int PDC_sysgetch( /* void */ ); -bool PDC_transform_line( /* int */ ); -void PDC_usleep( /* long */ ); -int PDC_validchar( /* int */ ); -int PDC_vsscanf( /* char *, const char *, ... */); - -void PDC_slk_calc( /* void */ ); - - -# if defined( OS2 ) && !defined( EMXVIDEO ) -int PDC_set_scrn_mode( /* VIOMODEINFO*/ ); -bool PDC_scrn_modes_equal ( /*VIOMODEINFO, VIOMODEINFO*/ ); -int PDC_get_scrn_mode( /* VIOMODEINFO * */ ); -int PDC_query_adapter_type( /* VIOCONFIGINFO * */ ); -# else -int PDC_set_scrn_mode( /* int */ ); -bool PDC_scrn_modes_equal ( /*int, int*/ ); -int PDC_get_scrn_mode( /* void */ ); -int PDC_query_adapter_type( /* void */ ); -# endif - -# ifdef FLEXOS -int PDC_flexos_8bitmode( /* void */ ); -int PDC_flexos_16bitmode( /* void */ ); -char* PDC_flexos_gname( /* void */ ); -# endif - -# ifdef UNIX -int PDC_kbhit( /*void*/ ); -int PDC_setup_keys( /*void*/ ); -# endif - -# ifdef WIN32 -void PDC_doupdate( /*void*/ ); -# endif - -# if defined ( XCURSES ) -int XCurses_redraw_curscr( /*void*/ ); -int XCurses_display_cursor( /*int,int,int,int,int*/ ); -int XCurses_rawgetch( /*int*/ ); -bool XCurses_kbhit( /*void*/ ); -int XCurses_get_input_fd( /*void*/ ); -int XCursesInstruct( /*int*/ ); -int XCursesInstructAndWait( /*void*/ ); -int XCurses_transform_line( /*chtype*, int , int , int */ ); -int XCursesInitscr( /* char *, int, char ** */ ); -int XCursesEndwin( /*void*/ ); -void XCursesCleanupCursesProcess(/* int */); -int XCursesResizeScreen( /* int, int */ ); -int XCurses_get_cols(/* void */); -int XCurses_get_rows(/* void */); -int XCurses_refresh_scrollbar( /* void */ ); -void XCurses_set_title(/* char * */ ); -int XCurses_getclipboard( /* char **, long * */ ); -int XCurses_setclipboard( /* char *, long */ ); -int XCurses_clearclipboard( /* void */ ); -unsigned long XCurses_get_key_modifiers( /* void */ ); -# endif - -# ifdef PDCDEBUG -void PDC_debug( /* char*,... */ ); -# endif - -# ifdef REGISTERWINDOWS -bool PDC_inswin( /* WINDOW*, WINDOW* */ ); -int PDC_addtail( /* WINDOW* */ ); -int PDC_addwin( /* WINDOW*, WINDOW* */ ); -int PDC_rmwin( /* WINDOW* */ ); -WINDS* PDC_findwin( /* WINDOW* */ ); -# endif +#ifdef PC +void movedata Args(((unsigned, unsigned, unsigned, unsigned, unsigned)); #endif +# ifdef PDCDEBUG +void PDC_debug Args(( char*,... )); +# endif + +# ifdef REGISTERWINDOWS +bool PDC_inswin Args(( WINDOW*, WINDOW* )); +int PDC_addtail Args(( WINDOW* )); +int PDC_addwin Args(( WINDOW*, WINDOW* )); +int PDC_rmwin Args(( WINDOW* )); +WINDS* PDC_findwin Args(( WINDOW* )); +# endif + +#undef Args + #define PDC_COLORS 8 #define PDC_COLOR_PAIRS 64 diff --git a/demos/firework.c b/demos/firework.c index 42eb8fb5..bf9d30f3 100644 --- a/demos/firework.c +++ b/demos/firework.c @@ -35,12 +35,20 @@ #endif #ifdef PDCDEBUG -char *rcsid_firework = "$Id: firework.c,v 1.2 2003/06/23 07:55:00 mark Exp $"; +char *rcsid_firework = "$Id: firework.c,v 1.3 2004/01/02 05:50:05 mark Exp $"; #endif -void myrefresh(); -int get_colour(); -void explode(); +#if __STDC__ +# define Args(x) x +#else +# define Args(x) () +#endif + +int myrefresh Args((void)); +chtype get_colour Args((void)); +void explode Args((int,int)); + +#undef Args int main() { @@ -55,38 +63,38 @@ int main() srand(seed); flag = 0; while(getch() == ERR) /* loop until a key is hit */ + { + do { + start = rand() % (COLS -3); + end = rand() % (COLS - 3); + start = (start < 2) ? 2 : start; + end = (end < 2) ? 2 : end; + direction = (start > end) ? -1 : 1; + diff = abs(start-end); + } while (diff<2 || diff>=LINES-2); + attrset(A_NORMAL); + for (row=0;row end) ? -1 : 1; - diff = abs(start-end); - } while (diff<2 || diff>=LINES-2); - attrset(A_NORMAL); - for (row=0;row 1) + if (rand() % 2) attr |= A_BOLD; return(attr); } diff --git a/demos/newdemo.c b/demos/newdemo.c index b9954f00..726d7ebb 100644 --- a/demos/newdemo.c +++ b/demos/newdemo.c @@ -44,9 +44,22 @@ #endif #ifdef PDCDEBUG -char *rcsid_newdemo = "$Id: newdemo.c,v 1.2 2003/06/23 07:55:01 mark Exp $"; +char *rcsid_newdemo = "$Id: newdemo.c,v 1.3 2004/01/02 05:50:05 mark Exp $"; #endif +#if __STDC__ +#define Args(x) x +#else +#define Args(x) () +#endif + +int WaitForUser Args((void)); +int SubWinTest Args((WINDOW *)); +int BouncingBalls Args((WINDOW *)); +void trap Args((int)); + +#undef Args + /* * The Australian map */ @@ -87,32 +100,32 @@ char *messages[] = */ int WaitForUser() { - time_t t; - chtype ch; + time_t t; + chtype ch; - nodelay(stdscr,TRUE); - t = time((time_t *)0); - while(1) + nodelay(stdscr,TRUE); + t = time((time_t *)0); + while(1) + { + if ((ch = getch()) != ERR) { - if ((ch = getch()) != ERR) - { - if (ch == '\033') - { - nodelay(stdscr, FALSE); - return ch; - } - else - { - nodelay(stdscr, FALSE); - return 0; - } - } - if (time((time_t *)0) - t > 5) + if (ch == '\033') { - nodelay(stdscr, FALSE); - return 0; + nodelay(stdscr, FALSE); + return ch; + } + else + { + nodelay(stdscr, FALSE); + return 0; } } + if (time((time_t *)0) - t > 5) + { + nodelay(stdscr, FALSE); + return 0; + } + } } /* @@ -121,46 +134,46 @@ int WaitForUser() int SubWinTest(win) WINDOW *win; { -int w, h, sw, sh, bx, by; -WINDOW *swin1, *swin2, *swin3; + int w, h, sw, sh, bx, by; + WINDOW *swin1, *swin2, *swin3; - wattrset(win, 0); - w = win->_maxx; - h = win->_maxy; - bx = win->_begx; - by = win->_begy; - sw = w / 3; - sh = h / 3; - if((swin1 = derwin(win, sh, sw, 3, 5)) == NULL) - return 1; - if((swin2 = subwin(win, sh, sw, by+4, bx+8)) == NULL) - return 1; - if((swin3 = subwin(win, sh, sw, by+5, bx+11)) == NULL) - return 1; + wattrset(win, 0); + w = win->_maxx; + h = win->_maxy; + bx = win->_begx; + by = win->_begy; + sw = w / 3; + sh = h / 3; + if ((swin1 = derwin(win, sh, sw, 3, 5)) == NULL) + return 1; + if ((swin2 = subwin(win, sh, sw, by+4, bx+8)) == NULL) + return 1; + if ((swin3 = subwin(win, sh, sw, by+5, bx+11)) == NULL) + return 1; - init_pair(8,COLOR_RED,COLOR_BLUE); - wbkgd(swin1, COLOR_PAIR(8)); - werase(swin1); - mvwaddstr(swin1, 0, 3, "Sub-window 1"); - wrefresh(swin1); + init_pair(8,COLOR_RED,COLOR_BLUE); + wbkgd(swin1, COLOR_PAIR(8)); + werase(swin1); + mvwaddstr(swin1, 0, 3, "Sub-window 1"); + wrefresh(swin1); - init_pair(9,COLOR_CYAN,COLOR_MAGENTA); - wbkgd(swin2, COLOR_PAIR(9)); - werase(swin2); - mvwaddstr(swin2, 0, 3, "Sub-window 2"); - wrefresh(swin2); + init_pair(9,COLOR_CYAN,COLOR_MAGENTA); + wbkgd(swin2, COLOR_PAIR(9)); + werase(swin2); + mvwaddstr(swin2, 0, 3, "Sub-window 2"); + wrefresh(swin2); - init_pair(10,COLOR_YELLOW,COLOR_GREEN); - wbkgd(swin3, COLOR_PAIR(10)); - werase(swin3); - mvwaddstr(swin3, 0, 3, "Sub-window 3"); - wrefresh(swin3); + init_pair(10,COLOR_YELLOW,COLOR_GREEN); + wbkgd(swin3, COLOR_PAIR(10)); + werase(swin3); + mvwaddstr(swin3, 0, 3, "Sub-window 3"); + wrefresh(swin3); - delwin(swin1); - delwin(swin2); - delwin(swin3); - WaitForUser(); - return 0; + delwin(swin1); + delwin(swin2); + delwin(swin3); + WaitForUser(); + return 0; } /* @@ -169,83 +182,86 @@ WINDOW *swin1, *swin2, *swin3; int BouncingBalls(win) WINDOW *win; { -chtype c1, c2, c3; -int w, h; -int x1, y1, xd1, yd1; -int x2, y2, xd2, yd2; -int x3, y3, xd3, yd3; -int c; + chtype c1, c2, c3; + int w, h; + int x1, y1, xd1, yd1; + int x2, y2, xd2, yd2; + int x3, y3, xd3, yd3; + int c; #if defined(PDCURSES) - curs_set(0); + curs_set(0); #endif - wbkgd( win, COLOR_PAIR(1) ); - wrefresh(win); + wbkgd( win, COLOR_PAIR(1) ); + wrefresh(win); - w = win->_maxx; - h = win->_maxy; - x1 = 2 + rand() % (w - 4); - y1 = 2 + rand() % (h - 4); - x2 = 2 + rand() % (w - 4); - y2 = 2 + rand() % (h - 4); - x3 = 2 + rand() % (w - 4); - y3 = 2 + rand() % (h - 4); - xd1 = +1; yd1 = +1; - xd2 = +1; yd2 = -1; - xd3 = -1; yd3 = +1; - nodelay(stdscr,TRUE); - while((c = getch()) == ERR) - { x1 = x1 + xd1; - if(x1 <= 1 || x1 >= w - 2) - xd1 = -xd1; - y1 = y1 + yd1; - if(y1 <= 1 || y1 >= h - 2) - yd1 = -yd1; + w = win->_maxx; + h = win->_maxy; + x1 = 2 + rand() % (w - 4); + y1 = 2 + rand() % (h - 4); + x2 = 2 + rand() % (w - 4); + y2 = 2 + rand() % (h - 4); + x3 = 2 + rand() % (w - 4); + y3 = 2 + rand() % (h - 4); + xd1 = 1; + yd1 = 1; + xd2 = 1; + yd2 = 0; + xd3 = 0; + yd3 = 1; + nodelay(stdscr,TRUE); + while((c = getch()) == ERR) + { + x1 = xd1 > 0 ? ++x1 : --x1; + if (x1 <= 1 || x1 >= w - 2) + xd1 = xd1 ? 0 : 1; + y1 = yd1 > 0 ? ++y1 : --y1; + if (y1 <= 1 || y1 >= h - 2) + yd1 = yd1 ? 0 : 1; + x2 = xd2 > 0 ? ++x2 : --x2; + if (x2 <= 1 || x2 >= w - 2) + xd2 = xd2 ? 0 : 1; + y2 = yd2 > 0 ? ++y2 : --y2; + if (y2 <= 1 || y2 >= h - 2) + yd2 = yd2 ? 0 : 1; + x3 = xd3 > 0 ? ++x3 : --x3; + if (x3 <= 1 || x3 >= w - 2) + xd3 = xd3 ? 0 : 1; + y3 = yd3 > 0 ? ++y3 : --y3; + if (y3 <= 1 || y3 >= h - 2) + yd3 = yd3 ? 0 : 1; - x2 = x2 + xd2; - if(x2 <= 1 || x2 >= w - 2) - xd2 = -xd2; - y2 = y2 + yd2; - if(y2 <= 1 || y2 >= h - 2) - yd2 = -yd2; + c1 = mvwinch(win, y1, x1); + c2 = mvwinch(win, y2, x2); + c3 = mvwinch(win, y3, x3); - x3 = x3 + xd3; - if(x3 <= 1 || x3 >= w - 2) - xd3 = -xd3; - y3 = y3 + yd3; - if(y3 <= 1 || y3 >= h - 2) - yd3 = -yd3; - - c1 = mvwinch(win, y1, x1); - c2 = mvwinch(win, y2, x2); - c3 = mvwinch(win, y3, x3); - - init_pair(8,COLOR_RED,COLOR_GREEN); - wattrset(win, COLOR_PAIR(8)); - mvwaddch(win, y1, x1, 'O'); - init_pair(9,COLOR_BLUE,COLOR_RED); - wattrset(win, COLOR_PAIR(9)); - mvwaddch(win, y2, x2, '*'); - init_pair(10,COLOR_YELLOW,COLOR_WHITE); - wattrset(win, COLOR_PAIR(10)); - mvwaddch(win, y3, x3, '@'); - wmove(win, 0, 0); - wrefresh(win); - wattrset(win,0); - mvwaddch(win, y1, x1, c1); - mvwaddch(win, y2, x2, c2); - mvwaddch(win, y3, x3, c3); - napms(150); - } - nodelay(stdscr,FALSE); - ungetch(c); - return 0; + init_pair(8,COLOR_RED,COLOR_GREEN); + wattrset(win, COLOR_PAIR(8)); + mvwaddch(win, y1, x1, 'O'); + init_pair(9,COLOR_BLUE,COLOR_RED); + wattrset(win, COLOR_PAIR(9)); + mvwaddch(win, y2, x2, '*'); + init_pair(10,COLOR_YELLOW,COLOR_WHITE); + wattrset(win, COLOR_PAIR(10)); + mvwaddch(win, y3, x3, '@'); + wmove(win, 0, 0); + wrefresh(win); + wattrset(win,0); + mvwaddch(win, y1, x1, c1); + mvwaddch(win, y2, x2, c2); + mvwaddch(win, y3, x3, c3); + napms(150); + } + nodelay(stdscr,FALSE); + ungetch(c); + return 0; } /* * Trap interrupt */ -void trap() +void trap(sig) +int sig; { endwin(); #ifdef XCURSES @@ -269,167 +285,172 @@ void trap(); #ifdef PDCDEBUG /* traceon();*/ #endif - initscr(); - start_color(); - cbreak(); - noecho(); - curs_set(0); + initscr(); + start_color(); + cbreak(); + noecho(); + curs_set(0); #if !defined(TC) && !defined(OS2) - signal(SIGINT, trap); + signal(SIGINT, trap); #endif - noecho(); + noecho(); /* refresh stdscr so that reading from it will not cause it to overwrite */ /* the other windows that are being created */ - refresh(); + refresh(); - width = 48; - height = 15; /* Create a drawing window */ - win = newwin(height, width, (LINES-height)/2, (COLS-width)/2); - if(win == NULL) - { - endwin(); + width = 48; + height = 15; /* Create a drawing window */ + win = newwin(height, width, (LINES-height)/2, (COLS-width)/2); + if (win == NULL) + { + endwin(); #ifdef XCURSES - XCursesExit(); + XCursesExit(); #endif - return 1; - } + return 1; + } - while(TRUE) - { init_pair(1,COLOR_WHITE,COLOR_BLUE); + for( ;; ) + { + init_pair(1,COLOR_WHITE,COLOR_BLUE); /* wattrset(win, COLOR_PAIR(1));*/ - wbkgd(win, COLOR_PAIR(1)); - werase(win); + wbkgd(win, COLOR_PAIR(1)); + werase(win); - init_pair(2,COLOR_RED,COLOR_RED); - wattrset(win, COLOR_PAIR(2)); - ch = ' '; - box(win, ch, ch); - wrefresh(win); - wattrset(win, 0); - /* Do random output of a character */ - ch = 'a'; - nodelay(stdscr,TRUE); - for(i=0; i < 5000; ++i) - { x = rand() % (width-2) + 1; - y = rand() % (height-2) + 1; - mvwaddch(win, y, x, ch); - wrefresh(win); - if (getch() != ERR) - break; - if(i == 2000) - { ch = 'b'; - init_pair(3,COLOR_CYAN,COLOR_YELLOW); - wattron(win, COLOR_PAIR(3)); - } - } - nodelay(stdscr,FALSE); + init_pair(2,COLOR_RED,COLOR_RED); + wattrset(win, COLOR_PAIR(2)); + ch = ' '; + box(win, ch, ch); + wrefresh(win); + wattrset(win, 0); + /* Do random output of a character */ + ch = 'a'; + nodelay(stdscr,TRUE); + for(i=0; i < 5000; ++i) + { + x = rand() % (width-2) + 1; + y = rand() % (height-2) + 1; + mvwaddch(win, y, x, ch); + wrefresh(win); + if (getch() != ERR) + break; + if(i == 2000) + { + ch = 'b'; + init_pair(3,COLOR_CYAN,COLOR_YELLOW); + wattron(win, COLOR_PAIR(3)); + } + } + nodelay(stdscr,FALSE); - SubWinTest(win); - /* Erase and draw green window */ - init_pair(4,COLOR_YELLOW,COLOR_GREEN); + SubWinTest(win); + /* Erase and draw green window */ + init_pair(4,COLOR_YELLOW,COLOR_GREEN); /* wattrset(win, COLOR_PAIR(4) | A_BOLD);*/ - wbkgd(win, COLOR_PAIR(4) ); - wattrset(win, A_BOLD); - werase(win); - wrefresh(win); - /* Draw RED bounding box */ - wattrset(win, COLOR_PAIR(2)); - box(win, ' ', ' '); - wrefresh(win); - /* Display Australia map */ - wattrset(win, A_BOLD); - i = 0; - while(*AusMap[i]) - { mvwaddstr(win, i+1, 8, AusMap[i]); + wbkgd(win, COLOR_PAIR(4) ); + wattrset(win, A_BOLD); + werase(win); + wrefresh(win); + /* Draw RED bounding box */ + wattrset(win, COLOR_PAIR(2)); + box(win, ' ', ' '); + wrefresh(win); + /* Display Australia map */ + wattrset(win, A_BOLD); + i = 0; + while(*AusMap[i]) + { + mvwaddstr(win, i+1, 8, AusMap[i]); + wrefresh(win); + napms(100); + ++i; + } + + init_pair(5,COLOR_BLUE,COLOR_WHITE); + wattrset(win, COLOR_PAIR(5) | A_BLINK); + mvwaddstr(win, height-2, 3, " PDCurses 2.7 for DOS, OS/2, X11 and Win32"); + wrefresh(win); + + /* Draw running messages */ + init_pair(6,COLOR_BLACK,COLOR_WHITE); + wattrset(win, COLOR_PAIR(6)); + message = messages[0]; + len = strlen(message); + j = 0; + i = 2; + w = width-2; + nodelay(win,TRUE); + + /* jbuhler's re-hacked scrolling messages */ + for (j=0; messages[j] != NULL; j++) + { + char *message = messages[j]; + int msg_len = strlen(message); + int scroll_len = w + 2 * msg_len; + char *scrollbuf = malloc(scroll_len); + char *visbuf = scrollbuf + msg_len; + int stop = 0; + int i; + + for (i=w+msg_len; i > 0; i--) + { + memset(visbuf, ' ',w); + strncpy(scrollbuf + i, message, msg_len); + mvwaddnstr(win,height/2, 1, visbuf, w); wrefresh(win); - napms(100); - ++i; - } + if (wgetch(win) != ERR) + { + flushinp(); + stop = 1; + break; + } + delay_output(100); + } + free(scrollbuf); + if (stop) + break; + } - init_pair(5,COLOR_BLUE,COLOR_WHITE); - wattrset(win, COLOR_PAIR(5) | A_BLINK); - mvwaddstr(win, height-2, 3, " PDCurses 2.4 for DOS, OS/2, X11 and Win32"); - wrefresh(win); - - /* Draw running messages */ - init_pair(6,COLOR_YELLOW,COLOR_WHITE); - wattrset(win, COLOR_PAIR(6)); - message = messages[0]; - len = strlen(message); - j = 0; - i = 2; - w = width-2; - nodelay(win,TRUE); - - /* jbuhler's re-hacked scrolling messages */ - for (j=0; messages[j] != NULL; j++) - { - char *message = messages[j]; - int msg_len = strlen(message); - int scroll_len = w + 2 * msg_len; - char *scrollbuf = malloc(scroll_len); - char *visbuf = scrollbuf + msg_len; - int stop = 0; - int i; - - for (i=1; i <= w + msg_len; i++) - { - memset(visbuf, ' ',w); - strncpy(scrollbuf + i, message, msg_len); - mvwaddnstr(win,height/2, 1, visbuf, w); - wrefresh(win); - if (wgetch(win) != ERR) - { - flushinp(); - stop = 1; - break; - } - delay_output(100); - } - free(scrollbuf); - if (stop) - break; - } - - j = 0; + j = 0; /* Draw running As across in RED */ - init_pair(7,COLOR_RED,COLOR_GREEN); - wattron(win, COLOR_PAIR(7)); - for(i=2; i < width - 4; ++i) - { ch = mvwinch(win, 5, i); - save[j++] = ch; - ch = ch & 0x7f; - mvwaddch(win, 5, i, ch); - } - wrefresh(win); + init_pair(7,COLOR_RED,COLOR_GREEN); + wattron(win, COLOR_PAIR(7)); + for(i=2; i < width - 4; ++i) + { + ch = mvwinch(win, 5, i); + save[j++] = ch; + ch = ch & 0x7f; + mvwaddch(win, 5, i, ch); + } + wrefresh(win); /* Put a message up wait for a key */ - i = height-2; - wattrset(win, COLOR_PAIR(5)); - mvwaddstr(win, i, 3, " Type a key to continue or ESC to quit "); - wrefresh(win); + i = height-2; + wattrset(win, COLOR_PAIR(5)); + mvwaddstr(win, i, 3, " Type a key to continue or ESC to quit "); + wrefresh(win); - if(WaitForUser() == '\033') - break; + if (WaitForUser() == '\033') + break; - j = 0; /* Restore the old line */ - wattrset(win,0); - for(i=2; i < width - 4; ++i) - mvwaddch(win, 5, i, save[j++]); - wrefresh(win); + j = 0; /* Restore the old line */ + wattrset(win,0); + for (i=2; i < width - 4; ++i) + mvwaddch(win, 5, i, save[j++]); + wrefresh(win); - BouncingBalls(win); /* leaves a keystroke in the queue */ + BouncingBalls(win); /* leaves a keystroke in the queue */ - if(WaitForUser() == '\033') - break; - } - endwin(); + if (WaitForUser() == '\033') + break; + } + endwin(); #ifdef XCURSES - XCursesExit(); + XCursesExit(); #endif - return 0; + return 0; } /* End of NEWDEMO.C */ diff --git a/demos/tui.c b/demos/tui.c index 169e2eda..ff0f6ec0 100644 --- a/demos/tui.c +++ b/demos/tui.c @@ -38,10 +38,10 @@ #include "tui.h" #ifdef PDCDEBUG -char *rcsid_tui = "$Id: tui.c,v 1.1 2001/01/10 08:27:44 mark Exp $"; +char *rcsid_tui = "$Id: tui.c,v 1.2 2004/01/02 05:50:05 mark Exp $"; #endif -#if defined(__unix) && !defined(GO32) +#if defined(__unix) && !defined(__DJGPP__) #define CPUACCOUNT /* necessary if CPU cycles are to be paid! */ #endif diff --git a/dos/pdcdisp.c b/dos/pdcdisp.c index 3bab97c2..f40ed820 100644 --- a/dos/pdcdisp.c +++ b/dos/pdcdisp.c @@ -34,9 +34,20 @@ #endif #ifdef PDCDEBUG -char *rcsid_PDCdisp = "$Id: pdcdisp.c,v 1.3 2003/06/23 07:54:32 mark Exp $"; +char *rcsid_PDCdisp = "$Id: pdcdisp.c,v 1.4 2004/01/02 05:50:05 mark Exp $"; #endif +#ifdef PC +void movedata(unsigned sseg, unsigned soff, unsigned dseg, unsigned doff, unsigned n) +{ + far char *src = MK_FP(sseg, soff); + far char *dst = MK_FP(dseg, doff); + + while (n--) { + *dst++ = *src++; + } +} + /*man-start********************************************************************* PDC_clr_update() - Updates the screen with a full redraw. @@ -60,6 +71,8 @@ char *rcsid_PDCdisp = "$Id: pdcdisp.c,v 1.3 2003/06/23 07:54:32 mark Exp $"; **man-end**********************************************************************/ + extern unsigned char atrtab[MAX_ATRTAB]; + /***********************************************************************/ #ifdef HAVE_PROTO int PDC_clr_update(WINDOW *s) @@ -75,7 +88,9 @@ register int i=0,j=0; bool rc=FALSE; #if SMALL || MEDIUM +# if !PC struct SREGS segregs; +# endif int ds=0; #endif @@ -83,8 +98,6 @@ int ds=0; int *VIDPOINT; #endif - extern unsigned char atrtab[MAX_ATRTAB]; - /* the next two variables have been changed from chtype to unsigned short */ /* as this is the correct datatype for a physical character/attribute */ unsigned short temp_line[256]; /* this should be enough for the maximum width of a screen. MH-920715 */ @@ -97,8 +110,10 @@ int ds=0; w = curscr; if (w == (WINDOW *)NULL) return( ERR ); -/* if (SP->full_redraw) - PDC_clr_scrn(s); *//* clear physical screen */ +#if 0 + if (SP->full_redraw) + PDC_clr_scrn(s); /* clear physical screen */ +#endif s->_clear = FALSE; for (i = 0; i < LINES; i++) /* update physical screen */ @@ -124,8 +139,12 @@ int ds=0; SP->video_ofs + (i * COLS * sizeof(unsigned short)))); #else # if (SMALL || MEDIUM) +# if PC + ds = FP_SEG((void far *) ch); +# else segread(&segregs); ds = segregs.ds; +# endif movedata(ds, (int)ch, SP->video_seg, SP->video_ofs + (i*COLS*sizeof(unsigned short)), @@ -555,7 +574,6 @@ chtype attr; #endif /***********************************************************************/ { - extern unsigned char atrtab[MAX_ATRTAB]; int phys_attr=chtype_attr(attr); #ifdef PDCDEBUG @@ -623,7 +641,9 @@ register chtype* srcp=NULL; #endif #if SMALL || MEDIUM +# if !PC struct SREGS segregs; +# endif int ds=0; #endif @@ -635,8 +655,6 @@ int ds=0; int *VIDPOINT; #endif - extern unsigned char atrtab[MAX_ATRTAB]; - unsigned short temp_line[256]; /* this should be enough for the maximum width of a screen. MH-920715 */ unsigned short chr=0; unsigned short* ch=NULL; @@ -683,8 +701,12 @@ int ds=0; SP->video_ofs + (((lineno * curscr->_maxx) + x) * sizeof(unsigned short)))); #else # if SMALL || MEDIUM +# if PC + ds = FP_SEG((void far *) ch); +# else segread(&segregs); ds = segregs.ds; +# endif movedata(ds,(int)ch, SP->video_seg, SP->video_ofs+(((lineno*curscr->_maxx)+x)*sizeof(unsigned short)), diff --git a/dos/pdcscrn.c b/dos/pdcscrn.c index ca67d5b8..c0c94121 100644 --- a/dos/pdcscrn.c +++ b/dos/pdcscrn.c @@ -36,7 +36,7 @@ #endif #ifdef PDCDEBUG -char *rcsid_PDCscrn = "$Id: pdcscrn.c,v 1.3 2003/06/23 07:54:35 mark Exp $"; +char *rcsid_PDCscrn = "$Id: pdcscrn.c,v 1.4 2004/01/02 05:50:05 mark Exp $"; #endif static unsigned short *saved_screen = NULL; @@ -78,7 +78,9 @@ int PDC_scr_close() /***********************************************************************/ { #if SMALL || MEDIUM +# if !PC struct SREGS segregs; +# endif int ds=0; #endif @@ -95,8 +97,12 @@ int ds=0; (unsigned long)_FAR_POINTER(SP->video_seg,SP->video_ofs)); #else # if (SMALL || MEDIUM) +# if PC + ds = FP_SEG((void far *) saved_screen); +# else segread(&segregs); ds = segregs.ds; +# endif movedata(ds, (int)saved_screen, SP->video_seg,SP->video_ofs, (saved_lines * saved_cols * sizeof(unsigned short))); @@ -186,7 +192,9 @@ bool echo; /***********************************************************************/ { #if SMALL || MEDIUM +# if !PC struct SREGS segregs; +# endif int ds=0; #endif @@ -255,8 +263,12 @@ int ds=0; saved_lines * saved_cols * sizeof(unsigned short),saved_screen); #else # if (SMALL || MEDIUM) +# if PC + ds = FP_SEG((void far *) saved_screen); +# else segread(&segregs); ds = segregs.ds; +# endif movedata(SP->video_seg,SP->video_ofs, ds, (int)saved_screen, (saved_lines * saved_cols * sizeof(unsigned short))); diff --git a/pdcurses/pdcutil.c b/pdcurses/pdcutil.c index 9020df7c..54576995 100644 --- a/pdcurses/pdcutil.c +++ b/pdcurses/pdcutil.c @@ -61,7 +61,7 @@ #endif #ifdef PDCDEBUG -char *rcsid_PDCutil = "$Id: pdcutil.c,v 1.1 2001/01/10 08:27:22 mark Exp $"; +char *rcsid_PDCutil = "$Id: pdcutil.c,v 1.2 2004/01/02 05:50:05 mark Exp $"; #endif /*man-start********************************************************************* @@ -210,6 +210,41 @@ long wait; return; } /***********************************************************************/ +#elif defined(PC) +# ifdef HAVE_PROTO +void PDC_usleep(long wait) +# else +void PDC_usleep(wait) +long wait; +# endif +/***********************************************************************/ +{ + far long *ticks = MK_FP(0x0040, 0x006c); + long t1, t2; + + wait /= 50; + + if (!wait) { + wait++; + } + + /* + * get number of ticks, + * since startup from + * address 0040:006ch + * + * 1 sec. = 18.2065 + */ + + while (wait--) { + t1 = *ticks; + + do { + t2 = *ticks; + } while (t1 == t2); + } +} +/***********************************************************************/ # else # ifdef HAVE_PROTO void PDC_usleep(long wait) diff --git a/pdcurses/util.c b/pdcurses/util.c index 6d37f03c..0d9ba209 100644 --- a/pdcurses/util.c +++ b/pdcurses/util.c @@ -65,7 +65,7 @@ #endif #ifdef PDCDEBUG -char *rcsid_util = "$Id: util.c,v 1.4 2003/06/23 07:53:56 mark Exp $"; +char *rcsid_util = "$Id: util.c,v 1.5 2004/01/02 05:50:05 mark Exp $"; #endif /*man-start********************************************************************* @@ -267,7 +267,7 @@ int ms; return( OK ); #endif -#if defined(WIN32) +#if defined(WIN32) || defined(PC) PDC_usleep( ms ); return( OK ); #endif @@ -294,7 +294,7 @@ int ms; return( OK ); #endif -#if defined(UNIX) || defined(GO32) +#if defined(UNIX) || defined(__DJGPP__) usleep(1000*ms); return( OK ); #endif