about summary refs log tree commit diff
path: root/src/engine
diff options
context:
space:
mode:
authorJakob Fries <jakob.fries@gmail.com>2007-06-03 16:22:21 +0000
committerJakob Fries <jakob.fries@gmail.com>2007-06-03 16:22:21 +0000
commit2497456684ff1815c084ef84c2c164e59c750124 (patch)
treed42d9490d4bad48c11ff7d726920ddc64170ee93 /src/engine
parent25ec37969512d54192ca7d0fdc67101e7628bd62 (diff)
downloadzcatch-2497456684ff1815c084ef84c2c164e59c750124.tar.gz
zcatch-2497456684ff1815c084ef84c2c164e59c750124.zip
config no longer uses stl
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/config.cpp42
1 files changed, 24 insertions, 18 deletions
diff --git a/src/engine/config.cpp b/src/engine/config.cpp
index c7235b05..c016ef95 100644
--- a/src/engine/config.cpp
+++ b/src/engine/config.cpp
@@ -1,17 +1,17 @@
 #include <baselib/system.h>
-
-#include <fstream>
-#include <iostream>
+#include <baselib/stream/file.h>
+#include <baselib/stream/line.h>
 
 #include <cstring>
 #include <cstdio>
+#include <cstdlib>
 
 #include "config.h"
 
-using namespace std;
-
 configuration config;
 
+using namespace baselib;
+
 void config_reset()
 {
     #define MACRO_CONFIG_INT(name,def,min,max) config.name = def;
@@ -25,7 +25,7 @@ void config_reset()
 
 void config_set(const char *line)
 {
-	char var_str[128];
+	char var_str[256];
 	char *val_str = strchr(line, '=');
 	if (val_str)
 	{
@@ -47,13 +47,15 @@ void config_load(const char *filename)
 {
 	dbg_msg("config/load", "loading %s", filename);
 
-	ifstream file(filename);
-	string line;
+	file_stream file;
 
-	if (file)
+	if (file.open_r(filename))
 	{
-		while (getline(file, line))
-			config_set(line.c_str());
+		char *line;
+		line_stream lstream(&file);
+
+		while ((line = lstream.get_line()))
+			config_set(line);
 
 		file.close();
 	}
@@ -63,17 +65,21 @@ void config_save(const char *filename)
 {
 	dbg_msg("config/save", "saving config to %s", filename);
 
-	ofstream file(filename);
+	file_stream file;
 
-    #define MACRO_CONFIG_INT(name,def,min,max) { file << # name << '=' << config.name << endl; }
-    #define MACRO_CONFIG_STR(name,len,def) { file << # name << '=' << config.name << endl; }
+	if (file.open_w(filename))
+	{
+		
+    	#define MACRO_CONFIG_INT(name,def,min,max) { char str[256]; sprintf(str, "%s=%i", #name, config.name); file.write(str, strlen(str)); file.write("\n", 1); }
+    	#define MACRO_CONFIG_STR(name,len,def) { file.write(#name, strlen(#name)); file.write("=", 1); file.write(config.name, strlen(config.name)); file.write("\n", 1); }
  
-    #include "config_variables.h" 
+    	#include "config_variables.h" 
  
-    #undef MACRO_CONFIG_INT 
-    #undef MACRO_CONFIG_STR 
+    	#undef MACRO_CONFIG_INT 
+    	#undef MACRO_CONFIG_STR 
 
-	file.close();
+		file.close();
+	}
 }
 
 #define MACRO_CONFIG_INT(name,def,min,max) int config_get_ ## name (configuration *c) { return c->name; }