<table><tr><td style="">gepardo created this revision.<br />Herald added subscribers: Ark, kde-utils-devel.<br />Herald added a project: Ark.<br />gepardo requested review of this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D18562">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>After looking at 7zip sources, I've found that there are two types of file attributes:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">FAT/Windows (e. g. "RA", "RDA")</li>
<li class="remarkup-list-item">Unix (e. g. "_ -rwxr-xr-x" or "D_ drwxr-xr-x")</li>
</ul>

<p>Earlier, isDirectory property was determined by "Attributes = " field. But this is incorrect, when 7z returns strings like</p>

<p>"Attributes = RDA"</p>

<p>This is a directory, but the code searched for "D" in the beginning and failed. Due to that, the archive couldn't be displayed properly.</p>

<p>I used a more canonical way to determine isDirectory: parsing "Folder = " field in 7z's output. Also reworked handling "Attributes = " field to handle both cases correctly.</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>Rebuilt ark and tried on some zip archives (also on the archive that ark was unable to display properly). Everything works OK.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R36 Ark</div></div></div><br /><div><strong>BRANCH</strong><div><div>fix-7z-folder (branched from master)</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D18562">https://phabricator.kde.org/D18562</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>plugins/cli7zplugin/cliplugin.cpp</div></div></div><br /><div><strong>To: </strong>gepardo<br /><strong>Cc: </strong>kde-utils-devel, Ark, tctara<br /></div>