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

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

?? cli_lib.c

?? 命令行在嵌入式系統的實現
?? C
?? 第 1 頁 / 共 3 頁
字號:
/************************************************************************
Copyright 200X - 200X+1.

filename     : CLI_Lib.c

description  : CLI內部庫實現.

author       : Woodhead

modification : Woodhead    create              2004-12-07
************************************************************************/

#include "Ros.h"
#include "CLI_Private.inc"
/**************************************************************************
* PROTOTYPE : _S32 _isfloatstr(_S8 * pStr)                                  *
* FUNCTION  : Check if a string is a valid float string?                  *
* INPUTS    : pStr = Pointer to the string to be checked                  *
* OUTPUTS   :                                                             *
* RETURNS   : 0 : YES; Other : NO                                         *
* REQUEST   : None                                                        *
* DATA TYPE : None                                                        *
* WORK FLOW : Omit                                                        *
* CALLED BY : Anywhere                                                    *
* OTHERS    : None                                                        *
***************************************************************************/
_U32 _isfloatstr(_S8 * pStr)
{
    _S8 * p;
    _S8 dot;  /* dot already found */

    if(pStr == G_NULL)
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    dot = 0;
    p = pStr;

    /* Check the first character */
    if(!isdigit(*p))
    {
        if(*p == '-')
        {
            p++;
        }
        else if((*p++) == '.')
        {
            dot = 1;
        }
        else
        {
            return G_FAILURE;
        }
    }

    /* Check the left part of the string */
    while(*p)
    {
        if( !isdigit(*p) )
        {
            if(*p == '.')
            {
                if(dot == 0)
                {
                    dot = 1;
                }
                else
                {
                    return G_FAILURE;
                }
            }
            else
            {
                return G_FAILURE;
            }
        }
        p++;
    }

    return G_SUCCESS;

} /* End of function _isfloatstr() */

/**************************************************************************
* PROTOTYPE : _S32 _isintstr(_S8 * pStr)                                    *
* FUNCTION  : Check if a string is a valid integer string?                *
* INPUTS    : pStr = Pointer to the string to be checked                  *
* OUTPUTS   :                                                             *
* RETURNS   : 0 : YES; Other : NO                                         *
* REQUEST   : None                                                        *
* DATA TYPE : None                                                        *
* WORK FLOW : Omit                                                        *
* CALLED BY : Anywhere                                                    *
* OTHERS    : None                                                        *
***************************************************************************/
_U32 _isintstr(_S8 * pStr)
{
    _S8 * p;

    if(pStr == G_NULL)
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    p = pStr;
    if((!isdigit(*p)) && (*p++ != '-'))
        return G_FAILURE;
    while(*p)
    {
        if( !isdigit(*p) )
            return G_FAILURE;
        p++;
    }

    return G_SUCCESS;
} /* End of function _isintstr() */

/**************************************************************************

 Function Name    : _btrim

 Description.     :

 Calls            :

 Called By        :

 Table Accessed   : None

 Table Updated    : None

 Input            :

 Output           :

 Return           :

 Others           : None

**************************************************************************/
_S8 * _btrim (_S8 * pStr)
{
    _S8* p = _ltrim(pStr);

    return _rtrim(p);
}

/**************************************************************************

 Function Name    : _ltrim

 Description.     :

 Calls            :

 Called By        :

 Table Accessed   : None

 Table Updated    : None

 Input            :

 Output           :

 Return           :

 Others           : None

**************************************************************************/
_S8* _ltrim(_S8 *pStr)
{
    _S8* p;

    if((pStr == G_NULL) || (*pStr == 0))
    {
        return pStr;
    }

    p = pStr;

    while (*p == ' ' || *p == '\t')
        p++;

    return p;
}

/**************************************************************************

 Function Name    : _rtrim

 Description.     :

 Calls            :

 Called By        :

 Table Accessed   : None

 Table Updated    : None

 Input            :

 Output           :

 Return           :

 Others           : None

**************************************************************************/
_S8* _rtrim(_S8 *pStr)
{
    _S8* p;

    if((pStr == G_NULL) || (*pStr == 0))
    {
        return pStr;
    }

    p = &pStr[strlen(pStr) - 1];

    while (*p == ' ' || *p == '\t')
        *p-- = '\0';

    return pStr;
}

/*==============================================================*/
/*      函數名      :_TrimString                                 */
/*      函數功能    :出去字符穿的前后空格                       */
/*      輸入參數    :_S8 * pacSrc                              */
/*      輸出參數    :_S8* pacDst                               */
/*      返回值      :無                                         */
/*      調用函數    :                                           */
/*      被調函數    :                                           */
/*==============================================================*/
_VOID _TrimString( _S8* pDst, _S8 * pSrc )
{
    _U32 ulFlag = 0;           /* 串標志,0:前,1:中,2:尾 */
    _U32 ulPreMidBlock = 1;    /* 前一字符第一個中間空格,0:no,1:yes */

    if (pDst == G_NULL || pSrc == G_NULL)
    {
        MT_ERRLOG(0);
        return ;
    }

    for( ; 0 != *pSrc; )
    {
        if( 0 == ulFlag )
        {
            if( 0x20 != *pSrc )
            {
                *pDst++ = *pSrc;
                ulFlag = 1;
                ulPreMidBlock = 0;
            }
            pSrc ++;
        }
        else
        {
            if( 0 == ulPreMidBlock )
            {
                if( 0x20 == *pSrc )
                {
                    ulPreMidBlock = 1;
                }
                *pDst++ = *pSrc++;
            }
            else
            {
                if( 0x20 != *pSrc )
                {
                    ulPreMidBlock = 0;
                    *pDst++ = *pSrc;
                }
                pSrc ++;
            }
        }
    }

    *pDst = 0 ;
    return ;
}

/**************************************************************************
* PROTOTYPE : _U32 strmatch(_S8 *s8Src, _S8 *s8Dest)                   *
* FUNCTION  : Matching the source string with destination string          *
* INPUTS    : s8Src  = Source string to be matched                        *
*             s8Dest = Destination string to be matched.                  *
* OUTPUTS   :                                                             *
* RETURNS   : 0 : G_SUCCESS; Other : FAILED                                 *
* REQUEST   : None                                                        *
* DATA TYPE : None                                                        *
* WORK FLOW : Omit                                                        *
* CALLED BY : Anywhere                                                    *
* OTHERS    : None                                                        *
***************************************************************************/
_U32 strmatch(_S8 *s8Src, _S8 *s8Dest)
{
    _S8 *src,*dest;

    if((s8Src == G_NULL) || (s8Dest == G_NULL))
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    src = s8Src;
    dest = s8Dest;

    /* Empty source string and longer source string cause an error */
    if((*src == 0) || (strlen(src) > strlen(dest)))
    {
        return G_FAILURE;
    }

    while(*src!=0)
    {
        if(toupper(*src)!=toupper(*dest))
        {
            return G_FAILURE;
        }
        src++;
        dest++;
    }

    /* The return value 0 stands for matching successfully */
    return G_SUCCESS;

} /* End of function strmatch() */

/**************************************************************************
* PROTOTYPE : _S32 _isempty(_S8 * pStr)                                     *
* FUNCTION  : Check if a string is an empty one?                          *
* INPUTS    : pStr = Pointer to the string to be checked                  *
* OUTPUTS   :                                                             *
* RETURNS   : 0 : YES; Other : NO                                         *
* REQUEST   : None                                                        *
* DATA TYPE : None                                                        *
* WORK FLOW : Omit                                                        *
* CALLED BY : Anywhere                                                    *
* OTHERS    : None                                                        *
***************************************************************************/
_U32 _isempty(_S8 * pStr)
{

    if(pStr == G_NULL)
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    if(*pStr == 0)
    {
        return G_SUCCESS;
    }
    else
    {
        return G_FAILURE;
    }

} /* End of function _isempty() */


/**************************************************************************
* PROTOTYPE : _S32 _VerifyFixedString(_S8 *pStr, _U32 ulLen)                *
* FUNCTION  : Check if a string is a valid Fixed-length one.              *
* INPUTS    : szNum = Pointer to the string to be checked                 *
*             ulLen= Fixed Length of string                              *
* OUTPUTS   :                                                             *
* RETURNS   : 0 : YES; Other : NO                                         *
* REQUEST   : None                                                        *
* DATA TYPE : None                                                        *
* WORK FLOW : Omit                                                        *
* CALLED BY : Anywhere                                                    *
* OTHERS    : None                                                        *
***************************************************************************/
_U32 _VerifyFixedString(_S8 *pStr, _U32 ulLen)
{
    if(pStr == G_NULL)
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    if((_U32)strlen(pStr) == ulLen)
    {
        return G_SUCCESS;
    }
    else
    {
        return G_FAILURE;
    }
} /* End of function _VerifyFixedString() */


/**************************************************************************
* PROTOTYPE : _S32 _VerifyAndCvtDwordI(_S8 *szNum, _S32 dwLow,           *
*                                     _S32 dwHigh, _S32 *pdwValue)        *
* FUNCTION  : Check a integer string and convert it.                      *
* INPUTS    : szNum = Pointer to the string to be checked                 *
*             fLow  = Lower limit                                         *
*             fHigh  = Higher limit                                       *
* OUTPUTS   : pfValue  = Unsigned Integer Value Converted                 *
* RETURNS   : 0 : G_SUCCESS; Other : FAILED                                 *
* REQUEST   : None                                                        *
* DATA TYPE : None                                                        *
* WORK FLOW : Omit                                                        *
* CALLED BY : Anywhere                                                    *
* OTHERS    : None                                                        *
***************************************************************************/
_U32 _VerifyAndCvtDwordI(_S8 * szNum, _S32 dwLow, _S32 dwHigh, _S32 * pdwValue)
{
    _S32 dwData;
    _S8 *pTemp, buf[32];

    if((szNum == G_NULL) || (pdwValue == G_NULL))
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    pTemp = _btrim(szNum);

    if (!strlen (pTemp) || _isintstr (pTemp) != 0)
        return G_FAILURE;

    dwData = atol (pTemp);
    EOS_Sprintf (buf, "%d", dwData);
    while (*pTemp == '0' && *(pTemp + 1) != 0)
        pTemp ++;
    if (strcmp (pTemp, buf))
        return G_FAILURE;

    if ((dwData < dwLow) || (dwData > dwHigh))
         return G_FAILURE;
    *pdwValue = dwData;

    return G_SUCCESS;

} /* End of function _VerifyAndCvtDwordI() */

/**************************************************************************
  Function Name    : _VerifyAndCvtDword

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
男男gaygay亚洲| 久久久不卡网国产精品一区| 亚洲国产精品久久艾草纯爱| 欧美三区免费完整视频在线观看| 亚洲小少妇裸体bbw| 538prom精品视频线放| 国产乱子伦一区二区三区国色天香| 欧美xfplay| 成人h精品动漫一区二区三区| 亚洲人成网站在线| 欧美日韩免费一区二区三区视频| 蜜臀精品一区二区三区在线观看| 久久综合丝袜日本网| 91片黄在线观看| 午夜激情一区二区| 久久久久久久久久看片| 一本色道**综合亚洲精品蜜桃冫| 婷婷综合五月天| 欧美国产一区二区| 欧美日韩亚洲综合一区二区三区| 精品一区二区免费看| 亚洲欧洲一区二区在线播放| 777午夜精品免费视频| 国产成人精品免费看| 亚洲国产一二三| 久久免费偷拍视频| 欧美午夜精品久久久久久孕妇| 美日韩一级片在线观看| 亚洲欧美电影院| 精品久久久网站| 一本久久a久久精品亚洲| 激情五月激情综合网| 一片黄亚洲嫩模| 国产清纯白嫩初高生在线观看91 | 欧美一区二区三区四区在线观看| 国产精品一区二区你懂的| 亚洲综合视频在线| 久久人人爽爽爽人久久久| 在线精品视频免费观看| 粉嫩av一区二区三区在线播放 | 欧美经典一区二区| 欧美高清激情brazzers| 91丨porny丨蝌蚪视频| 麻豆精品在线观看| 亚洲国产精品嫩草影院| 国产精品亲子伦对白| www久久精品| 欧美高清视频www夜色资源网| 色哟哟一区二区| 成人福利视频在线| 黄页视频在线91| 日本欧洲一区二区| 亚洲一区二区av电影| 中文字幕亚洲综合久久菠萝蜜| 日韩午夜电影在线观看| 欧美在线视频不卡| 91老司机福利 在线| 国产成人啪免费观看软件| 看电视剧不卡顿的网站| 亚洲va天堂va国产va久| 一区二区三区.www| 亚洲男人的天堂av| 18欧美亚洲精品| 中文字幕va一区二区三区| 国产视频一区在线播放| 国产婷婷色一区二区三区四区| 精品国产髙清在线看国产毛片| 欧美精品在欧美一区二区少妇| 91国产视频在线观看| 99久久er热在这里只有精品66| 国产精品系列在线播放| 国产福利一区二区三区| 狠狠色丁香久久婷婷综合丁香| 免费在线看一区| 久久电影国产免费久久电影| 蜜桃视频一区二区| 九九视频精品免费| 国内精品自线一区二区三区视频| 麻豆精品视频在线| 国产美女av一区二区三区| 国产精品1区二区.| 国产精品一区二区91| 国产成人av一区二区三区在线 | 欧美一三区三区四区免费在线看| 欧美男同性恋视频网站| 日韩欧美中文字幕一区| 欧美成人综合网站| 久久综合九色综合97婷婷女人| 国产午夜一区二区三区| 国产精品国产三级国产普通话三级 | 久久一二三国产| 国产精品拍天天在线| 一区二区不卡在线视频 午夜欧美不卡在| 一区二区三区欧美激情| 丝袜诱惑亚洲看片| 精品亚洲国产成人av制服丝袜 | 精品一区二区三区视频| 国产传媒一区在线| 91官网在线免费观看| 宅男噜噜噜66一区二区66| 精品久久久久香蕉网| 国产精品九色蝌蚪自拍| 午夜伊人狠狠久久| 国产成人综合视频| 欧美视频在线观看一区二区| 日韩视频免费直播| 国产精品视频观看| 日韩av二区在线播放| 国产精品99久久久久久久女警 | 欧美一级一区二区| 国产精品三级av| 一区二区三区成人在线视频| 寂寞少妇一区二区三区| 欧美主播一区二区三区| ww亚洲ww在线观看国产| 一区二区三区国产豹纹内裤在线| 久久精品999| 欧美亚洲图片小说| 久久精品欧美一区二区三区不卡| 亚洲精品中文字幕在线观看| 麻豆精品在线视频| 色国产综合视频| 26uuu国产电影一区二区| 亚洲一区成人在线| fc2成人免费人成在线观看播放 | 国产区在线观看成人精品 | 久久嫩草精品久久久精品一| 亚洲自拍都市欧美小说| 国产1区2区3区精品美女| 欧美美女视频在线观看| 国产精品人妖ts系列视频| 毛片一区二区三区| 精品视频在线免费看| 国产精品热久久久久夜色精品三区| 午夜国产精品一区| 91免费国产在线观看| 国产日韩欧美电影| 麻豆精品一区二区av白丝在线| 色噜噜久久综合| 国产欧美精品一区二区色综合朱莉| 男男视频亚洲欧美| 欧美日本在线观看| 亚洲一区二区三区影院| 99久久久精品免费观看国产蜜| 欧美xxxx老人做受| 免费人成网站在线观看欧美高清| 91精品福利视频| 亚洲另类色综合网站| 成人国产精品免费观看| 国产欧美在线观看一区| 精品亚洲porn| 日韩三级视频中文字幕| 五月天网站亚洲| 欧美性大战久久久久久久| 日韩理论电影院| 91丨porny丨最新| 1000精品久久久久久久久| 成人网男人的天堂| 日本一区二区三区在线观看| 国产精品一区二区男女羞羞无遮挡 | 亚洲精品一线二线三线| 久久99久久久欧美国产| 日韩一级片在线播放| 日本人妖一区二区| 欧美成人官网二区| 久久国产人妖系列| 久久一夜天堂av一区二区三区| 久久99精品国产麻豆婷婷| 欧美成人一级视频| 国产真实乱子伦精品视频| 久久综合九色欧美综合狠狠| 国产电影一区在线| 国产精品久久久久影院色老大| 波多野结衣欧美| 亚洲欧洲三级电影| 在线欧美日韩国产| 亚洲成人免费看| 欧美一区二区三区视频在线观看| 精品综合久久久久久8888| 久久久亚洲午夜电影| 成人黄色在线网站| 一区二区三区四区亚洲| 欧美日本一区二区在线观看| 精品一区二区三区久久| 国产欧美一区二区三区沐欲| 99综合影院在线| 亚洲超碰精品一区二区| 337p日本欧洲亚洲大胆色噜噜| 成人免费视频一区| 一区二区三区av电影| 欧美成va人片在线观看| 成人免费观看视频| 亚洲夂夂婷婷色拍ww47| 欧美一卡二卡在线| 大胆亚洲人体视频| 亚洲成av人片在线观看无码| 精品va天堂亚洲国产| 成人久久久精品乱码一区二区三区| 亚洲欧美激情小说另类| 欧美成人r级一区二区三区|