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

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

?? esc_seq.cpp

?? 使用BorlandC++4.5編譯的一個MUD客戶端程序
?? CPP
字號:
// esc_seq.cpp - escape sequence parser methods

#include <stdio.h>
#include <string.h>

#include "debug.hpp"
#include "esc_seq.hpp"

// These will need some adjustment to parse out the position code

static const char   ESCAPE = 27; // VT102 command prefix - escape

// ------------------------------------------------------------------------
// constructor
//
//   buf - null-terminated string
//
// The sense of the parser is that a function returns nonzero if it
// successfully parsed part of an escape sequence.
// -  Functions internally set the _isComplete to true if they
//    complete a sequence, and set _type appropriately.
// -  Functions that increment the buffer pointer are responsible for
//    checking for end of string.

EscapeSequence::EscapeSequence(char * buf)
: _type(NONE),
  _isComplete(0),
  _isEscapeSequence(1),
  _nParameters(0)
{
    ASSERT(NULL != buf, "Null pointer forbidden");
    
    if (_EndOfString(buf))       // Empty string?
        _isEscapeSequence = 0;
    else if (0 == _ParseEscapeSequence(buf))
        _isEscapeSequence = 0;
}

// ------------------------------------------------------------------------
// _SetType - sets the type for this, and assumes that it is now complete!
void EscapeSequence::_SetType(_Type type)
{
    _type = type;
    _isComplete = 1;
}

int EscapeSequence::_ParseEscapeSequence(char * buf)
{
    if (*buf == ESCAPE)
    {
        ++ buf; // Great!  Parsed a character
        if (_EndOfString(buf))
            return 1;           // Valid, but end of string

        return (_ScrollReverse(buf)
                || _LeftSquareBracket(buf));
    };
    return 0; // Not escape sequence
}

// ------------------------------------------------------------------------
// _ScrollReverse -- This is actually the reverse-newline sequence
//
int EscapeSequence::_ScrollReverse(char * buf)
{
    if (*buf == 'M')       // Reverse scroll code?
    {
        _SetType(REV_NEWLINE);
        return 1;
    };
    return 0;
}

// ------------------------------------------------------------------------
// Most escape sequences are prefixed by "Esc-["
//
int EscapeSequence::_LeftSquareBracket(char * buf)
{
    int ret_val = 0;       // Default is to assume that this is invalid
    
    if (*buf != '\[')
        ret_val = 0;
    else
    {    
        ++ buf;
        if (_EndOfString(buf))         // No more string
            ret_val = 1;
        else if (0 == _GetParameters(&buf)) // Not a valid sequence?
            ret_val = 0;
        else if (_EndOfString(buf)) // No terminator, not finished
            ret_val = 1;
        else
        {
            switch (*buf)          // Get type from terminator
            {
              case 'J':            // Might be a clear screen if parameter = 2
                if (1 == ParameterCount() && Parameter(0) == 2)
                {
                    _SetType(CLRSCR);
                    ret_val = 1;
                };
                break;
                
              case 'K':                // CLREOL
                if (0 == _nParameters) // Must have no parameters
                {
                    _SetType(CLREOL);
                    ret_val = 1;
                };
                break;
                
              case 'H':                        // Cursor move
                if (2 == ParameterCount())     // Exactly two parameters?
                {
                    _SetType(CMOVE);
                    ret_val = 1;
                };
                break;
                
              case 'r':                    // Set scroll region 
                if (2 == ParameterCount()) // Exactly two parameters?
                {
                    _SetType(SCROLL);
                    ret_val = 1;
                };
                break;
                
              case 'm':            // Ansi screen color/attribute sequence
                _SetType(ANSI_COLOR);
                ret_val = 1; 
                break;
                
              default:             // Not escape sequence
                break;
            };
        };
    };
    return ret_val; // No match
}
        
