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

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

?? qdos.c

?? zip壓縮
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*  Copyright (c) 1990-2002 Info-ZIP.  All rights reserved.  See the accompanying file LICENSE, version 2000-Apr-09 or later  (the contents of which are also included in unzip.h) for terms of use.  If, for some reason, these files are missing, the Info-ZIP license  also may be found at:  ftp://ftp.info-zip.org/pub/infozip/license.html*//*---------------------------------------------------------------------------  qdos.c  QDOS-specific routines for use with Info-ZIP's UnZip 5.3 and later.  Contains:  Qstrfix()             QFilename()             QMatch()             chowner()             Qgetch()             QReturn()             LastDir()             screensize()             do_wild()           <-- generic enough to put in file_io.c?             mapattr()             mapname()             checkdir()             qfix()             close_outfile()             stamp_file()             getp()             version()  ---------------------------------------------------------------------------*/#define UNZIP_INTERNAL#include "unzip.h"#include "crypt.h"#include "ttyio.h"#include <dirent.h>#include "izqdos.h"#include "unzvers.h"#ifndef SFXchar _prog_name[] = "UnZip";#elsechar _prog_name[] = "??Special Flag for unzipsfx hack  ??";#endif/* sorrid hack at request of GRR follows; hope the compiler stays kind to us */char _version[] = {UZ_MAJORVER+'0','.',UZ_MINORVER+'0',UZ_PATCHLEVEL+'0'};char _extra[] = " " UZ_BETALEVEL;char _copyright[] = "(c) Info-ZIP Group";char *  _endmsg = NULL;long _stack = 16*1024;         /* huge stack (for qdos) */extern void consetup_title(chanid_t,struct WINDOWDEF *);void (*_consetup)(chanid_t,struct WINDOWDEF *) = consetup_title;struct WINDOWDEF _condetails ={    2,    1,    0,    7,    500,    220,    2,    30};static jobid_t chowner(chanid_t chan){    extern char *_sys_var;    char *scht;    long *cdb;    long jid;    scht = *((char **)(_sys_var + 0x78));    cdb = *(long **)((long *)scht  + (chan & 0xffff));    jid = *(cdb + 2);    return jid;}int QReturn(int err){    jobid_t me,you;    me = getpid();    you = chowner(getchid(0));    if((me == you) && ((qlflag & 4) == 0))    {        if(isatty(0) && isatty(2) && qlwait)        {            char c = 0;            fputs("Press a key to exit", stderr);            if((io_fbyte(getchid(0), qlwait, &c) == 0) && c == 27)            {                io_fbyte(getchid(0), -1, &c);            }        }    }    if(err > 0) err = -err;     /* We like -ve err nos (exclusively, alas) */    exit(err);}#ifndef FUNZIPstatic int created_dir;        /* used in mapname(), checkdir() */static int renamed_fullpath;   /* ditto */char *Qstrfix (char *p){    char *q;    for (q = p; (q = strstr(q, ".zip"));)    {        *q = '_';        q += 4;    }    return p;}void QFilename(char *f){    char *o,*p,*q = strdup(f);    p = q;    if(*q == '.' && *(q+1) == '/') q += 2;    o = q;    for(;*q;q++)    {        if(*q == '/') *q = '_';        if((qlflag & 1) == 0)        {            if(*q == '.') *q = '_';        }    }    strcpy(f,o);    free(p);}int QMatch(uch c1, uch c2){    int m =0;    if(c1 != c2)    {        if(c1 == '_' && (c2 == '.' || c2 == '/'))        {            m = 1;        }    }    else    {        m = 1;    }    return m;}int Qgetch(void){    char ch;    if(io_fbyte(getchid(0), -1, &ch) < 0)    {        return EOF;    }    else    {        return (int) ch;    }}int screensize(int *tt_rows, int *tt_cols){    QLRECT_t rect;    if(0 == sd_chenq(getchid(1), -1, &rect))    {        if(tt_cols)            *tt_cols = rect.q_width;        if(tt_rows)            *tt_rows = rect.q_height;    }    else    {        if(tt_cols)            *tt_cols = 80;        if(tt_rows)            *tt_rows = 24;    }    return 0;}#ifndef SFXchar *LastDir(char *ws){    char *p;    char *q = ws;    struct stat s;    for(p = ws; *p; p++)    {        if(*p == '_')        {            char c;            p++;            c = *p;            *p = 0;            if(stat(ws, &s) == 0 && S_ISDIR(s.st_mode))            {                q = p;            }            *p = c;        }    }    return q;}/**********************//* Function do_wild() */   /* for porting:  dir separator; match(ignore_case) *//**********************/char *do_wild(__G__ wildspec)    __GDEF    ZCONST char *wildspec;  /* only used first time on a given dir */{    static DIR *wild_dir = (DIR *)NULL;    static ZCONST char *wildname;    static char *dirname, matchname[FILNAMSIZ];    static int notfirstcall=FALSE, have_dirname, dirnamelen;    struct dirent *file;    char basedir[40];    /* Even when we're just returning wildspec, we *always* do so in     * matchname[]--calling routine is allowed to append four characters     * to the returned string, and wildspec may be a pointer to argv[].     */    if (!notfirstcall) {    /* first call:  must initialize everything */        char *ws = NULL, *us = NULL;        notfirstcall = TRUE;        /* break the wildspec into a directory part and a wildcard filename */        ws = (char *) iswild(wildspec);        if(ws == NULL)        {            strcpy(matchname, wildspec);            return matchname;        }        us = LastDir(wildspec);        if(us == wildspec)        {            dirname = basedir;            getcwd(basedir, sizeof(basedir)-1);            dirnamelen = strlen(basedir);            have_dirname = FALSE;            wildname = wildspec;        } else {            wildname = us;     /* point at character after '/' */            dirnamelen = wildname - wildspec;            if ((dirname = (char *)malloc(dirnamelen+1)) == (char *)NULL) {                Info(slide, 0x201, ((char *)slide,                  "warning:  cannot allocate wildcard buffers\n"));                strcpy(matchname, wildspec);                return matchname;   /* but maybe filespec was not a wildcard */            }            strncpy(dirname, wildspec, dirnamelen);            dirname[dirnamelen] = '\0';   /* terminate for strcpy below */            have_dirname = TRUE;        }        if ((wild_dir = opendir(dirname)) != (DIR *)NULL) {            while ((file = readdir(wild_dir)) != (struct dirent *)NULL) {                if (match(file->d_name, wildname, 2)) {  /* 0 == case sens. */                    if (have_dirname) {                        strcpy(matchname, dirname);                        strcpy(matchname+dirnamelen, file->d_name);                    } else                        strcpy(matchname, file->d_name);                    return matchname;                }            }            /* if we get to here directory is exhausted, so close it */            closedir(wild_dir);            wild_dir = (DIR *)NULL;        }        /* return the raw wildspec in case that works (e.g., directory not         * searchable, but filespec was not wild and file is readable) */        strcpy(matchname, wildspec);        return matchname;    }    /* last time through, might have failed opendir but returned raw wildspec */    if (wild_dir == (DIR *)NULL) {        notfirstcall = FALSE; /* nothing left to try--reset for new wildspec */        if (have_dirname)            free(dirname);        return (char *)NULL;    }    /* If we've gotten this far, we've read and matched at least one entry     * successfully (in a previous call), so dirname has been copied into     * matchname already.     */    while ((file = readdir(wild_dir)) != (struct dirent *)NULL) {        if (match(file->d_name, wildname, 2)) {   /* 0 == don't ignore case */            if (have_dirname) {                /* strcpy(matchname, dirname); */                strcpy(matchname+dirnamelen, file->d_name);            } else                strcpy(matchname, file->d_name);            return matchname;        }    }    closedir(wild_dir);     /* have read at least one entry; nothing left */    wild_dir = (DIR *)NULL;    notfirstcall = FALSE;   /* reset for new wildspec */    if (have_dirname)        free(dirname);    return (char *)NULL;} /* end function do_wild() */#endif /* !SFX *//**********************//* Function mapattr() *//**********************/int mapattr(__G)    __GDEF{    ulg tmp = G.crec.external_file_attributes;    switch (G.pInfo->hostnum) {        case AMIGA_:            tmp = (unsigned)(tmp>>17 & 7);   /* Amiga RWE bits */            G.pInfo->file_attr = (unsigned)(tmp<<6 | tmp<<3 | tmp);            break;        case THEOS_:            tmp &= 0xF1FFFFFFL;            if ((tmp & 0xF0000000L) != 0x40000000L)                tmp &= 0x01FFFFFFL;     /* not a dir, mask all ftype bits */            else                tmp &= 0x41FFFFFFL;     /* leave directory bit as set */            /* fall through! */        case QDOS_:        case UNIX_:        case VMS_:        case ACORN_:        case ATARI_:        case BEOS_:        case TANDEM_:            G.pInfo->file_attr = (unsigned)(tmp >> 16);            if (G.pInfo->file_attr != 0 || !G.extra_field) {                return 0;            } else {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 久久99久久精品欧美| 中文字幕综合网| 中文字幕一区av| 亚洲国产高清不卡| 欧美激情自拍偷拍| 中文字幕 久热精品 视频在线 | 欧美电视剧在线看免费| 日韩欧美在线观看一区二区三区| 91精品国产黑色紧身裤美女| 91精品国产丝袜白色高跟鞋| 日韩一级在线观看| 亚洲精品一区二区三区精华液| 欧美成人精品3d动漫h| 精品国产污污免费网站入口| 久久精品视频免费观看| 久久精品人人做人人爽人人| 中日韩av电影| 日韩美女精品在线| 亚洲精品乱码久久久久久黑人| 一区二区三区四区乱视频| 国产精品久久夜| 一区二区三区日韩精品视频| 亚洲国产wwwccc36天堂| 久久精品国产一区二区| 成人自拍视频在线| 色94色欧美sute亚洲线路一久| 欧美美女直播网站| 久久综合狠狠综合久久激情| 中文一区在线播放| 亚洲午夜激情av| 免费成人av在线播放| 国产河南妇女毛片精品久久久| 99精品久久只有精品| 精品日韩欧美在线| 国产欧美一区二区精品性色| 亚洲黄色尤物视频| 六月婷婷色综合| 91在线小视频| 日韩欧美资源站| 亚洲同性同志一二三专区| 亚洲不卡av一区二区三区| 久久国产生活片100| a美女胸又www黄视频久久| 欧美日本精品一区二区三区| 精品国产乱码久久久久久牛牛| 国产精品国产三级国产普通话蜜臀 | 美女www一区二区| 成人aa视频在线观看| 欧美日本韩国一区二区三区视频| 精品国产乱码久久久久久久久| 国产精品嫩草久久久久| 日韩电影一区二区三区四区| 丰满少妇在线播放bd日韩电影| 欧美视频在线不卡| www久久精品| 亚洲国产一区在线观看| 国产河南妇女毛片精品久久久| 欧美午夜精品理论片a级按摩| 久久久精品免费免费| 午夜精品久久久久久久99樱桃 | 欧美成人国产一区二区| 综合av第一页| 国产自产高清不卡| 欧美日韩一级大片网址| 国产精品久久久久7777按摩| 免费人成网站在线观看欧美高清| av电影在线观看一区| 欧美一区二区视频网站| 一区二区三区日韩| 成熟亚洲日本毛茸茸凸凹| 日韩精品在线一区二区| 亚洲国产日韩av| 99re66热这里只有精品3直播| 精品国产乱码91久久久久久网站| 亚洲一区二区在线免费观看视频| 福利91精品一区二区三区| 日韩欧美国产成人一区二区| 一区二区三区国产精华| 93久久精品日日躁夜夜躁欧美| 欧美精品一区二区三区蜜桃视频| 日韩黄色在线观看| 欧美性猛交xxxxxx富婆| 亚洲视频在线一区二区| 成人avav影音| 国产精品久久久久影院老司| 国产成a人亚洲精| 精品欧美乱码久久久久久1区2区| 日韩高清不卡一区二区三区| 欧美三片在线视频观看| 亚洲愉拍自拍另类高清精品| 91丝袜国产在线播放| 最新不卡av在线| 成人黄动漫网站免费app| 2021久久国产精品不只是精品| 另类小说综合欧美亚洲| 91精品国产福利| 蜜臀av亚洲一区中文字幕| 9191国产精品| 日本不卡视频在线观看| 在线播放中文一区| 日韩和的一区二区| 日韩三级.com| 国模一区二区三区白浆| 欧美白人最猛性xxxxx69交| 日本欧美肥老太交大片| 欧美电影免费观看高清完整版在线| 美女性感视频久久| 日韩视频一区二区三区| 加勒比av一区二区| 久久久久久一级片| 国产一区二区免费看| 欧美国产禁国产网站cc| 波多野结衣中文一区| 中文字幕中文字幕中文字幕亚洲无线| 成人91在线观看| 亚洲女同ⅹxx女同tv| 欧美日韩大陆在线| 麻豆成人av在线| 精品国产凹凸成av人网站| 国产老女人精品毛片久久| 国产精品麻豆网站| 一本久久综合亚洲鲁鲁五月天| 一级中文字幕一区二区| 91精品国产综合久久小美女 | 91精品国产欧美一区二区成人| 日韩和欧美一区二区三区| 精品国产91乱码一区二区三区| 国产成人日日夜夜| 亚洲精品国产无天堂网2021| 欧美日韩精品一区二区三区 | 欧美一级欧美一级在线播放| 老色鬼精品视频在线观看播放| 久久婷婷国产综合国色天香| 成人精品国产一区二区4080| 一区二区国产盗摄色噜噜| 欧美精品日韩精品| 极品美女销魂一区二区三区免费| 国产肉丝袜一区二区| 91久久线看在观草草青青 | 色天使色偷偷av一区二区| 亚洲成av人**亚洲成av**| 欧美www视频| 成人国产精品免费网站| 午夜精品久久一牛影视| 久久精品亚洲乱码伦伦中文| 色噜噜狠狠成人中文综合| 玖玖九九国产精品| 1区2区3区精品视频| 337p亚洲精品色噜噜噜| 丁香激情综合国产| 亚洲成在线观看| 久久久久国产成人精品亚洲午夜| 色婷婷精品大在线视频| 激情综合色综合久久| 亚洲一区二区三区影院| 久久综合九色综合97_久久久| 在线观看免费一区| 国产成人亚洲综合a∨婷婷| 香蕉加勒比综合久久| 中文字幕成人网| 欧美xingq一区二区| 在线国产电影不卡| 成人综合婷婷国产精品久久 | 高清在线观看日韩| 午夜精品123| 亚洲人成小说网站色在线| 精品国产免费人成在线观看| 欧美日韩免费不卡视频一区二区三区| 国产精品系列在线播放| 日韩成人一级片| 亚洲精品国产精品乱码不99| 久久久国产综合精品女国产盗摄| 欧美精品三级在线观看| 91在线国内视频| 懂色av噜噜一区二区三区av| 日韩精品午夜视频| 一区二区三区 在线观看视频| 日本一区二区三区dvd视频在线| 日韩一区二区中文字幕| 欧美日韩三级一区二区| 99国产欧美久久久精品| 激情久久五月天| 蜜桃视频一区二区| 首页国产欧美日韩丝袜| 亚洲欧美电影一区二区| 亚洲欧洲成人精品av97| 国产日韩精品视频一区| 久久青草国产手机看片福利盒子| 555www色欧美视频| 欧美日韩亚洲综合在线 | 91免费版在线| eeuss影院一区二区三区 | 欧美日韩国产高清一区二区| 99久久久无码国产精品| 懂色一区二区三区免费观看| 国产在线不卡一区| 国产麻豆精品95视频| 国产一区 二区| 国产精华液一区二区三区|