(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
This commit is contained in:
Lars Ingebrigtsen 2018-01-21 21:41:36 +01:00
parent c965e5a641
commit 9ae0e4aa1a

View file

@ -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))