Fossil SCM
Support symlinks in ZIP files.
Commit
16da26c5858f1152eadf024e550c06bb2b4be490
Parent
4619361d585c8c5…
1 file changed
+6
-1
+6
-1
| --- src/zip.c | ||
| +++ src/zip.c | ||
| @@ -139,11 +139,16 @@ | ||
| 139 | 139 | /* Fill in as much of the header as we know. |
| 140 | 140 | */ |
| 141 | 141 | nBlob = pFile ? blob_size(pFile) : 0; |
| 142 | 142 | if( nBlob>0 ){ |
| 143 | 143 | iMethod = 8; |
| 144 | - iMode = ( mPerm == 1 ) ? 0100755 : 0100644; //TODO(dchest): handle links | |
| 144 | + if( mPerm==1 ) | |
| 145 | + iMode = 0100755; /* executable */ | |
| 146 | + else if( mPerm==2 ) | |
| 147 | + iMode = 0120755; /* symlink */ | |
| 148 | + else | |
| 149 | + iMode = 0100644; /* normal file */ | |
| 145 | 150 | }else{ |
| 146 | 151 | iMethod = 0; |
| 147 | 152 | iMode = 040755; |
| 148 | 153 | } |
| 149 | 154 | nameLen = strlen(zName); |
| 150 | 155 |
| --- src/zip.c | |
| +++ src/zip.c | |
| @@ -139,11 +139,16 @@ | |
| 139 | /* Fill in as much of the header as we know. |
| 140 | */ |
| 141 | nBlob = pFile ? blob_size(pFile) : 0; |
| 142 | if( nBlob>0 ){ |
| 143 | iMethod = 8; |
| 144 | iMode = ( mPerm == 1 ) ? 0100755 : 0100644; //TODO(dchest): handle links |
| 145 | }else{ |
| 146 | iMethod = 0; |
| 147 | iMode = 040755; |
| 148 | } |
| 149 | nameLen = strlen(zName); |
| 150 |
| --- src/zip.c | |
| +++ src/zip.c | |
| @@ -139,11 +139,16 @@ | |
| 139 | /* Fill in as much of the header as we know. |
| 140 | */ |
| 141 | nBlob = pFile ? blob_size(pFile) : 0; |
| 142 | if( nBlob>0 ){ |
| 143 | iMethod = 8; |
| 144 | if( mPerm==1 ) |
| 145 | iMode = 0100755; /* executable */ |
| 146 | else if( mPerm==2 ) |
| 147 | iMode = 0120755; /* symlink */ |
| 148 | else |
| 149 | iMode = 0100644; /* normal file */ |
| 150 | }else{ |
| 151 | iMethod = 0; |
| 152 | iMode = 040755; |
| 153 | } |
| 154 | nameLen = strlen(zName); |
| 155 |