Using saved parent location: http://bzr.savannah.gnu.org/r/emacs/trunk/ Now on revision 101814. ------------------------------------------------------------ revno: 101814 committer: Glenn Morris branch nick: trunk timestamp: Tue 2010-10-05 21:20:46 -0700 message: Minor doc/*/Makefile.in change. * doc/emacs/Makefile.in ($(infodir)): Add parallel build workaround. * doc/lispintro/Makefile.in ($(infodir)): Add parallel build workaround. * doc/lispref/Makefile.in ($(infodir)): Add parallel build workaround. * doc/misc/Makefile.in ($(infodir)): Add parallel build workaround. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2010-10-06 02:26:38 +0000 +++ doc/emacs/ChangeLog 2010-10-06 04:20:46 +0000 @@ -6,6 +6,7 @@ (clean): Delete specific dvi and pdf files. (infoclean, dist): New rules. (maintainer-clean): Use infoclean. + ($(infodir)): Add parallel build workaround. 2010-10-04 Glenn Morris === modified file 'doc/emacs/Makefile.in' --- doc/emacs/Makefile.in 2010-10-06 02:26:38 +0000 +++ doc/emacs/Makefile.in 2010-10-06 04:20:46 +0000 @@ -111,7 +111,7 @@ info: $(infodir)/emacs $(infodir): - mkdir $@ + mkdir $@ || test -d $@ dvi: emacs.dvi pdf: emacs.pdf === modified file 'doc/lispintro/Makefile.in' --- doc/lispintro/Makefile.in 2010-10-06 02:26:38 +0000 +++ doc/lispintro/Makefile.in 2010-10-06 04:20:46 +0000 @@ -38,7 +38,7 @@ info: ${infodir}/eintr $(infodir): - mkdir $@ + mkdir $@ || test -d $@ dvi: emacs-lisp-intro.dvi html: emacs-lisp-intro.html === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2010-10-06 02:26:38 +0000 +++ doc/lispref/ChangeLog 2010-10-06 04:20:46 +0000 @@ -5,6 +5,7 @@ (mostlyclean, infoclean, dist): New rules. (clean): Delete dvi and pdf files. (maintainer-clean): Remove elisp.oaux, use infoclean. + ($(infodir)): Add parallel build workaround. 2010-10-04 Glenn Morris === modified file 'doc/lispref/Makefile.in' --- doc/lispref/Makefile.in 2010-10-06 02:26:38 +0000 +++ doc/lispref/Makefile.in 2010-10-06 04:20:46 +0000 @@ -97,7 +97,7 @@ pdf: elisp.pdf $(infodir): - mkdir $@ + mkdir $@ || test -d $@ $(infodir)/elisp: $(infodir) $(srcs) cd $(srcdir); $(MAKEINFO) -I. -I$(texinfodir) elisp.texi -o $@ === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2010-10-06 02:26:38 +0000 +++ doc/misc/ChangeLog 2010-10-06 04:20:46 +0000 @@ -5,6 +5,7 @@ (mostlyclean): Tidy up. (clean): Only delete the specific dvi and pdf files. (maintainer-clean): Be more restrictive in what we delete. + ($(infodir)): Add parallel build workaround. 2010-10-04 Lars Magne Ingebrigtsen === modified file 'doc/misc/Makefile.in' --- doc/misc/Makefile.in 2010-10-06 02:26:38 +0000 +++ doc/misc/Makefile.in 2010-10-06 04:20:46 +0000 @@ -202,7 +202,7 @@ info: $(INFO_TARGETS) $(infodir): - mkdir $@ + mkdir $@ || test -d $@ dvi: $(DVI_TARGETS) ------------------------------------------------------------ revno: 101813 committer: Glenn Morris branch nick: trunk timestamp: Tue 2010-10-05 21:14:05 -0700 message: Remove obsolete variable font-lock-defaults-alist. * lisp/font-core.el (font-lock-defaults-alist): Remove variable. (font-lock-mode): Doc fix. (font-lock-default-function): Do not consult font-lock-defaults-alist. * lisp/font-lock.el (font-lock-refresh-defaults): Doc fix. (font-lock-set-defaults): Doc fix. Do not consult font-lock-defaults-alist. * etc/NEWS: Mention above change. diff: === modified file 'etc/NEWS' --- etc/NEWS 2010-10-06 02:30:53 +0000 +++ etc/NEWS 2010-10-06 04:14:05 +0000 @@ -565,7 +565,8 @@ ** The following variables and aliases, obsolete since at least Emacs 21.1, have been removed: -checkdoc-minor-keymap, vc-header-alist, directory-sep-char +checkdoc-minor-keymap, vc-header-alist, directory-sep-char, +font-lock-defaults-alist ** The following files, obsolete since at least Emacs 21.1, have been removed: sc.el, x-menu.el, rnews.el, rnewspost.el === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-10-06 04:06:25 +0000 +++ lisp/ChangeLog 2010-10-06 04:14:05 +0000 @@ -1,5 +1,12 @@ 2010-10-06 Glenn Morris + * font-core.el (font-lock-defaults-alist): Remove variable. + (font-lock-mode): Doc fix. + (font-lock-default-function): Do not consult font-lock-defaults-alist. + * font-lock.el (font-lock-refresh-defaults): Doc fix. + (font-lock-set-defaults): Doc fix. + Do not consult font-lock-defaults-alist. + * hilit-chg.el (hilit-chg-get-diff-list-hk): Declare `e' for compiler. * emacs-lisp/cl.el: No longer provide cl-19. === modified file 'lisp/font-core.el' --- lisp/font-core.el 2010-08-29 16:17:13 +0000 +++ lisp/font-core.el 2010-10-06 04:14:05 +0000 @@ -81,17 +81,6 @@ (put 'font-lock-defaults 'risky-local-variable t) (make-variable-buffer-local 'font-lock-defaults) -(defvar font-lock-defaults-alist nil - "Alist of fall-back Font Lock defaults for major modes. - -Each item should be a list of the form: - - (MAJOR-MODE . FONT-LOCK-DEFAULTS) - -where MAJOR-MODE is a symbol and FONT-LOCK-DEFAULTS is a list of default -settings. See the variable `font-lock-defaults', which takes precedence.") -(make-obsolete-variable 'font-lock-defaults-alist 'font-lock-defaults "21.1") - (defvar font-lock-function 'font-lock-default-function "A function which is called when `font-lock-mode' is toggled. It will be passed one argument, which is the current value of @@ -144,8 +133,7 @@ lines around point), perhaps because modification on the current line caused syntactic change on other lines, you can use \\[font-lock-fontify-block]. -See the variable `font-lock-defaults-alist' for the Font Lock mode default -settings. You can set your own default settings for some mode, by setting a +You can set your own default settings for some mode, by setting a buffer local value for `font-lock-defaults', via its mode hook. The above is the default behavior of `font-lock-mode'; you may specify @@ -207,8 +195,6 @@ ;; `font-lock-defaults'. (when (or font-lock-defaults (if (boundp 'font-lock-keywords) font-lock-keywords) - (with-no-warnings - (cdr (assq major-mode font-lock-defaults-alist))) (and mode (boundp 'font-lock-set-defaults) font-lock-set-defaults @@ -310,5 +296,4 @@ (provide 'font-core) -;; arch-tag: f8c286e1-02f7-41d9-b89b-1b67780aed71 ;;; font-core.el ends here === modified file 'lisp/font-lock.el' --- lisp/font-lock.el 2010-09-14 14:41:53 +0000 +++ lisp/font-lock.el 2010-10-06 04:14:05 +0000 @@ -1,8 +1,8 @@ ;;; font-lock.el --- Electric font lock mode ;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -;; Free Software Foundation, Inc. +;; 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, +;; 2010 Free Software Foundation, Inc. ;; Author: Jamie Zawinski ;; Richard Stallman @@ -102,11 +102,10 @@ ;; Modes that support Font Lock mode do so by defining one or more variables ;; whose values specify the fontification. Font Lock mode knows of these -;; variable names from (a) the buffer local variable `font-lock-defaults', if -;; non-nil, or (b) the global variable `font-lock-defaults-alist', if the major -;; mode has an entry. (Font Lock mode is set up via (a) where a mode's -;; patterns are distributed with the mode's package library, and (b) where a -;; mode's patterns are distributed with font-lock.el itself. An example of (a) +;; variable names from the buffer local variable `font-lock-defaults'. +;; (Font Lock mode is set up via (a) where a mode's patterns are +;; distributed with the mode's package library, and (b) where a mode's +;; patterns are distributed with font-lock.el itself. An example of (a) ;; is Pascal mode, an example of (b) is Lisp mode. Normally, the mechanism is ;; (a); (b) is used where it is not clear which package library should contain ;; the pattern definitions.) Font Lock mode chooses which variable to use for @@ -1758,8 +1757,7 @@ (defun font-lock-refresh-defaults () "Restart fontification in current buffer after recomputing from defaults. -Recompute fontification variables using `font-lock-defaults' (or, -if nil, using `font-lock-defaults-alist') and +Recompute fontification variables using `font-lock-defaults' and `font-lock-maximum-decoration'. Then restart fontification. Use this function when you have changed any of the above @@ -1779,8 +1777,8 @@ (defun font-lock-set-defaults () "Set fontification defaults appropriately for this mode. -Sets various variables using `font-lock-defaults' (or, if nil, using -`font-lock-defaults-alist') and `font-lock-maximum-decoration'." +Sets various variables using `font-lock-defaults' and +`font-lock-maximum-decoration'." ;; Set fontification defaults if not previously set for correct major mode. (unless (and font-lock-set-defaults (eq font-lock-major-mode major-mode)) @@ -1788,10 +1786,7 @@ (set (make-local-variable 'font-lock-set-defaults) t) (make-local-variable 'font-lock-fontified) (make-local-variable 'font-lock-multiline) - (let* ((defaults (or font-lock-defaults - (cdr (assq major-mode - (with-no-warnings - font-lock-defaults-alist))))) + (let* ((defaults font-lock-defaults) (keywords (font-lock-choose-keywords (nth 0 defaults) (font-lock-value-in-major-mode font-lock-maximum-decoration))) @@ -2082,8 +2077,7 @@ ;; ;; Activate less/more fontification entries if there are multiple levels for ;; ;; the current buffer. Sets `font-lock-fontify-level' to be of the form ;; ;; (CURRENT-LEVEL IS-LOWER-LEVEL-P IS-HIGHER-LEVEL-P) for menu activation. -;; (let ((keywords (or (nth 0 font-lock-defaults) -;; (nth 1 (assq major-mode font-lock-defaults-alist)))) +;; (let ((keywords (nth 0 font-lock-defaults)) ;; (level (font-lock-value-in-major-mode font-lock-maximum-decoration))) ;; (make-local-variable 'font-lock-fontify-level) ;; (if (or (symbolp keywords) (= (length keywords) 1)) @@ -2353,5 +2347,4 @@ (provide 'font-lock) -;; arch-tag: 682327e4-64d8-4057-b20b-1fbb9f1fc54c ;;; font-lock.el ends here ------------------------------------------------------------ revno: 101812 committer: Glenn Morris branch nick: trunk timestamp: Tue 2010-10-05 21:06:25 -0700 message: * lisp/hilit-chg.el (hilit-chg-get-diff-list-hk): Declare `e' for compiler. Remove arch-tag comment. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-10-06 02:30:53 +0000 +++ lisp/ChangeLog 2010-10-06 04:06:25 +0000 @@ -1,5 +1,7 @@ 2010-10-06 Glenn Morris + * hilit-chg.el (hilit-chg-get-diff-list-hk): Declare `e' for compiler. + * emacs-lisp/cl.el: No longer provide cl-19. 2010-10-05 Michael Albinus === modified file 'lisp/hilit-chg.el' --- lisp/hilit-chg.el 2010-01-13 08:35:10 +0000 +++ lisp/hilit-chg.el 2010-10-06 04:06:25 +0000 @@ -921,7 +921,7 @@ (defun hilit-chg-get-diff-info (buf-a file-a buf-b file-b) - (let ((e nil) x y) ;; e is set by function hilit-chg-get-diff-list-hk + (let (e x y) ; e,x,y are set by function hilit-chg-get-diff-list-hk (ediff-setup buf-a file-a buf-b file-b nil nil ; buf-c file-C 'hilit-chg-get-diff-list-hk @@ -932,10 +932,11 @@ (defun hilit-chg-get-diff-list-hk () - ;; x and y are dynamically bound by hilit-chg-get-diff-info + ;; e, x and y are dynamically bound by hilit-chg-get-diff-info ;; which calls this function as a hook - (defvar x) ;; placate the byte-compiler + (defvar x) ; placate the byte-compiler (defvar y) + (defvar e) (setq e (current-buffer)) (let ((n 0) extent p va vb a b) (setq x nil y nil) ;; x and y are bound by hilit-chg-get-diff-info @@ -1035,5 +1036,4 @@ (provide 'hilit-chg) -;; arch-tag: de00301d-5bad-44da-aa82-e0e010b0c463 ;;; hilit-chg.el ends here ------------------------------------------------------------ revno: 101811 committer: Katsumi Yamaoka branch nick: trunk timestamp: Wed 2010-10-06 02:41:59 +0000 message: gnus-art.el (gnus-mime-view-part-as-type): Make it work when being called interactively. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2010-10-06 01:09:32 +0000 +++ lisp/gnus/ChangeLog 2010-10-06 02:41:59 +0000 @@ -1,5 +1,8 @@ 2010-10-06 Katsumi Yamaoka + * gnus-art.el (gnus-mime-view-part-as-type): Make it work when being + called interactively. + * gnus-util.el (gnus-remove-if): Allow hash table. (gnus-remove-if-not): New function. === modified file 'lisp/gnus/gnus-art.el' --- lisp/gnus/gnus-art.el 2010-10-06 01:09:32 +0000 +++ lisp/gnus/gnus-art.el 2010-10-06 02:41:59 +0000 @@ -5139,7 +5139,9 @@ (let ((default (gnus-mime-view-part-as-type-internal))) (gnus-completing-read "View as MIME type" - (gnus-remove-if-not pred (mailcap-mime-types)) + (if pred + (gnus-remove-if-not pred (mailcap-mime-types)) + (mailcap-mime-types)) nil nil nil (car default))))) (gnus-article-check-buffer) ------------------------------------------------------------ revno: 101810 committer: Glenn Morris branch nick: trunk timestamp: Tue 2010-10-05 19:30:53 -0700 message: * lisp/emacs-lisp/cl.el: No longer provide cl-19. * etc/NEWS: Mention this change. diff: === modified file 'etc/NEWS' --- etc/NEWS 2010-10-05 04:19:58 +0000 +++ etc/NEWS 2010-10-06 02:30:53 +0000 @@ -550,6 +550,8 @@ versions, these regions were delineated by `mouse-drag-overlay', which has now been removed. +** cl.el no longer provides `cl-19'. + ** The following functions and aliases, obsolete since at least Emacs 21.1, have been removed: comint-kill-output, decompose-composite-char, outline-visible, === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-10-05 14:20:24 +0000 +++ lisp/ChangeLog 2010-10-06 02:30:53 +0000 @@ -1,3 +1,7 @@ +2010-10-06 Glenn Morris + + * emacs-lisp/cl.el: No longer provide cl-19. + 2010-10-05 Michael Albinus * net/tramp.el (tramp-handle-directory-files-and-attributes) === modified file 'lisp/emacs-lisp/cl.el' --- lisp/emacs-lisp/cl.el 2010-01-13 08:35:10 +0000 +++ lisp/emacs-lisp/cl.el 2010-10-06 02:30:53 +0000 @@ -645,7 +645,6 @@ (load "cl-loaddefs" nil 'quiet) ;; This goes here so that cl-macs can find it if it loads right now. -(provide 'cl-19) ; usage: (require 'cl-19 "cl") (provide 'cl) ;; Things to do after byte-compiler is loaded. ------------------------------------------------------------ revno: 101809 committer: Glenn Morris branch nick: trunk timestamp: Tue 2010-10-05 19:26:38 -0700 message: Misc cleanup for doc/*/Makefiles. * doc/misc/Makefile.in (SHELL): Set it. (info): Move the mkdir dependency to the individual info files. (mostlyclean): Tidy up. (clean): Only delete the specific dvi and pdf files. (maintainer-clean): Be more restrictive in what we delete. * doc/lispref/Makefile.in: Rearrange to more closely resemble doc/emacs/Makefile. (INSTALL_INFO): Remove unused variable. (mostlyclean, infoclean, dist): New rules. (clean): Delete dvi and pdf files. (maintainer-clean): Remove elisp.oaux, use infoclean. * doc/lispintro/Makefile.in (SHELL): Use /bin/sh, like every other Makefile.in. (INFO_SOURCES, INFO_TARGETS, DVI_TARGETS): Remove variables. ($(infodir), html, pdf, infoclean, dist): New rules. (${infodir}/eintr): Ensure $infodir exists. Use $@. (emacs-lisp-intro.dvi, emacs-lisp-intro.pdf, emacs-lisp-intro.html): Use $^. (.PHONY): Declare clean rules. (mostlyclean): Delete more temp files. (clean): Delete specific dvi, pdf and html files. (maintainer-clean): Use infoclean. (.NOEXPORT): Remove, unused by any other Makefile.in. * doc/emacs/Makefile.in (EMACS_XTRA): Add the main source file. (emacs-xtra.dvi, emacs-xtra.pdf): Remove explicit emacs-xtra.texi. (mostlyclean): No core files, reorder other files. (clean): Delete specific dvi and pdf files. (infoclean, dist): New rules. (maintainer-clean): Use infoclean. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2010-10-04 00:49:20 +0000 +++ doc/emacs/ChangeLog 2010-10-06 02:26:38 +0000 @@ -1,3 +1,12 @@ +2010-10-06 Glenn Morris + + * Makefile.in (EMACS_XTRA): Add the main source file. + (emacs-xtra.dvi, emacs-xtra.pdf): Remove explicit emacs-xtra.texi. + (mostlyclean): No core files, reorder other files. + (clean): Delete specific dvi and pdf files. + (infoclean, dist): New rules. + (maintainer-clean): Use infoclean. + 2010-10-04 Glenn Morris * Makefile.in (SHELL): Set it. === modified file 'doc/emacs/Makefile.in' --- doc/emacs/Makefile.in 2010-10-04 00:49:20 +0000 +++ doc/emacs/Makefile.in 2010-10-06 02:26:38 +0000 @@ -21,9 +21,8 @@ SHELL = /bin/sh -# Where to find the source code. $(srcdir) will be the man -# subdirectory of the source tree. This is -# set by the configure script's `--srcdir' option. +# Where to find the source code. $(srcdir) will be the doc/emacs subdirectory +# of the source tree. This is set by configure's `--srcdir' option. srcdir=@srcdir@ # Tell make where to find source files; this is needed for the makefiles. @@ -50,7 +49,8 @@ ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)" -EMACS_XTRA=\ +EMACS_XTRA= \ + ${srcdir}/emacs-xtra.texi \ $(srcdir)/arevert-xtra.texi \ $(srcdir)/cal-xtra.texi \ $(srcdir)/dired-xtra.texi \ @@ -132,26 +132,44 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs.texi -emacs-xtra.dvi: emacs-xtra.texi $(EMACS_XTRA) +emacs-xtra.dvi: $(EMACS_XTRA) $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-xtra.texi -emacs-xtra.pdf: emacs-xtra.texi $(EMACS_XTRA) +emacs-xtra.pdf: $(EMACS_XTRA) $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-xtra.texi -.PHONY: mostlyclean clean distclean maintainer-clean +.PHONY: mostlyclean clean distclean maintainer-clean infoclean +## Temp files. mostlyclean: - rm -f *.log *.cp *.fn *.ky *.op *.ops *.pg *.vr core *.tp *.core - rm -f *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc + rm -f *.aux *.log *.toc *.cp *.cps *.fn *.fns *.ky *.kys \ + *.op *.ops *.pg *.pgs *.tp *.tps *.vr *.vrs +## Products not in the release tarfiles. clean: mostlyclean - rm -f *.dvi + rm -f emacs.dvi emacs-xtra.dvi emacs.pdf emacs-xtra.pdf distclean: clean -# rm -f Makefile -maintainer-clean: distclean - rm -f emacs.dvi emacs.pdf +## In the standalone tarfile, the clean rule runs this. +infoclean: -cd $(infodir) && rm -f emacs emacs-[1-9] emacs-[1-9][0-9] +maintainer-clean: distclean infoclean + +## Make a standalone tarfile of the Emacs manual sources. +## The [c] is a dumb way to prevent configure expanding it. +## The emacs: rule becomes circular when we change infodir to ".". +dist: + rm -rf emacs + mkdir emacs + cp ${srcdir}/*.texi ${texinfodir}/texinfo.tex \ + ${srcdir}/ChangeLog* emacs/ + sed -e 's/@sr[c]dir@/./' -e 's/\(texinfodir *=\).*/\1 ./' \ + -e 's/\(infodir *=\).*/\1 ./' -e '/^emacs *:/d' \ + -e 's/^\(clean:.*\)/\1 infoclean/' \ + ${srcdir}/Makefile.in > emacs/Makefile + tar -cf emacs-texi.tar emacs + rm -rf emacs + ### Makefile ends here === modified file 'doc/lispintro/ChangeLog' --- doc/lispintro/ChangeLog 2010-09-23 19:00:31 +0000 +++ doc/lispintro/ChangeLog 2010-10-06 02:26:38 +0000 @@ -1,3 +1,17 @@ +2010-10-06 Glenn Morris + + * Makefile.in (SHELL): Use /bin/sh, like every other Makefile.in. + (INFO_SOURCES, INFO_TARGETS, DVI_TARGETS): Remove variables. + ($(infodir), html, pdf, infoclean, dist): New rules. + (${infodir}/eintr): Ensure $infodir exists. Use $@. + (emacs-lisp-intro.dvi, emacs-lisp-intro.pdf, emacs-lisp-intro.html): + Use $^. + (.PHONY): Declare clean rules. + (mostlyclean): Delete more temp files. + (clean): Delete specific dvi, pdf and html files. + (maintainer-clean): Use infoclean. + (.NOEXPORT): Remove, unused by any other Makefile.in. + 2010-09-21 Glenn Morris * cons-1.eps, cons-2.eps, cons-2a.eps, cons-3.eps, cons-4.eps: === modified file 'doc/lispintro/Makefile.in' --- doc/lispintro/Makefile.in 2010-01-13 08:35:10 +0000 +++ doc/lispintro/Makefile.in 2010-10-06 02:26:38 +0000 @@ -1,7 +1,8 @@ #### Makefile for the Emacs Lisp Introduction manual # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, -# 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -18,8 +19,7 @@ # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . - -SHELL = @SHELL@ +SHELL = /bin/sh srcdir = @srcdir@ VPATH = @srcdir@ @@ -28,12 +28,6 @@ # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc -INFO_SOURCES = ${srcdir}/emacs-lisp-intro.texi -# The file name eintr must fit within 5 characters, to allow for -# -NN extensions to fit into DOS 8+3 limits without clashing -INFO_TARGETS = ${infodir}/eintr -DVI_TARGETS = emacs-lisp-intro.dvi - MAKEINFO = makeinfo TEXI2DVI = texi2dvi TEXI2PDF = texi2pdf @@ -41,37 +35,59 @@ .SUFFIXES: .dvi .ps .texi -info: $(INFO_TARGETS) - -dvi: $(DVI_TARGETS) - -${infodir}/eintr: ${INFO_SOURCES} - cd $(srcdir); $(MAKEINFO) emacs-lisp-intro.texi -o $(infodir)/eintr - -emacs-lisp-intro.dvi: ${INFO_SOURCES} - $(TEXI2DVI) -I $(srcdir) -I $(texinfodir) $(srcdir)/emacs-lisp-intro.texi - -emacs-lisp-intro.pdf: ${INFO_SOURCES} - $(TEXI2PDF) -I $(srcdir) -I $(texinfodir) $(srcdir)/emacs-lisp-intro.texi - -emacs-lisp-intro.html: $(INFO_SOURCES) - $(MAKEINFO) --html -o $@ $(srcdir)/emacs-lisp-intro.texi +info: ${infodir}/eintr + +$(infodir): + mkdir $@ + +dvi: emacs-lisp-intro.dvi +html: emacs-lisp-intro.html +pdf: emacs-lisp-intro.pdf + +# The file name eintr must fit within 5 characters, to allow for +# -NN extensions to fit into DOS 8+3 limits without clashing. +${infodir}/eintr: $(infodir) ${srcdir}/emacs-lisp-intro.texi + cd $(srcdir); $(MAKEINFO) emacs-lisp-intro.texi -o $@ + +emacs-lisp-intro.dvi: ${srcdir}/emacs-lisp-intro.texi + $(TEXI2DVI) -I $(srcdir) -I $(texinfodir) $^ + +emacs-lisp-intro.pdf: ${srcdir}/emacs-lisp-intro.texi + $(TEXI2PDF) -I $(srcdir) -I $(texinfodir) $^ + +emacs-lisp-intro.html: ${srcdir}/emacs-lisp-intro.texi + $(MAKEINFO) --html -o $@ $^ .dvi.ps: $(DVIPS) $< -o $@ +.PHONY: mostlyclean clean distclean maintainer-clean infoclean + mostlyclean: - rm -f *.log *.cp *.fn *.ky *.pg *.vr *.tp + rm -f *.aux *.log *.toc *.cp *.cps *.fn *.fns *.ky *.kys \ + *.op *.ops *.pg *.pgs *.tp *.tps *.vr *.vrs clean: mostlyclean - rm -f *.dvi + rm -f emacs-lisp-intro.dvi emacs-lisp-intro.pdf + rm -rf emacs-lisp-intro.html/ distclean: clean -maintainer-clean: distclean - rm -f *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc - cd $(infodir); rm -f eintr eintr-[1-9] - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: +infoclean: + -cd $(infodir) && rm -f eintr eintr-[1-9] + +maintainer-clean: distclean infoclean + +dist: + rm -rf lispintro + mkdir lispintro + cp ${srcdir}/*.texi ${srcdir}/*.eps ${srcdir}/*.pdf \ + ${texinfodir}/texinfo.tex \ + ${srcdir}/ChangeLog* ${srcdir}/README lispintro/ + sed -e 's/@sr[c]dir@/./' -e 's/\(texinfodir *=\).*/\1 ./' \ + -e 's/\(infodir *=\).*/\1 ./' -e 's/^\(clean:.*\)/\1 infoclean/' \ + ${srcdir}/Makefile.in > lispintro/Makefile + tar -cf emacs-lisp-intro-texi.tar lispintro + rm -rf lispintro + +### Makefile ends here === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2010-10-04 00:55:42 +0000 +++ doc/lispref/ChangeLog 2010-10-06 02:26:38 +0000 @@ -1,3 +1,11 @@ +2010-10-06 Glenn Morris + + * Makefile.in: Rearrange to more closely resemble doc/emacs/Makefile. + (INSTALL_INFO): Remove unused variable. + (mostlyclean, infoclean, dist): New rules. + (clean): Delete dvi and pdf files. + (maintainer-clean): Remove elisp.oaux, use infoclean. + 2010-10-04 Glenn Morris * Makefile.in (dvi, pdf, $(infodir)): New targets. === modified file 'doc/lispref/Makefile.in' --- doc/lispref/Makefile.in 2010-10-04 00:55:42 +0000 +++ doc/lispref/Makefile.in 2010-10-06 02:26:38 +0000 @@ -19,6 +19,7 @@ # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . +SHELL = /bin/sh # Standard configure variables. srcdir = @srcdir@ @@ -30,11 +31,9 @@ # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc +MAKEINFO = makeinfo --force TEXI2DVI = texi2dvi TEXI2PDF = texi2pdf -SHELL = /bin/sh -INSTALL_INFO = install-info -MAKEINFO = makeinfo --force # List of all the texinfo files in the manual: @@ -109,16 +108,34 @@ elisp.pdf: $(srcs) $(TEXI2PDF) -I $(srcdir) -I $(texinfodir) $(srcdir)/elisp.texi -.PHONY: clean distclean maintainer-clean - -clean: - rm -f *.toc *.aux *.log *.cp *.cps *.fn *.fns *.tp *.tps \ - *.vr *.vrs *.pg *.pgs *.ky *.kys elisp[12]* +.PHONY: mostlyclean clean distclean maintainer-clean infoclean + +## [12] stuff is from two-volume.make. +mostlyclean: + rm -f *.aux *.log *.toc *.cp *.cps *.fn *.fns *.ky *.kys \ + *.op *.ops *.pg *.pgs *.tp *.tps *.vr *.vrs + rm -f elisp[12]* + +clean: mostlyclean + rm -f elisp.dvi elisp.pdf vol[12].pdf distclean: clean -maintainer-clean: clean - rm -f elisp.dvi elisp.pdf elisp.oaux +infoclean: -cd $(infodir) && rm -f elisp elisp-[1-9] elisp-[1-9][0-9] +maintainer-clean: distclean infoclean + +## Note this excludes the two-volume stuff. +dist: + rm -rf lispref + mkdir lispref + cp ${srcdir}/*.texi ${texinfodir}/texinfo.tex \ + ${srcdir}/ChangeLog* ${srcdir}/README lispref/ + sed -e 's/@sr[c]dir@/./' -e 's/\(texinfodir *=\).*/\1 ./' \ + -e 's/\(infodir *=\).*/\1 ./' -e 's/^\(clean:.*\)/\1 infoclean/' \ + ${srcdir}/Makefile.in > lispref/Makefile + tar -cf elisp-texi.tar lispref + rm -rf lispref + ### Makefile ends here === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2010-10-04 22:26:51 +0000 +++ doc/misc/ChangeLog 2010-10-06 02:26:38 +0000 @@ -1,3 +1,11 @@ +2010-10-06 Glenn Morris + + * Makefile.in (SHELL): Set it. + (info): Move the mkdir dependency to the individual info files. + (mostlyclean): Tidy up. + (clean): Only delete the specific dvi and pdf files. + (maintainer-clean): Be more restrictive in what we delete. + 2010-10-04 Lars Magne Ingebrigtsen * gnus.texi (Misc Article): Document gnus-widen-article-window. === modified file 'doc/misc/Makefile.in' --- doc/misc/Makefile.in 2010-09-29 04:25:59 +0000 +++ doc/misc/Makefile.in 2010-10-06 02:26:38 +0000 @@ -19,6 +19,7 @@ # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . +SHELL = /bin/sh # Where to find the source code. $(srcdir) will be the man-aux # subdirectory of the source tree. This is @@ -198,7 +199,7 @@ ENVADD = TEXINPUTS="$(srcdir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)" -info: $(infodir) $(INFO_TARGETS) +info: $(INFO_TARGETS) $(infodir): mkdir $@ @@ -214,7 +215,7 @@ ## "short" target names for convenience, to just rebuild one manual. ada-mode : $(infodir)/ada-mode -$(infodir)/ada-mode: ada-mode.texi +$(infodir)/ada-mode: ada-mode.texi $(infodir) cd $(srcdir); $(MAKEINFO) ada-mode.texi ada-mode.dvi: ada-mode.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ada-mode.texi @@ -222,7 +223,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/ada-mode.texi auth : $(infodir)/auth -$(infodir)/auth: auth.texi +$(infodir)/auth: auth.texi $(infodir) cd $(srcdir); $(MAKEINFO) auth.texi auth.dvi: auth.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/auth.texi @@ -230,7 +231,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/auth.texi autotype : $(infodir)/autotype -$(infodir)/autotype: autotype.texi +$(infodir)/autotype: autotype.texi $(infodir) cd $(srcdir); $(MAKEINFO) autotype.texi autotype.dvi: autotype.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/autotype.texi @@ -238,7 +239,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/autotype.texi calc : $(infodir)/calc -$(infodir)/calc: calc.texi +$(infodir)/calc: calc.texi $(infodir) cd $(srcdir); $(MAKEINFO) calc.texi calc.dvi: calc.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/calc.texi @@ -246,7 +247,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/calc.texi ccmode : $(infodir)/ccmode -$(infodir)/ccmode: cc-mode.texi +$(infodir)/ccmode: cc-mode.texi $(infodir) cd $(srcdir); $(MAKEINFO) cc-mode.texi cc-mode.dvi: cc-mode.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/cc-mode.texi @@ -254,7 +255,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/cc-mode.texi cl : $(infodir)/cl -$(infodir)/cl: cl.texi +$(infodir)/cl: cl.texi $(infodir) cd $(srcdir); $(MAKEINFO) cl.texi cl.dvi: cl.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/cl.texi @@ -262,7 +263,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/cl.texi dbus : $(infodir)/dbus -$(infodir)/dbus: dbus.texi +$(infodir)/dbus: dbus.texi $(infodir) cd $(srcdir); $(MAKEINFO) dbus.texi dbus.dvi: dbus.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/dbus.texi @@ -270,7 +271,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/dbus.texi dired-x : $(infodir)/dired-x -$(infodir)/dired-x: dired-x.texi +$(infodir)/dired-x: dired-x.texi $(infodir) cd $(srcdir); $(MAKEINFO) dired-x.texi dired-x.dvi: dired-x.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/dired-x.texi @@ -278,7 +279,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/dired-x.texi ebrowse : $(infodir)/ebrowse -$(infodir)/ebrowse: ebrowse.texi +$(infodir)/ebrowse: ebrowse.texi $(infodir) cd $(srcdir); $(MAKEINFO) ebrowse.texi ebrowse.dvi: ebrowse.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ebrowse.texi @@ -286,7 +287,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/ebrowse.texi ede : $(infodir)/ede -$(infodir)/ede: ede.texi +$(infodir)/ede: ede.texi $(infodir) cd $(srcdir); $(MAKEINFO) ede.texi ede.dvi: ede.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ede.texi @@ -294,7 +295,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/ede.texi ediff : $(infodir)/ediff -$(infodir)/ediff: ediff.texi +$(infodir)/ediff: ediff.texi $(infodir) cd $(srcdir); $(MAKEINFO) ediff.texi ediff.dvi: ediff.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ediff.texi @@ -302,7 +303,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/ediff.texi edt : $(infodir)/edt -$(infodir)/edt: edt.texi +$(infodir)/edt: edt.texi $(infodir) cd $(srcdir); $(MAKEINFO) edt.texi edt.dvi: edt.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/edt.texi @@ -310,7 +311,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/edt.texi eieio : $(infodir)/eieio -$(infodir)/eieio: eieio.texi +$(infodir)/eieio: eieio.texi $(infodir) cd $(srcdir); $(MAKEINFO) eieio.texi eieio.dvi: eieio.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/eieio.texi @@ -318,7 +319,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/eieio.texi emacs-mime : $(infodir)/emacs-mime -$(infodir)/emacs-mime: emacs-mime.texi +$(infodir)/emacs-mime: emacs-mime.texi $(infodir) cd $(srcdir); $(MAKEINFO) --enable-encoding emacs-mime.texi emacs-mime.dvi: emacs-mime.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-mime.texi @@ -326,7 +327,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-mime.texi epa : $(infodir)/epa -$(infodir)/epa: epa.texi +$(infodir)/epa: epa.texi $(infodir) cd $(srcdir); $(MAKEINFO) epa.texi epa.dvi: epa.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/epa.texi @@ -334,7 +335,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/epa.texi erc : $(infodir)/erc -$(infodir)/erc: erc.texi +$(infodir)/erc: erc.texi $(infodir) cd $(srcdir); $(MAKEINFO) erc.texi erc.dvi: erc.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/erc.texi @@ -342,7 +343,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/erc.texi eshell : $(infodir)/eshell -$(infodir)/eshell: eshell.texi +$(infodir)/eshell: eshell.texi $(infodir) cd $(srcdir); $(MAKEINFO) eshell.texi eshell.dvi: eshell.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/eshell.texi @@ -358,7 +359,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/eudc.texi efaq : $(infodir)/efaq -$(infodir)/efaq: faq.texi +$(infodir)/efaq: faq.texi $(infodir) cd $(srcdir); $(MAKEINFO) faq.texi faq.dvi: faq.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/faq.texi @@ -374,7 +375,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/flymake.texi forms : $(infodir)/forms -$(infodir)/forms: forms.texi +$(infodir)/forms: forms.texi $(infodir) cd $(srcdir); $(MAKEINFO) forms.texi forms.dvi: forms.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/forms.texi @@ -383,7 +384,7 @@ # gnus/message/emacs-mime/sieve/pgg are part of Gnus: gnus : $(infodir)/gnus -$(infodir)/gnus: gnus.texi gnus-faq.texi +$(infodir)/gnus: gnus.texi gnus-faq.texi $(infodir) cd $(srcdir); $(MAKEINFO) gnus.texi gnus.dvi: gnus.texi gnus-faq.texi sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi @@ -399,7 +400,7 @@ # This is produced with --no-split to avoid making files whose # names clash on DOS 8+3 filesystems idlwave : $(infodir)/idlwave -$(infodir)/idlwave: idlwave.texi +$(infodir)/idlwave: idlwave.texi $(infodir) cd $(srcdir); $(MAKEINFO) --no-split idlwave.texi idlwave.dvi: idlwave.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/idlwave.texi @@ -410,7 +411,7 @@ # the @setfilename directive in info.texi, which is required for # the Texinfo distribution. ###info : $(infodir)/info # circular! -$(infodir)/info: info.texi +$(infodir)/info: info.texi $(infodir) cd $(srcdir); $(MAKEINFO) --no-split info.texi -o $@ info.dvi: info.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/info.texi @@ -418,7 +419,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/info.texi mairix-el : $(infodir)/mairix-el -$(infodir)/mairix-el: mairix-el.texi +$(infodir)/mairix-el: mairix-el.texi $(infodir) cd $(srcdir); $(MAKEINFO) mairix-el.texi mairix-el.dvi: mairix-el.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/mairix-el.texi @@ -426,7 +427,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/mairix-el.texi message : $(infodir)/message -$(infodir)/message: message.texi +$(infodir)/message: message.texi $(infodir) cd $(srcdir); $(MAKEINFO) message.texi message.dvi: message.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/message.texi @@ -434,7 +435,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/message.texi mh-e : $(infodir)/mh-e -$(infodir)/mh-e: mh-e.texi +$(infodir)/mh-e: mh-e.texi $(infodir) cd $(srcdir); $(MAKEINFO) mh-e.texi mh-e.dvi: mh-e.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/mh-e.texi @@ -442,7 +443,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/mh-e.texi newsticker : $(infodir)/newsticker -$(infodir)/newsticker: newsticker.texi +$(infodir)/newsticker: newsticker.texi $(infodir) cd $(srcdir); $(MAKEINFO) newsticker.texi newsticker.dvi: newsticker.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/newsticker.texi @@ -450,7 +451,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/newsticker.texi nxml-mode : $(infodir)/nxml-mode -$(infodir)/nxml-mode: nxml-mode.texi +$(infodir)/nxml-mode: nxml-mode.texi $(infodir) cd $(srcdir); $(MAKEINFO) nxml-mode.texi nxml-mode.dvi: nxml-mode.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/nxml-mode.texi @@ -458,7 +459,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/nxml-mode.texi org : $(infodir)/org -$(infodir)/org: org.texi +$(infodir)/org: org.texi $(infodir) cd $(srcdir); $(MAKEINFO) org.texi org.dvi: org.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/org.texi @@ -466,7 +467,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/org.texi pcl-cvs : $(infodir)/pcl-cvs -$(infodir)/pcl-cvs: pcl-cvs.texi +$(infodir)/pcl-cvs: pcl-cvs.texi $(infodir) cd $(srcdir); $(MAKEINFO) pcl-cvs.texi pcl-cvs.dvi: pcl-cvs.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/pcl-cvs.texi @@ -474,7 +475,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/pcl-cvs.texi pgg : $(infodir)/pgg -$(infodir)/pgg: pgg.texi +$(infodir)/pgg: pgg.texi $(infodir) cd $(srcdir); $(MAKEINFO) pgg.texi pgg.dvi: pgg.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/pgg.texi @@ -482,7 +483,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/pgg.texi rcirc : $(infodir)/rcirc -$(infodir)/rcirc: rcirc.texi +$(infodir)/rcirc: rcirc.texi $(infodir) cd $(srcdir); $(MAKEINFO) rcirc.texi rcirc.dvi: rcirc.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/rcirc.texi @@ -490,7 +491,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/rcirc.texi reftex : $(infodir)/reftex -$(infodir)/reftex: reftex.texi +$(infodir)/reftex: reftex.texi $(infodir) cd $(srcdir); $(MAKEINFO) reftex.texi reftex.dvi: reftex.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/reftex.texi @@ -498,7 +499,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/reftex.texi remember : $(infodir)/remember -$(infodir)/remember: remember.texi +$(infodir)/remember: remember.texi $(infodir) cd $(srcdir); $(MAKEINFO) remember.texi remember.dvi: remember.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/remember.texi @@ -506,7 +507,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/remember.texi sasl : $(infodir)/sasl -$(infodir)/sasl: sasl.texi +$(infodir)/sasl: sasl.texi $(infodir) cd $(srcdir); $(MAKEINFO) sasl.texi sasl.dvi: sasl.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/sasl.texi @@ -514,7 +515,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/sasl.texi sc : $(infodir)/sc -$(infodir)/sc: sc.texi +$(infodir)/sc: sc.texi $(infodir) cd $(srcdir); $(MAKEINFO) sc.texi sc.dvi: sc.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/sc.texi @@ -522,7 +523,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/sc.texi semantic : $(infodir)/semantic -$(infodir)/semantic: semantic.texi sem-user.texi +$(infodir)/semantic: semantic.texi sem-user.texi $(infodir) cd $(srcdir); $(MAKEINFO) semantic.texi semantic.dvi: semantic.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/semantic.texi @@ -530,7 +531,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/semantic.texi ses : $(infodir)/ses -$(infodir)/ses: ses.texi +$(infodir)/ses: ses.texi $(infodir) cd $(srcdir); $(MAKEINFO) ses.texi ses.dvi: ses.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ses.texi @@ -538,7 +539,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/ses.texi sieve : $(infodir)/sieve -$(infodir)/sieve: sieve.texi +$(infodir)/sieve: sieve.texi $(infodir) cd $(srcdir); $(MAKEINFO) sieve.texi sieve.dvi: sieve.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/sieve.texi @@ -546,7 +547,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/sieve.texi smtpmail : $(infodir)/smtpmail -$(infodir)/smtpmail: smtpmail.texi +$(infodir)/smtpmail: smtpmail.texi $(infodir) cd $(srcdir); $(MAKEINFO) smtpmail.texi smtpmail.dvi: smtpmail.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/smtpmail.texi @@ -554,7 +555,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/smtpmail.texi speedbar : $(infodir)/speedbar -$(infodir)/speedbar: speedbar.texi +$(infodir)/speedbar: speedbar.texi $(infodir) cd $(srcdir); $(MAKEINFO) speedbar.texi speedbar.dvi: speedbar.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/speedbar.texi @@ -562,7 +563,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/speedbar.texi tramp : $(infodir)/tramp -$(infodir)/tramp: tramp.texi trampver.texi +$(infodir)/tramp: tramp.texi trampver.texi $(infodir) cd $(srcdir); $(MAKEINFO) -D emacs tramp.texi tramp.dvi: tramp.texi trampver.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/tramp.texi @@ -570,7 +571,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/tramp.texi url : $(infodir)/url -$(infodir)/url: url.texi +$(infodir)/url: url.texi $(infodir) cd $(srcdir); $(MAKEINFO) url.texi url.dvi: url.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/url.texi @@ -578,7 +579,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/url.texi vip : $(infodir)/vip -$(infodir)/vip: vip.texi +$(infodir)/vip: vip.texi $(infodir) cd $(srcdir); $(MAKEINFO) vip.texi vip.dvi: vip.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/vip.texi @@ -586,7 +587,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/vip.texi viper : $(infodir)/viper -$(infodir)/viper: viper.texi +$(infodir)/viper: viper.texi $(infodir) cd $(srcdir); $(MAKEINFO) viper.texi viper.dvi: viper.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/viper.texi @@ -594,7 +595,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/viper.texi widget : $(infodir)/widget -$(infodir)/widget: widget.texi +$(infodir)/widget: widget.texi $(infodir) cd $(srcdir); $(MAKEINFO) widget.texi widget.dvi: widget.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/widget.texi @@ -602,7 +603,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/widget.texi woman : $(infodir)/woman -$(infodir)/woman: woman.texi +$(infodir)/woman: woman.texi $(infodir) cd $(srcdir); $(MAKEINFO) woman.texi woman.dvi: woman.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/woman.texi @@ -611,18 +612,19 @@ mostlyclean: - rm -f *.log *.cp *.fn *.ky *.op *.ops *.pg *.vr core *.tp \ - *.tps *.core gnustmp.* - rm -f *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc + rm -f *.aux *.log *.cp *.cps *.fn *.fns *.ky *.kys \ + *.op *.ops *.pg *.pgs *.tp *.tps *.vr *.vrs + rm -f gnustmp.* clean: mostlyclean - rm -f *.dvi *.pdf + rm -f $(DVI_TARGETS) $(PDF_TARGETS) distclean: clean # rm -f Makefile maintainer-clean: distclean - for file in $(INFO_TARGETS); do rm -f $${file}*; done - + for file in $(INFO_TARGETS); do \ + rm -f $${file} $${file}-[1-9] $${file}-[1-9][0-9]; \ + done ### Makefile ends here ------------------------------------------------------------ revno: 101808 committer: Katsumi Yamaoka branch nick: trunk timestamp: Wed 2010-10-06 01:38:26 +0000 message: gnus-group.el (gnus-group-completing-read): Fix last change. diff: === modified file 'lisp/gnus/gnus-group.el' --- lisp/gnus/gnus-group.el 2010-10-06 01:09:32 +0000 +++ lisp/gnus/gnus-group.el 2010-10-06 01:38:26 +0000 @@ -2190,7 +2190,9 @@ require-match initial-input (or hist 'gnus-group-history) def)) - (if (symbol-value (intern-soft group collection)) + (if (if (listp collection) + (member group (mapcar 'symbol-name collection)) + (symbol-value (intern-soft group collection))) group (mm-encode-coding-string group (gnus-group-name-charset nil group))))) ------------------------------------------------------------ revno: 101807 committer: Katsumi Yamaoka branch nick: trunk timestamp: Wed 2010-10-06 01:09:32 +0000 message: Eliminate `remove-if-not' that is a cl function. gnus-util.el (gnus-remove-if): Allow hash table. gnus-util.el (gnus-remove-if-not): New function. gnus-art.el (gnus-mime-view-part-as-type): Replace remove-if-not with gnus-remove-if-not. gnus-score.el (gnus-summary-score-effect): Replace remove-if-not with gnus-remove-if-not. gnus-sum.el (gnus-read-move-group-name): Replace remove-if-not with gnus-remove-if-not. gnus-group.el (gnus-group-completing-read): Regard collection as a hash table if it is not a list. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2010-10-05 23:42:01 +0000 +++ lisp/gnus/ChangeLog 2010-10-06 01:09:32 +0000 @@ -1,3 +1,16 @@ +2010-10-06 Katsumi Yamaoka + + * gnus-util.el (gnus-remove-if): Allow hash table. + (gnus-remove-if-not): New function. + + * gnus-art.el (gnus-mime-view-part-as-type) + * gnus-score.el (gnus-summary-score-effect) + * gnus-sum.el (gnus-read-move-group-name): + Replace remove-if-not with gnus-remove-if-not. + + * gnus-group.el (gnus-group-completing-read): + Regard collection as a hash table if it is not a list. + 2010-10-05 Lars Magne Ingebrigtsen * shr.el (shr-render-td): Allow blank/missing s. === modified file 'lisp/gnus/gnus-art.el' --- lisp/gnus/gnus-art.el 2010-10-05 22:43:06 +0000 +++ lisp/gnus/gnus-art.el 2010-10-06 01:09:32 +0000 @@ -5139,7 +5139,7 @@ (let ((default (gnus-mime-view-part-as-type-internal))) (gnus-completing-read "View as MIME type" - (remove-if-not pred (mailcap-mime-types)) + (gnus-remove-if-not pred (mailcap-mime-types)) nil nil nil (car default))))) (gnus-article-check-buffer) === modified file 'lisp/gnus/gnus-group.el' --- lisp/gnus/gnus-group.el 2010-10-05 22:43:06 +0000 +++ lisp/gnus/gnus-group.el 2010-10-06 01:09:32 +0000 @@ -2163,23 +2163,33 @@ (goto-char start))))) (defun gnus-group-completing-read (&optional prompt collection - require-match initial-input hist def) + require-match initial-input hist + def) "Read a group name with completion. Non-ASCII group names are allowed. The arguments are the same as `completing-read' except that COLLECTION and HIST default to `gnus-active-hashtb' and `gnus-group-history' -respectively if they are omitted." - (let* ((collection (or collection (or gnus-active-hashtb [0]))) - (choices (mapcar (lambda (symbol) - (let ((group (symbol-name symbol))) - (if (string-match "[^\000-\177]" group) - (gnus-group-decoded-name group) - group))) - (remove-if-not 'symbolp collection))) - (group - (gnus-completing-read (or prompt "Group") choices - require-match initial-input - (or hist 'gnus-group-history) - def))) +respectively if they are omitted. Regards COLLECTION as a hash table +if it is not a list." + (or collection (setq collection gnus-active-hashtb)) + (let (choices group) + (if (listp collection) + (dolist (symbol collection) + (setq group (symbol-name symbol)) + (push (if (string-match "[^\000-\177]" group) + (gnus-group-decoded-name group) + group) + choices)) + (mapatoms (lambda (symbol) + (setq group (symbol-name symbol)) + (push (if (string-match "[^\000-\177]" group) + (gnus-group-decoded-name group) + group) + choices)) + collection)) + (setq group (gnus-completing-read (or prompt "Group") (nreverse choices) + require-match initial-input + (or hist 'gnus-group-history) + def)) (if (symbol-value (intern-soft group collection)) group (mm-encode-coding-string group (gnus-group-name-charset nil group))))) === modified file 'lisp/gnus/gnus-score.el' --- lisp/gnus/gnus-score.el 2010-09-30 08:39:23 +0000 +++ lisp/gnus/gnus-score.el 2010-10-06 01:09:32 +0000 @@ -916,7 +916,7 @@ (interactive (list (gnus-completing-read "Header" (mapcar 'car - (remove-if-not + (gnus-remove-if-not (lambda (x) (fboundp (nth 2 x))) gnus-header-index)) t) === modified file 'lisp/gnus/gnus-sum.el' --- lisp/gnus/gnus-sum.el 2010-10-05 22:43:06 +0000 +++ lisp/gnus/gnus-sum.el 2010-10-06 01:09:32 +0000 @@ -11926,11 +11926,12 @@ ((null split-name) (gnus-group-completing-read prom - (remove-if-not 'gnus-valid-move-group-p gnus-active-hashtb) + (gnus-remove-if-not 'gnus-valid-move-group-p gnus-active-hashtb t) nil prefix nil default)) ((= 1 (length split-name)) (gnus-group-completing-read - prom (remove-if-not 'gnus-valid-move-group-p gnus-active-hashtb) + prom + (gnus-remove-if-not 'gnus-valid-move-group-p gnus-active-hashtb t) nil prefix 'gnus-group-history (car split-name))) (t (gnus-completing-read === modified file 'lisp/gnus/gnus-util.el' --- lisp/gnus/gnus-util.el 2010-10-05 07:50:08 +0000 +++ lisp/gnus/gnus-util.el 2010-10-06 01:09:32 +0000 @@ -1307,13 +1307,40 @@ (with-current-buffer gnus-group-buffer (eq major-mode 'gnus-group-mode)))) -(defun gnus-remove-if (predicate list) - "Return a copy of LIST with all items satisfying PREDICATE removed." - (let (out) - (while list - (unless (funcall predicate (car list)) - (push (car list) out)) - (setq list (cdr list))) +(defun gnus-remove-if (predicate sequence &optional hash-table-p) + "Return a copy of SEQUENCE with all items satisfying PREDICATE removed. +SEQUENCE should be a list, a vector, or a string. Returns always a list. +If HASH-TABLE-P is non-nil, regards SEQUENCE as a hash table." + (let (out) + (if hash-table-p + (mapatoms (lambda (symbol) + (unless (funcall predicate symbol) + (push symbol out))) + sequence) + (unless (listp sequence) + (setq sequence (append sequence nil))) + (while sequence + (unless (funcall predicate (car sequence)) + (push (car sequence) out)) + (setq sequence (cdr sequence)))) + (nreverse out))) + +(defun gnus-remove-if-not (predicate sequence &optional hash-table-p) + "Return a copy of SEQUENCE with all items not satisfying PREDICATE removed. +SEQUENCE should be a list, a vector, or a string. Returns always a list. +If HASH-TABLE-P is non-nil, regards SEQUENCE as a hash table." + (let (out) + (if hash-table-p + (mapatoms (lambda (symbol) + (when (funcall predicate symbol) + (push symbol out))) + sequence) + (unless (listp sequence) + (setq sequence (append sequence nil))) + (while sequence + (when (funcall predicate (car sequence)) + (push (car sequence) out)) + (setq sequence (cdr sequence)))) (nreverse out))) (if (fboundp 'assq-delete-all) ------------------------------------------------------------ revno: 101806 author: Lars Magne Ingebrigtsen committer: Katsumi Yamaoka branch nick: trunk timestamp: Tue 2010-10-05 23:42:01 +0000 message: shr.el (shr-render-td): Allow blank/missing s. shr.el: Document the table-rendering algorithm. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2010-10-05 22:43:06 +0000 +++ lisp/gnus/ChangeLog 2010-10-05 23:42:01 +0000 @@ -1,5 +1,9 @@ 2010-10-05 Lars Magne Ingebrigtsen + * shr.el (shr-render-td): Allow blank/missing s. + + * shr.el: Document the table-rendering algorithm. + * gnus-html.el (gnus-html-schedule-image-fetching): Protect against invalid URLs. === modified file 'lisp/gnus/shr.el' --- lisp/gnus/shr.el 2010-10-05 22:43:06 +0000 +++ lisp/gnus/shr.el 2010-10-05 23:42:01 +0000 @@ -427,16 +427,33 @@ (apply #'shr-fontize-cont cont types) (shr-ensure-paragraph)) +;; Table rendering is the only complicated thing here. We do this by +;; first counting how many TDs there are in each TR, and registering +;; how wide they think they should be ("width=45%", etc). Then we +;; render each TD separately (this is done in temporary buffers, so +;; that we can use all the rendering machinery as if we were in the +;; main buffer). Now we know how much space each TD really takes, so +;; we then render everything again with the new widths, and finally +;; insert all these boxes into the main buffer. (defun shr-tag-table (cont) (shr-ensure-paragraph) (setq cont (or (cdr (assq 'tbody cont)) cont)) (let* ((shr-inhibit-images t) + ;; Find all suggested widths. (columns (shr-column-specs cont)) + ;; Compute how many characters wide each TD should be. (suggested-widths (shr-pro-rate-columns columns)) + ;; Do a "test rendering" to see how big each TD is (this can + ;; be smaller (if there's little text) or bigger (if there's + ;; unbreakable text). (sketch (shr-make-table cont suggested-widths)) (sketch-widths (shr-table-widths sketch (length suggested-widths)))) + ;; Then render the table again with these new "hard" widths. (shr-insert-table (shr-make-table cont sketch-widths t) sketch-widths)) + ;; Finally, insert all the images after the table. The Emacs buffer + ;; model isn't strong enough to allow us to put the images actually + ;; into the tables. (dolist (elem (shr-find-elements cont 'img)) (shr-tag-img (cdr elem)))) @@ -506,10 +523,14 @@ (let ((trs nil)) (dolist (row cont) (when (eq (car row) 'tr) - (let ((i 0) - (tds nil)) - (dolist (column (cdr row)) - (when (memq (car column) '(td th)) + (let ((tds nil) + (columns (cdr row)) + (i 0) + column) + (while (< i (length widths)) + (setq column (pop columns)) + (when (or (memq (car column) '(td th)) + (null column)) (push (shr-render-td (cdr column) (aref widths i) fill) tds) (setq i (1+ i)))) @@ -531,11 +552,16 @@ (forward-line 1)) (when fill (goto-char (point-min)) - (while (not (eobp)) - (end-of-line) - (when (> (- width (current-column)) 0) - (insert (make-string (- width (current-column)) ? ))) - (forward-line 1))) + ;; If the buffer is totally empty, then put a single blank + ;; line here. + (if (zerop (buffer-size)) + (insert (make-string width ? )) + ;; Otherwise, fill the buffer. + (while (not (eobp)) + (end-of-line) + (when (> (- width (current-column)) 0) + (insert (make-string (- width (current-column)) ? ))) + (forward-line 1)))) (list max (count-lines (point-min) (point-max)) (buffer-string) ------------------------------------------------------------ revno: 101805 author: Lars Magne Ingebrigtsen committer: Katsumi Yamaoka branch nick: trunk timestamp: Tue 2010-10-05 22:43:06 +0000 message: Merge changes made in Gnus trunk. mm-decode.el (mm-shr): Bind shr-blocked-images to gnus-blocked-images. shr.el (shr-tag-table): Put all the images after the table. shr.el (shr-tag-table): Really inhibit images inside the table. shr.el (shr-collect-overlays): Copy over overlays from the TD elements to the main document. nnimap.el (nnimap-request-newgroups): Return success. gnus-group.el (gnus-group-make-group): Doc fix. nnir.el (nnir-retrieve-headers): Don't bug out on invalid data. gnus-sum.el (gnus-article-sort-by-most-recent-date): New function, added for symmetry. mm-decode.el (mm-shr): Allow displaying cid: images from shr.el. shr.el (shr-insert-table): Bind free variable. gnus-art.el (gnus-blocked-images): Move variable here. mm-decode.el (mm-shr): Require shr. shr.el (shr-tag-img): Shorten ALT texts and allow them to be line-broken. shr.el (shr-tag-img): Ignore image fetching errors. shr.el (shr-overlays-in-region): Compute overlay positions correctly. gnus-html.el (gnus-html-schedule-image-fetching): Protect against invalid URLs. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2010-10-05 13:19:07 +0000 +++ lisp/gnus/ChangeLog 2010-10-05 22:43:06 +0000 @@ -1,3 +1,41 @@ +2010-10-05 Lars Magne Ingebrigtsen + + * gnus-html.el (gnus-html-schedule-image-fetching): Protect against + invalid URLs. + + * shr.el (shr-tag-img): Shorten ALT texts and allow them to be + line-broken. + (shr-tag-img): Ignore image fetching errors. + (shr-overlays-in-region): Compute overlay positions correctly. + + * mm-decode.el (mm-shr): Require shr. + + * gnus-art.el (gnus-blocked-images): Move variable here. + + * shr.el (shr-insert-table): Bind free variable. + + * mm-decode.el (mm-shr): Bind shr-content-function. + + * shr.el (shr-content-function): New variable. + + * gnus-sum.el (gnus-article-sort-by-most-recent-date): New function, + added for symmetry. + + * nnir.el (nnir-retrieve-headers): Don't bug out on invalid data. + + * gnus-group.el (gnus-group-make-group): Doc fix. + + * nnimap.el (nnimap-request-newgroups): Return success. + + * shr.el (shr-find-elements): New function. + (shr-tag-table): Put all the images after the table. + (shr-tag-table): Really inhibit images inside the table. + (shr-collect-overlays): Copy over overlays from the TD elements to the + main document. + + * mm-decode.el (mm-shr): Bind shr-blocked-images to + gnus-blocked-images. + 2010-10-05 Julien Danjou * gnus-html.el (gnus-html-wash-images): Rescale image from cid too. @@ -41,6 +79,9 @@ 2010-10-04 Lars Magne Ingebrigtsen + * nnimap.el (nnimap-open-connection): Give an error if nnimap-stream is + unknown. + * shr.el (shr-tag-blockquote): Ensure paragraph after quote, too. (shr-get-image-data): Ensure against the cache file missing. === modified file 'lisp/gnus/gnus-art.el' --- lisp/gnus/gnus-art.el 2010-10-03 02:07:11 +0000 +++ lisp/gnus/gnus-art.el 2010-10-05 22:43:06 +0000 @@ -1639,6 +1639,12 @@ :group 'gnus-article :type 'boolean) +(defcustom gnus-blocked-images "." + "Images that have URLs matching this regexp will be blocked." + :version "24.1" + :group 'gnus-art + :type 'regexp) + ;;; Internal variables (defvar gnus-english-month-names === modified file 'lisp/gnus/gnus-group.el' --- lisp/gnus/gnus-group.el 2010-10-04 22:26:51 +0000 +++ lisp/gnus/gnus-group.el 2010-10-05 22:43:06 +0000 @@ -2651,7 +2651,10 @@ "Add a new newsgroup. The user will be prompted for a NAME, for a select METHOD, and an ADDRESS. NAME should be a human-readable string (i.e., not be encoded -even if it contains non-ASCII characters) unless ENCODED is non-nil." +even if it contains non-ASCII characters) unless ENCODED is non-nil. + +If the backend supports it, the group will also be created on the +server." (interactive (list (gnus-read-group "Group name: ") === modified file 'lisp/gnus/gnus-html.el' --- lisp/gnus/gnus-html.el 2010-10-05 13:19:07 +0000 +++ lisp/gnus/gnus-html.el 2010-10-05 22:43:06 +0000 @@ -57,12 +57,6 @@ :group 'gnus-art :type 'integer) -(defcustom gnus-blocked-images "." - "Images that have URLs matching this regexp will be blocked." - :version "24.1" - :group 'gnus-art - :type 'regexp) - (defcustom gnus-max-image-proportion 0.9 "How big pictures displayed are in relation to the window they're in. A value of 0.7 means that they are allowed to take up 70% of the @@ -371,7 +365,8 @@ (help-function-arglist 'url-retrieve))) 4) (setq args (nconc args (list t)))) - (apply #'url-retrieve args))) + (ignore-errors + (apply #'url-retrieve args)))) (defun gnus-html-image-fetched (status buffer image) "Callback function called when image has been fetched." === modified file 'lisp/gnus/gnus-sum.el' --- lisp/gnus/gnus-sum.el 2010-10-04 22:26:51 +0000 +++ lisp/gnus/gnus-sum.el 2010-10-05 22:43:06 +0000 @@ -4985,6 +4985,10 @@ (t (gnus-thread-total-score-1 (list thread))))) +(defun gnus-article-sort-by-most-recent-number (h1 h2) + "Sort articles by number." + (gnus-article-sort-by-number h1 h2)) + (defun gnus-thread-sort-by-most-recent-number (h1 h2) "Sort threads such that the thread with the most recently arrived article comes first." (> (gnus-thread-highest-number h1) (gnus-thread-highest-number h2))) @@ -4995,6 +4999,10 @@ (mail-header-number header)) (message-flatten-list thread)))) +(defun gnus-article-sort-by-most-recent-date (h1 h2) + "Sort articles by number." + (gnus-article-sort-by-date h1 h2)) + (defun gnus-thread-sort-by-most-recent-date (h1 h2) "Sort threads such that the thread with the most recently dated article comes first." (> (gnus-thread-latest-date h1) (gnus-thread-latest-date h2))) === modified file 'lisp/gnus/mm-decode.el' --- lisp/gnus/mm-decode.el 2010-10-05 02:08:37 +0000 +++ lisp/gnus/mm-decode.el 2010-10-05 22:43:06 +0000 @@ -1684,7 +1684,16 @@ (declare-function shr-insert-document "shr" (dom)) (defun mm-shr (handle) + ;; Require since we bind its variables. + (require 'shr) (let ((article-buffer (current-buffer)) + (shr-blocked-images (with-current-buffer gnus-summary-buffer + gnus-blocked-images)) + (shr-content-function (lambda (id) + (let ((handle (mm-get-content-id id))) + (when handle + (mm-with-part handle + (buffer-string)))))) charset) (unless handle (setq handle (mm-dissect-buffer t))) === modified file 'lisp/gnus/nnimap.el' --- lisp/gnus/nnimap.el 2010-10-04 22:26:51 +0000 +++ lisp/gnus/nnimap.el 2010-10-05 22:43:06 +0000 @@ -926,7 +926,8 @@ (nnimap-get-groups))) (unless (assoc group nnimap-current-infos) ;; Insert dummy numbers here -- they don't matter. - (insert (format "%S 0 1 y\n" group)))))) + (insert (format "%S 0 1 y\n" group)))) + t)) (deffoo nnimap-retrieve-group-data-early (server infos) (when (nnimap-possibly-change-group nil server) === modified file 'lisp/gnus/nnir.el' --- lisp/gnus/nnir.el 2010-10-04 22:26:51 +0000 +++ lisp/gnus/nnir.el 2010-10-05 22:43:06 +0000 @@ -792,40 +792,30 @@ (if nnir-get-article-nov-override-function (setq novitem (funcall nnir-get-article-nov-override-function artitem)) - ;; else, set novitem through nnheader-parse-nov/nnheader-parse-head + ;; else, set novitem through nnheader-parse-nov/nnheader-parse-head (case (setq foo (gnus-retrieve-headers (list artno) artfullgroup nil)) (nov (goto-char (point-min)) - (setq novitem (nnheader-parse-nov)) - (unless novitem - (pop-to-buffer nntp-server-buffer) - (error - "nnheader-parse-nov returned nil for article %s in group %s" - artno artfullgroup))) + (setq novitem (nnheader-parse-nov))) (headers (goto-char (point-min)) - (setq novitem (nnheader-parse-head)) - (unless novitem - (pop-to-buffer nntp-server-buffer) - (error - "nnheader-parse-head returned nil for article %s in group %s" - artno artfullgroup))) + (setq novitem (nnheader-parse-head))) (t (error "Unknown header type %s while requesting article %s of group %s" foo artno artfullgroup))))) ;; replace article number in original group with article number ;; in nnir group - (mail-header-set-number novitem art) - (mail-header-set-from novitem - (mail-header-from novitem)) - (mail-header-set-subject - novitem - (format "[%d: %s/%d] %s" - artrsv artgroup artno - (mail-header-subject novitem))) - ;;-(mail-header-set-extra novitem nil) - (push novitem novdata) - (setq artlist (cdr artlist))) + (when novitem + (mail-header-set-number novitem art) + (mail-header-set-from novitem + (mail-header-from novitem)) + (mail-header-set-subject + novitem + (format "[%d: %s/%d] %s" + artrsv artgroup artno + (mail-header-subject novitem))) + (push novitem novdata) + (setq artlist (cdr artlist)))) (setq novdata (nreverse novdata)) (set-buffer nntp-server-buffer) (erase-buffer) (mapc 'nnheader-insert-nov novdata) === modified file 'lisp/gnus/shr.el' --- lisp/gnus/shr.el 2010-10-05 10:46:15 +0000 +++ lisp/gnus/shr.el 2010-10-05 22:43:06 +0000 @@ -52,10 +52,16 @@ :group 'shr :type 'regexp) +(defvar shr-content-function nil + "If bound, this should be a function that will return the content. +This is used for cid: URLs, and the function is called with the +cid: URL as the argument.") + (defvar shr-folding-mode nil) (defvar shr-state nil) (defvar shr-start nil) (defvar shr-indentation 0) +(defvar shr-inhibit-images nil) (defvar shr-width 70) @@ -204,16 +210,30 @@ (when (zerop (length alt)) (setq alt "[img]")) (cond - ((and shr-blocked-images - (string-match shr-blocked-images url)) - (insert alt)) + ((and (not shr-inhibit-images) + (string-match "\\`cid:" url)) + (let ((url (substring url (match-end 0))) + image) + (if (or (not shr-content-function) + (not (setq image (funcall shr-content-function url)))) + (insert alt) + (shr-put-image image (point) alt)))) + ((or shr-inhibit-images + (and shr-blocked-images + (string-match shr-blocked-images url))) + (setq shr-start (point)) + (let ((shr-state 'space)) + (if (> (length alt) 8) + (shr-insert (substring alt 0 8)) + (shr-insert alt)))) ((url-is-cached (browse-url-url-encode-chars url "[&)$ ]")) (shr-put-image (shr-get-image-data url) (point) alt)) (t (insert alt) - (url-retrieve url 'shr-image-fetched - (list (current-buffer) start (point-marker)) - t))) + (ignore-errors + (url-retrieve url 'shr-image-fetched + (list (current-buffer) start (point-marker)) + t)))) (insert " ") (put-text-property start (point) 'keymap shr-map) (put-text-property start (point) 'shr-alt alt) @@ -411,11 +431,23 @@ (shr-ensure-paragraph) (setq cont (or (cdr (assq 'tbody cont)) cont)) - (let* ((columns (shr-column-specs cont)) + (let* ((shr-inhibit-images t) + (columns (shr-column-specs cont)) (suggested-widths (shr-pro-rate-columns columns)) (sketch (shr-make-table cont suggested-widths)) (sketch-widths (shr-table-widths sketch (length suggested-widths)))) - (shr-insert-table (shr-make-table cont sketch-widths t) sketch-widths))) + (shr-insert-table (shr-make-table cont sketch-widths t) sketch-widths)) + (dolist (elem (shr-find-elements cont 'img)) + (shr-tag-img (cdr elem)))) + +(defun shr-find-elements (cont type) + (let (result) + (dolist (elem cont) + (cond ((eq (car elem) type) + (push elem result)) + ((consp (cdr elem)) + (setq result (nconc (shr-find-elements (cdr elem) type) result))))) + (nreverse result))) (defun shr-insert-table (table widths) (shr-insert-table-ruler widths) @@ -430,11 +462,20 @@ (insert "|\n")) (dolist (column row) (goto-char start) - (let ((lines (split-string (nth 2 column) "\n"))) + (let ((lines (split-string (nth 2 column) "\n")) + (overlay-lines (nth 3 column)) + overlay overlay-line) (dolist (line lines) + (setq overlay-line (pop overlay-lines)) (when (> (length line) 0) (end-of-line) (insert line "|") + (dolist (overlay overlay-line) + (let ((o (make-overlay (- (point) (nth 0 overlay) 1) + (- (point) (nth 1 overlay) 1))) + (properties (nth 2 overlay))) + (while properties + (overlay-put o (pop properties) (pop properties))))) (forward-line 1))) ;; Add blank lines at padding at the bottom of the TD, ;; possibly. @@ -495,7 +536,34 @@ (when (> (- width (current-column)) 0) (insert (make-string (- width (current-column)) ? ))) (forward-line 1))) - (list max (count-lines (point-min) (point-max)) (buffer-string))))) + (list max + (count-lines (point-min) (point-max)) + (buffer-string) + (and fill + (shr-collect-overlays)))))) + +(defun shr-collect-overlays () + (save-excursion + (goto-char (point-min)) + (let ((overlays nil)) + (while (not (eobp)) + (push (shr-overlays-in-region (point) (line-end-position)) + overlays) + (forward-line 1)) + (nreverse overlays)))) + +(defun shr-overlays-in-region (start end) + (let (result) + (dolist (overlay (overlays-in start end)) + (push (list (if (> start (overlay-start overlay)) + (- end start) + (- end (overlay-start overlay))) + (if (< end (overlay-end overlay)) + 0 + (- end (overlay-end overlay))) + (overlay-properties overlay)) + result)) + (nreverse result))) (defun shr-pro-rate-columns (columns) (let ((total-percentage 0) @@ -523,8 +591,8 @@ (string-match "\\([0-9]+\\)%" width)) (aset columns i (/ (string-to-number (match-string 1 width)) - 100.0))))) - (setq i (1+ i)))))) + 100.0)))) + (setq i (1+ i))))))) columns)) (defun shr-count (cont elem) @@ -538,7 +606,8 @@ (let ((max 0)) (dolist (row cont) (when (eq (car row) 'tr) - (setq max (max max (shr-count (cdr row) 'td))))) + (setq max (max max (+ (shr-count (cdr row) 'td) + (shr-count (cdr row) 'th)))))) max)) (provide 'shr) ------------------------------------------------------------ revno: 101804 committer: Michael Albinus branch nick: trunk timestamp: Tue 2010-10-05 16:20:24 +0200 message: * net/tramp.el (tramp-handle-directory-files-and-attributes) (tramp-handle-file-exists-p, tramp-handle-file-newer-than-file-p): New defuns, taken from tramp-smb.el. (tramp-coding-system-change-eol-conversion) (tramp-set-process-query-on-exit-flag): Removed. * net/tramp-compat.el (top): Do not check for byte-compiler objects. (tramp-compat-coding-system-change-eol-conversion) (tramp-compat-set-process-query-on-exit-flag): New defuns, taken from tramp.el. * net/tramp-gvfs.el: * net/tramp-gw.el: Replace `tramp-set-process-query-on-exit-flag' by `tramp-compat-set-process-query-on-exit-flag'. * net/tramp-imap.el (tramp-imap-file-name-handler-alist): Use `tramp-handle-directory-files-and-attributes', `tramp-handle-file-exists-p' and `tramp-handle-file-newer-than-file-p'. (tramp-imap-handle-file-exists-p) (tramp-imap-handle-file-executable-p) (tramp-imap-handle-file-readable-p) (tramp-imap-handle-directory-files-and-attributes) (tramp-imap-handle-file-newer-than-file-p): Removed. * net/tramp-sh.el: Replace `tramp-set-process-query-on-exit-flag' by `tramp-compat-set-process-query-on-exit-flag' and `tramp-coding-system-change-eol-conversion' by `tramp-compat-coding-system-change-eol-conversion'. * net/tramp-smb.el (tramp-smb-file-name-handler-alist): Use `tramp-handle-directory-files-and-attributes', `tramp-handle-file-exists-p' and `tramp-handle-file-newer-than-file-p'. (tramp-smb-handle-directory-files-and-attributes) (tramp-smb-handle-file-exists-p) (tramp-smb-handle-file-newer-than-file-p): Removed. (tramp-smb-maybe-open-connection): Replace `tramp-set-process-query-on-exit-flag' by `tramp-compat-set-process-query-on-exit-flag'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-10-05 04:17:51 +0000 +++ lisp/ChangeLog 2010-10-05 14:20:24 +0000 @@ -1,3 +1,47 @@ +2010-10-05 Michael Albinus + + * net/tramp.el (tramp-handle-directory-files-and-attributes) + (tramp-handle-file-exists-p, tramp-handle-file-newer-than-file-p): + New defuns, taken from tramp-smb.el. + (tramp-coding-system-change-eol-conversion) + (tramp-set-process-query-on-exit-flag): Removed. + + * net/tramp-compat.el (top): Do not check for byte-compiler + objects. + (tramp-compat-coding-system-change-eol-conversion) + (tramp-compat-set-process-query-on-exit-flag): New defuns, taken + from tramp.el. + + * net/tramp-gvfs.el: + * net/tramp-gw.el: Replace `tramp-set-process-query-on-exit-flag' + by `tramp-compat-set-process-query-on-exit-flag'. + + * net/tramp-imap.el (tramp-imap-file-name-handler-alist): Use + `tramp-handle-directory-files-and-attributes', + `tramp-handle-file-exists-p' and + `tramp-handle-file-newer-than-file-p'. + (tramp-imap-handle-file-exists-p) + (tramp-imap-handle-file-executable-p) + (tramp-imap-handle-file-readable-p) + (tramp-imap-handle-directory-files-and-attributes) + (tramp-imap-handle-file-newer-than-file-p): Removed. + + * net/tramp-sh.el: Replace `tramp-set-process-query-on-exit-flag' + by `tramp-compat-set-process-query-on-exit-flag' and + `tramp-coding-system-change-eol-conversion' by + `tramp-compat-coding-system-change-eol-conversion'. + + * net/tramp-smb.el (tramp-smb-file-name-handler-alist): Use + `tramp-handle-directory-files-and-attributes', + `tramp-handle-file-exists-p' and + `tramp-handle-file-newer-than-file-p'. + (tramp-smb-handle-directory-files-and-attributes) + (tramp-smb-handle-file-exists-p) + (tramp-smb-handle-file-newer-than-file-p): Removed. + (tramp-smb-maybe-open-connection): Replace + `tramp-set-process-query-on-exit-flag' by + `tramp-compat-set-process-query-on-exit-flag'. + 2010-10-05 Glenn Morris * obsolete/rnews.el, obsolete/rnewspost.el: Remove files. === modified file 'lisp/net/tramp-compat.el' --- lisp/net/tramp-compat.el 2010-10-03 21:23:13 +0000 +++ lisp/net/tramp-compat.el 2010-10-05 14:20:24 +0000 @@ -90,12 +90,10 @@ ;; needed to pacify Emacs byte-compiler. ;; Note that it was removed altogether in Emacs 24.1. (when (boundp 'directory-sep-char) - (unless (boundp 'byte-compile-not-obsolete-var) - (defvar byte-compile-not-obsolete-var nil)) + (defvar byte-compile-not-obsolete-var nil) (setq byte-compile-not-obsolete-var 'directory-sep-char) ;; Emacs 23.2. - (unless (boundp 'byte-compile-not-obsolete-vars) - (defvar byte-compile-not-obsolete-vars nil)) + (defvar byte-compile-not-obsolete-vars nil) (setq byte-compile-not-obsolete-vars '(directory-sep-char))) ;; `remote-file-name-inhibit-cache' has been introduced with Emacs 24.1. @@ -497,10 +495,36 @@ It can be retrieved with `(process-get PROCESS PROPNAME)'." (ignore-errors (tramp-compat-funcall 'process-put process propname value))) +(defun tramp-compat-set-process-query-on-exit-flag (process flag) + "Specify if query is needed for process when Emacs is exited. +If the second argument flag is non-nil, Emacs will query the user before +exiting if process is running." + (if (fboundp 'set-process-query-on-exit-flag) + (tramp-compat-funcall 'set-process-query-on-exit-flag process flag) + (tramp-compat-funcall 'process-kill-without-query process flag))) + (add-hook 'tramp-unload-hook (lambda () (unload-feature 'tramp-compat 'force))) +(defun tramp-compat-coding-system-change-eol-conversion (coding-system eol-type) + "Return a coding system like CODING-SYSTEM but with given EOL-TYPE. +EOL-TYPE can be one of `dos', `unix', or `mac'." + (cond ((fboundp 'coding-system-change-eol-conversion) + (tramp-compat-funcall + 'coding-system-change-eol-conversion coding-system eol-type)) + ((fboundp 'subsidiary-coding-system) + (tramp-compat-funcall + 'subsidiary-coding-system coding-system + (cond ((eq eol-type 'dos) 'crlf) + ((eq eol-type 'unix) 'lf) + ((eq eol-type 'mac) 'cr) + (t + (error "Unknown EOL-TYPE `%s', must be %s" + eol-type + "`dos', `unix', or `mac'"))))) + (t (error "Can't change EOL conversion -- is MULE missing?")))) + (provide 'tramp-compat) ;;; TODO: === modified file 'lisp/net/tramp-gvfs.el' --- lisp/net/tramp-gvfs.el 2010-10-04 19:44:08 +0000 +++ lisp/net/tramp-gvfs.el 2010-10-05 14:20:24 +0000 @@ -401,7 +401,6 @@ (file-name-directory . tramp-handle-file-name-directory) (file-name-nondirectory . tramp-handle-file-name-nondirectory) ;; `file-name-sans-versions' performed by default handler. - ;; CCC: Must be checked! (file-newer-than-file-p . tramp-handle-file-newer-than-file-p) (file-ownership-preserved-p . ignore) (file-readable-p . tramp-gvfs-handle-file-readable-p) @@ -1194,7 +1193,7 @@ :name (tramp-buffer-name vec) :buffer (tramp-get-buffer vec) :server t :host 'local :service t))) - (tramp-set-process-query-on-exit-flag p nil))) + (tramp-compat-set-process-query-on-exit-flag p nil))) (unless (tramp-gvfs-connection-mounted-p vec) (let* ((method (tramp-file-name-method vec)) === modified file 'lisp/net/tramp-gw.el' --- lisp/net/tramp-gw.el 2010-09-13 15:17:01 +0000 +++ lisp/net/tramp-gw.el 2010-10-05 14:20:24 +0000 @@ -107,7 +107,7 @@ tramp-gw-vector 4 "Opening auxiliary process `%s', speaking with process `%s'" proc tramp-gw-gw-proc) - (tramp-set-process-query-on-exit-flag proc nil) + (tramp-compat-set-process-query-on-exit-flag proc nil) ;; We don't want debug messages, because the corresponding debug ;; buffer might be undecided. (let (tramp-verbose) @@ -154,7 +154,7 @@ :name (tramp-buffer-name aux-vec) :buffer nil :host 'local :server t :noquery t :service t :coding 'binary)) (set-process-sentinel tramp-gw-aux-proc 'tramp-gw-aux-proc-sentinel) - (tramp-set-process-query-on-exit-flag tramp-gw-aux-proc nil) + (tramp-compat-set-process-query-on-exit-flag tramp-gw-aux-proc nil) (tramp-message vec 4 "Opening auxiliary process `%s', listening on port %d" tramp-gw-aux-proc (process-contact tramp-gw-aux-proc :service)))) @@ -199,7 +199,7 @@ (tramp-file-name-real-host target-vec) (tramp-file-name-port target-vec))) (set-process-sentinel tramp-gw-gw-proc 'tramp-gw-gw-proc-sentinel) - (tramp-set-process-query-on-exit-flag tramp-gw-gw-proc nil) + (tramp-compat-set-process-query-on-exit-flag tramp-gw-gw-proc nil) (tramp-message vec 4 "Opened %s process `%s'" (case gw-method ('tunnel "HTTP tunnel") ('socks "SOCKS")) @@ -230,7 +230,7 @@ (setq proc (open-network-stream name buffer (nth 1 socks-server) (nth 2 socks-server))) (set-process-coding-system proc 'binary 'binary) - (tramp-set-process-query-on-exit-flag proc nil) + (tramp-compat-set-process-query-on-exit-flag proc nil) ;; Send CONNECT command. (process-send-string proc (format "%s%s\r\n" command authentication)) (tramp-message === modified file 'lisp/net/tramp-imap.el' --- lisp/net/tramp-imap.el 2010-09-08 14:42:54 +0000 +++ lisp/net/tramp-imap.el 2010-10-05 14:20:24 +0000 @@ -122,7 +122,7 @@ (directory-file-name . tramp-handle-directory-file-name) (directory-files . tramp-handle-directory-files) (directory-files-and-attributes - . tramp-imap-handle-directory-files-and-attributes) + . tramp-handle-directory-files-and-attributes) (dired-call-process . ignore) ;; `dired-compress-file' performed by default handler ;; `dired-uncache' performed by default handler @@ -130,8 +130,8 @@ ;; `file-accessible-directory-p' performed by default handler (file-attributes . tramp-imap-handle-file-attributes) (file-directory-p . tramp-imap-handle-file-directory-p) - (file-executable-p . tramp-imap-handle-file-executable-p) - (file-exists-p . tramp-imap-handle-file-exists-p) + (file-executable-p . ignore) + (file-exists-p . tramp-handle-file-exists-p) (file-local-copy . tramp-imap-handle-file-local-copy) (file-modes . tramp-handle-file-modes) (file-name-all-completions . tramp-imap-handle-file-name-all-completions) @@ -140,9 +140,9 @@ (file-name-directory . tramp-handle-file-name-directory) (file-name-nondirectory . tramp-handle-file-name-nondirectory) ;; `file-name-sans-versions' performed by default handler - (file-newer-than-file-p . tramp-imap-handle-file-newer-than-file-p) + (file-newer-than-file-p . tramp-handle-file-newer-than-file-p) (file-ownership-preserved-p . ignore) - (file-readable-p . tramp-imap-handle-file-readable-p) + (file-readable-p . tramp-handle-file-exists-p) (file-regular-p . tramp-handle-file-regular-p) (file-remote-p . tramp-handle-file-remote-p) ;; `file-selinux-context' performed by default handler. @@ -526,10 +526,6 @@ (goto-char point) (list (expand-file-name filename) size)))))) -(defun tramp-imap-handle-file-exists-p (filename) - "Like `file-exists-p' for Tramp files." - (and (file-attributes filename) t)) - (defun tramp-imap-handle-file-directory-p (filename) "Like `file-directory-p' for Tramp-IMAP files." ;; We allow only mailboxes to be a directory. @@ -549,14 +545,6 @@ "Get inode equivalent \(actually the UID) for Tramp-IMAP FILENAME." (nth 10 (tramp-compat-file-attributes filename id-format))) -(defun tramp-imap-handle-file-executable-p (filename) - "Like `file-executable-p' for Tramp files. False for IMAP." - nil) - -(defun tramp-imap-handle-file-readable-p (filename) - "Like `file-readable-p' for Tramp files. True for IMAP." - (file-exists-p filename)) - (defun tramp-imap-handle-file-writable-p (filename) "Like `file-writable-p' for Tramp files. True for IMAP." ;; `file-exists-p' does not work yet for directories. @@ -571,24 +559,6 @@ (let ((iht (tramp-imap-make-iht v))) (imap-hash-rem (tramp-imap-get-file-inode filename) iht)))))) -(defun tramp-imap-handle-directory-files-and-attributes - (directory &optional full match nosort id-format) - "Like `directory-files-and-attributes' for Tramp files." - (mapcar - (lambda (x) - (cons x (tramp-compat-file-attributes - (if full x (expand-file-name x directory)) id-format))) - (directory-files directory full match nosort))) - -;; TODO: fix this in tramp-imap-get-file-entries. -(defun tramp-imap-handle-file-newer-than-file-p (file1 file2) - "Like `file-newer-than-file-p' for Tramp files." - (cond - ((not (file-exists-p file1)) nil) - ((not (file-exists-p file2)) t) - (t (tramp-time-less-p (nth 5 (file-attributes file2)) - (nth 5 (file-attributes file1)))))) - (defun tramp-imap-handle-file-local-copy (filename) "Like `file-local-copy' for Tramp files." (with-parsed-tramp-file-name (expand-file-name filename) nil === modified file 'lisp/net/tramp-sh.el' --- lisp/net/tramp-sh.el 2010-10-04 19:44:08 +0000 +++ lisp/net/tramp-sh.el 2010-10-05 14:20:24 +0000 @@ -2310,7 +2310,7 @@ (append copy-args (list source target)))))) (tramp-message v 6 "%s" (mapconcat 'identity (process-command p) " ")) - (tramp-set-process-query-on-exit-flag p nil) + (tramp-compat-set-process-query-on-exit-flag p nil) (tramp-process-actions p v tramp-actions-copy-out-of-band)))) ;; Reset the transfer process properties. @@ -2677,7 +2677,7 @@ ;; Set sentinel and query flag for this process. (tramp-set-connection-property p "vector" v) (set-process-sentinel p 'tramp-process-sentinel) - (tramp-set-process-query-on-exit-flag p t) + (tramp-compat-set-process-query-on-exit-flag p t) ;; Return process. p)) ;; Save exit. @@ -3694,10 +3694,10 @@ (setq cs-encode (cdr cs)) (unless cs-decode (setq cs-decode 'undecided)) (unless cs-encode (setq cs-encode 'undecided)) - (setq cs-encode (tramp-coding-system-change-eol-conversion + (setq cs-encode (tramp-compat-coding-system-change-eol-conversion cs-encode 'unix)) (when (search-forward "\r" nil t) - (setq cs-decode (tramp-coding-system-change-eol-conversion + (setq cs-decode (tramp-compat-coding-system-change-eol-conversion cs-decode 'dos))) (tramp-compat-funcall 'set-buffer-process-coding-system cs-decode cs-encode) @@ -4244,7 +4244,7 @@ vec 6 "%s" (mapconcat 'identity (process-command p) " ")) ;; Check whether process is alive. - (tramp-set-process-query-on-exit-flag p nil) + (tramp-compat-set-process-query-on-exit-flag p nil) (tramp-barf-if-no-shell-prompt p 60 "Couldn't find local shell prompt %s" tramp-encoding-shell) === modified file 'lisp/net/tramp-smb.el' --- lisp/net/tramp-smb.el 2010-10-04 19:44:08 +0000 +++ lisp/net/tramp-smb.el 2010-10-05 14:20:24 +0000 @@ -153,7 +153,7 @@ (directory-file-name . tramp-handle-directory-file-name) (directory-files . tramp-smb-handle-directory-files) (directory-files-and-attributes - . tramp-smb-handle-directory-files-and-attributes) + . tramp-handle-directory-files-and-attributes) (dired-call-process . ignore) (dired-compress-file . ignore) (dired-uncache . tramp-handle-dired-uncache) @@ -161,8 +161,8 @@ (file-accessible-directory-p . tramp-smb-handle-file-directory-p) (file-attributes . tramp-smb-handle-file-attributes) (file-directory-p . tramp-smb-handle-file-directory-p) - (file-executable-p . tramp-smb-handle-file-exists-p) - (file-exists-p . tramp-smb-handle-file-exists-p) + (file-executable-p . tramp-handle-file-exists-p) + (file-exists-p . tramp-handle-file-exists-p) (file-local-copy . tramp-smb-handle-file-local-copy) (file-modes . tramp-handle-file-modes) (file-name-all-completions . tramp-smb-handle-file-name-all-completions) @@ -171,9 +171,9 @@ (file-name-directory . tramp-handle-file-name-directory) (file-name-nondirectory . tramp-handle-file-name-nondirectory) ;; `file-name-sans-versions' performed by default handler. - (file-newer-than-file-p . tramp-smb-handle-file-newer-than-file-p) + (file-newer-than-file-p . tramp-handle-file-newer-than-file-p) (file-ownership-preserved-p . ignore) - (file-readable-p . tramp-smb-handle-file-exists-p) + (file-readable-p . tramp-handle-file-exists-p) (file-regular-p . tramp-handle-file-regular-p) (file-remote-p . tramp-handle-file-remote-p) ;; `file-selinux-context' performed by default handler. @@ -451,15 +451,6 @@ ;; That's it. result)) -(defun tramp-smb-handle-directory-files-and-attributes - (directory &optional full match nosort id-format) - "Like `directory-files-and-attributes' for Tramp files." - (mapcar - (lambda (x) - (cons x (tramp-compat-file-attributes - (if full x (expand-file-name x directory)) id-format))) - (directory-files directory full match nosort))) - (defun tramp-smb-handle-expand-file-name (name &optional dir) "Like `expand-file-name' for Tramp files." ;; If DIR is not given, use DEFAULT-DIRECTORY or "/". @@ -597,10 +588,6 @@ (and (file-exists-p filename) (eq ?d (aref (nth 8 (file-attributes filename)) 0)))) -(defun tramp-smb-handle-file-exists-p (filename) - "Like `file-exists-p' for Tramp files." - (not (null (file-attributes filename)))) - (defun tramp-smb-handle-file-local-copy (filename) "Like `file-local-copy' for Tramp files." (with-parsed-tramp-file-name filename nil @@ -638,14 +625,6 @@ (nth 0 x)))) entries))))))) -(defun tramp-smb-handle-file-newer-than-file-p (file1 file2) - "Like `file-newer-than-file-p' for Tramp files." - (cond - ((not (file-exists-p file1)) nil) - ((not (file-exists-p file2)) t) - (t (tramp-time-less-p (nth 5 (file-attributes file2)) - (nth 5 (file-attributes file1)))))) - (defun tramp-smb-handle-file-writable-p (filename) "Like `file-writable-p' for Tramp files." (if (file-exists-p filename) @@ -1323,7 +1302,7 @@ (tramp-message vec 6 "%s" (mapconcat 'identity (process-command p) " ")) - (tramp-set-process-query-on-exit-flag p nil) + (tramp-compat-set-process-query-on-exit-flag p nil) ;; Set variables for computing the prompt for reading password. (setq tramp-current-method tramp-smb-method === modified file 'lisp/net/tramp.el' --- lisp/net/tramp.el 2010-10-04 19:44:08 +0000 +++ lisp/net/tramp.el 2010-10-05 14:20:24 +0000 @@ -2609,6 +2609,15 @@ result))) (if nosort result (sort result 'string<))))) +(defun tramp-handle-directory-files-and-attributes + (directory &optional full match nosort id-format) + "Like `directory-files-and-attributes' for Tramp files." + (mapcar + (lambda (x) + (cons x (tramp-compat-file-attributes + (if full x (expand-file-name x directory)) id-format))) + (directory-files directory full match nosort))) + (defun tramp-handle-dired-uncache (dir &optional dir-p) "Like `dired-uncache' for Tramp files." ;; DIR-P is valid for XEmacs only. @@ -2616,6 +2625,10 @@ (if (or dir-p (file-directory-p dir)) dir (file-name-directory dir)) nil (tramp-flush-directory-property v localname))) +(defun tramp-handle-file-exists-p (filename) + "Like `file-exists-p' for Tramp files." + (not (null (file-attributes filename)))) + (defun tramp-handle-file-modes (filename) "Like `file-modes' for Tramp files." (let ((truename (or (file-truename filename) filename))) @@ -2669,6 +2682,14 @@ (with-parsed-tramp-file-name file nil (tramp-run-real-handler 'file-name-nondirectory (list localname)))) +(defun tramp-handle-file-newer-than-file-p (file1 file2) + "Like `file-newer-than-file-p' for Tramp files." + (cond + ((not (file-exists-p file1)) nil) + ((not (file-exists-p file2)) t) + (t (tramp-time-less-p (nth 5 (file-attributes file2)) + (nth 5 (file-attributes file1)))))) + (defun tramp-handle-file-regular-p (filename) "Like `file-regular-p' for Tramp files." (and (file-exists-p filename) @@ -3551,32 +3572,6 @@ (cadr time) (/ (or (nth 2 time) 0) 1000000.0)))))) -(defun tramp-coding-system-change-eol-conversion (coding-system eol-type) - "Return a coding system like CODING-SYSTEM but with given EOL-TYPE. -EOL-TYPE can be one of `dos', `unix', or `mac'." - (cond ((fboundp 'coding-system-change-eol-conversion) - (tramp-compat-funcall - 'coding-system-change-eol-conversion coding-system eol-type)) - ((fboundp 'subsidiary-coding-system) - (tramp-compat-funcall - 'subsidiary-coding-system coding-system - (cond ((eq eol-type 'dos) 'crlf) - ((eq eol-type 'unix) 'lf) - ((eq eol-type 'mac) 'cr) - (t - (error "Unknown EOL-TYPE `%s', must be %s" - eol-type - "`dos', `unix', or `mac'"))))) - (t (error "Can't change EOL conversion -- is MULE missing?")))) - -(defun tramp-set-process-query-on-exit-flag (process flag) - "Specify if query is needed for process when Emacs is exited. -If the second argument flag is non-nil, Emacs will query the user before -exiting if process is running." - (if (fboundp 'set-process-query-on-exit-flag) - (tramp-compat-funcall 'set-process-query-on-exit-flag process flag) - (tramp-compat-funcall 'process-kill-without-query process flag))) - ;; Currently (as of Emacs 20.5), the function `shell-quote-argument' ;; does not deal well with newline characters. Newline is replaced by ;; backslash newline. But if, say, the string `a backslash newline b' ------------------------------------------------------------ revno: 101803 author: Julien Danjou committer: Katsumi Yamaoka branch nick: trunk timestamp: Tue 2010-10-05 13:19:07 +0000 message: sieve-manage.el (sieve-manage-capability): Do not bug out when the server-value of the capability is nil. gnus-html.el (gnus-html-wash-images): Rescale image from cid too. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2010-10-05 10:46:15 +0000 +++ lisp/gnus/ChangeLog 2010-10-05 13:19:07 +0000 @@ -1,3 +1,12 @@ +2010-10-05 Julien Danjou + + * gnus-html.el (gnus-html-wash-images): Rescale image from cid too. + (gnus-html-maximum-image-size): Add this function. + (gnus-html-put-image): Use gnus-html-maximum-image-size. + + * sieve-manage.el (sieve-manage-capability): Do not bug out when the + server-value of the capability is nil. + 2010-10-05 Lars Magne Ingebrigtsen * shr.el (shr-tag-em): Add tag. === modified file 'lisp/gnus/gnus-html.el' --- lisp/gnus/gnus-html.el 2010-10-05 10:46:15 +0000 +++ lisp/gnus/gnus-html.el 2010-10-05 13:19:07 +0000 @@ -191,17 +191,16 @@ ;; URLs with cid: have their content stashed in other ;; parts of the MIME structure, so just insert them ;; immediately. - (let ((handle (mm-get-content-id - (setq url (match-string 1 url)))) - image) - (when handle - (mm-with-part handle - (setq image (gnus-create-image (buffer-string) - nil t)))) + (let* ((handle (mm-get-content-id + (setq url (match-string 1 url)))) + (image (when handle + (gnus-create-image (mm-with-part handle (buffer-string)) + nil t)))) (when image (let ((string (buffer-substring start end))) (delete-region start end) - (gnus-put-image image (gnus-string-or string "*") 'cid) + (gnus-put-image (gnus-rescale-image image (gnus-html-maximum-image-size)) + (gnus-string-or string "*") 'cid) (gnus-add-image 'cid image)))) ;; Normal, external URL. (let ((alt-text (when (string-match "\\(alt\\|title\\)=\"\\([^\"]+\\)" @@ -398,7 +397,22 @@ (search-forward "\r\n\r\n" nil t)) (buffer-substring (point) (point-max))))) +(defun gnus-html-maximum-image-size () + "Return the maximum size of an image according to `gnus-max-image-proportion'." + (let ((edges (gnus-window-inside-pixel-edges + (get-buffer-window (current-buffer))))) + ;; (width . height) + (cons + ;; Aimed width + (truncate + (* gnus-max-image-proportion + (- (nth 2 edges) (nth 0 edges)))) + ;; Aimed height + (truncate (* gnus-max-image-proportion + (- (nth 3 edges) (nth 1 edges))))))) + (defun gnus-html-put-image (data url &optional alt-text) + "Put an image with DATA from URL and optional ALT-TEXT." (when (gnus-graphic-display-p) (let* ((start (text-property-any (point-min) (point-max) 'gnus-image-url url)) @@ -434,19 +448,7 @@ (= (car size) 30) (= (cdr size) 30)))) ;; Good image, add it! - (let ((image (gnus-rescale-image - image - (let ((edges (gnus-window-inside-pixel-edges - (get-buffer-window (current-buffer))))) - ;; (width . height) - (cons - ;; Aimed width - (truncate - (* gnus-max-image-proportion - (- (nth 2 edges) (nth 0 edges)))) - ;; Aimed height - (truncate (* gnus-max-image-proportion - (- (nth 3 edges) (nth 1 edges))))))))) + (let ((image (gnus-rescale-image image (gnus-html-maximum-image-size)))) (delete-region start end) (gnus-put-image image alt-text 'external) (gnus-put-text-property start (point) 'help-echo alt-text) === modified file 'lisp/gnus/sieve-manage.el' --- lisp/gnus/sieve-manage.el 2010-10-05 10:46:15 +0000 +++ lisp/gnus/sieve-manage.el 2010-10-05 13:19:07 +0000 @@ -553,13 +553,18 @@ (setq sieve-manage-state 'auth))))) (defun sieve-manage-capability (&optional name value buffer) + "Check if capability NAME of server BUFFER match VALUE. +If it does, return the server value of NAME. If not returns nil. +If VALUE is nil, do not check VALUE and return server value. +If NAME is nil, return the full server list of capabilities." (with-current-buffer (or buffer (current-buffer)) (if (null name) sieve-manage-capability - (if (null value) - (nth 1 (assoc name sieve-manage-capability)) - (when (string-match value (nth 1 (assoc name sieve-manage-capability))) - (nth 1 (assoc name sieve-manage-capability))))))) + (let ((server-value (cadr (assoc name sieve-manage-capability)))) + (when (or (null value) + (and server-value + (string-match value server-value))) + server-value))))) (defun sieve-manage-listscripts (&optional buffer) (with-current-buffer (or buffer (current-buffer)) ------------------------------------------------------------ revno: 101802 author: Gnus developers committer: Katsumi Yamaoka branch nick: trunk timestamp: Tue 2010-10-05 10:46:15 +0000 message: Merge changes made in Gnus trunk. sieve-manage.el (sieve-manage-default-stream): Make default stream customizable. gnus-html.el (gnus-html-wash-tags): Decode URL entities to avoid broken links. nnimap.el (nnimap-open-connection): Give an error if nnimap-stream is unknown. shr.el (shr-tag-em): Add tag. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2010-10-05 07:50:08 +0000 +++ lisp/gnus/ChangeLog 2010-10-05 10:46:15 +0000 @@ -1,3 +1,15 @@ +2010-10-05 Lars Magne Ingebrigtsen + + * shr.el (shr-tag-em): Add tag. + +2010-10-05 Florian Ragwitz (tiny change) + + * sieve-manage.el (sieve-manage-default-stream): Make default stream + customizable. + + * gnus-html.el (gnus-html-wash-tags): Decode URL entities to avoid + handing broken links to browse-url. + 2010-10-05 Julien Danjou * gnus-util.el (gnus-emacs-completing-read) === modified file 'lisp/gnus/gnus-html.el' --- lisp/gnus/gnus-html.el 2010-10-05 03:48:30 +0000 +++ lisp/gnus/gnus-html.el 2010-10-05 10:46:15 +0000 @@ -282,7 +282,7 @@ (setq url (match-string 1 parameters)) (gnus-message 8 "gnus-html-wash-tags: fetching link URL %s" url) (gnus-article-add-button start end - 'browse-url url + 'browse-url (mm-url-decode-entities-string url) url) (let ((overlay (gnus-make-overlay start end))) (gnus-overlay-put overlay 'evaporate t) === modified file 'lisp/gnus/shr.el' --- lisp/gnus/shr.el 2010-10-05 01:23:11 +0000 +++ lisp/gnus/shr.el 2010-10-05 10:46:15 +0000 @@ -125,6 +125,9 @@ (defun shr-tag-i (cont) (shr-fontize-cont cont 'italic)) +(defun shr-tag-em (cont) + (shr-fontize-cont cont 'bold)) + (defun shr-tag-u (cont) (shr-fontize-cont cont 'underline)) === modified file 'lisp/gnus/sieve-manage.el' --- lisp/gnus/sieve-manage.el 2010-10-01 11:15:10 +0000 +++ lisp/gnus/sieve-manage.el 2010-10-05 10:46:15 +0000 @@ -162,6 +162,12 @@ :type 'integer :group 'sieve-manage) +(defcustom sieve-manage-default-stream 'network + "Default stream type to use for `sieve-manage'. +Must be a name of a stream in `sieve-manage-stream-alist'." + :type 'symbol + :group 'sieve-manage) + ;; Internal variables: (defconst sieve-manage-local-variables '(sieve-manage-server @@ -174,7 +180,6 @@ sieve-manage-client-eol sieve-manage-server-eol sieve-manage-capability)) -(defconst sieve-manage-default-stream 'network) (defconst sieve-manage-coding-system-for-read 'binary) (defconst sieve-manage-coding-system-for-write 'binary) (defvar sieve-manage-stream nil) ------------------------------------------------------------ revno: 101801 author: Julien Danjou committer: Katsumi Yamaoka branch nick: trunk timestamp: Tue 2010-10-05 07:50:08 +0000 message: gnus-util.el (gnus-emacs-completing-read, gnus-iswitchb-completing-read): Use autoload rather than require. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2010-10-05 06:36:32 +0000 +++ lisp/gnus/ChangeLog 2010-10-05 07:50:08 +0000 @@ -1,3 +1,8 @@ +2010-10-05 Julien Danjou + + * gnus-util.el (gnus-emacs-completing-read) + (gnus-iswitchb-completing-read): Use autoload rather than require. + 2010-10-05 Katsumi Yamaoka * gnus-util.el (gnus-completing-read-function): Exclude === modified file 'lisp/gnus/gnus-util.el' --- lisp/gnus/gnus-util.el 2010-10-05 06:36:32 +0000 +++ lisp/gnus/gnus-util.el 2010-10-05 07:50:08 +0000 @@ -1611,16 +1611,17 @@ (mapcar 'list collection) nil require-match initial-input history def))) +(autoload 'ido-completing-read "ido") (defun gnus-ido-completing-read (prompt collection &optional require-match initial-input history def) "Call `ido-completing-read-function'." - (require 'ido) (ido-completing-read prompt collection nil require-match initial-input history def)) + +(autoload 'iswitchb-read-buffer "iswitchb") (defun gnus-iswitchb-completing-read (prompt collection &optional require-match initial-input history def) "`iswitchb' based completing-read function." - (require 'iswitchb) (let ((iswitchb-make-buflist-hook (lambda () (setq iswitchb-temp-buflist ------------------------------------------------------------ revno: 101800 committer: Katsumi Yamaoka branch nick: trunk timestamp: Tue 2010-10-05 06:36:32 +0000 message: Merge changes made ein Gnus trunk. gnus-util.el (gnus-completing-read-function): Exclude gnus-icompleting-read and gnus-ido-completing-read from candidates for XEmacs since iswitchb.el is very old and ido.el is unavailable in XEmacs. gnus-registry.el (gnus-registry-install-nnregistry): Rewrite so as not to use `delete-dups' that is unavailable in XEmacs 21.4. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2010-10-05 03:48:30 +0000 +++ lisp/gnus/ChangeLog 2010-10-05 06:36:32 +0000 @@ -1,5 +1,13 @@ 2010-10-05 Katsumi Yamaoka + * gnus-util.el (gnus-completing-read-function): Exclude + gnus-icompleting-read and gnus-ido-completing-read from candidates for + XEmacs since iswitchb.el is very old and ido.el is unavailable in + XEmacs. + + * gnus-registry.el (gnus-registry-install-nnregistry): Rewrite so as + not to use `delete-dups' that is unavailable in XEmacs 21.4. + * gnus-html.el: Don't require help-fns under XEmacs. (gnus-html-schedule-image-fetching): Work for XEmacs. === modified file 'lisp/gnus/gnus-registry.el' --- lisp/gnus/gnus-registry.el 2010-10-01 23:08:25 +0000 +++ lisp/gnus/gnus-registry.el 2010-10-05 06:36:32 +0000 @@ -1153,13 +1153,16 @@ (defun gnus-registry-install-nnregistry () "Install the nnregistry refer method in `gnus-refer-article-method'." (interactive) - (setq gnus-refer-article-method - (delete-dups - (append - (if (listp gnus-refer-article-method) - gnus-refer-article-method - (list gnus-refer-article-method)) - (list 'nnregistry))))) + (cond ((eq 'nnregistry gnus-refer-article-method)) + ((null gnus-refer-article-method) + (setq gnus-refer-article-method 'nnregistry)) + ((consp gnus-refer-article-method) + (unless (memq 'nnregistry gnus-refer-article-method) + (setq gnus-refer-article-method + (append gnus-refer-article-method '(nnregistry))))) + (t + (setq gnus-refer-article-method + (list gnus-refer-article-method 'nnregistry))))) (defun gnus-registry-unload-hook () "Uninstall the registry hooks." === modified file 'lisp/gnus/gnus-util.el' --- lisp/gnus/gnus-util.el 2010-10-04 22:26:51 +0000 +++ lisp/gnus/gnus-util.el 2010-10-05 06:36:32 +0000 @@ -48,15 +48,18 @@ "Function use to do completing read." :version "24.1" :group 'gnus-meta - :type '(radio (function-item + :type `(radio (function-item :doc "Use Emacs standard `completing-read' function." gnus-emacs-completing-read) - (function-item - :doc "Use `ido-completing-read' function." - gnus-ido-completing-read) - (function-item - :doc "Use iswitchb based completing-read function." - gnus-iswitchb-completing-read))) + ;; iswitchb.el is very old and ido.el is unavailable + ;; in XEmacs, so we exclude those function items. + ,@(unless (featurep 'xemacs) + '((function-item + :doc "Use `ido-completing-read' function." + gnus-ido-completing-read) + (function-item + :doc "Use iswitchb based completing-read function." + gnus-iswitchb-completing-read))))) (defcustom gnus-completion-styles (if (and (boundp 'completion-styles-alist)