summaryrefslogtreecommitdiff
path: root/library/config.cpp
Side-by-side diff
Diffstat (limited to 'library/config.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/config.cpp26
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;