diff -ruN kdeutils-3.5.7-original/ark/arch.cpp kdeutils-3.5.7/ark/arch.cpp --- kdeutils-3.5.7-original/ark/arch.cpp 2006-10-01 21:28:15 +0400 +++ kdeutils-3.5.7/ark/arch.cpp 2007-08-16 11:16:52 +0400 @@ -33,6 +33,7 @@ // QT includes #include #include +#include // KDE includes #include @@ -303,15 +304,20 @@ bool Arch::processLine( const QCString &line ) { QString columns[ 11 ]; + QString unicode_line; unsigned int pos = 0; int strpos, len; + QTextCodec *codec = QTextCodec::codecForLocale(); + unicode_line = codec->toUnicode( line ); + + // Go through our columns, try to pick out data, return silently on failure for ( QPtrListIterator 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 ) ) @@ -327,7 +333,7 @@ pos = strpos + len; - columns[ curCol->colRef ] = line.mid( strpos, len ); + columns[ curCol->colRef ] = unicode_line.mid( strpos, len ); } diff -ruN kdeutils-3.5.7-original/ark/arkwidget.cpp kdeutils-3.5.7/ark/arkwidget.cpp --- kdeutils-3.5.7-original/ark/arkwidget.cpp 2007-05-14 11:40:46 +0400 +++ kdeutils-3.5.7/ark/arkwidget.cpp 2007-08-16 12:57:07 +0400 @@ -1526,7 +1526,7 @@ it != selectedFiles.constEnd(); ++it ) { - m_extractList->append( QFile::encodeName( *it ) ); + m_extractList->append( *it ); } if (!bOvwrt) diff -ruN kdeutils-3.5.7-original/ark/rar.cpp kdeutils-3.5.7/ark/rar.cpp --- kdeutils-3.5.7-original/ark/rar.cpp 2006-05-22 22:08:38 +0400 +++ kdeutils-3.5.7/ark/rar.cpp 2007-08-16 11:17:08 +0400 @@ -32,6 +32,7 @@ // QT includes #include #include +#include // KDE includes #include @@ -80,9 +81,14 @@ bool RarArch::processLine( const QCString &line ) { + QString unicode_line; + + QTextCodec *codec = QTextCodec::codecForLocale(); + unicode_line = codec->toUnicode( line ); + if ( m_isFirstLine ) { - m_entryFilename = line; + m_entryFilename = unicode_line; m_entryFilename.remove( 0, 1 ); m_isFirstLine = false; return true; @@ -90,7 +96,7 @@ QStringList list; - QStringList l2 = QStringList::split( ' ', line ); + QStringList l2 = QStringList::split( ' ', unicode_line ); list << m_entryFilename; // filename list << l2[ 0 ]; // size @@ -235,8 +241,10 @@ { *kp << "-o-"; } + + QTextCodec *codec = QTextCodec::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. @@ -245,11 +253,11 @@ QStringList::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, SIGNAL( receivedStdout(KProcess*, char*, int) ), SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); diff -ruN kdeutils-3.5.7-original/ark/zip.cpp kdeutils-3.5.7/ark/zip.cpp --- kdeutils-3.5.7-original/ark/zip.cpp 2007-01-15 14:25:37 +0300 +++ kdeutils-3.5.7/ark/zip.cpp 2007-08-16 12:41:02 +0400 @@ -28,6 +28,7 @@ // Qt includes #include +#include // KDE includes #include @@ -207,8 +208,10 @@ *kp << "-o"; else *kp << "-n"; + + QTextCodec *codec = QTextCodec::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 @@ 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, SIGNAL( receivedStdout(KProcess*, char*, int) ), SLOT( slotReceivedOutput(KProcess*, char*, int) ) );