elm_code: Add a save_as API call for writing buffers to a new file
authorAndy Williams <andy@andywilliams.me>
Tue, 16 May 2017 22:19:34 +0000 (23:19 +0100)
committerAndy Williams <andy@andywilliams.me>
Tue, 16 May 2017 22:19:34 +0000 (23:19 +0100)
src/lib/elementary/elm_code_file.c
src/lib/elementary/elm_code_file.h
src/tests/elementary/elm_code_test_basic.c

index 1094929..97c3659 100644 (file)
@@ -210,6 +210,16 @@ EAPI void elm_code_file_save(Elm_Code_File *file)
      }
 }
 
+EAPI void elm_code_file_save_as(Elm_Code_File *file, const char *path)
+{
+   Eina_File *newfile;
+   newfile = eina_file_open(path, EINA_FALSE);
+   file->file = newfile;
+   file->mime = efreet_mime_type_get(path);
+
+   elm_code_file_save(file);
+}
+
 EAPI void elm_code_file_free(Elm_Code_File *file)
 {
    Elm_Code_Line *l;
index 9bafe43..80842bf 100644 (file)
@@ -43,6 +43,8 @@ EAPI Elm_Code_File *elm_code_file_open(Elm_Code *code, const char *path);
 
 EAPI void elm_code_file_save(Elm_Code_File *file);
 
+EAPI void elm_code_file_save_as(Elm_Code_File *file, const char *path);
+
 EAPI void elm_code_file_free(Elm_Code_File *file);
 
 EAPI void elm_code_file_close(Elm_Code_File *file);
index 5f6827b..887db8d 100644 (file)
@@ -42,9 +42,28 @@ START_TEST (elm_code_open_test)
 }
 END_TEST
 
+START_TEST (elm_code_save_as_test)
+{
+   char *path = TESTS_SRC_DIR "/testfile.txt";
+   char *dest = "/tmp/dest.txt";
+   Elm_Code *code;
+
+   elm_init(1, NULL);
+   code = elm_code_create();
+   elm_code_file_open(code, path);
+
+   elm_code_file_save_as(code->file, dest);
+   ck_assert(ecore_file_exists(dest));
+
+   ecore_file_remove(dest);
+   elm_code_free(code);
+   elm_shutdown();
+}
+END_TEST
 
 void elm_code_test_basic(TCase *tc)
 {
    tcase_add_test(tc, elm_code_create_test);
    tcase_add_test(tc, elm_code_open_test);
+   tcase_add_test(tc, elm_code_save_as_test);
 }