ajwillia-ms pushed a commit to branch master. http://git.enlightenment.org/tools/edi.git/commit/?id=04dda232b6ca216ab8f6e99ed2752fad8a673d8f
commit 04dda232b6ca216ab8f6e99ed2752fad8a673d8f Author: Andy Williams <[email protected]> Date: Fri Nov 28 08:55:42 2014 +0000 Use an in-memory file for new elm_codes by default. This is overridden as before by calling elm_code_file_open which will free the previously set file on that elm_code instance --- elm_code/bin/elm_code_test_main.c | 1 - elm_code/lib/Elm_Code.h | 9 +++++---- elm_code/lib/elm_code.c | 2 ++ elm_code/lib/elm_code_diff_widget.c | 2 -- elm_code/lib/elm_code_file.c | 3 +++ elm_code/tests/elm_code_file_test_memory.c | 11 ++++------- elm_code/tests/elm_code_test_widget.c | 2 +- src/bin/edi_consolepanel.c | 1 - src/bin/edi_logpanel.c | 1 - 9 files changed, 15 insertions(+), 17 deletions(-) diff --git a/elm_code/bin/elm_code_test_main.c b/elm_code/bin/elm_code_test_main.c index 38c5ab0..698e411 100644 --- a/elm_code/bin/elm_code_test_main.c +++ b/elm_code/bin/elm_code_test_main.c @@ -38,7 +38,6 @@ _elm_code_test_welcome_setup(Evas_Object *parent) Evas_Object *widget; code = elm_code_create(); - elm_code_file_new(code); widget = elm_code_widget_add(parent, code); elm_code_widget_font_size_set(widget, 14); _append_line(code->file, "Hello World, Elm Code!"); diff --git a/elm_code/lib/Elm_Code.h b/elm_code/lib/Elm_Code.h index 30f323a..866ccc7 100644 --- a/elm_code/lib/Elm_Code.h +++ b/elm_code/lib/Elm_Code.h @@ -86,7 +86,7 @@ EAPI int elm_code_init(void); * * @return Elm Code's init counter value. * - * @see elm_code_init(). + * @see elm_code_init() * * @ingroup Init */ @@ -95,11 +95,12 @@ EAPI int elm_code_shutdown(void); /** * Create a new Elm Code instance * - * This method creates a new Elm Code instance which will need a - * backing file set for storage. + * This method creates a new Elm Code instance using an in-memory file for backing changes. + * A regular file can be set after creation if required. * Once an Elm Code has been created you can create widgets that render the content. * - * "return an allocated Elm_Code that references the given file + * @return an allocated Elm_Code that references the given file + * @see elm_code_file_open() */ EAPI Elm_Code *elm_code_create(); diff --git a/elm_code/lib/elm_code.c b/elm_code/lib/elm_code.c index 1c04f53..9b895f5 100644 --- a/elm_code/lib/elm_code.c +++ b/elm_code/lib/elm_code.c @@ -72,6 +72,8 @@ elm_code_create() ret = calloc(1, sizeof(Elm_Code)); + // create an in-memory backing for this elm_code by default + elm_code_file_new(ret); return ret; } diff --git a/elm_code/lib/elm_code_diff_widget.c b/elm_code/lib/elm_code_diff_widget.c index e833f85..7e577ed 100644 --- a/elm_code/lib/elm_code_diff_widget.c +++ b/elm_code/lib/elm_code_diff_widget.c @@ -94,7 +94,6 @@ EAPI Evas_Object *elm_code_diff_widget_add(Evas_Object *parent, Elm_Code *code) // left side of diff wcode1 = elm_code_create(); - elm_code_file_new(wcode1); widget_left = elm_code_widget_add(parent, wcode1); evas_object_size_hint_weight_set(widget_left, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); @@ -105,7 +104,6 @@ EAPI Evas_Object *elm_code_diff_widget_add(Evas_Object *parent, Elm_Code *code) // right side of diff wcode2 = elm_code_create(); - elm_code_file_new(wcode2); widget_right = elm_code_widget_add(parent, wcode2); evas_object_size_hint_weight_set(widget_right, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); diff --git a/elm_code/lib/elm_code_file.c b/elm_code/lib/elm_code_file.c index 9a431d0..6c1944e 100644 --- a/elm_code/lib/elm_code_file.c +++ b/elm_code/lib/elm_code_file.c @@ -53,6 +53,9 @@ EAPI Elm_Code_File *elm_code_file_new(Elm_Code *code) { Elm_Code_File *ret; + if (code->file) + elm_code_file_free(code->file); + ret = calloc(1, sizeof(Elm_Code_File)); code->file = ret; ret->parent = code; diff --git a/elm_code/tests/elm_code_file_test_memory.c b/elm_code/tests/elm_code_file_test_memory.c index ab7c063..cf4de29 100644 --- a/elm_code/tests/elm_code_file_test_memory.c +++ b/elm_code/tests/elm_code_file_test_memory.c @@ -6,16 +6,14 @@ START_TEST (elm_code_file_memory_lines) { - Elm_Code_File *file; Elm_Code *code; code = elm_code_create(); - file = elm_code_file_new(code); - ck_assert_uint_eq(0, elm_code_file_lines_get(file)); + ck_assert_uint_eq(0, elm_code_file_lines_get(code->file)); - elm_code_file_line_append(file, "a line", 6); + elm_code_file_line_append(code->file, "a line", 6); - ck_assert_uint_eq(1, elm_code_file_lines_get(file)); + ck_assert_uint_eq(1, elm_code_file_lines_get(code->file)); elm_code_free(code); } END_TEST @@ -27,8 +25,7 @@ START_TEST (elm_code_file_memory_tokens) Elm_Code *code; code = elm_code_create(); - file = elm_code_file_new(code); - + file = code->file; elm_code_file_line_append(file, "a line", 6); elm_code_file_line_token_add(file, 1, 2, 5, ELM_CODE_TOKEN_TYPE_COMMENT); diff --git a/elm_code/tests/elm_code_test_widget.c b/elm_code/tests/elm_code_test_widget.c index c79c66a..f6b0a46 100644 --- a/elm_code/tests/elm_code_test_widget.c +++ b/elm_code/tests/elm_code_test_widget.c @@ -19,7 +19,7 @@ START_TEST (elm_code_widget_token_render_simple_test) Evas_Textgrid_Cell cells[25]; code = elm_code_create(); - file = elm_code_file_new(code); + file = code->file; elm_code_file_line_append(file, "some \"test content\", 45", 23); line = elm_code_file_line_get(file, 1); length = line->length; diff --git a/src/bin/edi_consolepanel.c b/src/bin/edi_consolepanel.c index f2859dd..a840168 100644 --- a/src/bin/edi_consolepanel.c +++ b/src/bin/edi_consolepanel.c @@ -337,7 +337,6 @@ void edi_testpanel_add(Evas_Object *parent) code = elm_code_create(); _edi_test_code = code; - elm_code_file_new(code); widget = elm_code_widget_add(parent, code); elm_code_widget_font_size_set(widget, 12); diff --git a/src/bin/edi_logpanel.c b/src/bin/edi_logpanel.c index 0068159..f87d9d8 100644 --- a/src/bin/edi_logpanel.c +++ b/src/bin/edi_logpanel.c @@ -43,7 +43,6 @@ void edi_logpanel_add(Evas_Object *parent) Elm_Code *code; code = elm_code_create(); - elm_code_file_new(code); widget = elm_code_widget_add(parent, code); elm_code_widget_font_size_set(widget, 12); evas_object_size_hint_weight_set(widget, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); --
