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);

-- 


Reply via email to