// ------------------------------------------------------------------------
// _GetParameters - Count the parameters.
//
// Leaves the pointer buf pointing at the first character after the
// parameters, which may be end-of-string.
//
// Returns:
//   zero if for some reason this can't be an escape sequence
//
int EscapeSequence::_GetParameters(char ** buf)
{
    ASSERT(NULL != buf, "Invalid pointer?");
    ASSERT(NULL != *buf, "Invalid string?");
    
    int ret_val = 1; // So far, this is an escape sequence

    int value;           // Scanned numeric value
    int chars_read;      // Number of characters scanned from string
    int fields_scanned;  // Number of fields matched
    while (1)          // Loop forever
    {
        // Check for integer value first
        
        fields_scanned = sscanf(*buf, "%d%n", &value, &chars_read);
        if (0 == fields_scanned) // Nothing scanned
            break;
        else if (1 == fields_scanned)
        {
            if (_nParameters >= 20)
            {
                // Give up on this escape sequence--too many parameters.
                ret_val = 0; 
                break;
            };
            _parameters[_nParameters] = value;
            ++ _nParameters;
            *buf += chars_read; // Move to next parameter
        };

        // Check for semicolon or terminator
        if (_EndOfString(*buf))          // End of string, not finished
            break;
        else if (**buf == ';')           // Another parameter?
            ++ *buf;                     // Keep going
        else
            break;                       // No more parameters, exit
    };
    return ret_val; 
}

// EOF //

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕免费在线观看视频一区| 国产精品一区二区在线播放| 精品在线一区二区| 91最新地址在线播放| 日韩精品一区二区三区在线观看 | 中文字幕中文在线不卡住| 婷婷夜色潮精品综合在线| 成人av电影在线播放| 51精品秘密在线观看| 亚洲日本护士毛茸茸| 国产真实乱子伦精品视频| 欧美三级欧美一级| 成人免费一区二区三区在线观看| 国产尤物一区二区| 91精品国产高清一区二区三区 | 精品福利二区三区| 亚洲香肠在线观看| 一本色道久久加勒比精品| 中文字幕国产一区| 国产呦萝稀缺另类资源| 欧美tk—视频vk| 秋霞电影网一区二区| 欧美三级日韩三级| 亚洲成精国产精品女| 精品1区2区3区| 亚洲午夜久久久久| 在线精品视频免费观看| 亚洲你懂的在线视频| 91在线云播放| 一区二区三区精品视频| 91视频你懂的| 亚洲三级免费电影| 一本色道a无线码一区v| 一区二区三区四区蜜桃| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲欧美日韩中文播放| 91国偷自产一区二区开放时间| 亚洲精品成人少妇| 色综合久久中文字幕| 亚洲香蕉伊在人在线观| 3d动漫精品啪啪一区二区竹菊| 毛片不卡一区二区| 欧美精品一区二区三区四区| 国产精品91一区二区| 国产精品二三区| 欧美亚洲日本一区| 蜜桃av一区二区三区电影| 日韩精品一区二区三区在线播放| 国产精品自拍毛片| 亚洲免费观看高清完整版在线 | caoporn国产一区二区| 日韩毛片高清在线播放| 欧美日韩中文字幕一区二区| 久久9热精品视频| 国产精品美女久久久久久久久| 一本久道中文字幕精品亚洲嫩| 日韩极品在线观看| 久久久亚洲精华液精华液精华液| 91在线一区二区三区| 免费人成精品欧美精品| 国产精品美女视频| 成人黄色国产精品网站大全在线免费观看 | 欧美吻胸吃奶大尺度电影| 日韩成人精品在线观看| 26uuu国产电影一区二区| 粉嫩aⅴ一区二区三区四区五区| 亚洲视频在线一区观看| 在线播放一区二区三区| 国产黑丝在线一区二区三区| 亚洲影院理伦片| 久久久久久久电影| 欧美日韩综合在线| 大桥未久av一区二区三区中文| 亚洲成人tv网| 中文字幕日韩欧美一区二区三区| 国产成a人无v码亚洲福利| 亚洲天堂a在线| 欧美成人性福生活免费看| 成年人国产精品| 麻豆freexxxx性91精品| 亚洲日本在线视频观看| 欧美精品一区二区三区蜜桃视频 | 亚洲高清免费视频| 中文字幕欧美区| 精品剧情v国产在线观看在线| 色哟哟一区二区在线观看| 国产精品综合一区二区三区| 日本中文在线一区| 一区二区久久久久| 国产精品情趣视频| 精品欧美乱码久久久久久| 欧美亚洲综合一区| 91小宝寻花一区二区三区| 国产精品自在在线| 久久99国产精品免费网站| 午夜欧美视频在线观看| 亚洲精品高清在线观看| 欧美主播一区二区三区美女| 国产精品综合久久| 午夜精品福利视频网站| 亚洲男帅同性gay1069| 久久久久国产精品厨房| 日韩精品一区二区三区在线播放| 欧美日韩国产三级| 91免费精品国自产拍在线不卡| a美女胸又www黄视频久久| 丰满少妇久久久久久久| 国产盗摄视频一区二区三区| 国产精品一区免费在线观看| 国模一区二区三区白浆| 久久av中文字幕片| 麻豆免费精品视频| 青椒成人免费视频| 久久精品国产一区二区三区免费看 | 亚洲美女屁股眼交| 亚洲女同女同女同女同女同69| 亚洲手机成人高清视频| 亚洲精品中文字幕乱码三区| 一区二区在线观看免费视频播放| 亚洲精品v日韩精品| 亚洲综合一二区| 午夜天堂影视香蕉久久| 日韩精品福利网| 国内精品伊人久久久久av影院| 国产麻豆精品视频| 成人av资源在线| 91麻豆免费视频| 欧美区视频在线观看| 欧美一区二区三区喷汁尤物| 欧美成va人片在线观看| 久久久99精品久久| 国产精品毛片久久久久久| 日韩美女啊v在线免费观看| 一区二区国产盗摄色噜噜| 亚洲成人久久影院| 麻豆一区二区99久久久久| 国产专区欧美精品| 99国产精品久| 欧美一区二区视频观看视频| 久久久精品人体av艺术| 亚洲色图欧洲色图婷婷| 午夜成人免费电影| 国产成人精品一区二区三区四区| 99精品偷自拍| 91精品国产综合久久香蕉的特点 | 精品少妇一区二区三区日产乱码 | 亚洲高清视频在线| 蜜桃一区二区三区在线| 欧美性猛片xxxx免费看久爱| 欧美性感一区二区三区| 日韩一级二级三级精品视频| 国产精品国产精品国产专区不蜜 | 久久久久国产精品麻豆| 亚洲激情图片qvod| 久草在线在线精品观看| 99精品视频在线播放观看| 51精品国自产在线| 国产精品久久久久久久久动漫| 午夜不卡av免费| 91天堂素人约啪| 精品久久久网站| 午夜一区二区三区在线观看| 成人涩涩免费视频| 欧美一区二区观看视频| 亚洲欧洲精品一区二区精品久久久| 日本不卡一区二区| 99精品国产一区二区三区不卡| 精品日产卡一卡二卡麻豆| 亚洲综合成人在线| 成人国产一区二区三区精品| 精品91自产拍在线观看一区| 午夜一区二区三区在线观看| 欧美日本一区二区三区| 成人av在线资源网| 欧美日韩电影在线播放| 国产精品美女一区二区三区| 美女视频网站久久| 欧美午夜理伦三级在线观看| 国产精品剧情在线亚洲| 国产一区欧美日韩| 91精品久久久久久蜜臀| 亚洲国产日韩综合久久精品| 在线欧美日韩国产| 中文字幕一区二| 成人黄色软件下载| 久久理论电影网| 国产剧情一区二区| 日韩欧美专区在线| 日韩精品高清不卡| 欧美日韩精品是欧美日韩精品| 亚洲视频在线观看三级| 成人18视频在线播放| 国产精品美女一区二区在线观看| 国产成人免费视频一区| 久久一日本道色综合| 国产精品自拍毛片| 国产亚洲一区二区三区在线观看| 狠狠色丁香婷婷综合| 久久综合久色欧美综合狠狠| 加勒比av一区二区|