summaryrefslogtreecommitdiff
path: root/lisp/arc-mode.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/arc-mode.el')
-rw-r--r--lisp/arc-mode.el23
1 files changed, 12 insertions, 11 deletions
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index 3973e97d626..ce3ec09e286 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -748,8 +748,7 @@ archive.
(or file-name-coding-system
default-file-name-coding-system
locale-coding-system))
- (if (default-value 'enable-multibyte-characters)
- (set-buffer-multibyte 'to))
+ (set-buffer-multibyte 'to)
(archive-summarize nil)
(setq buffer-read-only t)
(when (and archive-visit-single-files
@@ -807,7 +806,7 @@ is visible (and the real data of the buffer is hidden).
Optional argument SHUT-UP, if non-nil, means don't print messages
when parsing the archive."
(widen)
- (let ((buffer-file-truename nil) ; avoid changing dir mtime by lock_file
+ (let ((create-lockfiles nil) ; avoid changing dir mtime by lock_file
(inhibit-read-only t))
(setq archive-proper-file-start (copy-marker (point-min) t))
(set (make-local-variable 'change-major-mode-hook) 'archive-desummarize)
@@ -1064,7 +1063,9 @@ using `make-temp-file', and the generated name is returned."
;; We read an archive member by no-conversion at
;; first, then decode appropriately by calling
;; archive-set-buffer-as-visiting-file later.
- (coding-system-for-read 'no-conversion))
+ (coding-system-for-read 'no-conversion)
+ ;; Avoid changing dir mtime by lock_file
+ (create-lockfiles nil))
(condition-case err
(if (fboundp extractor)
(funcall extractor archive ename)
@@ -2043,13 +2044,13 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
(if copy (delete-file copy))
(goto-char (point-min))
(re-search-forward "^\\(\s+=+\s?+\\)+\n")
- (while (looking-at (concat "^\s+[0-9.]+\s+-+\s+" ; Flags
- "\\([0-9-]+\\)\s+" ; Size
- "\\([0-9.%]+\\)\s+" ; Ratio
- "\\([0-9a-zA-Z]+\\)\s+" ; Mode
- "\\([0-9-]+\\)\s+" ; Date
- "\\([0-9:]+\\)\s+" ; Time
- "\\(.*\\)\n" ; Name
+ (while (looking-at (concat "^\s+[0-9.]+\s+D?-+\s+" ; Flags
+ "\\([0-9-]+\\)\s+" ; Size
+ "\\([-0-9.%]+\\|-+\\)\s+" ; Ratio
+ "\\([0-9a-zA-Z]+\\)\s+" ; Mode
+ "\\([0-9-]+\\)\s+" ; Date
+ "\\([0-9:]+\\)\s+" ; Time
+ "\\(.*\\)\n" ; Name
))
(goto-char (match-end 0))
(let ((name (match-string 6))