summaryrefslogtreecommitdiff
authorandyq <andyq>2002-12-20 13:00:05 (UTC)
committer andyq <andyq>2002-12-20 13:00:05 (UTC)
commit48bab4b65417d12dac1e2ef61f9b059fc5dabdcc (patch) (side-by-side diff)
tree0ac43a75511b3b0feed0c357ecc21a31b09c1afa
parent9328bf79f49294e14c1753c9ee17ddd2985c1969 (diff)
downloadopie-48bab4b65417d12dac1e2ef61f9b059fc5dabdcc.zip
opie-48bab4b65417d12dac1e2ef61f9b059fc5dabdcc.tar.gz
opie-48bab4b65417d12dac1e2ef61f9b059fc5dabdcc.tar.bz2
Should create links for installed dependant packages again
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/ipkg.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/noncore/settings/aqpkg/ipkg.cpp b/noncore/settings/aqpkg/ipkg.cpp
index 7afe04f..29bf40d 100644
--- a/noncore/settings/aqpkg/ipkg.cpp
+++ b/noncore/settings/aqpkg/ipkg.cpp
@@ -282,64 +282,79 @@ int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString option )
connect(proc, SIGNAL(receivedStderr(OProcess *, char *, int)),
this, SLOT(commandStderr(OProcess *, char *, int)));
for ( QStringList::Iterator it = cmd.begin(); it != cmd.end(); ++it )
{
qDebug( "%s ", (*it).latin1() );
*proc << (*it).latin1();
}
cout << endl;
// Start the process going
finished = false;
if(!proc->start(OProcess::NotifyOnExit, OProcess::All))
{
emit outputText( QString( "Couldn't start ipkg process" ) );
qDebug( "Couldn't start ipkg process!" );
}
// Now wait for it to finish
while ( !finished )
qApp->processEvents();
}
void Ipkg::commandStdout(OProcess*, char *buffer, int buflen)
{
qDebug("received stdout %d bytes", buflen);
QString lineStr = buffer;
if ( lineStr[buflen-1] == '\n' )
buflen --;
lineStr = lineStr.left( buflen );
emit outputText( lineStr );
+
+ // check if we are installing dependant packages
+ if ( option == "install" || option == "reinstall" )
+ {
+ // Need to keep track of any dependant packages that get installed
+ // so that we can create links to them as necessary
+ if ( lineStr.startsWith( "Installing " ) )
+ {
+ int start = lineStr.find( " " ) + 1;
+ int end = lineStr.find( " ", start );
+ QString *package = new QString( lineStr.mid( start, end-start ) );
+ dependantPackages->append( package );
+ }
+ }
+
qDebug(lineStr);
buffer[0] = '\0';
}
void Ipkg::commandStderr(OProcess*, char *buffer, int buflen)
{
qDebug("received stderrt %d bytes", buflen);
QString lineStr = buffer;
if ( lineStr[buflen-1] == '\n' )
buflen --;
lineStr=lineStr.left( buflen );
emit outputText( lineStr );
buffer[0] = '\0';
}
void Ipkg::processFinished()
{
delete proc;
proc = 0;
finished = true;
}
void Ipkg :: abort()
{
if ( proc )
{
proc->kill();
aborted = true;
}
}