2 ;;; $Id: mel-u.el,v 2.1 1995/11/01 06:03:14 morioka Exp $
8 (defvar mime/tmp-dir (or (getenv "TM_TMP_DIR") "/tmp/"))
10 (defvar uuencode-external-encoder '("uuencode" "-")
11 "*list of uuencode encoder program name and its arguments.")
13 (defvar uuencode-external-decoder
14 (list "sh" "-c" (format "(cd %s; uudecode)" mime/tmp-dir))
15 "*list of uuencode decoder program name and its arguments.")
18 ;;; @ external encoder
22 (define-program-coding-system
23 nil (car uuencode-external-encoder) *noconv*)
24 (define-program-coding-system
25 nil (car uuencode-external-decoder) *noconv*)
28 (define-program-kanji-code
29 nil (car uuencode-external-encoder) 0)
30 (define-program-kanji-code
31 nil (car uuencode-external-decoder) 0)
34 (defun uuencode-external-encode-region (beg end)
37 (let ((selective-display nil) ;Disable ^M to nl translation.
39 (kanji-flag nil)) ;NEmacs
40 (apply (function call-process-region)
41 beg end (car uuencode-external-encoder)
42 t t nil (cdr uuencode-external-encoder))
45 (defun uuencode-external-decode-region (beg end)
48 (let ((selective-display nil) ;Disable ^M to nl translation.
50 (kanji-flag nil) ;NEmacs
51 (filename (save-excursion
53 (narrow-to-region beg end)
55 (if (re-search-forward "^begin [0-9]+ " nil t)
56 (if (looking-at ".+$")
57 (buffer-substring (match-beginning 0)
64 (apply (function call-process-region)
65 beg end (car uuencode-external-decoder)
66 t t nil (cdr uuencode-external-decoder))
67 (setq filename (expand-file-name filename mime/tmp-dir))
68 (let ((file-coding-system-for-read
69 (if (boundp 'MULE) *noconv*)) ; Mule
70 kanji-fileio-code) ; NEmacs
71 (insert-file-contents filename)
73 (delete-file filename)
77 (defalias 'uuencode-encode-region 'uuencode-external-encode-region)
78 (defalias 'uuencode-decode-region 'uuencode-external-decode-region)