diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2018-01-21 21:41:36 +0100 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2018-01-21 21:42:05 +0100 |
commit | 9ae0e4aa1aee3d7ff2546e34aa83536f72f8c06a (patch) | |
tree | 74914a8e9425c32da8cb870c41584bb05059a775 /lisp/arc-mode.el | |
parent | c965e5a641d9478d23a233b48977503506b1b603 (diff) | |
download | emacs-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.el | 14 |
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)) |