Function: archive-zip-chmod-entry

archive-zip-chmod-entry is a byte-compiled function defined in arc-mode.el.gz.

Signature

(archive-zip-chmod-entry NEWMODE FILES)

Source Code

;; Defined in /usr/src/emacs/lisp/arc-mode.el.gz
(defun archive-zip-chmod-entry (newmode files)
  (save-restriction
    (save-excursion
      (widen)
      (dolist (fil files)
	(let* ((p (+ archive-proper-file-start
                     (archive--file-desc-pos fil)))
	       (creator (get-byte (+ p 5)))
	       (oldmode (archive--file-desc-mode fil))
	       (newval  (archive-calc-mode oldmode newmode))
	       (inhibit-read-only t))
	  (cond ((memq creator '(2 3)) ; Unix
		 (goto-char (+ p 40))
		 (delete-char 2)
		 (arc-insert-unibyte (logand newval 255) (ash newval -8)))
		((memq creator '(0 5 6 7 10 11 15)) ; Dos etc.
		 (goto-char (+ p 38))
		 (arc-insert-unibyte
                  (logior (logand (get-byte (point)) 254)
			  (logand (logxor 1 (ash newval -7)) 1)))
		 (delete-char 1))
		(t (message "Don't know how to change mode for this member"))))
        ))))