By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release. View | Details | Raw Unified | Return to bug 2644
Collapse All | Expand All

(-)a/ark/filelistview.cpp (-1 / +1 lines)
Lines 394-400 FileListView::item(const TQString& filename) const Link Here
394
	// Iterate over the current tree level siblings
394
	// Iterate over the current tree level siblings
395
	while (flvi)
395
	while (flvi)
396
	{
396
	{
397
		if (flvi->fileName() == *pathIt || flvi->fileName() == (*pathIt).stripWhiteSpace()) {
397
		if (flvi->fileName() == *pathIt) {
398
			++pathIt;
398
			++pathIt;
399
			if (pathIt != pathEnd) {
399
			if (pathIt != pathEnd) {
400
				flvi = (FileLVI*) flvi->firstChild();
400
				flvi = (FileLVI*) flvi->firstChild();
(-)a/ark/rar.cpp (-6 / +22 lines)
Lines 55-61 Link Here
55
#include "arkutils.h"
55
#include "arkutils.h"
56
#include "filelistview.h"
56
#include "filelistview.h"
57
57
58
#define VERSION_5  5
58
//                   MMmmppbb ; M-major, m-minor, p-patch b-(100-beta)
59
#define VERSION_MAJOR 1000000
60
#define VERSION_MINOR   10000
61
#define VERSION_PATCH     100
62
#define VERSION_5 (5*VERSION_MAJOR - VERSION_PATCH + 1 ) // consider betas
59
63
60
RarArch::RarArch( ArkWidget *_gui, const TQString & _fileName )
64
RarArch::RarArch( ArkWidget *_gui, const TQString & _fileName )
61
  : Arch( _gui, _fileName ), m_isFirstLine(false), m_version(0)
65
  : Arch( _gui, _fileName ), m_isFirstLine(false), m_version(0)
Lines 95-105 bool RarArch::processLine( const TQCString &line ) Link Here
95
  // Look for rar/unrar version first
99
  // Look for rar/unrar version first
96
  if (!m_version)
100
  if (!m_version)
97
  {
101
  {
98
    TQRegExp versionRegExp (TQString::fromLatin1 ("RAR\\s(\\d+)\\.(\\S+)\\s.*"));
102
    TQRegExp versionRegExp (TQString::fromLatin1 ("RAR\\s(\\d+)\\.(\\d+)\\s(beta (\\d+))?\\s+Copyright.*"));
99
103
100
    if (versionRegExp.exactMatch (uline))
104
    if (versionRegExp.exactMatch (uline))
101
    {
105
    {
102
      m_version = versionRegExp.capturedTexts()[1].toShort ();
106
      // Rar displays verion in form of "M.mp (beta b)?"
107
      m_version  = versionRegExp.cap(1).toShort() * VERSION_MAJOR;
108
      m_version += versionRegExp.cap(2).toShort()/10 * VERSION_MINOR;
109
      m_version += versionRegExp.cap(2).toShort()%10 * VERSION_PATCH;
110
111
      if (!versionRegExp.cap(4).isEmpty()) { // beta versions should go befor release ones
112
        m_version -= VERSION_PATCH;
113
        m_version += versionRegExp.cap(4).toShort();
114
      }
103
115
104
      if (m_version < VERSION_5) {
116
      if (m_version < VERSION_5) {
105
          m_headerString = "-------------------------------------------------------------------------------";
117
          m_headerString = "-------------------------------------------------------------------------------";
Lines 150-155 bool RarArch::processLine( const TQCString &line ) Link Here
150
    if (parsedData.size() >= 8 && nameRegExp.exactMatch (uline)) {
162
    if (parsedData.size() >= 8 && nameRegExp.exactMatch (uline)) {
151
      m_entryFilename = nameRegExp.capturedTexts()[2];
163
      m_entryFilename = nameRegExp.capturedTexts()[2];
152
164
165
      if(m_version < 5*VERSION_MAJOR+3*VERSION_MINOR) { // workaround bug with extra spaces in rar<5.3.0
166
        m_entryFilename = m_entryFilename.stripWhiteSpace();
167
      }
168
153
      entry << m_entryFilename; // filename
169
      entry << m_entryFilename; // filename
154
      entry << parsedData[ 1 ]; // size
170
      entry << parsedData[ 1 ]; // size
155
      entry << parsedData[ 2 ]; // packed
171
      entry << parsedData[ 2 ]; // packed
Lines 163-175 bool RarArch::processLine( const TQCString &line ) Link Here
163
      return false;
179
      return false;
164
    }
180
    }
165
  }
181
  }
166
  
182
167
  // send to GUI
183
  // send to GUI
168
  // Use addOrUpdateItem() rather than addItem() due to recent RAR version
184
  // Use addOrUpdateItem() rather than addItem() due to recent RAR version
169
  // place directories in archive after their content.
185
  // place directories in archive after their content.
170
  FileLVI *item = m_gui->fileList()->addOrUpdateItem( entry );
186
  FileLVI *item = m_gui->fileList()->addOrUpdateItem( entry );
171
  
187
172
  // But archives packaged with older versions of ark may have directories 
188
  // But archives packaged with older versions of rar may have directories
173
  // entries first, so make sure they will get an appropriate icon
189
  // entries first, so make sure they will get an appropriate icon
174
  if (item && entry[5].find('d', 0, false) != -1) {
190
  if (item && entry[5].find('d', 0, false) != -1) {
175
    // check attr's for d (case insensitive to handle windows archives)
191
    // check attr's for d (case insensitive to handle windows archives)
(-)a/ark/rar.h (-2 / +3 lines)
Lines 24-29 Link Here
24
#ifndef RAR_H
24
#ifndef RAR_H
25
#define RAR_H 
25
#define RAR_H 
26
26
27
#include <stdint.h>
28
27
#include "arch.h"
29
#include "arch.h"
28
30
29
class TQString;
31
class TQString;
Lines 65-71 class RarArch : public Arch Link Here
65
     * Therefore, the variables below are needed.
67
     * Therefore, the variables below are needed.
66
     */
68
     */
67
    bool m_isFirstLine;
69
    bool m_isFirstLine;
68
    short m_version;
70
    uint32_t m_version;
69
    TQString m_entryFilename;
71
    TQString m_entryFilename;
70
};
72
};
71
73
72
- 

Return to bug 2644