diff options
author | Glenn Morris <rgm@gnu.org> | 2020-09-27 09:37:10 -0700 |
---|---|---|
committer | Glenn Morris <rgm@gnu.org> | 2020-09-27 09:37:10 -0700 |
commit | 2e8c9ede155668167e509ddb80c6a46dab8d70fe (patch) | |
tree | 200d823eb9522f7531e8a31073ed003333cb34f4 /lisp | |
parent | a492013d07c59fab8eb9779924b384181e878a1a (diff) | |
parent | f31c6792ab98c8be343838f59d96e35c05353521 (diff) | |
download | emacs-2e8c9ede155668167e509ddb80c6a46dab8d70fe.tar.gz emacs-2e8c9ede155668167e509ddb80c6a46dab8d70fe.tar.bz2 emacs-2e8c9ede155668167e509ddb80c6a46dab8d70fe.zip |
Merge from origin/emacs-27
f31c6792ab Fix support for Zip64 zip files
ba635a19fb * lisp/hi-lock.el (hi-lock-auto-select-face): Doc fix. (B...
cc8fef2bdd Avoid infinite recursion with 'relative' line numbers display
395f10cb98 ; Fix more trivial typos
bf4accb65e ; Fix some trivial typos
# Conflicts:
# etc/NEWS
# lisp/arc-mode.el
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/arc-mode.el | 17 | ||||
-rw-r--r-- | lisp/hi-lock.el | 6 |
2 files changed, 16 insertions, 7 deletions
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el index ae85fc55add..c998a8a1f1a 100644 --- a/lisp/arc-mode.el +++ b/lisp/arc-mode.el @@ -1920,10 +1920,10 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." (search-backward-regexp "[P]K\005\006") (let ((p (archive-l-e (+ (point) 16) 4)) files) - (when (= p -1) - ;; If the offset of end-of-central-directory is -1, this is a - ;; Zip64 extended ZIP file format, and we need to glean the info - ;; from Zip64 records instead. + (when (or (= p #xffffffff) (= p -1)) + ;; If the offset of end-of-central-directory is 0xFFFFFFFF, this + ;; is a Zip64 extended ZIP file format, and we need to glean the + ;; info from Zip64 records instead. ;; ;; First, find the Zip64 end-of-central-directory locator. (search-backward "PK\006\007") @@ -1949,6 +1949,15 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." (efnname (let ((str (buffer-substring (+ p 46) (+ p 46 fnlen)))) (decode-coding-string str archive-file-name-coding-system))) + (ucsize (if (and (or (= ucsize #xffffffff) (= ucsize -1)) + (> exlen 0)) + ;; APPNOTE.TXT, para 4.5.3: the Extra Field + ;; begins with 2 bytes of signature + ;; (\000\001), followed by 2 bytes that give + ;; the size of the extra block, followed by + ;; an 8-byte uncompressed size. + (archive-l-e (+ p 46 fnlen 4) 8) + ucsize)) (isdir (and (= ucsize 0) (string= (file-name-nondirectory efnname) ""))) (mode (cond ((memq creator '(2 3)) ; Unix diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el index 0fe651ace34..c386b7c8012 100644 --- a/lisp/hi-lock.el +++ b/lisp/hi-lock.el @@ -136,9 +136,9 @@ patterns." (put 'hi-lock-file-patterns-policy 'risky-local-variable t) (defcustom hi-lock-auto-select-face nil - "Non-nil means highlighting commands do not prompt for the face to use. -Instead, each hi-lock command will cycle through the faces in -`hi-lock-face-defaults'." + "When nil, highlighting commands prompt for the face to use. +When non-nil, highlighting command determine the faces to use +by cycling through the faces in `hi-lock-face-defaults'." :type 'boolean :version "24.4") |