-rw-r--r-- | library/config.cpp | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/library/config.cpp b/library/config.cpp index b47c620..b28c771 100644 --- a/library/config.cpp +++ b/library/config.cpp @@ -464,7 +464,7 @@ void Config::write( const QString &fn ) return; } - + QString str; - QCString cstr; + QCString cstr; QMap< QString, ConfigGroup >::Iterator g_it = groups.begin(); @@ -476,5 +476,5 @@ void Config::write( const QString &fn ) } cstr = str.utf8(); - + int total_length; total_length = f.writeBlock( cstr.data(), cstr.length() ); @@ -486,12 +486,12 @@ void Config::write( const QString &fn ) return; } - + f.close(); // now rename the file... if ( rename( strNewFile, filename ) < 0 ) { - qWarning( "problem renaming the file %s to %s", strNewFile.latin1(), + qWarning( "problem renaming the file %s to %s", strNewFile.latin1(), filename.latin1() ); QFile::remove( strNewFile ); - } + } } @@ -522,4 +522,14 @@ void Config::read() } + + // hack to avoid problems if big files are passed to test + // if they are valid configs ( like passing a mp3 ... ) + // I just hope that there are no conf files > 100000 byte + // not the best solution, find something else later + if ( f.size() > 100000 ) { + return; + } + + QTextStream s( &f ); #if QT_VERSION <= 230 && defined(QT_NO_CODECS) @@ -547,8 +557,8 @@ bool Config::parse( const QString &l ) { QString line = l.stripWhiteSpace(); - + if ( line [0] == QChar ( '#' )) return true; // ignore comments - + if ( line[ 0 ] == QChar( '[' ) ) { QString gname = line; |