diff options
| author | Richard M. Stallman | 1995-10-30 19:18:52 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1995-10-30 19:18:52 +0000 |
| commit | 83c4abcb4897f155999f436ffb28644cb08b7e5e (patch) | |
| tree | b1df9adb5bf94d6465bfa6066ac07943032ee900 | |
| parent | 9742dbc0eaf8d533c82850945e8b440b8ab752a0 (diff) | |
| download | emacs-83c4abcb4897f155999f436ffb28644cb08b7e5e.tar.gz emacs-83c4abcb4897f155999f436ffb28644cb08b7e5e.zip | |
(archive-zoo-summarize): Handle archives with long file names.
| -rw-r--r-- | lisp/arc-mode.el | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el index da4b2317014..7033aeaea2b 100644 --- a/lisp/arc-mode.el +++ b/lisp/arc-mode.el | |||
| @@ -1428,9 +1428,23 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." | |||
| 1428 | (modtime (archive-l-e (+ p 16) 2)) | 1428 | (modtime (archive-l-e (+ p 16) 2)) |
| 1429 | (ucsize (archive-l-e (+ p 20) 4)) | 1429 | (ucsize (archive-l-e (+ p 20) 4)) |
| 1430 | (namefld (buffer-substring (+ p 38) (+ p 38 13))) | 1430 | (namefld (buffer-substring (+ p 38) (+ p 38 13))) |
| 1431 | (fnlen (or (string-match "\0" namefld) 13)) | 1431 | (dirtype (char-after (+ p 4))) |
| 1432 | (efnname (substring namefld 0 fnlen)) | 1432 | (lfnlen (if (= dirtype 2) (char-after (+ p 56)) 0)) |
| 1433 | (fiddle (string= efnname (upcase efnname))) | 1433 | (ldirlen (if (= dirtype 2) (char-after (+ p 57)) 0)) |
| 1434 | (fnlen (+ ldirlen | ||
| 1435 | (if (> lfnlen 0) | ||
| 1436 | (1- lfnlen) | ||
| 1437 | (or (string-match "\0" namefld) 13)))) | ||
| 1438 | (efnname (concat | ||
| 1439 | (if (> ldirlen 0) | ||
| 1440 | (concat (buffer-substring | ||
| 1441 | (+ p 58 lfnlen) (+ p 58 lfnlen ldirlen -1)) | ||
| 1442 | "/") | ||
| 1443 | "") | ||
| 1444 | (if (> lfnlen 0) | ||
| 1445 | (buffer-substring (+ p 58) (+ p 58 lfnlen -1)) | ||
| 1446 | (substring namefld 0 fnlen)))) | ||
| 1447 | (fiddle (and (= lfnlen 0) (string= efnname (upcase efnname)))) | ||
| 1434 | (ifnname (if fiddle (downcase efnname) efnname)) | 1448 | (ifnname (if fiddle (downcase efnname) efnname)) |
| 1435 | (text (format " %8d %-11s %-8s %s" | 1449 | (text (format " %8d %-11s %-8s %s" |
| 1436 | ucsize | 1450 | ucsize |