summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrii Kroitor <an.kroitor@samsung.com>2016-11-15 14:51:18 +0200
committerAndrii Kroitor <an.kroitor@samsung.com>2016-11-29 16:05:28 +0200
commitf242b21f664fcf6ca988cae426efb22b7941db5f (patch)
tree564a7f81dc4422263d541e0c54b141a1e1046c4d
parentea51e36f2a61bf10b5b622a6a768d02757621a17 (diff)
downloadefl-f242b21f664fcf6ca988cae426efb22b7941db5f.tar.gz
eet: fix work on Windows
Work with file in-memory to solve T2244 eet -s is still not fixed because eet in-memory doesn't support signature yet.
-rw-r--r--src/bin/eet/eet_main.c41
1 files changed, 31 insertions, 10 deletions
diff --git a/src/bin/eet/eet_main.c b/src/bin/eet/eet_main.c
index a3652e873c..0ed74d9a75 100644
--- a/src/bin/eet/eet_main.c
+++ b/src/bin/eet/eet_main.c
@@ -249,14 +249,14 @@ do_eet_insert(const char *file,
void *data;
int size = 0;
FILE *f;
+ Eina_File *virtual_file;
- ef = eet_open(file, EET_FILE_MODE_READ_WRITE);
- if (!ef)
- ef = eet_open(file, EET_FILE_MODE_WRITE);
+ virtual_file = eina_file_virtualize_writable_from_file("virtual_file", file);
+ ef = eet_mmap(virtual_file);
if (!ef)
{
- ERR("cannot open for read+write: %s", file);
+ ERR("cannot open for read: %s", file);
exit(-1);
}
@@ -291,9 +291,16 @@ do_eet_insert(const char *file,
}
fclose(f);
+
eet_write_cipher(ef, key, data, size, compress, crypto_key);
free(data);
eet_close(ef);
+
+ if (!eina_file_written_file_save(virtual_file, file))
+ {
+ ERR("cannot save to file: %s", file);
+ exit(-1);
+ }
} /* do_eet_insert */
static void
@@ -308,14 +315,14 @@ do_eet_encode(const char *file,
int textlen = 0;
int size = 0;
FILE *f;
+ Eina_File *virtual_file;
- ef = eet_open(file, EET_FILE_MODE_READ_WRITE);
- if (!ef)
- ef = eet_open(file, EET_FILE_MODE_WRITE);
+ virtual_file = eina_file_virtualize_writable_from_file("virtual_file", file);
+ ef = eet_mmap(virtual_file);
if (!ef)
{
- ERR("cannot open for read+write: %s", file);
+ ERR("cannot open for read: %s", file);
exit(-1);
}
@@ -358,6 +365,12 @@ do_eet_encode(const char *file,
free(text);
eet_close(ef);
+
+ if (!eina_file_written_file_save(virtual_file, file))
+ {
+ ERR("cannot save to file: %s", file);
+ exit(-1);
+ }
} /* do_eet_encode */
static void
@@ -365,16 +378,24 @@ do_eet_remove(const char *file,
const char *key)
{
Eet_File *ef;
+ Eina_File *virtual_file;
- ef = eet_open(file, EET_FILE_MODE_READ_WRITE);
+ virtual_file = eina_file_virtualize_writable_from_file("virtual_file", file);
+ ef = eet_mmap(virtual_file);
if (!ef)
{
- ERR("cannot open for read+write: %s", file);
+ ERR("cannot open for read: %s", file);
exit(-1);
}
eet_delete(ef, key);
eet_close(ef);
+
+ if (!eina_file_written_file_save(virtual_file, file))
+ {
+ ERR("cannot save to file: %s", file);
+ exit(-1);
+ }
} /* do_eet_remove */
static void