📄 unzip.c
字号:
if ((argc-- == 0) || error)#endif { *pargc = argc; *pargv = argv;#ifndef SFX if (uO.vflag >= 2 && argc == -1) { /* "unzip -v" */ show_version_info(__G); return PK_OK; } if (!G.noargs && !error) error = PK_PARAM; /* had options (not -h or -v) but no zipfile */#endif /* !SFX */ return USAGE(error); }#ifdef SFX /* print our banner unless we're being fairly quiet */ if (uO.qflag < 2) Info(slide, error? 1 : 0, ((char *)slide, LoadFarString(UnzipSFXBanner), UZ_MAJORVER, UZ_MINORVER, PATCHLEVEL, BETALEVEL, LoadFarStringSmall(VersionDate)));#ifdef BETA /* always print the beta warning: no unauthorized distribution!! */ Info(slide, error? 1 : 0, ((char *)slide, LoadFarString(BetaVersion), "\n", "SFX"));#endif#endif /* SFX */ if (uO.cflag || uO.tflag || uO.vflag || uO.zflag#ifdef TIMESTAMP || uO.T_flag#endif ) G.extract_flag = FALSE; else G.extract_flag = TRUE; *pargc = argc; *pargv = argv; return PK_OK;} /* end function uz_opts() *//********************//* Function usage() *//********************/#ifdef SFX# ifdef VMS# define LOCAL "X. Quote uppercase options"# endif# ifdef UNIX# define LOCAL "X"# endif# ifdef DOS_OS2_W32# define LOCAL "s$"# endif# ifdef FLEXOS# define LOCAL "s"# endif# ifdef AMIGA# define LOCAL "N"# endif /* Default for all other systems: */# ifndef LOCAL# define LOCAL ""# endif# ifdef MORE# define SFXOPT1 "M"# else# define SFXOPT1 ""# endifint usage(__G__ error) /* return PK-type error code */ __GDEF int error;{ Info(slide, error? 1 : 0, ((char *)slide, LoadFarString(UnzipSFXBanner), UZ_MAJORVER, UZ_MINORVER, PATCHLEVEL, BETALEVEL, LoadFarStringSmall(VersionDate))); Info(slide, error? 1 : 0, ((char *)slide, LoadFarString(UnzipSFXOpts), SFXOPT1, LOCAL));#ifdef BETA Info(slide, error? 1 : 0, ((char *)slide, LoadFarString(BetaVersion), "\n", "SFX"));#endif if (error) return PK_PARAM; else return PK_COOL; /* just wanted usage screen: no error */} /* end function usage() */#else /* !SFX */# ifdef VMS# define QUOT '\"'# define QUOTS "\""# else# define QUOT ' '# define QUOTS ""# endifint usage(__G__ error) /* return PK-type error code */ __GDEF int error;{ int flag = (error? 1 : 0);/*--------------------------------------------------------------------------- Print either ZipInfo usage or UnZip usage, depending on incantation. (Strings must be no longer than 512 bytes for Turbo C, apparently.) ---------------------------------------------------------------------------*/ if (uO.zipinfo_mode) {#ifndef NO_ZIPINFO Info(slide, flag, ((char *)slide, LoadFarString(ZipInfoUsageLine1), ZI_MAJORVER, ZI_MINORVER, PATCHLEVEL, BETALEVEL, LoadFarStringSmall(VersionDate), LoadFarStringSmall2(ZipInfoExample), QUOTS,QUOTS)); Info(slide, flag, ((char *)slide, LoadFarString(ZipInfoUsageLine2))); Info(slide, flag, ((char *)slide, LoadFarString(ZipInfoUsageLine3), QUOT,QUOT, QUOT,QUOT, LoadFarStringSmall(ZipInfoUsageLine4)));#ifdef VMS Info(slide, flag, ((char *)slide, "\nRemember that non-lowercase\ filespecs must be quoted in VMS (e.g., \"Makefile\").\n"));#endif#endif /* !NO_ZIPINFO */ } else { /* UnZip mode */ Info(slide, flag, ((char *)slide, LoadFarString(UnzipUsageLine1), UZ_MAJORVER, UZ_MINORVER, PATCHLEVEL, BETALEVEL, LoadFarStringSmall(VersionDate)));#ifdef BETA Info(slide, flag, ((char *)slide, LoadFarString(BetaVersion), "", ""));#endif Info(slide, flag, ((char *)slide, LoadFarString(UnzipUsageLine2), ZIPINFO_MODE_OPTION, LoadFarStringSmall(ZipInfoMode)));#ifdef VMS if (!error) /* maybe no command-line tail found; show extra help */ Info(slide, flag, ((char *)slide, LoadFarString(VMSusageLine2b)));#endif Info(slide, flag, ((char *)slide, LoadFarString(UnzipUsageLine3), LoadFarStringSmall(local1))); Info(slide, flag, ((char *)slide, LoadFarString(UnzipUsageLine4), QUOT,QUOT, QUOT,QUOT, LoadFarStringSmall(local2), QUOT,QUOT, LoadFarStringSmall2(local3))); /* This is extra work for SMALL_MEM, but it will work since * LoadFarStringSmall2 uses the same buffer. Remember, this * is a hack. */ Info(slide, flag, ((char *)slide, LoadFarString(UnzipUsageLine5), LoadFarStringSmall(Example2), LoadFarStringSmall2(Example3), LoadFarStringSmall2(Example3))); } /* end if (uO.zipinfo_mode) */ if (error) return PK_PARAM; else return PK_COOL; /* just wanted usage screen: no error */} /* end function usage() */#endif /* ?SFX */#ifndef SFX/********************************//* Function show_version_info() *//********************************/static void show_version_info(__G) __GDEF{ if (uO.qflag > 3) /* "unzip -vqqqq" */ Info(slide, 0, ((char *)slide, "%d\n", (UZ_MAJORVER*100 + UZ_MINORVER*10 + PATCHLEVEL))); else { char *envptr, *getenv(); int numopts = 0; Info(slide, 0, ((char *)slide, LoadFarString(UnzipUsageLine1v), UZ_MAJORVER, UZ_MINORVER, PATCHLEVEL, BETALEVEL, LoadFarStringSmall(VersionDate))); Info(slide, 0, ((char *)slide, LoadFarString(UnzipUsageLine2v))); version(__G); Info(slide, 0, ((char *)slide, LoadFarString(CompileOptions)));#ifdef ACORN_FTYPE_NFS Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(AcornFtypeNFS))); ++numopts;#endif#ifdef ASM_CRC Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(AsmCRC))); ++numopts;#endif#ifdef ASM_INFLATECODES Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(AsmInflateCodes))); ++numopts;#endif#ifdef CHECK_VERSIONS Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(Check_Versions))); ++numopts;#endif#ifdef COPYRIGHT_CLEAN Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(Copyright_Clean))); ++numopts;#endif#ifdef DEBUG Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(UDebug))); ++numopts;#endif#ifdef DEBUG_TIME Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(DebugTime))); ++numopts;#endif#ifdef DLL Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(Dll))); ++numopts;#endif#ifdef DOSWILD Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(DosWild))); ++numopts;#endif#ifdef LZW_CLEAN Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(LZW_Clean))); ++numopts;#endif#ifndef MORE Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(No_More))); ++numopts;#endif#ifdef NO_ZIPINFO Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(No_ZipInfo))); ++numopts;#endif#ifdef NTSD_EAS Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(NTSDExtAttrib))); ++numopts;#endif#ifdef OS2_EAS Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(OS2ExtAttrib))); ++numopts;#endif#ifdef QLZIP Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(SMSExFldOnUnix))); ++numopts;#endif#ifdef REENTRANT Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(Reentrant))); ++numopts;#endif#ifdef REGARGS Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(RegArgs))); ++numopts;#endif#ifdef RETURN_CODES Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(Return_Codes))); ++numopts;#endif#ifdef SET_DIR_ATTRIB Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(SetDirAttrib))); ++numopts;#endif#ifdef TIMESTAMP Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(TimeStamp))); ++numopts;#endif#ifdef UNIXBACKUP Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(UnixBackup))); ++numopts;#endif#ifdef USE_EF_UT_TIME Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(Use_EF_UT_time))); ++numopts;#endif#ifndef COPYRIGHT_CLEAN Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(Use_Smith_Code))); ++numopts;#endif#ifndef LZW_CLEAN Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(Use_Unshrink))); ++numopts;#endif#ifdef USE_VFAT Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(Use_VFAT_support))); ++numopts;#endif#ifdef USE_ZLIB sprintf((char *)(slide+256), LoadFarStringSmall(UseZlib), ZLIB_VERSION, zlib_version); Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), (char *)(slide+256))); ++numopts;#endif#ifdef VMS_TEXT_CONV Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(VmsTextConv))); ++numopts;#endif#ifdef VMSCLI Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(VmsCLI))); ++numopts;#endif#ifdef VMSWILD Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(VmsWild))); ++numopts;#endif#if CRYPT# ifdef PASSWD_FROM_STDIN Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(PasswdStdin)));# endif Info(slide, 0, ((char *)slide, LoadFarString(Decryption), CR_MAJORVER, CR_MINORVER, CR_BETA_VER, LoadFarStringSmall(CryptDate))); ++numopts;#endif /* CRYPT */ if (numopts == 0) Info(slide, 0, ((char *)slide, LoadFarString(CompileOptFormat), LoadFarStringSmall(None))); Info(slide, 0, ((char *)slide, LoadFarString(EnvOptions))); envptr = getenv(LoadFarStringSmall(EnvUnZip)); Info(slide, 0, ((char *)slide, LoadFarString(EnvOptFormat), LoadFarStringSmall(EnvUnZip), (envptr == (char *)NULL || *envptr == 0)? LoadFarStringSmall2(None) : envptr)); envptr = getenv(LoadFarStringSmall(EnvUnZip2)); Info(slide, 0, ((char *)slide, LoadFarString(EnvOptFormat), LoadFarStringSmall(EnvUnZip2), (envptr == (char *)NULL || *envptr == 0)? LoadFarStringSmall2(None) : envptr)); envptr = getenv(LoadFarStringSmall(EnvZipInfo)); Info(slide, 0, ((char *)slide, LoadFarString(EnvOptFormat), LoadFarStringSmall(EnvZipInfo), (envptr == (char *)NULL || *envptr == 0)? LoadFarStringSmall2(None) : envptr)); envptr = getenv(LoadFarStringSmall(EnvZipInfo2)); Info(slide, 0, ((char *)slide, LoadFarString(EnvOptFormat), LoadFarStringSmall(EnvZipInfo2), (envptr == (char *)NULL || *envptr == 0)? LoadFarStringSmall2(None) : envptr));#ifndef __RSXNT__#ifdef __EMX__ envptr = getenv(LoadFarStringSmall(EnvEMX)); Info(slide, 0, ((char *)slide, LoadFarString(EnvOptFormat), LoadFarStringSmall(EnvEMX), (envptr == (char *)NULL || *envptr == 0)? LoadFarStringSmall2(None) : envptr)); envptr = getenv(LoadFarStringSmall(EnvEMXOPT)); Info(slide, 0, ((char *)slide, LoadFarString(EnvOptFormat), LoadFarStringSmall(EnvEMXOPT), (envptr == (char *)NULL || *envptr == 0)? LoadFarStringSmall2(None) : envptr));#endif /* __EMX__ */#if (defined(__GO32__) && (!defined(__DJGPP__) || (__DJGPP__ < 2))) envptr = getenv(LoadFarStringSmall(EnvGO32)); Info(slide, 0, ((char *)slide, LoadFarString(EnvOptFormat), LoadFarStringSmall(EnvGO32), (envptr == (char *)NULL || *envptr == 0)? LoadFarStringSmall2(None) : envptr)); envptr = getenv(LoadFarStringSmall(EnvGO32TMP)); Info(slide, 0, ((char *)slide, LoadFarString(EnvOptFormat), LoadFarStringSmall(EnvGO32TMP), (envptr == (char *)NULL || *envptr == 0)? LoadFarStringSmall2(None) : envptr));#endif /* __GO32__ && !(__DJGPP__ >= 2) */#endif /* !__RSXNT__ */#ifdef RISCOS envptr = getenv(LoadFarStringSmall(EnvUnZipExts)); Info(slide, 0, ((char *)slide, LoadFarString(EnvOptFormat), LoadFarStringSmall(EnvUnZipExts), (envptr == (char *)NULL || *envptr == 0)? LoadFarStringSmall2(None) : envptr));#endif /* RISCOS */ }} /* end function show_version() */#endif /* !SFX */#endif /* !WINDLL */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -