+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:
(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.
;; 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 ()
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)
))))))
(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
(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