2012-03-15 Wojciech Kocjan <zoro2@users.sourceforge.net>
authorWojciech Kocjan <zoro2@users.sourceforge.net>
Thu, 15 Mar 2012 18:51:50 +0000 (18:51 +0000)
committerWojciech Kocjan <zoro2@users.sourceforge.net>
Thu, 15 Mar 2012 18:51:50 +0000 (18:51 +0000)
* zipvfs.tcl: Fix for zip symlinks not supported anymore, bug 3505283

ChangeLog
library/zipvfs.tcl

index 243e90648374899995171c169594e8cbd75ee4c1..11d432140019d57b448933399fdc68c3ca180ee3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2012-03-15  Wojciech Kocjan <zoro2@users.sourceforge.net>
+
+       * zipvfs.tcl: Fix for zip symlinks not supported anymore, bug 3505283
+
 2011-11-28  Steve Huntley  <stephen.huntley@alum.mit.edu>
 
        * vfslib.tcl: Applied contributed patch for bug 3412801.  Clean up watch
index 7e55af4cdcaf53a8e9f8eebc558880f99818815c..b40803a2c5c9a1c93cf7ecab2c7e57a0bafdc374 100644 (file)
@@ -73,9 +73,10 @@ proc vfs::zip::stat {zipfd name} {
     #::vfs::log "stat $name"
     ::zip::stat $zipfd $name sb
     #::vfs::log [array get sb]
-    # remove additional mode bits to prevent Tcl from reporting Fossil archives
-    # as socket types
-    set sb(mode) [expr {$sb(mode) & 0x01ff}]
+    # remove socket mode bit (0xc000) to prevent Tcl from reporting Fossil archives as socket types
+    if {($sb(mode) & 0xc000) == 0xc000} {
+        set sb(mode) [expr {$sb(mode) ^ 0xc000}]
+    }
     array get sb
 }