From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Tassilo Horn Newsgroups: gmane.emacs.devel Subject: Re: mailcap viewers in dired; gnus-dired.el, mailcap.el Date: Tue, 16 Oct 2007 08:49:52 +0200 Message-ID: <87lka3blkf.fsf@baldur.tsdh.de> References: <87bqbhkhc6.fsf@baldur.tsdh.de> <58152.128.165.0.81.1191330286.squirrel@webmail.lanl.gov> <878x6ljwb4.fsf@baldur.tsdh.de> <87fy0r2u3z.fsf@baldur.tsdh.de> <87wsu1sear.fsf@baldur.tsdh.de> <878x6gqqfa.fsf@baldur.tsdh.de> <87abqt2x52.fsf@jurta.org> <87bqb8rmk2.fsf@jurta.org> <87ejg3q51o.fsf@jurta.org> <87lka47xu6.fsf@jurta.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1192517427 31557 80.91.229.12 (16 Oct 2007 06:50:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 16 Oct 2007 06:50:27 +0000 (UTC) Cc: rms@gnu.org, Reiner Steib , emacs-devel@gnu.org To: Juri Linkov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Oct 16 08:50:17 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1IhgFs-0006fz-1k for ged-emacs-devel@m.gmane.org; Tue, 16 Oct 2007 08:50:16 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IhgFk-0003qi-P2 for ged-emacs-devel@m.gmane.org; Tue, 16 Oct 2007 02:50:08 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IhgFf-0003p9-UD for emacs-devel@gnu.org; Tue, 16 Oct 2007 02:50:04 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IhgFf-0003of-5z for emacs-devel@gnu.org; Tue, 16 Oct 2007 02:50:03 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IhgFe-0003oY-BO for emacs-devel@gnu.org; Tue, 16 Oct 2007 02:50:02 -0400 Original-Received: from mx20.gnu.org ([199.232.41.8]) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1IhgFa-00074O-HY; Tue, 16 Oct 2007 02:49:58 -0400 Original-Received: from out1.smtp.messagingengine.com ([66.111.4.25]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IhgFZ-0007eU-Df; Tue, 16 Oct 2007 02:49:57 -0400 Original-Received: from compute1.internal (compute1.internal [10.202.2.41]) by out1.messagingengine.com (Postfix) with ESMTP id 946EF3204F; Tue, 16 Oct 2007 02:49:56 -0400 (EDT) Original-Received: from heartbeat2.messagingengine.com ([10.202.2.161]) by compute1.internal (MEProxy); Tue, 16 Oct 2007 02:49:56 -0400 X-Sasl-enc: +BdSATGhvxZEsjtVPxJxGwT2L7AGqMVhpFaxy1i4yjMC 1192517395 Original-Received: from baldur.tsdh.de (dslb-084-063-051-168.pools.arcor-ip.net [84.63.51.168]) by mail.messagingengine.com (Postfix) with ESMTP id AEF4B219D5; Tue, 16 Oct 2007 02:49:54 -0400 (EDT) Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwEAIAAACI8LKTAAAACXBIWXMAAArrAAAK6wGCiw1a AAAATnRFWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYACmV4aWYKICAgICAgMjAKNDU3ODY5NjYwMDAw NGQ0ZDAwMmEwMDAwMDAwODAwMDAwMDAwMDAwMAqJuBZbAAAACXZwQWcAAAAwAAAAMADO7oxXAAAB mElEQVRo3u2byxHCMAxEVQpXekgPKYI2aIJGUwNXLmT02ZXkRBcfMkxsv2hXtmzkeBzPY5/2XyuD YAB1ArS9tvf26TlV39jE142+rcURH6Hw0GQi441KUN13llUEk0Q6WMtuwYCuhCYyLzMgbAb5fa55 P+rz6DEJG03cERjjCQH694qq/MJLEcURhJ08A1MZoHw01nEWe1AtIL3ZO7MYo2NrhrIi0087lObj 3+0chHUC+rGh4hcQQbzAPoeiXz0l7cWqNK9ZOsZjFrCbx8rK5zVxp4vnO8nZx+udxSoizRYkkpGF scHTTyyyz7LGUVLJ1eojvueMJV9SyZWxnEe9X7NKuiAgvc0z6lnCOzNAfcPa8xJhx4vGnq1Ol1nb FJ5wUPHi6wWFT6oCHhVNbElKjj2jfn8uW4b0pNsRsFVE7BOX1DSPkobeoS54uwNVY14SkHWDEi+/ LQnI50rWYtuNTDpfVi08yLewzL8r0AhQzws30vkORlXUNAKkL79NBO1WTDeVWB9xLelBc5G8WFAD aP6KMIAGUK/2C9wW05DKIbRCAAAAGnpUWHRqcGVnOmNvbG9yc3BhY2UAAHjaMwIAADMAM4k4IzUA AAAmelRYdGpwZWc6c2FtcGxpbmctZmFjdG9yAAB42jOqMNIxrDAEYQARgwLpPZcvTwAAAABJRU5E rkJggg== Mail-Followup-To: Juri Linkov , rms@gnu.org, Reiner Steib , emacs-devel@gnu.org In-Reply-To: <87lka47xu6.fsf@jurta.org> (Juri Linkov's message of "Tue, 16 Oct 2007 02:46:28 +0300") User-Agent: Gnus/5.110007 (No Gnus v0.7) Emacs/23.0.50 (gnu/linux) X-detected-kernel: by mx20.gnu.org: Genre and OS details not recognized. X-detected-kernel: by monty-python.gnu.org: Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:80994 Archived-At: --=-=-= Juri Linkov writes: Hi Juri, > BTW, I don't understand why .eps is removed from `auto-mode-alist' in > the latest patch? Ups, that's an error. Of course, eps files work fine with doc-view. I attached a new patch which adds eps files to the doc-view-mode auto-mode-alist entry. --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=doc-view.patch Content-Description: doc-view-as-standard-viewer-2007-10-16_08:50.patch Index: lisp/files.el =================================================================== RCS file: /sources/emacs/emacs/lisp/files.el,v retrieving revision 1.932 diff -u -r1.932 files.el --- lisp/files.el 15 Oct 2007 02:07:46 -0000 1.932 +++ lisp/files.el 16 Oct 2007 06:45:23 -0000 @@ -2059,7 +2059,7 @@ ("\\.\\(as\\|mi\\|sm\\)2\\'" . snmpv2-mode) ("\\.\\(diffs?\\|patch\\|rej\\)\\'" . diff-mode) ("\\.\\(dif\\|pat\\)\\'" . diff-mode) ; for MSDOG - ("\\.[eE]?[pP][sS]\\'" . ps-mode) + ("\\(?:DVI\\|EPS\\|P\\(?:DF\\|S\\)\\|dvi\\|eps\\|p\\(?:df\\|s\\)\\)" . doc-view-mode) ("configure\\.\\(ac\\|in\\)\\'" . autoconf-mode) ("BROWSE\\'" . ebrowse-tree-mode) ("\\.ebrowse\\'" . ebrowse-tree-mode) Index: lisp/doc-view.el =================================================================== RCS file: /sources/emacs/emacs/lisp/doc-view.el,v retrieving revision 1.4 diff -u -r1.4 doc-view.el --- lisp/doc-view.el 3 Oct 2007 23:39:58 -0000 1.4 +++ lisp/doc-view.el 16 Oct 2007 06:45:24 -0000 @@ -5,7 +5,7 @@ ;; Author: Tassilo Horn ;; Maintainer: Tassilo Horn ;; Keywords: files, pdf, ps, dvi -;; Version: <2007-10-02 Tue 18:21> +;; Version: <2007-10-16 Tue 08:42> ;; This file is part of GNU Emacs. @@ -37,16 +37,19 @@ ;; inside an Emacs buffer. This buffer uses `doc-view-mode' which provides ;; convenient key bindings for browsing the document. ;; -;; To use it simply do +;; To use it simply open a document file with ;; -;; M-x doc-view RET +;; C-x C-f ~/path/to/document RET ;; -;; and you'll be queried for a document to open. +;; and the document will be converted and displayed, if your emacs supports png +;; images. With `C-c C-c' you can toggle between the rendered images +;; representation and the source text representation of the document. With +;; `C-c C-e' you can switch to an appropriate editing mode for the document. ;; ;; Since conversion may take some time all the PNG images are cached in a ;; subdirectory of `doc-view-cache-directory' and reused when you want to view -;; that file again. This reusing can be omitted if you provide a prefx -;; argument to `doc-view'. To delete all cached files use +;; that file again. To reconvert a document hit `g' (`doc-view-reconvert-doc') +;; when displaying the document. To delete all cached files use ;; `doc-view-clear-cache'. To open the cache with dired, so that you can tidy ;; it out use `doc-view-dired-cache'. ;; @@ -67,8 +70,6 @@ ;; bottom-right corner of the desired slice. To reset the slice use ;; `doc-view-reset-slice' (bound to `s r'). ;; -;; Dired users should have a look at `doc-view-dired'. -;; ;; You can also search within the document. The command `doc-view-search' ;; (bound to `C-s') queries for a search regexp and initializes a list of all ;; matching pages and messages how many match-pages were found. After that you @@ -80,17 +81,16 @@ ;; conversion. When that finishes and you're still viewing the document ;; (i.e. you didn't switch to another buffer) you're queried for the regexp ;; then. +;; +;; Dired users can simply hit `v' on a document file. If it's a PS, PDF or DVI +;; it will be opened using `doc-view-mode'. +;; ;;; Configuration: -;; Basically doc-view should be quite usable with its standard settings, so -;; putting -;; -;; (require 'doc-view) -;; -;; into your `user-init-file' should be enough. If the images are too small or -;; too big you should set the "-rXXX" option in `doc-view-ghostscript-options' -;; to another value. (The bigger your screen, the higher the value.) +;; If the images are too small or too big you should set the "-rXXX" option in +;; `doc-view-ghostscript-options' to another value. (The bigger your screen, +;; the higher the value.) ;; ;; This and all other options can be set with the customization interface. ;; Simply do @@ -201,7 +201,10 @@ (defvar doc-view-current-info nil "Only used internally.") -;;;; DocView Keymap +(defvar doc-view-current-display nil + "Only used internally.") + +;;;; DocView Keymaps (defvar doc-view-mode-map (let ((map (make-sparse-keymap))) @@ -235,9 +238,21 @@ (define-key map (kbd "M-v") 'scroll-down) ;; Show the tooltip (define-key map (kbd "C-t") 'doc-view-show-tooltip) + ;; Toggle between text and image display or editing + (define-key map (kbd "C-c C-c") 'doc-view-toggle-display) + (define-key map (kbd "C-c C-e") 'doc-view-edit-doc) + ;; Reconvert the current document + (define-key map (kbd "g") 'doc-view-reconvert-doc) (suppress-keymap map) map) - "Keymap used by `doc-view-mode'.") + "Keymap used by `doc-view-mode' when displaying a doc as a set of images.") + +(defvar doc-view-mode-text-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c C-c") 'doc-view-toggle-display) + (define-key map (kbd "C-c C-e") 'doc-view-edit-doc) + map) + "Keymap used by `doc-view-mode' when displaying a document as text.") ;;;; Navigation Commands @@ -271,16 +286,16 @@ (setq contexts (concat contexts " - \"" m "\"\n"))) contexts))))) ;; Update the buffer - (setq inhibit-read-only t) - (erase-buffer) - (let ((beg (point))) - (doc-view-insert-image (nth (1- page) doc-view-current-files) - :pointer 'arrow) - (put-text-property beg (point) 'help-echo doc-view-current-info)) - (insert "\n" doc-view-current-info) - (goto-char (point-min)) - (forward-char) - (setq inhibit-read-only nil))) + (let ((inhibit-read-only t)) + (erase-buffer) + (let ((beg (point))) + (doc-view-insert-image (nth (1- page) doc-view-current-files) + :pointer 'arrow) + (put-text-property beg (point) 'help-echo doc-view-current-info)) + (insert "\n" doc-view-current-info) + (goto-char (point-min)) + (forward-char)) + (set-buffer-modified-p nil))) (defun doc-view-next-page (&optional arg) "Browse ARG pages forward." @@ -330,10 +345,21 @@ ;;;; Conversion Functions +(defun doc-view-reconvert-doc () + "Reconvert the current document. +Should be invoked when the cached images aren't up-to-date." + (interactive) + (let ((inhibit-read-only t) + (doc doc-view-current-doc)) + ;; Clear the old cached files + (when (file-exists-p doc-view-current-cache-dir) + (dired-delete-file doc-view-current-cache-dir 'always)) + (doc-view-kill-proc-and-buffer) + (find-file doc))) + (defun doc-view-file-name-to-directory-name (file) "Return the directory where the png files of FILE should be saved. - -It'a a subdirectory of `doc-view-cache-directory'." +It's a subdirectory of `doc-view-cache-directory'." (if doc-view-current-cache-dir doc-view-current-cache-dir (file-name-as-directory @@ -398,7 +424,7 @@ (when doc-view-conversion-refresh-interval (setq doc-view-current-timer (run-at-time "1 secs" doc-view-conversion-refresh-interval - 'doc-view-display + 'doc-view-display-maybe doc-view-current-doc)))) (defun doc-view-pdf->txt-sentinel (proc event) @@ -449,45 +475,26 @@ (process-put doc-view-current-converter-process 'buffer (current-buffer)) (process-put doc-view-current-converter-process 'pdf-file pdf)) -(defun doc-view-convert-doc (doc) - "Convert DOC to a set of png files, one file per page. - +(defun doc-view-convert-current-doc () + "Convert `doc-view-current-doc' to a set of png files, one file per page. Those files are saved in the directory given by `doc-view-file-name-to-directory-name'." (clear-image-cache) - (let* ((dir (doc-view-file-name-to-directory-name doc)) - (png-file (concat (file-name-as-directory dir) "page-%d.png"))) - (when (file-exists-p dir) - (dired-delete-file dir 'always)) - (make-directory dir t) - (if (not (string= (file-name-extension doc) "dvi")) + ;; Calculate the cache dir + (setq doc-view-current-cache-dir + (doc-view-file-name-to-directory-name doc-view-current-doc)) + (let ((png-file (concat (file-name-as-directory doc-view-current-cache-dir) + "page-%d.png"))) + (make-directory doc-view-current-cache-dir t) + (if (not (string= (file-name-extension doc-view-current-doc) "dvi")) ;; Convert to PNG images. - (doc-view-pdf/ps->png doc png-file) + (doc-view-pdf/ps->png doc-view-current-doc png-file) ;; DVI files have to be converted to PDF before GhostScript can process ;; it. - (doc-view-dvi->pdf doc - (concat (file-name-as-directory dir) + (doc-view-dvi->pdf doc-view-current-doc + (concat (file-name-as-directory doc-view-current-cache-dir) "doc.pdf"))))) -;;;; DocView Mode - -(define-derived-mode doc-view-mode nil "DocView" - "Major mode in DocView buffers. - -\\{doc-view-mode-map}" - :group 'doc-view - (setq buffer-read-only t) - (make-local-variable 'doc-view-current-files) - (make-local-variable 'doc-view-current-doc) - (make-local-variable 'doc-view-current-image) - (make-local-variable 'doc-view-current-page) - (make-local-variable 'doc-view-current-converter-process) - (make-local-variable 'doc-view-current-timer) - (make-local-variable 'doc-view-current-slice) - (make-local-variable 'doc-view-current-cache-dir) - (make-local-variable 'doc-view-current-info) - (make-local-variable 'doc-view-current-search-matches)) - ;;;; Slicing (defun doc-view-set-slice (x y width height) @@ -555,10 +562,15 @@ nil (string< a b)))) +(defun doc-view-display-maybe (doc) + "Call `doc-view-display' iff we're in the image display." + (when (eq doc-view-current-display 'image) + (doc-view-display doc))) + (defun doc-view-display (doc) "Start viewing the document DOC." (let ((dir (doc-view-file-name-to-directory-name doc))) - (set-buffer (format "*DocView: %s*" doc)) + (set-buffer (get-file-buffer doc)) (setq doc-view-current-files (sort (directory-files dir t "page-[0-9]+\\.png" t) 'doc-view-sort)) @@ -566,8 +578,6 @@ (doc-view-goto-page doc-view-current-page)))) (defun doc-view-buffer-message () - (setq inhibit-read-only t) - (erase-buffer) (insert (propertize "Welcome to DocView!" 'face 'bold) "\n" " @@ -580,12 +590,60 @@ `q' : Bury this buffer. Conversion will go on in background. `k' : Kill the conversion process and this buffer.\n") - (setq inhibit-read-only nil)) + (set-buffer-modified-p nil)) (defun doc-view-show-tooltip () (interactive) (tooltip-show doc-view-current-info)) +;;;;; Toggle between text and image display + +(defun doc-view-toggle-display () + "Start or stop displaying a document file as a set of images. +This command toggles between showing the text of the document +file and showing the document as a set of images." + (interactive) + (if (get-text-property (point-min) 'display) + ;; Switch to text display + (let ((inhibit-read-only t)) + (erase-buffer) + (insert-file-contents doc-view-current-doc) + (use-local-map doc-view-mode-text-map) + (setq mode-name "DocView[text]" + doc-view-current-display 'text) + (if (called-interactively-p) + (message "Repeat this command to go back to displaying the file as images"))) + ;; Switch to image display + (let ((filename (buffer-file-name)) + (inhibit-read-only t)) + (erase-buffer) + (doc-view-buffer-message) + (setq doc-view-current-page (or doc-view-current-page 1) + doc-view-current-cache-dir (doc-view-file-name-to-directory-name filename)) + (if (file-exists-p doc-view-current-cache-dir) + (progn + (message "DocView: using cached files!") + (doc-view-display doc-view-current-doc)) + (doc-view-convert-current-doc)) + (use-local-map doc-view-mode-map) + (setq mode-name (format "DocView") + doc-view-current-display 'image) + (if (called-interactively-p) + (message "Repeat this command to go back to displaying the file as text")))) + (set-buffer-modified-p nil)) + +;;;;; Leave doc-view-mode and open the file for edit + +(defun doc-view-edit-doc () + "Leave `doc-view-mode' and open the current doc with an appropriate editing mode." + (interactive) + (let ((filename doc-view-current-doc) + (auto-mode-alist (append '(("\\.[eE]?[pP][sS]\\'" . ps-mode) + ("\\.\\(pdf\\|PDF\\|dvi\\|DVI\\)$" . fundamental-mode)) + auto-mode-alist))) + (kill-buffer (current-buffer)) + (find-file filename))) + ;;;; Searching (defun doc-view-search-internal (regexp file) @@ -698,52 +756,41 @@ (y-or-n-p "No more matches before current page. Wrap to last match? ")) (doc-view-goto-page (caar (last doc-view-current-search-matches))))))) -;;;; User Interface Commands +;;;; User interface commands and the mode + +(put 'doc-view-mode 'mode-class 'special) ;;;###autoload -(defun doc-view (no-cache &optional file) - "Convert FILE to png and start viewing it. -If no FILE is given, query for on. -If this FILE is still in the cache, don't convert and use the -existing page files. With prefix arg NO-CACHE, don't use the -cached files and convert anew." - (interactive "P") - (if (not (and (image-type-available-p 'png) - (display-images-p))) - (message "DocView: your emacs or display doesn't support png images.") - (let* ((doc (or file - (expand-file-name - (let ((completion-ignored-extensions - ;; Don't hide files doc-view can display - (remove-if (lambda (str) - (string-match "\\.\\(ps\\|pdf\\|dvi\\)$" - str)) - completion-ignored-extensions))) - (read-file-name "File: " nil nil t))))) - (buffer (get-buffer-create (format "*DocView: %s*" doc))) - (dir (doc-view-file-name-to-directory-name doc))) - (switch-to-buffer buffer) - (doc-view-buffer-message) - (doc-view-mode) - (setq doc-view-current-doc doc) - (setq doc-view-current-page 1) - (if (not (and (file-exists-p dir) - (not no-cache))) - (progn - (setq doc-view-current-cache-dir nil) - (doc-view-convert-doc doc-view-current-doc)) - (message "DocView: using cached files!") - (doc-view-display doc-view-current-doc))))) - -(defun doc-view-dired (no-cache) - "View the current dired file with doc-view. -NO-CACHE is the same as in `doc-view'. - -You might want to bind this command to a dired key, e.g. - - (define-key dired-mode-map (kbd \"C-c d\") 'doc-view-dired)" - (interactive "P") - (doc-view no-cache (dired-get-file-for-visit))) +(define-derived-mode doc-view-mode nil "DocView" + "Major mode in DocView buffers. +You can use \\\\[doc-view-toggle-display] to +toggle between display as a set of images and display as text." + :group 'doc-view + (make-local-variable 'doc-view-current-files) + (make-local-variable 'doc-view-current-doc) + (make-local-variable 'doc-view-current-image) + (make-local-variable 'doc-view-current-page) + (make-local-variable 'doc-view-current-converter-process) + (make-local-variable 'doc-view-current-timer) + (make-local-variable 'doc-view-current-slice) + (make-local-variable 'doc-view-current-cache-dir) + (make-local-variable 'doc-view-current-info) + (make-local-variable 'doc-view-current-search-matches) + (setq doc-view-current-doc buffer-file-name) + (insert-file-contents doc-view-current-doc) + (use-local-map doc-view-mode-text-map) + (setq mode-name "DocView[text]" + doc-view-current-display 'text + buffer-read-only t) + ;; Switch to image display if possible + (if (and (display-images-p) + (image-type-available-p 'png) + (not (get-text-property (point-min) 'display))) + (doc-view-toggle-display)) + (message + "%s" + (substitute-command-keys + "Type \\[doc-view-toggle-display] to toggle between image and text display."))) (defun doc-view-clear-cache () "Delete the whole cache (`doc-view-cache-directory')." Index: lisp/bindings.el =================================================================== RCS file: /sources/emacs/emacs/lisp/bindings.el,v retrieving revision 1.185 diff -u -r1.185 bindings.el --- lisp/bindings.el 6 Oct 2007 22:15:43 -0000 1.185 +++ lisp/bindings.el 16 Oct 2007 06:45:25 -0000 @@ -536,7 +536,7 @@ '(".elc" ".lof" ".glo" ".idx" ".lot" ;; TeX-related - ".dvi" ".fmt" ".tfm" ".pdf" + ".fmt" ".tfm" ;; Java compiled ".class" ;; CLISP Index: lisp/ChangeLog =================================================================== RCS file: /sources/emacs/emacs/lisp/ChangeLog,v retrieving revision 1.11939 diff -u -r1.11939 ChangeLog --- lisp/ChangeLog 16 Oct 2007 02:41:08 -0000 1.11939 +++ lisp/ChangeLog 16 Oct 2007 06:45:31 -0000 @@ -1,3 +1,16 @@ +2007-10-16 Tassilo Horn + + * bindings.el (completion-ignored-extensions): Remove pdf and dvi + extensions since they can be viewed with doc-view. + + * files.el (auto-mode-alist): Make doc-view-mode the default mode + for pdf, ps and dvi files. + + * doc-view.el: Make doc-view-mode the standard mode for viewing + pdf, [e]ps and dvi files and add binding C-c C-c to toggle between + text and image display. Add binding C-c C-e to switch to an + editing mode. + 2007-10-16 Glenn Morris * simple.el (blink-matching-open): Don't report false errors with --=-=-= Bye, Tassilo --=-=-= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel --=-=-=--