| 
							- /*
 -   Copyright (c) 1990-2004 Info-ZIP.  All rights reserved.
 - 
 -   See the accompanying file LICENSE, version 2000-Apr-09 or later
 -   (the contents of which are also included in zip.h) for terms of use.
 -   If, for some reason, all these files are missing, the Info-ZIP license
 -   also may be found at:  ftp://ftp.info-zip.org/pub/infozip/license.html
 - */
 - /*
 -    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(DOS_OS2_W32) || defined(FLEXOS))
 - #  ifndef DOS_FLX_OS2_W32
 - #    define DOS_FLX_OS2_W32
 - #  endif
 - #endif
 - 
 - #if (defined(DOS_H68_OS2_W32) || defined(FLEXOS))
 - #  ifndef DOS_FLX_H68_OS2_W32
 - #    define DOS_FLX_H68_OS2_W32
 - #  endif
 - #endif
 - 
 - #if (defined(__ATHEOS__) || defined(__BEOS__) || defined(UNIX))
 - #  ifndef ATH_BEO_UNX
 - #    define ATH_BEO_UNX
 - #  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()
 - #  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 NLM
 - #  define echoff(f)
 - #  define echon()
 - #  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 WIN32
 - #    ifndef getch
 - #      define getch() getch_win32()
 - #    endif
 - #  else /* !WIN32 */
 - #    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__ */
 - #  endif /* ?WIN32 */
 - #  define HAVE_WORKING_GETCH
 - #endif /* DOS_H68_OS2_W32 */
 - 
 - #ifdef FLEXOS
 - #  define echoff(f)
 - #  define echon()
 - #  define getch() getchar() /* not correct, but may not be on a console */
 - #  define HAVE_WORKING_GETCH
 - #endif
 - 
 - /* 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
 - 
 - #ifdef TANDEM
 - #  define echoff(f)
 - #  define echon()
 - #  define getch() zgetch() /* defined in TANDEMC */
 - #  define HAVE_WORKING_GETCH
 - #endif
 - 
 - /* The THEOS C runtime library supplies the function conmask() to toggle
 -  * terminal input echo on (conmask("e")) and off (conmask("n")).  But,
 -  * since THEOS C RTL also contains a working non-echo getch() function,
 -  * the echo toggles are not needed.
 -  */
 - #ifdef THEOS
 - #  define echoff(f)
 - #  define echon()
 - #  define HAVE_WORKING_GETCH
 - #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)
 - #  define getch()    tt_getch()
 - #  define FGETCH(f)  tt_getch()
 -    int echo OF((int));
 -    int tt_getch OF((void));
 - #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 */
 
 
  |