diff options
| -rw-r--r-- | common/config-manager.cpp | 13 | 
1 files changed, 7 insertions, 6 deletions
diff --git a/common/config-manager.cpp b/common/config-manager.cpp index 10ce1995cc..928674f050 100644 --- a/common/config-manager.cpp +++ b/common/config-manager.cpp @@ -23,6 +23,7 @@  #include "stdafx.h"  #include "common/config-manager.h" +#include "common/file.h"  #include "common/util.h"  DECLARE_SINGLETON(Common::ConfigManager); @@ -115,9 +116,9 @@ void ConfigManager::loadConfigFile(const String &filename) {  }  void ConfigManager::loadFile(const String &filename) { -	FILE *cfg_file; +	File cfg_file; -	if (!(cfg_file = fopen(filename.c_str(), "r"))) { +	if (!cfg_file.open(filename.c_str())) {  		warning("Unable to open configuration file: %s", filename.c_str());  	} else {  		char buf[MAXLINELEN]; @@ -128,16 +129,17 @@ void ConfigManager::loadFile(const String &filename) {  		// TODO: Detect if a domain occurs multiple times (or likewise, if  		// a key occurs multiple times inside one domain). -		while (!feof(cfg_file)) { +		while (!cfg_file.eof()) {  			lineno++; -			if (!fgets(buf, MAXLINELEN, cfg_file)) -				continue; +			if (!cfg_file.readLine(buf, MAXLINELEN)) +				break;  			if (buf[0] == '#') {  				// Accumulate comments here. Once we encounter either the start  				// of a new domain, or a key-value-pair, we associate the value  				// of the 'comment' variable with that entity.  				comment += buf; +				comment += '\n';  			} else if (buf[0] == '[') {  				// It's a new domain which begins here.  				char *p = buf + 1; @@ -199,7 +201,6 @@ void ConfigManager::loadFile(const String &filename) {  				comment.clear();  			}  		} -		fclose(cfg_file);  	}  }  | 
