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,

-- 


Reply via email to