Function: archive--with-ensure-extension

archive--with-ensure-extension is a byte-compiled function defined in arc-mode.el.gz.

Signature

(archive--with-ensure-extension ARCHIVE PROC-FN)

Source Code

;; Defined in /usr/src/emacs/lisp/arc-mode.el.gz
(defun archive--with-ensure-extension (archive proc-fn)
  (let ((saved default-directory))
    (with-current-buffer (find-buffer-visiting archive)
      (let ((ensure-extension (archive--need-rename-p))
            (default-directory saved))
        (unwind-protect
            ;; Some archive programs (like zip) expect filenames to
            ;; have an extension, so if necessary, temporarily rename
            ;; an extensionless file for write accesses.
            (let ((archive (archive--ensure-extension
                            archive ensure-extension)))
              (archive--maybe-rename archive ensure-extension)
              (let ((exitcode (funcall proc-fn archive)))
                (or (zerop exitcode)
                    (error "Updating was unsuccessful (%S)" exitcode))))
          (progn (archive--maybe-rename archive ensure-extension)
                 (revert-buffer nil t)))))))