⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ttyio.h

📁 给出了 zip 压缩算法的完整实现过程。
💻 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 + -