- (let ((coding (cdr (assoc 'encoding cal)))
- (cur-buf (current-buffer))
- (tm-tar/tar-file-name (expand-file-name (concat (make-temp-name
- (expand-file-name "tm" mime/tmp-dir)) ".tar")))
- (tm-tar/tmp-file-name (expand-file-name (make-temp-name
- (expand-file-name "tm" mime/tmp-dir))))
- new-buf
- )
- (find-file tm-tar/tmp-file-name)
- (setq new-buf (current-buffer))
- (setq buffer-read-only nil)
- (erase-buffer)
- (save-excursion
- (set-buffer cur-buf)
- (goto-char beg)
- (re-search-forward "^$")
- (append-to-buffer new-buf (+ (match-end 0) 1) end)
- )
- (if (member coding mime-viewer/uuencode-encoding-name-list)
- (progn
- (goto-char (point-min))
- (if (re-search-forward "^begin [0-9]+ " nil t)
- (progn
- (kill-line)
- (insert tm-tar/tar-file-name)
- )
- (progn
- (set-buffer-modified-p nil)
- (kill-buffer new-buf)
- (error "uuencode file signature was not found")
- ))))
- (save-buffer)
- (kill-buffer new-buf)
- (message "Listing the contents of an archive. Please wait...")
- (cond ((string-equal coding "base64")
- (call-process tm-tar/mmencode-program nil nil nil "-u"
- "-o" tm-tar/tar-file-name tm-tar/tmp-file-name)
- )
- ((string-equal coding "quoted-printable")
- (call-process tm-tar/mmencode-program nil nil nil "-u" "-q"
- "-o" tm-tar/tar-file-name tm-tar/tmp-file-name)
- )
- ((member coding mime-viewer/uuencode-encoding-name-list)
- (call-process tm-tar/uudecode-program nil nil nil
- tm-tar/tmp-file-name)
- )
- (t
- (copy-file tm-tar/tmp-file-name tm-tar/tar-file-name t)
- ))
- (delete-file tm-tar/tmp-file-name)
- (setq tm-tar/list-args (list "-tvf" tm-tar/tar-file-name))
- (setq tm-tar/view-args (list "-xOf" tm-tar/tar-file-name))
- (if (eq 0 (call-process tm-tar/gzip-program
- nil nil nil "-t" tm-tar/tar-file-name))
- (progn
- (setq tm-tar/list-args
- (append tm-tar/tar-decompress-arg tm-tar/list-args))
- (setq tm-tar/view-args
- (append tm-tar/tar-decompress-arg tm-tar/view-args))
- ))
- (switch-to-buffer tm-tar/view-buffer)
- (switch-to-buffer tm-tar/list-buffer)
- (setq buffer-read-only nil)
- (erase-buffer)
- (apply 'call-process tm-tar/tar-program
- nil t nil tm-tar/list-args)
- (tm-tar/set-properties)
- (tm-tar/tar-mode mime::article/preview-buffer)
- (kill-buffer tm-tar/view-buffer)
- (kill-buffer tm-tar/list-buffer)
- (delete-file tm-tar/tar-file-name)
+ (if (tm-tar/y-or-n-p "Do you want to enter tm-tar mode? ")
+ (let ((coding (cdr (assoc 'encoding cal)))
+ (cur-buf (current-buffer))
+ (tm-tar/tar-file-name (expand-file-name (concat (make-temp-name
+ (expand-file-name "tm" mime/tmp-dir)) ".tar")))
+ (tm-tar/tmp-file-name (expand-file-name (make-temp-name
+ (expand-file-name "tm" mime/tmp-dir))))
+ new-buf
+ )
+ (find-file tm-tar/tmp-file-name)
+ (setq new-buf (current-buffer))
+ (setq buffer-read-only nil)
+ (erase-buffer)
+ (save-excursion
+ (set-buffer cur-buf)
+ (goto-char beg)
+ (re-search-forward "^$")
+ (append-to-buffer new-buf (+ (match-end 0) 1) end)
+ )
+ (if (member coding mime-viewer/uuencode-encoding-name-list)
+ (progn
+ (goto-char (point-min))
+ (if (re-search-forward "^begin [0-9]+ " nil t)
+ (progn
+ (kill-line)
+ (insert tm-tar/tar-file-name)
+ )
+ (progn
+ (set-buffer-modified-p nil)
+ (kill-buffer new-buf)
+ (error "uuencode file signature was not found")
+ ))))
+ (save-buffer)
+ (kill-buffer new-buf)
+ (message "Listing the contents of an archive. Please wait...")
+ (cond ((string-equal coding "base64")
+ (call-process tm-tar/mmencode-program nil nil nil "-u"
+ "-o" tm-tar/tar-file-name tm-tar/tmp-file-name)
+ )
+ ((string-equal coding "quoted-printable")
+ (call-process tm-tar/mmencode-program nil nil nil "-u" "-q"
+ "-o" tm-tar/tar-file-name tm-tar/tmp-file-name)
+ )
+ ((member coding mime-viewer/uuencode-encoding-name-list)
+ (call-process tm-tar/uudecode-program nil nil nil
+ tm-tar/tmp-file-name)
+ )
+ (t
+ (copy-file tm-tar/tmp-file-name tm-tar/tar-file-name t)
+ ))
+ (delete-file tm-tar/tmp-file-name)
+ (setq tm-tar/list-args (list "-tvf" tm-tar/tar-file-name))
+ (setq tm-tar/view-args (list "-xOf" tm-tar/tar-file-name))
+ (if (eq 0 (call-process tm-tar/gzip-program
+ nil nil nil "-t" tm-tar/tar-file-name))
+ (progn
+ (setq tm-tar/list-args
+ (append tm-tar/tar-decompress-arg tm-tar/list-args))
+ (setq tm-tar/view-args
+ (append tm-tar/tar-decompress-arg tm-tar/view-args))
+ ))
+ (switch-to-buffer tm-tar/view-buffer)
+ (switch-to-buffer tm-tar/list-buffer)
+ (setq buffer-read-only nil)
+ (erase-buffer)
+ (apply 'call-process tm-tar/tar-program
+ nil t nil tm-tar/list-args)
+ (if mouse-button-2
+ (progn
+ (make-local-variable 'tm:mother-button-dispatcher)
+ (setq tm:mother-button-dispatcher 'tm-tar/mouse-button-2)
+ ))
+ (tm-tar/set-properties)
+ (tm-tar/tar-mode mime::article/preview-buffer)
+ (kill-buffer tm-tar/view-buffer)
+ (kill-buffer tm-tar/list-buffer)
+ (delete-file tm-tar/tar-file-name)
+ )