summaryrefslogtreecommitdiff
path: root/noncore/settings
Unidiff
Diffstat (limited to 'noncore/settings') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/aqpkg/aqpkg.pro2
-rw-r--r--noncore/settings/aqpkg/ipkg.cpp75
-rw-r--r--noncore/settings/aqpkg/utils.cpp1
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
@@ -36,3 +36,3 @@ INCLUDEPATH += $(OPIEDIR)/include
36DEPENDPATH += $(OPIEDIR)/include 36DEPENDPATH += $(OPIEDIR)/include
37LIBS += -lqpe -lopie -lstdc++ 37LIBS += -lqpe -lopie
38 38
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
@@ -29,10 +29,2 @@
29 29
30#include <fstream>
31#include <iostream>
32#include <vector>
33using namespace std;
34
35#include <stdio.h>
36#include <unistd.h>
37
38#ifdef QWS 30#ifdef QWS
@@ -43,2 +35,3 @@ using namespace std;
43#include <qdir.h> 35#include <qdir.h>
36#include <qfile.h>
44#include <qtextstream.h> 37#include <qtextstream.h>
@@ -205,5 +198,6 @@ void Ipkg :: removeStatusEntry()
205 198
206 ifstream in( statusFile ); 199 QFile readFile( statusFile );
207 ofstream out( outStatusFile ); 200 QFile writeFile( outStatusFile );
208 if ( !in.is_open() ) 201
202 if ( !readFile.open( IO_ReadOnly ) )
209 { 203 {
@@ -215,3 +209,3 @@ void Ipkg :: removeStatusEntry()
215 209
216 if ( !out.is_open() ) 210 if ( !writeFile.open( IO_WriteOnly ) )
217 { 211 {
@@ -223,3 +217,8 @@ void Ipkg :: removeStatusEntry()
223 217
224 char line[1001]; 218 int i = 0;
219
220 QTextStream readStream( &readFile );
221 QTextStream writeStream( &writeFile );
222 QString line;
223
225 char k[21]; 224 char k[21];
@@ -228,13 +227,13 @@ void Ipkg :: removeStatusEntry()
228 QString value; 227 QString value;
229 vector<QString> lines; 228
230 int i = 0; 229 while ( !readStream.atEnd() )
231 do
232 { 230 {
233 in.getline( line, 1000 ); 231 //read new line
234 if ( in.eof() ) 232 line = readStream.readLine();
235 continue;
236 233
234 if ( line.contains( ":", TRUE ) )
235 {
236 //grep key and value from line
237 k[0] = '\0'; 237 k[0] = '\0';
238 v[0] = '\0'; 238 v[0] = '\0';
239
240 sscanf( line, "%[^:]: %[^\n]", k, v ); 239 sscanf( line, "%[^:]: %[^\n]", k, v );
@@ -244,27 +243,18 @@ void Ipkg :: removeStatusEntry()
244 value = value.stripWhiteSpace(); 243 value = value.stripWhiteSpace();
244 } else {
245 key = "";
246 value = "";
247 }
248
245 if ( key == "Package" && value == package ) 249 if ( key == "Package" && value == package )
246 { 250 {
247 // Ignore all lines up to next empty 251 //skip lines from the deleted package
248 do 252 while ( ( !readStream.atEnd() ) && ( line.stripWhiteSpace() != "" ) )
249 { 253 {
250 in.getline( line, 1000 ); 254 line = readStream.readLine();
251 if ( in.eof() || QString( line ).stripWhiteSpace() == "" )
252 continue;
253 } while ( !in.eof() && QString( line ).stripWhiteSpace() != "" );
254 } 255 }
256 } else {
255 257
256 lines.push_back( QString( line ) ); 258 //write other lines into the tempfile
257 out << line << endl; 259 writeStream << line << "\n";
258
259 // Improve UI responsiveness
260 i++;
261 if ( ( i % 50 ) == 0 )
262 qApp->processEvents();
263 } while ( !in.eof() );
264
265 // Write lines out
266 vector<QString>::iterator it;
267 for ( it = lines.begin() ; it != lines.end() ; ++it )
268 {
269 out << (const char *)(*it) << endl;
270 260
@@ -275,5 +265,6 @@ void Ipkg :: removeStatusEntry()
275 } 265 }
266 }
276 267
277 in.close(); 268 readFile.close();
278 out.close(); 269 writeFile.close();
279 270
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
@@ -29,3 +29,2 @@
29 29
30#include <stdio.h>
31#include <sys/vfs.h> 30#include <sys/vfs.h>