summaryrefslogtreecommitdiff
path: root/noncore/settings/aqpkg/ipkg.cpp
authorar <ar>2003-12-10 21:29:36 (UTC)
committer ar <ar>2003-12-10 21:29:36 (UTC)
commit6dffa571b5bfdd3e353fdabb555a805c2999ef0f (patch) (unidiff)
treeb57902c4087e3a0035d07f8aa75c9d541b51307b /noncore/settings/aqpkg/ipkg.cpp
parentf8254fecc4f76de574ebca05d4a6c91e543ff58c (diff)
downloadopie-6dffa571b5bfdd3e353fdabb555a805c2999ef0f.zip
opie-6dffa571b5bfdd3e353fdabb555a805c2999ef0f.tar.gz
opie-6dffa571b5bfdd3e353fdabb555a805c2999ef0f.tar.bz2
remove STL dependencies
Diffstat (limited to 'noncore/settings/aqpkg/ipkg.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/aqpkg/ipkg.cpp75
1 files changed, 33 insertions, 42 deletions
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
@@ -18,38 +18,31 @@
18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General 18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General
19..}^=.=       =       ; Public License for more details. 19..}^=.=       =       ; Public License for more details.
20++=   -.     .`     .: 20++=   -.     .`     .:
21 :     =  ...= . :.=- You should have received a copy of the GNU 21 :     =  ...= . :.=- You should have received a copy of the GNU
22 -.   .:....=;==+<; General Public License along with this file; 22 -.   .:....=;==+<; General Public License along with this file;
23  -_. . .   )=.  = see the file COPYING. If not, write to the 23  -_. . .   )=.  = see the file COPYING. If not, write to the
24    --        :-=` Free Software Foundation, Inc., 24    --        :-=` Free Software Foundation, Inc.,
25 59 Temple Place - Suite 330, 25 59 Temple Place - Suite 330,
26 Boston, MA 02111-1307, USA. 26 Boston, MA 02111-1307, USA.
27 27
28*/ 28*/
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
39#include <qpe/qpeapplication.h> 31#include <qpe/qpeapplication.h>
40#else 32#else
41#include <qapplication.h> 33#include <qapplication.h>
42#endif 34#endif
43#include <qdir.h> 35#include <qdir.h>
36#include <qfile.h>
44#include <qtextstream.h> 37#include <qtextstream.h>
45 38
46#include <opie/oprocess.h> 39#include <opie/oprocess.h>
47 40
48#include "utils.h" 41#include "utils.h"
49#include "ipkg.h" 42#include "ipkg.h"
50#include "global.h" 43#include "global.h"
51 44
52Ipkg :: Ipkg() 45Ipkg :: Ipkg()
53{ 46{
54 proc = 0; 47 proc = 0;
55} 48}
@@ -194,97 +187,95 @@ void Ipkg :: removeStatusEntry()
194 QString outStatusFile = statusFile; 187 QString outStatusFile = statusFile;
195 outStatusFile.append( ".tmp" ); 188 outStatusFile.append( ".tmp" );
196 189
197 emit outputText( "" ); 190 emit outputText( "" );
198 emit outputText( tr("Removing status entry...") ); 191 emit outputText( tr("Removing status entry...") );
199 QString tempstr = tr("status file - "); 192 QString tempstr = tr("status file - ");
200 tempstr.append( statusFile ); 193 tempstr.append( statusFile );
201 emit outputText( tempstr ); 194 emit outputText( tempstr );
202 tempstr = tr("package - "); 195 tempstr = tr("package - ");
203 tempstr.append( package ); 196 tempstr.append( package );
204 emit outputText( tempstr ); 197 emit outputText( tempstr );
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 {
210 tempstr = tr("Couldn't open status file - "); 204 tempstr = tr("Couldn't open status file - ");
211 tempstr.append( statusFile ); 205 tempstr.append( statusFile );
212 emit outputText( tempstr ); 206 emit outputText( tempstr );
213 return; 207 return;
214 } 208 }
215 209
216 if ( !out.is_open() ) 210 if ( !writeFile.open( IO_WriteOnly ) )
217 { 211 {
218 tempstr = tr("Couldn't create tempory status file - "); 212 tempstr = tr("Couldn't create tempory status file - ");
219 tempstr.append( outStatusFile ); 213 tempstr.append( outStatusFile );
220 emit outputText( tempstr ); 214 emit outputText( tempstr );
221 return; 215 return;
222 } 216 }
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];
226 char v[1001]; 225 char v[1001];
227 QString key; 226 QString key;
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 );
241 key = k; 240 key = k;
242 value = v; 241 value = v;
243 key = key.stripWhiteSpace(); 242 key = key.stripWhiteSpace();
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
271 // Improve UI responsiveness 261 // Improve UI responsiveness
272 i++; 262 i++;
273 if ( ( i % 50 ) == 0 ) 263 if ( ( i % 50 ) == 0 )
274 qApp->processEvents(); 264 qApp->processEvents();
275 } 265 }
266 }
276 267
277 in.close(); 268 readFile.close();
278 out.close(); 269 writeFile.close();
279 270
280 // Remove old status file and put tmp stats file in its place 271 // Remove old status file and put tmp stats file in its place
281 remove( statusFile ); 272 remove( statusFile );
282 rename( outStatusFile, statusFile ); 273 rename( outStatusFile, statusFile );
283} 274}
284 275
285int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString /*option*/ ) 276int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString /*option*/ )
286{ 277{
287 // If one is already running - should never be but just to be safe 278 // If one is already running - should never be but just to be safe
288 if ( proc ) 279 if ( proc )
289 { 280 {
290 delete proc; 281 delete proc;