From d1aa0fff8042820894e0efb3988b18d5c2ef3bbe Mon Sep 17 00:00:00 2001 From: Jan Breuer <jan.breuer@jaybee.cz> Date: 周五, 13 11月 2015 06:20:03 +0800 Subject: [PATCH] Resolve #65: Infinite loop with non ASCII character --- libscpi/src/lexer.c | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/libscpi/src/lexer.c b/libscpi/src/lexer.c index 512655f..98c6f74 100644 --- a/libscpi/src/lexer.c +++ b/libscpi/src/lexer.c @@ -642,6 +642,8 @@ state->pos--; break; } + } else { + break; } } } @@ -885,6 +887,26 @@ } /** + * Detect specified character + * @param state + * @param token + * @return + */ +int scpiLex_SpecificCharacter(lex_state_t * state, scpi_token_t * token, char chr) { + token->ptr = state->pos; + + if (skipChr(state, chr)) { + token->len = 1; + token->type = SCPI_TOKEN_SPECIFIC_CHARACTER; + } else { + token->len = 0; + token->type = SCPI_TOKEN_UNKNOWN; + } + + return token->len; +} + +/** * Detect token New line * @param state * @param token -- Gitblit v1.9.1