summaryrefslogtreecommitdiff
path: root/ndb/src
diff options
context:
space:
mode:
authorunknown <joreland@mysql.com>2004-09-21 09:50:44 +0200
committerunknown <joreland@mysql.com>2004-09-21 09:50:44 +0200
commite9e48115b3e79f056cbfbe47879f6f9d514cf411 (patch)
tree68a181880a2d8f1ec46739ab919f17d279f400ec /ndb/src
parent76f06e4a4a39599cd595a6d795ca53e221abfeba (diff)
downloadmariadb-git-e9e48115b3e79f056cbfbe47879f6f9d514cf411.tar.gz
bug#5617
allow blank lines in Ndb.cfg files
Diffstat (limited to 'ndb/src')
-rw-r--r--ndb/src/common/mgmcommon/LocalConfig.cpp46
1 files changed, 24 insertions, 22 deletions
diff --git a/ndb/src/common/mgmcommon/LocalConfig.cpp b/ndb/src/common/mgmcommon/LocalConfig.cpp
index ace2d5dc871..cc66f357236 100644
--- a/ndb/src/common/mgmcommon/LocalConfig.cpp
+++ b/ndb/src/common/mgmcommon/LocalConfig.cpp
@@ -229,10 +229,10 @@ LocalConfig::parseString(const char * connectString, char *line){
bool LocalConfig::readFile(const char * filename, bool &fopenError)
{
- char line[150], line2[150];
-
+ char line[1024];
+
fopenError = false;
-
+
FILE * file = fopen(filename, "r");
if(file == 0){
snprintf(line, 150, "Unable to open local config file: %s", filename);
@@ -241,31 +241,33 @@ bool LocalConfig::readFile(const char * filename, bool &fopenError)
return false;
}
- unsigned int sz = 1024;
- char* theString = (char*)NdbMem_Allocate(sz);
- theString[0] = 0;
-
- fgets(theString, sz, file);
- while (fgets(line+1, 100, file)) {
- line[0] = ';';
- while (strlen(theString) + strlen(line) >= sz) {
- sz = sz*2;
- char *newString = (char*)NdbMem_Allocate(sz);
- strcpy(newString, theString);
- free(theString);
- theString = newString;
+ BaseString theString;
+
+ while(fgets(line, 1024, file)){
+ BaseString tmp(line);
+ tmp.trim(" \t\n\r");
+ if(tmp.length() > 0 && tmp.c_str()[0] != '#'){
+ theString.append(tmp);
+ break;
}
- strcat(theString, line);
}
-
- bool return_value = parseString(theString, line);
+ while (fgets(line, 1024, file)) {
+ BaseString tmp(line);
+ tmp.trim(" \t\n\r");
+ if(tmp.length() > 0 && tmp.c_str()[0] != '#'){
+ theString.append(";");
+ theString.append(tmp);
+ }
+ }
+
+ bool return_value = parseString(theString.c_str(), line);
if (!return_value) {
- snprintf(line2, 150, "Reading %s: %s", filename, line);
- setError(0,line2);
+ BaseString tmp;
+ tmp.assfmt("Reading %s: %s", filename, line);
+ setError(0, tmp.c_str());
}
- free(theString);
fclose(file);
return return_value;
}