亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sutkcomp.c

?? Dos6.0
?? C
字號:
/* TS = none */
/* REVIEW - we really should have a ReadChar() in case we support kanji */
/*
**  SUTKCOMP.C  --  general compression routines for
**                  Setup Toolkits.  Handles all header manipulation.
*/

#include <io.h>
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <dos.h>

#include "sutkcomp.h"


  /* global header info variables */
extern SHORT   vwAlgType;
extern LONG    vlcbSrcLength;
extern BOOL    vfChecksum;
extern USHORT  vusChecksum;
extern USHORT  vcbArgs;
extern BYTE *  vrgbArgs;
extern CHAR    vszBaseName[9];
extern CHAR    vszExtension[4];
extern SZ      vszText;
extern USHORT  vcbText;

#ifdef WIN2_VER
extern HANDLE  vhRgbArgs;
extern HANDLE  vhSzText;
#endif /* WIN2_VER */

  /* global variables needed within toolkit layer */
extern  LONG    vlibChecksum;
extern  LONG    vlibSrcLength;


  /* forward declarations of local routines */
extern  SHORT   far CbWriteFileHeader(int fhDest);
extern  BOOL        FPatchUs(int fh, LONG lib, USHORT us);
extern  BOOL        FPatchUl(int fh, LONG lib, ULONG ul);

#ifdef NOT_USED
extern  USHORT      CbWriteFar(int fh, BYTE far * fp, USHORT cb);
#endif /* NOT_USED */


