From 9cfe41ee003d636cbe100c01c419efe32ae63eab Mon Sep 17 00:00:00 2001 From: Andy Williams Date: Sun, 12 Apr 2015 23:04:46 +0100 Subject: [PATCH] syntax: reset status and hints when we reset token re-use elm_code methods when we do this in edi --- legacy/elm_code/src/lib/elm_code_line.c | 21 +++++++++++++++++++++ legacy/elm_code/src/lib/elm_code_line.h | 6 +++++- legacy/elm_code/src/lib/elm_code_parse.c | 2 ++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/legacy/elm_code/src/lib/elm_code_line.c b/legacy/elm_code/src/lib/elm_code_line.c index 852ed361f1..5195972be9 100644 --- a/legacy/elm_code/src/lib/elm_code_line.c +++ b/legacy/elm_code/src/lib/elm_code_line.c @@ -28,6 +28,17 @@ EAPI void elm_code_line_status_set(Elm_Code_Line *line, Elm_Code_Status_Type sta line->status = status; } +EAPI void elm_code_line_status_text_set(Elm_Code_Line *line, const char *text) +{ + if (line->status_text) + free(line->status_text); + + if (text) + line->status_text = strdup(text); + else + line->status_text = NULL; +} + EAPI void elm_code_line_token_add(Elm_Code_Line *line, int start, int end, int lines, Elm_Code_Token_Type type) { @@ -67,3 +78,13 @@ EAPI void elm_code_line_tokens_clear(Elm_Code_Line *line) line->tokens = NULL; } +EAPI void elm_code_line_status_clear(Elm_Code_Line *line) +{ + line->status = ELM_CODE_STATUS_TYPE_DEFAULT; + if (line->status_text) + { + free((char *)line->status_text); + line->status_text = NULL; + } +} + diff --git a/legacy/elm_code/src/lib/elm_code_line.h b/legacy/elm_code/src/lib/elm_code_line.h index 64e3e350b1..e3ad1286b2 100644 --- a/legacy/elm_code/src/lib/elm_code_line.h +++ b/legacy/elm_code/src/lib/elm_code_line.h @@ -32,7 +32,7 @@ typedef struct _Elm_Code_Line Eina_List *tokens; void *data; - const char *status_text; + char *status_text; } Elm_Code_Line; EAPI void elm_code_line_free(Elm_Code_Line *line); @@ -49,6 +49,10 @@ EAPI void elm_code_line_free(Elm_Code_Line *line); EAPI void elm_code_line_status_set(Elm_Code_Line *line, Elm_Code_Status_Type status); +EAPI void elm_code_line_status_text_set(Elm_Code_Line *line, const char *text); + +EAPI void elm_code_line_status_clear(Elm_Code_Line *line); + EAPI void elm_code_line_token_add(Elm_Code_Line *line, int start, int end, int lines, Elm_Code_Token_Type type); EAPI void elm_code_line_tokens_clear(Elm_Code_Line *line); diff --git a/legacy/elm_code/src/lib/elm_code_parse.c b/legacy/elm_code/src/lib/elm_code_parse.c index 9a70ca485e..02c878adf5 100644 --- a/legacy/elm_code/src/lib/elm_code_parse.c +++ b/legacy/elm_code/src/lib/elm_code_parse.c @@ -23,6 +23,7 @@ _elm_code_parse_line(Elm_Code *code, Elm_Code_Line *line) Eina_List *item; elm_code_line_tokens_clear(line); + elm_code_line_status_clear(line); EINA_LIST_FOREACH(code->parsers, item, parser) { @@ -41,6 +42,7 @@ _elm_code_parse_file(Elm_Code *code, Elm_Code_File *file) EINA_LIST_FOREACH(file->lines, item, line) { elm_code_line_tokens_clear(line); + elm_code_line_status_clear(line); } EINA_LIST_FOREACH(code->parsers, item, parser)