diff options
| -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 |