This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch master
in repository efm2.
View the commit online.
commit 7b525a9b2a2927a8747053c06e0162d759c07716
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
AuthorDate: Tue Jun 18 09:41:07 2024 +0100
meta - track changed flags and deleted meta keys
---
src/backends/default/meta.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/src/backends/default/meta.c b/src/backends/default/meta.c
index dcaebeb..de92471 100644
--- a/src/backends/default/meta.c
+++ b/src/backends/default/meta.c
@@ -43,6 +43,7 @@ typedef struct _Meta
{
const char *meta; // meta key
const char *data; // data in meta
+ Eina_Bool changed : 1;
} Meta;
static const char *_config_dir = NULL;
@@ -148,7 +149,8 @@ _meta_file_write(Meta_File *mf)
fprintf(f, "[Efm Meta]\n");
EINA_LIST_FOREACH(mf->list, l, m)
{
- fprintf(f, "%s=%s\n", m->meta, m->data);
+ if (m->data) fprintf(f, "%s=%s\n", m->meta, m->data);
+ m->changed = EINA_FALSE;
}
fclose(f);
}
@@ -332,13 +334,9 @@ meta_set(const char *path, const char *meta, const char *data)
if (!strcmp(m->meta, meta))
{ // found matching meta key -> modify or del it
if (!strcmp(m->data, data)) return;
- if (data) // modify it if data != NULL
- eina_stringshare_replace(&m->data, data);
- else
- { // NULL data - delete it
- mf->list = eina_list_remove_list(mf->list, l);
- _meta_free(m);
- }
+ // replaces data - if data is NULL it's deleted so keep entry
+ eina_stringshare_replace(&m->data, data);
+ m->changed = EINA_TRUE;
_meta_file_write_queue(mf); // queue writes for later
return;
}
@@ -348,6 +346,7 @@ meta_set(const char *path, const char *meta, const char *data)
if (!m) return;
m->meta = eina_stringshare_add(meta);
m->data = ""
+ m->changed = EINA_TRUE;
mf->list = eina_list_append(mf->list, m);
_meta_file_write_queue(mf); // queue writes for later
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.