summaryrefslogtreecommitdiffstats
path: root/ark/tar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ark/tar.cpp')
-rw-r--r--ark/tar.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/ark/tar.cpp b/ark/tar.cpp
index 4cdb792..1c1fac9 100644
--- a/ark/tar.cpp
+++ b/ark/tar.cpp
@@ -785,5 +785,42 @@ void TarArch::customEvent( TQCustomEvent *ev )
}
}
+void TarArch::test()
+{
+ clearShellOutput();
+
+ KProcess *kp = m_currentProcess = new KProcess;
+ kp->clearArguments();
+
+ TQString uncomp = getUnCompressor();
+
+ *kp << uncomp;
+
+ if( uncomp == "bunzip2" || uncomp == "gunzip" || uncomp == "lzop" )
+ {
+ *kp << "-t";
+ }
+ else
+ {
+ Arch::test();
+ return;
+ }
+
+ *kp << m_filename;
+
+ connect( kp, SIGNAL( receivedStdout(KProcess*, char*, int) ),
+ SLOT( slotReceivedOutput(KProcess*, char*, int) ) );
+ connect( kp, SIGNAL( receivedStderr(KProcess*, char*, int) ),
+ SLOT( slotReceivedOutput(KProcess*, char*, int) ) );
+ connect( kp, SIGNAL( processExited(KProcess*) ),
+ SLOT( slotTestExited(KProcess*) ) );
+
+ if ( !kp->start( KProcess::NotifyOnExit, KProcess::AllOutput ) )
+ {
+ KMessageBox::error( 0, i18n( "Could not start a subprocess." ) );
+ emit sigTest( false );
+ }
+}
+
#include "tar.moc"
// kate: space-indent on;