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

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

?? qdos.c

?? zip壓縮
?? C
?? 第 1 頁 / 共 3 頁
字號:
    if (FUNCTION == APPEND_NAME) {#ifdef SHORT_NAMES        char *old_end = end;#endif        short dlen;        Trace((stderr, "appending filename [%s]\n", FnFilter1(pathcomp)));        while ((*end = *pathcomp++) != '\0') {            ++end;#ifdef SHORT_NAMES  /* truncate name at 14 characters, typically */            if ((end-old_end) > FILENAME_MAX)      /* GRR:  proper constant? */                *(end = old_end + FILENAME_MAX) = '\0';#endif            if (isdirdev(buildpath))            {                dlen = 5;            }            else            {                dlen = 0;            }            if ((end-buildpath-dlen) >= FILNAMSIZ) {                *--end = '\0';                Info(slide, 0x201, ((char *)slide,                  "checkdir warning:  path too long; truncating\n\                   %s\n                -> %s\n",                  FnFilter1(G.filename), FnFilter2(buildpath)));                return MPN_INF_TRUNC;   /* filename truncated */            }        }        Trace((stderr, "buildpath now = [%s]\n", FnFilter1(buildpath)));        /* could check for existence here, prompt for new name... */        return MPN_OK;    }/*---------------------------------------------------------------------------    INIT:  allocate and initialize buffer space for the file currently being    extracted.  If file was renamed with an absolute path, don't prepend the    extract-to path.  ---------------------------------------------------------------------------*//* GRR:  for VMS and TOPS-20, add up to 13 to strlen */    if (FUNCTION == INIT) {        Trace((stderr, "initializing buildpath to "));        if ((buildpath = (char *)malloc(strlen(G.filename)+rootlen+1))            == (char *)NULL)            return MPN_NOMEM;        if ((rootlen > 0) && !renamed_fullpath) {            strcpy(buildpath, rootpath);            end = buildpath + rootlen;        } else {            *buildpath = '\0';            end = buildpath;        }        Trace((stderr, "[%s]\n", FnFilter1(buildpath)));        return MPN_OK;    }/*---------------------------------------------------------------------------    ROOT:  if appropriate, store the path in rootpath and create it if    necessary; else assume it's a zipfile member and return.  This path    segment gets used in extracting all members from every zipfile specified    on the command line.  ---------------------------------------------------------------------------*/#if (!defined(SFX) || defined(SFX_EXDIR))    if (FUNCTION == ROOT) {        Trace((stderr, "initializing root path to [%s]\n",          FnFilter1(pathcomp)));        if (pathcomp == (char *)NULL) {            rootlen = 0;            return MPN_OK;        }        if (rootlen > 0)        /* rootpath was already set, nothing to do */            return MPN_OK;        if ((rootlen = strlen(pathcomp)) > 0) {            char *tmproot;            if ((tmproot = (char *)malloc(rootlen+2)) == (char *)NULL) {                rootlen = 0;                return MPN_NOMEM;            }            strcpy(tmproot, pathcomp);            if ((stat(tmproot, &G.statbuf) ||                !S_ISDIR(G.statbuf.st_mode)))            {   /* path does not exist */                if (!G.create_dirs /* || iswild(tmproot) */ ) {                    free(tmproot);                    rootlen = 0;                    /* skip (or treat as stored file) */                    return MPN_INF_SKIP;                }                /* create the directory (could add loop here scanning tmproot                 * to create more than one level, but why really necessary?) */                if (mkdir(tmproot, 0777) == -1) {                    Info(slide, 1, ((char *)slide,                      "checkdir:  cannot create extraction directory: %s\n",                      FnFilter1(tmproot)));                    free(tmproot);                    rootlen = 0;                    /* path didn't exist, tried to create, and failed: */                    /* file exists, or 2+ subdir levels required */                    return MPN_ERR_SKIP;                }            }            if (tmproot[rootlen-1] == '/' || tmproot[rootlen-1] == '_') {                tmproot[--rootlen] = '\0';            }            tmproot[rootlen++] = '_';            tmproot[rootlen] = '\0';            if ((rootpath = (char *)realloc(tmproot, rootlen+1)) == NULL) {                free(tmproot);                rootlen = 0;                return MPN_NOMEM;            }        }        Trace((stderr, "rootpath now = [%s]\n", FnFilter1(rootpath)));        return MPN_OK;    }#endif /* !SFX || SFX_EXDIR *//*---------------------------------------------------------------------------    END:  free rootpath, immediately prior to program exit.  ---------------------------------------------------------------------------*/    if (FUNCTION == END) {        Trace((stderr, "freeing rootpath\n"));        if (rootlen > 0) {            free(rootpath);            rootlen = 0;        }        return MPN_OK;    }    return MPN_INVALID; /* should never reach */} /* end function checkdir() */static void qfix(__G__ ef_ptr, ef_len)    __GDEF    uch *ef_ptr;    unsigned ef_len;{    qdosextra qextra;    while (ef_len >= EB_HEADSIZE)    {        qdosextra   *extra = &qextra;        jbextra     *jbp   = (jbextra *)&qextra;        unsigned    eb_len = makeword(EB_LEN + ef_ptr);        if (eb_len > (ef_len - EB_HEADSIZE)) {            /* discovered some extra field inconsistency! */            Trace((stderr,              "qfix: block length %u > rest ef_size %u\n", eb_len,              ef_len - EB_HEADSIZE));            break;        }        /* Must ensure that we don't use ODD addresses here */        memcpy(&qextra, ef_ptr, sizeof(qdosextra));        switch (extra->shortid) {          case SHORTID:            if (!strncmp(extra->longid, LONGID, strlen(LONGID)))            {                if (eb_len != EXTRALEN)                    fputs("warning: invalid length in Qdos field", stderr);                if (extra->header.d_type)                {                    fs_heads(fgetchid(G.outfile), (timeout_t)-1,                             &extra->header, 14);                    G.pInfo->file_attr |= S_IXUSR;                }            }            if (!strncmp(jbp->longid, JBLONGID, strlen(JBLONGID)))            {                if (eb_len != JBEXTRALEN)                    fputs("warning: invalid length in QZ field", stderr);                if (jbp->header.d_type)                {                    fs_heads(fgetchid(G.outfile), (timeout_t)-1,                             &jbp->header, 14);                    G.pInfo->file_attr |= S_IXUSR;                }            }            break;          default:            Trace((stderr,"qfix: unknown extra field block, ID=%d\n",               extra->shortid));            break;        }        /* Skip this extra field block */        ef_ptr += (eb_len + EB_HEADSIZE);        ef_len -= (eb_len + EB_HEADSIZE);    }}#ifdef QDOS#  include <utime.h>   long timezone = 0;#endif/****************************//* Function close_outfile() *//****************************/void close_outfile(__G)    __GDEF{    iztimes zt;#ifdef USE_EF_UT_TIME    unsigned eb_izux_flg;#endif    if (G.extra_field) {        qfix(__G__ G.extra_field, G.lrec.extra_field_length);    }    fclose(G.outfile);/*---------------------------------------------------------------------------    Change the file permissions from default ones to those stored in the    zipfile.  ---------------------------------------------------------------------------*/#ifndef NO_CHMOD    if (chmod(G.filename, 0xffff & G.pInfo->file_attr))        perror("chmod (file attributes) error");#endif/*---------------------------------------------------------------------------    Convert from MSDOS-format local time and date to Unix-format 32-bit GMT    time:  adjust base year from 1980 to 1970, do usual conversions from    yy/mm/dd hh:mm:ss to elapsed seconds, and account for timezone and day-    light savings time differences.  If we have a Unix extra field, however,    we're laughing:  both mtime and atime are ours.  ---------------------------------------------------------------------------*/#ifdef USE_EF_UT_TIME    eb_izux_flg = (G.extra_field ? ef_scan_for_izux(G.extra_field,                   G.lrec.extra_field_length, 0, G.lrec.last_mod_dos_datetime,#ifdef IZ_CHECK_TZ                   (G.tz_is_valid ? &zt : NULL),#else                   &zt,#endif                   z_uidgid) : 0);    if (eb_izux_flg & EB_UT_FL_MTIME) {        TTrace((stderr, "\nclose_outfile:  Unix e.f. modif. time = %ld\n",          zt.mtime));    } else {        zt.mtime = dos_to_unix_time(G.lrec.last_mod_dos_datetime);    }    if (eb_izux_flg & EB_UT_FL_ATIME) {        TTrace((stderr, "close_outfile:  Unix e.f. access time = %ld\n",          zt.atime));    } else {        zt.atime = zt.mtime;        TTrace((stderr, "\nclose_outfile:  modification/access times = %ld\n",          zt.mtime));    }#else    zt.atime = zt.mtime = dos_to_unix_time(G.lrec.last_mod_dos_datetime);#endif    /* set the file's access and modification times */    if (utime(G.filename, (struct utimbuf *)&zt)) {        Info(slide, 0x201, ((char *)slide,          "warning:  cannot set the time for %s\n", FnFilter1(G.filename)));    }} /* end function close_outfile() */#ifdef TIMESTAMP/***************************//*  Function stamp_file()  *//***************************/int stamp_file(fname, modtime)    ZCONST char *fname;    time_t modtime;{    struct utimbuf tp;    tp.modtime = tp.actime = modtime;    return (utime(fname, &tp));} /* end function stamp_file() */#endif /* TIMESTAMP */#ifndef SFX/************************//*  Function version()  *//************************/void version(__G)    __GDEF{    sprintf((char *)slide, LoadFarString(CompiledWith),           "c68", " v4.2x", "SMS/QDOS",            " on ", __DATE__, "","");    (*G.message)((zvoid *)&G, slide, (ulg)strlen((char *)slide), 0);} /* end function version() */#endif /* !SFX */#endif /* !FUNZIP */#if CRYPTchar *getp(__G__ m, p, n)    __GDEF    const char *m;              /* prompt for password */    char *p;                    /* return value: line input */    int n;                      /* bytes available in p[] */{    int c;                      /* one-byte buffer for read() to use */    int i;                      /* number of characters input */    char *w;                    /* warning on retry */    /* get password */    w = "";    sd_cure(getchid(0), -1);    /* enable cursor */    do {        fputs(w, stderr);       /* warning if back again */        fputs(m, stderr);       /* display prompt and flush */        fflush(stderr);        i = 0;        do {            c = getch();            if (c == 0xc2) {                if (i > 0) {                    i--; /* the `del' keys works */                    fputs("\b \b", stderr);                }            }            else if (i < n) {                p[i++] = c;     /* truncate past n */                if(c != '\n') putc('*', stderr);            }        } while (c != '\n');        putc('\n', stderr);  fflush(stderr);        w = "(line too long--try again)\n";    } while (p[i-1] != '\n');    p[i-1] = 0;                 /* terminate at newline */    sd_curs(getchid(0), -1);    /* suppress cursor */    return p;                   /* return pointer to password */} /* end function getp() */#endif /* CRYPT */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美高清在线| 日韩免费观看2025年上映的电影| 久久久精品人体av艺术| 国产尤物一区二区在线| 国产亚洲精品中文字幕| 国产成人av电影在线观看| 中文字幕一区不卡| 欧美做爰猛烈大尺度电影无法无天| 亚洲最新视频在线观看| 91精品国产乱码久久蜜臀| 琪琪久久久久日韩精品| www国产亚洲精品久久麻豆| 成人午夜又粗又硬又大| 亚洲伦理在线免费看| 欧美高清激情brazzers| 国产精品一区久久久久| 中文字幕制服丝袜成人av| 91国在线观看| 久久成人免费网| 国产精品久久久久一区二区三区 | 欧美一区二区三区四区久久| 美女视频黄免费的久久 | 久久久99精品免费观看| 99国产精品视频免费观看| 亚洲第一福利一区| 久久影院电视剧免费观看| 色噜噜狠狠色综合中国| 紧缚奴在线一区二区三区| 国产精品不卡在线| 欧美一级欧美三级| 99国产精品久久久久久久久久 | 激情文学综合网| 亚洲男人的天堂网| 精品少妇一区二区三区在线视频| heyzo一本久久综合| 三级欧美在线一区| 国产精品伦理一区二区| 日韩一区二区在线免费观看| av电影在线观看完整版一区二区| 日韩中文字幕不卡| 亚洲欧美怡红院| 欧美白人最猛性xxxxx69交| 91碰在线视频| 国产福利一区二区三区视频在线| 亚洲一区二区欧美激情| 中文字幕成人网| 欧美电影免费观看高清完整版在线 | 国产精品一区二区果冻传媒| 亚洲一区二区三区三| 国产精品丝袜一区| 日韩精品一区二区在线观看| 欧美色涩在线第一页| 国产成人亚洲综合色影视| 日韩国产欧美三级| 一区二区三区影院| 国产精品久久久久久久久动漫 | 欧美日韩国产成人在线免费| 成人h动漫精品| 国产一区二区主播在线| 毛片av中文字幕一区二区| 亚洲成a人v欧美综合天堂下载 | 日韩va亚洲va欧美va久久| 综合激情成人伊人| 欧美韩国日本一区| 国产日韩欧美高清| 国产亚洲成aⅴ人片在线观看| 日韩欧美国产系列| 91.xcao| 欧美精品123区| 欧美精三区欧美精三区| 欧美区视频在线观看| 欧美日韩性生活| 欧美三级电影精品| 欧美色精品天天在线观看视频| www.亚洲激情.com| 91免费观看在线| 99在线视频精品| 色婷婷综合激情| 欧美亚洲图片小说| 在线国产电影不卡| 欧美在线小视频| 欧美日本一区二区三区| 欧美精品tushy高清| 91精品国产乱| 久久免费国产精品| 国产精品无遮挡| 亚洲三级在线免费观看| 亚洲电影视频在线| 日韩影院免费视频| 久久国产日韩欧美精品| 国产精品资源站在线| 国产suv精品一区二区883| 成人av在线一区二区| 91猫先生在线| 欧美电影在线免费观看| 日韩精品一区二区三区视频| 久久综合网色—综合色88| 中文字幕第一区第二区| 一区二区三区日韩在线观看| 亚洲国产日韩精品| 麻豆精品在线看| 不卡的av网站| 欧美亚日韩国产aⅴ精品中极品| 在线不卡欧美精品一区二区三区| 日韩美女主播在线视频一区二区三区| 久久奇米777| 亚洲日本在线a| 久久国产精品99久久人人澡| 成人综合日日夜夜| 在线免费亚洲电影| 欧美大片一区二区三区| 国产精品久久久久久妇女6080| 一区二区三区在线视频免费| 奇米在线7777在线精品 | 国内精品写真在线观看| 成人99免费视频| 91精品在线观看入口| 国产欧美久久久精品影院| 一区二区三区在线观看网站| 国产综合色在线| 一本久久a久久精品亚洲| 91精品国产综合久久小美女| 国产精品免费av| 日本欧美一区二区| 国产+成+人+亚洲欧洲自线| 欧美日韩中字一区| 国产精品麻豆视频| 蜜桃视频免费观看一区| 91麻豆文化传媒在线观看| 欧美成人aa大片| 日韩成人一区二区三区在线观看| 岛国av在线一区| 精品国精品国产尤物美女| 亚洲欧洲日韩综合一区二区| 久久99国产精品久久99 | 日韩精品一区第一页| av电影天堂一区二区在线观看| 精品久久久久久久久久久久久久久| 亚洲日本丝袜连裤袜办公室| 国产一区二区网址| 7777精品伊人久久久大香线蕉超级流畅| 国产精品高潮呻吟| 激情久久久久久久久久久久久久久久| 欧美日韩综合在线免费观看| 中文字幕一区av| 成人高清伦理免费影院在线观看| 欧美精品一区二区蜜臀亚洲| 日韩 欧美一区二区三区| 欧美艳星brazzers| 亚洲精品中文在线观看| 97久久精品人人澡人人爽| 久久这里只有精品6| 奇米影视一区二区三区| 91精品在线免费| 青青青伊人色综合久久| 欧美日韩午夜在线| 亚洲午夜精品久久久久久久久| 91免费国产在线观看| 中文字幕一区在线观看视频| 国产福利一区二区三区视频在线| 久久久久国产精品人| 久久www免费人成看片高清| 日韩一区二区三区免费观看| 日产欧产美韩系列久久99| 欧美日韩免费在线视频| 亚洲一级不卡视频| 欧美性色黄大片| 日韩影院精彩在线| 日韩色在线观看| 麻豆精品一区二区三区| 久久夜色精品国产欧美乱极品| 久久er99热精品一区二区| 日韩欧美一区二区不卡| 狠狠狠色丁香婷婷综合激情 | 欧美年轻男男videosbes| 午夜视频久久久久久| 在线成人高清不卡| 日本不卡免费在线视频| 精品欧美乱码久久久久久1区2区| 久久成人免费日本黄色| 国产日韩欧美一区二区三区综合| 成人丝袜高跟foot| 亚洲人吸女人奶水| 欧美色综合天天久久综合精品| 日一区二区三区| 精品蜜桃在线看| 国产成人av影院| 亚洲精选视频免费看| 欧美三级电影一区| 国内成人精品2018免费看| 精品va天堂亚洲国产| 成人免费黄色大片| 亚洲精品v日韩精品| 欧美日韩不卡一区| 激情成人综合网| 亚洲色图.com| 欧美一级免费观看| 成人免费视频免费观看| 亚洲国产另类av| 欧美精品一区二区三区在线 |