/*
**  SHORT  far  CbWriteFileHeader(int fhDest)
**
**  Write the info contained in the header globals out to fhDest.  Assumes
**  that fhDest is positioned to where the header should be written (the
**  beginning of the file.)  If the source file length or checksum need to
**  be included in the header, the global variables vlibSrcLength and
**  vlibChecksum are set to the positions to patch those numbers later when 
**  the length and checksum are known.
**
**  Returns the length of the header written.  fhDest is left positioned at
**  the byte after the header.  If there is an error during writing, the file
**  position is reset to its original value, and the file truncated.
*/
SHORT  far  CbWriteFileHeader(int fhDest)
{
    USHORT    us;
    USHORT    cbWritten = 0;
    USHORT    cbBase;
    USHORT    cbExt;
    ULONG     ulSizeSeek;
    BOOL      fOkayWrite;
    LONG      libDestStart;

    if (fhDest != -1 && (libDestStart = tell(fhDest)) == -1)
        return(rcWriteSeekError);

    cbBase = strlen(vszBaseName);
    cbExt = strlen(vszExtension);

    /* REVIEW: this sleazy thing checks to make sure we have a valid alg type
       for the flags that are currently turned on.  REWRITE THIS. */
    if (TRUE
#ifdef ZK1
            && (vwAlgType != wAlgTypeZK1)
#endif /* ZK1 */
#ifdef JJJ1
            && (vwAlgType != wAlgTypeJJJ1)
#endif /* JJJ1 */
#ifdef NC_XOR1
            && (vwAlgType != wAlgTypeNoCompress)
            && (vwAlgType != wAlgTypeXOR1)
#endif /* NC_XOR1 */
            )
        {
        return(rcUnknownAlgType);
        }

    if (cbBase > 8 || cbExt > 3)
        return(rcFilenamesTooLong);

    fOkayWrite = FWriteNBytes(fhDest, rgbMagicValue, cbMagic);
    cbWritten += cbMagic;

    fOkayWrite &= FWriteUs(fhDest, vwAlgType);
    cbWritten += sizeof(USHORT);

    if (fhDest != -1)
        ulSizeSeek = tell(fhDest);         /* where to write cbHeader & flags */
    fOkayWrite &= FWriteUs(fhDest, 0);                            /* cbHeader */
    fOkayWrite &= FWriteUs(fhDest, 0);                               /* flags */
    cbWritten += sizeof(USHORT) * 2;

    us = 0;                            /* build flags and write optional data */
    if (vlcbSrcLength != NIL)
        {
        us |= bmSrcLength;
        if (fhDest != -1)
            vlibSrcLength = tell(fhDest);     /* length will be patched later */
        fOkayWrite &= FWriteUl(fhDest, NIL);
        cbWritten += sizeof(ULONG);
        }
    if (vfChecksum)
        {
        us |= bmChecksum;
        if (fhDest != -1)
            vlibChecksum = tell(fhDest);           /* where to write checksum */
        fOkayWrite &= FWriteUs(fhDest, vusChecksum);
        cbWritten += sizeof(USHORT);
        }
    if (vcbArgs != 0)
        {
        us |= bmArgs;
        fOkayWrite &= FWriteUs(fhDest, vcbArgs);
        fOkayWrite &= FWriteNBytes(fhDest, vrgbArgs, vcbArgs);
        cbWritten += sizeof(USHORT) + vcbArgs;
        }
    if (vszBaseName[0] != '\0')
        {
        us |= bmBaseName;
        fOkayWrite &= FWriteNBytes(fhDest, vszBaseName, cbBase);
        fOkayWrite &= FWriteByte(fhDest, '\0');
        cbWritten += 1 + cbBase;
        }
    if (vszExtension[0] != '\0')
        {
        us |= bmExtension;
        /* REVIEW for " " should we write " \0" or "\0"? */
        fOkayWrite &= FWriteNBytes(fhDest, vszExtension, cbExt);
        fOkayWrite &= FWriteByte(fhDest, '\0');
        cbWritten += 1 + cbExt;
        }
    if (vszText != NULL)
        {
        us |= bmText;
        fOkayWrite &= FWriteUs(fhDest, vcbText);
        fOkayWrite &= FWriteNBytes(fhDest, vszText, vcbText);
        cbWritten += sizeof(USHORT) + vcbText;
        }

#ifdef EAS
    if (vuscbEAs > 0)
        {
        us |= bmEAs;
        fOkayWrite &= FWriteUs(fhDest, vuscbEAs);
        fOkayWrite &= FWriteNBytes(fhDest, vrgbEAs, vuscbEAs);
        cbWritten += sizeof(USHORT) + vuscbEAs;
        free(vrgbEAs);
        vrgbEAs = NULL;
        vuscbEAs = 0;
        }
#endif /* EAS */

      /* Patch unfilled fields in header (cbHeader and flags) */
    if (fOkayWrite && fhDest != -1 && ulSizeSeek != -1)
        {
        BOOL   fOkaySeek = (BOOL)TRUE;

        if (lseek(fhDest, ulSizeSeek, SEEK_SET) == -1)
            fOkaySeek = FALSE;

        fOkayWrite &= FWriteUs(fhDest, cbWritten);
        fOkayWrite &= FWriteUs(fhDest, us);

        if (lseek(fhDest, 0L, SEEK_END) == -1)
            fOkaySeek = FALSE;

        if (!fOkaySeek)
            {
            lseek(fhDest, libDestStart, SEEK_SET);
            chsize(fhDest, libDestStart);
            return(rcWriteSeekError);
            }
        }

      /* if there's an error, blows away file */
    if (!fOkayWrite && fhDest != -1)
        {
        lseek(fhDest, libDestStart, SEEK_SET);
        chsize(fhDest, libDestStart);
        return(rcWriteError);
        }

    return(cbWritten);
}


/*
**  BOOL  FPatchUs(int fh, LONG lib, USHORT us)
**
**  Patch the USHORT at lib offset of fh with the us value, but leave
**  the fh unchanged.  Return TRUE if okay, FALSE in failure.
*/
BOOL  FPatchUs(int fh, LONG lib, USHORT us)
{
    LONG   libSav;

    if (fh == -1 || (libSav = tell(fh)) == -1 || lseek(fh, lib, SEEK_SET) == -1)
        return(FALSE);

    if (!FWriteUs(fh, us))
        {
        lseek(fh, libSav, SEEK_SET);
        return(FALSE);
        }

    if (lseek(fh, libSav, SEEK_SET) == -1)
        return(FALSE);

    return((BOOL)TRUE);
}


/*
**  BOOL  FPatchUl(int fh, LONG lib, ULONG ul)
**
**  Patch the ULONG at lib offset of fh with the ul value, but leave
**  the fh unchanged.  Return TRUE if okay, FALSE in failure.
*/
BOOL  FPatchUl(int fh, LONG lib, ULONG ul)
{
    LONG   libSav;

    if (fh == -1 || (libSav = tell(fh)) == -1 || lseek(fh, lib, SEEK_SET) == -1)
        return(FALSE);

    if (!FWriteUl(fh, ul))
        {
        lseek(fh, libSav, SEEK_SET);
        return(FALSE);
        }

    if (lseek(fh, libSav, SEEK_SET) == -1)
        return(FALSE);

    return((BOOL)TRUE);
}


#ifdef NOT_USED
/*
**  USHORT  CbWriteFar(int fh, BYTE far * fp, USHORT cb)
**
**  write with far pointer
*/
USHORT  CbWriteFar(int fh, BYTE far * fp, USHORT cb)
{
    union  REGS  inregs, outregs;
    struct SREGS segregs;

    inregs.x.bx = fh;            /* file handle */
    inregs.x.cx = cb;            /* bytes to write */
    inregs.x.dx = FP_OFF(fp);    /* offset of buffer */
    segregs.ds  = FP_SEG(fp);    /* segment of buffer */
    inregs.h.ah = 0x40;          /* Write Handle */

    intdosx(&inregs, &outregs, &segregs);

    return((outregs.x.cflag) ? 0 : outregs.x.ax);
}
#endif /* NOT_USED */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩亚州综合| 美女网站色91| 日韩av电影天堂| 盗摄精品av一区二区三区| 欧美日韩亚洲综合| 国产精品欧美经典| 免费高清成人在线| 欧美性大战久久久| 国产精品电影一区二区三区| 日韩电影在线免费| 欧美片网站yy| 亚洲最新视频在线观看| 粗大黑人巨茎大战欧美成人| 欧美一级理论片| 婷婷六月综合网| 在线日韩av片| ...中文天堂在线一区| 国产精品91一区二区| 精品国产一区二区三区忘忧草| 亚洲综合精品久久| 欧洲一区二区三区在线| 亚洲日本va在线观看| av午夜精品一区二区三区| 久久尤物电影视频在线观看| 日本午夜一区二区| 这里只有精品99re| 天堂成人免费av电影一区| 欧美性做爰猛烈叫床潮| 亚洲综合久久av| 欧美日韩视频第一区| 亚洲一二三区视频在线观看| 91久久一区二区| 一区二区三区久久久| 欧美唯美清纯偷拍| 偷窥国产亚洲免费视频| 欧美一级免费大片| 精品中文字幕一区二区| 久久久美女毛片| 国产福利一区在线观看| 中文字幕在线一区二区三区| 懂色av一区二区在线播放| 亚洲视频电影在线| 在线一区二区三区四区| 亚洲成a人v欧美综合天堂下载 | 北条麻妃国产九九精品视频| 国产欧美日韩激情| 99久久亚洲一区二区三区青草| 1区2区3区国产精品| 欧美性大战久久久久久久蜜臀| 亚洲成人综合在线| 日韩精品一区二区在线| 国产精品1024| 亚洲一区在线视频| 欧美精品九九99久久| 国内精品自线一区二区三区视频| 亚洲国产成人私人影院tom | 国产传媒日韩欧美成人| 国产精品欧美经典| 欧美日韩三级一区| 国产精品综合二区| 亚洲综合视频在线| 久久久国产午夜精品| 色综合久久中文字幕| 日本色综合中文字幕| 国产欧美视频在线观看| 欧美男人的天堂一二区| 国产电影一区二区三区| 午夜久久久久久| 国产欧美精品在线观看| 欧美日本一道本| 国产一区亚洲一区| 亚洲一区二区三区在线| 精品少妇一区二区三区在线播放| 99国产精品视频免费观看| 美女国产一区二区| 亚洲综合小说图片| 国产欧美日韩亚州综合| 欧美一区二区三区在线观看 | 欧美在线观看18| 国产在线精品一区二区| 五月婷婷激情综合网| 国产精品蜜臀av| 欧美一级片在线看| 在线精品视频一区二区三四| 国产乱一区二区| 水蜜桃久久夜色精品一区的特点 | 欧美成人精精品一区二区频| 日本大香伊一区二区三区| 国产精品一线二线三线| 亚洲第一在线综合网站| 日韩伦理免费电影| 国产喷白浆一区二区三区| 制服丝袜亚洲播放| 欧美日韩久久久久久| 91片在线免费观看| 9i看片成人免费高清| 成人综合婷婷国产精品久久蜜臀 | 专区另类欧美日韩| 国产日韩成人精品| 久久亚洲综合av| 日韩欧美美女一区二区三区| 欧美久久久久免费| 欧美无砖专区一中文字| 色婷婷av一区二区三区软件| 99re热这里只有精品视频| 成人一级片网址| 成人晚上爱看视频| 国产成人精品免费在线| 成人亚洲一区二区一| 福利一区福利二区| 国产不卡在线视频| 成人网男人的天堂| 成人av电影在线网| 99久久精品免费看国产| 色婷婷久久综合| 日本久久一区二区| 欧美日韩国产区一| 制服丝袜亚洲精品中文字幕| 日韩欧美一级二级三级| 精品国产乱码久久久久久免费| 欧美成人精品3d动漫h| 久久先锋影音av鲁色资源网| 久久精品视频免费| 亚洲国产精品国自产拍av| 中文字幕日韩一区二区| 亚洲国产综合视频在线观看| 亚洲国产精品一区二区久久恐怖片| 亚洲精品欧美综合四区| 五月综合激情网| 久久精品二区亚洲w码| 国内精品伊人久久久久av一坑| 国产精品伊人色| 色综合久久久久久久| 欧美日韩亚洲高清一区二区| 日韩一区二区三区高清免费看看| 精品福利一二区| 中文字幕中文在线不卡住| 午夜视频一区二区三区| 韩国精品久久久| 95精品视频在线| 日韩视频一区在线观看| 亚洲不卡av一区二区三区| 三级一区在线视频先锋 | 奇米精品一区二区三区在线观看一 | 国产精品视频一二三| 一区二区三区在线影院| 免费在线观看成人| 94-欧美-setu| 精品久久久久久久一区二区蜜臀| 亚洲欧洲精品一区二区三区| 丝袜美腿高跟呻吟高潮一区| 国产成人综合视频| 欧美卡1卡2卡| 欧美极品少妇xxxxⅹ高跟鞋 | ...av二区三区久久精品| 视频一区欧美精品| 成人黄色电影在线 | 国产精品一区专区| 欧美在线高清视频| 国产亚洲欧美一区在线观看| 亚洲第一综合色| 波多野结衣亚洲| 制服丝袜成人动漫| 亚洲激情男女视频| 成人精品免费看| 欧美大片拔萝卜| 亚洲一区二区3| 99视频热这里只有精品免费| 欧美一区二区三区不卡| 亚洲福利视频一区二区| 成人黄色电影在线 | 99re8在线精品视频免费播放| 日韩精品自拍偷拍| 五月天一区二区三区| 91丨porny丨户外露出| 久久久久88色偷偷免费| 日韩二区三区在线观看| 91福利区一区二区三区| 18成人在线观看| 成人激情开心网| 国产日韩精品一区二区三区| 精品一区二区三区免费观看| 欧美久久婷婷综合色| 亚洲一级在线观看| 日本韩国精品一区二区在线观看| 亚洲h精品动漫在线观看| 99综合电影在线视频| 国产精品久久久久影院色老大 | 中文字幕欧美日韩一区| 极品少妇一区二区三区精品视频| 欧美高清www午色夜在线视频| 亚洲永久精品国产| 91国在线观看| 亚洲乱码精品一二三四区日韩在线| 国产成人一级电影| 欧美激情一区不卡| 成人免费看视频| 国产丝袜美腿一区二区三区| 国产精品一区二区在线观看不卡| 久久综合九色综合97婷婷女人|