Version 1.2.1 v1.2.1
authorEric Biggers <ebiggers3@gmail.com>
Thu, 20 Dec 2012 00:44:33 +0000 (18:44 -0600)
committerEric Biggers <ebiggers3@gmail.com>
Thu, 20 Dec 2012 00:44:33 +0000 (18:44 -0600)
NEWS
doc/imagex-mount.1.in
programs/mkwinpeimg
src/ntfs-apply.c
src/ntfs-capture.c
src/symlink.c

diff --git a/NEWS b/NEWS
index 37f8bc0..a3bee73 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -18,6 +18,9 @@ Version 1.2.1:
        A small change has been made to XPRESS compression and it should improve
        the compression ratio slightly.
 
+       A change was made that may improve performance slightly when applying a
+       WIM image to a NTFS volume.
+
        Microsoft has managed to introduce even more bugs into their software,
        and now the WIMs for Windows 8 have incorrect (too low) reference counts
        for some streams.  This is unsafe because such streams can be removed
@@ -29,6 +32,8 @@ Version 1.2.1:
        requires reading the metadata for all images in the WIM, so this will
        make these operations noticably slower on WIMs with multiple images.
 
+       Various other bugfixes.
+
 Version 1.2.0:
        Appending images to a WIM is now be done by default without re-building
        the whole WIM.  Use the --rebuild flag to get the old behavior (which
index eaeaf1a..beda7c9 100644 (file)
@@ -78,7 +78,7 @@ to set or get DOS names, file attributes, or security
 descriptors in a mounted WIM.
 
 By default, changes to a read-write WIM are made in-place by appending to the
-WIM.  This is ideal for big WIM files, since the entire file doesn't have to be
+WIM.  This is nice for big WIM files, since the entire file doesn't have to be
 rebuilt to make a small change.  But, if you are making many changes to a
 read-write mounted WIM, especially deleting large files, it is suggested to
 provide the \fB--rebuild\fR option to \fBimagex unmount\fR to force the WIM to
index e3cc1dc..dc938a3 100755 (executable)
@@ -20,6 +20,7 @@
 
 script_name="$(basename $0)"
 PREFIX_REG="::"
+WIMLIB_VERSION=1.2.1
 
 calc_columns () {
        STAT_COL=80
@@ -113,7 +114,7 @@ EOF
 }
 
 version() {
-       echo "$script_name (wimlib 0.4.8)"
+       echo "$script_name (wimlib $WIMLIB_VERSION)"
        exit 0
 }
 
index c00be57..84fed6a 100644 (file)
@@ -390,9 +390,6 @@ static int preapply_dentry_with_dos_name(struct dentry *dentry,
        }
        /* If there's a dentry with a DOS name, extract it first */
        if (dentry_with_dos_name && !dentry_with_dos_name->is_extracted) {
-               char *p;
-               const char *dir_name;
-               char orig;
                int ret;
                ntfs_volume *vol = (*dir_ni_p)->vol;
 
index b06bc9c..8f123f8 100644 (file)
@@ -474,7 +474,6 @@ static int wim_ntfs_capture_filldir(void *dirent, const ntfschar *name,
        ntfs_inode_close(ni);
 out_free_utf8_name:
        FREE(utf8_name);
-out:
        return ret;
 }
 
index bb82965..ccdd6f5 100644 (file)
@@ -149,24 +149,23 @@ static int make_symlink_reparse_data_buf(const char *symlink_target,
                        ((u16*)name_utf16)[i] = cpu_to_le16('\\');
        size_t len = 12 + utf16_len * 2;
        void *buf = MALLOC(len);
-       if (!buf) {
-               FREE(name_utf16);
-               return WIMLIB_ERR_NOMEM;
+       if (buf) {
+               u8 *p = buf;
+               p = put_u16(p, utf16_len); /* Substitute name offset */
+               p = put_u16(p, utf16_len); /* Substitute name length */
+               p = put_u16(p, 0); /* Print name offset */
+               p = put_u16(p, utf16_len); /* Print name length */
+               p = put_u32(p, 1); /* flags: 0 iff *full* target, including drive letter??? */
+               p = put_bytes(p, utf16_len, (const u8*)name_utf16);
+               p = put_bytes(p, utf16_len, (const u8*)name_utf16);
+               *len_ret = len;
+               *buf_ret = buf;
+               ret = 0;
+       } else {
+               ret = WIMLIB_ERR_NOMEM;
        }
-
-       u8 *p = buf;
-       p = put_u16(p, utf16_len); /* Substitute name offset */
-       p = put_u16(p, utf16_len); /* Substitute name length */
-       p = put_u16(p, 0); /* Print name offset */
-       p = put_u16(p, utf16_len); /* Print name length */
-       p = put_u32(p, 1); /* flags: 0 iff *full* target, including drive letter??? */
-       p = put_bytes(p, utf16_len, (const u8*)name_utf16);
-       p = put_bytes(p, utf16_len, (const u8*)name_utf16);
-       *len_ret = len;
-       *buf_ret = buf;
-out:
        FREE(name_utf16);
-       return 0;
+       return ret;
 }
 
 /* Get the symlink target from a dentry.