which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@5403 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			163 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /*
 | |
|    ttyio.h
 | |
|  */
 | |
| 
 | |
| #ifndef __ttyio_h   /* don't include more than once */
 | |
| #define __ttyio_h
 | |
| 
 | |
| #ifndef __crypt_h
 | |
| #  include "crypt.h"  /* ensure that encryption header file has been seen */
 | |
| #endif
 | |
| 
 | |
| #if (CRYPT || (defined(UNZIP) && !defined(FUNZIP)))
 | |
| /*
 | |
|  * Non-echo keyboard/console input support is needed and enabled.
 | |
|  */
 | |
| 
 | |
| #ifndef __G         /* UnZip only, for now (DLL stuff) */
 | |
| #  define __G
 | |
| #  define __G__
 | |
| #  define __GDEF
 | |
| #  define __GPRO    void
 | |
| #  define __GPRO__
 | |
| #endif
 | |
| 
 | |
| #ifndef ZCONST      /* UnZip only (until have configure script like Zip) */
 | |
| #  define ZCONST const
 | |
| #endif
 | |
| 
 | |
| #if (defined(MSDOS) || defined(OS2) || defined(WIN32))
 | |
| #  ifndef DOS_OS2_W32
 | |
| #    define DOS_OS2_W32
 | |
| #  endif
 | |
| #endif
 | |
| 
 | |
| #if (defined(DOS_OS2_W32) || defined(__human68k__))
 | |
| #  ifndef DOS_H68_OS2_W32
 | |
| #    define DOS_H68_OS2_W32
 | |
| #  endif
 | |
| #endif
 | |
| 
 | |
| #if (defined(VM_CMS) || defined(MVS))
 | |
| #  ifndef CMS_MVS
 | |
| #    define CMS_MVS
 | |
| #  endif
 | |
| #endif
 | |
| 
 | |
| 
 | |
| /* Function prototypes */
 | |
| 
 | |
| /* The following systems supply a `non-echo' character input function "getch()"
 | |
|  * (or an alias) and do not need the echoff() / echon() function pair.
 | |
|  */
 | |
| #ifdef AMIGA
 | |
| #  define echoff(f)
 | |
| #  define echon()
 | |
|    int Agetch(void);            /* getch() like function, in amiga/filedate.c */
 | |
| #  define getch() Agetch()
 | |
| #  define HAVE_WORKING_GETCH
 | |
| #endif /* AMIGA */
 | |
| 
 | |
| #ifdef ATARI
 | |
| #  define echoff(f)
 | |
| #  define echon()
 | |
| #  include <osbind.h>
 | |
| #  define getch() (Cnecin() & 0x000000ff)
 | |
| #  define HAVE_WORKING_GETCH
 | |
| #endif
 | |
| 
 | |
| #ifdef MACOS
 | |
| #  define echoff(f)
 | |
| #  define echon()
 | |
| #  define getch() macgetch()
 | |
| #  define HAVE_WORKING_GETCH
 | |
| #endif
 | |
| 
 | |
| #ifdef QDOS
 | |
| #  define echoff(f)
 | |
| #  define echon()
 | |
| #  define HAVE_WORKING_GETCH
 | |
| #endif
 | |
| 
 | |
| #ifdef RISCOS
 | |
| #  define echoff(f)
 | |
| #  define echon()
 | |
| #  define getch() SWI_OS_ReadC()
 | |
| #  define HAVE_WORKING_GETCH
 | |
| #endif
 | |
| 
 | |
| #ifdef DOS_H68_OS2_W32
 | |
| #  define echoff(f)
 | |
| #  define echon()
 | |
| #  ifdef __EMX__
 | |
| #    ifndef getch
 | |
| #      define getch() _read_kbd(0, 1, 0)
 | |
| #    endif
 | |
| #  else /* !__EMX__ */
 | |
| #    ifdef __GO32__
 | |
| #      include <pc.h>
 | |
| #      define getch() getkey()
 | |
| #    else /* !__GO32__ */
 | |
| #      include <conio.h>
 | |
| #    endif /* ?__GO32__ */
 | |
| #  endif /* ?__EMX__ */
 | |
| #  define HAVE_WORKING_GETCH
 | |
| #endif /* DOS_H68_OS2_W32 */
 | |
| 
 | |
| /* For VM/CMS and MVS, we do not (yet) have any support to switch terminal
 | |
|  * input echo on and off. The following "fake" definitions allow inclusion
 | |
|  * of crypt support and UnZip's "pause prompting" features, but without
 | |
|  * any echo suppression.
 | |
|  */
 | |
| #ifdef CMS_MVS
 | |
| #  define echoff(f)
 | |
| #  define echon()
 | |
| #endif
 | |
| 
 | |
| /* VMS has a single echo() function in ttyio.c to toggle terminal
 | |
|  * input echo on and off.
 | |
|  */
 | |
| #ifdef VMS
 | |
| #  define echoff(f)  echo(0)
 | |
| #  define echon()    echo(1)
 | |
|    int echo OF((int));
 | |
| #endif
 | |
| 
 | |
| /* For all other systems, ttyio.c supplies the two functions Echoff() and
 | |
|  * Echon() for suppressing and (re)enabling console input echo.
 | |
|  */
 | |
| #ifndef echoff
 | |
| #  define echoff(f)  Echoff(__G__ f)
 | |
| #  define echon()    Echon(__G)
 | |
|    void Echoff OF((__GPRO__ int f));
 | |
|    void Echon OF((__GPRO));
 | |
| #endif
 | |
| 
 | |
| /* this stuff is used by MORE and also now by the ctrl-S code; fileio.c only */
 | |
| #if (defined(UNZIP) && !defined(FUNZIP))
 | |
| #  ifdef HAVE_WORKING_GETCH
 | |
| #    define FGETCH(f)  getch()
 | |
| #  endif
 | |
| #  ifndef FGETCH
 | |
|      /* default for all systems where no getch()-like function is available */
 | |
|      int zgetch OF((__GPRO__ int f));
 | |
| #    define FGETCH(f)  zgetch(__G__ f)
 | |
| #  endif
 | |
| #endif /* UNZIP && !FUNZIP */
 | |
| 
 | |
| #if (CRYPT && !defined(WINDLL))
 | |
|    char *getp OF((__GPRO__ ZCONST char *m, char *p, int n));
 | |
| #endif
 | |
| 
 | |
| #else /* !(CRYPT || (UNZIP && !FUNZIP)) */
 | |
| 
 | |
| /*
 | |
|  * No need for non-echo keyboard/console input; provide dummy definitions.
 | |
|  */
 | |
| #define echoff(f)
 | |
| #define echon()
 | |
| 
 | |
| #endif /* ?(CRYPT || (UNZIP && !FUNZIP)) */
 | |
| 
 | |
| #endif /* !__ttyio_h */
 |