📄 ttyio.h
字号:
/* Copyright (c) 1990-2005 Info-ZIP. All rights reserved. See the accompanying file LICENSE, version 2005-Feb-10 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 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -