Ejemplo n.º 1
0
BOOL util_strcmp(char *str1, char *str2)
{
    int l1 = util_strlen(str1), l2 = util_strlen(str2);

    if (l1 != l2)
        return FALSE;

    while (l1--)
    {
        if (*str1++ != *str2++)
            return FALSE;
    }

    return TRUE;
}
Ejemplo n.º 2
0
BOOL util_strncmp(char *str1, char *str2, int len)
{
    int l1 = util_strlen(str1), l2 = util_strlen(str2);

    if (l1 < len || l2 < len)
        return FALSE;

    while (len--)
    {
        if (*str1++ != *str2++)
            return FALSE;
    }

    return TRUE;
}
Ejemplo n.º 3
0
int util_strcpy(char *dst, char *src)
{
    int l = util_strlen(src);

    util_memcpy(dst, src, l + 1);

    return l;
}
Ejemplo n.º 4
0
//author:wangxi
// isreset: if evt process finished, if false, evt will bypass to other routinue, other event not pass to outside
// retval: if do exchange successful, return true;
static bool_t gmenu_input_data_exchange(u_int8 checktype, bool_t *isbypass)
{
    bool_t isExchange = FALSE;
    bool_t isBypass = TRUE;

    UTIL_ASSERT_VALUE(input, 0, FALSE);

    if (input->cfg.inputdetector && (0 != (input->cfg.checktype & checktype)))
    {
        u_int32 val = 0;
        u_int16 len = util_strlen(input->charbuffer);
        u_int16 echostatus;
        
        switch (input->cfg.type)
        {
            case GMENU_INPUT_TYPE_VALUE:
                val = atoi(input->charbuffer);
                //util_bit32_dump("mask=\n",input->cfg.checktype);
                //util_bit32_dump("type=\n",checktype);
                //MY_DEBUG("DOEXCHANGE[%s]_BEGIN\n", input->charbuffer);
                //MY_DEBUG(">>>>>>(%d)\n", val);
                echostatus = (*input->cfg.inputdetector)(checktype, (p_void)val, len, input->cfg.param);
                //util_bit32_dump(">>>>ECHO:\n",echostatus);
                if (INPUT_EXCHANGE_STATUS(echostatus))
                {
                    gmenu_input_makestr(GMENU_INPUT_TYPE_VALUE, input->charbuffer, (p_void)val);
                    isExchange = TRUE;
                    //MY_DEBUG("<<<<<<[%s]\n", input->charbuffer);
                }
                if (INPUT_BYPASS_STATUS(echostatus) & checktype)
                {
                    //MY_DEBUG("-------- BYPASS-----\n");
                    isBypass = FALSE;
                }
                //MY_DEBUG("DOEXCHANGE[%s]_END  ret=%d\n", input->charbuffer, isExchange);
                break;
            case GMENU_INPUT_TYPE_CHAR:
                echostatus = (*input->cfg.inputdetector)(checktype, (p_void)input->charbuffer, len, input->cfg.param);
                isExchange = TRUE;
                isBypass = TRUE;
                break;
            default:
                break;
        }
    }
    
    if (isbypass)(*isbypass) = isBypass;
    
    return isExchange;
}
Ejemplo n.º 5
0
int util_stristr(char *haystack, int haystack_len, char *str)
{
    char *ptr = haystack;
    int str_len = util_strlen(str);
    int match_count = 0;

    while (haystack_len-- > 0)
    {
        char a = *ptr++;
        char b = str[match_count];
        a = a >= 'A' && a <= 'Z' ? a | 0x60 : a;
        b = b >= 'A' && b <= 'Z' ? b | 0x60 : b;

        if (a == b)
        {
            if (++match_count == str_len)
                return (ptr - haystack);
        }
        else
            match_count = 0;
    }

    return -1;
}