Function: binhex-decode-region-external
binhex-decode-region-external is an autoloaded, interactive and
byte-compiled function defined in binhex.el.gz.
Signature
(binhex-decode-region-external START END)
Documentation
Binhex decode region between START and END using external decoder.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/mail/binhex.el.gz
;;;###autoload
(defun binhex-decode-region-external (start end)
"Binhex decode region between START and END using external decoder."
(interactive "r")
(let ((cbuf (current-buffer))
work-buffer ;; firstline
(file-name (expand-file-name
(concat (binhex-decode-region-internal start end t)
".data")
temporary-file-directory)))
(save-excursion
(goto-char start)
(when (re-search-forward binhex-begin-line nil t)
(let ((cdir default-directory) default-process-coding-system)
(unwind-protect
(progn
(set-buffer (setq work-buffer
(generate-new-buffer " *binhex-work*")))
(buffer-disable-undo work-buffer)
(insert-buffer-substring cbuf nil end) ;; firstline
(cd temporary-file-directory)
(apply #'call-process-region
(point-min)
(point-max)
binhex-decoder-program
nil
nil
nil
binhex-decoder-switches))
(cd cdir) (set-buffer cbuf)))
(if (and file-name (file-exists-p file-name))
(progn
(goto-char start)
(delete-region start end)
(let (format-alist)
(insert-file-contents-literally file-name)))
(error "Can not binhex")))
(and work-buffer (kill-buffer work-buffer))
(ignore-errors
(if file-name (delete-file file-name))))))