From 6eccef61170e95a87d97d1207ab2fc82d8f6b4df Mon Sep 17 00:00:00 2001 From: Jesper Harder Date: Fri, 17 Jan 2003 05:17:23 +0000 Subject: [PATCH 1/1] * gnus-art.el (gnus-mime-print-part): Use mm-save-part-to-file to avoid encoding problems. * mailcap.el (mailcap-ps-command): New variable. (mailcap-mime-data): Add print entry where applicable. Use pdftotext on a tty. --- lisp/ChangeLog | 9 +++++++++ lisp/gnus-art.el | 3 +-- lisp/mailcap.el | 52 +++++++++++++++++++++++++++++------------------- 3 files changed, 41 insertions(+), 23 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 696fbc8b3..2aa779536 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2003-01-17 Jesper Harder + + * gnus-art.el (gnus-mime-print-part): Use mm-save-part-to-file to + avoid encoding problems. + + * mailcap.el (mailcap-ps-command): New variable. + (mailcap-mime-data): Add print entry where applicable. Use + pdftotext on a tty. + 2003-01-16 ShengHuo ZHU * gnus-sum.el (gnus-alter-header-function): Add type and group. diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index b966c62ed..aed56a924 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -4025,8 +4025,7 @@ are decompressed." (if printer (unwind-protect (progn - (with-temp-file file - (insert contents)) + (mm-save-part-to-file handle file) (call-process shell-file-name nil (generate-new-buffer " *mm*") nil diff --git a/lisp/mailcap.el b/lisp/mailcap.el index 5f7708274..53ec822ef 100644 --- a/lisp/mailcap.el +++ b/lisp/mailcap.el @@ -1,5 +1,6 @@ ;;; mailcap.el --- MIME media types configuration -;; Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 +;; Free Software Foundation, Inc. ;; Author: William M. Perry ;; Lars Magne Ingebrigtsen @@ -48,12 +49,21 @@ table) "A syntax table for parsing sgml attributes.") +(defvar mailcap-print-command + (mapconcat 'identity + (cons lpr-command + (if (stringp lpr-switches) + (list lpr-switches) + lpr-switches)) + " ") + "Shell command (including switches) used to print Postscript files.") + ;; Postpone using defcustom for this as it's so big and we essentially ;; have to have two copies of the data around then. Perhaps just ;; customize the Lisp viewers and rely on the normal configuration ;; files for the rest? -- fx (defvar mailcap-mime-data - '(("application" + `(("application" ("vnd.ms-excel" (viewer . "gnumeric %s") (test . (getenv "DISPLAY")) @@ -70,20 +80,17 @@ (viewer . mailcap-save-binary-file) (non-viewer . t) (type . "application/octet-stream")) -;;; XEmacs says `ns' device-type not implemented. -;; ("dvi" -;; (viewer . "open %s") -;; (type . "application/dvi") -;; (test . (eq (mm-device-type) 'ns))) ("dvi" (viewer . "xdvi -safer %s") (test . (eq window-system 'x)) ("needsx11") - (type . "application/dvi")) + (type . "application/dvi") + ("print" . "dvips -qRP %s")) ("dvi" (viewer . "dvitty %s") (test . (not (getenv "DISPLAY"))) - (type . "application/dvi")) + (type . "application/dvi") + ("print" . "dvips -qRP %s")) ("emacs-lisp" (viewer . mailcap-maybe-eval) (type . "application/emacs-lisp")) @@ -123,33 +130,41 @@ ("pdf" (viewer . "gv -safer %s") (type . "application/pdf") - (test . window-system)) + (test . window-system) + ("print" . ,(concat "pdf2ps %s - | " mailcap-print-command))) ("pdf" (viewer . "xpdf %s") (type . "application/pdf") + ("print" . ,(concat "pdftops %s - | " mailcap-print-command)) (test . (eq window-system 'x))) ("pdf" (viewer . "acroread %s") - (type . "application/pdf")) -;;; XEmacs says `ns' device-type not implemented. -;; ("postscript" -;; (viewer . "open %s") -;; (type . "application/postscript") -;; (test . (eq (mm-device-type) 'ns))) + (type . "application/pdf") + ("print" . ,(concat "cat %s | acroread -toPostScript | " + mailcap-print-command)) + (test . window-system)) + ("pdf" + (viewer . ,(concat "pdftotext %s - | ")) + (type . "application/pdf") + ("print" . ,(concat "pdftops %s - | " mailcap-print-command)) + ("copiousoutput")) ("postscript" (viewer . "gv -safer %s") (type . "application/postscript") (test . window-system) + ("print" . ,(concat mailcap-print-command " %s")) ("needsx11")) ("postscript" (viewer . "ghostview -dSAFER %s") (type . "application/postscript") (test . (eq window-system 'x)) + ("print" . ,(concat mailcap-print-command " %s")) ("needsx11")) ("postscript" (viewer . "ps2ascii %s") (type . "application/postscript") (test . (not (getenv "DISPLAY"))) + ("print" . ,(concat mailcap-print-command " %s")) ("copiousoutput")) ("sieve" (viewer . sieve-mode) @@ -198,11 +213,6 @@ ("compose" . "xwd -frame > %s") (test . (eq window-system 'x)) ("needsx11")) -;;; XEmacs says `ns' device-type not implemented. -;; (".*" -;; (viewer . "aopen %s") -;; (type . "image/*") -;; (test . (eq (mm-device-type) 'ns))) (".*" (viewer . "display %s") (type . "image/*") -- 2.25.1