ajwillia-ms pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=269affe753c4e79b230cf3149235f66e036d560d
commit 269affe753c4e79b230cf3149235f66e036d560d Author: Andy Williams <a...@andywilliams.me> Date: Mon Feb 6 23:38:23 2017 +0000 elm_code: syntax fix for comments with an escaped blackslash --- src/lib/elementary/elm_code_syntax.c | 4 ++-- src/tests/elementary/elm_code_test_syntax.c | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/elm_code_syntax.c b/src/lib/elementary/elm_code_syntax.c index 804dfb6..4f2ed6a 100644 --- a/src/lib/elementary/elm_code_syntax.c +++ b/src/lib/elementary/elm_code_syntax.c @@ -215,7 +215,7 @@ elm_code_syntax_parse_line(Elm_Code_Syntax *syntax, Elm_Code_Line *line) { unsigned int start = i, end; - for (i++; i < length && (content[i] != '"' || content[i-1] == '\\'); i++) {} + for (i++; i < length && (content[i] != '"' || (content[i-1] == '\\' && content[i-2] != '\\')); i++) {} end = i; elm_code_line_token_add(line, start, end, 1, ELM_CODE_TOKEN_TYPE_STRING); @@ -226,7 +226,7 @@ elm_code_syntax_parse_line(Elm_Code_Syntax *syntax, Elm_Code_Line *line) { unsigned int start = i, end; - for (i++; i < length && (content[i] != '\'' || content[i-1] == '\\'); i++) {} + for (i++; i < length && (content[i] != '\'' || (content[i-1] == '\\' && content[i-2] != '\\')); i++) {} end = i; elm_code_line_token_add(line, start, end, 1, ELM_CODE_TOKEN_TYPE_STRING); diff --git a/src/tests/elementary/elm_code_test_syntax.c b/src/tests/elementary/elm_code_test_syntax.c index 8d08878..959034a 100644 --- a/src/tests/elementary/elm_code_test_syntax.c +++ b/src/tests/elementary/elm_code_test_syntax.c @@ -72,6 +72,7 @@ START_TEST (elm_code_syntax_c) _append_line(file, " */"); _append_line(file, "int main(int argc, char **argv)"); _append_line(file, "{"); + _append_line(file, " char c = '\\\\';"); _append_line(file, " // display a welcome greeting"); _append_line(file, " if (argc > 0)"); _append_line(file, " printf(\"Hello, %s!\\n\", argv[0]);"); @@ -90,6 +91,9 @@ START_TEST (elm_code_syntax_c) _assert_line_token_types(file, 6, 1, (Elm_Code_Token_Type[1]){ELM_CODE_TOKEN_TYPE_BRACE}); _assert_line_token_types(file, 7, 1, (Elm_Code_Token_Type[1]){ELM_CODE_TOKEN_TYPE_COMMENT}); _assert_line_token_types(file, 8, 5, (Elm_Code_Token_Type[5]){ELM_CODE_TOKEN_TYPE_KEYWORD, ELM_CODE_TOKEN_TYPE_BRACE, + _assert_line_token_types(file, 10, 4, (Elm_Code_Token_Type[4]){ELM_CODE_TOKEN_TYPE_KEYWORD, ELM_CODE_TOKEN_TYPE_BRACE, + ELM_CODE_TOKEN_TYPE_STRING, ELM_CODE_TOKEN_TYPE_BRACE}); + ELM_CODE_TOKEN_TYPE_BRACE, ELM_CODE_TOKEN_TYPE_NUMBER, ELM_CODE_TOKEN_TYPE_BRACE}); _assert_line_token_types(file, 9, 8, (Elm_Code_Token_Type[8]){ELM_CODE_TOKEN_TYPE_BRACE, ELM_CODE_TOKEN_TYPE_STRING, ELM_CODE_TOKEN_TYPE_BRACE, ELM_CODE_TOKEN_TYPE_BRACE, ELM_CODE_TOKEN_TYPE_NUMBER, ELM_CODE_TOKEN_TYPE_BRACE, --