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

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

?? utils.cxx

?? PTypes (C++ Portable Types Library) is a simple alternative to the STL that includes multithreading
?? CXX
字號:
/* * *  C++ Portable Types Library (PTypes) *  Version 1.7.5   Released 9-Mar-2003 * *  Copyright (c) 2001, 2002, 2003 Hovik Melikyan * *  http://www.melikyan.com/ptypes/ *  http://ptypes.sourceforge.net/ * */#include <stdlib.h>#include <stdio.h>#include <ptypes.h>#include <ptime.h>#include "config.h"#include "sysutils.h"#include "utils.h"#include "urlutils.h"USING_PTYPESchar trail_char(const string& s){    if (isempty(s))        return 0;    else        return *(pconst(s) + length(s) - 1);}void trunc_trail_char(string& s){    if (isempty(s))        return;    else        setlength(s, length(s) - 1);}static const cset htchars = "<>&\"~00";void html_encode(outstm& s, const char* p){    while (*p != 0)    {        const char* b = p;        while (!(*p & htchars))            p++;        s.write(b, p - b);        switch (*p)        {            case '<': s.put("&lt;"); break;            case '>': s.put("&gt;"); break;            case '&': s.put("&amp;"); break;            case '"': s.put("&quot;"); break;            case '\xa0': s.put("&nbsp;"); break;        }        if (*p != 0)            p++;    }}void std_html_header(outstm& s, const string& title){    s.put("<html><head>\n");    s.put("<title>");    html_encode(s, title);    s.put("</title>\n");    s.put(STD_CSS);    s.put("</head><body>\n");    s.put("<h3><br>");    html_encode(s, title);    s.put("</h3>\n");}void std_html_footer(outstm& s){    s.put("<p><hr noshade size=1>");    s.put(SERVER_APP_NAME);    s.put(" at ");    s.put(cfg_server_name);    if (cfg_port != DEF_HTTP_PORT)        s.put(':' + itostring(cfg_port));    s.put("</p>\n</body></html>\n");}void html_show_file_list(outstm& s, const filist& list){    const int FSIZE_WIDTH = 5;    for (int i = 0; i < length(list); i++)    {        file_info* f = list[i];        s.put(dttostring(f->modified, "%d-%b-%Y  %H:%M"));        s.put("  ");                if (trail_char(f->name) != '/')        {            string t = itostring(f->size);            char c = ' ';            if (length(t) > FSIZE_WIDTH)            {                c = 'k';                t = itostring(f->size / 1024);                if (length(t) > FSIZE_WIDTH)                {                    c = 'M';                    t = itostring(f->size / 1024 / 1024);                }            }            s.put(pad(t, FSIZE_WIDTH, ' ', false));            s.put(c);        }        else            s.put("    - ");                s.put("  ");        s.put("<a href=\"");        html_encode(s, urlencodepath(f->name));        s.put("\">");        html_encode(s, f->name);        s.put("</a>\r\n");    }}//// splits a URI path into components and builds// a list of directory names. also resolves './'// and '../' references//void split_path(const char* path, strlist& list){    clear(list);    const char* e = path;    if (*e == '/')        e++;    const char* b = e;    while (*b != 0)    {        e = strchr(e, '/');        if (e == nil)            e = path + strlen(path);        if (e > b)        {            string s(b, e - b);                 // directory name            if (s != '.')                       // ignore './' self-references            {                if (s == "..")                  // resolve '../' references                {                    if (length(list) > 0)                        del(list, length(list) - 1);                }                else                    add(list, s, nil);            }        }        if (*e == '/')            e++;        b = e;    }}string get_mimetype(const string& path){    string ext = get_file_ext(path);    if (isempty(ext))        if (is_executable(path))            return "application/octet-stream";        else            return DEF_MIME_TYPE;    const char** p = mimetypes;    while (*p != 0)    {        if (**p == '.' && ext == *p)        {            do {                p++;            } while (**p == '.');            return *p;        }        p++;    }    return "application/octet-stream";}const cset digits = "0-9";const cset letters = "A-Za-z";const cset non_date_chars = cset("~20-~FF") - digits - letters;static const char* mnames[12] =     {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};static const char* downames[7] =     {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};datetime parse_http_date(const string& d){    string s;    inmemory m(d);    m.open();    m.skiptoken(letters);   // day of week    m.skiptoken(non_date_chars);    s = m.token(digits);    // day    if (length(s) == 0)        return invdatetime;    int day = atoi(s);    m.skiptoken(non_date_chars);    s = m.token(letters);   // month    setlength(s, 3);    int month = 0;    for (int i = 0; i < 12; i++)    {        if (s == mnames[i])        {            month = i + 1;            break;        }    }    if (month == 0)        return invdatetime;    m.skiptoken(non_date_chars);    s = m.token(digits);   // year    if (length(s) == 0)        return invdatetime;    int year = atoi(s);    if (year < 50)        year += 2000;    else if (year < 100)        year += 1900;    m.skiptoken(non_date_chars);    int hour = atoi(m.token(digits));    m.get();    int min = atoi(m.token(digits));    m.get();    int sec = atoi(m.token(digits));    return encodedate(year, month, day) + encodetime(hour, min, sec);}// #define HTTP_DATE_FMT           "%a, %d %b %Y %H:%M:%S GMT"string http_time_stamp(datetime t){    if (t == invdatetime)        t = now(true);    int dow, year, month, day, hour, min, sec;    decodedate(t, year, month, day);    decodetime(t, hour, min, sec);    dow = dayofweek(t);    char buf[128];    snprintf(buf, sizeof(buf), "%s, %02d %s %04d %02d:%02d:%02d GMT",         downames[dow], day, mnames[month - 1], year, hour, min, sec);    return buf;}/*large pstrtoll(const char *nptr, char **endptr){#ifdef WIN32    *endptr = (char*)nptr;    bool neg = false;    if (**endptr == '-')    {        (*endptr)++;        neg = true;    }    large res = 0;    char c = **endptr;    while (c >= '0' && c <= '9')    {        res = res * 10 + (c - '0');        (*endptr)++;        c = **endptr;    }    if (neg)        res = -res;    return res;#else    return ::strtoll(nptr, endptr, 10);#endif}*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人你懂的| 国产亚洲一本大道中文在线| 亚洲另类在线一区| 99久久久久免费精品国产| 中文在线资源观看网站视频免费不卡| 国产最新精品精品你懂的| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 亚洲午夜av在线| 正在播放亚洲一区| 蜜臀久久99精品久久久久宅男 | 欧美日高清视频| 久久99精品国产麻豆不卡| 26uuu精品一区二区在线观看| 国产激情一区二区三区四区 | 高清成人在线观看| 亚洲欧美综合在线精品| 欧美性感一区二区三区| 男人的j进女人的j一区| 久久久久亚洲综合| 91视视频在线观看入口直接观看www| 一二三区精品福利视频| 日韩精品一区二区三区三区免费| 国产成人av福利| 一区二区三区四区视频精品免费 | 久久精品免视看| 99综合影院在线| 日韩精品免费专区| 中文字幕不卡在线播放| 欧美日韩精品一区视频| 国产v综合v亚洲欧| 亚洲国产中文字幕| 中文字幕不卡在线| 91精品久久久久久久99蜜桃| 成人av影视在线观看| 亚洲成人av一区二区三区| 国产亚洲1区2区3区| 欧美日韩精品综合在线| 成人动漫一区二区三区| 成人精品鲁一区一区二区| 天天爽夜夜爽夜夜爽精品视频| 国产视频在线观看一区二区三区| 欧美最新大片在线看| 国产乱子轮精品视频| 亚洲综合在线五月| 国产欧美综合在线| 精品久久久久久综合日本欧美| 91免费视频大全| 国产精品一卡二卡| 日韩 欧美一区二区三区| 亚洲欧洲成人自拍| 久久久综合激的五月天| 欧美精品三级日韩久久| 91免费观看视频在线| 国产精品一区二区久久精品爱涩| 日韩精品免费专区| 亚洲福利一二三区| 一区二区三国产精华液| 国产精品妹子av| 久久久久久97三级| 久久综合精品国产一区二区三区| 欧美精品123区| 欧美三区在线观看| 一本久久精品一区二区| 成人爽a毛片一区二区免费| 国产在线视频精品一区| 狠狠久久亚洲欧美| 蜜桃传媒麻豆第一区在线观看| 亚洲成人精品一区| 性做久久久久久久免费看| 亚洲精品国产一区二区精华液| 国产精品美女一区二区三区 | 欧美亚洲精品一区| 91视频免费看| 一本一道久久a久久精品 | 国产盗摄女厕一区二区三区| 久久不见久久见免费视频7| 人人精品人人爱| 日韩电影一区二区三区四区| 午夜精品一区二区三区免费视频| 亚洲线精品一区二区三区| 亚洲黄色在线视频| 亚洲一区二区高清| 亚洲一级不卡视频| 香蕉加勒比综合久久| 日本免费在线视频不卡一不卡二| 丝袜美腿亚洲色图| 久久er精品视频| 国产精品69毛片高清亚洲| 国产一区二区不卡| 成人动漫精品一区二区| 色网站国产精品| 欧美老肥妇做.爰bbww| 欧美一区二区三区视频在线| 精品精品国产高清a毛片牛牛| 久久久国产综合精品女国产盗摄| 中文子幕无线码一区tr| 亚洲精品成人在线| 天天亚洲美女在线视频| 久久电影网站中文字幕| 福利91精品一区二区三区| 99re免费视频精品全部| 欧美日韩免费一区二区三区| 日韩欧美在线影院| 国产情人综合久久777777| 亚洲色图在线看| 三级不卡在线观看| 国产丶欧美丶日本不卡视频| 色网综合在线观看| 日韩午夜小视频| 欧美国产97人人爽人人喊| 亚洲综合在线五月| 国内精品伊人久久久久影院对白| 精品福利一二区| 国产午夜精品久久| 亚洲国产精品久久久久秋霞影院| 久久99精品一区二区三区三区| 不卡的av电影在线观看| 欧美日韩国产欧美日美国产精品| 久久女同精品一区二区| 亚洲国产综合色| 国产mv日韩mv欧美| 欧美精品 国产精品| 国产色婷婷亚洲99精品小说| 亚洲妇女屁股眼交7| 国产高清精品在线| 欧美精品在线视频| 亚洲欧美日韩国产手机在线 | 国产成人8x视频一区二区| 欧美三级在线播放| 中文字幕免费不卡| 日韩二区三区四区| 色综合久久久网| 亚洲精品一区二区三区蜜桃下载 | 91麻豆免费看片| 欧美成人官网二区| 一区二区三区日韩精品视频| 国产精品一区二区视频| 欧美人狂配大交3d怪物一区| 国产精品久久久久久久久久免费看| 青椒成人免费视频| 欧美网站一区二区| 亚洲裸体xxx| 国产69精品一区二区亚洲孕妇| 欧美一区二区久久久| 一二三区精品视频| 97精品视频在线观看自产线路二| 久久理论电影网| 蜜桃一区二区三区在线观看| 欧美日韩一区二区三区在线| 日韩理论在线观看| 国产成人在线视频网址| 精品日产卡一卡二卡麻豆| 午夜欧美视频在线观看| 色欧美日韩亚洲| 亚洲免费在线电影| 成人av资源在线| 国产午夜精品久久久久久久 | 日产国产高清一区二区三区 | 欧美视频一区在线| 一区二区欧美视频| 色播五月激情综合网| 1024成人网| 91蜜桃免费观看视频| 18欧美亚洲精品| 91丨九色丨蝌蚪丨老版| 亚洲欧美激情视频在线观看一区二区三区| 国产成人精品三级| 欧美国产视频在线| 成人av免费在线播放| 国产精品久久久久久久久久免费看| 高清成人在线观看| 日韩一区日韩二区| 99热99精品| 亚洲视频在线一区| 91久久免费观看| 亚洲宅男天堂在线观看无病毒| 色哟哟亚洲精品| 亚洲成a天堂v人片| 6080日韩午夜伦伦午夜伦| 人人精品人人爱| 久久久亚洲精华液精华液精华液 | 99国产精品久久久久久久久久久| 国产精品久久看| 欧洲人成人精品| 日本不卡1234视频| 久久精品一区蜜桃臀影院| kk眼镜猥琐国模调教系列一区二区 | 日韩视频在线永久播放| 另类欧美日韩国产在线| 久久久99免费| 91在线精品秘密一区二区| 一区二区成人在线视频| 在线播放一区二区三区| 国产一区二区三区四区五区美女| 国产精品的网站| 欧美日韩精品是欧美日韩精品| 久久97超碰色| 亚洲视频免费看| 欧美videossexotv100| 国产成人av自拍|