]> git.eshelyaron.com Git - emacs.git/commitdiff
(tar-data-swapped-p): Make the assertion a bit more
authorStefan Monnier <monnier@iro.umontreal.ca>
Sat, 17 Oct 2009 04:36:11 +0000 (04:36 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sat, 17 Oct 2009 04:36:11 +0000 (04:36 +0000)
permissive for when the buffer is empty.
(tar-header-block-tokenize): Decode the username and groupname.
(tar-chown-entry, tar-chgrp-entry): Encode the names (bug#4730).

lisp/ChangeLog
lisp/tar-mode.el

index bb119085989a128cc8f3479adbd48f8814783b4f..434dcbaff89c5893e6865bc4ed3b11c482d3d814 100644 (file)
@@ -1,3 +1,10 @@
+2009-10-17  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * tar-mode.el (tar-data-swapped-p): Make the assertion a bit more
+       permissive for when the buffer is empty.
+       (tar-header-block-tokenize): Decode the username and groupname.
+       (tar-chown-entry, tar-chgrp-entry): Encode the names (bug#4730).
+
 2009-10-17  Chong Yidong  <cyd@stupidchicken.com>
 
        * cedet/srecode/srt.el:
@@ -13,8 +20,8 @@
        (semantic-analyze-scoped-inherited-tag-map): Wrap calculation of
        tmpscope so that the regular scope will continue to work.
 
-       * cedet/semantic/idle.el (semantic-idle-tag-highlight): Use
-       semantic-idle-summary-highlight-face as the highlighting.
+       * cedet/semantic/idle.el (semantic-idle-tag-highlight):
+       Use semantic-idle-summary-highlight-face as the highlighting.
 
        * emacs-lisp/eieio-base.el (eieio-persistent-save): If buffer
        contains multibyte characters, choose first applicable coding
 
        * cedet/ede/proj-prog.el (project-run-target): New method.
 
-       * cedet/ede/proj-obj.el (ede-cc-linker): Rename from
-       ede-gcc-linker.
+       * cedet/ede/proj-obj.el (ede-cc-linker): Rename from ede-gcc-linker.
        (ede-g++-linker): Change Change link lines.
 
-       * cedet/ede/pmake.el (ede-pmake-insert-variable-shared): When
-       searching for old variables, go to the end of the buffer and
+       * cedet/ede/pmake.el (ede-pmake-insert-variable-shared):
+       When searching for old variables, go to the end of the buffer and
        search backward from there.
        (ede-proj-makefile-automake-insert-subdirs)
        (ede-proj-makefile-automake-insert-extradist): New methods.
        check that it exists.
 
        * cedet/ede/linux.el (ede-linux-version): Don't call "head".
-       (ede-linux-load): Wrap dir in file-name-as-directory.  Set
-       :version slot.
+       (ede-linux-load): Wrap dir in file-name-as-directory.
+       Set :version slot.
 
        * cedet/ede/files.el (ede-get-locator-object): When enabling
        locate, do so on "top".
 
        * cedet/ede/emacs.el (ede-emacs-file-existing): Wrap "dir" in
        file-name-as-directory during compare.
-       (ede-emacs-version): Return Emacs/XEmacs differentiator.  Get
-       version number from different places.  Don't call egrep.
+       (ede-emacs-version): Return Emacs/XEmacs differentiator.
+       Get version number from different places.  Don't call egrep.
        (ede-emacs-load): Set :version slot.  Call file-name-as-directory
        to set the directory.
 
index 762ecc07284118ffe6a1024cbe78f6a8f08116d6..0e681f5670252654cc4688705811f417b2f885c1 100644 (file)
@@ -171,8 +171,9 @@ This information is useful, but it takes screen space away from file names."
        ;; state correctly: the raw data is expected to be always larger than
        ;; the summary.
        (progn
-        (assert (eq tar-data-swapped
-                    (> (buffer-size tar-data-buffer) (buffer-size))))
+        (assert (or (= (buffer-size tar-data-buffer) (buffer-size))
+                     (eq tar-data-swapped
+                         (> (buffer-size tar-data-buffer) (buffer-size)))))
         tar-data-swapped)))
 
 (defun tar-swap-data ()
@@ -312,8 +313,12 @@ write-date, checksum, link-type, and link-name."
            link-p
            linkname
            uname-valid-p
-           (and uname-valid-p (substring string tar-uname-offset uname-end))
-           (and uname-valid-p (substring string tar-gname-offset gname-end))
+           (when uname-valid-p
+             (decode-coding-string
+              (substring string tar-uname-offset uname-end) coding))
+           (when uname-valid-p
+             (decode-coding-string
+              (substring string tar-gname-offset gname-end) coding))
            (tar-parse-octal-integer string tar-dmaj-offset tar-dmin-offset)
            (tar-parse-octal-integer string tar-dmin-offset tar-prefix-offset)
            ))))))
@@ -1013,7 +1018,10 @@ for this to be permanent."
         (read-string "New UID string: " (tar-header-uname descriptor))))))
   (cond ((stringp new-uid)
         (setf (tar-header-uname (tar-current-descriptor)) new-uid)
-        (tar-alter-one-field tar-uname-offset (concat new-uid "\000")))
+        (tar-alter-one-field tar-uname-offset
+                              (concat (encode-coding-string
+                                       new-uid tar-file-name-coding-system)
+                                      "\000")))
        (t
         (setf (tar-header-uid (tar-current-descriptor)) new-uid)
         (tar-alter-one-field tar-uid-offset
@@ -1039,7 +1047,9 @@ for this to be permanent."
   (cond ((stringp new-gid)
         (setf (tar-header-gname (tar-current-descriptor)) new-gid)
         (tar-alter-one-field tar-gname-offset
-          (concat new-gid "\000")))
+                              (concat (encode-coding-string
+                                       new-gid tar-file-name-coding-system)
+                                      "\000")))
        (t
         (setf (tar-header-gid (tar-current-descriptor)) new-gid)
         (tar-alter-one-field tar-gid-offset