X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=tm-file.el;h=7801ca74d499604a8b28bc136a8744a4c7c4ca32;hb=75c13a1b619fb6f1890ca7134cf4f552723fffa2;hp=6eee1cad3d5a376bcca884fb30de972bbffecc73;hpb=f94c46d394e1304bcc35fee20db5523746cf7a7a;p=elisp%2Ftm.git diff --git a/tm-file.el b/tm-file.el index 6eee1ca..7801ca7 100644 --- a/tm-file.el +++ b/tm-file.el @@ -1,43 +1,43 @@ -;;; ;;; tm-file.el --- tm-view internal method for file extraction -;;; -;;; Copyright (C) 1995 Free Software Foundation, Inc. -;;; Copyright (C) 1995 MORIOKA Tomohiko -;;; -;;; Author: MORIOKA Tomohiko -;;; Version: -;;; $Id: tm-file.el,v 6.0 1995/12/09 03:49:51 morioka Exp $ -;;; Keywords: mail, news, MIME, multimedia -;;; -;;; This file is part of tm (Tools for MIME). -;;; -;;; This file is part of tm (Tools for MIME). -;;; -;;; This program is free software; you can redistribute it and/or -;;; modify it under the terms of the GNU General Public License as -;;; published by the Free Software Foundation; either version 2, or -;;; (at your option) any later version. -;;; -;;; This program is distributed in the hope that it will be useful, -;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;; General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with This program. If not, write to the Free Software -;;; Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -;;; + +;; Copyright (C) 1995,1996 Free Software Foundation, Inc. + +;; Author: MORIOKA Tomohiko +;; modified by Shuhei KOBAYASHI +;; Version: $Id: tm-file.el,v 7.8 1996/09/23 13:16:56 morioka Exp $ +;; Keywords: mail, news, MIME, multimedia, file, extract + +;; This file is part of tm (Tools for MIME). + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or (at +;; your option) any later version. + +;; This program is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + ;;; Code: (require 'tm-view) (defun mime-article/extract-file (beg end cal) - (let* ((name (or (cdr (assoc "name" cal)) - (cdr (assoc "x-name" cal)))) + (goto-char beg) + (let* ((name + (save-restriction + (narrow-to-region beg end) + (mime-article/get-filename cal) + )) (encoding (cdr (assq 'encoding cal))) - (file-coding-system *noconv*) (filename - (if name + (if (and name (not (string-equal name ""))) (expand-file-name name (call-interactively (function @@ -52,13 +52,16 @@ (the-buf (current-buffer)) (tmp-buf (generate-new-buffer (file-name-nondirectory filename))) ) - (goto-char beg) + (if (file-exists-p filename) + (or (yes-or-no-p (format "File %s exists. Save anyway? " filename)) + (error ""))) (re-search-forward "\n\n") (append-to-buffer tmp-buf (match-end 0) end) (save-excursion (set-buffer tmp-buf) - (mime/decode-region encoding (point-min)(point-max)) - (let ((mc-flag nil) ; for Mule + (mime-decode-region (point-min)(point-max) encoding) + (let ((coding-system-for-write 'no-conversion) + (mc-flag nil) ; for Mule (file-coding-system (if (featurep 'mule) *noconv*)) kanji-flag ; for NEmacs @@ -76,17 +79,25 @@ ;;; (set-atype 'mime/content-decoding-condition - '((mode . "extract") + '((type . "application/octet-stream") (method . mime-article/extract-file) - )) + ) + 'ignore '(method) + 'replacement) (set-atype 'mime/content-decoding-condition - '((type . "application/octet-stream") + '((mode . "extract") (method . mime-article/extract-file) - )) + ) + 'remove + '((method "tm-file" nil 'file 'type 'encoding 'mode 'name) + (mode . "extract")) + 'replacement) ;;; @ end ;;; (provide 'tm-file) + +;;; end of tm-file.el