diff options
author | unknown <joreland@mysql.com> | 2004-09-21 09:50:44 +0200 |
---|---|---|
committer | unknown <joreland@mysql.com> | 2004-09-21 09:50:44 +0200 |
commit | e9e48115b3e79f056cbfbe47879f6f9d514cf411 (patch) | |
tree | 68a181880a2d8f1ec46739ab919f17d279f400ec /ndb/src | |
parent | 76f06e4a4a39599cd595a6d795ca53e221abfeba (diff) | |
download | mariadb-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.cpp | 46 |
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; } |