You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by bo...@apache.org on 2003/07/30 14:23:10 UTC
cvs commit: ant/src/main/org/apache/tools/ant/taskdefs Zip.java
bodewig 2003/07/30 05:23:10
Modified: src/main/org/apache/tools/ant/taskdefs Zip.java
Log:
Keep permissions of directories as well when updating a zip archive.
PR: 21308
Revision Changes Path
1.112 +28 -1 ant/src/main/org/apache/tools/ant/taskdefs/Zip.java
Index: Zip.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Zip.java,v
retrieving revision 1.111
retrieving revision 1.112
diff -u -r1.111 -r1.112
--- Zip.java 22 Jul 2003 11:37:21 -0000 1.111
+++ Zip.java 30 Jul 2003 12:23:10 -0000 1.112
@@ -449,12 +449,24 @@
DirectoryScanner ds =
oldFiles.getDirectoryScanner(getProject());
((ZipScanner) ds).setEncoding(encoding);
+
String[] f = ds.getIncludedFiles();
Resource[] r = new Resource[f.length];
for (int i = 0; i < f.length; i++) {
r[i] = ds.getResource(f[i]);
}
+ if (!doFilesonly) {
+ String[] d = ds.getIncludedDirectories();
+ Resource[] dr = new Resource[d.length];
+ for (int i = 0; i < d.length; i++) {
+ dr[i] = ds.getResource(d[i]);
+ }
+ Resource[] tmp = r;
+ r = new Resource[tmp.length + dr.length];
+ System.arraycopy(dr, 0, r, 0, dr.length);
+ System.arraycopy(tmp, 0, r, dr.length, tmp.length);
+ }
addResources(oldFiles, r, zOut);
}
finalizeZipOutputStream(zOut);
@@ -596,7 +608,22 @@
name = name + "/";
}
- addParentDirs(base, name, zOut, prefix, dirMode);
+ if (!doFilesonly && !dealingWithFiles
+ && resources[i].isDirectory()
+ && !zfs.hasDirModeBeenSet()) {
+ int nextToLastSlash = name.lastIndexOf("/",
+ name.length() - 2);
+ if (nextToLastSlash != -1) {
+ addParentDirs(base, name.substring(0,
+ nextToLastSlash + 1),
+ zOut, prefix, dirMode);
+ }
+ ZipEntry ze = zf.getEntry(resources[i].getName());
+ addParentDirs(base, name, zOut, prefix, ze.getUnixMode());
+
+ } else {
+ addParentDirs(base, name, zOut, prefix, dirMode);
+ }
if (!resources[i].isDirectory() && dealingWithFiles) {
File f = fileUtils.resolveFile(base,
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org