summaryrefslogtreecommitdiff
path: root/muggle-plugin/mg_valmap.c
diff options
context:
space:
mode:
authorLarsAC <LarsAC@e10066b5-e1e2-0310-b819-94efdf66514b>2005-03-22 06:47:53 +0000
committerLarsAC <LarsAC@e10066b5-e1e2-0310-b819-94efdf66514b>2005-03-22 06:47:53 +0000
commite2de0c5ed7bbbe4b236246e8bfd71cc87c8d974f (patch)
tree616f2f0a482597e3968e281ccf8adcfd04f45bbc /muggle-plugin/mg_valmap.c
parent101360901576c7e91196de60e2e6ebd6a4b145dd (diff)
downloadvdr-plugin-muggle-0.1.6-BETA.tar.gz
vdr-plugin-muggle-0.1.6-BETA.tar.bz2
Added 0.1.6 beta tag0.1.6-BETA
git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/tags/0.1.6-BETA@586 e10066b5-e1e2-0310-b819-94efdf66514b
Diffstat (limited to 'muggle-plugin/mg_valmap.c')
-rw-r--r--muggle-plugin/mg_valmap.c70
1 files changed, 70 insertions, 0 deletions
diff --git a/muggle-plugin/mg_valmap.c b/muggle-plugin/mg_valmap.c
new file mode 100644
index 0000000..2361b00
--- /dev/null
+++ b/muggle-plugin/mg_valmap.c
@@ -0,0 +1,70 @@
+#include "mg_valmap.h"
+#include "mg_order.h"
+
+mgValmap::mgValmap(const char *key) {
+ m_key = key;
+}
+
+void mgValmap::Read(FILE *f) {
+ char *line=(char*)malloc(1000);
+ char *prefix=(char*)malloc(strlen(m_key)+2);
+ strcpy(prefix,m_key);
+ strcat(prefix,".");
+ rewind(f);
+ while (fgets(line,1000,f)) {
+ if (strncmp(line,prefix,strlen(prefix))) continue;
+ if (line[strlen(line)-1]=='\n')
+ line[strlen(line)-1]=0;
+ char *name = line + strlen(prefix);
+ char *eq = strchr(name,'=');
+ if (!eq) continue;
+ *(eq-1)=0;
+ char *value = eq + 2;
+ (*this)[string(name)]=string(value);
+ }
+ free(prefix);
+ free(line);
+}
+
+void mgValmap::Write(FILE *f) {
+ for (mgValmap::const_iterator it=begin();it!=end();++it) {
+ char b[1000];
+ sprintf(b,"%s.%s = %s\n",
+ m_key,it->first.c_str(),
+ it->second.c_str());
+ fputs(b,f);
+ }
+}
+
+void mgValmap::put(const char* name, const string value) {
+ if (value.empty()) return;
+ (*this)[string(name)] = value;
+}
+
+void mgValmap::put(const char* name, const char* value) {
+ if (!value || *value==0) return;
+ (*this)[string(name)] = value;
+}
+
+void mgValmap::put(const char* name, const int value) {
+ put(name,ltos(value));
+}
+
+void mgValmap::put(const char* name, const unsigned int value) {
+ put(name,ltos(value));
+}
+
+void mgValmap::put(const char* name, const long value) {
+ put(name,ltos(value));
+}
+
+void mgValmap::put(const char* name, const bool value) {
+ string s;
+ if (value)
+ s = "true";
+ else
+ s = "false";
+ put(name,s);
+}
+
+