You are viewing a plain text version of this content. The canonical link for it is here.
Posted to zeta-issues@incubator.apache.org by "gggeek (Commented) (JIRA)" <ji...@apache.org> on 2011/10/28 15:17:32 UTC

[jira] [Commented] (ZETACOMP-71) Archive creation does not work on windows (treats all files as links)

    [ https://issues.apache.org/jira/browse/ZETACOMP-71?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13138430#comment-13138430 ] 

gggeek commented on ZETACOMP-71:
--------------------------------

switched from windows vista 32bit to windows 7 64bit: same problem still applies...
                
> Archive creation does not work on windows (treats all files as links)
> ---------------------------------------------------------------------
>
>                 Key: ZETACOMP-71
>                 URL: https://issues.apache.org/jira/browse/ZETACOMP-71
>             Project: Zeta Components
>          Issue Type: Bug
>          Components: Archive
>         Environment: vista sp2 32bit, php 536 vc9
>            Reporter: gggeek
>
> When adding files to an archive, all of them are treated as hardlinks. The archive cannot thus be created successfully. Tested with TAR and ZIP
> The problem comes from entry.php:
>             if ( ezcBaseFeatures::supportsLink() )
>             {
>                 if ( isset( $inodes[ $struct->ino ] ) )
>                 {
>                     // Yes, it's a hardlink.
>                     $struct->type = ezcArchiveEntry::IS_LINK;
>                     $struct->size = 0;
>                     $struct->link = $inodes[ $struct->ino ];
>                 }
>                 else
>                 {
>                     $inodes[ $struct->ino ] = $struct->path;
>                 }
>             }
> on my pc, $struct->ino is set to 0, hence the test for a hardlink succeeds.
> Correct code:
>             if ( ezcBaseFeatures::supportsLink() )
>             {
>                 if ( isset( $inodes[ $struct->ino ] ) && $inodes[ $struct->ino ] != 0 )
>                 {
>                     // Yes, it's a hardlink.
>                     $struct->type = ezcArchiveEntry::IS_LINK;
>                     $struct->size = 0;
>                     $struct->link = $inodes[ $struct->ino ];
>                 }
>                 else
>                 {
>                     $inodes[ $struct->ino ] = $struct->path;
>                 }
>             }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira