-rw-r--r-- | noncore/settings/aqpkg/aqpkg.pro | 2 | ||||
-rw-r--r-- | noncore/settings/aqpkg/ipkg.cpp | 75 | ||||
-rw-r--r-- | noncore/settings/aqpkg/utils.cpp | 1 |
3 files changed, 34 insertions, 44 deletions
diff --git a/noncore/settings/aqpkg/aqpkg.pro b/noncore/settings/aqpkg/aqpkg.pro index 882cfd4..a24f036 100644 --- a/noncore/settings/aqpkg/aqpkg.pro +++ b/noncore/settings/aqpkg/aqpkg.pro @@ -29,12 +29,12 @@ SOURCES = mainwin.cpp \ server.cpp \ letterpushbutton.cpp \ inputdlg.cpp \ version.cpp \ categoryfilterimpl.cpp TARGET = aqpkg INCLUDEPATH += $(OPIEDIR)/include DEPENDPATH += $(OPIEDIR)/include -LIBS += -lqpe -lopie -lstdc++ +LIBS += -lqpe -lopie include ( $(OPIEDIR)/include.pro ) diff --git a/noncore/settings/aqpkg/ipkg.cpp b/noncore/settings/aqpkg/ipkg.cpp index 43eaaae..2a9c576 100644 --- a/noncore/settings/aqpkg/ipkg.cpp +++ b/noncore/settings/aqpkg/ipkg.cpp @@ -22,30 +22,23 @@ -. .:....=;==+<; General Public License along with this file; -_. . . )=. = see the file COPYING. If not, write to the -- :-=` Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include <fstream> -#include <iostream> -#include <vector> -using namespace std; - -#include <stdio.h> -#include <unistd.h> - #ifdef QWS #include <qpe/qpeapplication.h> #else #include <qapplication.h> #endif #include <qdir.h> +#include <qfile.h> #include <qtextstream.h> #include <opie/oprocess.h> #include "utils.h" #include "ipkg.h" #include "global.h" @@ -198,89 +191,87 @@ void Ipkg :: removeStatusEntry() emit outputText( tr("Removing status entry...") ); QString tempstr = tr("status file - "); tempstr.append( statusFile ); emit outputText( tempstr ); tempstr = tr("package - "); tempstr.append( package ); emit outputText( tempstr ); - ifstream in( statusFile ); - ofstream out( outStatusFile ); - if ( !in.is_open() ) + QFile readFile( statusFile ); + QFile writeFile( outStatusFile ); + + if ( !readFile.open( IO_ReadOnly ) ) { tempstr = tr("Couldn't open status file - "); tempstr.append( statusFile ); emit outputText( tempstr ); return; } - if ( !out.is_open() ) + if ( !writeFile.open( IO_WriteOnly ) ) { tempstr = tr("Couldn't create tempory status file - "); tempstr.append( outStatusFile ); emit outputText( tempstr ); return; } - char line[1001]; + int i = 0; + + QTextStream readStream( &readFile ); + QTextStream writeStream( &writeFile ); + QString line; + char k[21]; char v[1001]; QString key; QString value; - vector<QString> lines; - int i = 0; - do + + while ( !readStream.atEnd() ) { - in.getline( line, 1000 ); - if ( in.eof() ) - continue; + //read new line + line = readStream.readLine(); + if ( line.contains( ":", TRUE ) ) + { + //grep key and value from line k[0] = '\0'; v[0] = '\0'; - sscanf( line, "%[^:]: %[^\n]", k, v ); key = k; value = v; key = key.stripWhiteSpace(); value = value.stripWhiteSpace(); + } else { + key = ""; + value = ""; + } + if ( key == "Package" && value == package ) { - // Ignore all lines up to next empty - do + //skip lines from the deleted package + while ( ( !readStream.atEnd() ) && ( line.stripWhiteSpace() != "" ) ) { - in.getline( line, 1000 ); - if ( in.eof() || QString( line ).stripWhiteSpace() == "" ) - continue; - } while ( !in.eof() && QString( line ).stripWhiteSpace() != "" ); + line = readStream.readLine(); } + } else { - lines.push_back( QString( line ) ); - out << line << endl; - - // Improve UI responsiveness - i++; - if ( ( i % 50 ) == 0 ) - qApp->processEvents(); - } while ( !in.eof() ); - - // Write lines out - vector<QString>::iterator it; - for ( it = lines.begin() ; it != lines.end() ; ++it ) - { - out << (const char *)(*it) << endl; + //write other lines into the tempfile + writeStream << line << "\n"; // Improve UI responsiveness i++; if ( ( i % 50 ) == 0 ) qApp->processEvents(); } + } - in.close(); - out.close(); + readFile.close(); + writeFile.close(); // Remove old status file and put tmp stats file in its place remove( statusFile ); rename( outStatusFile, statusFile ); } int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString /*option*/ ) { diff --git a/noncore/settings/aqpkg/utils.cpp b/noncore/settings/aqpkg/utils.cpp index 00607dd..be02b3a 100644 --- a/noncore/settings/aqpkg/utils.cpp +++ b/noncore/settings/aqpkg/utils.cpp @@ -22,17 +22,16 @@ -. .:....=;==+<; General Public License along with this file; -_. . . )=. = see the file COPYING. If not, write to the -- :-=` Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include <stdio.h> #include <sys/vfs.h> #include "utils.h" #include "global.h" Utils :: Utils() { } |