summaryrefslogtreecommitdiff
path: root/lisp/arc-mode.el
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2018-01-21 21:41:36 +0100
committerLars Ingebrigtsen <larsi@gnus.org>2018-01-21 21:42:05 +0100
commit9ae0e4aa1aee3d7ff2546e34aa83536f72f8c06a (patch)
tree74914a8e9425c32da8cb870c41584bb05059a775 /lisp/arc-mode.el
parentc965e5a641d9478d23a233b48977503506b1b603 (diff)
downloademacs-9ae0e4aa1aee3d7ff2546e34aa83536f72f8c06a.tar.gz
(archive-rar-summarize): Adjust parsing to be more permissive
* lisp/arc-mode.el (archive-rar-summarize): Adjust parsing to be more permissive. The previous code would stop parsing if we had a directory entry or a negative ratio as seen from the output of lsar on Debian jessie: 0. D---- 16221659 ----- Nr20 2005-12-24 19:30 foo/ 4. ----- 466509 -0.0% Nr20 2005-12-24 19:19 foo/bar.jpg
Diffstat (limited to 'lisp/arc-mode.el')
-rw-r--r--lisp/arc-mode.el14
1 files changed, 7 insertions, 7 deletions
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index 3973e97d626..adb36699032 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -2043,13 +2043,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))