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

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

?? amiga.c

?? zip壓縮
?? C
?? 第 1 頁 / 共 3 頁
字號:
    /* supress G.rootpath even when user gave a relative pathname */# if 1    G.renamed_fullpath = (renamed && strpbrk(G.filename, ":/");# else    G.renamed_fullpath = (renamed &&                          (strchr(G.filename, ':') || strchr(G.filename, '/')));# endif#endif    if (checkdir(__G__ (char *)NULL, INIT) == MPN_NOMEM)        return MPN_NOMEM;       /* initialize path buffer, unless no memory */    *pathcomp = '\0';           /* initialize translation buffer */    pp = pathcomp;              /* point to translation buffer */    if (uO.jflag)               /* junking directories */        cp = (char *)strrchr(G.filename, '/');    if (cp == (char *)NULL)     /* no '/' or not junking dirs */        cp = G.filename;        /* point to internal zipfile-member pathname */    else        ++cp;                   /* point to start of last component of path *//*---------------------------------------------------------------------------    Begin main loop through characters in filename.  ---------------------------------------------------------------------------*/    while ((workch = (uch)*cp++) != 0) {        switch (workch) {        case '/':             /* can assume -j flag not given */            *pp = '\0';            if (((error = checkdir(__G__ pathcomp, APPEND_DIR)) & MPN_MASK)                 > MPN_INF_TRUNC)                return error;            pp = pathcomp;    /* reset conversion buffer for next piece */            lastsemi = NULL;  /* leave directory semi-colons alone */            break;        case '.':            if (pp == pathcomp) {   /* nothing appended yet... */                if (*cp == '/') {       /* don't bother appending "./" to */                    ++cp;               /*  the path: skip behind the '/' */                    break;                } else if (!uO.ddotflag && *cp == '.' && cp[1] == '/') {                    /* "../" dir traversal detected */                    cp += 2;            /*  skip over behind the '/' */                    killed_ddot = TRUE; /*  set "show message" flag */                    break;                }            }            *pp++ = '.';            break;        case ';':             /* VMS version (or DEC-20 attrib?) */            lastsemi = pp;         /* keep for now; remove VMS ";##" */            *pp++ = (char)workch;  /*  later, if requested */            break;        default:            /* allow ISO European characters in filenames: */            if (isprint(workch) || (160 <= workch && workch <= 255))                *pp++ = (char)workch;        } /* end switch */    } /* end while loop */    /* Show warning when stripping insecure "parent dir" path components */    if (killed_ddot && QCOND2) {        Info(slide, 0, ((char *)slide,          "warning:  skipped \"../\" path component(s) in %s\n",          FnFilter1(G.filename)));        if (!(error & ~MPN_MASK))            error = (error & MPN_MASK) | PK_WARN;    }/*---------------------------------------------------------------------------    Report if directory was created (and no file to create:  filename ended    in '/'), check name to be sure it exists, and combine path and name be-    fore exiting.  ---------------------------------------------------------------------------*/    if (G.filename[strlen(G.filename) - 1] == '/') {        checkdir(__G__ G.filename, GETPATH);        if (G.created_dir) {            if (QCOND2) {                Info(slide, 0, ((char *)slide, "   creating: %s\n",                  FnFilter1(G.filename)));            }            /* set dir time (note trailing '/') */            return (error & ~MPN_MASK) | MPN_CREATED_DIR;        }        /* dir existed already; don't look for data to extract */        return (error & ~MPN_MASK) | MPN_INF_SKIP;    }    *pp = '\0';                   /* done with pathcomp:  terminate it */    /* if not saving them, remove VMS version numbers (appended ";###") */    if (!uO.V_flag && lastsemi) {        pp = lastsemi + 1;        while (isdigit((uch)(*pp)))            ++pp;        if (*pp == '\0')          /* only digits between ';' and end:  nuke */            *lastsemi = '\0';    }    if (*pathcomp == '\0') {        Info(slide, 1, ((char *)slide, "mapname:  conversion of %s failed\n",          FnFilter1(G.filename)));        return (error & ~MPN_MASK) | MPN_ERR_SKIP;    }    error = (error & ~MPN_MASK) | checkdir(__G__ pathcomp, APPEND_NAME);    if ((error & MPN_MASK) == MPN_INF_TRUNC) {        /* GRR:  OK if truncated here:  warn and continue */        /* (warn in checkdir?) */    }    checkdir(__G__ G.filename, GETPATH);    return error;} /* end function mapname() *//***********************//* Function checkdir() *//***********************/int checkdir(__G__ pathcomp, flag)    __GDEF    char *pathcomp;    int flag;/* * returns: *  MPN_OK          - no problem detected *  MPN_INF_TRUNC   - (on APPEND_NAME) truncated filename *  MPN_INF_SKIP    - path doesn't exist, not allowed to create *  MPN_ERR_SKIP    - path doesn't exist, tried to create and failed; or path *                    exists and is not a directory, but is supposed to be *  MPN_ERR_TOOLONG - path is too long *  MPN_NOMEM       - can't allocate memory for filename buffers */{/* these statics are now declared in SYSTEM_SPECIFIC_GLOBALS in amiga.h: *//*  static int rootlen = 0; */   /* length of rootpath *//*  static char *rootpath;  */   /* user's "extract-to" directory *//*  static char *buildpath; */   /* full path (so far) to extracted file *//*  static char *end;       */   /* pointer to end of buildpath ('\0') */#   define FN_MASK   7#   define FUNCTION  (flag & FN_MASK)/*---------------------------------------------------------------------------    APPEND_DIR:  append the path component to the path being built and check    for its existence.  If doesn't exist and we are creating directories, do    so for this one; else signal success or error as appropriate.  ---------------------------------------------------------------------------*//* GRR:  check path length after each segment:  warn about truncation */    if (FUNCTION == APPEND_DIR) {        int too_long = FALSE;        Trace((stderr, "appending dir segment [%s]\n", FnFilter1(pathcomp)));        while ((*G.build_end = *pathcomp++) != '\0')            ++G.build_end;        /* Truncate components over 30 chars? Nah, the filesystem handles it. */        if ((G.build_end-G.buildpath) > FILNAMSIZ-3)       /* room for "/a\0" */            too_long = TRUE;                    /* check if extracting dir? */        if (SSTAT(G.buildpath, &G.statbuf)) {   /* path doesn't exist */            if (!G.create_dirs) { /* told not to create (freshening) */                free(G.buildpath);                return MPN_INF_SKIP;    /* path doesn't exist: nothing to do */            }            if (too_long) {                Info(slide, 1, ((char *)slide,                  "checkdir error:  path too long: %s\n",                  FnFilter1(G.buildpath)));                free(G.buildpath);                /* no room for filenames:  fatal */                return MPN_ERR_TOOLONG;            }            if (MKDIR(G.buildpath, 0777) == -1) {   /* create the directory */                Info(slide, 1, ((char *)slide,                  "checkdir error:  cannot create %s\n\                 unable to process %s.\n",                  FnFilter2(G.buildpath), FnFilter1(G.filename)));                free(G.buildpath);                /* path didn't exist, tried to create, failed */                return MPN_ERR_SKIP;            }            G.created_dir = TRUE;        } else if (!S_ISDIR(G.statbuf.st_mode)) {            Info(slide, 1, ((char *)slide,              "checkdir error:  %s exists but is not directory\n\                 unable to process %s.\n",              FnFilter2(G.buildpath), FnFilter1(G.filename)));            free(G.buildpath);            /* path existed but wasn't dir */            return MPN_ERR_SKIP;        }        if (too_long) {            Info(slide, 1, ((char *)slide,              "checkdir error:  path too long: %s\n", FnFilter1(G.buildpath)));            free(G.buildpath);            /* no room for filenames:  fatal */            return MPN_ERR_TOOLONG;        }        *G.build_end++ = '/';        *G.build_end = '\0';        Trace((stderr, "buildpath now = [%s]\n", FnFilter1(G.buildpath)));        return MPN_OK;    } /* end if (FUNCTION == APPEND_DIR) *//*---------------------------------------------------------------------------    GETPATH:  copy full path to the string pointed at by pathcomp, and free    G.buildpath.  Not our responsibility to worry whether pathcomp has room.  ---------------------------------------------------------------------------*/    if (FUNCTION == GETPATH) {        strcpy(pathcomp, G.buildpath);        Trace((stderr, "getting and freeing path [%s]\n",          FnFilter1(pathcomp)));        free(G.buildpath);        G.buildpath = G.build_end = (char *)NULL;        return MPN_OK;    }/*---------------------------------------------------------------------------    APPEND_NAME:  assume the path component is the filename; append it and    return without checking for existence.  ---------------------------------------------------------------------------*/    if (FUNCTION == APPEND_NAME) {        Trace((stderr, "appending filename [%s]\n", FnFilter1(pathcomp)));        while ((*G.build_end = *pathcomp++) != '\0') {            ++G.build_end;            if ((G.build_end-G.buildpath) >= FILNAMSIZ) {                *--G.build_end = '\0';                Info(slide, 0x201, ((char *)slide,                  "checkdir warning:  path too long; truncating\n\                   %s\n                -> %s\n",                  FnFilter1(G.filename), FnFilter2(G.buildpath)));                return MPN_INF_TRUNC;   /* filename truncated */            }        }        Trace((stderr, "buildpath now = [%s]\n", FnFilter1(G.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.  ---------------------------------------------------------------------------*/    if (FUNCTION == INIT) {        Trace((stderr, "initializing buildpath to "));        if ((G.buildpath = (char *)malloc(strlen(G.filename)+G.rootlen+1))            == (char *)NULL)            return MPN_NOMEM;        if ((G.rootlen > 0) && !G.renamed_fullpath) {            strcpy(G.buildpath, G.rootpath);            G.build_end = G.buildpath + G.rootlen;        } else {            *G.buildpath = '\0';            G.build_end = G.buildpath;        }        Trace((stderr, "[%s]\n", FnFilter1(G.buildpath)));        return MPN_OK;    }/*---------------------------------------------------------------------------    ROOT:  if appropriate, store the path in G.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) {            G.rootlen = 0;            return MPN_OK;        }        if (G.rootlen > 0)      /* rootpath was already set, nothing to do */            return MPN_OK;        if ((G.rootlen = strlen(pathcomp)) > 0) {            if (stat(pathcomp, &G.statbuf) || !S_ISDIR(G.statbuf.st_mode)) {                /* path does not exist */                if (!G.create_dirs) {                    G.rootlen = 0;                    /* skip (or treat as stored file) */                    return MPN_INF_SKIP;                }                /* create the directory (could add loop here scanning pathcomp                 * to create more than one level, but why really necessary?) */                if (MKDIR(pathcomp, 0777) == -1) {                    Info(slide, 1, ((char *)slide,                      "checkdir:  cannot create extraction directory: %s\n",                      FnFilter1(pathcomp)));                    G.rootlen = 0;                    /* path didn't exist, tried to create, and failed: */                    /* file exists, or 2+ subdir levels required */                    return MPN_ERR_SKIP;                }            }            if ((G.rootpath = (char *)malloc(G.rootlen+2)) == NULL) {                G.rootlen = 0;                return MPN_NOMEM;            }            strcpy(G.rootpath, pathcomp);            if (G.rootpath[G.rootlen-1] != ':' && G.rootpath[G.rootlen-1] != '/')                G.rootpath[G.rootlen++] = '/';            G.rootpath[G.rootlen] = '\0';            Trace((stderr, "rootpath now = [%s]\n", FnFilter1(G.rootpath)));        }        return MPN_OK;    }#endif /* !SFX || SFX_EXDIR *//*---------------------------------------------------------------------------    END:  free G.rootpath, immediately prior to program exit.  ---------------------------------------------------------------------------*/    if (FUNCTION == END) {        Trace((stderr, "freeing rootpath\n"));        if (G.rootlen > 0) {            free(G.rootpath);            G.rootlen = 0;        }        return MPN_OK;    }    return MPN_INVALID; /* should never reach */} /* end function checkdir() */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产视频一区二区在线观看| 九九精品视频在线看| 日韩黄色小视频| 成人福利电影精品一区二区在线观看| 色妹子一区二区| 国产欧美精品一区二区色综合| 亚洲最新在线观看| 成人福利电影精品一区二区在线观看| 日韩欧美亚洲国产精品字幕久久久| 亚洲免费观看高清完整版在线| 国精产品一区一区三区mba桃花 | 天天色 色综合| 国产成人精品免费| 精品99一区二区三区| 日韩黄色小视频| 欧美日韩国产大片| 亚洲欧美电影院| 91麻豆福利精品推荐| 国产三级精品在线| 国产高清不卡二三区| www国产精品av| 国产一区欧美日韩| 精品国一区二区三区| 麻豆精品国产91久久久久久| 欧美日韩精品是欧美日韩精品| 亚洲免费视频中文字幕| youjizz久久| 中文字幕一区在线观看视频| 成人的网站免费观看| 国产精品美女久久久久久| 国产成人免费视频网站| 久久久国产精华| 国产不卡免费视频| 欧美激情一区二区在线| 成人毛片老司机大片| 国产精品久久久久久久久搜平片| 国产91在线看| 亚洲欧美激情视频在线观看一区二区三区 | 国产成人欧美日韩在线电影| 国产欧美一区二区三区鸳鸯浴 | 久久精品网站免费观看| 久久99久久99小草精品免视看| 日韩欧美美女一区二区三区| 久久精品国产免费看久久精品| 欧美一级欧美一级在线播放| 久久精品国产一区二区三区免费看| 日韩欧美成人一区| 懂色av一区二区三区免费看| 国产精品第四页| 在线观看网站黄不卡| 日本中文字幕一区二区视频| 精品国产乱码久久久久久闺蜜| 粉嫩av一区二区三区| 亚洲品质自拍视频| 欧美电影一区二区三区| 精品在线你懂的| 亚洲日本丝袜连裤袜办公室| 欧美优质美女网站| 极品尤物av久久免费看| 国产精品你懂的在线| 欧美视频一区二区| 国产在线视频一区二区三区| 国产精品乱码妇女bbbb| 欧美日韩精品欧美日韩精品一综合| 久久不见久久见免费视频7| 国产精品久久久久久久久免费相片 | 日韩avvvv在线播放| 久久久噜噜噜久久中文字幕色伊伊| 成人黄动漫网站免费app| 午夜欧美一区二区三区在线播放| 久久久国产精华| 欧美剧情片在线观看| 国产精品白丝av| 亚洲大片在线观看| 国产网红主播福利一区二区| 欧美系列在线观看| 国产成人免费视频| 日本一不卡视频| 亚洲色图丝袜美腿| 2023国产一二三区日本精品2022| 91偷拍与自偷拍精品| 国产乱子伦视频一区二区三区 | 欧美精品一区二区久久婷婷| 欧美自拍丝袜亚洲| 国产69精品久久久久毛片| 亚洲成av人片一区二区| 中文字幕日韩av资源站| 日韩三级免费观看| 欧美日韩国产在线播放网站| av中文字幕不卡| 国产另类ts人妖一区二区| 日韩成人一区二区三区在线观看| 亚洲精品老司机| 中文字幕成人av| 久久久电影一区二区三区| 91精品国产色综合久久ai换脸| 91视频www| 成人黄色在线看| 国产精品乡下勾搭老头1| 欧美aaaaaa午夜精品| 五月天激情小说综合| 夜夜嗨av一区二区三区| 综合久久给合久久狠狠狠97色| 久久精品日产第一区二区三区高清版| 欧美一二三区在线观看| 欧美精品第1页| 6080yy午夜一二三区久久| 欧美日韩国产另类一区| 欧美影院精品一区| 日本高清不卡在线观看| 91视频在线观看| 99re这里都是精品| 91麻豆国产香蕉久久精品| 99久久婷婷国产| 91久久精品一区二区| 欧美综合亚洲图片综合区| 欧美最猛黑人xxxxx猛交| 欧美日韩视频专区在线播放| 在线日韩国产精品| 欧美日韩国产一二三| 91麻豆精品国产91久久久| 69堂亚洲精品首页| 日韩午夜三级在线| 欧美精品一区二区久久久| 国产视频一区二区在线观看| 国产精品嫩草影院av蜜臀| 亚洲女子a中天字幕| 亚洲成a人v欧美综合天堂下载| 日韩极品在线观看| 国产一区二区三区在线观看免费| 国产福利一区在线| 色综合婷婷久久| 99视频在线观看一区三区| 日本精品视频一区二区| 91精品国产乱码| 久久视频一区二区| 亚洲欧美偷拍卡通变态| 亚洲超碰97人人做人人爱| 激情综合网激情| 91丨九色丨尤物| 欧美精品黑人性xxxx| 国产亚洲va综合人人澡精品 | 亚洲国产成人tv| 久久精品免费观看| 99久久精品情趣| 在线观看三级视频欧美| 欧美电视剧在线看免费| 国产精品女同一区二区三区| 亚洲一区二区视频在线| 韩国三级电影一区二区| 91久久精品国产91性色tv| 欧美一区二区三区免费在线看 | www.在线成人| 欧美乱熟臀69xxxxxx| 国产亚洲欧美色| 午夜亚洲国产au精品一区二区| 国模娜娜一区二区三区| 欧美亚洲图片小说| ww亚洲ww在线观看国产| 亚洲第一综合色| 成人av免费在线| 精品sm捆绑视频| 亚洲一区二区精品视频| 成人小视频免费在线观看| 欧美精品丝袜中出| 国产精品福利一区二区| 久久精品国产成人一区二区三区| 91免费视频大全| 国产日韩欧美精品综合| 美女网站色91| 精品视频1区2区3区| 国产精品传媒入口麻豆| 精品在线你懂的| 91精品国产综合久久精品app| 国产精品传媒在线| 国产成人av一区二区三区在线| 8x8x8国产精品| 亚洲国产美女搞黄色| 99久久国产综合色|国产精品| 久久久久久久久99精品| 蜜臀久久久久久久| 91超碰这里只有精品国产| 一区二区三区美女| av在线播放不卡| 国产精品日日摸夜夜摸av| 九色porny丨国产精品| 欧美久久久一区| 午夜精品久久久久| 欧美日韩一区二区三区不卡| 亚洲精品日韩专区silk| 成人自拍视频在线观看| 中文无字幕一区二区三区 | 免费不卡在线观看| 91精品在线免费观看| 亚洲国产aⅴ成人精品无吗| 91九色02白丝porn| 亚洲自拍偷拍av| 精品视频一区二区不卡| 亚洲一线二线三线视频| 欧美日韩一区高清|