Function: archive-lzh-ogm

archive-lzh-ogm is a byte-compiled function defined in arc-mode.el.gz.

Signature

(archive-lzh-ogm NEWVAL FILES ERRTXT OFS)

Source Code

;; Defined in /usr/src/emacs/lisp/arc-mode.el.gz
(defun archive-lzh-ogm (newval files errtxt ofs)
  (save-excursion
    (save-restriction
      (widen)
      (dolist (fil files)
	(let* ((p (+ archive-proper-file-start (archive--file-desc-pos fil)))
	       (hsize   (get-byte p))
	       (fnlen   (get-byte (+ p 21)))
	       (p2      (+ p 22 fnlen))
	       (creator (if (>= (- hsize fnlen) 24) (get-byte (+ p2 2)) 0))
	       (inhibit-read-only t))
	  (if (= creator ?U)
	      (progn
		(or (numberp newval)
		    (setq newval (funcall newval (archive-l-e (+ p2 ofs) 2))))
		(goto-char (+ p2 ofs))
		(delete-char 2)
		(arc-insert-unibyte (logand newval 255) (ash newval -8))
		(goto-char (1+ p))
		(delete-char 1)
		(arc-insert-unibyte (archive-lzh-resum (1+ p) hsize)))
	    (message "Member %s does not have %s field"
		     (archive--file-desc-int-file-name fil) errtxt)))))))