summaryrefslogtreecommitdiffstats
path: root/ark
diff options
context:
space:
mode:
Diffstat (limited to 'ark')
-rw-r--r--ark/arch.cpp10
-rw-r--r--ark/arkwidget.cpp2
-rw-r--r--ark/rar.cpp18
-rw-r--r--ark/zip.cpp10
4 files changed, 29 insertions, 11 deletions
diff --git a/ark/arch.cpp b/ark/arch.cpp
index a08484c..92e7424 100644
--- a/ark/arch.cpp
+++ b/ark/arch.cpp
@@ -33,6 +33,7 @@
// QT includes
#include <tqapplication.h>
#include <tqfile.h>
+#include <tqtextcodec.h>
// KDE includes
#include <kdebug.h>
@@ -330,15 +331,20 @@ void Arch::slotReceivedTOC( KProcess*, char* data, int length )
bool Arch::processLine( const TQCString &line )
{
TQString columns[ 11 ];
+ TQString unicode_line;
unsigned int pos = 0;
int strpos, len;
+ TQTextCodec *codec = TQTextCodec::codecForLocale();
+ unicode_line = codec->toUnicode( line );
+
+
// Go through our columns, try to pick out data, return silently on failure
for ( TQPtrListIterator <ArchColumns>col( m_archCols ); col.current(); ++col )
{
ArchColumns *curCol = *col;
- strpos = curCol->pattern.search( line, pos );
+ strpos = curCol->pattern.search( unicode_line, pos );
len = curCol->pattern.matchedLength();
if ( ( strpos == -1 ) || ( len > curCol->maxLength ) )
@@ -354,7 +360,7 @@ bool Arch::processLine( const TQCString &line )
pos = strpos + len;
- columns[curCol->colRef] = TQString::fromLocal8Bit( line.mid(strpos, len) );
+ columns[curCol->colRef] = TQString::fromLocal8Bit( unicode_line.mid(strpos, len) );
}
diff --git a/ark/arkwidget.cpp b/ark/arkwidget.cpp
index 4ced49a..0814b00 100644
--- a/ark/arkwidget.cpp
+++ b/ark/arkwidget.cpp
@@ -1533,7 +1533,7 @@ ArkWidget::action_extract()
it != selectedFiles.constEnd();
++it )
{
- m_extractList->append( TQFile::encodeName( *it ) );
+ m_extractList->append( *it );
}
if (!bOvwrt)
diff --git a/ark/rar.cpp b/ark/rar.cpp
index 554fdfc..5219b08 100644
--- a/ark/rar.cpp
+++ b/ark/rar.cpp
@@ -32,6 +32,7 @@
// QT includes
#include <tqfile.h>
#include <tqdir.h>
+#include <tqtextcodec.h>
// KDE includes
#include <kdebug.h>
@@ -89,9 +90,14 @@ RarArch::RarArch( ArkWidget *_gui, const TQString & _fileName )
bool RarArch::processLine( const TQCString &line )
{
+ TQString unicode_line;
+
+ TQTextCodec *codec = TQTextCodec::codecForLocale();
+ unicode_line = codec->toUnicode( line );
+
if ( m_isFirstLine )
{
- m_entryFilename = TQString::fromLocal8Bit( line );
+ m_entryFilename = TQString::fromLocal8Bit( unicode_line );
m_entryFilename.remove( 0, 1 );
m_isFirstLine = false;
return true;
@@ -99,7 +105,7 @@ bool RarArch::processLine( const TQCString &line )
TQStringList list;
- TQStringList l2 = TQStringList::split( ' ', line );
+ TQStringList l2 = TQStringList::split( ' ', unicode_line );
list << m_entryFilename; // filename
list << l2[ 0 ]; // size
@@ -253,8 +259,10 @@ void RarArch::unarchFileInternal()
{
*kp << "-o-";
}
+
+ TQTextCodec *codec = TQTextCodec::codecForLocale();
- *kp << m_filename;
+ *kp << codec->fromUnicode(m_filename);
// if the file list is empty, no filenames go on the command line,
// and we then extract everything in the archive.
@@ -263,11 +271,11 @@ void RarArch::unarchFileInternal()
TQStringList::Iterator it;
for ( it = m_fileList->begin(); it != m_fileList->end(); ++it )
{
- *kp << (*it);
+ *kp << codec->fromUnicode(*it);
}
}
- *kp << m_destDir ;
+ *kp << codec->fromUnicode(m_destDir);
connect( kp, TQT_SIGNAL( receivedStdout(KProcess*, char*, int) ),
TQT_SLOT( slotReceivedOutput(KProcess*, char*, int) ) );
diff --git a/ark/zip.cpp b/ark/zip.cpp
index f223016..ef66988 100644
--- a/ark/zip.cpp
+++ b/ark/zip.cpp
@@ -28,6 +28,7 @@
// Qt includes
#include <tqdir.h>
+#include <tqtextcodec.h>
// KDE includes
#include <kdebug.h>
@@ -207,8 +208,10 @@ void ZipArch::unarchFileInternal()
*kp << "-o";
else
*kp << "-n";
+
+ TQTextCodec *codec = TQTextCodec::codecForLocale();
- *kp << m_filename;
+ *kp << codec->fromUnicode(m_filename);
// if the list is empty, no filenames go on the command line,
// and we then extract everything in the archive.
@@ -218,11 +221,12 @@ void ZipArch::unarchFileInternal()
for ( it = m_fileList->begin(); it != m_fileList->end(); ++it )
{
- *kp << (*it);
+ *kp << codec->fromUnicode(*it);
}
}
- *kp << "-d" << m_destDir;
+ *kp << "-d";
+ *kp << codec->fromUnicode(m_destDir);
connect( kp, TQT_SIGNAL( receivedStdout(KProcess*, char*, int) ),
TQT_SLOT( slotReceivedOutput(KProcess*, char*, int) ) );