From d26a92b67f29a9cbecbe8dce87f48736e929488e Mon Sep 17 00:00:00 2001 From: Christian Thaeter Date: Tue, 9 Sep 2008 21:04:01 +0200 Subject: [PATCH] add configitem_set_value to modify the delim/value of a existing item --- src/backend/configitem.c | 13 +++++++++++++ src/backend/configitem.h | 3 +++ 2 files changed, 16 insertions(+) diff --git a/src/backend/configitem.c b/src/backend/configitem.c index 96012ad14..30f51498a 100644 --- a/src/backend/configitem.c +++ b/src/backend/configitem.c @@ -119,6 +119,18 @@ lumiera_configitem_delete (LumieraConfigitem self, LumieraConfigLookup lookup) } +LumieraConfigitem +lumiera_configitem_set_value (LumieraConfigitem self, const char* delim_value) +{ + REQUIRE (self->key); + REQUIRE (self->delim); + + char* line = lumiera_tmpbuf_snprintf (SIZE_MAX, "%.*s%s", self->delim - self->line, self->line, delim_value); + lumiera_configitem_parse (self, line); + + return self; +} + LumieraConfigitem lumiera_configitem_move (LumieraConfigitem self, LumieraConfigitem source) @@ -155,6 +167,7 @@ lumiera_configitem_parse (LumieraConfigitem self, const char* line) { TRACE (config_item); + lumiera_free (self->line); self->line = lumiera_strndup (line, SIZE_MAX); FIXME ("MOCKUP START"); diff --git a/src/backend/configitem.h b/src/backend/configitem.h index c2395b6dc..979609c36 100644 --- a/src/backend/configitem.h +++ b/src/backend/configitem.h @@ -121,6 +121,9 @@ lumiera_configitem_new (const char* line); void lumiera_configitem_delete (LumieraConfigitem self, LumieraConfigLookup lookup); +LumieraConfigitem +lumiera_configitem_set_value (LumieraConfigitem self, const char* delim_value); + LumieraConfigitem lumiera_configitem_parse (LumieraConfigitem self, const char* line);