getlexeme(char *start, char *end, int *len)
{
char *ptr;
- int charlen;
- while (start < end && (charlen = pg_mblen(start)) == 1 && t_iseq(start, '_'))
- start += charlen;
+ while (start < end && t_iseq(start, '_'))
+ start += pg_mblen(start);
ptr = start;
if (ptr >= end)
return NULL;
- while (ptr < end && !((charlen = pg_mblen(ptr)) == 1 && t_iseq(ptr, '_')))
- ptr += charlen;
+ while (ptr < end && !t_iseq(ptr, '_'))
+ ptr += pg_mblen(ptr);
*len = ptr - start;
return start;
switch (state->state)
{
case WAITOPERAND:
- if (charlen == 1 && t_iseq(state->buf, '!'))
+ if (t_iseq(state->buf, '!'))
{
(state->buf)++;
*val = (int32) '!';
return OPR;
}
- else if (charlen == 1 && t_iseq(state->buf, '('))
+ else if (t_iseq(state->buf, '('))
{
state->count++;
(state->buf)++;
errmsg("modifiers syntax error")));
*lenval += charlen;
}
- else if (charlen == 1 && t_iseq(state->buf, '%'))
+ else if (t_iseq(state->buf, '%'))
*flag |= LVAR_SUBLEXEME;
- else if (charlen == 1 && t_iseq(state->buf, '@'))
+ else if (t_iseq(state->buf, '@'))
*flag |= LVAR_INCASE;
- else if (charlen == 1 && t_iseq(state->buf, '*'))
+ else if (t_iseq(state->buf, '*'))
*flag |= LVAR_ANYEND;
else
{
}
break;
case WAITOPERATOR:
- if (charlen == 1 && (t_iseq(state->buf, '&') || t_iseq(state->buf, '|')))
+ if (t_iseq(state->buf, '&') || t_iseq(state->buf, '|'))
{
state->state = WAITOPERAND;
*val = (int32) *(state->buf);
(state->buf)++;
return OPR;
}
- else if (charlen == 1 && t_iseq(state->buf, ')'))
+ else if (t_iseq(state->buf, ')'))
{
(state->buf)++;
state->count--;
}
else if (*(state->buf) == '\0')
return (state->count) ? ERR : END;
- else if (charlen == 1 && !t_iseq(state->buf, ' '))
+ else if (!t_iseq(state->buf, ' '))
return ERR;
break;
default: