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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bintools.c

?? Open DMT Client C Source code
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
    return binFmtVPrintf(fb, fmt, ap);}int binFmtVPrintf(FmtBuffer_t *dest, const char *fmt, va_list ap){    UInt16 startingDataLen = BUFFER_DATA_LENGTH(dest);    const char *v = fmt? fmt : ""; // 'v' must not be null        /* valid data pointer? */    if (!dest || !BUFFER_DATA(dest)) {        logERROR(LOGSRC,"Buffer is null\n");        return -1;    }        /* loop through formats */    int f = 0;    for (f = 0; ;f++) {                /* find start of next format */        while (*v && (*v != '%')) { v++; }        if (!*v) {            break;         }        v++;                /* 1+ digits must follow */        int len = 0;        if (*v == '*') {            // pull the field length off the stack            len = va_arg(ap, int);            v++;        } else        if (isdigit(*v)) {            // the field length is explicitly specified in the format            const char *d = v;            while (*d && isdigit(*d)) { d++; }            len = atoi(v);            v = d;        } else {            // invalid format (not a digit)            logERROR(LOGSRC,"Invalid format at #%d (not a digit)\n", f);            return -1;        }        /* check length */        if (len > BUFFER_DATA_SIZE(dest)) {            // overflow            logERROR(LOGSRC,"Overflow at %d [%d > %d]\n", f, len, BUFFER_DATA_SIZE(dest));            return -1;        }        /* make sure the field is cleared */        memset(BUFFER_DATA(dest), 0, len);        /* next char must be one of 'iuxsbgz' */        UInt32 i;        const char *s;        utBool padString = utFalse;        const UInt8 *b;        const GPSPoint_t *gp;        switch (*v) {            case 'x': case 'X': // unsigned            case 'u': case 'U': // unsigned            case 'i': case 'I': // signed                i = va_arg(ap, UInt32);                if (len < sizeof(UInt32)) {                    i &= (1L << (len*8)) - 1L;                }                binEncodeInt32(BUFFER_DATA(dest), len, i, (((*v == 'i')||(*v == 'I'))? utTrue : utFalse));                binAppendFmtField(dest, len, *v);                binAdvanceFmtBuffer(dest, len);                break;            case 'p': case 'P': // padded strings            case 's': case 'S': // strings                s = va_arg(ap, const char*);                padString = ((*v == 'p') || (*v == 'P'))? utTrue : utFalse;                if (s) {                    char *d = (char*)BUFFER_DATA(dest);                    int actualLen = strLength(s, len); // MIN(strlen(s),len)                    memcpy(d, s, actualLen);                    if (actualLen < len) {                        if (padString) {                            // pad short strings with spaces                            for (;actualLen < len; actualLen++) {                                d[actualLen] = ' '; // pad with space                            }                        } else {                            // include a string terminator                            d[actualLen++] = 0;                            len = actualLen;                        }                    }                } else {                    if (padString) {                        // fill the field with spaces                        char *d = (char*)BUFFER_DATA(dest);                        int actualLen = 0;                        for (;actualLen < len; actualLen++) {                            d[actualLen] = ' '; // pad with space                        }                    } else {                        // no string                        len = 0;                    }                }                binAppendFmtField(dest, len, *v);                binAdvanceFmtBuffer(dest, len);                break;            case 'b': case 'B': // binary                b = va_arg(ap, const UInt8*);                if (b) {                    memcpy(BUFFER_DATA(dest), b, len); // copy                } else {                    memset(BUFFER_DATA(dest), 0, len); // clear                }                binAppendFmtField(dest, len, *v);                binAdvanceFmtBuffer(dest, len);                break;            case 'g': case 'G':                gp = va_arg(ap, const GPSPoint_t*);                if (gp) {                    if ((len >= 6) && (len < 8)) {                        gpsPointEncode6(BUFFER_DATA(dest), gp);                    } else                    if (len >= 8) {                        gpsPointEncode8(BUFFER_DATA(dest), gp);                    } else {                        // invalid format                    }                }                binAppendFmtField(dest, len, *v);                binAdvanceFmtBuffer(dest, len);                break;            case 'z': case 'Z': // zero filler                binAppendFmtField(dest, len, *v);                binAdvanceFmtBuffer(dest, len);                break;            default:                // invalid format (unrecognized type)                logERROR(LOGSRC,"Invalid format (unrecognized type)\n");                return -1;        }            }        /* return number of bytes written to buffer in this function */    return BUFFER_DATA_LENGTH(dest) - startingDataLen;    }// ----------------------------------------------------------------------------int binScanf(const UInt8 *buf, UInt16 bufLen, const char *fmt, ...){    va_list ap;    va_start(ap, fmt);    int rtn = binVScanf(buf, bufLen, fmt, ap);    va_end(ap);    return rtn;}int binVScanf(const UInt8 *buf, UInt16 bufLen, const char *fmt, va_list ap){    Buffer_t bb, *src = binBuffer(&bb, (UInt8*)buf, bufLen, BUFFER_SOURCE);    return binBufVScanf(src, fmt, ap);}int binBufScanf(Buffer_t *src, const char *fmt, ...){    va_list ap;    va_start(ap, fmt);    int rtn = binBufVScanf(src, fmt, ap);    va_end(ap);    return rtn;}int binBufVScanf(Buffer_t *src, const char *fmt, va_list ap){    const char *v = fmt;    int fldCnt;    for (fldCnt = 0; (BUFFER_DATA_LENGTH(src) > 0); fldCnt++) {                /* find start of next format */        while (*v && (*v != '%')) { v++; }        if (!*v) {            // no more fields            break;         }        v++;                /* 1+ digits must follow */        int len = 0;        if (*v == '*') {            // pull the field length off the stack            len = va_arg(ap, int);            v++;        } else        if (isdigit(*v)) {            // the field length is explicitly specified in the format            const char *d = v;            while (*d && isdigit(*d)) { d++; }            len = atoi(v);            v = d;        } else {            // invalid format (not a digit)            logERROR(LOGSRC,"Invalid format at #%d (not a digit)\n", fldCnt);            return -1;        }        /* check length */        if (len > BUFFER_DATA_LENGTH(src)) {            // overflow            //return -1;            len = BUFFER_DATA_LENGTH(src); // use whatever we have left        }                /* next char must be one of 'iuxsbgz' */        UInt32 *i;        char *s;        UInt8 *b;        GPSPoint_t *gp;        int actualLen = 0;        switch (*v) {            case 'x': case 'X': // unsigned            case 'u': case 'U': // unsigned            case 'i': case 'I': // signed                i = va_arg(ap, UInt32*);                if (i) {                    *i = binDecodeInt32(BUFFER_DATA(src), len, (((*v == 'i')||(*v == 'I'))? utTrue : utFalse));                }                binAdvanceBuffer(src, len);                break;            case 's': case 'S': // strings            case 'p': case 'P': // padded strings                s = va_arg(ap, char*);                actualLen = strLength((char*)BUFFER_DATA(src), len); // may be less than 'len'                if (s) {                    sprintf(s, "%.*s", actualLen, BUFFER_DATA(src)); // copy and terminate                    // ??? trim trailing space?                }                binAdvanceBuffer(src, ((actualLen<len)?actualLen+1:len)); // incl terminator                break;            case 'b': case 'B':                b = va_arg(ap, UInt8*);                if (b) {                     memcpy(b, BUFFER_DATA(src), len);                 }                binAdvanceBuffer(src, len);                break;            case 'g': case 'G':                gp = va_arg(ap, GPSPoint_t*);                if (gp) {                    if ((len >= 6) && (len < 8)) {                        gpsPointDecode6(gp, BUFFER_DATA(src));                    } else                    if (len >= 8) {                        gpsPointDecode8(gp, BUFFER_DATA(src));                    } else {                        // invalid format                    }                }                binAdvanceBuffer(src, len);                break;            case 'z': case 'Z': // zero filled                binAdvanceBuffer(src, len);                break;            default:                // invalid format (unrecognized type)                logERROR(LOGSRC,"Invalid format at #%d (unrecognized type)\n", fldCnt);                return -1;        }    }    return fldCnt;}// ----------------------------------------------------------------------------

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久久久久久久包黑料 | 亚洲精品视频一区| 欧美精选一区二区| 成人免费的视频| 日韩高清电影一区| 亚洲精选视频免费看| 国产视频在线观看一区二区三区| 欧美精品亚洲一区二区在线播放| 成人福利视频网站| 极品瑜伽女神91| 偷窥国产亚洲免费视频| 亚洲精品国产a| 国产精品久久久久久久久果冻传媒 | 成人av在线影院| 裸体歌舞表演一区二区| 香港成人在线视频| 亚洲国产色一区| 亚洲人午夜精品天堂一二香蕉| 久久久蜜桃精品| 日韩一区二区三区电影| 欧美日韩电影一区| 欧美午夜寂寞影院| 色婷婷综合激情| www.视频一区| 99视频在线精品| 成人av免费在线观看| 国产91对白在线观看九色| 国产一区二区在线免费观看| 喷水一区二区三区| 日韩专区一卡二卡| 日韩极品在线观看| 日本中文字幕一区| 蜜乳av一区二区| 日本成人在线不卡视频| 日本午夜一区二区| 美洲天堂一区二卡三卡四卡视频| 秋霞午夜av一区二区三区| 青青国产91久久久久久| 蜜臀av一区二区| 久久国产精品区| 激情国产一区二区| 国产一区二区在线免费观看| 国产大片一区二区| av网站一区二区三区| av网站免费线看精品| 欧美成人伊人久久综合网| 欧美一级黄色录像| 精品av久久707| 久久精品欧美日韩精品| 国产精品私人影院| 亚洲欧洲在线观看av| 亚洲黄色小视频| 五月激情六月综合| 久久er99热精品一区二区| 国产高清视频一区| 91浏览器在线视频| 欧美日韩成人一区| 久久综合色8888| ...av二区三区久久精品| 一区二区三区在线观看欧美| 视频一区中文字幕| 国产最新精品精品你懂的| 成人免费毛片a| 欧美在线一区二区三区| 91麻豆精品国产91久久久更新时间| 精品久久国产97色综合| 国产精品日韩精品欧美在线| 亚洲国产精品尤物yw在线观看| 蜜桃在线一区二区三区| 成人黄色av电影| 欧美精品v日韩精品v韩国精品v| 久久免费美女视频| 一区二区三区精品在线观看| 久久激情五月激情| 97精品国产露脸对白| 7878成人国产在线观看| 国产日韩综合av| 亚洲国产欧美在线人成| 极品少妇一区二区三区精品视频| 不卡的看片网站| 在线成人高清不卡| 《视频一区视频二区| 男人的天堂亚洲一区| av毛片久久久久**hd| 日韩视频在线一区二区| 日韩久久一区二区| 另类综合日韩欧美亚洲| 日本韩国一区二区三区| 精品999久久久| 亚洲成人免费视| 成人动漫中文字幕| 欧美mv日韩mv亚洲| 亚洲成人福利片| 不卡欧美aaaaa| 精品成人一区二区三区| 天堂在线亚洲视频| 色综合久久中文综合久久97| 久久久国产精品麻豆 | 国产精品亚洲成人| 51精品视频一区二区三区| 中文字幕一区视频| 国产精品自拍一区| 777亚洲妇女| 亚洲影院在线观看| 99久精品国产| 亚洲精品在线观| 免费观看在线综合| 一区二区三区电影在线播| 国产精品一区免费视频| 91精品国产91久久综合桃花| 一区二区三区在线视频观看58| 懂色av噜噜一区二区三区av| 欧美大尺度电影在线| 日韩黄色免费电影| 欧美日韩久久久一区| 一区二区三区中文字幕电影| 不卡影院免费观看| 国产三级精品三级在线专区| 激情欧美日韩一区二区| 日韩视频免费观看高清完整版 | 欧美欧美欧美欧美| 一级日本不卡的影视| 91在线精品秘密一区二区| 欧美激情在线一区二区| 国产不卡在线一区| 国产日韩欧美综合在线| 国产一区二区三区香蕉| 精品国产乱码久久久久久浪潮| 蜜臀av性久久久久蜜臀aⅴ| 欧美精品一卡两卡| 青草国产精品久久久久久| 91精品国产综合久久久久久久久久 | 欧美日韩一区二区三区高清| 亚洲免费观看高清完整| 色婷婷精品久久二区二区蜜臂av| 成人欧美一区二区三区在线播放| 成人av电影免费观看| 亚洲欧洲av另类| 色婷婷av一区二区三区软件 | 亚洲国产精品久久久久婷婷884 | 91精品国产欧美一区二区18| 日韩在线a电影| 欧美变态口味重另类| 狠狠v欧美v日韩v亚洲ⅴ| 国产日韩精品一区二区三区在线| 国产精品亚洲视频| 最新欧美精品一区二区三区| 一本色道久久综合亚洲aⅴ蜜桃| 一区二区三区四区国产精品| 欧美日韩www| 麻豆精品在线播放| 欧美高清在线一区| 91视频在线观看| 亚洲国产日韩在线一区模特| 欧美一区二区在线不卡| 激情文学综合网| 国产精品久久久久久福利一牛影视 | 国产精品免费丝袜| 99re66热这里只有精品3直播| 亚洲一区二区三区精品在线| 日韩免费高清视频| 成人手机在线视频| 亚洲国产日日夜夜| 精品电影一区二区| 91麻豆精品在线观看| 日韩vs国产vs欧美| 欧美国产欧美亚州国产日韩mv天天看完整| 99久久精品费精品国产一区二区| 亚洲一卡二卡三卡四卡五卡| 日韩免费成人网| 91在线云播放| 久久国产免费看| 亚洲乱码中文字幕综合| 日韩三级视频在线看| 99视频超级精品| 美国av一区二区| 亚洲日本青草视频在线怡红院 | 91精品国产欧美一区二区| 国产精品中文字幕欧美| 亚洲国产一区二区视频| 久久精品欧美日韩精品| 欧美三级蜜桃2在线观看| 国产乱子伦一区二区三区国色天香 | 成人激情校园春色| 青椒成人免费视频| 综合在线观看色| 2023国产精品自拍| 欧美亚洲综合一区| 国产成人av影院| 日韩中文欧美在线| 亚洲精品水蜜桃| 久久精品一区蜜桃臀影院| 欧美日韩国产精品自在自线| 成人高清视频在线| 极品少妇一区二区三区精品视频 | 国产亚洲综合色| 911国产精品| 91福利在线看| 成人av高清在线| 国产精品888|