From 82b24fb2792e5f15cb6dfa1a74bfd0ac6a40b4de Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 7 Apr 2012 11:12:04 +0300 Subject: [PATCH 01/43] Fix bug #11182 with the effect of typing '?' in Shell mode. lisp/minibuffer.el (completion-in-region-mode-map): Bind completion-help-at-point to M-? rather than ?. --- lisp/ChangeLog | 5 +++++ lisp/minibuffer.el | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9c7ba8541df..bf235638416 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-04-07 Eli Zaretskii + + * minibuffer.el (completion-in-region-mode-map): Bind + completion-help-at-point to M-? rather than ?. (Bug#11182) + 2012-04-05 Lars Magne Ingebrigtsen * window.el (shrink-window): Mention the `window-min-height' diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index bcc6a808d22..db7743970d4 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -1506,7 +1506,7 @@ exit." (let ((map (make-sparse-keymap))) ;; FIXME: Only works if completion-in-region-mode was activated via ;; completion-at-point called directly. - (define-key map "?" 'completion-help-at-point) + (define-key map "\M-?" 'completion-help-at-point) (define-key map "\t" 'completion-at-point) map) "Keymap activated during `completion-in-region'.") From 9bb794c7259bbf9593ba70fdd27d5519be2978b0 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 7 Apr 2012 17:57:25 +0300 Subject: [PATCH 02/43] etc/TODO: Update bidi-related items. --- etc/TODO | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/etc/TODO b/etc/TODO index db1d50192f2..6aa74df5a79 100644 --- a/etc/TODO +++ b/etc/TODO @@ -647,17 +647,29 @@ up on top of all others ** Bidirectional editing +*** Support reordering structured text +Two important use cases: (1) comments and strings in program sources, +and (2) text with markup, like HTML or XML. + +One idea is to invent a special text property that would instruct the +display engine to reorder only the parts of buffer text covered by +that property. The display engine will then push its state onto the +iterator stack, restrict the bidi iterator to accessing only the +portion of buffer text covered by the property, reorder the text, then +pop its state from stack and continue as usual. This will require +minor changes in the bidi_it structure. + +This design requires Lisp-level code to put the text properties on the +relevant parts of the buffer text. That could be done using JIT +fontifications, or as a preliminary processing when the file is +visited. With HTML/XML, the code that puts text properties needs to +pay attention to the bidi directives embedded in the HTML/XML stream. + *** Allow the user to control the direction of the UI **** Introduce user option to control direction of mode line. -This requires to figure out what to do with unibyte strings that are -used in constructing the mode line. Currently, unibyte strings are -not reordered by bidi.c, without which R2L mode line will not display -correctly. One possibility would be to STRING_SET_MULTIBYTE all Lisp -strings involved in the mode line, and then pass them through bidi.c. - -Another problem is the header line, which is produced by the same -routines as the mode line. While it makes sense to have the mode-line +One problem is the header line, which is produced by the same routines +as the mode line. While it makes sense to have the mode-line direction controlled by a single global variable, header lines are buffer-specific, so they need a separate treatment in this regard. From bf6fa4236b9d7a2c479806970315e5c47d983b53 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 7 Apr 2012 11:52:43 -0700 Subject: [PATCH 03/43] * lisp/pcmpl-rpm.el (pcomplete/rpm): Handle -qf. Ref: http://lists.gnu.org/archive/html/emacs-devel/2012-04/msg00165.html --- lisp/ChangeLog | 4 ++++ lisp/pcmpl-rpm.el | 16 ++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index bf235638416..493a4334e6e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-04-07 Glenn Morris + + * pcmpl-rpm.el (pcomplete/rpm): Handle -qf. + 2012-04-07 Eli Zaretskii * minibuffer.el (completion-in-region-mode-map): Bind diff --git a/lisp/pcmpl-rpm.el b/lisp/pcmpl-rpm.el index 8019b876562..f28469d791b 100644 --- a/lisp/pcmpl-rpm.el +++ b/lisp/pcmpl-rpm.el @@ -1,6 +1,6 @@ ;;; pcmpl-rpm.el --- functions for dealing with rpm completions -;; Copyright (C) 1999-2012 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Package: pcomplete @@ -29,6 +29,13 @@ ;; Functions: +;; FIXME rpm -qa can be slow, so: +;; Adding --nodigest --nosignature is MUCH faster. +;; (Probably need to test --help for those options though.) +;; Consider caching the result (cf woman). +;; Consider printing an explanatory message before running -qa. +;; +;; Seems pointless for this to be a defsubst. (defsubst pcmpl-rpm-packages () (split-string (pcomplete-process-result "rpm" "-q" "-a"))) @@ -92,6 +99,7 @@ '("--changelog" "--dbpath" "--dump" + "--file" "--ftpport" ;nyi for the next four "--ftpproxy" "--httpport" @@ -112,6 +120,8 @@ (pcomplete-here*)) ((pcomplete-test "--rcfile") (pcomplete-here* (pcomplete-entries))) + ((pcomplete-test "--file") + (pcomplete-here* (pcomplete-entries))) ((pcomplete-test "--root") (pcomplete-here* (pcomplete-dirs))) ((pcomplete-test "--scripts") @@ -129,7 +139,9 @@ (pcomplete-opt "af.p(pcmpl-rpm-files)ilsdcvR") (if (pcomplete-test "-[^-]*p" 'first 1) (pcomplete-here (pcmpl-rpm-files)) - (pcomplete-here (pcmpl-rpm-packages)))))) + (if (pcomplete-test "-[^-]*f" 'first 1) + (pcomplete-here* (pcomplete-entries)) + (pcomplete-here (pcmpl-rpm-packages))))))) ((pcomplete-test "--pipe") (pcomplete-here* (funcall pcomplete-command-completion-function))) ((pcomplete-test "--rmsource") From f48a9cb464ca8a7e9d5bdceb4a9de2ef036c70a7 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 7 Apr 2012 12:23:53 -0700 Subject: [PATCH 04/43] Replace non-portable use of $< in ordinary make rules Ref: http://lists.gnu.org/archive/html/help-gnu-emacs/2012-04/msg00074.html * emacs/Makefile.in, lispintro/Makefile.in, lispref/Makefile.in: * misc/Makefile.in: Replace non-portable use of $< in ordinary rules. --- doc/emacs/ChangeLog | 4 + doc/emacs/Makefile.in | 20 +-- doc/lispintro/ChangeLog | 4 + doc/lispintro/Makefile.in | 13 +- doc/lispref/ChangeLog | 4 + doc/lispref/Makefile.in | 11 +- doc/misc/ChangeLog | 4 + doc/misc/Makefile.in | 302 +++++++++++++++++++------------------- 8 files changed, 191 insertions(+), 171 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 8b50579ba10..dede6771fd9 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,7 @@ +2012-04-07 Glenn Morris + + * Makefile.in: Replace non-portable use of $< in ordinary rules. + 2012-04-05 Glenn Morris * glossary.texi (Glossary): Use anchors for internal cross-references. diff --git a/doc/emacs/Makefile.in b/doc/emacs/Makefile.in index 2ed265ecd70..b25f6dbe490 100644 --- a/doc/emacs/Makefile.in +++ b/doc/emacs/Makefile.in @@ -1,6 +1,6 @@ #### Makefile for the Emacs Manual -# Copyright (C) 1994, 1996-2012 Free Software Foundation, Inc. +# Copyright (C) 1994, 1996-2012 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -127,31 +127,31 @@ ps: emacs.ps # Note that all the Info targets build the Info files in srcdir. # There is no provision for Info files to exist in the build directory. # In a distribution of Emacs, the Info files should be up to date. - +# Note: "<" is not portable in ordinary make rules. $(infodir)/emacs: ${EMACSSOURCES} $(mkinfodir) - $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ $< + $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ ${srcdir}/emacs.texi emacs.dvi: ${EMACSSOURCES} - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs.texi emacs.ps: emacs.dvi - $(DVIPS) -o $@ $< + $(DVIPS) -o $@ emacs.dvi emacs.pdf: ${EMACSSOURCES} - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs.texi emacs.html: ${EMACSSOURCES} - $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ $< + $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ ${srcdir}/emacs.texi emacs-xtra.dvi: $(EMACS_XTRA) - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-xtra.texi emacs-xtra.ps: emacs-xtra.dvi - $(DVIPS) -o $@ $< + $(DVIPS) -o $@ emacs-xtra.dvi emacs-xtra.pdf: $(EMACS_XTRA) - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-xtra.texi .PHONY: mostlyclean clean distclean maintainer-clean infoclean diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog index adac111f5f9..aae78b4aff1 100644 --- a/doc/lispintro/ChangeLog +++ b/doc/lispintro/ChangeLog @@ -1,3 +1,7 @@ +2012-04-07 Glenn Morris + + * Makefile.in: Replace non-portable use of $< in ordinary rules. + 2012-02-28 Glenn Morris * emacs-lisp-intro.texi: Standardize possessive apostrophe usage. diff --git a/doc/lispintro/Makefile.in b/doc/lispintro/Makefile.in index fa9a0a4037c..c638dd6135f 100644 --- a/doc/lispintro/Makefile.in +++ b/doc/lispintro/Makefile.in @@ -1,6 +1,6 @@ #### Makefile for the Emacs Lisp Introduction manual -# Copyright (C) 1994-1999, 2001-2012 Free Software Foundation, Inc. +# Copyright (C) 1994-1999, 2001-2012 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -48,21 +48,22 @@ ps: emacs-lisp-intro.ps # The file name eintr must fit within 5 characters, to allow for # -NN extensions to fit into DOS 8+3 limits without clashing. +# Note: "<" is not portable in ordinary make rules. ${infodir}/eintr: ${srcdir}/emacs-lisp-intro.texi $(mkinfodir) - $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ $< + $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ ${srcdir}/emacs-lisp-intro.texi emacs-lisp-intro.dvi: ${srcdir}/emacs-lisp-intro.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-lisp-intro.texi emacs-lisp-intro.ps: emacs-lisp-intro.dvi - $(DVIPS) -o $@ $< + $(DVIPS) -o $@ emacs-lisp-intro.dvi emacs-lisp-intro.pdf: ${srcdir}/emacs-lisp-intro.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-lisp-intro.texi emacs-lisp-intro.html: ${srcdir}/emacs-lisp-intro.texi - $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ $< + $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ ${srcdir}/emacs-lisp-intro.texi .PHONY: mostlyclean clean distclean maintainer-clean infoclean diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index afd6700ef61..ba87aa3c5d5 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,7 @@ +2012-04-07 Glenn Morris + + * Makefile.in: Replace non-portable use of $< in ordinary rules. + 2012-04-06 Chong Yidong * minibuf.texi (Programmed Completion): Document metadata method. diff --git a/doc/lispref/Makefile.in b/doc/lispref/Makefile.in index 5094a3f8ab6..10ec236eaee 100644 --- a/doc/lispref/Makefile.in +++ b/doc/lispref/Makefile.in @@ -106,21 +106,22 @@ html: elisp.html pdf: elisp.pdf ps: elisp.ps +## Note: "<" is not portable in ordinary make rules. $(infodir)/elisp: $(srcs) $(mkinfodir) - $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ $< + $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ $(srcdir)/elisp.texi elisp.dvi: $(srcs) - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) $(srcdir)/elisp.texi elisp.html: $(srcs) - $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ $< + $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ $(srcdir)/elisp.texi elisp.ps: elisp.dvi - $(DVIPS) -o $@ $< + $(DVIPS) -o $@ elisp.dvi elisp.pdf: $(srcs) - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) $(srcdir)/elisp.texi .PHONY: mostlyclean clean distclean maintainer-clean infoclean diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index e2f2c949676..f11792248cf 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,7 @@ +2012-04-07 Glenn Morris + + * Makefile.in: Replace non-portable use of $< in ordinary rules. + 2012-04-05 Teodor Zlatanov * auth.texi (Secret Service API): Edit further and give examples. diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in index 6fd0b983b87..647f00723b1 100644 --- a/doc/misc/Makefile.in +++ b/doc/misc/Makefile.in @@ -1,6 +1,6 @@ #### Makefile for documentation other than the Emacs manual. -# Copyright (C) 1994, 1996-2012 Free Software Foundation, Inc. +# Copyright (C) 1994, 1996-2012 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -224,226 +224,228 @@ pdf: $(PDF_TARGETS) # to exist in the build directory. # In a distribution of Emacs, the Info files should be up to date. +# Note: "<" is not portable in ordinary make rules. + ## "short" target names for convenience, to just rebuild one manual. ada-mode : $(infodir)/ada-mode $(infodir)/ada-mode: ada-mode.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ada-mode.texi ada-mode.dvi: ${srcdir}/ada-mode.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/ada-mode.texi ada-mode.pdf: ${srcdir}/ada-mode.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/ada-mode.texi auth : $(infodir)/auth $(infodir)/auth: auth.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) auth.texi auth.dvi: ${srcdir}/auth.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/auth.texi auth.pdf: ${srcdir}/auth.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/auth.texi autotype : $(infodir)/autotype $(infodir)/autotype: autotype.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) autotype.texi autotype.dvi: ${srcdir}/autotype.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/autotype.texi autotype.pdf: ${srcdir}/autotype.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/autotype.texi calc : $(infodir)/calc $(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) calc.texi calc.dvi: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/calc.texi calc.pdf: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/calc.texi ccmode : $(infodir)/ccmode $(infodir)/ccmode: cc-mode.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) cc-mode.texi cc-mode.dvi: ${srcdir}/cc-mode.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/cc-mode.texi cc-mode.pdf: ${srcdir}/cc-mode.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/cc-mode.texi cl : $(infodir)/cl $(infodir)/cl: cl.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) cl.texi cl.dvi: ${srcdir}/cl.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/cl.texi cl.pdf: ${srcdir}/cl.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/cl.texi dbus : $(infodir)/dbus $(infodir)/dbus: dbus.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) dbus.texi dbus.dvi: ${srcdir}/dbus.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/dbus.texi dbus.pdf: ${srcdir}/dbus.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/dbus.texi dired-x : $(infodir)/dired-x $(infodir)/dired-x: dired-x.texi $(emacsdir)/emacsver.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) dired-x.texi dired-x.dvi: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/dired-x.texi dired-x.pdf: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/dired-x.texi ebrowse : $(infodir)/ebrowse $(infodir)/ebrowse: ebrowse.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ebrowse.texi ebrowse.dvi: ${srcdir}/ebrowse.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/ebrowse.texi ebrowse.pdf: ${srcdir}/ebrowse.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/ebrowse.texi ede : $(infodir)/ede $(infodir)/ede: ede.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ede.texi ede.dvi: ${srcdir}/ede.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/ede.texi ede.pdf: ${srcdir}/ede.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/ede.texi ediff : $(infodir)/ediff $(infodir)/ediff: ediff.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ediff.texi ediff.dvi: ${srcdir}/ediff.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/ediff.texi ediff.pdf: ${srcdir}/ediff.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/ediff.texi edt : $(infodir)/edt $(infodir)/edt: edt.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) edt.texi edt.dvi: ${srcdir}/edt.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/edt.texi edt.pdf: ${srcdir}/edt.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/edt.texi eieio : $(infodir)/eieio $(infodir)/eieio: eieio.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) eieio.texi eieio.dvi: ${srcdir}/eieio.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/eieio.texi eieio.pdf: ${srcdir}/eieio.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/eieio.texi emacs-mime : $(infodir)/emacs-mime $(infodir)/emacs-mime: emacs-mime.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --enable-encoding $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --enable-encoding emacs-mime.texi emacs-mime.dvi: ${srcdir}/emacs-mime.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-mime.texi emacs-mime.pdf: ${srcdir}/emacs-mime.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-mime.texi epa : $(infodir)/epa $(infodir)/epa: epa.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) epa.texi epa.dvi: ${srcdir}/epa.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/epa.texi epa.pdf: ${srcdir}/epa.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/epa.texi erc : $(infodir)/erc $(infodir)/erc: erc.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) erc.texi erc.dvi: ${srcdir}/erc.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/erc.texi erc.pdf: ${srcdir}/erc.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/erc.texi ert : $(infodir)/ert $(infodir)/ert: ert.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ert.texi ert.dvi: ${srcdir}/ert.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/ert.texi ert.pdf: ${srcdir}/ert.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/ert.texi eshell : $(infodir)/eshell $(infodir)/eshell: eshell.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) eshell.texi eshell.dvi: ${srcdir}/eshell.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/eshell.texi eshell.pdf: ${srcdir}/eshell.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/eshell.texi eudc : $(infodir)/eudc $(infodir)/eudc: eudc.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) eudc.texi eudc.dvi: ${srcdir}/eudc.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/eudc.texi eudc.pdf: ${srcdir}/eudc.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/eudc.texi efaq : $(infodir)/efaq $(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) faq.texi faq.dvi: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/faq.texi faq.pdf: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/faq.texi ## This is the name used on the Emacs web-page. ## sed fixes up links to point to split version of the manual. emacs-faq.html: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi $(MAKEINFO) $(MAKEINFO_OPTS) --no-split \ - --css-ref='/layout.css' --html -o $@ $< + --css-ref='/layout.css' --html -o $@ ${srcdir}/faq.texi sed -i -e 's|a href="\([a-z]*\)\.html#\([^"]*\)"|a href="manual/html_node/\1/\2.html"|g' \ -e 's|/Top\.html|/|g' $@ emacs-faq.text: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi - $(MAKEINFO) $(MAKEINFO_OPTS) --plaintext -o $@ $< + $(MAKEINFO) $(MAKEINFO_OPTS) --plaintext -o $@ ${srcdir}/faq.texi flymake : $(infodir)/flymake $(infodir)/flymake: flymake.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) flymake.texi flymake.dvi: ${srcdir}/flymake.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/flymake.texi flymake.pdf: ${srcdir}/flymake.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/flymake.texi forms : $(infodir)/forms $(infodir)/forms: forms.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) forms.texi forms.dvi: ${srcdir}/forms.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/forms.texi forms.pdf: ${srcdir}/forms.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/forms.texi # gnus/message/emacs-mime/sieve/pgg are part of Gnus: gnus : $(infodir)/gnus $(infodir)/gnus: gnus.texi gnus-faq.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) gnus.texi gnus.dvi: ${srcdir}/gnus.texi gnus-faq.texi - sed -e '/@iflatex/,/@end iflatex/d' $< > gnustmp.texi + sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi $(ENVADD) $(TEXI2DVI) gnustmp.texi cp gnustmp.dvi $*.dvi rm gnustmp.* gnus.pdf: ${srcdir}/gnus.texi gnus-faq.texi - sed -e '/@iflatex/,/@end iflatex/d' $< > gnustmp.texi + sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi $(ENVADD) $(TEXI2PDF) gnustmp.texi cp gnustmp.pdf $@ rm gnustmp.* @@ -453,11 +455,11 @@ gnus.pdf: ${srcdir}/gnus.texi gnus-faq.texi idlwave : $(infodir)/idlwave $(infodir)/idlwave: idlwave.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --no-split $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --no-split idlwave.texi idlwave.dvi: ${srcdir}/idlwave.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/idlwave.texi idlwave.pdf: ${srcdir}/idlwave.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/idlwave.texi # The following target uses an explicit -o switch to work around # the @setfilename directive in info.texi, which is required for @@ -465,227 +467,227 @@ idlwave.pdf: ${srcdir}/idlwave.texi ###info : $(infodir)/info # circular! $(infodir)/info: info.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --no-split $< -o $@ + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --no-split -o $@ info.texi info.dvi: ${srcdir}/info.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/info.texi info.pdf: ${srcdir}/info.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/info.texi mairix-el : $(infodir)/mairix-el $(infodir)/mairix-el: mairix-el.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) mairix-el.texi mairix-el.dvi: ${srcdir}/mairix-el.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/mairix-el.texi mairix-el.pdf: ${srcdir}/mairix-el.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/mairix-el.texi message : $(infodir)/message $(infodir)/message: message.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) message.texi message.dvi: ${srcdir}/message.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/message.texi message.pdf: ${srcdir}/message.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/message.texi mh-e : $(infodir)/mh-e $(infodir)/mh-e: mh-e.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) mh-e.texi mh-e.dvi: ${srcdir}/mh-e.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/mh-e.texi mh-e.pdf: ${srcdir}/mh-e.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/mh-e.texi newsticker : $(infodir)/newsticker $(infodir)/newsticker: newsticker.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) newsticker.texi newsticker.dvi: ${srcdir}/newsticker.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/newsticker.texi newsticker.pdf: ${srcdir}/newsticker.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/newsticker.texi nxml-mode : $(infodir)/nxml-mode $(infodir)/nxml-mode: nxml-mode.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) nxml-mode.texi nxml-mode.dvi: ${srcdir}/nxml-mode.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/nxml-mode.texi nxml-mode.pdf: ${srcdir}/nxml-mode.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/nxml-mode.texi org : $(infodir)/org $(infodir)/org: org.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) org.texi org.dvi: ${srcdir}/org.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/org.texi org.pdf: ${srcdir}/org.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/org.texi pcl-cvs : $(infodir)/pcl-cvs $(infodir)/pcl-cvs: pcl-cvs.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) pcl-cvs.texi pcl-cvs.dvi: ${srcdir}/pcl-cvs.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/pcl-cvs.texi pcl-cvs.pdf: ${srcdir}/pcl-cvs.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/pcl-cvs.texi pgg : $(infodir)/pgg $(infodir)/pgg: pgg.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) pgg.texi pgg.dvi: ${srcdir}/pgg.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/pgg.texi pgg.pdf: ${srcdir}/pgg.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/pgg.texi rcirc : $(infodir)/rcirc $(infodir)/rcirc: rcirc.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) rcirc.texi rcirc.dvi: ${srcdir}/rcirc.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/rcirc.texi rcirc.pdf: ${srcdir}/rcirc.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/rcirc.texi reftex : $(infodir)/reftex $(infodir)/reftex: reftex.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) reftex.texi reftex.dvi: ${srcdir}/reftex.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/reftex.texi reftex.pdf: ${srcdir}/reftex.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/reftex.texi remember : $(infodir)/remember $(infodir)/remember: remember.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) remember.texi remember.dvi: ${srcdir}/remember.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/remember.texi remember.pdf: ${srcdir}/remember.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/remember.texi sasl : $(infodir)/sasl $(infodir)/sasl: sasl.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) sasl.texi sasl.dvi: ${srcdir}/sasl.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/sasl.texi sasl.pdf: ${srcdir}/sasl.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/sasl.texi sc : $(infodir)/sc $(infodir)/sc: sc.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) sc.texi sc.dvi: ${srcdir}/sc.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/sc.texi sc.pdf: ${srcdir}/sc.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/sc.texi semantic : $(infodir)/semantic $(infodir)/semantic: semantic.texi sem-user.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) semantic.texi semantic.dvi: ${srcdir}/semantic.texi sem-user.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/semantic.texi semantic.pdf: ${srcdir}/semantic.texi sem-user.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/semantic.texi ses : $(infodir)/ses $(infodir)/ses: ses.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ses.texi ses.dvi: ${srcdir}/ses.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/ses.texi ses.pdf: ${srcdir}/ses.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/ses.texi sieve : $(infodir)/sieve $(infodir)/sieve: sieve.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) sieve.texi sieve.dvi: ${srcdir}/sieve.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/sieve.texi sieve.pdf: ${srcdir}/sieve.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/sieve.texi smtpmail : $(infodir)/smtpmail $(infodir)/smtpmail: smtpmail.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) smtpmail.texi smtpmail.dvi: ${srcdir}/smtpmail.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/smtpmail.texi smtpmail.pdf: ${srcdir}/smtpmail.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/smtpmail.texi speedbar : $(infodir)/speedbar $(infodir)/speedbar: speedbar.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) speedbar.texi speedbar.dvi: ${srcdir}/speedbar.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/speedbar.texi speedbar.pdf: ${srcdir}/speedbar.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/speedbar.texi tramp : $(infodir)/tramp $(infodir)/tramp: tramp.texi trampver.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) -D emacs $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) -D emacs tramp.texi tramp.dvi: ${srcdir}/tramp.texi trampver.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/tramp.texi tramp.pdf: ${srcdir}/tramp.texi trampver.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/tramp.texi url : $(infodir)/url $(infodir)/url: url.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) url.texi url.dvi: ${srcdir}/url.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/url.texi url.pdf: ${srcdir}/url.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/url.texi vip : $(infodir)/vip $(infodir)/vip: vip.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) vip.texi vip.dvi: ${srcdir}/vip.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/vip.texi vip.pdf: ${srcdir}/vip.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/vip.texi viper : $(infodir)/viper $(infodir)/viper: viper.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) viper.texi viper.dvi: ${srcdir}/viper.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/viper.texi viper.pdf: ${srcdir}/viper.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/viper.texi widget : $(infodir)/widget $(infodir)/widget: widget.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) widget.texi widget.dvi: ${srcdir}/widget.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/widget.texi widget.pdf: ${srcdir}/widget.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/widget.texi woman : $(infodir)/woman $(infodir)/woman: woman.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) woman.texi woman.dvi: ${srcdir}/woman.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/woman.texi woman.pdf: ${srcdir}/woman.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/woman.texi .PHONY: mostlyclean clean distclean maintainer-clean From 8fc85b2054579f268077be7b44f4b4eb6a43963a Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 7 Apr 2012 19:07:16 -0700 Subject: [PATCH 05/43] Use @env for environment variables in texinfo manuals It renders the same as @code, so in many cases this change is entirely cosmetic. * doc/emacs/misc.texi (Gnus Startup): * doc/lispref/files.texi, doc/lispref/frames.texi: * doc/lispref/loading.texi, doc/lispref/os.texi, doc/lispref/processes.texi: Use @env for environment variables. --- doc/emacs/ChangeLog | 4 ++++ doc/emacs/misc.texi | 2 +- doc/lispref/ChangeLog | 5 +++++ doc/lispref/files.texi | 10 +++++----- doc/lispref/frames.texi | 2 +- doc/lispref/loading.texi | 2 +- doc/lispref/os.texi | 26 +++++++++++++------------- doc/lispref/processes.texi | 6 +++--- 8 files changed, 33 insertions(+), 24 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index dede6771fd9..848248963be 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,7 @@ +2012-04-08 Glenn Morris + + * misc.texi (Gnus Startup): Use @env for environment variables. + 2012-04-07 Glenn Morris * Makefile.in: Replace non-portable use of $< in ordinary rules. diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index 84b9d6ee03b..ca9c2760ce2 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -92,7 +92,7 @@ file named @file{.newsrc} in your home directory which lists your Usenet newsgroups and subscriptions (this file is not unique to Gnus; it is used by many other newsreader programs). It then tries to contact the system's default news server, which is typically specified -by the @samp{NNTPSERVER} environment variable. +by the @env{NNTPSERVER} environment variable. If your system does not have a default news server, or if you wish to use Gnus for reading email, then before invoking @kbd{M-x gnus} you diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index ba87aa3c5d5..eb07b7c10ca 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,8 @@ +2012-04-08 Glenn Morris + + * files.texi, frames.texi, loading.texi, os.texi, processes.texi: + Use @env for environment variables. + 2012-04-07 Glenn Morris * Makefile.in: Replace non-portable use of $< in ordinary rules. diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi index b49e56158ad..3e96a448963 100644 --- a/doc/lispref/files.texi +++ b/doc/lispref/files.texi @@ -2154,7 +2154,7 @@ double all @samp{$} characters to prevent subsequent incorrect results. @c Wordy to avoid overfull hbox. --rjc 15mar92 -Here we assume that the environment variable @code{HOME}, which holds +Here we assume that the environment variable @env{HOME}, which holds the user's home directory name, has value @samp{/xcssun/users/rms}. @example @@ -2239,9 +2239,9 @@ non-@code{nil}. To use it, you should expand the prefix against the proper directory before calling @code{make-temp-file}. @defopt temporary-file-directory -@cindex @code{TMPDIR} environment variable -@cindex @code{TMP} environment variable -@cindex @code{TEMP} environment variable +@cindex @env{TMPDIR} environment variable +@cindex @env{TMP} environment variable +@cindex @env{TEMP} environment variable This variable specifies the directory name for creating temporary files. Its value should be a directory name (@pxref{Directory Names}), but it is good for Lisp programs to cope if the value is a directory's file @@ -2249,7 +2249,7 @@ name instead. Using the value as the second argument to @code{expand-file-name} is a good way to achieve that. The default value is determined in a reasonable way for your operating -system; it is based on the @code{TMPDIR}, @code{TMP} and @code{TEMP} +system; it is based on the @env{TMPDIR}, @env{TMP} and @env{TEMP} environment variables, with a fall-back to a system-dependent name if none of these variables is defined. diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index 125d6071cab..1bd4cf4854b 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi @@ -488,7 +488,7 @@ frame. @code{title} and @code{name} are meaningful on all terminals. @item display The display on which to open this frame. It should be a string of the form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the -@code{DISPLAY} environment variable. +@env{DISPLAY} environment variable. @vindex display-type, a frame parameter @item display-type diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi index 47a2a39ed63..7fc9535d88b 100644 --- a/doc/lispref/loading.texi +++ b/doc/lispref/loading.texi @@ -235,7 +235,7 @@ it skips the latter group. in a list of directories specified by the variable @code{load-path}. @defvar load-path -@cindex @code{EMACSLOADPATH} environment variable +@cindex @env{EMACSLOADPATH} environment variable The value of this variable is a list of directories to search when loading files with @code{load}. Each element is a string (which must be a directory name) or @code{nil} (which stands for the current working diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index 8a57ed2c1f0..649b93e6082 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi @@ -89,7 +89,7 @@ that Emacs is being initialized. @c set-locale-environment @item It sets the language environment and the terminal coding system, -if requested by environment variables such as @code{LANG}. +if requested by environment variables such as @env{LANG}. @item It does some basic parsing of the command-line arguments. @@ -352,8 +352,8 @@ control whether and where to find the init file; @samp{-q} (and the stronger @samp{-Q}) says not to load an init file, while @samp{-u @var{user}} says to load @var{user}'s init file instead of yours. @xref{Entering Emacs,,, emacs, The GNU Emacs Manual}. If neither -option is specified, Emacs uses the @code{LOGNAME} environment -variable, or the @code{USER} (most systems) or @code{USERNAME} (MS +option is specified, Emacs uses the @env{LOGNAME} environment +variable, or the @env{USER} (most systems) or @env{USERNAME} (MS systems) variable, to find your home directory and thus your init file; this way, even if you have su'd, Emacs still loads your own init file. If those environment variables are absent, though, Emacs uses @@ -430,7 +430,7 @@ This variable holds the name of the @file{.emacs.d} directory. It is Each terminal type can have its own Lisp library that Emacs loads when run on that type of terminal. The library's name is constructed by concatenating the value of the variable @code{term-file-prefix} and the -terminal type (specified by the environment variable @code{TERM}). +terminal type (specified by the environment variable @env{TERM}). Normally, @code{term-file-prefix} has the value @code{"term/"}; changing this is not recommended. Emacs finds the file in the normal manner, by searching the @code{load-path} directories, and @@ -468,7 +468,7 @@ use this hook to define initializations for terminals that do not have their own libraries. @xref{Hooks}. @defvar term-file-prefix -@cindex @code{TERM} environment variable +@cindex @env{TERM} environment variable If the value of this variable is non-@code{nil}, Emacs loads a terminal-specific initialization file as follows: @@ -481,7 +481,7 @@ You may set the @code{term-file-prefix} variable to @code{nil} in your init file if you do not wish to load the terminal-initialization file. -On MS-DOS, Emacs sets the @code{TERM} environment variable to @samp{internal}. +On MS-DOS, Emacs sets the @env{TERM} environment variable to @samp{internal}. @end defvar @defvar term-setup-hook @@ -1010,7 +1010,7 @@ value is @code{":"} for Unix and GNU systems, and @code{";"} for MS systems. @defun parse-colon-path path This function takes a search path string such as the value of -the @code{PATH} environment variable, and splits it at the separators, +the @env{PATH} environment variable, and splits it at the separators, returning a list of directory names. @code{nil} in this list means the current directory. Although the function's name says ``colon'', it actually uses the value of @code{path-separator}. @@ -1113,7 +1113,7 @@ want to use the default value. @defun user-login-name &optional uid This function returns the name under which the user is logged in. -It uses the environment variables @code{LOGNAME} or @code{USER} if +It uses the environment variables @env{LOGNAME} or @env{USER} if either is set. Otherwise, the value is based on the effective @acronym{UID}, not the real @acronym{UID}. @@ -1124,12 +1124,12 @@ corresponds to @var{uid}, or @code{nil} if there is no such user. @defun user-real-login-name This function returns the user name corresponding to Emacs's real @acronym{UID}. This ignores the effective @acronym{UID}, and the -environment variables @code{LOGNAME} and @code{USER}. +environment variables @env{LOGNAME} and @env{USER}. @end defun @defun user-full-name &optional uid This function returns the full name of the logged-in user---or the value -of the environment variable @code{NAME}, if that is set. +of the environment variable @env{NAME}, if that is set. If the Emacs process's user-id does not correspond to any known user (and provided @code{NAME} is not set), the result is @code{"unknown"}. @@ -1249,9 +1249,9 @@ The argument @var{time-value}, if given, specifies a time (represented as a list of integers) to analyze instead of the current time. @end defun -The current time zone is determined by the @samp{TZ} environment +The current time zone is determined by the @env{TZ} environment variable. @xref{System Environment}. For example, you can tell Emacs -to use universal time with @code{(setenv "TZ" "UTC0")}. If @samp{TZ} +to use universal time with @code{(setenv "TZ" "UTC0")}. If @env{TZ} is not in the environment, Emacs uses a platform-dependent default time zone. @@ -1325,7 +1325,7 @@ yourself before you call @code{encode-time}. The optional argument @var{zone} defaults to the current time zone and its daylight saving time rules. If specified, it can be either a list (as you would get from @code{current-time-zone}), a string as in the -@code{TZ} environment variable, @code{t} for Universal Time, or an +@env{TZ} environment variable, @code{t} for Universal Time, or an integer (as you would get from @code{decode-time}). The specified zone is used without any further alteration for daylight saving time. diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi index 0dae20427c6..d251240d198 100644 --- a/doc/lispref/processes.texi +++ b/doc/lispref/processes.texi @@ -77,14 +77,14 @@ sections. Since the three functions are all called in a similar fashion, their common arguments are described here. @cindex execute program -@cindex @code{PATH} environment variable -@cindex @code{HOME} environment variable +@cindex @env{PATH} environment variable +@cindex @env{HOME} environment variable In all cases, the function's @var{program} argument specifies the program to be run. An error is signaled if the file is not found or cannot be executed. If the file name is relative, the variable @code{exec-path} contains a list of directories to search. Emacs initializes @code{exec-path} when it starts up, based on the value of -the environment variable @code{PATH}. The standard file name +the environment variable @env{PATH}. The standard file name constructs, @samp{~}, @samp{.}, and @samp{..}, are interpreted as usual in @code{exec-path}, but environment variable substitutions (@samp{$HOME}, etc.) are not recognized; use From 5c14e333bc3bc62a082a1c04fd8eda8f6a4ac30a Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sun, 8 Apr 2012 21:20:43 +0800 Subject: [PATCH 06/43] * lisp/net/rcirc.el (rcirc-cmd-quit): Revert 2012-03-18 change. Fixes: debbugs:11192 --- lisp/ChangeLog | 5 +++++ lisp/net/rcirc.el | 18 +++++++----------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 493a4334e6e..ae31c616772 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-04-08 Chong Yidong + + * net/rcirc.el (rcirc-cmd-quit): Revert 2012-03-18 change + (Bug#11192). + 2012-04-07 Glenn Morris * pcmpl-rpm.el (pcomplete/rpm): Handle -qf. diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el index d09b6aa831f..1c74e6190dc 100644 --- a/lisp/net/rcirc.el +++ b/lisp/net/rcirc.el @@ -2165,17 +2165,13 @@ CHANNELS is a comma- or space-separated string of channel names." (let ((channel (if (> (length channel) 0) channel target))) (rcirc-send-string process (concat "PART " channel " :" rcirc-id-string)))) -(defun-rcirc-command quit (reason all) - "Send a quit message to server with REASON. -When called with prefix, quit all servers." - (interactive "sQuit reason: \nP") - (dolist (p (if all - (rcirc-process-list) - (list process))) - (rcirc-send-string p (concat "QUIT :" - (if (not (zerop (length reason))) - reason - rcirc-id-string))))) +(defun-rcirc-command quit (reason) + "Send a quit message to server with REASON." + (interactive "sQuit reason: ") + (rcirc-send-string process (concat "QUIT :" + (if (not (zerop (length reason))) + reason + rcirc-id-string)))) (defun-rcirc-command nick (nick) "Change nick to NICK." From 9fe9631c2f2a401c96a38b8db525a2e63df84524 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sun, 8 Apr 2012 21:30:26 +0800 Subject: [PATCH 07/43] * doc/lispref/processes.texi (Query Before Exit): Remove obsolete function process-kill-without-query. Fixes: debbugs:11190 --- doc/lispref/ChangeLog | 5 +++++ doc/lispref/processes.texi | 24 +++--------------------- 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index eb07b7c10ca..30c8ad2e4ae 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,8 @@ +2012-04-08 Chong Yidong + + * processes.texi (Query Before Exit): Remove obsolete function + process-kill-without-query (Bug#11190). + 2012-04-08 Glenn Morris * files.texi, frames.texi, loading.texi, os.texi, processes.texi: diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi index d251240d198..f59937da15d 100644 --- a/doc/lispref/processes.texi +++ b/doc/lispref/processes.texi @@ -1629,35 +1629,17 @@ This returns the query flag of @var{process}. This function sets the query flag of @var{process} to @var{flag}. It returns @var{flag}. +Here is an example of using @code{set-process-query-on-exit-flag} on a +shell process to avoid querying: + @smallexample @group -;; @r{Don't query about the shell process} (set-process-query-on-exit-flag (get-process "shell") nil) @result{} t @end group @end smallexample @end defun -@defun process-kill-without-query process &optional do-query -This function clears the query flag of @var{process}, so that -Emacs will not query the user on account of that process. - -Actually, the function does more than that: it returns the old value of -the process's query flag, and sets the query flag to @var{do-query}. -Please don't use this function to do those things any more---please -use the newer, cleaner functions @code{process-query-on-exit-flag} and -@code{set-process-query-on-exit-flag} in all but the simplest cases. -The only way you should use @code{process-kill-without-query} nowadays -is like this: - -@smallexample -@group -;; @r{Don't query about the shell process} -(process-kill-without-query (get-process "shell")) -@end group -@end smallexample -@end defun - @node System Processes @section Accessing Other Processes @cindex system processes From e2627d2130d78c81da53fd390a6b99197bb72701 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 8 Apr 2012 20:13:15 +0300 Subject: [PATCH 08/43] Support Hebrew spell-checking in ispell.el. lisp/textmodes/ispell.el (ispell-dictionary-base-alist): Add data for Hebrew. --- lisp/ChangeLog | 5 +++++ lisp/textmodes/ispell.el | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ae31c616772..1b25983104c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-04-08 Eli Zaretskii + + * textmodes/ispell.el (ispell-dictionary-base-alist): Add data for + Hebrew. + 2012-04-08 Chong Yidong * net/rcirc.el (rcirc-cmd-quit): Revert 2012-03-18 change diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index 64feaa0aeca..4d061fed32b 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -684,7 +684,8 @@ re-start Emacs." ("svenska" ; Swedish mode "[A-Za-z\345\344\366\351\340\374\350\346\370\347\305\304\326\311\300\334\310\306\330\307]" "[^A-Za-z\345\344\366\351\340\374\350\346\370\347\305\304\326\311\300\334\310\306\330\307]" - "[']" nil ("-C") "~list" iso-8859-1)) + "[']" nil ("-C") "~list" iso-8859-1) + ("hebrew" "[\340\341\342\343\344\345\346\347\350\351\353\352\354\356\355\360\357\361\362\364\363\367\366\365\370\371\372]" "[^\340\341\342\343\344\345\346\347\350\351\353\352\354\356\355\360\357\361\362\364\363\367\366\365\370\371\372]" "" nil ("-B") nil cp1255)) "Base value for `ispell-dictionary-alist'.") (defvar ispell-dictionary-alist nil From 0c2014a3c2d53030df49e9c0a51d217dcaeccc4e Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 9 Apr 2012 00:11:39 -0700 Subject: [PATCH 09/43] * lisp/calendar/holidays.el (calendar-check-holidays): Doc fix. --- lisp/ChangeLog | 4 ++++ lisp/calendar/holidays.el | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1b25983104c..5934517a6d2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-04-09 Glenn Morris + + * calendar/holidays.el (calendar-check-holidays): Doc fix. + 2012-04-08 Eli Zaretskii * textmodes/ispell.el (ispell-dictionary-base-alist): Add data for diff --git a/lisp/calendar/holidays.el b/lisp/calendar/holidays.el index 37f511f7990..9edd353b889 100644 --- a/lisp/calendar/holidays.el +++ b/lisp/calendar/holidays.el @@ -634,7 +634,7 @@ The optional LABEL is used to label the buffer created." "Check the list of holidays for any that occur on DATE. DATE is a list (month day year). This function considers the holidays from the list `calendar-holidays', and returns a list of -strings describing those holidays that apply on DATE." +strings describing those holidays that apply on DATE, or nil if none do." (let ((displayed-month (calendar-extract-month date)) (displayed-year (calendar-extract-year date)) holiday-list) From aff67c8241806055f8363f924874ab69fe70ed31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Mon, 9 Apr 2012 12:01:04 +0200 Subject: [PATCH 10/43] * nsterm.m (constrainFrameRect): Always constrain when there is only one screen. Fixes: debbugs:10962 --- src/ChangeLog | 5 +++++ src/nsterm.m | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index af65d38a33b..ef84324c9d9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-04-09 Jan Djärv + + * nsterm.m (constrainFrameRect): Always constrain when there is only + one screen (Bug#10962). + 2012-04-06 Eli Zaretskii * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR): diff --git a/src/nsterm.m b/src/nsterm.m index a45792fd645..7cbaf991311 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -6038,11 +6038,15 @@ @implementation EmacsWindow restrict the height to just one monitor. So we override this. */ - (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen { - /* When making the frame visible for the first time, we want to - constrain. Other times not. */ + /* When making the frame visible for the first time or if there is just + one screen, we want to constrain. Other times not. */ + NSUInteger nr_screens = [[NSScreen screens] count]; struct frame *f = ((EmacsView *)[self delegate])->emacsframe; NSTRACE (constrainFrameRect); + if (nr_screens == 1) + return [super constrainFrameRect:frameRect toScreen:screen]; + if (f->output_data.ns->dont_constrain || ns_menu_bar_should_be_hidden ()) return frameRect; From e53357c466196161fa36dc35cc215b050b7f88a8 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 9 Apr 2012 15:28:45 +0300 Subject: [PATCH 11/43] Fix bug #11199 with killing a line at EOB that was bidi-reordered. src/xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row "unchanged" if its end.pos is beyond ZV. --- src/ChangeLog | 5 +++++ src/xdisp.c | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index ef84324c9d9..441a4c00be8 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-04-09 Eli Zaretskii + + * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row + "unchanged" if its end.pos is beyond ZV. (Bug#11199) + 2012-04-09 Jan Djärv * nsterm.m (constrainFrameRect): Always constrain when there is only diff --git a/src/xdisp.c b/src/xdisp.c index dcd14a1792a..07aad31abf1 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -16602,7 +16602,15 @@ find_last_unchanged_at_beg_row (struct window *w) continued. */ && !(MATRIX_ROW_END_CHARPOS (row) == first_changed_pos && (row->continued_p - || row->exact_window_width_line_p))) + || row->exact_window_width_line_p)) + /* If ROW->end is beyond ZV, then ROW->end is outdated and + needs to be recomputed, so don't consider this row as + unchanged. This happens when the last line was + bidi-reordered and was killed immediately before this + redisplay cycle. In that case, ROW->end stores the + buffer position of the first visual-order character of + the next row, which is now beyond ZV. */ + && CHARPOS (row->end.pos) <= ZV) row_found = row; /* Stop if last visible row. */ From 4c6fe6c0094749675222435858ccf655f04b2bd4 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 9 Apr 2012 15:46:34 +0300 Subject: [PATCH 12/43] Fix wording of comment in the last commit. --- src/xdisp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xdisp.c b/src/xdisp.c index 07aad31abf1..61b0b9df5e1 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -16609,7 +16609,7 @@ find_last_unchanged_at_beg_row (struct window *w) bidi-reordered and was killed immediately before this redisplay cycle. In that case, ROW->end stores the buffer position of the first visual-order character of - the next row, which is now beyond ZV. */ + the killed text, which is now beyond ZV. */ && CHARPOS (row->end.pos) <= ZV) row_found = row; From 9f847f41724b8c2ece83fa24b039f6f298f14e6f Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 9 Apr 2012 19:56:35 +0300 Subject: [PATCH 13/43] Fix bug #11208 with inaccurate doc string of shell-command-on-region. lisp/simple.el (shell-command-on-region): Doc fix. --- lisp/ChangeLog | 4 ++++ lisp/simple.el | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5934517a6d2..e3a7ba29e4a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-04-09 Eli Zaretskii + + * simple.el (shell-command-on-region): Doc fix. (Bug#11208) + 2012-04-09 Glenn Morris * calendar/holidays.el (calendar-check-holidays): Doc fix. diff --git a/lisp/simple.el b/lisp/simple.el index 8b04534455d..c345734c37b 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -2464,9 +2464,9 @@ COMMAND. To specify a coding system for converting non-ASCII characters in the input and output to the shell command, use \\[universal-coding-system-argument] before this command. By default, the input (from the current buffer) -is encoded in the same coding system that will be used to save the file, -`buffer-file-coding-system'. If the output is going to replace the region, -then it is decoded from that same coding system. +is encoded using coding-system specified by `process-coding-system-alist', +falling back to `default-process-coding-system' if no match for COMMAND +is found in `process-coding-system-alist'. The noninteractive arguments are START, END, COMMAND, OUTPUT-BUFFER, REPLACE, ERROR-BUFFER, and DISPLAY-ERROR-BUFFER. From 3f1b5bf8616c264c29c2a0259e5213062df4a049 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 9 Apr 2012 20:28:36 +0300 Subject: [PATCH 14/43] Fix bug #11209 with case conversion of u+0178. lisp/international/characters.el: Add set-case-syntax-pair call for LATIN CAPITAL LETTER Y WITH DIAERESIS RET and its lower-case counterpart. --- lisp/ChangeLog | 4 ++++ lisp/international/characters.el | 1 + 2 files changed, 5 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e3a7ba29e4a..a0a64226d82 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,9 @@ 2012-04-09 Eli Zaretskii + * international/characters.el: Add set-case-syntax-pair call for + LATIN CAPITAL LETTER Y WITH DIAERESIS RET and its lower-case + counterpart. (Bug#11209) + * simple.el (shell-command-on-region): Doc fix. (Bug#11208) 2012-04-09 Glenn Morris diff --git a/lisp/international/characters.el b/lisp/international/characters.el index ba8b8955fba..ff6ac7b108a 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -575,6 +575,7 @@ with L, LRE, or LRO Unicode bidi character type.") (set-case-syntax-pair from (1+ from) tbl) (setq from (+ from 2)))))) + (set-case-syntax-pair #x178 #x0ff tbl) (set-case-syntax-pair #x189 #x256 tbl) (set-case-syntax-pair #x18A #x257 tbl) From 20331c1c4096aa27bc3aeb91dd9bd0ea6f24d1ae Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 9 Apr 2012 23:35:54 -0700 Subject: [PATCH 15/43] entering.texi tweak * doc/emacs/entering.texi (Entering Emacs): Do not mention initial-buffer-choice = t. --- doc/emacs/ChangeLog | 5 +++++ doc/emacs/entering.texi | 10 +++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 848248963be..4c96fff8e2d 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,8 @@ +2012-04-10 Glenn Morris + + * entering.texi (Entering Emacs): + Do not mention initial-buffer-choice = t. + 2012-04-08 Glenn Morris * misc.texi (Gnus Startup): Use @env for environment variables. diff --git a/doc/emacs/entering.texi b/doc/emacs/entering.texi index ba7f3132b6b..d9f388a4783 100644 --- a/doc/emacs/entering.texi +++ b/doc/emacs/entering.texi @@ -77,9 +77,13 @@ information about @file{site-start.el}.} by setting the variable @code{initial-buffer-choice} to a non-@code{nil} value. (In that case, even if you specify one or more files on the command line, Emacs opens but does not display them.) -The value of @code{initial-buffer-choice} can be either the name of -the desired file or directory, or @code{t}, which means to display the -@samp{*scratch*} buffer. +The value of @code{initial-buffer-choice} should be the name of +the desired file or directory. +@ignore +@c I do not think this should be mentioned. AFAICS it is just a dodge +@c around inhibit-startup-screen not being settable on a site-wide basis. +or @code{t}, which means to display the @samp{*scratch*} buffer. +@end ignore @node Exiting, Basic, Entering Emacs, Top @section Exiting Emacs From 1c64e6ed6dd93b012659bc025e0d9329d92e9089 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 9 Apr 2012 23:54:43 -0700 Subject: [PATCH 16/43] In doc/emacs, use @file for buffers, per the Texinfo manual. It renders the same as @samp, so there is no visible change in most cases. --- doc/emacs/ChangeLog | 7 ++++ doc/emacs/abbrevs.texi | 4 +-- doc/emacs/arevert-xtra.texi | 4 +-- doc/emacs/buffers.texi | 28 ++++++++-------- doc/emacs/building.texi | 66 ++++++++++++++++++------------------- doc/emacs/cmdargs.texi | 2 +- doc/emacs/custom.texi | 20 +++++------ doc/emacs/entering.texi | 4 +-- doc/emacs/files.texi | 4 +-- doc/emacs/frames.texi | 2 +- doc/emacs/glossary.texi | 2 +- doc/emacs/help.texi | 6 ++-- doc/emacs/macos.texi | 2 +- doc/emacs/maintaining.texi | 32 +++++++++--------- doc/emacs/mini.texi | 2 +- doc/emacs/misc.texi | 22 ++++++------- doc/emacs/package.texi | 2 +- doc/emacs/programs.texi | 6 ++-- doc/emacs/screen.texi | 6 ++-- doc/emacs/search.texi | 4 +-- doc/emacs/sending.texi | 4 +-- doc/emacs/text.texi | 4 +-- doc/emacs/trouble.texi | 10 +++--- 23 files changed, 125 insertions(+), 118 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 4c96fff8e2d..f81e2157e51 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,5 +1,12 @@ 2012-04-10 Glenn Morris + * abbrevs.texi, arevert-xtra.texi, buffers.texi, building.texi: + * cmdargs.texi, custom.texi, entering.texi, files.texi, frames.texi: + * glossary.texi, help.texi, macos.texi, maintaining.texi, mini.texi: + * misc.texi, package.texi, programs.texi, screen.texi, search.texi: + * sending.texi, text.texi, trouble.texi: + Use @file for buffers, per the Texinfo manual. + * entering.texi (Entering Emacs): Do not mention initial-buffer-choice = t. diff --git a/doc/emacs/abbrevs.texi b/doc/emacs/abbrevs.texi index f3b272c359d..a8a34e62c1f 100644 --- a/doc/emacs/abbrevs.texi +++ b/doc/emacs/abbrevs.texi @@ -261,12 +261,12 @@ expands to itself, and save it to your abbrev file. @kbd{M-x edit-abbrevs} allows you to add, change or kill abbrev definitions by editing a list of them in an Emacs buffer. The list has the same format described above. The buffer of abbrevs is called -@samp{*Abbrevs*}, and is in Edit-Abbrevs mode. Type @kbd{C-c C-c} in +@file{*Abbrevs*}, and is in Edit-Abbrevs mode. Type @kbd{C-c C-c} in this buffer to install the abbrev definitions as specified in the buffer---and delete any abbrev definitions not listed. The command @code{edit-abbrevs} is actually the same as -@code{list-abbrevs} except that it selects the buffer @samp{*Abbrevs*} +@code{list-abbrevs} except that it selects the buffer @file{*Abbrevs*} whereas @code{list-abbrevs} merely displays it in another window. @node Saving Abbrevs diff --git a/doc/emacs/arevert-xtra.texi b/doc/emacs/arevert-xtra.texi index 4032c0b9882..55d7646542d 100644 --- a/doc/emacs/arevert-xtra.texi +++ b/doc/emacs/arevert-xtra.texi @@ -93,8 +93,8 @@ deleting or changing marks or flags will mark it modified again. Remote Dired buffers are not auto-reverted (because it may be slow). Neither are Dired buffers for which you used shell wildcards or file -arguments to list only some of the files. @samp{*Find*} and -@samp{*Locate*} buffers do not auto-revert either. +arguments to list only some of the files. @file{*Find*} and +@file{*Locate*} buffers do not auto-revert either. @c FIXME? This should be in the elisp manual? @node Supporting additional buffers diff --git a/doc/emacs/buffers.texi b/doc/emacs/buffers.texi index d0ec1103580..d2783bcb0ba 100644 --- a/doc/emacs/buffers.texi +++ b/doc/emacs/buffers.texi @@ -11,7 +11,7 @@ the file's text. Each time you invoke Dired, a buffer is used to hold the directory listing. If you send a message with @kbd{C-x m}, a buffer is used to hold the text of the message. When you ask for a -command's documentation, that appears in a buffer named @samp{*Help*}. +command's documentation, that appears in a buffer named @file{*Help*}. Each buffer has a unique name, which can be of any length. When a buffer is displayed in a window, its name is shown in the mode line @@ -19,7 +19,7 @@ buffer is displayed in a window, its name is shown in the mode line matters in buffer names. Most buffers are made by visiting files, and their names are derived from the files' names; however, you can also create an empty buffer with any name you want. A newly started Emacs -has several buffers, including one named @samp{*scratch*}, which can +has several buffers, including one named @file{*scratch*}, which can be used for evaluating Lisp expressions and is not associated with any file (@pxref{Lisp Interaction}). @@ -198,7 +198,7 @@ CRM Buffer Size Mode File @end smallexample @noindent -The buffer @samp{*Help*} was made by a help request (@pxref{Help}); it +The buffer @file{*Help*} was made by a help request (@pxref{Help}); it is not visiting any file. The buffer @code{src} was made by Dired on the directory @file{~/cvs/emacs/src/}. You can list only buffers that are visiting files by giving the command a prefix argument, as in @@ -248,9 +248,9 @@ happens and no renaming is done. @kbd{M-x rename-uniquely} renames the current buffer to a similar name with a numeric suffix added to make it both different and unique. This command does not need an argument. It is useful for creating -multiple shell buffers: if you rename the @samp{*shell*} buffer, then +multiple shell buffers: if you rename the @file{*shell*} buffer, then do @kbd{M-x shell} again, it makes a new shell buffer named -@samp{*shell*}; meanwhile, the old shell buffer continues to exist +@file{*shell*}; meanwhile, the old shell buffer continues to exist under its new name. This method is also good for mail buffers, compilation buffers, and most Emacs features that create special buffers with particular names. (With some of these features, such as @@ -354,7 +354,7 @@ operations on buffers, through an interface similar to Dired @findex buffer-menu @findex buffer-menu-other-window To use the buffer menu, type @kbd{C-x C-b} and switch to the window -displaying the @samp{*Buffer List*} buffer. You can also type +displaying the @file{*Buffer List*} buffer. You can also type @kbd{M-x buffer-menu} to open the buffer menu in the selected window. Alternatively, the command @kbd{M-x buffer-menu-other-window} opens the buffer menu in another window, and selects that window. @@ -409,11 +409,11 @@ Quit the buffer menu---immediately display the most recent formerly visible buffer in its place. @item @key{RET} @itemx f -Immediately select this line's buffer in place of the @samp{*Buffer +Immediately select this line's buffer in place of the @file{*Buffer List*} buffer. @item o Immediately select this line's buffer in another window as if by -@kbd{C-x 4 b}, leaving @samp{*Buffer List*} visible. +@kbd{C-x 4 b}, leaving @file{*Buffer List*} visible. @item C-o Immediately display this line's buffer in another window, but don't select the window. @@ -422,7 +422,7 @@ Immediately select this line's buffer in a full-screen window. @item 2 Immediately set up two windows, with this line's buffer selected in one, and the previously current buffer (aside from the buffer -@samp{*Buffer List*}) displayed in the other. +@file{*Buffer List*}) displayed in the other. @item b Bury the buffer listed on this line. @item m @@ -448,19 +448,19 @@ the inclusion of such buffers in the buffer list. suitable buffer, and turn on Buffer Menu mode in it. Everything else described above is implemented by the special commands provided in Buffer Menu mode. One consequence of this is that you can switch from -the @samp{*Buffer List*} buffer to another Emacs buffer, and edit -there. You can reselect the @samp{*Buffer List*} buffer later, to +the @file{*Buffer List*} buffer to another Emacs buffer, and edit +there. You can reselect the @file{*Buffer List*} buffer later, to perform the operations already requested, or you can kill it, or pay no further attention to it. - Normally, the buffer @samp{*Buffer List*} is not updated + Normally, the buffer @file{*Buffer List*} is not updated automatically when buffers are created and killed; its contents are just text. If you have created, deleted or renamed buffers, the way -to update @samp{*Buffer List*} to show what you have done is to type +to update @file{*Buffer List*} to show what you have done is to type @kbd{g} (@code{revert-buffer}). You can make this happen regularly every @code{auto-revert-interval} seconds if you enable Auto Revert mode in this buffer, as long as it is not marked modified. Global -Auto Revert mode applies to the @samp{*Buffer List*} buffer only if +Auto Revert mode applies to the @file{*Buffer List*} buffer only if @code{global-auto-revert-non-file-buffers} is non-@code{nil}. @iftex @inforef{Autorevert,, emacs-xtra}, for details. diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi index 2f977c7d923..61ddc283e31 100644 --- a/doc/emacs/building.texi +++ b/doc/emacs/building.texi @@ -44,7 +44,7 @@ messages and show you where the errors occurred. @table @kbd @item M-x compile Run a compiler asynchronously under Emacs, with error messages going to -the @samp{*compilation*} buffer. +the @file{*compilation*} buffer. @item M-x recompile Invoke a compiler with the same command as in the last invocation of @kbd{M-x compile}. @@ -57,7 +57,7 @@ Kill the running compilation subprocess. compile}. This reads a shell command line using the minibuffer, and then executes the command by running a shell as a subprocess (or @dfn{inferior process}) of Emacs. The output is inserted in a buffer -named @samp{*compilation*}. The current buffer's default directory is +named @file{*compilation*}. The current buffer's default directory is used as the working directory for the execution of the command; normally, therefore, compilation takes place in this directory. @@ -72,19 +72,19 @@ specified is automatically stored in the variable type @kbd{M-x compile}. A file can also specify a file-local value for @code{compile-command} (@pxref{File Variables}). - Starting a compilation displays the @samp{*compilation*} buffer in + Starting a compilation displays the @file{*compilation*} buffer in another window but does not select it. While the compilation is running, the word @samp{run} is shown in the major mode indicator for -the @samp{*compilation*} buffer, and the word @samp{Compiling} appears -in all mode lines. You do not have to keep the @samp{*compilation*} +the @file{*compilation*} buffer, and the word @samp{Compiling} appears +in all mode lines. You do not have to keep the @file{*compilation*} buffer visible while compilation is running; it continues in any case. When the compilation ends, for whatever reason, the mode line of the -@samp{*compilation*} buffer changes to say @samp{exit} (followed by +@file{*compilation*} buffer changes to say @samp{exit} (followed by the exit code: @samp{[0]} for a normal exit), or @samp{signal} (if a signal terminated the process). If you want to watch the compilation transcript as it appears, -switch to the @samp{*compilation*} buffer and move point to the end of +switch to the @file{*compilation*} buffer and move point to the end of the buffer. When point is at the end, new compilation output is inserted above point, which remains at the end. Otherwise, point remains fixed while compilation output is added at the end of the @@ -93,7 +93,7 @@ buffer. @cindex compilation buffer, keeping point at end @vindex compilation-scroll-output If you change the variable @code{compilation-scroll-output} to a -non-@code{nil} value, the @samp{*compilation*} buffer scrolls +non-@code{nil} value, the @file{*compilation*} buffer scrolls automatically to follow the output. If the value is @code{first-error}, scrolling stops when the first error appears, leaving point at that error. For any other non-@code{nil} value, @@ -103,22 +103,22 @@ scrolling continues until there is no more output. To rerun the last compilation with the same command, type @kbd{M-x recompile}. This reuses the compilation command from the last invocation of @kbd{M-x compile}. It also reuses the -@samp{*compilation*} buffer and starts the compilation in its default +@file{*compilation*} buffer and starts the compilation in its default directory, which is the directory in which the previous compilation was started. @findex kill-compilation Starting a new compilation also kills any compilation already -running in @samp{*compilation*}, as the buffer can only handle one +running in @file{*compilation*}, as the buffer can only handle one compilation at any time. However, @kbd{M-x compile} asks for confirmation before actually killing a compilation that is running. You can also kill the compilation process with @kbd{M-x kill-compilation}. To run two compilations at once, start the first one, then rename -the @samp{*compilation*} buffer (perhaps using @code{rename-uniquely}; +the @file{*compilation*} buffer (perhaps using @code{rename-uniquely}; @pxref{Misc Buffer}), then switch buffers and start the other -compilation. This will create a new @samp{*compilation*} buffer. +compilation. This will create a new @file{*compilation*} buffer. @vindex compilation-environment You can control the environment passed to the compilation command @@ -133,7 +133,7 @@ variable settings override the usual ones. @cindex Compilation mode @cindex mode, Compilation @cindex locus - The @samp{*compilation*} buffer uses a major mode called Compilation + The @file{*compilation*} buffer uses a major mode called Compilation mode. Compilation mode turns each error message in the buffer into a hyperlink; you can move point to it and type @key{RET}, or click on it with the mouse (@pxref{Mouse References}), to visit the @dfn{locus} of @@ -145,10 +145,10 @@ position in a file where that error occurred. If you change the variable @code{compilation-auto-jump-to-first-error} to a non-@code{nil} value, Emacs automatically visits the locus of the first error message that -appears in the @samp{*compilation*} buffer. +appears in the @file{*compilation*} buffer. Compilation mode provides the following additional commands. These -commands can also be used in @samp{*grep*} buffers, where the +commands can also be used in @file{*grep*} buffers, where the hyperlinks are search matches rather than error messages (@pxref{Grep Searching}). @@ -190,7 +190,7 @@ mode buffer. The first time you invoke it after a compilation, it visits the locus of the first error message. Each subsequent @w{@kbd{C-x `}} visits the next error, in a similar fashion. If you visit a specific error with @key{RET} or a mouse click in the -@samp{*compilation*} buffer, subsequent @w{@kbd{C-x `}} commands +@file{*compilation*} buffer, subsequent @w{@kbd{C-x `}} commands advance from there. When @w{@kbd{C-x `}} finds no more error messages to visit, it signals an error. @w{@kbd{C-u C-x `}} starts again from the beginning of the compilation buffer, and visits the first locus. @@ -199,8 +199,8 @@ the beginning of the compilation buffer, and visits the first locus. through errors in the opposite direction. The @code{next-error} and @code{previous-error} commands don't just -act on the errors or matches listed in @samp{*compilation*} and -@samp{*grep*} buffers; they also know how to iterate through error or +act on the errors or matches listed in @file{*compilation*} and +@file{*grep*} buffers; they also know how to iterate through error or match lists produced by other commands, such as @kbd{M-x occur} (@pxref{Other Repeating Search}). If you are already in a buffer containing error messages or matches, those are the ones that are @@ -224,7 +224,7 @@ highlights the relevant source line. The duration of this highlight is determined by the variable @code{next-error-highlight}. @vindex compilation-context-lines - If the @samp{*compilation*} buffer is shown in a window with a left + If the @file{*compilation*} buffer is shown in a window with a left fringe (@pxref{Fringes}), the locus-visiting commands put an arrow in the fringe, pointing to the current error message. If the window has no left fringe, such as on a text-only terminal, these commands scroll @@ -276,7 +276,7 @@ Names}). command, but specifies the option for a noninteractive shell. This means, in particular, that the shell should start with no prompt. If you find your usual shell prompt making an unsightly appearance in the -@samp{*compilation*} buffer, it means you have made a mistake in your +@file{*compilation*} buffer, it means you have made a mistake in your shell's init file by setting the prompt unconditionally. (This init file may be named @file{.bashrc}, @file{.profile}, @file{.cshrc}, @file{.shrc}, etc., depending on what shell you use.) The shell init @@ -339,14 +339,14 @@ mode (@pxref{Compilation Mode}). @item M-x grep @itemx M-x lgrep Run @command{grep} asynchronously under Emacs, listing matching lines in -the buffer named @samp{*grep*}. +the buffer named @file{*grep*}. @item M-x grep-find @itemx M-x find-grep @itemx M-x rgrep Run @command{grep} via @code{find}, and collect output in the -@samp{*grep*} buffer. +@file{*grep*} buffer. @item M-x zrgrep -Run @code{zgrep} and collect output in the @samp{*grep*} buffer. +Run @code{zgrep} and collect output in the @file{*grep*} buffer. @item M-x kill-grep Kill the running @command{grep} subprocess. @end table @@ -369,7 +369,7 @@ can chain @command{grep} commands, like this: grep -nH -e foo *.el | grep bar | grep toto @end example - The output from @command{grep} goes in the @samp{*grep*} buffer. You + The output from @command{grep} goes in the @file{*grep*} buffer. You can find the corresponding lines in the original files using @w{@kbd{C-x `}}, @key{RET}, and so forth, just like compilation errors. @@ -1506,14 +1506,14 @@ commands are used; its default is @code{t}. @section Lisp Interaction Buffers @findex lisp-interaction-mode - When Emacs starts up, it contains a buffer named @samp{*scratch*}, + When Emacs starts up, it contains a buffer named @file{*scratch*}, which is provided for evaluating Emacs Lisp expressions interactively. Its major mode is Lisp Interaction mode. You can also enable Lisp Interaction mode by typing @kbd{M-x lisp-interaction-mode}. @findex eval-print-last-sexp @kindex C-j @r{(Lisp Interaction mode)} - In the @samp{*scratch*} buffer, and other Lisp Interaction mode + In the @file{*scratch*} buffer, and other Lisp Interaction mode buffers, @kbd{C-j} (@code{eval-print-last-sexp}) evaluates the Lisp expression before point, and inserts the value at point. Thus, as you type expressions into the buffer followed by @kbd{C-j} after each @@ -1522,7 +1522,7 @@ expressions and their values. All other commands in Lisp Interaction mode are the same as in Emacs Lisp mode. @vindex initial-scratch-message - At startup, the @samp{*scratch*} buffer contains a short message, in + At startup, the @file{*scratch*} buffer contains a short message, in the form of a Lisp comment, that explains what it is for. This message is controlled by the variable @code{initial-scratch-message}, which should be either a string, or @code{nil} (which means to @@ -1533,7 +1533,7 @@ suppress the message). interactively is to use Inferior Emacs Lisp mode, which provides an interface rather like Shell mode (@pxref{Shell Mode}) for evaluating Emacs Lisp expressions. Type @kbd{M-x ielm} to create an -@samp{*ielm*} buffer which uses this mode. For more information, see +@file{*ielm*} buffer which uses this mode. For more information, see that command's documentation. @node External Lisp @@ -1555,13 +1555,13 @@ whose names end in @file{.l}, @file{.lsp}, or @file{.lisp}. evaluated. To begin an external Lisp session, type @kbd{M-x run-lisp}. This runs the program named @command{lisp}, and sets it up so that both input and output go through an Emacs buffer named -@samp{*inferior-lisp*}. To change the name of the Lisp program run by +@file{*inferior-lisp*}. To change the name of the Lisp program run by @kbd{M-x run-lisp}, change the variable @code{inferior-lisp-program}. - The major mode for the @samp{*lisp*} buffer is Inferior Lisp mode, + The major mode for the @file{*lisp*} buffer is Inferior Lisp mode, which combines the characteristics of Lisp mode and Shell mode (@pxref{Shell Mode}). To send input to the Lisp session, go to the -end of the @samp{*lisp*} buffer and type the input, followed by +end of the @file{*lisp*} buffer and type the input, followed by @key{RET}. Terminal output from the Lisp session is automatically inserted in the buffer. @@ -1572,7 +1572,7 @@ inserted in the buffer. buffer to a Lisp session that you had started with @kbd{M-x run-lisp}. The expression sent is the top-level Lisp expression at or following point. The resulting value goes as usual into the -@samp{*inferior-lisp*} buffer. Note that the effect of @kbd{C-M-x} in +@file{*inferior-lisp*} buffer. Note that the effect of @kbd{C-M-x} in Lisp mode is thus very similar to its effect in Emacs Lisp mode (@pxref{Lisp Eval}), except that the expression is sent to a different Lisp environment instead of being evaluated in Emacs. @@ -1587,4 +1587,4 @@ to a Scheme subprocess, are very similar. Scheme source files are edited in Scheme mode, which can be explicitly enabled with @kbd{M-x scheme-mode}. You can initiate a Scheme session by typing @kbd{M-x run-scheme} (the buffer for interacting with Scheme is named -@samp{*scheme*}), and send expressions to it by typing @kbd{C-M-x}. +@file{*scheme*}), and send expressions to it by typing @kbd{C-M-x}. diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi index 00730cc6510..56af8d426f6 100644 --- a/doc/emacs/cmdargs.texi +++ b/doc/emacs/cmdargs.texi @@ -157,7 +157,7 @@ Evaluate Lisp expression @var{expression}. @item --insert=@var{file} @opindex --insert @cindex insert file contents, command-line argument -Insert the contents of @var{file} into the @samp{*scratch*} buffer +Insert the contents of @var{file} into the @file{*scratch*} buffer (@pxref{Lisp Interaction}). This is like what @kbd{M-x insert-file} does (@pxref{Misc File Ops}). diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index a00423a5826..a17eb54e337 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi @@ -561,7 +561,7 @@ format of a theme file and how to make one. @vindex custom-theme-directory @cindex color scheme Type @kbd{M-x customize-themes} to switch to a buffer named -@samp{*Custom Themes*}, which lists the Custom themes that Emacs knows +@file{*Custom Themes*}, which lists the Custom themes that Emacs knows about. By default, Emacs looks for theme files in two locations: the directory specified by the variable @code{custom-theme-directory} (which defaults to @file{~/.emacs.d/}), and a directory named @@ -580,11 +580,11 @@ add the directory name to the list variable @code{custom-theme-directory} has the special meaning of the value of the variable @code{custom-theme-directory}, while @code{t} stands for the built-in theme directory @file{etc/themes}. The themes listed in -the @samp{*Custom Themes*} buffer are those found in the directories +the @file{*Custom Themes*} buffer are those found in the directories specified by @code{custom-theme-load-path}. @kindex C-x C-s @r{(Custom Themes buffer)} - In the @samp{*Custom Themes*} buffer, you can activate the checkbox + In the @file{*Custom Themes*} buffer, you can activate the checkbox next to a Custom theme to enable or disable the theme for the current Emacs session. When a Custom theme is enabled, all of its settings (variables and faces) take effect in the Emacs session. To apply the @@ -608,7 +608,7 @@ always considered safe. Setting or saving Custom themes actually works by customizing the variable @code{custom-enabled-themes}. The value of this variable is a list of Custom theme names (as Lisp symbols, e.g.@: @code{tango}). -Instead of using the @samp{*Custom Themes*} buffer to set +Instead of using the @file{*Custom Themes*} buffer to set @code{custom-enabled-themes}, you can customize the variable using the usual customization interface, e.g.@: with @kbd{M-x customize-option}. Note that Custom themes are not allowed to set @@ -635,7 +635,7 @@ type @kbd{M-x disable-theme}. @findex describe-theme To see a description of a Custom theme, type @kbd{?} on its line in -the @samp{*Custom Themes*} buffer; or type @kbd{M-x describe-theme} +the @file{*Custom Themes*} buffer; or type @kbd{M-x describe-theme} anywhere in Emacs and enter the theme name in the minibuffer. @node Creating Custom Themes @@ -645,12 +645,12 @@ anywhere in Emacs and enter the theme name in the minibuffer. @findex customize-create-theme You can define a Custom theme using an interface similar to the customization buffer, by typing @kbd{M-x customize-create-theme}. -This switches to a buffer named @samp{*Custom Theme*}. It also offers +This switches to a buffer named @file{*Custom Theme*}. It also offers to insert some common Emacs faces into the theme (a convenience, since Custom themes are often used to customize faces). If you answer no, the theme will initially contain no settings. - Near the top of the @samp{*Custom Theme*} buffer are editable fields + Near the top of the @file{*Custom Theme*} buffer are editable fields where you can enter the theme's name and description. The name can be anything except @samp{user}. The description is the one that will be shown when you invoke @kbd{M-x describe-theme} for the theme. Its @@ -673,7 +673,7 @@ theme, uncheck the checkbox next to its name. @file{@var{name}-theme.el} where @var{name} is the theme name, in the directory named by @code{custom-theme-directory}. - From the @samp{*Custom Theme*} buffer, you can view and edit an + From the @file{*Custom Theme*} buffer, you can view and edit an existing Custom theme by activating the @samp{[Visit Theme]} button and specifying the theme name. You can also add the settings of another theme into the buffer, using the @samp{[Merge Theme]} button. @@ -683,7 +683,7 @@ the @samp{[Merge Theme]} button and specifying the special theme named A theme file is simply an Emacs Lisp source file, and loading the Custom theme works by loading the Lisp file. Therefore, you can edit -a theme file directly instead of using the @samp{*Custom Theme*} +a theme file directly instead of using the @file{*Custom Theme*} buffer. @c Add link to the relevant Emacs Lisp Reference manual node, once @c that is written. @@ -809,7 +809,7 @@ can set any variable with a Lisp expression like this: @noindent To execute such an expression, type @kbd{M-:} (@code{eval-expression}) and enter the expression in the minibuffer (@pxref{Lisp Eval}). -Alternatively, go to the @samp{*scratch*} buffer, type in the +Alternatively, go to the @file{*scratch*} buffer, type in the expression, and then type @kbd{C-j} (@pxref{Lisp Interaction}). Setting variables, like all means of customizing Emacs except where diff --git a/doc/emacs/entering.texi b/doc/emacs/entering.texi index d9f388a4783..3ec7f739e6c 100644 --- a/doc/emacs/entering.texi +++ b/doc/emacs/entering.texi @@ -63,7 +63,7 @@ certain Lisp files, where to put the initial frame, and so forth. If the variable @code{inhibit-startup-screen} is non-@code{nil}, Emacs does not display the startup screen. In that case, if one or more files were specified on the command line, Emacs simply displays -those files; otherwise, it displays a buffer named @samp{*scratch*}, +those files; otherwise, it displays a buffer named @file{*scratch*}, which can be used to evaluate Emacs Lisp expressions interactively. @xref{Lisp Interaction}. You can set the variable @code{inhibit-startup-screen} using the Customize facility @@ -82,7 +82,7 @@ the desired file or directory. @ignore @c I do not think this should be mentioned. AFAICS it is just a dodge @c around inhibit-startup-screen not being settable on a site-wide basis. -or @code{t}, which means to display the @samp{*scratch*} buffer. +or @code{t}, which means to display the @file{*scratch*} buffer. @end ignore @node Exiting, Basic, Entering Emacs, Top diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi index b0d4e130c67..d85e7756816 100644 --- a/doc/emacs/files.texi +++ b/doc/emacs/files.texi @@ -976,7 +976,7 @@ are not visiting files are auto-saved only if you request it explicitly; when they are auto-saved, the auto-save file name is made by appending @samp{#} to the front and rear of buffer name, then adding digits and letters at the end for uniqueness. For -example, the @samp{*mail*} buffer in which you compose messages to be +example, the @file{*mail*} buffer in which you compose messages to be sent might be auto-saved in a file named @file{#*mail*#704juu}. Auto-save file names are made this way unless you reprogram parts of Emacs to do something different (the functions @code{make-auto-save-file-name} and @@ -1245,7 +1245,7 @@ for more information about using the Trash. @vindex diff-switches The command @kbd{M-x diff} prompts for two file names, using the minibuffer, and displays the differences between the two files in a -buffer named @samp{*diff*}. This works by running the @command{diff} +buffer named @file{*diff*}. This works by running the @command{diff} program, using options taken from the variable @code{diff-switches}. The value of @code{diff-switches} should be a string; the default is @code{"-c"} to specify a context diff. @xref{Top,, Diff, diff, diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi index 4cfaffdadb8..8d6a39665da 100644 --- a/doc/emacs/frames.texi +++ b/doc/emacs/frames.texi @@ -257,7 +257,7 @@ highlighting. @key{RET}, or by clicking either @kbd{Mouse-1} or @kbd{Mouse-2} on the button. For example, in a Dired buffer, each file name is a button; activating it causes Emacs to visit that file (@pxref{Dired}). In a -@samp{*Compilation*} buffer, each error message is a button, and +@file{*Compilation*} buffer, each error message is a button, and activating it visits the source code for that error (@pxref{Compilation}). diff --git a/doc/emacs/glossary.texi b/doc/emacs/glossary.texi index f4ea4f30cd5..765a4b59053 100644 --- a/doc/emacs/glossary.texi +++ b/doc/emacs/glossary.texi @@ -421,7 +421,7 @@ tell it to. @xref{Bugs}. The echo area is the bottom line of the screen, used for echoing the arguments to commands, for asking questions, and showing brief messages (including error messages). The messages are stored in the buffer -@samp{*Messages*} so you can review them later. @xref{Echo Area}. +@file{*Messages*} so you can review them later. @xref{Echo Area}. @item Echoing Echoing is acknowledging the receipt of input events by displaying diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi index 84da0a9a681..eef38136583 100644 --- a/doc/emacs/help.texi +++ b/doc/emacs/help.texi @@ -102,7 +102,7 @@ to (@code{describe-key-briefly}). Here @kbd{c} stands for Display the commands and variables whose documentation matches @var{topics} (@code{apropos-documentation}). @item C-h e -Display the @code{*Messages*} buffer +Display the @file{*Messages*} buffer (@code{view-echo-area-messages}). @item C-h f @var{function} @key{RET} Display documentation on the Lisp function named @var{function} @@ -168,7 +168,7 @@ programming language you are editing (@code{info-lookup-symbol}). @item C-h . Display the help message for a special text area, if point is in one (@code{display-local-help}). (These include, for example, links in -@samp{*Help*} buffers.) +@file{*Help*} buffers.) @end table @node Key Help @@ -519,7 +519,7 @@ use @kbd{C-h c} to find out what they do. @findex view-echo-area-messages To review recent echo area messages, use @kbd{C-h e} (@code{view-echo-area-messages}). This displays the buffer -@code{*Messages*}, where those messages are kept. +@file{*Messages*}, where those messages are kept. @kindex C-h m @findex describe-mode diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi index 10293fe7747..695f8f9c6c3 100644 --- a/doc/emacs/macos.texi +++ b/doc/emacs/macos.texi @@ -142,7 +142,7 @@ Emacs open a file. A typical reason for this would be a user double-clicking a file in the Finder application. By default, Emacs responds to this event by opening a new frame and visiting the file in that frame (@code{ns-find-file}). As an exception, if the selected -buffer is the @samp{*scratch*} buffer, Emacs visits the file in the +buffer is the @file{*scratch*} buffer, Emacs visits the file in the selected frame. You can change how Emacs responds to a @code{ns-open-file} event by diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index e812c9112df..9d56b3bdc6e 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -477,7 +477,7 @@ If every work file in the VC fileset is unchanged, do nothing. @item If every work file in the VC fileset has been modified, commit the -changes. To do this, Emacs pops up a @samp{*vc-log*} buffer; type the +changes. To do this, Emacs pops up a @file{*vc-log*} buffer; type the desired log entry for the new revision, followed by @kbd{C-c C-c} to commit. @xref{Log Buffer}. @@ -530,7 +530,7 @@ so that you can begin to edit it. @item If each file is locked by you and contains changes, commit the -changes. To do this, Emacs pops up a @samp{*vc-log*} buffer; type the +changes. To do this, Emacs pops up a @file{*vc-log*} buffer; type the desired log entry for the new revision, followed by @kbd{C-c C-c} to commit (@pxref{Log Buffer}). @@ -588,7 +588,7 @@ they use the concept of ``checking out'' individual files. @cindex C-c C-c @r{(Log Edit mode)} @findex log-edit-done When you tell VC to commit a change, it pops up a buffer named -@samp{*vc-log*}. In this buffer, you should write a @dfn{log entry} +@file{*vc-log*}. In this buffer, you should write a @dfn{log entry} describing the changes you have made (@pxref{Why Version Control?}). After you are done, type @kbd{C-c C-c} (@code{log-edit-done}) to exit the buffer and commit the change, together with your log entry. @@ -596,12 +596,12 @@ the buffer and commit the change, together with your log entry. @cindex Log Edit mode @cindex mode, Log Edit @vindex vc-log-mode-hook - The major mode for the @samp{*vc-log*} buffer is Log Edit mode, a + The major mode for the @file{*vc-log*} buffer is Log Edit mode, a variant of Text mode (@pxref{Text Mode}). On entering Log Edit mode, Emacs runs the hooks @code{text-mode-hook} and @code{vc-log-mode-hook} (@pxref{Hooks}). - In the @samp{*vc-log*} buffer, you can write one or more @dfn{header + In the @file{*vc-log*} buffer, you can write one or more @dfn{header lines}, specifying additional information to be supplied to the version control system. Each header line must occupy a single line at the top of the buffer; the first line that is not a header line is @@ -626,7 +626,7 @@ support it, the header is treated as part of the log entry. @findex log-edit-show-files @kindex C-c C-d @r{(Log Edit mode)} @findex log-edit-show-diff - While in the @samp{*vc-log*} buffer, the ``current VC fileset'' is + While in the @file{*vc-log*} buffer, the ``current VC fileset'' is considered to be the fileset that will be committed if you type @w{@kbd{C-c C-c}}. To view a list of the files in the VC fileset, type @w{@kbd{C-c C-f}} (@code{log-edit-show-files}). To view a diff @@ -639,7 +639,7 @@ started editing (@pxref{Old Revisions}), type @kbd{C-c C-d} If the VC fileset includes one or more @file{ChangeLog} files (@pxref{Change Log}), type @kbd{C-c C-a} (@code{log-edit-insert-changelog}) to pull the relevant entries into -the @samp{*vc-log*} buffer. If the topmost item in each +the @file{*vc-log*} buffer. If the topmost item in each @file{ChangeLog} was made under your user name on the current date, this command searches that item for entries matching the file(s) to be committed, and inserts them. @@ -652,7 +652,7 @@ Edit buffer. To abort a commit, just @strong{don't} type @kbd{C-c C-c} in that buffer. You can switch buffers and do other editing. As long as you don't try to make another commit, the entry you were editing remains -in the @samp{*vc-log*} buffer, and you can go back to that buffer at +in the @file{*vc-log*} buffer, and you can go back to that buffer at any time to complete the commit. @kindex M-n @r{(Log Edit mode)} @@ -904,10 +904,10 @@ Display the changes that will be sent by the next push operation @kindex C-x v l @findex vc-print-log The command @kbd{C-x v l} (@code{vc-print-log}) displays a buffer -named @samp{*vc-change-log*}, showing the history of changes made to +named @file{*vc-change-log*}, showing the history of changes made to the current file, including who made the changes, the dates, and the log entry for each change (these are the same log entries you would -enter via the @samp{*vc-log*} buffer; @pxref{Log Buffer}). Point is +enter via the @file{*vc-log*} buffer; @pxref{Log Buffer}). Point is centered at the revision of the file currently being visited. With a prefix argument, the command prompts for the revision to center on, and the maximum number of revisions to display. @@ -919,7 +919,7 @@ file listed on the current line. @findex vc-print-root-log @findex log-view-toggle-entry-display @kbd{C-x v L} (@code{vc-print-root-log}) displays a -@samp{*vc-change-log*} buffer showing the history of the entire +@file{*vc-change-log*} buffer showing the history of the entire version-controlled directory tree (RCS, SCCS, and CVS do not support this feature). With a prefix argument, the command prompts for the maximum number of revisions to display. @@ -927,7 +927,7 @@ maximum number of revisions to display. The @kbd{C-x v L} history is shown in a compact form, usually showing only the first line of each log entry. However, you can type @key{RET} (@code{log-view-toggle-entry-display}) in the -@samp{*vc-change-log*} buffer to reveal the entire log entry for the +@file{*vc-change-log*} buffer to reveal the entire log entry for the revision at point. A second @key{RET} hides it again. On a decentralized version control system, the @kbd{C-x v I} @@ -942,7 +942,7 @@ specific repository. Similarly, @kbd{C-x v O} another repository, the next time you run the ``push'' command; with a prefix argument, it prompts for a specific destination repository. - In the @samp{*vc-change-log*} buffer, you can use the following keys + In the @file{*vc-change-log*} buffer, you can use the following keys to move between the logs of revisions and of files, and to examine and compare past revisions (@pxref{Old Revisions}): @@ -993,11 +993,11 @@ revision at point. @vindex vc-log-show-limit Because fetching many log entries can be slow, the -@samp{*vc-change-log*} buffer displays no more than 2000 revisions by +@file{*vc-change-log*} buffer displays no more than 2000 revisions by default. The variable @code{vc-log-show-limit} specifies this limit; if you set the value to zero, that removes the limit. You can also increase the number of revisions shown in an existing -@samp{*vc-change-log*} buffer by clicking on the @samp{Show 2X +@file{*vc-change-log*} buffer by clicking on the @samp{Show 2X entries} or @samp{Show unlimited entries} buttons at the end of the buffer. However, RCS, SCCS, and CVS do not support this feature. @@ -1045,7 +1045,7 @@ it is used to specify multi-file VC filesets for commands like To use the VC Directory buffer, type @kbd{C-x v d} (@code{vc-dir}). This reads a directory name using the minibuffer, and switches to a VC Directory buffer for that directory. By default, the buffer is named -@samp{*vc-dir*}. Its contents are described +@file{*vc-dir*}. Its contents are described @iftex below. @end iftex diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi index e20d5a347cd..e498516ae7f 100644 --- a/doc/emacs/mini.texi +++ b/doc/emacs/mini.texi @@ -197,7 +197,7 @@ set the variable @code{enable-recursive-minibuffers} to @code{t}. @findex minibuffer-inactive-mode When not active, the minibuffer is in @code{minibuffer-inactive-mode}, -and clicking @kbd{Mouse-1} there shows the @samp{*Messages*} buffer. +and clicking @kbd{Mouse-1} there shows the @file{*Messages*} buffer. If you use a dedicated frame for minibuffers, Emacs also recognizes certain keys there, for example @kbd{n} to make a new frame. diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index ca9c2760ce2..b291aff0ba4 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -507,7 +507,7 @@ minibuffer and executes it as a shell command, in a subshell made just for that command. Standard input for the command comes from the null device. If the shell command produces any output, the output appears either in the echo area (if it is short), or in an Emacs buffer named -@samp{*Shell Command Output*}, displayed in another window (if the +@file{*Shell Command Output*}, displayed in another window (if the output is long). For instance, one way to decompress a file named @file{foo.gz} is to @@ -554,7 +554,7 @@ old region and replaces it with the output from the shell command. see what keys are in the buffer. If the buffer contains a GnuPG key, type @kbd{C-x h M-| gpg @key{RET}} to feed the entire buffer contents to @command{gpg}. This will output the list of keys to the -@samp{*Shell Command Output*} buffer. +@file{*Shell Command Output*} buffer. @vindex shell-file-name The above commands use the shell specified by the variable @@ -577,7 +577,7 @@ inserted into a buffer of that name. @findex shell To run a subshell interactively, type @kbd{M-x shell}. This creates -(or reuses) a buffer named @samp{*shell*}, and runs a shell subprocess +(or reuses) a buffer named @file{*shell*}, and runs a shell subprocess with input coming from and output going to that buffer. That is to say, any terminal output from the subshell goes into the buffer, advancing point, and any terminal input for the subshell comes from @@ -600,8 +600,8 @@ easier to distinguish input lines from the shell output. To make multiple subshells, invoke @kbd{M-x shell} with a prefix argument (e.g. @kbd{C-u M-x shell}). Then the command will read a buffer name, and create (or reuse) a subshell in that buffer. You can -also rename the @samp{*shell*} buffer using @kbd{M-x rename-uniquely}, -then create a new @samp{*shell*} buffer using plain @kbd{M-x shell}. +also rename the @file{*shell*} buffer using @kbd{M-x rename-uniquely}, +then create a new @file{*shell*} buffer using plain @kbd{M-x shell}. Subshells in different buffers run independently and in parallel. @vindex explicit-shell-file-name @@ -1183,7 +1183,7 @@ underlying shell, of course. @findex term To run a subshell in a terminal emulator, use @kbd{M-x term}. This -creates (or reuses) a buffer named @samp{*terminal*}, and runs a +creates (or reuses) a buffer named @file{*terminal*}, and runs a subshell with input coming from your keyboard, and output going to that buffer. @@ -1212,7 +1212,7 @@ serial port. @xref{Serial Terminal}. The file name used to load the subshell is determined the same way as for Shell mode. To make multiple terminal emulators, rename the -buffer @samp{*terminal*} to something different using @kbd{M-x +buffer @file{*terminal*} to something different using @kbd{M-x rename-uniquely}, just as with Shell mode. Unlike Shell mode, Term mode does not track the current directory by @@ -1511,7 +1511,7 @@ systems, such as MS-Windows (@pxref{Windows Startup, emacsclient}), where it cannot create graphical frames when started from a text-only terminal, it creates a new text-only terminal frame (@pxref{Frames}). If you omit a filename argument while supplying the @samp{-c} option, -the new frame displays the @samp{*scratch*} buffer (@pxref{Buffers}). +the new frame displays the @file{*scratch*} buffer (@pxref{Buffers}). @item -F @var{alist} @itemx --frame-parameters=@var{alist} @@ -1600,7 +1600,7 @@ graphical display. On systems, such as MS-Windows, where this is impossible, Emacs will create a new frame, either GUI or text-only, on the same terminal where it was started (@pxref{Windows Startup, emacsclient}). If you omit a filename argument while supplying this -option, the new frame displays the @samp{*scratch*} buffer. +option, the new frame displays the @file{*scratch*} buffer. @xref{Buffers}. @end table @@ -1868,7 +1868,7 @@ init file (@pxref{Init File}), followed by @code{(pr-update-menus)}. This function replaces the usual printing commands in the menu bar with a @samp{Printing} submenu that contains various printing options. You can also type @kbd{M-x pr-interface RET}; this creates a -@samp{*Printing Interface*} buffer, similar to a customization buffer, +@file{*Printing Interface*} buffer, similar to a customization buffer, where you can set the printing options. After selecting what and how to print, you start the print job using the @samp{Print} button (click @kbd{mouse-2} on it, or move point over it and type @kbd{RET}). For @@ -2482,7 +2482,7 @@ encrypted in a simple monoalphabetic substitution cipher. @findex dissociated-press @kbd{M-x dissociated-press} scrambles the text in the current Emacs buffer, word by word or character by character, writing its output to -a buffer named @samp{*Dissociation*}. A positive argument tells it to +a buffer named @file{*Dissociation*}. A positive argument tells it to operate character by character, and specifies the number of overlap characters. A negative argument tells it to operate word by word, and specifies the number of overlap words. Dissociated Press produces diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi index 91b25cfa00e..4435590536f 100644 --- a/doc/emacs/package.texi +++ b/doc/emacs/package.texi @@ -14,7 +14,7 @@ Emacs includes a facility that lets you easily download and install separate Emacs Lisp program, sometimes including other components such as an Info manual. - @kbd{M-x list-packages} brings up a buffer named @samp{*Packages*} + @kbd{M-x list-packages} brings up a buffer named @file{*Packages*} with a list of all packages. You can install or uninstall packages via this buffer. @xref{Package Menu}. diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi index 8217400663f..5f7abcf3881 100644 --- a/doc/emacs/programs.texi +++ b/doc/emacs/programs.texi @@ -1130,7 +1130,7 @@ prompts for a topic, with completion (@pxref{Completion}), and runs the @command{man} program to format the corresponding man page. If the system permits, it runs @command{man} asynchronously, so that you can keep on editing while the page is being formatted. The result -goes in a buffer named @samp{*Man @var{topic}*}. These buffers use a +goes in a buffer named @file{*Man @var{topic}*}. These buffers use a special major mode, Man mode, that facilitates scrolling and jumping to other manual pages. For details, type @kbd{C-h m} while in a Man mode buffer. @@ -1165,7 +1165,7 @@ command. Unlike @kbd{M-x man}, it does not run any external programs to format and display the man pages; the formatting is done by Emacs, so it works on systems such as MS-Windows where the @command{man} program may be unavailable. It prompts for a man page, and displays -it in a buffer named @samp{*WoMan @var{section} @var{topic}}. +it in a buffer named @file{*WoMan @var{section} @var{topic}}. @kbd{M-x woman} computes the completion list for manpages the first time you invoke the command. With a numeric argument, it recomputes @@ -1705,7 +1705,7 @@ inserted on that line, and any @samp{\} there is deleted. @cindex preprocessor highlighting @findex cpp-highlight-buffer Highlight parts of the text according to its preprocessor conditionals. -This command displays another buffer named @samp{*CPP Edit*}, which +This command displays another buffer named @file{*CPP Edit*}, which serves as a graphic menu for selecting how to display particular kinds of conditionals and their contents. After changing various settings, click on @samp{[A]pply these settings} (or go to that buffer and type diff --git a/doc/emacs/screen.texi b/doc/emacs/screen.texi index fe3222e198f..fdc69a78cfc 100644 --- a/doc/emacs/screen.texi +++ b/doc/emacs/screen.texi @@ -131,15 +131,15 @@ Commands that take a long time often display messages ending in progress has been made, as a percentage), and add @samp{done} when they are finished. -@cindex @samp{*Messages*} buffer +@cindex @file{*Messages*} buffer @cindex saved echo area messages @cindex messages saved from echo area @vindex message-log-max Informative echo area messages are saved in a special buffer named -@samp{*Messages*}. (We have not explained buffers yet; see +@file{*Messages*}. (We have not explained buffers yet; see @ref{Buffers}, for more information about them.) If you miss a message that appeared briefly on the screen, you can switch to the -@samp{*Messages*} buffer to see it again. The @samp{*Messages*} +@file{*Messages*} buffer to see it again. The @file{*Messages*} buffer is limited to a certain number of lines, specified by the variable @code{message-log-max}. (We have not explained variables either; see @ref{Variables}, for more information about them.) Beyond diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi index 877e291ff36..38f00f03532 100644 --- a/doc/emacs/search.texi +++ b/doc/emacs/search.texi @@ -1308,7 +1308,7 @@ displayed before and after each matching line. @kindex RET @r{(Occur mode)} @kindex o @r{(Occur mode)} @kindex C-o @r{(Occur mode)} -In the @samp{*Occur*} buffer, you can click on each entry, or move +In the @file{*Occur*} buffer, you can click on each entry, or move point there and type @key{RET}, to visit the corresponding position in the buffer that was searched. @kbd{o} and @kbd{C-o} display the match in another window; @kbd{C-o} does not select it. Alternatively, you @@ -1317,7 +1317,7 @@ occurrences one by one (@pxref{Compilation Mode}). @cindex Occur Edit mode @cindex mode, Occur Edit -Typing @kbd{e} in the @samp{*Occur*} buffer switches to Occur Edit +Typing @kbd{e} in the @file{*Occur*} buffer switches to Occur Edit mode, in which edits made to the entries are also applied to the text in the originating buffer. Type @kbd{C-c C-c} to return to Occur mode. diff --git a/doc/emacs/sending.texi b/doc/emacs/sending.texi index 5e80eb10824..bf2b41cdbe0 100644 --- a/doc/emacs/sending.texi +++ b/doc/emacs/sending.texi @@ -12,7 +12,7 @@ @kindex C-x m @findex compose-mail To send an email message from Emacs, type @kbd{C-x m}. This -switches to a buffer named @samp{*unsent mail*}, where you can edit +switches to a buffer named @file{*unsent mail*}, where you can edit the text and headers of the message. When done, type @kbd{C-c C-s} or @kbd{C-c C-c} to send it. @@ -306,7 +306,7 @@ completion, and inserts its definition at point. @cindex Message mode @cindex mode, Message - The default major mode for the @samp{*mail*} buffer is called + The default major mode for the @file{*mail*} buffer is called Message mode. It behaves like Text mode in many ways, but provides several additional commands on the @kbd{C-c} prefix, which make editing a message more convenient. diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi index 5363da7d649..e56b00e2723 100644 --- a/doc/emacs/text.texi +++ b/doc/emacs/text.texi @@ -1548,7 +1548,7 @@ text that belongs inside. Afterward, use the command @kbd{C-c @}} point, and inserts two newlines to start a new paragraph. It outputs a message in the echo area if any mismatch is found. @kbd{M-x tex-validate-region} checks a region, paragraph by paragraph. The -errors are listed in an @samp{*Occur*} buffer; you can use the usual +errors are listed in an @file{*Occur*} buffer; you can use the usual Occur mode commands in that buffer, such as @kbd{C-c C-c}, to visit a particular mismatch (@pxref{Other Repeating Search}). @@ -1694,7 +1694,7 @@ name with @samp{*} in the command string. For example, @findex tex-recenter-output-buffer @kindex C-c C-l @r{(@TeX{} mode)} The terminal output from @TeX{}, including any error messages, -appears in a buffer called @samp{*tex-shell*}. If @TeX{} gets an +appears in a buffer called @file{*tex-shell*}. If @TeX{} gets an error, you can switch to this buffer and feed it input (this works as in Shell mode; @pxref{Interactive Shell}). Without switching to this buffer you can scroll it so that its last line is visible by typing diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi index 1b3f1419af4..c4f291bde82 100644 --- a/doc/emacs/trouble.texi +++ b/doc/emacs/trouble.texi @@ -636,7 +636,7 @@ Emacs, so you will have to report the bug somewhere else. The type of machine you are using, and the operating system name and version number (again, automatically included by @kbd{M-x report-emacs-bug}). @kbd{M-x emacs-version @key{RET}} provides this -information too. Copy its output from the @samp{*Messages*} buffer, +information too. Copy its output from the @file{*Messages*} buffer, so that you get it all and get it accurately. @item @@ -699,7 +699,7 @@ The way to collect the terminal output is to execute the Lisp expression @end example @noindent -using @kbd{M-:} or from the @samp{*scratch*} buffer just after +using @kbd{M-:} or from the @file{*scratch*} buffer just after starting Emacs. From then on, Emacs copies all terminal output to the specified termscript file as well, until the Emacs process is killed. If the problem happens when Emacs starts up, put this expression into @@ -725,10 +725,10 @@ Alternatively, use the @command{locale} command, if your system has it, to display your locale settings. You can use the @kbd{M-!} command to execute these commands from -Emacs, and then copy the output from the @samp{*Messages*} buffer into +Emacs, and then copy the output from the @file{*Messages*} buffer into the bug report. Alternatively, @kbd{M-x getenv @key{RET} LC_ALL @key{RET}} will display the value of @code{LC_ALL} in the echo area, and -you can copy its output from the @samp{*Messages*} buffer. +you can copy its output from the @file{*Messages*} buffer. @item A description of what behavior you observe that you believe is @@ -761,7 +761,7 @@ important to report the precise text of the error message, and a backtrace showing how the Lisp program in Emacs arrived at the error. To get the error message text accurately, copy it from the -@samp{*Messages*} buffer into the bug report. Copy all of it, not just +@file{*Messages*} buffer into the bug report. Copy all of it, not just part. @findex toggle-debug-on-error From 62200c147ccf48fdff77438e05ca296a9d40ceb4 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 10 Apr 2012 00:04:40 -0700 Subject: [PATCH 17/43] * lispref/compile.texi (Compiler Errors): Add missing space in buffer name. --- doc/lispref/ChangeLog | 4 ++++ doc/lispref/compile.texi | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 30c8ad2e4ae..d53be2b57c6 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,7 @@ +2012-04-10 Glenn Morris + + * compile.texi (Compiler Errors): Add missing space in buffer name. + 2012-04-08 Chong Yidong * processes.texi (Query Before Exit): Remove obsolete function diff --git a/doc/lispref/compile.texi b/doc/lispref/compile.texi index 90d038c29d6..1cc54bb2ac4 100644 --- a/doc/lispref/compile.texi +++ b/doc/lispref/compile.texi @@ -450,7 +450,7 @@ messages. When an error is due to invalid syntax in the program, the byte compiler might get confused about the errors' exact location. One way -to investigate is to switch to the buffer @w{@samp{*Compiler Input*}}. +to investigate is to switch to the buffer @w{@samp{ *Compiler Input*}}. (This buffer name starts with a space, so it does not show up in @kbd{M-x list-buffers}.) This buffer contains the program being compiled, and point shows how far the byte compiler was able to read; From 2bb0eca1ebe1ff1b9939b6350a2e5310c17a7e8c Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 10 Apr 2012 00:11:23 -0700 Subject: [PATCH 18/43] In doc/lispref, use @file for buffers, per the Texinfo manual. It renders the same as @samp, so there is no visible change in most cases. --- doc/lispref/ChangeLog | 5 +++++ doc/lispref/buffers.texi | 4 ++-- doc/lispref/compile.texi | 8 ++++---- doc/lispref/customize.texi | 2 +- doc/lispref/debugging.texi | 10 +++++----- doc/lispref/display.texi | 16 ++++++++-------- doc/lispref/edebug.texi | 18 +++++++++--------- doc/lispref/eval.texi | 2 +- doc/lispref/help.texi | 12 ++++++------ doc/lispref/intro.texi | 2 +- doc/lispref/keymaps.texi | 4 ++-- doc/lispref/minibuf.texi | 4 ++-- doc/lispref/modes.texi | 10 +++++----- doc/lispref/os.texi | 14 +++++++------- doc/lispref/processes.texi | 2 +- doc/lispref/text.texi | 2 +- 16 files changed, 60 insertions(+), 55 deletions(-) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index d53be2b57c6..256bbf6d20b 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,5 +1,10 @@ 2012-04-10 Glenn Morris + * buffers.texi, compile.texi, customize.texi, debugging.texi: + * display.texi, edebug.texi, eval.texi, help.texi, intro.texi: + * keymaps.texi, minibuf.texi, modes.texi, os.texi, processes.texi: + * text.texi: Use @file for buffers, per the Texinfo manual. + * compile.texi (Compiler Errors): Add missing space in buffer name. 2012-04-08 Chong Yidong diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi index 125a886ecb2..433663b4260 100644 --- a/doc/lispref/buffers.texi +++ b/doc/lispref/buffers.texi @@ -863,7 +863,7 @@ a buffer visible in any window on any visible frame, except as a last resort. If @var{visible-ok} is non-@code{nil}, then it does not matter whether a buffer is displayed somewhere or not. -If no suitable buffer exists, the buffer @samp{*scratch*} is returned +If no suitable buffer exists, the buffer @file{*scratch*} is returned (and created, if necessary). @end defun @@ -874,7 +874,7 @@ selected frame's buffer list. The argument @var{visible-ok} is handled as with @code{other-buffer}, see above. If no suitable buffer can be found, the buffer -@samp{*scratch*} is returned. +@file{*scratch*} is returned. @end defun @deffn Command bury-buffer &optional buffer-or-name diff --git a/doc/lispref/compile.texi b/doc/lispref/compile.texi index 1cc54bb2ac4..093c91f02b0 100644 --- a/doc/lispref/compile.texi +++ b/doc/lispref/compile.texi @@ -92,7 +92,7 @@ the @code{byte-compile} function. You can compile a whole file with Sometimes, the byte compiler produces warning and/or error messages (@pxref{Compiler Errors}, for details). These messages are recorded -in a buffer called @samp{*Compile-Log*}, which uses Compilation mode. +in a buffer called @file{*Compile-Log*}, which uses Compilation mode. @xref{Compilation Mode,,,emacs, The GNU Emacs Manual}. @cindex macro compilation @@ -443,14 +443,14 @@ to what @code{eval-when-compile} does. @cindex compiler errors Byte compilation outputs all errors and warnings into the buffer -@samp{*Compile-Log*}. The messages include file names and line +@file{*Compile-Log*}. The messages include file names and line numbers that identify the location of the problem. The usual Emacs commands for operating on compiler diagnostics work properly on these messages. When an error is due to invalid syntax in the program, the byte compiler might get confused about the errors' exact location. One way -to investigate is to switch to the buffer @w{@samp{ *Compiler Input*}}. +to investigate is to switch to the buffer @w{@file{ *Compiler Input*}}. (This buffer name starts with a space, so it does not show up in @kbd{M-x list-buffers}.) This buffer contains the program being compiled, and point shows how far the byte compiler was able to read; @@ -602,7 +602,7 @@ the stack. @deffn Command disassemble object &optional buffer-or-name This command displays the disassembled code for @var{object}. In interactive use, or if @var{buffer-or-name} is @code{nil} or omitted, -the output goes in a buffer named @samp{*Disassemble*}. If +the output goes in a buffer named @file{*Disassemble*}. If @var{buffer-or-name} is non-@code{nil}, it must be a buffer or the name of an existing buffer. Then the output goes there, at point, and point is left before the output. diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi index 4c3adee0db5..167dfe7d4c5 100644 --- a/doc/lispref/customize.texi +++ b/doc/lispref/customize.texi @@ -596,7 +596,7 @@ The value must be a coding-system name, and you can do completion with @item color The value must be a valid color name. The widget provides completion for color names, as well as a sample and a button for selecting a -color name from a list of color names shown in a @samp{*Colors*} +color name from a list of color names shown in a @file{*Colors*} buffer. @end table diff --git a/doc/lispref/debugging.texi b/doc/lispref/debugging.texi index 6e7d0078e07..115d8ff42de 100644 --- a/doc/lispref/debugging.texi +++ b/doc/lispref/debugging.texi @@ -303,7 +303,7 @@ an implicit @code{progn} (@pxref{Sequencing}). @subsection Using the Debugger When the debugger is entered, it displays the previously selected -buffer in one window and a buffer named @samp{*Backtrace*} in another +buffer in one window and a buffer named @file{*Backtrace*} in another window. The backtrace buffer contains one line for each level of Lisp function execution currently going on. At the beginning of this buffer is a message describing the reason that the debugger was invoked (such @@ -412,7 +412,7 @@ the variable values within the debugger. @item R Like @kbd{e}, but also save the result of evaluation in the -buffer @samp{*Debugger-record*}. +buffer @file{*Debugger-record*}. @item q Terminate the program being debugged; return to top-level Emacs @@ -450,7 +450,7 @@ to invoke the debugger. @defun debug &rest debugger-args This function enters the debugger. It switches buffers to a buffer -named @samp{*Backtrace*} (or @samp{*Backtrace*<2>} if it is the second +named @file{*Backtrace*} (or @file{*Backtrace*<2>} if it is the second recursive entry to the debugger, etc.), and fills it with information about the stack of Lisp function calls. It then enters a recursive edit, showing the backtrace buffer in Debugger mode. @@ -461,7 +461,7 @@ buffer and returns to whatever called @code{debug}. This is the only way the function @code{debug} can return to its caller. The use of the @var{debugger-args} is that @code{debug} displays the -rest of its arguments at the top of the @samp{*Backtrace*} buffer, so +rest of its arguments at the top of the @file{*Backtrace*} buffer, so that the user can see them. Except as described below, this is the @emph{only} way these arguments are used. @@ -560,7 +560,7 @@ of @code{debug} (@pxref{Invoking the Debugger}). @cindex call stack This function prints a trace of Lisp function calls currently active. This is the function used by @code{debug} to fill up the -@samp{*Backtrace*} buffer. It is written in C, since it must have access +@file{*Backtrace*} buffer. It is written in C, since it must have access to the stack to determine which function calls are active. The return value is always @code{nil}. diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 8382c2a1555..ee3ffd8d10c 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -268,7 +268,7 @@ objects for its format specifications, like in the @code{format} function (@pxref{Formatting Strings}). The resulting formatted string is displayed in the echo area; if it contains @code{face} text properties, it is displayed with the specified faces (@pxref{Faces}). -The string is also added to the @samp{*Messages*} buffer, but without +The string is also added to the @file{*Messages*} buffer, but without text properties (@pxref{Logging Messages}). In batch mode, the message is printed to the standard error stream, @@ -341,7 +341,7 @@ buffer is used, the window used to display it. If @var{message} is a string, then the optional argument @var{buffer-name} is the name of the buffer used to display it when a -pop-up buffer is used, defaulting to @samp{*Message*}. In the case +pop-up buffer is used, defaulting to @file{*Message*}. In the case where @var{message} is a string and displayed in the echo area, it is not specified whether the contents are inserted into the buffer anyway. @@ -474,16 +474,16 @@ this macro this way: @end defmac @node Logging Messages -@subsection Logging Messages in @samp{*Messages*} +@subsection Logging Messages in @file{*Messages*} @cindex logging echo-area messages Almost all the messages displayed in the echo area are also recorded -in the @samp{*Messages*} buffer so that the user can refer back to +in the @file{*Messages*} buffer so that the user can refer back to them. This includes all the messages that are output with @code{message}. @defopt message-log-max -This variable specifies how many lines to keep in the @samp{*Messages*} +This variable specifies how many lines to keep in the @file{*Messages*} buffer. The value @code{t} means there is no limit on how many lines to keep. The value @code{nil} disables message logging entirely. Here's how to display a message and prevent it from being logged: @@ -494,7 +494,7 @@ how to display a message and prevent it from being logged: @end example @end defopt - To make @samp{*Messages*} more convenient for the user, the logging + To make @file{*Messages*} more convenient for the user, the logging facility combines successive identical messages. It also combines successive related messages for the sake of two cases: question followed by answer, and a series of progress messages. @@ -624,7 +624,7 @@ and @var{type} as the warning type. @var{level} should be the severity level, with @code{:warning} being the default. @var{buffer-name}, if non-@code{nil}, specifies the name of the buffer -for logging the warning. By default, it is @samp{*Warnings*}. +for logging the warning. By default, it is @file{*Warnings*}. @end defun @defun lwarn type level message &rest args @@ -2752,7 +2752,7 @@ For text matching a search command. @itemx warning @itemx success For text concerning errors, warnings, or successes. For example, -these are used for messages in @samp{*Compilation*} buffers. +these are used for messages in @file{*Compilation*} buffers. @end table @node Font Selection diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi index 245aaf94c6d..9d50f5fb31f 100644 --- a/doc/lispref/edebug.texi +++ b/doc/lispref/edebug.texi @@ -622,7 +622,7 @@ back to the stop point in the source code buffer from any buffer using saved outside window configuration---so that even if you turn saving back @emph{on}, the current window configuration remains unchanged when you next exit Edebug (by continuing the program). However, the -automatic redisplay of @samp{*edebug*} and @samp{*edebug-trace*} may +automatic redisplay of @file{*edebug*} and @file{*edebug-trace*} may conflict with the buffers you wish to see unless you have enough windows open. @@ -661,18 +661,18 @@ lexically bound symbols created by the following constructs in @node Eval List @subsection Evaluation List Buffer - You can use the @dfn{evaluation list buffer}, called @samp{*edebug*}, to + You can use the @dfn{evaluation list buffer}, called @file{*edebug*}, to evaluate expressions interactively. You can also set up the @dfn{evaluation list} of expressions to be evaluated automatically each time Edebug updates the display. @table @kbd @item E -Switch to the evaluation list buffer @samp{*edebug*} +Switch to the evaluation list buffer @file{*edebug*} (@code{edebug-visit-eval-list}). @end table - In the @samp{*edebug*} buffer you can use the commands of Lisp + In the @file{*edebug*} buffer you can use the commands of Lisp Interaction mode (@pxref{Lisp Interaction,,, emacs, The GNU Emacs Manual}) as well as these special commands: @@ -699,7 +699,7 @@ Switch back to the source code buffer at the current stop point @end table You can evaluate expressions in the evaluation list window with -@kbd{C-j} or @kbd{C-x C-e}, just as you would in @samp{*scratch*}; +@kbd{C-j} or @kbd{C-x C-e}, just as you would in @file{*scratch*}; but they are evaluated in the context outside of Edebug. The expressions you enter interactively (and their results) are lost @@ -758,8 +758,8 @@ the expression at a suitable place, insert a new comment line, then type @kbd{C-c C-u}. You need not insert dashes in the comment line---its contents don't matter. -After selecting @samp{*edebug*}, you can return to the source code -buffer with @kbd{C-c C-w}. The @samp{*edebug*} buffer is killed when +After selecting @file{*edebug*}, you can return to the source code +buffer with @kbd{C-c C-w}. The @file{*edebug*} buffer is killed when you continue execution, and recreated next time it is needed. @node Printing in Edebug @@ -819,7 +819,7 @@ for details. @cindex trace buffer Edebug can record an execution trace, storing it in a buffer named -@samp{*edebug-trace*}. This is a log of function calls and returns, +@file{*edebug-trace*}. This is a log of function calls and returns, showing the function names and their arguments and values. To enable trace recording, set @code{edebug-trace} to a non-@code{nil} value. @@ -1567,7 +1567,7 @@ The default value is @code{step}. @defopt edebug-trace If this is non-@code{nil}, trace each function entry and exit. -Tracing output is displayed in a buffer named @samp{*edebug-trace*}, one +Tracing output is displayed in a buffer named @file{*edebug-trace*}, one function entry or exit per line, indented by the recursion level. Also see @code{edebug-tracing}, in @ref{Trace Buffer}. diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi index 429d999a2c8..7f25b33eb43 100644 --- a/doc/lispref/eval.texi +++ b/doc/lispref/eval.texi @@ -807,7 +807,7 @@ The value of this variable is a list of the values returned by all the expressions that were read, evaluated, and printed from buffers (including the minibuffer) by the standard Emacs commands which do this. (Note that this does @emph{not} include evaluation in -@samp{*ielm*} buffers, nor evaluation using @kbd{C-j} in +@file{*ielm*} buffers, nor evaluation using @kbd{C-j} in @code{lisp-interaction-mode}.) The elements are ordered most recent first. diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi index 537514d7fb9..2575f5e5bd6 100644 --- a/doc/lispref/help.texi +++ b/doc/lispref/help.texi @@ -180,7 +180,7 @@ face. @c Wordy to prevent overfull hboxes. --rjc 15mar92 Here is an example of using the two functions, @code{documentation} and @code{documentation-property}, to display the documentation strings for -several symbols in a @samp{*Help*} buffer. +several symbols in a @file{*Help*} buffer. @anchor{describe-symbols example} @smallexample @@ -535,7 +535,7 @@ seems to be as a match. Each of the remaining elements is a documentation string, or @code{nil}, for @var{symbol} as a function, variable, etc. -It also displays the symbols in a buffer named @samp{*Apropos*}, each +It also displays the symbols in a buffer named @file{*Apropos*}, each with a one-line description taken from the beginning of its documentation string. @@ -648,7 +648,7 @@ certain documentation and text files that come with Emacs. @defun help-buffer This function returns the name of the help buffer, which is normally -@samp{*Help*}; if such a buffer does not exist, it is first created. +@file{*Help*}; if such a buffer does not exist, it is first created. @end defun @defmac with-help-window buffer-name body@dots{} @@ -662,16 +662,16 @@ scroll the help window. @end defmac @defun help-setup-xref item interactive-p -This function updates the cross reference data in the @samp{*Help*} +This function updates the cross reference data in the @file{*Help*} buffer, which is used to regenerate the help information when the user clicks on the @samp{Back} or @samp{Forward} buttons. Most commands -that use the @samp{*Help*} buffer should invoke this function before +that use the @file{*Help*} buffer should invoke this function before clearing the buffer. The @var{item} argument should have the form @code{(@var{function} . @var{args})}, where @var{function} is a function to call, with argument list @var{args}, to regenerate the help buffer. The @var{interactive-p} argument is non-@code{nil} if the calling command was invoked interactively; in that case, the stack of items -for the @samp{*Help*} buffer's @samp{Back} buttons is cleared. +for the @file{*Help*} buffer's @samp{Back} buttons is cleared. @end defun @xref{describe-symbols example}, for an example of using diff --git a/doc/lispref/intro.texi b/doc/lispref/intro.texi index 365c5f3122e..c963ba03545 100644 --- a/doc/lispref/intro.texi +++ b/doc/lispref/intro.texi @@ -247,7 +247,7 @@ indicated with @samp{@equiv{}}. Many of the examples in this manual print text when they are evaluated. If you execute example code in a Lisp Interaction buffer -(such as the buffer @samp{*scratch*}), the printed text is inserted into +(such as the buffer @file{*scratch*}), the printed text is inserted into the buffer. If you execute the example by other means (such as by evaluating the function @code{eval-region}), the printed text is displayed in the echo area. diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi index 5dd57ccb4ac..000bb2cbb08 100644 --- a/doc/lispref/keymaps.texi +++ b/doc/lispref/keymaps.texi @@ -808,7 +808,7 @@ bindings. @defun current-local-map This function returns the current buffer's local keymap, or @code{nil} if it has none. In the following example, the keymap for the -@samp{*scratch*} buffer (using Lisp Interaction mode) is a sparse keymap +@file{*scratch*} buffer (using Lisp Interaction mode) is a sparse keymap in which the entry for @key{ESC}, @acronym{ASCII} code 27, is another sparse keymap. @@ -1922,7 +1922,7 @@ other command. However, if @var{no-remap} is non-@code{nil}. @deffn Command describe-bindings &optional prefix buffer-or-name This function creates a listing of all current key bindings, and -displays it in a buffer named @samp{*Help*}. The text is grouped by +displays it in a buffer named @file{*Help*}. The text is grouped by modes---minor modes first, then the major mode, then global bindings. If @var{prefix} is non-@code{nil}, it should be a prefix key; then the diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi index 4e11bc30d49..a6ef0f52cfb 100644 --- a/doc/lispref/minibuf.texi +++ b/doc/lispref/minibuf.texi @@ -1062,7 +1062,7 @@ using the value of the variable @code{minibuffer-completion-table} as the @var{collection} argument, and the value of @code{minibuffer-completion-predicate} as the @var{predicate} argument. The list of completions is displayed as text in a buffer named -@samp{*Completions*}. +@file{*Completions*}. @end deffn @defun display-completion-list completions &optional common-substring @@ -1756,7 +1756,7 @@ completion behavior is overridden. @xref{Completion Variables}. The value should be a function for @dfn{annotating} completions. The function should take one argument, @var{string}, which is a possible completion. It should return a string, which is displayed after the -completion @var{string} in the @samp{*Completions*} buffer. +completion @var{string} in the @file{*Completions*} buffer. @item display-sort-function The value should be a function for sorting completions. The function diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index 946dcb91317..12abc2fcd2b 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -628,7 +628,7 @@ have set. This function sets the major mode of @var{buffer} to the default value of @code{major-mode}; if that is @code{nil}, it uses the current buffer's major mode (if that is suitable). As an exception, -if @var{buffer}'s name is @samp{*scratch*}, it sets the mode to +if @var{buffer}'s name is @file{*scratch*}, it sets the mode to @code{initial-major-mode}. The low-level primitives for creating buffers do not use this function, @@ -637,9 +637,9 @@ but medium-level commands such as @code{switch-to-buffer} and @end defun @defopt initial-major-mode -@cindex @samp{*scratch*} +@cindex @file{*scratch*} The value of this variable determines the major mode of the initial -@samp{*scratch*} buffer. The value should be a symbol that is a major +@file{*scratch*} buffer. The value should be a symbol that is a major mode command. The default value is @code{lisp-interaction-mode}. @end defopt @@ -908,7 +908,7 @@ common bindings, including @kbd{q} for @code{quit-window}, @kbd{z} for (@pxref{Reverting}). An example of a major mode derived from Special mode is Buffer Menu -mode, which is used by the @samp{*Buffer List*} buffer. @xref{List +mode, which is used by the @file{*Buffer List*} buffer. @xref{List Buffers,,Listing Existing Buffers, emacs, The GNU Emacs Manual}. @end deffn @@ -2016,7 +2016,7 @@ identify the mode name in the mode line, use @code{format-mode-line} This buffer-local variable contains the mode line information on process status in modes used for communicating with subprocesses. It is displayed immediately following the major mode name, with no intervening -space. For example, its value in the @samp{*shell*} buffer is +space. For example, its value in the @file{*shell*} buffer is @code{(":%s")}, which allows the shell to display its status along with the major mode as: @samp{(Shell:run)}. Normally this variable is @code{nil}. diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index 649b93e6082..7c49c9e04a0 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi @@ -170,7 +170,7 @@ measurement of how long it took. It runs the normal hook @code{after-init-hook}. @item -If the buffer @samp{*scratch*} exists and is still in Fundamental mode +If the buffer @file{*scratch*} exists and is still in Fundamental mode (as it should be by default), it sets its major mode according to @code{initial-major-mode}. @@ -196,7 +196,7 @@ It now exits if the option @code{--batch} was specified. @item If @code{initial-buffer-choice} is a string, it visits the file with -that name. If the @samp{*scratch*} buffer exists and is +that name. If the @file{*scratch*} buffer exists and is empty, it inserts @code{initial-scratch-message} into that buffer. @c To make things nice and confusing, the next three items can be @@ -254,7 +254,7 @@ The following options affect some aspects of the startup sequence. @defopt inhibit-startup-screen This variable, if non-@code{nil}, inhibits the startup screen. In -that case, Emacs typically displays the @samp{*scratch*} buffer; but +that case, Emacs typically displays the @file{*scratch*} buffer; but see @code{initial-buffer-choice}, below. Do not set this variable in the init file of a new user, or in a way @@ -274,7 +274,7 @@ startup screen. @ignore @c I do not think this should be mentioned. AFAICS it is just a dodge @c around inhibit-startup-screen not being settable on a site-wide basis. -If its value is @code{t}, Emacs displays the @samp{*scratch*} buffer. +If its value is @code{t}, Emacs displays the @file{*scratch*} buffer. @end ignore @end defopt @@ -299,8 +299,8 @@ file will not inhibit the message for someone else. @defopt initial-scratch-message This variable, if non-@code{nil}, should be a string, which is -inserted into the @samp{*scratch*} buffer when Emacs starts up. If it -is @code{nil}, the @samp{*scratch*} buffer is empty. +inserted into the @file{*scratch*} buffer when Emacs starts up. If it +is @code{nil}, the @file{*scratch*} buffer is empty. @end defopt @noindent @@ -2233,7 +2233,7 @@ non-@code{nil}, Emacs tells the session manager to cancel the shutdown. @end defvar -Here is an example that just inserts some text into @samp{*scratch*} when +Here is an example that just inserts some text into @file{*scratch*} when Emacs is restarted by the session manager. @example diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi index f59937da15d..1b788684d4b 100644 --- a/doc/lispref/processes.texi +++ b/doc/lispref/processes.texi @@ -714,7 +714,7 @@ This command displays a listing of all living processes. In addition, it finally deletes any process whose status was @samp{Exited} or @samp{Signaled}. It returns @code{nil}. -The processes are shown in a buffer named @samp{*Process List*}, whose +The processes are shown in a buffer named @file{*Process List*}, whose major mode is named Process Menu mode. If @var{query-only} is non-@code{nil} then it lists only processes diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index 770dd5b5777..bae145c1694 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -4345,7 +4345,7 @@ changed text, its length is simply the difference between the first two arguments. @end defvar - Output of messages into the @samp{*Messages*} buffer does not + Output of messages into the @file{*Messages*} buffer does not call these functions. @defmac combine-after-change-calls body@dots{} From 4a427f588310fd45e29fd33eb512234a583db0bd Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 10 Apr 2012 00:13:54 -0700 Subject: [PATCH 19/43] * lisp/files.el (dir-locals-set-class-variables): Doc fix. --- lisp/ChangeLog | 4 ++++ lisp/files.el | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a0a64226d82..085f8f0bc0d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-04-10 Glenn Morris + + * files.el (dir-locals-set-class-variables): Doc fix. + 2012-04-09 Eli Zaretskii * international/characters.el: Add set-case-syntax-pair call for diff --git a/lisp/files.el b/lisp/files.el index 0673b4fe56b..8df2942195e 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -3526,7 +3526,7 @@ LIST is a list of the form accepted by the function. When a file is visited, the file's class is found. A directory may be assigned a class using `dir-locals-set-directory-class'. Then variables are set in the file's buffer according to the -class' LIST. The list is processed in order. +VARIABLES list of the class. The list is processed in order. * If the element is of the form (MAJOR-MODE . ALIST), and the buffer's major mode is derived from MAJOR-MODE (as determined From 9fce7edaffd9545ae7f8cc1f89fd739df99cdd4a Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 10 Apr 2012 00:34:53 -0700 Subject: [PATCH 20/43] doc/lispref markup fixes * strings.texi (Case Tables): * objects.texi (General Escape Syntax): * keymaps.texi (Key Sequences): Use @acronym with "ASCII". --- doc/lispref/ChangeLog | 4 ++++ doc/lispref/keymaps.texi | 2 +- doc/lispref/objects.texi | 2 +- doc/lispref/strings.texi | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 256bbf6d20b..a496c5dcdd7 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,5 +1,9 @@ 2012-04-10 Glenn Morris + * strings.texi (Case Tables): + * objects.texi (General Escape Syntax): + * keymaps.texi (Key Sequences): Use @acronym with "ASCII". + * buffers.texi, compile.texi, customize.texi, debugging.texi: * display.texi, edebug.texi, eval.texi, help.texi, intro.texi: * keymaps.texi, minibuf.texi, modes.texi, os.texi, processes.texi: diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi index 000bb2cbb08..65666217e16 100644 --- a/doc/lispref/keymaps.texi +++ b/doc/lispref/keymaps.texi @@ -64,7 +64,7 @@ constituent events; thus, @code{"\C-xl"} represents the key sequence @kbd{C-x l}. Key sequences containing function keys, mouse button events, or -non-ASCII characters such as @kbd{C-=} or @kbd{H-a} cannot be +non-@acronym{ASCII} characters such as @kbd{C-=} or @kbd{H-a} cannot be represented as strings; they have to be represented as vectors. In the vector representation, each element of the vector represents diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi index ba4803c73f2..7901f27c4f5 100644 --- a/doc/lispref/objects.texi +++ b/doc/lispref/objects.texi @@ -352,7 +352,7 @@ following text.) In addition to the specific escape sequences for special important control characters, Emacs provides several types of escape syntax that -you can use to specify non-ASCII text characters. +you can use to specify non-@acronym{ASCII} text characters. @cindex unicode character escape You can specify characters by their Unicode values. diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi index 7813283ade5..3b8c62af313 100644 --- a/doc/lispref/strings.texi +++ b/doc/lispref/strings.texi @@ -1117,7 +1117,7 @@ Exits}). @acronym{ASCII} characters; for example, in the Turkish language environment, the @acronym{ASCII} character @samp{I} is downcased into a Turkish ``dotless i''. This can interfere with code that requires -ordinary ASCII case conversion, such as implementations of +ordinary @acronym{ASCII} case conversion, such as implementations of @acronym{ASCII}-based network protocols. In that case, use the @code{with-case-table} macro with the variable @var{ascii-case-table}, which stores the unmodified case table for the @acronym{ASCII} From 0d93216c1caf25f1663d82d7e3f7d81cc9b61ea2 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Tue, 10 Apr 2012 13:52:51 +0300 Subject: [PATCH 21/43] Copy changes from trunk 2012-04-09T18:12:40Z!schwab@linux-m68k.org to fix letter-case pairs. lisp/international/characters.el: Recover lost case pairs. --- lisp/ChangeLog | 4 ++++ lisp/international/characters.el | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 085f8f0bc0d..3a3a3f51a6f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-04-10 Andreas Schwab + + * international/characters.el: Recover lost case pairs. + 2012-04-10 Glenn Morris * files.el (dir-locals-set-class-variables): Doc fix. diff --git a/lisp/international/characters.el b/lisp/international/characters.el index ff6ac7b108a..b7cc700cbff 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -591,6 +591,24 @@ with L, LRE, or LRO Unicode bidi character type.") ;; (set-downcase-syntax ?İ ?i tbl) ;; (set-upcase-syntax ?I ?ı tbl) + (set-case-syntax-pair ?Ɓ ?ɓ tbl) + (set-case-syntax-pair ?Ɔ ?ɔ tbl) + (set-case-syntax-pair ?Ǝ ?ǝ tbl) + (set-case-syntax-pair ?Ə ?ə tbl) + (set-case-syntax-pair ?Ɛ ?ɛ tbl) + (set-case-syntax-pair ?Ɠ ?ɠ tbl) + (set-case-syntax-pair ?Ɣ ?ɣ tbl) + (set-case-syntax-pair ?Ɩ ?ɩ tbl) + (set-case-syntax-pair ?Ɨ ?ɨ tbl) + (set-case-syntax-pair ?Ɯ ?ɯ tbl) + (set-case-syntax-pair ?Ɲ ?ɲ tbl) + (set-case-syntax-pair ?Ɵ ?ɵ tbl) + (set-case-syntax-pair ?Ʀ ?ʀ tbl) + (set-case-syntax-pair ?Ʃ ?ʃ tbl) + (set-case-syntax-pair ?Ʈ ?ʈ tbl) + (set-case-syntax-pair ?Ʊ ?ʊ tbl) + (set-case-syntax-pair ?Ʋ ?ʋ tbl) + (set-case-syntax-pair ?Ʒ ?ʒ tbl) (set-case-syntax-pair ?DŽ ?dž tbl) (set-case-syntax-pair ?Dž ?dž tbl) (set-case-syntax-pair ?LJ ?lj tbl) From cb80bcd1737dc33641c1eb9797d2e30d1b62d5a9 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 10 Apr 2012 14:39:33 +0300 Subject: [PATCH 22/43] Add more missing case pairs. lisp/international/characters.el: Add more missing Latin case pairs. --- lisp/ChangeLog | 4 ++++ lisp/international/characters.el | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 3a3a3f51a6f..9687d0e73df 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-04-10 Eli Zaretskii + + * international/characters.el: Add more missing Latin case pairs. + 2012-04-10 Andreas Schwab * international/characters.el: Recover lost case pairs. diff --git a/lisp/international/characters.el b/lisp/international/characters.el index b7cc700cbff..9b02688648f 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -621,6 +621,12 @@ with L, LRE, or LRO Unicode bidi character type.") (set-case-syntax-pair ?Dz ?dz tbl) (set-case-syntax-pair ?Ƕ ?ƕ tbl) (set-case-syntax-pair ?Ƿ ?ƿ tbl) + (set-case-syntax-pair ?Ⱥ ?ⱥ tbl) + (set-case-syntax-pair ?Ƚ ?ƚ tbl) + (set-case-syntax-pair ?Ⱦ ?ⱦ tbl) + (set-case-syntax-pair ?Ƀ ?ƀ tbl) + (set-case-syntax-pair ?Ʉ ?ʉ tbl) + (set-case-syntax-pair ?Ʌ ?ʌ tbl) ;; Latin Extended Additional (modify-category-entry '(#x1e00 . #x1ef9) ?l) From d0203d61449b1e907a0b5d0b2d4bb9d989145cc1 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Tue, 10 Apr 2012 14:21:28 +0200 Subject: [PATCH 23/43] * international/characters.el: Fix sorting. --- lisp/ChangeLog | 4 ++++ lisp/international/characters.el | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9687d0e73df..5b2ede24777 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-04-10 Andreas Schwab + + * international/characters.el: Fix sorting. + 2012-04-10 Eli Zaretskii * international/characters.el: Add more missing Latin case pairs. diff --git a/lisp/international/characters.el b/lisp/international/characters.el index 9b02688648f..c75ca8106ac 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -560,6 +560,7 @@ with L, LRE, or LRO Unicode bidi character type.") (#x01AC . #x01AD) (#x01AF . #x01B0) (#x01B3 . #x01B6) + (#x01B8 . #x01B9) (#x01BC . #x01BD) (#x01CD . #x01DC) (#x01DE . #x01EF) @@ -575,9 +576,7 @@ with L, LRE, or LRO Unicode bidi character type.") (set-case-syntax-pair from (1+ from) tbl) (setq from (+ from 2)))))) - (set-case-syntax-pair #x178 #x0ff tbl) - (set-case-syntax-pair #x189 #x256 tbl) - (set-case-syntax-pair #x18A #x257 tbl) + (set-case-syntax-pair ?Ÿ ?ÿ tbl) ;; In some languages, such as Turkish, U+0049 LATIN CAPITAL LETTER I ;; and U+0131 LATIN SMALL LETTER DOTLESS I make a case pair, and so @@ -593,6 +592,8 @@ with L, LRE, or LRO Unicode bidi character type.") (set-case-syntax-pair ?Ɓ ?ɓ tbl) (set-case-syntax-pair ?Ɔ ?ɔ tbl) + (set-case-syntax-pair ?Ɖ ?ɖ tbl) + (set-case-syntax-pair ?Ɗ ?ɗ tbl) (set-case-syntax-pair ?Ǝ ?ǝ tbl) (set-case-syntax-pair ?Ə ?ə tbl) (set-case-syntax-pair ?Ɛ ?ɛ tbl) From ede141ac13b356380e03c510da185c2bd781bd4c Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 10 Apr 2012 13:53:31 -0400 Subject: [PATCH 24/43] * lisp/startup.el (command-line-1): Inhibit splash from daemon. Fixes: debbugs:10996 --- lisp/ChangeLog | 4 ++++ lisp/startup.el | 5 ++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5b2ede24777..fdd3919b13b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-04-10 Stefan Monnier + + * startup.el (command-line-1): Inhibit splash from daemon (bug#10996). + 2012-04-10 Andreas Schwab * international/characters.el: Fix sorting. diff --git a/lisp/startup.el b/lisp/startup.el index 37e4f550dcd..2f72e804892 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -2341,6 +2341,7 @@ A fancy display is used on graphic displays, normal otherwise." (if (or inhibit-startup-screen initial-buffer-choice noninteractive + (daemonp) inhibit-x-resources) ;; Not displaying a startup screen. If 3 or more files @@ -2383,9 +2384,7 @@ A fancy display is used on graphic displays, normal otherwise." ;; (with-no-warnings ;; (setq menubar-bindings-done t)) - (if (> file-count 0) - (display-startup-screen t) - (display-startup-screen nil))))) + (display-startup-screen (> file-count 0))))) (defun command-line-normalize-file-name (file) "Collapse multiple slashes to one, to handle non-Emacs file names." From e645df7cc3c71a1d22c62297cec1199e586fc7b9 Mon Sep 17 00:00:00 2001 From: Dani Moncayo Date: Wed, 11 Apr 2012 14:33:51 +0800 Subject: [PATCH 25/43] * nt/makefile.w32-in: Fix typo (Bug#10261). --- nt/ChangeLog | 4 ++++ nt/makefile.w32-in | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/nt/ChangeLog b/nt/ChangeLog index d0a85a4a319..23e93907552 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,7 @@ +2012-04-11 Dani Moncayo (tiny change) + + * makefile.w32-in: Fix typo (Bug#10261). + 2012-03-29 Eli Zaretskii * config.nt: Discourage from defining HAVE_GETCWD. diff --git a/nt/makefile.w32-in b/nt/makefile.w32-in index 2f25fd448da..5bd7fec0cc0 100644 --- a/nt/makefile.w32-in +++ b/nt/makefile.w32-in @@ -260,10 +260,10 @@ install-shortcuts: $(INSTALL_DIR)/bin maybe-copy-distfiles: maybe-copy-distfiles-$(SHELLTYPE) maybe-copy-distfiles-CMD: create-tmp-dist-dir doit - @if not $(ARGQUOTE)$(DIST_FILES)$(ARGQUOTE)=="" $(CP_DIR) $(DIST_FILES) $(TMP_DIST_DIR)/bin + @if not $(ARGQUOTE)$(DIST_FILES)$(ARGQUOTE) == "" $(CP_DIR) $(DIST_FILES) $(TMP_DIST_DIR)/bin maybe-copy-distfiles-SH: create-tmp-dist-dir doit - @if [ ! $(ARGQUOTE)$(DIST_FILES)$(ARGQUOTE)=="" ] ; then \ + @if [ ! $(ARGQUOTE)$(DIST_FILES)$(ARGQUOTE) == "" ] ; then \ $(CP_DIR) $(DIST_FILES) $(TMP_DIST_DIR)/bin ; \ fi From 801a68c874777439a2eb06247891e1d1082c59c7 Mon Sep 17 00:00:00 2001 From: Bastien Guerry Date: Wed, 11 Apr 2012 12:59:50 +0200 Subject: [PATCH 26/43] Sync with Org 7.8.09 (bugfix release) --- doc/misc/ChangeLog | 13 +++++++++ doc/misc/org.texi | 33 +++++++++++------------ etc/refcards/orgcard.pdf | Bin 118613 -> 118982 bytes etc/refcards/orgcard.tex | 2 +- lisp/org/ChangeLog | 47 +++++++++++++++++++++++++++++++++ lisp/org/ob-C.el | 2 +- lisp/org/org-agenda.el | 14 +++++++--- lisp/org/org-clock.el | 15 ++++++----- lisp/org/org-footnote.el | 2 +- lisp/org/org-pcomplete.el | 4 +-- lisp/org/org-special-blocks.el | 12 ++++----- lisp/org/org-table.el | 13 ++++++--- lisp/org/org.el | 40 ++++++++++++++-------------- 13 files changed, 134 insertions(+), 63 deletions(-) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index f11792248cf..b96c0489cd3 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,16 @@ +2012-04-11 Jérémie Courrèges-Anglas (tiny change) + + * org.texi (Deadlines and scheduling): Fix the example: the + DEADLINE item should come right after the headline. We enforce + this convention, so it is a bug not to illustrate it correctly in + the manual. + +2012-04-11 Ippei FURUHASHI (tiny change) + + * org.texi (Agenda commands): Fix documentation bug by swapping + the equivalent keybindings to `org-agenda-next-line' with the ones + to `org-agenda-previous-line'. + 2012-04-07 Glenn Morris * Makefile.in: Replace non-portable use of $< in ordinary rules. diff --git a/doc/misc/org.texi b/doc/misc/org.texi index e033a47aa96..67633e1acac 100644 --- a/doc/misc/org.texi +++ b/doc/misc/org.texi @@ -4,8 +4,8 @@ @setfilename ../../info/org @settitle The Org Manual -@set VERSION 7.8.07 -@set DATE March 2012 +@set VERSION 7.8.09 +@set DATE April 2012 @c Use proper quote and backtick for code sections in PDF output @c Cf. Texinfo manual 14.2 @@ -5698,8 +5698,8 @@ until the entry is marked DONE. An example: @example *** TODO write article about the Earth for the Guide - The editor in charge is [[bbdb:Ford Prefect]] DEADLINE: <2004-02-29 Sun> + The editor in charge is [[bbdb:Ford Prefect]] @end example You can specify a different lead time for warnings for a specific @@ -7852,9 +7852,9 @@ the other commands, the cursor needs to be in the desired line. @tsubheading{Motion} @cindex motion commands in agenda @orgcmd{n,org-agenda-next-line} -Next line (same as @key{up} and @kbd{C-p}). +Next line (same as @key{down} and @kbd{C-n}). @orgcmd{p,org-agenda-previous-line} -Previous line (same as @key{down} and @kbd{C-n}). +Previous line (same as @key{up} and @kbd{C-p}). @tsubheading{View/Go to Org file} @orgcmdkkc{@key{SPC},mouse-3,org-agenda-show-and-scroll-up} Display the original location of the item in another window. @@ -9537,12 +9537,12 @@ the web, while the XOXO format provides a solid base for exchange with a broad range of other applications. @LaTeX{} export lets you use Org mode and its structured editing functions to easily create @LaTeX{} files. DocBook export makes it possible to convert Org files to many other formats using -DocBook tools. OpenDocument Text(ODT) export allows seamless +DocBook tools. OpenDocument Text (ODT) export allows seamless collaboration across organizational boundaries. For project management you can create gantt and resource charts by using TaskJuggler export. To incorporate entries with associated times like deadlines or appointments into a desktop calendar program like iCal, Org mode can also produce extracts in -the iCalendar format. Currently Org mode only supports export, not import of +the iCalendar format. Currently, Org mode only supports export, not import of these different formats. Org supports export of selected regions when @code{transient-mark-mode} is @@ -10869,10 +10869,10 @@ one format (say @samp{csv}) to another format (say @samp{ods} or @samp{xls}). If you have a working installation of LibreOffice, a document converter is pre-configured for you and you can use it right away. If you would like to use @file{unoconv} as your preferred converter, customize the variable -@code{org-export-odt-convert-process} to point to @code{unoconv}. If you -would like to use a converter of your own choosing or tweak the default -settings of the default @file{LibreOffice} and @samp{unoconv} converters -@xref{Configuring a document converter}. +@code{org-export-odt-convert-process} to point to @code{unoconv}. You can +also use your own favorite converter or tweak the default settings of the +@file{LibreOffice} and @samp{unoconv} converters. @xref{Configuring a +document converter}. @subsubsection Automatically exporting to other formats @anchor{x-export-to-other-formats} @@ -11206,7 +11206,7 @@ that the @file{dvipng} program be available on your system. For various reasons, you may find embedding @LaTeX{} math snippets in an ODT document less than reliable. In that case, you can embed a -math equation by linking to its MathML(@file{.mml}) source or its +math equation by linking to its MathML (@file{.mml}) source or its OpenDocument formula (@file{.odf}) file as shown below: @example @@ -11269,7 +11269,7 @@ Illustration 2: Bell curve Export of literal examples (@pxref{Literal examples}) with full fontification is supported. Internally, the exporter relies on @file{htmlfontify.el} to generate all style definitions needed for a fancy listing.@footnote{Your -@file{htmlfontify.el} library must atleast be at Emacs 24.1 levels for +@file{htmlfontify.el} library must at least be at Emacs 24.1 levels for fontification to be turned on.} The auto-generated styles have @samp{OrgSrc} as prefix and inherit their color from the faces used by Emacs @code{font-lock} library for the source language. @@ -11318,10 +11318,9 @@ the variable @code{org-export-odt-convert-processes}. Also specify how the converter can be invoked via command-line to effect the conversion. @item Configure its capabilities + @vindex org-export-odt-convert-capabilities - @anchor{x-odt-converter-capabilities} - Specify the set of formats the converter can handle by customizing the variable @code{org-export-odt-convert-capabilities}. Use the default value for this variable as a guide for configuring your converter. As suggested by @@ -11460,7 +11459,7 @@ regular text. @end example @strong{Hint:} To see the above example in action, edit your -@file{styles.xml}(@pxref{x-orgodtstyles-xml,,Factory styles}) and add a +@file{styles.xml} (@pxref{x-orgodtstyles-xml,,Factory styles}) and add a custom @samp{Highlight} style as shown below. @example @@ -11479,7 +11478,7 @@ directive. For example, to force a page break do the following: @end example @strong{Hint:} To see the above example in action, edit your -@file{styles.xml}(@pxref{x-orgodtstyles-xml,,Factory styles}) and add a +@file{styles.xml} (@pxref{x-orgodtstyles-xml,,Factory styles}) and add a custom @samp{PageBreak} style as shown below. @example diff --git a/etc/refcards/orgcard.pdf b/etc/refcards/orgcard.pdf index 201bb892dc033907cfeac1088dcaf31ca3785d35..3bedb6f2cf5a62888f6e30cb1cd4e4fb62ac4546 100644 GIT binary patch delta 46908 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%0AE8o&Ve`K~FKU;v_S$_e(Z#ot*zdY=| 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%0DuT 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 SozMXv3NkV|3MC~)Peuy4Cq+O2 diff --git a/etc/refcards/orgcard.tex b/etc/refcards/orgcard.tex index d78f2a38021..d06afca8083 100644 --- a/etc/refcards/orgcard.tex +++ b/etc/refcards/orgcard.tex @@ -1,5 +1,5 @@ % Reference Card for Org Mode -\def\orgversionnumber{7.8.07} +\def\orgversionnumber{7.8.09} \def\versionyear{2012} % latest update \def\year{2012} % latest copyright year diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog index 618d5753a46..0e80ea2fa2e 100644 --- a/lisp/org/ChangeLog +++ b/lisp/org/ChangeLog @@ -1,3 +1,50 @@ +2012-04-11 Bastien Guerry + + * org.el (org-point-at-end-of-empty-headline): Only try to match + ̀org-todo-line-regexp' when the value is non-nil, e.g. in non-org + modes. + (org-fontify-meta-lines-and-blocks-1): Prevent errors when trying + to fontify beyond (point-max). + + * org-clock.el (org-clock-task-overrun-text) + (org-task-overrun, org-clock-get-clock-string) + (org-clock-update-mode-line) + (org-clock-notify-once-if-expired): Rename `org-task-overrun' + and `org-task-overrun-text' to `org-clock-task-overrun' and + `org-clock-task-overrun-text' respectively. + (org-task-overrun-text): New alias. + + * org-table.el (org-table-eval-formula): Fix bug about handling + remote references as durations. + (org-table-get-range): Fix bug: make sure references to $0 are + correctly handled. + + * org-pcomplete.el (pcomplete/org-mode/file-option): Fix bug in + `pcomplete/org-mode/file-option'. + (org-thing-at-point): Also match line options like LATEX_CLASS + when pcompleting from LATEX_. + + * org-agenda.el (org-agenda-filter-make-matcher) + (org-agenda-filter-apply): Allow filtering entries out by + category. Using `C-u <' from the agenda view will redisplay + the agenda without entries from categories of the current + line. + +2012-04-11 Eric Schulte + + * ob-C.el (org-babel-C-ensure-main-wrap): Add an explicit return + to automatically generated main methods. + +2012-04-11 Matt Lundin + + * org.el (org-after-todo-state-change-hook): Fix docstring to + reflect name change of state to `org-state'. + +2012-04-11 Mike Sperber (tiny change) + + * org-footnote.el (org-footnote-normalize): Correctly pass keyword + arguments to `org-export-preprocess-string'. + 2012-04-03 Bastien Guerry * org.el (org-todo): Fix regression: rename `state' to diff --git a/lisp/org/ob-C.el b/lisp/org/ob-C.el index 5f6c1cb1dd1..583510ac618 100644 --- a/lisp/org/ob-C.el +++ b/lisp/org/ob-C.el @@ -152,7 +152,7 @@ it's header arguments." "Wrap body in a \"main\" function call if none exists." (if (string-match "^[ \t]*[intvod]+[ \t\n\r]*main[ \t]*(.*)" body) body - (format "int main() {\n%s\n}\n" body))) + (format "int main() {\n%s\nreturn(0);\n}\n" body))) (defun org-babel-prep-session:C (session params) "This function does nothing as C is a compiled language with no diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el index 324ddd27f9a..3bb0fc84897 100644 --- a/lisp/org/org-agenda.el +++ b/lisp/org/org-agenda.el @@ -6365,7 +6365,9 @@ to switch to narrowing." (dolist (x (delete-dups (append (get 'org-agenda-category-filter :preset-filter) org-agenda-category-filter))) - (setq f1 (list 'equal (substring x 1) 'cat)) + (if (equal "-" (substring x 0 1)) + (setq f1 (list 'not (list 'equal (substring x 1) 'cat))) + (setq f1 (list 'equal (substring x 1) 'cat))) (push f1 f)) (cons 'and (nreverse f)))) @@ -6396,9 +6398,13 @@ If the line does not have an effort defined, return nil." (let (tags cat) (if (eq type 'tag) (setq org-agenda-tag-filter filter) - (setq org-agenda-category-filter filter - org-agenda-filtered-by-category t)) + (setq org-agenda-category-filter filter)) (setq org-agenda-filter-form (org-agenda-filter-make-matcher)) + (if (and (eq type 'category) + (not (equal (substring (car filter) 0 1) "-"))) + ;; Only set `org-agenda-filtered-by-category' to t + ;; when a unique category is used as the filter + (setq org-agenda-filtered-by-category t)) (org-agenda-set-mode-name) (save-excursion (goto-char (point-min)) @@ -6412,7 +6418,7 @@ If the line does not have an effort defined, return nil." (beginning-of-line 2)) (beginning-of-line 2)))) (if (get-char-property (point) 'invisible) - (org-agenda-previous-line)))) + (ignore-errors (org-agenda-previous-line))))) (defun org-agenda-filter-hide-line (type) (let (ov) diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el index 7105bfe13dc..434f6a1d5f6 100644 --- a/lisp/org/org-clock.el +++ b/lisp/org/org-clock.el @@ -219,7 +219,8 @@ auto Automatically, either `all', or `repeat' for repeating tasks" (const :tag "All task time" all) (const :tag "Automatically, `all' or since `repeat'" auto))) -(defcustom org-task-overrun-text nil +(defvaralias 'org-task-overrun-text 'org-clock-task-overrun-text) +(defcustom org-clock-task-overrun-text nil "The extra modeline text that should indicate that the clock is overrun. The can be nil to indicate that instead of adding text, the clock time should get a different face (`org-mode-line-clock-overrun'). @@ -495,7 +496,7 @@ pointing to it." (insert (format "[%c] %-15s %s\n" i cat task)) (cons i marker))))) -(defvar org-task-overrun nil +(defvar org-clock-task-overrun nil "Internal flag indicating if the clock has overrun the planned time.") (defvar org-clock-update-period 60 "Number of seconds between mode line clock string updates.") @@ -516,7 +517,7 @@ If not, show simply the clocked time like 01:50." (work-done-str (org-propertize (format org-time-clocksum-format h m) - 'face (if (and org-task-overrun (not org-task-overrun-text)) + 'face (if (and org-clock-task-overrun (not org-clock-task-overrun-text)) 'org-mode-line-clock-overrun 'org-mode-line-clock))) (effort-str (format org-time-clocksum-format effort-h effort-m)) (clockstr (org-propertize @@ -532,7 +533,7 @@ If not, show simply the clocked time like 01:50." (defun org-clock-update-mode-line () (if org-clock-effort (org-clock-notify-once-if-expired) - (setq org-task-overrun nil)) + (setq org-clock-task-overrun nil)) (setq org-mode-line-string (org-propertize (let ((clock-string (org-clock-get-clock-string)) @@ -546,10 +547,10 @@ If not, show simply the clocked time like 01:50." 'local-map org-clock-mode-line-map 'mouse-face (if (featurep 'xemacs) 'highlight 'mode-line-highlight) )) - (if (and org-task-overrun org-task-overrun-text) + (if (and org-clock-task-overrun org-clock-task-overrun-text) (setq org-mode-line-string (concat (org-propertize - org-task-overrun-text + org-clock-task-overrun-text 'face 'org-mode-line-clock-overrun) org-mode-line-string))) (force-mode-line-update)) @@ -606,7 +607,7 @@ Notification is shown only once." (when (org-clocking-p) (let ((effort-in-minutes (org-duration-string-to-minutes org-clock-effort)) (clocked-time (org-clock-get-clocked-time))) - (if (setq org-task-overrun + (if (setq org-clock-task-overrun (if (or (null effort-in-minutes) (zerop effort-in-minutes)) nil (>= clocked-time effort-in-minutes))) diff --git a/lisp/org/org-footnote.el b/lisp/org/org-footnote.el index 34fc31f39d6..9319e0813c0 100644 --- a/lisp/org/org-footnote.el +++ b/lisp/org/org-footnote.el @@ -704,7 +704,7 @@ Additional note on `org-footnote-insert-pos-for-preprocessor': (org-combine-plists export-props '(:todo-keywords t :tags t :priority t)))) - (org-export-preprocess-string def parameters)) + (apply #'org-export-preprocess-string def parameters)) def) ;; Reference beginning position is a marker ;; to preserve it during further buffer diff --git a/lisp/org/org-pcomplete.el b/lisp/org/org-pcomplete.el index 0ca8777878c..5950d8e26da 100644 --- a/lisp/org/org-pcomplete.el +++ b/lisp/org/org-pcomplete.el @@ -69,7 +69,7 @@ The return value is a string naming the thing at point." (re-search-backward "^[ \t]*#\\+\\([A-Z_]+\\):.*" (line-beginning-position) t)) (cons "file-option" (match-string-no-properties 1))) - ((string-match "\\`[ \t]*#\\+[a-zA-Z]*\\'" line-to-here) + ((string-match "\\`[ \t]*#\\+[a-zA-Z_]*\\'" line-to-here) (cons "file-option" nil)) ((equal (char-before beg) ?\[) (cons "link" nil)) @@ -144,7 +144,7 @@ When completing for #+STARTUP, for example, this function returns (if (string-match "^#\\+\\([A-Z_]+:?\\)" x) (match-string 1 x))) (org-split-string (org-get-current-options) "\n")) - org-additional-option-like-keywords))))) + (copy-sequence org-additional-option-like-keywords)))))) (substring pcomplete-stub 2))) (defvar org-startup-options) diff --git a/lisp/org/org-special-blocks.el b/lisp/org/org-special-blocks.el index 5bf8362357f..43b37c64016 100644 --- a/lisp/org/org-special-blocks.el +++ b/lisp/org/org-special-blocks.el @@ -80,17 +80,17 @@ seen. This is run after a few special cases are taken care of." (add-hook 'org-export-latex-after-blockquotes-hook 'org-special-blocks-convert-latex-special-cookies) -(defvar org-special-blocks-line) +(defvar line) (defun org-special-blocks-convert-html-special-cookies () "Converts the special cookies into div blocks." - ;; Uses the dynamically-bound variable `org-special-blocks-line'. - (when (string-match "^ORG-\\(.*\\)-\\(START\\|END\\)$" org-special-blocks-line) + ;; Uses the dynamically-bound variable `line'. + (when (string-match "^ORG-\\(.*\\)-\\(START\\|END\\)$" line) (message "%s" (match-string 1)) - (when (equal (match-string 2 org-special-blocks-line) "START") + (when (equal (match-string 2 line) "START") (org-close-par-maybe) - (insert "\n
") + (insert "\n
") (org-open-par)) - (when (equal (match-string 2 org-special-blocks-line) "END") + (when (equal (match-string 2 line) "END") (org-close-par-maybe) (insert "\n
") (org-open-par)) diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el index ae12cee2abe..08981b57e49 100644 --- a/lisp/org/org-table.el +++ b/lisp/org/org-table.el @@ -2526,8 +2526,13 @@ not overwrite the stored one." (replace-match (save-match-data (org-table-make-reference - (org-table-get-remote-range - (match-string 1 form) (match-string 2 form)) + (let ((rmtrng (org-table-get-remote-range + (match-string 1 form) (match-string 2 form)))) + (if duration + (if (listp rmtrng) + (mapcar (lambda(x) (org-table-time-string-to-seconds x)) rmtrng) + (org-table-time-string-to-seconds rmtrng)) + rmtrng)) keep-empty numbers lispp)) t t form))) ;; Insert complex ranges @@ -2663,8 +2668,8 @@ in the buffer and column1 and column2 are table column numbers." ; (setq r2 (or r2 r1) c2 (or c2 c1)) (if (not r1) (setq r1 thisline)) (if (not r2) (setq r2 thisline)) - (if (not c1) (setq c1 col)) - (if (not c2) (setq c2 col)) + (if (or (not c1) (= 0 c1)) (setq c1 col)) + (if (or (not c2) (= 0 c2)) (setq c2 col)) (if (and (not corners-only) (or (not rangep) (and (= r1 r2) (= c1 c2)))) ;; just one field diff --git a/lisp/org/org.el b/lisp/org/org.el index 0f13223d0c1..c2cc2354439 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el @@ -6,7 +6,7 @@ ;; Maintainer: Bastien Guerry ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.8.08 +;; Version: 7.8.09 ;; ;; This file is part of GNU Emacs. ;; @@ -206,7 +206,7 @@ identifier." ;;; Version -(defconst org-version "7.8.08" +(defconst org-version "7.8.09" "The version number of the file org.el.") ;;;###autoload @@ -2225,7 +2225,7 @@ property and include the word \"recursive\" into the value." (defcustom org-after-todo-state-change-hook nil "Hook which is run after the state of a TODO item was changed. The new state (a string with a TODO keyword, or nil) is available in the -Lisp variable `state'." +Lisp variable `org-state'." :group 'org-todo :type 'hook) @@ -5427,7 +5427,8 @@ will be prompted for." (when (re-search-forward (concat "^[ \t]*#\\+end" (match-string 4) "\\>.*") nil t) ;; on purpose, we look further than LIMIT - (setq end (match-end 0) end1 (1- (match-beginning 0))) + (setq end (min (point-max) (match-end 0)) + end1 (min (point-max) (1- (match-beginning 0)))) (setq block-end (match-beginning 0)) (when quoting (remove-text-properties beg end @@ -5455,11 +5456,12 @@ will be prompted for." '(face org-block))) ; end of source block ((not org-fontify-quote-and-verse-blocks)) ((string= block-type "quote") - (add-text-properties beg1 (1+ end1) '(face org-quote))) + (add-text-properties beg1 (min (point-max) (1+ end1)) '(face org-quote))) ((string= block-type "verse") - (add-text-properties beg1 (1+ end1) '(face org-verse)))) + (add-text-properties beg1 (min (point-max) (1+ end1)) '(face org-verse)))) (add-text-properties beg beg1 '(face org-block-begin-line)) - (add-text-properties (1+ end) (1+ end1) '(face org-block-end-line)) + (add-text-properties (min (point-max) (1+ end)) (min (point-max) (1+ end1)) + '(face org-block-end-line)) t)) ((member dc1 '("title:" "author:" "email:" "date:")) (add-text-properties @@ -5475,7 +5477,7 @@ will be prompted for." ((not (member (char-after beg) '(?\ ?\t))) ;; just any other in-buffer setting, but not indented (add-text-properties - beg (1+ (match-end 0)) + beg (match-end 0) '(font-lock-fontified t face org-meta-line)) t) ((or (member dc1 '("begin:" "end:" "caption:" "label:" @@ -13422,8 +13424,7 @@ With prefix ARG, realign all tags in headings in the current buffer." ;; Get a new set of tags from the user (save-excursion (setq table (append org-tag-persistent-alist - org-tag-alist - (org-get-buffer-tags) + (or org-tag-alist (org-get-buffer-tags)) (and org-complete-tags-always-offer-all-agenda-tags (org-global-tags-completion-table @@ -13725,11 +13726,9 @@ Returns the new tags string, or nil to not change the current settings." (condition-case nil (setq tg (org-icompleting-read "Tag: " - (delete-dups - (append (or buffer-tags - (with-current-buffer buf - (mapcar 'car (org-get-buffer-tags)))) - (mapcar 'car table))))) + (or buffer-tags + (with-current-buffer buf + (org-get-buffer-tags))))) (quit (setq tg ""))) (when (string-match "\\S-" tg) (add-to-list 'buffer-tags (list tg)) @@ -20775,11 +20774,12 @@ This version does not only check the character property, but also If the heading only contains a TODO keyword, it is still still considered empty." (and (looking-at "[ \t]*$") - (save-excursion - (beginning-of-line 1) - (let ((case-fold-search nil)) - (looking-at org-todo-line-regexp))) - (string= (match-string 3) ""))) + (when org-todo-line-regexp + (save-excursion + (beginning-of-line 1) + (let ((case-fold-search nil)) + (looking-at org-todo-line-regexp) + (string= (match-string 3) "")))))) (defun org-at-heading-or-item-p () (or (org-at-heading-p) (org-at-item-p))) From 932de51cdf76271b17eda370a41f77105cfd46ae Mon Sep 17 00:00:00 2001 From: Alan Mackenzie Date: Wed, 11 Apr 2012 15:24:20 +0000 Subject: [PATCH 27/43] cc-mode.texi: (c-offsets-alist): Correct a typo. --- doc/misc/ChangeLog | 4 ++++ doc/misc/cc-mode.texi | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index b96c0489cd3..f1eff10c7cd 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,7 @@ +2012-04-11 Alan Mackenzie + + * cc-mode.texi (c-offsets-alist): Correct a typo. + 2012-04-11 Jérémie Courrèges-Anglas (tiny change) * org.texi (Deadlines and scheduling): Fix the example: the diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index 1a192123c3e..58420bbd99c 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi @@ -5195,7 +5195,7 @@ indentation. @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! This section explains the structure and semantics of the style -variable @code{c-offset-alist}, the principal variable for configuring +variable @code{c-offsets-alist}, the principal variable for configuring indentation. Details of how to set it up, and its relationship to @ccmode{}'s style system are given in @ref{Style Variables}. From 0de3da9f2fdaa4259a3b53bb2faf96ee7109f51c Mon Sep 17 00:00:00 2001 From: Alan Mackenzie Date: Wed, 11 Apr 2012 15:32:30 +0000 Subject: [PATCH 28/43] Correct two search limits in c-before-change-check_<>-operators. --- lisp/ChangeLog | 5 +++++ lisp/progmodes/cc-engine.el | 5 ++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index fdd3919b13b..cde248a979e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-04-11 Alan Mackenzie + + * progmodes/cc-engine.el (c-before-change-check-<>-operators): + Correct two search limits. + 2012-04-10 Stefan Monnier * startup.el (command-line-1): Inhibit splash from daemon (bug#10996). diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index cf38001c123..65e28c11e21 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -5382,7 +5382,7 @@ comment at the start of cc-engine.el for more info." new-beg new-end need-new-beg need-new-end) ;; Locate the barrier before the changed region (goto-char (if beg-lit-limits (car beg-lit-limits) beg)) - (c-syntactic-skip-backward "^;{}" (max (- beg 2048) (point-min))) + (c-syntactic-skip-backward "^;{}" (c-determine-limit 512)) (setq new-beg (point)) ;; Remove the syntax-table properties from each pertinent <...> pair. @@ -5393,8 +5393,7 @@ comment at the start of cc-engine.el for more info." ;; Locate the barrier after END. (goto-char (if end-lit-limits (cdr end-lit-limits) end)) - (c-syntactic-re-search-forward "[;{}]" - (min (+ end 2048) (point-max)) 'end) + (c-syntactic-re-search-forward "[;{}]" (c-determine-+ve-limit 512) 'end) (setq new-end (point)) ;; Remove syntax-table properties from the remaining pertinent <...> From 57f845ee63c2ed533fc55b19b9f35a63402ffcd4 Mon Sep 17 00:00:00 2001 From: Alan Mackenzie Date: Wed, 11 Apr 2012 18:09:10 +0000 Subject: [PATCH 29/43] Make imenu work again for Objective C Mode. --- lisp/ChangeLog | 5 +++++ lisp/progmodes/cc-menus.el | 41 +++++++++++++++++++------------------- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index cde248a979e..9ef18ad7086 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,10 @@ 2012-04-11 Alan Mackenzie + * progmodes/cc-menus.el (cc-imenu-objc-generic-expression): Make + imenu work again for Objective C Mode. Correct the *-index + values, these having been disturbed by a previous change in + 2011-08. + * progmodes/cc-engine.el (c-before-change-check-<>-operators): Correct two search limits. diff --git a/lisp/progmodes/cc-menus.el b/lisp/progmodes/cc-menus.el index f57fcbff5ca..a53d65f6307 100644 --- a/lisp/progmodes/cc-menus.el +++ b/lisp/progmodes/cc-menus.el @@ -63,6 +63,20 @@ For example: A sample value might look like: `\\(_P\\|_PROTO\\)'.") +;; *Warning for cc-mode developers* +;; +;; `cc-imenu-objc-generic-expression' elements depend on +;; `cc-imenu-c++-generic-expression'. So if you change this +;; expression, you need to change following variables, +;; `cc-imenu-objc-generic-expression-*-index', +;; too. `cc-imenu-objc-function' uses these *-index variables, in +;; order to know where the each regexp *group \\(foobar\\)* elements +;; are started. +;; +;; *-index variables are initialized during `cc-imenu-objc-generic-expression' +;; being initialized. +;; + (defvar cc-imenu-c++-generic-expression `( ;; Try to match ::operator definitions first. Otherwise `X::operator new ()' @@ -187,23 +201,8 @@ A sample value might look like: `\\(_P\\|_PROTO\\)'.") ")" "[.," c-alnum " \t\n\r]*" "{" - )) 1)) - "Imenu generic expression for Java mode. See -`imenu-generic-expression'.") - -;; *Warning for cc-mode developers* -;; -;; `cc-imenu-objc-generic-expression' elements depend on -;; `cc-imenu-c++-generic-expression'. So if you change this -;; expression, you need to change following variables, -;; `cc-imenu-objc-generic-expression-*-index', -;; too. `cc-imenu-objc-function' uses these *-index variables, in -;; order to know where the each regexp *group \\(foobar\\)* elements -;; are started. -;; -;; *-index variables are initialized during `cc-imenu-objc-generic-expression' -;; being initialized. -;; + )) 1)) + "Imenu generic expression for Java mode. See `imenu-generic-expression'.") ;; Internal variables (defvar cc-imenu-objc-generic-expression-noreturn-index nil) @@ -224,7 +223,7 @@ A sample value might look like: `\\(_P\\|_PROTO\\)'.") "\\|" ;; > General function name regexp ;; Pick a token by (match-string 3) - (car (cdr (nth 2 cc-imenu-c++-generic-expression))) ; -> index += 5 + (car (cdr (nth 2 cc-imenu-c++-generic-expression))) ; -> index += 6 (prog2 (setq cc-imenu-objc-generic-expression-general-func-index 3) "") ;; > Special case for definitions using phony prototype macros like: ;; > `int main _PROTO( (int argc,char *argv[]) )'. @@ -233,11 +232,11 @@ A sample value might look like: `\\(_P\\|_PROTO\\)'.") (concat "\\|" (car (cdr (nth 3 cc-imenu-c++-generic-expression))) ; -> index += 1 - (prog2 (setq cc-imenu-objc-generic-expression-objc-base-index 9) "") + (prog2 (setq cc-imenu-objc-generic-expression-objc-base-index 10) "") ) - (prog2 (setq cc-imenu-objc-generic-expression-objc-base-index 8) "") + (prog2 (setq cc-imenu-objc-generic-expression-objc-base-index 9) "") "") ; -> index += 0 - (prog2 (setq cc-imenu-objc-generic-expression-proto-index 8) "") + (prog2 (setq cc-imenu-objc-generic-expression-proto-index 9) "") ;; ;; For Objective-C ;; Pick a token by (match-string 8 or 9) From 4517fe3a47700373d03fb389ff038572a1144f5b Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 11 Apr 2012 17:41:58 -0400 Subject: [PATCH 30/43] * imenu.el (imenu-add-to-menubar): `current-local-map' can be nil. Reported by Noah Friedman. Backport from trunk. --- lisp/ChangeLog | 16 ++++++++++------ lisp/imenu.el | 3 ++- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9ef18ad7086..00183d9ebb2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,9 +1,13 @@ +2012-04-11 Stefan Monnier + + * imenu.el (imenu-add-to-menubar): `current-local-map' can be nil. + Reported by Noah Friedman. Backport from trunk. + 2012-04-11 Alan Mackenzie - * progmodes/cc-menus.el (cc-imenu-objc-generic-expression): Make - imenu work again for Objective C Mode. Correct the *-index - values, these having been disturbed by a previous change in - 2011-08. + * progmodes/cc-menus.el (cc-imenu-objc-generic-expression): + Make imenu work again for Objective C Mode. Correct the *-index + values, these having been disturbed by a previous change in 2011-08. * progmodes/cc-engine.el (c-before-change-check-<>-operators): Correct two search limits. @@ -56,8 +60,8 @@ 2012-04-07 Eli Zaretskii - * minibuffer.el (completion-in-region-mode-map): Bind - completion-help-at-point to M-? rather than ?. (Bug#11182) + * minibuffer.el (completion-in-region-mode-map): + Bind completion-help-at-point to M-? rather than ?. (Bug#11182) 2012-04-05 Lars Magne Ingebrigtsen diff --git a/lisp/imenu.el b/lisp/imenu.el index 8363956355b..5472f4246d1 100644 --- a/lisp/imenu.el +++ b/lisp/imenu.el @@ -963,7 +963,8 @@ See the command `imenu' for more information." imenu-generic-expression (not (eq imenu-create-index-function 'imenu-default-create-index-function))) - (unless (keymapp (lookup-key (current-local-map) [menu-bar index])) + (unless (and (current-local-map) + (keymapp (lookup-key (current-local-map) [menu-bar index]))) (let ((newmap (make-sparse-keymap))) (set-keymap-parent newmap (current-local-map)) (setq imenu--last-menubar-index-alist nil) From dc2ab667ae97f2194f5a258084e0dd96eb064bff Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Wed, 11 Apr 2012 22:31:16 +0000 Subject: [PATCH 31/43] gnus-art.el (article-wash-html): Fix non-ASCII characters when washing HTML (bug#7410). gnus-msg.el (gnus-inews-insert-gcc): Protect against when we don't have a group name. gnus-start.el (gnus-read-newsrc-el-file): Protect against broken .newsrc.el files. --- lisp/gnus/ChangeLog | 13 +++++++++++++ lisp/gnus/gnus-art.el | 4 +++- lisp/gnus/gnus-msg.el | 6 ++++-- lisp/gnus/gnus-start.el | 4 +++- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index ef0f1c5c852..bac79f492bc 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,16 @@ +2012-04-10 Lars Magne Ingebrigtsen + + * gnus-msg.el (gnus-inews-insert-gcc): Protect against when we don't + have a group name. + + * gnus-art.el (article-wash-html): Ensure that we insert the HTML into + a multibyte buffer (bug#7410). + (article-wash-html): Parse the original article buffer to get the + unencoded data (bug#7410). + + * gnus-start.el (gnus-read-newsrc-el-file): Protect against broken + .newsrc.el files. + 2012-03-22 Lars Magne Ingebrigtsen * auth-source.el (auth-source-netrc-create): Quote tokens that contain diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 048f8956567..b04615dc5a9 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -2754,9 +2754,11 @@ If READ-CHARSET, ask for a coding system." (let ((handles nil) (buffer-read-only nil)) (when (gnus-buffer-live-p gnus-original-article-buffer) - (setq handles (mm-dissect-buffer t t))) + (with-current-buffer gnus-original-article-buffer + (setq handles (mm-dissect-buffer t t)))) (article-goto-body) (delete-region (point) (point-max)) + (mm-enable-multibyte) (mm-inline-text-html handles))) (defvar gnus-article-browse-html-temp-list nil diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el index 500ace9e8ff..507f0406ea1 100644 --- a/lisp/gnus/gnus-msg.el +++ b/lisp/gnus/gnus-msg.el @@ -1670,11 +1670,13 @@ this is a reply." (not (setq result (cond - ((stringp (caar var)) + ((and group + (stringp (caar var))) ;; Regexp. (when (string-match (caar var) group) (cdar var))) - ((functionp (car var)) + ((and group + (functionp (car var))) ;; Function. (funcall (car var) group)) (t diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el index bb7dd76d590..f025960c348 100644 --- a/lisp/gnus/gnus-start.el +++ b/lisp/gnus/gnus-start.el @@ -2442,7 +2442,9 @@ If FORCE is non-nil, the .newsrc file is read." (when gnus-newsrc-assoc (setq gnus-newsrc-alist gnus-newsrc-assoc)))) (dolist (elem gnus-newsrc-alist) - (setcar elem (mm-string-as-unibyte (car elem)))) + ;; Protect against broken .newsrc.el files. + (when (car elem) + (setcar elem (mm-string-as-unibyte (car elem))))) (gnus-make-hashtable-from-newsrc-alist) (when (file-newer-than-file-p file ding-file) ;; Old format quick file From 8edb942b9f5a1bd8615c3e5bbb018ab3b59e204f Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Wed, 11 Apr 2012 21:09:15 -0400 Subject: [PATCH 32/43] Doc and manual fixes related to mule * doc/emacs/mule.texi (International): Copyedits. (International Chars): Update C-x = example output. (Disabling Multibyte): Rename from "Enabling Multibyte". Clarify what "unibyte: t" does, and mode-line description. (Unibyte Mode): Update for "Disabling Multibyte" node name change. Use Texinfo recommended convention for quotes+punctuation. * doc/emacs/custom.texi (Specifying File Variables): Fix "unibyte" description. Update for "Disabling Multibyte" node name change. * doc/emacs/emacs.texi: Update for "Disabling Multibyte" node name change. * doc/lispref/loading.texi (Loading Non-ASCII): "unibyte:" can also be at the end. * lisp/international/mule.el (set-auto-coding-for-load): Doc fix. --- doc/emacs/ChangeLog | 12 +++++ doc/emacs/custom.texi | 4 +- doc/emacs/emacs.texi | 2 +- doc/emacs/mule.texi | 89 +++++++++++++++++++++++--------------- doc/lispref/ChangeLog | 4 ++ doc/lispref/loading.texi | 2 +- lisp/ChangeLog | 4 ++ lisp/international/mule.el | 5 ++- 8 files changed, 80 insertions(+), 42 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index f81e2157e51..e69a0e90ec8 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,15 @@ +2012-04-12 Glenn Morris + + * mule.texi (International): Copyedits. + (International Chars): Update C-x = example output. + (Disabling Multibyte): Rename from "Enabling Multibyte". + Clarify what "unibyte: t" does, and mode-line description. + (Unibyte Mode): Update for "Disabling Multibyte" node name change. + Use Texinfo recommended convention for quotes+punctuation. + * custom.texi (Specifying File Variables): Fix "unibyte" description. + Update for "Disabling Multibyte" node name change. + * emacs.texi: Update for "Disabling Multibyte" node name change. + 2012-04-10 Glenn Morris * abbrevs.texi, arevert-xtra.texi, buffers.texi, building.texi: diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index a17eb54e337..6bc96bda9ca 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi @@ -1163,8 +1163,8 @@ returned by that expression is ignored). conversion of this file. @xref{Coding Systems}. @item -@code{unibyte} says to visit the file in a unibyte buffer, if the -value is @code{t}. @xref{Enabling Multibyte}. +@code{unibyte} says to load or compile a file of Emacs Lisp in unibyte +mode, if the value is @code{t}. @xref{Disabling Multibyte}. @end itemize @noindent diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index 152fa73edea..a842f412356 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi @@ -516,7 +516,7 @@ Frames and Graphical Displays International Character Set Support * International Chars:: Basic concepts of multibyte characters. -* Enabling Multibyte:: Controlling whether to use multibyte characters. +* Disabling Multibyte:: Controlling whether to use multibyte characters. * Language Environments:: Setting things up for the language you use. * Input Methods:: Entering text characters not on your keyboard. * Select Input Method:: Specifying your choice of input methods. diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi index aeaec2c502e..16fec0961bf 100644 --- a/doc/emacs/mule.texi +++ b/doc/emacs/mule.texi @@ -41,7 +41,7 @@ including European and Vietnamese variants of the Latin alphabet, as well as Cyrillic, Devanagari (for Hindi and Marathi), Ethiopic, Greek, Han (for Chinese and Japanese), Hangul (for Korean), Hebrew, IPA, Kannada, Lao, Malayalam, Tamil, Thai, Tibetan, and Vietnamese scripts. -Emacs also supports various encodings of these characters used by +Emacs also supports various encodings of these characters that are used by other internationalized software, such as word processors and mailers. Emacs allows editing text with international characters by supporting @@ -74,14 +74,14 @@ others. @item You can insert non-@acronym{ASCII} characters or search for them. To do that, you can specify an input method (@pxref{Select Input Method}) suitable -for your language, or use the default input method set up when you set +for your language, or use the default input method set up when you chose your language environment. If your keyboard can produce non-@acronym{ASCII} characters, you can select an appropriate keyboard coding system (@pxref{Terminal Coding}), and Emacs will accept those characters. Latin-1 characters can also be input by using the @kbd{C-x 8} prefix, see @ref{Unibyte Mode}. -On the X Window System, your locale should be set to an appropriate +With the X Window System, your locale should be set to an appropriate value to make sure Emacs interprets keyboard input correctly; see @ref{Language Environments, locales}. @end itemize @@ -90,7 +90,7 @@ value to make sure Emacs interprets keyboard input correctly; see @menu * International Chars:: Basic concepts of multibyte characters. -* Enabling Multibyte:: Controlling whether to use multibyte characters. +* Disabling Multibyte:: Controlling whether to use multibyte characters. * Language Environments:: Setting things up for the language you use. * Input Methods:: Entering text characters not on your keyboard. * Select Input Method:: Specifying your choice of input methods. @@ -224,29 +224,30 @@ faces used to display the character, and any overlays containing it in a buffer whose coding system is @code{utf-8-unix}: @smallexample - character: @`A (192, #o300, #xc0) -preferred charset: unicode (Unicode (ISO10646)) - code point: 0xC0 - syntax: w which means: word - category: j:Japanese l:Latin v:Vietnamese - buffer code: #xC3 #x80 - file code: not encodable by coding system undecided-unix - display: by this font (glyph code) + position: 1 of 1 (0%), column: 0 + character: @`A (displayed as @`A) (codepoint 192, #o300, #xc0) + preferred charset: unicode (Unicode (ISO10646)) +code point in charset: 0xC0 + syntax: w which means: word + category: .:Base, L:Left-to-right (strong), + j:Japanese, l:Latin, v:Viet + buffer code: #xC3 #x80 + file code: not encodable by coding system undecided-unix + display: by this font (glyph code) xft:-unknown-DejaVu Sans Mono-normal-normal- normal-*-13-*-*-*-m-0-iso10646-1 (#x82) Character code properties: customize what to show name: LATIN CAPITAL LETTER A WITH GRAVE + old-name: LATIN CAPITAL LETTER A GRAVE general-category: Lu (Letter, Uppercase) decomposition: (65 768) ('A' '`') - old-name: LATIN CAPITAL LETTER A GRAVE - -There are text properties here: - auto-composed t @end smallexample -@node Enabling Multibyte -@section Enabling Multibyte Characters +@c FIXME? Does this section even belong in the user manual? +@c Seems more appropriate to the lispref? +@node Disabling Multibyte +@section Disabling Multibyte Characters By default, Emacs starts in multibyte mode: it stores the contents of buffers and strings using an internal encoding that represents @@ -275,32 +276,48 @@ Coding}. Unlike @code{find-file-literally}, finding a file as @samp{raw-text} doesn't disable format conversion, uncompression, or auto mode selection. +@c Not a single file in Emacs uses this feature. Is it really worth +@c mentioning in the _user_ manual? Also, this duplicates somewhat +@c "Loading Non-ASCII" from the lispref. @cindex Lisp files, and multibyte operation @cindex multibyte operation, and Lisp files @cindex unibyte operation, and Lisp files @cindex init file, and non-@acronym{ASCII} characters Emacs normally loads Lisp files as multibyte. This includes the Emacs initialization -file, @file{.emacs}, and the initialization files of Emacs packages +file, @file{.emacs}, and the initialization files of packages such as Gnus. However, you can specify unibyte loading for a -particular Lisp file, by putting @w{@samp{-*-unibyte: t;-*-}} in a -comment on the first line (@pxref{File Variables}). Then that file is -always loaded as unibyte text. The motivation for these conventions -is that it is more reliable to always load any particular Lisp file in -the same way. However, you can load a Lisp file as unibyte, on any -one occasion, by typing @kbd{C-x @key{RET} c raw-text @key{RET}} -immediately before loading it. +particular Lisp file, by adding an entry @samp{unibyte: t} in a file +local variables section (@pxref{File Variables}). Then that file is +always loaded as unibyte text. Note that this does not represent a +real @code{unibyte} variable, rather it just acts as an indicator +to Emacs in the same way as @code{coding} does (@pxref{Specify Coding}). +@ignore +@c I don't see the point of this statement: +The motivation for these conventions is that it is more reliable to +always load any particular Lisp file in the same way. +@end ignore +Note also that this feature only applies to @emph{loading} Lisp files +for evaluation, not to visiting them for editing. You can also load a +Lisp file as unibyte, on any one occasion, by typing @kbd{C-x +@key{RET} c raw-text @key{RET}} immediately before loading it. - The mode line indicates whether multibyte character support is -enabled in the current buffer. If it is, there are two or more -characters (most often two dashes) near the beginning of the mode -line, before the indication of the visited file's end-of-line -convention (colon, backslash, etc.). When multibyte characters -are not enabled, nothing precedes the colon except a single dash. -@xref{Mode Line}, for more details about this. +@c See http://debbugs.gnu.org/11226 for lack of unibyte tooltip. +@vindex enable-multibyte-characters +The buffer-local variable @code{enable-multibyte-characters} is +non-@code{nil} in multibyte buffers, and @code{nil} in unibyte ones. +The mode line also indicates whether a buffer is multibyte or not. +@xref{Mode Line}. With a graphical display, in a multibyte buffer, +the portion of the mode line that indicates the character set has a +tooltip that (amongst other things) says that the buffer is multibyte. +In a unibyte buffer, the character set indicator is absent. Thus, in +a unibyte buffer (when using a graphical display) there is normally +nothing before the indication of the visited file's end-of-line +convention (colon, backslash, etc.), unless you are using an input +method. @findex toggle-enable-multibyte-characters -You can turn on multibyte support in a specific buffer by invoking the +You can turn off multibyte support in a specific buffer by invoking the command @code{toggle-enable-multibyte-characters} in that buffer. @node Language Environments @@ -1540,7 +1557,7 @@ can still handle these character codes as if they belonged to set-language-environment} and specify a suitable language environment such as @samp{Latin-@var{n}}. - For more information about unibyte operation, see @ref{Enabling + For more information about unibyte operation, see @ref{Disabling Multibyte}. Note particularly that you probably want to ensure that your initialization files are read as unibyte if they contain non-@acronym{ASCII} characters. @@ -1613,7 +1630,7 @@ a key sequence is allowed. library is loaded, the @key{ALT} modifier key, if the keyboard has one, serves the same purpose as @kbd{C-x 8}: use @key{ALT} together with an accent character to modify the following letter. In addition, -if the keyboard has keys for the Latin-1 ``dead accent characters,'' +if the keyboard has keys for the Latin-1 ``dead accent characters'', they too are defined to compose with the following character, once @code{iso-transl} is loaded. diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index a496c5dcdd7..3990db3d602 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,7 @@ +2012-04-12 Glenn Morris + + * loading.texi (Loading Non-ASCII): "unibyte:" can also be at the end. + 2012-04-10 Glenn Morris * strings.texi (Case Tables): diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi index 7fc9535d88b..0c02f338c7b 100644 --- a/doc/lispref/loading.texi +++ b/doc/lispref/loading.texi @@ -375,7 +375,7 @@ strings are multibyte strings should not be noticeable, since inserting them in unibyte buffers converts them to unibyte automatically. However, if this does make a difference, you can force a particular Lisp file to be interpreted as unibyte by writing -@samp{-*-unibyte: t;-*-} in a comment on the file's first line. With +@samp{unibyte: t} in a local variables section. With that designator, the file will unconditionally be interpreted as unibyte, even in an ordinary multibyte Emacs session. This can matter when making keybindings to non-@acronym{ASCII} characters written as diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 00183d9ebb2..10dd1d5448f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-04-12 Glenn Morris + + * international/mule.el (set-auto-coding-for-load): Doc fix. + 2012-04-11 Stefan Monnier * imenu.el (imenu-add-to-menubar): `current-local-map' can be nil. diff --git a/lisp/international/mule.el b/lisp/international/mule.el index 7bf15009687..1f88df52fd4 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el @@ -1754,8 +1754,9 @@ functions, so they won't be called at all." :type '(repeat function)) (defvar set-auto-coding-for-load nil - "Non-nil means look for `load-coding' property instead of `coding'. -This is used for loading and byte-compiling Emacs Lisp files.") + "Non-nil means respect a \"unibyte: t\" entry in file local variables. +Emacs binds this variable to t when loading or byte-compiling Emacs Lisp +files.") (defun auto-coding-alist-lookup (filename) "Return the coding system specified by `auto-coding-alist' for FILENAME." From e0550caef5dbc1c586c303c3a87934a49d2fae14 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Wed, 11 Apr 2012 21:23:34 -0700 Subject: [PATCH 33/43] * doc/emacs/mule.texi (Language Environments): Copyedits. --- doc/emacs/ChangeLog | 2 ++ doc/emacs/mule.texi | 38 +++++++++++++++++++++++--------------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index e69a0e90ec8..bd77e1232e2 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -6,6 +6,8 @@ Clarify what "unibyte: t" does, and mode-line description. (Unibyte Mode): Update for "Disabling Multibyte" node name change. Use Texinfo recommended convention for quotes+punctuation. + (Language Environments): Copyedits. + * custom.texi (Specifying File Variables): Fix "unibyte" description. Update for "Disabling Multibyte" node name change. * emacs.texi: Update for "Disabling Multibyte" node name change. diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi index 16fec0961bf..a15448fbb15 100644 --- a/doc/emacs/mule.texi +++ b/doc/emacs/mule.texi @@ -326,8 +326,8 @@ command @code{toggle-enable-multibyte-characters} in that buffer. All supported character sets are supported in Emacs buffers whenever multibyte characters are enabled; there is no need to select a -particular language in order to display its characters in an Emacs -buffer. However, it is important to select a @dfn{language +particular language in order to display its characters. +However, it is important to select a @dfn{language environment} in order to set various defaults. Roughly speaking, the language environment represents a choice of preferred script rather than a choice of language. @@ -344,7 +344,8 @@ language environment also specifies a default input method. @code{current-language-environment} or use the command @kbd{M-x set-language-environment}. It makes no difference which buffer is current when you use this command, because the effects apply globally -to the Emacs session. The supported language environments include: +to the Emacs session. The supported language environments +(see the variable @code{language-info-alist}) include: @cindex Euro sign @cindex UTF-8 @@ -368,11 +369,15 @@ which prefers Cyrillic characters and files encoded in Windows-1255). @cindex Intlfonts package, installation To display the script(s) used by your language environment on a graphical display, you need to have a suitable font. If some of the -characters appear as empty boxes or hex codes, you should install the +characters appear as empty boxes or hex codes, you should install +extra fonts. Your operating system may have optional fonts that +you can install; or you can install the GNU Intlfonts package, which includes fonts for most supported -scripts.@footnote{If you run Emacs on X, you need to inform the X -server about the location of the newly installed fonts with the -following commands: +scripts.@footnote{If you run Emacs on X, you may need to inform the X +server about the location of the newly installed fonts with +commands such as: +@c FIXME? I feel like this may be out of date. +@c Eg the intlfonts tarfile is ~ 10 years old. @example xset fp+ /usr/local/share/emacs/fonts @@ -387,22 +392,25 @@ following commands: @cindex locales Some operating systems let you specify the character-set locale you are using by setting the locale environment variables @env{LC_ALL}, -@env{LC_CTYPE}, or @env{LANG}.@footnote{If more than one of these is +@env{LC_CTYPE}, or @env{LANG}. (If more than one of these is set, the first one that is nonempty specifies your locale for this -purpose.} During startup, Emacs looks up your character-set locale's +purpose.) During startup, Emacs looks up your character-set locale's name in the system locale alias table, matches its canonical name against entries in the value of the variables -@code{locale-charset-language-names} and @code{locale-language-names}, +@code{locale-charset-language-names} and @code{locale-language-names} +(the former overrides the latter), and selects the corresponding language environment if a match is found. -(The former variable overrides the latter.) It also adjusts the display +It also adjusts the display table and terminal coding system, the locale coding system, the preferred coding system as needed for the locale, and---last but not least---the way Emacs decodes non-@acronym{ASCII} characters sent by your keyboard. +@c This seems unlikely, doesn't it? If you modify the @env{LC_ALL}, @env{LC_CTYPE}, or @env{LANG} -environment variables while running Emacs, you may want to invoke the -@code{set-locale-environment} function afterwards to readjust the -language environment from the new locale. +environment variables while running Emacs (by using @kbd{M-x setenv}), +you may want to invoke the @code{set-locale-environment} +function afterwards to readjust the language environment from the new +locale. @vindex locale-preferred-coding-systems The @code{set-locale-environment} function normally uses the preferred @@ -438,7 +446,7 @@ this command describes the chosen language environment. language environment. The hook functions can test for a specific language environment by checking the variable @code{current-language-environment}. This hook is where you should -put non-default settings for specific language environment, such as +put non-default settings for specific language environments, such as coding systems for keyboard input and terminal output, the default input method, etc. From 893585f47bb9e25d39df66fef9674b6baa25e57e Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Wed, 11 Apr 2012 22:18:15 -0700 Subject: [PATCH 34/43] * doc/emacs/mule.texi (Input Methods): Copyedits. Use "^" for the postfix example, because it is less confusing inside Info's `quotes'. --- doc/emacs/ChangeLog | 2 ++ doc/emacs/mule.texi | 27 ++++++++++++++------------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index bd77e1232e2..8f384720170 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -7,6 +7,8 @@ (Unibyte Mode): Update for "Disabling Multibyte" node name change. Use Texinfo recommended convention for quotes+punctuation. (Language Environments): Copyedits. + (Input Methods): Copyedits. Use "^" for the postfix example, + because it is less confusing inside Info's `quotes'. * custom.texi (Specifying File Variables): Fix "unibyte" description. Update for "Disabling Multibyte" node name change. diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi index a15448fbb15..08d764ea85c 100644 --- a/doc/emacs/mule.texi +++ b/doc/emacs/mule.texi @@ -466,7 +466,7 @@ for that key. @cindex input methods An @dfn{input method} is a kind of character conversion designed specifically for interactive input. In Emacs, typically each language -has its own input method; sometimes several languages which use the same +has its own input method; sometimes several languages that use the same characters can share one input method. A few languages support several input methods. @@ -479,14 +479,14 @@ work this way. characters into one letter. Many European input methods use composition to produce a single non-@acronym{ASCII} letter from a sequence that consists of a letter followed by accent characters (or vice versa). For example, some -methods convert the sequence @kbd{a'} into a single accented letter. +methods convert the sequence @kbd{o ^} into a single accented letter. These input methods have no special commands of their own; all they do is compose sequences of printing characters. The input methods for syllabic scripts typically use mapping followed by composition. The input methods for Thai and Korean work this way. First, letters are mapped into symbols for particular sounds or tone -marks; then, sequences of these which make up a whole syllable are +marks; then, sequences of these that make up a whole syllable are mapped into one syllable sign. Chinese and Japanese require more complex methods. In Chinese input @@ -496,7 +496,8 @@ portions of the character (input methods @code{chinese-4corner} and @code{chinese-sw}, and others). One input sequence typically corresponds to many possible Chinese characters. You select the one you mean using keys such as @kbd{C-f}, @kbd{C-b}, @kbd{C-n}, -@kbd{C-p}, and digits, which have special meanings in this situation. +@kbd{C-p} (or the arrow keys), and digits, which have special meanings +in this situation. The possible characters are conceptually arranged in several rows, with each row holding up to 10 alternatives. Normally, Emacs displays @@ -510,8 +511,8 @@ the alternatives in the current row. As you do this, Emacs highlights the current alternative with a special color; type @code{C-@key{SPC}} to select the current alternative and use it as input. The alternatives in the row are also numbered; the number appears before -the alternative. Typing a digit @var{n} selects the @var{n}th -alternative of the current row and uses it as input. +the alternative. Typing a number selects the associated alternative +of the current row and uses it as input. @key{TAB} in these Chinese input methods displays a buffer showing all the possible characters at once; then clicking @kbd{Mouse-2} on @@ -530,15 +531,15 @@ the alternatives. Sometimes it is useful to cut off input method processing so that the characters you have just entered will not combine with subsequent characters. For example, in input method @code{latin-1-postfix}, the -sequence @kbd{e '} combines to form an @samp{e} with an accent. What if +sequence @kbd{o ^} combines to form an @samp{o} with an accent. What if you want to enter them as separate characters? One way is to type the accent twice; this is a special feature for -entering the separate letter and accent. For example, @kbd{e ' '} gives -you the two characters @samp{e'}. Another way is to type another letter -after the @kbd{e}---something that won't combine with that---and -immediately delete it. For example, you could type @kbd{e e @key{DEL} -'} to get separate @samp{e} and @samp{'}. +entering the separate letter and accent. For example, @kbd{o ^ ^} gives +you the two characters @samp{o^}. Another way is to type another letter +after the @kbd{o}---something that won't combine with that---and +immediately delete it. For example, you could type @kbd{o o @key{DEL} +^} to get separate @samp{o} and @samp{^}. Another method, more general but not quite as easy to type, is to use @kbd{C-\ C-\} between two characters to stop them from combining. This @@ -567,7 +568,7 @@ possible characters to type next is displayed in the echo area (but not when you are in the minibuffer). Another facility for typing characters not on your keyboard is by -using the @kbd{C-x 8 @key{RET}} (@code{ucs-insert}) to insert a single +using @kbd{C-x 8 @key{RET}} (@code{ucs-insert}) to insert a single character based on its Unicode name or code-point; see @ref{Inserting Text}. From 81927dd2a4205aa38bc5aaa37eb3aa8ab57fb8de Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Thu, 12 Apr 2012 22:50:58 +0800 Subject: [PATCH 35/43] New Lisp manual nodes, Applying Customizations and Custom Themes. * doc/lispref/customize.texi (Applying Customizations): (Custom Themes): New nodes. * doc/lispref/display.texi (Defining Faces): Reference custom-set-faces. * doc/lispref/modes.texi (Defining Minor Modes, Defining Minor Modes): * doc/lispref/os.texi (Startup Summary): Copyedits. * doc/emacs/custom.texi (Creating Custom Themes): Add reference to Custom Themes node in Lisp manual. * lisp/custom.el (custom-theme-set-variables): Doc fix. --- doc/emacs/ChangeLog | 5 ++ doc/emacs/custom.texi | 5 +- doc/lispref/ChangeLog | 10 +++ doc/lispref/customize.texi | 158 ++++++++++++++++++++++++++++++++++--- doc/lispref/display.texi | 59 +++++++------- doc/lispref/elisp.texi | 6 +- doc/lispref/modes.texi | 6 +- doc/lispref/os.texi | 6 +- doc/lispref/vol1.texi | 6 +- doc/lispref/vol2.texi | 6 +- lisp/ChangeLog | 4 + lisp/custom.el | 21 +++-- 12 files changed, 230 insertions(+), 62 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 8f384720170..5b4ab363202 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,8 @@ +2012-04-12 Chong Yidong + + * custom.texi (Creating Custom Themes): Add reference to Custom + Themes node in Lisp manual. + 2012-04-12 Glenn Morris * mule.texi (International): Copyedits. diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index 6bc96bda9ca..72b4961e209 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi @@ -684,9 +684,8 @@ the @samp{[Merge Theme]} button and specifying the special theme named A theme file is simply an Emacs Lisp source file, and loading the Custom theme works by loading the Lisp file. Therefore, you can edit a theme file directly instead of using the @file{*Custom Theme*} -buffer. -@c Add link to the relevant Emacs Lisp Reference manual node, once -@c that is written. +buffer. @xref{Custom Themes,,, elisp, The Emacs Lisp Reference +Manual}, for details. @node Variables @section Variables diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 3990db3d602..21050287fcc 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,13 @@ +2012-04-12 Chong Yidong + + * customize.texi (Applying Customizations): + (Custom Themes): New nodes. + + * display.texi (Defining Faces): Reference custom-set-faces. + + * modes.texi (Defining Minor Modes, Defining Minor Modes): + * os.texi (Startup Summary): Copyedits. + 2012-04-12 Glenn Morris * loading.texi (Loading Non-ASCII): "unibyte:" can also be at the end. diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi index 167dfe7d4c5..7e6b9ad40ac 100644 --- a/doc/lispref/customize.texi +++ b/doc/lispref/customize.texi @@ -4,20 +4,25 @@ @c See the file elisp.texi for copying conditions. @setfilename ../../info/customize @node Customization, Loading, Macros, Top -@chapter Writing Customization Definitions +@chapter Customization Settings -@cindex customization definitions - This chapter describes how to declare user options for customization, -and also customization groups for classifying them. We use the term -@dfn{customization item} to include both kinds of customization -definitions---as well as face definitions (@pxref{Defining Faces}). +@cindex customization item + This chapter describes how to declare customizable variables and +customization groups for classifying them. We use the term +@dfn{customization item} to include customizable variables, +customization groups, as well as faces. + + @xref{Defining Faces}, for the @code{defface} macro, which is used +for declaring customizable faces. @menu -* Common Keywords:: Common keyword arguments for all kinds of - customization declarations. -* Group Definitions:: Writing customization group definitions. -* Variable Definitions:: Declaring user options. -* Customization Types:: Specifying the type of a user option. +* Common Keywords:: Common keyword arguments for all kinds of + customization declarations. +* Group Definitions:: Writing customization group definitions. +* Variable Definitions:: Declaring user options. +* Customization Types:: Specifying the type of a user option. +* Applying Customizations:: Functions to apply customization settings. +* Custom Themes:: Writing Custom themes. @end menu @node Common Keywords @@ -306,7 +311,7 @@ individual types for a description of how to use @code{:options}. @item :set @var{setfunction} @kindex set@r{, @code{defcustom} keyword} Specify @var{setfunction} as the way to change the value of this -option when using the Customize user interface. The function +option when using the Customize interface. The function @var{setfunction} should take two arguments, a symbol (the option name) and the new value, and should do whatever is necessary to update the value properly for this option (which may not mean simply setting @@ -1250,3 +1255,132 @@ the inferior widgets will convert @emph{their} inferior widgets. If the data structure is itself recursive, this conversion is an infinite recursion. The @code{lazy} widget prevents the recursion: it convert its @code{:type} argument only when needed. + +@node Applying Customizations +@section Applying Customizations + +The following functions are responsible for installing the user's +customization settings for variables and faces, respectively. When +the user invokes @samp{Save for future sessions} in the Customize +interface, that takes effect by writing a @code{custom-set-variables} +and/or a @code{custom-set-faces} form into the custom file, to be +evaluated the next time Emacs starts up. + +@defun custom-set-variables &rest args +This function installs the variable customizations specified by +@var{args}. Each argument in @var{args} should have the form + +@example +(@var{var} @var{expression} [@var{now} [@var{request} [@var{comment}]]]) +@end example + +@noindent +@var{var} is a variable name (a symbol), and @var{expression} is an +expression which evaluates to the desired customized value. + +If the @code{defcustom} form for @var{var} has been evaluated prior to +this @code{custom-set-variables} call, @var{expression} is immediately +evaluated, and the variable's value is set to the result. Otherwise, +@var{expression} is stored into the variable's @code{saved-value} +property, to be evaluated when the relevant @code{defcustom} is called +(usually when the library defining that variable is loaded into +Emacs). + +The @var{now}, @var{request}, and @var{comment} entries are for +internal use only, and may be omitted. @var{now}, if non-@code{nil}, +means to set the variable's value now, even if the variable's +@code{defcustom} form has not been evaluated. @var{request} is a list +of features to be loaded immediately (@pxref{Named Features}). +@var{comment} is a string describing the customization. +@end defun + +@defun custom-set-faces &rest args +This function installs the face customizations specified by +@var{args}. Each argument in @var{args} should have the form + +@example +(@var{face} @var{spec} [@var{now} [@var{comment}]]) +@end example + +@noindent +@var{face} is a face name (a symbol), and @var{spec} is the customized +face specification for that face (@pxref{Defining Faces}). + +The @var{now} and @var{comment} entries are for internal use only, and +may be omitted. @var{now}, if non-@code{nil}, means to install the +face specification now, even if the @code{defface} form has not been +evaluated. @var{comment} is a string describing the customization. +@end defun + +@node Custom Themes +@section Custom Themes + + @dfn{Custom themes} are collections of settings that can be enabled +or disabled as a unit. @xref{Custom Themes,,, emacs, The GNU Emacs +Manual}. Each Custom theme is defined by an Emacs Lisp source file, +which should follow the conventions described in this section. +(Instead of writing a Custom theme by hand, you can also create one +using a Customize-like interface; @pxref{Creating Custom Themes,,, +emacs, The GNU Emacs Manual}.) + + A Custom theme file should be named @file{@var{foo}-theme.el}, where +@var{foo} is the theme name. The first Lisp form in the file should +be a call to @code{deftheme}, and the last form should be a call to +@code{provide-theme}. + +@defmac deftheme theme &optional doc +This macro declares @var{theme} (a symbol) as the name of a Custom +theme. The optional argument @var{doc} specifies a string describing +the theme; this is the description shown when the user invokes the +@kbd{?} (@code{describe-theme}) command in the @samp{*Custom Themes*} +buffer. + +Two special theme names are disallowed: @code{user} is a ``dummy +theme'' used to store the user's direct customization settings, and +@code{changed} is a ``dummy theme'' used to store changes made outside +of the Customize system. If you specify either of these as the +@var{theme} argument, @code{deftheme} signals an error. +@end defmac + +@defmac provide-theme theme +This macro declares that the theme named @var{theme} has been fully +specified. +@end defmac + + In between @code{deftheme} and @code{provide-theme} are the Lisp +forms specifying the theme settings---usually a call to +@code{custom-theme-set-variables} and/or a call to +@code{custom-theme-set-faces}: + +@defun custom-theme-set-variables theme &rest args +This function declares that the Custom theme @var{theme} (a symbol) +customizes the variables in @var{args}. Each argument in @var{args} +should be a list of the form + +@example +(@var{var} @var{expression} [@var{now} [@var{request} [@var{comment}]]]) +@end example + +@noindent +where the list entries have the same meanings as in +@code{custom-set-variables}. @xref{Applying Customizations}. +@end defun + +@defun custom-theme-set-faces theme &rest args +This function declares that the Custom theme @var{theme} (a symbol) +customizes the faces in @var{args}. Each argument in @var{args} +should be a list of the form + +@example +(@var{face} @var{spec} [@var{now} [@var{comment}]]) +@end example + +@noindent +where the list entries have the same meanings as in +@code{custom-set-faces}. @xref{Applying Customizations}. +@end defun + + In principle, a theme file can also contain other Lisp forms, which +would be evaluated when loading the theme; but it is ``bad form'' for +a theme to do this. (For reasons of security, Emacs prompts the user +before loading any non-built-in theme.) diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index ee3ffd8d10c..cc48133113f 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -1885,7 +1885,7 @@ in all frames. But you can also assign a face name a special set of attributes in one frame (@pxref{Attribute Functions}). @menu -* Defining Faces:: How to define a face with @code{defface}. +* Defining Faces:: How to define a face. * Face Attributes:: What is in a face? * Attribute Functions:: Functions to examine and set face attributes. * Displaying Faces:: How Emacs combines the faces specified for a character. @@ -1904,22 +1904,17 @@ attributes in one frame (@pxref{Attribute Functions}). @node Defining Faces @subsection Defining Faces - The way to define a new face is with @code{defface}. This creates a -kind of customization item which the user can customize using the -Customization buffer (@pxref{Customization}). - - People are sometimes tempted to create variables whose values specify -which faces to use (for example, Font-Lock does this). In the vast -majority of cases, this is not necessary, and simply using faces -directly is preferable. + The @code{defface} macro defines a face and specifies its default +appearance. The user can subsequently customize the face using the +Customize interface (@pxref{Customization}). @defmac defface face spec doc [keyword value]@dots{} -This declares @var{face} as a customizable face whose default +This macro declares @var{face} as a customizable face whose default attributes are given by @var{spec}. You should not quote the symbol @var{face}, and it should not end in @samp{-face} (that would be -redundant). The argument @var{doc} specifies the face documentation. -The keywords you can use in @code{defface} are the same as in -@code{defgroup} and @code{defcustom} (@pxref{Common Keywords}). +redundant). The argument @var{doc} is a documentation string for the +face. The additional @var{keyword} arguments have the same meanings +as in @code{defgroup} and @code{defcustom} (@pxref{Common Keywords}). When @code{defface} executes, it defines the face according to @var{spec}, then uses any customizations that were read from the @@ -1930,12 +1925,14 @@ Lisp mode (@code{eval-defun}), a special feature of @code{eval-defun} overrides any customizations of the face. This way, the face reflects exactly what the @code{defface} says. -The purpose of @var{spec} is to specify how the face should appear on -different kinds of terminals. It should be an alist whose elements -have the form @code{(@var{display} @var{atts})}. @var{display} -specifies a class of terminals (see below), while @var{atts} is a -property list of face attributes and their values, specifying the -appearance of the face on matching terminals +@cindex face specification +The @var{spec} argument is a @dfn{face specification}, which states +how the face should appear on different kinds of terminals. It should +be an alist whose elements each have the form @code{(@var{display} +@var{atts})}. @var{display} specifies a class of terminals (see +below), while @var{atts} is a property list of face attributes and +their values, specifying the appearance of the face on matching +terminals @iftex (see the next section for details about face attributes). @end iftex @@ -2022,14 +2019,22 @@ frame must match one of the @var{value}s specified for it in :group 'basic-faces) @end example - Internally, @code{defface} uses the symbol property -@code{face-defface-spec} to record the specified face attributes. The -attributes saved by the user with the customization buffer are -recorded in the symbol property @code{saved-face}; the attributes -customized by the user for the current session, but not saved, are -recorded in the symbol property @code{customized-face}. The -documentation string is recorded in the symbol property -@code{face-documentation}. + Internally, Emacs stores the face's default specification in its +@code{face-defface-spec} symbol property (@pxref{Property Lists}). +The @code{saved-face} property stores the face specification saved by +the user, using the customization buffer; the @code{customized-face} +property stores the face specification customized for the current +session, but not saved; and the @code{theme-face} property stores an +alist associating the active customization settings and Custom themes +with their specifications for that face. The face's documentation +string is stored in the @code{face-documentation} property. But +normally you should not try to set any of these properties directly. +@xref{Applying Customizations}, for the @code{custom-set-faces} +function, which is used to apply customized face settings. + + People are sometimes tempted to create variables whose values +specify a face to use. In the vast majority of cases, this is not +necessary; it is preferable to simply use faces directly. @defopt frame-background-mode This option, if non-@code{nil}, specifies the background type to use for diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index dc835347235..76397556b01 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi @@ -123,7 +123,7 @@ Cover art by Etienne Suvasa. * Functions:: A function is a Lisp program that can be invoked from other functions. * Macros:: Macros are a way to extend the Lisp language. -* Customization:: Writing customization declarations. +* Customization:: Making variables and faces customizable. * Loading:: Reading files of Lisp code into Lisp. * Byte Compilation:: Compilation makes programs run faster. @@ -500,6 +500,8 @@ Writing Customization Definitions * Group Definitions:: Writing customization group definitions. * Variable Definitions:: Declaring user options. * Customization Types:: Specifying the type of a user option. +* Applying Customizations:: Functions to apply customization settings. +* Custom Themes:: Writing Custom themes. Customization Types @@ -1295,7 +1297,7 @@ Overlays Faces -* Defining Faces:: How to define a face with @code{defface}. +* Defining Faces:: How to define a face. * Face Attributes:: What is in a face? * Attribute Functions:: Functions to examine and set face attributes. * Displaying Faces:: How Emacs combines the faces specified for diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index 12abc2fcd2b..83fbd02b16c 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -1571,8 +1571,8 @@ rather than buffer-local. It defaults to @code{nil}. One of the effects of making a minor mode global is that the @var{mode} variable becomes a customization variable. Toggling it -through the Custom interface turns the mode on and off, and its value -can be saved for future Emacs sessions (@pxref{Saving +through the Customize interface turns the mode on and off, and its +value can be saved for future Emacs sessions (@pxref{Saving Customizations,,, emacs, The GNU Emacs Manual}. For the saved variable to work, you should ensure that the @code{define-minor-mode} form is evaluated each time Emacs starts; for packages that are not @@ -1691,7 +1691,7 @@ Fundamental mode; but it does not detect the creation of a new buffer in Fundamental mode. This defines the customization option @var{global-mode} (@pxref{Customization}), -which can be toggled in the Custom interface to turn the minor mode on +which can be toggled in the Customize interface to turn the minor mode on and off. As with @code{define-minor-mode}, you should ensure that the @code{define-globalized-minor-mode} form is evaluated each time Emacs starts, for example by providing a @code{:require} keyword. diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index 7c49c9e04a0..35ac7c20384 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi @@ -290,9 +290,9 @@ form to your init file: Emacs explicitly checks for an expression as shown above in your init file; your login name must appear in the expression as a Lisp string -constant. You can also use the Custom interface. Other methods of setting -@code{inhibit-startup-echo-area-message} to the same value do not -inhibit the startup message. This way, you can easily inhibit the +constant. You can also use the Customize interface. Other methods of +setting @code{inhibit-startup-echo-area-message} to the same value do +not inhibit the startup message. This way, you can easily inhibit the message for yourself if you wish, but thoughtless copying of your init file will not inhibit the message for someone else. @end defopt diff --git a/doc/lispref/vol1.texi b/doc/lispref/vol1.texi index df269868e09..45a0dee3b1c 100644 --- a/doc/lispref/vol1.texi +++ b/doc/lispref/vol1.texi @@ -141,7 +141,7 @@ Reference Manual, corresponding to GNU Emacs version @value{EMACSVER}. * Functions:: A function is a Lisp program that can be invoked from other functions. * Macros:: Macros are a way to extend the Lisp language. -* Customization:: Writing customization declarations. +* Customization:: Making variables and faces customizable. * Loading:: Reading files of Lisp code into Lisp. * Byte Compilation:: Compilation makes programs run faster. @@ -520,6 +520,8 @@ Writing Customization Definitions * Group Definitions:: Writing customization group definitions. * Variable Definitions:: Declaring user options. * Customization Types:: Specifying the type of a user option. +* Applying Customizations:: Functions to apply customization settings. +* Custom Themes:: Writing Custom themes. Customization Types @@ -1317,7 +1319,7 @@ Overlays Faces -* Defining Faces:: How to define a face with @code{defface}. +* Defining Faces:: How to define a face. * Face Attributes:: What is in a face? * Attribute Functions:: Functions to examine and set face attributes. * Displaying Faces:: How Emacs combines the faces specified for diff --git a/doc/lispref/vol2.texi b/doc/lispref/vol2.texi index 2a2578158bf..01a3e3c129e 100644 --- a/doc/lispref/vol2.texi +++ b/doc/lispref/vol2.texi @@ -140,7 +140,7 @@ Reference Manual, corresponding to GNU Emacs version @value{EMACSVER}. * Functions:: A function is a Lisp program that can be invoked from other functions. * Macros:: Macros are a way to extend the Lisp language. -* Customization:: Writing customization declarations. +* Customization:: Making variables and faces customizable. * Loading:: Reading files of Lisp code into Lisp. * Byte Compilation:: Compilation makes programs run faster. @@ -519,6 +519,8 @@ Writing Customization Definitions * Group Definitions:: Writing customization group definitions. * Variable Definitions:: Declaring user options. * Customization Types:: Specifying the type of a user option. +* Applying Customizations:: Functions to apply customization settings. +* Custom Themes:: Writing Custom themes. Customization Types @@ -1316,7 +1318,7 @@ Overlays Faces -* Defining Faces:: How to define a face with @code{defface}. +* Defining Faces:: How to define a face. * Face Attributes:: What is in a face? * Attribute Functions:: Functions to examine and set face attributes. * Displaying Faces:: How Emacs combines the faces specified for diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 10dd1d5448f..f7469ddb015 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-04-12 Chong Yidong + + * custom.el (custom-theme-set-variables): Doc fix. + 2012-04-12 Glenn Morris * international/mule.el (set-auto-coding-for-load): Doc fix. diff --git a/lisp/custom.el b/lisp/custom.el index bffd30bff21..71dcfb424e5 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -934,16 +934,21 @@ Each of the arguments in ARGS should be a list of this form: (SYMBOL EXP [NOW [REQUEST [COMMENT]]]) -This stores EXP (without evaluating it) as the saved value for SYMBOL. -If NOW is present and non-nil, then also evaluate EXP and set -the default value for the SYMBOL to the value of EXP. +SYMBOL is the variable name, and EXP is an expression which +evaluates to the customized value. EXP will also be stored, +without evaluating it, in SYMBOL's `saved-value' property, so +that it can be restored via the Customize interface. It is also +added to the alist in SYMBOL's `theme-value' property \(by +calling `custom-push-theme'). -REQUEST is a list of features we must require in order to -handle SYMBOL properly. -COMMENT is a comment string about SYMBOL. +NOW, if present and non-nil, means to install the variable's +value directly now, even if its `defcustom' declaration has not +been executed. This is for internal use only. -EXP itself is saved unevaluated as SYMBOL property `saved-value' and -in SYMBOL's list property `theme-value' \(using `custom-push-theme')." +REQUEST is a list of features to `require' (which are loaded +prior to evaluating EXP). + +COMMENT is a comment string about SYMBOL." (custom-check-theme theme) ;; Process all the needed autoloads before anything else, so that the From 9401b32679f2f38165d0da535b93fd3bbdb20b96 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Thu, 12 Apr 2012 20:22:06 +0200 Subject: [PATCH 36/43] lib-src/emacsclient.c (decode_options) [WINDOWSNT]: Fix typo in 2011-12-04T17:13:01Z!lekktu@gmail.com. Call ttyname instead of passing its address. --- lib-src/ChangeLog | 5 +++++ lib-src/emacsclient.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 2384599caf2..dd10026447f 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,8 @@ +2012-04-12 Juanma Barranquero + + * emacsclient.c (decode_options) [WINDOWSNT]: + Call ttyname instead of passing its address (typo in 2011-12-04T17:13:01Z!lekktu@gmail.com). + 2012-03-11 Andreas Schwab * emacsclient.c (main): Handle -print-nonl command. diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 049886ed2ba..05fd0f3515e 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -648,7 +648,7 @@ decode_options (int argc, char **argv) server.el check whether it makes sense. */ if (tty || !current_frame) { - display = (const char *) ttyname; + display = (const char *) ttyname (0); /* Arg is ignored. */ current_frame = 0; tty = 1; } From d11f2f381a6d2a650501fb400bbf70c268c37381 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Thu, 12 Apr 2012 22:38:08 +0000 Subject: [PATCH 37/43] gnus-msg.el (gnus-inews-insert-gcc): `C-x m' on a non-group line fixup --- lisp/gnus/ChangeLog | 5 +++++ lisp/gnus/gnus-msg.el | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index bac79f492bc..b1f298bdb16 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,8 @@ +2012-04-12 Lars Magne Ingebrigtsen + + * gnus-msg.el (gnus-inews-insert-gcc): Don't do the alist stuff when we + don't have a current group. + 2012-04-10 Lars Magne Ingebrigtsen * gnus-msg.el (gnus-inews-insert-gcc): Protect against when we don't diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el index 507f0406ea1..815bd9e44a6 100644 --- a/lisp/gnus/gnus-msg.el +++ b/lisp/gnus/gnus-msg.el @@ -1664,7 +1664,7 @@ this is a reply." ((functionp var) ;; A function. (funcall var group)) - (t + (group ;; An alist of regexps/functions/forms. (while (and var (not From 5f9a4e98c0b364521a25e9d5cb62ba21544bf309 Mon Sep 17 00:00:00 2001 From: Teodor Zlatanov Date: Thu, 12 Apr 2012 19:59:47 -0400 Subject: [PATCH 38/43] Backport addition of emacs-gnutls manual from trunk --- ChangeLog | 4 + doc/misc/ChangeLog | 10 ++ doc/misc/Makefile.in | 12 +++ doc/misc/emacs-gnutls.texi | 198 +++++++++++++++++++++++++++++++++++++ doc/misc/makefile.w32-in | 11 ++- info/dir | 1 + 6 files changed, 233 insertions(+), 3 deletions(-) create mode 100644 doc/misc/emacs-gnutls.texi diff --git a/ChangeLog b/ChangeLog index 8aee7b2ce40..b4f37a8f3e8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2012-04-12 Teodor Zlatanov + + * info/dir, Makefile.in (INFO_FILES): Add emacs-gnutls. + 2012-03-04 Paul Eggert configure: fix ncurses 'configure' issue on Solaris 10 (Bug#10677) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index f1eff10c7cd..55a745d14c6 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,13 @@ +2012-04-12 Eli Zaretskii + + * makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean): Add emacs-gnutls. + ($(infodir)/emacs-gnutls, emacs-gnutls.dvi): New targets. + +2012-04-12 Teodor Zlatanov + + * emacs-gnutls.texi: Add documentation for the GnuTLS integration. + * Makefile.in: Add emacs-gnutls.texi to build. + 2012-04-11 Alan Mackenzie * cc-mode.texi (c-offsets-alist): Correct a typo. diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in index 647f00723b1..60c11d78261 100644 --- a/doc/misc/Makefile.in +++ b/doc/misc/Makefile.in @@ -68,6 +68,7 @@ INFO_TARGETS = \ $(infodir)/flymake \ $(infodir)/forms \ $(infodir)/gnus \ + $(infodir)/emacs-gnutls \ $(infodir)/idlwave \ $(infodir)/info \ $(infodir)/mairix-el \ @@ -119,6 +120,7 @@ DVI_TARGETS = \ flymake.dvi \ forms.dvi \ gnus.dvi \ + emacs-gnutls.dvi \ idlwave.dvi \ info.dvi \ mairix-el.dvi \ @@ -170,6 +172,7 @@ PDF_TARGETS = \ flymake.pdf \ forms.pdf \ gnus.pdf \ + emacs-gnutls.pdf \ idlwave.pdf \ info.pdf \ mairix-el.pdf \ @@ -344,6 +347,15 @@ eieio.dvi: ${srcdir}/eieio.texi eieio.pdf: ${srcdir}/eieio.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/eieio.texi +emacs-gnutls : $(infodir)/emacs-gnutls +$(infodir)/emacs-gnutls: emacs-gnutls.texi + $(mkinfodir) + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< +emacs-gnutls.dvi: ${srcdir}/emacs-gnutls.texi + $(ENVADD) $(TEXI2DVI) $< +emacs-gnutls.pdf: ${srcdir}/emacs-gnutls.texi + $(ENVADD) $(TEXI2PDF) $< + emacs-mime : $(infodir)/emacs-mime $(infodir)/emacs-mime: emacs-mime.texi $(mkinfodir) diff --git a/doc/misc/emacs-gnutls.texi b/doc/misc/emacs-gnutls.texi new file mode 100644 index 00000000000..d429f21fbf6 --- /dev/null +++ b/doc/misc/emacs-gnutls.texi @@ -0,0 +1,198 @@ +\input texinfo @c -*-texinfo-*- + +@setfilename ../../info/emacs-gnutls +@settitle Emacs GnuTLS Integration @value{VERSION} + +@set VERSION 0.3 + +@copying +This file describes the Emacs GnuTLS integration. + +Copyright @copyright{} 2012 Free Software Foundation, Inc. + +@quotation +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.3 or +any later version published by the Free Software Foundation; with no +Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' +and with the Back-Cover Texts as in (a) below. A copy of the license +is included in the section entitled ``GNU Free Documentation License'' +in the Emacs manual. + +(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and +modify this GNU manual. Buying copies from the FSF supports it in +developing GNU and promoting software freedom.'' + +This document is part of a collection distributed under the GNU Free +Documentation License. If you want to distribute this document +separately from the collection, you can do so by adding a copy of the +license to the document, as described in section 6 of the license. +@end quotation +@end copying + +@dircategory Emacs lisp libraries +@direntry +* GnuTLS: (gnutls). The Emacs GnuTLS Integration. +@end direntry + +@titlepage +@title Emacs GnuTLS Integration +@author by Ted Zlatanov +@page +@vskip 0pt plus 1filll +@insertcopying +@end titlepage + +@contents + +@ifnottex +@node Top +@top Emacs GnuTLS +This manual describes the Emacs GnuTLS integration. + +GnuTLS is a library that establishes encrypted @acronym{SSL} or +@acronym{TLS} connections. Emacs supports it through the +@file{gnutls.c} and @file{gnutls.h} C files and the @file{gnutls.el} +Emacs Lisp library. + +@insertcopying + +@menu +* Overview:: Overview of the GnuTLS integration. +* Help For Users:: +* Help For Developers:: +* Function Index:: +* Variable Index:: +@end menu +@end ifnottex + +@node Overview +@chapter Overview + +The GnuTLS library is an optional add-on for Emacs. Through it, any +Emacs Lisp program can establish encrypted network connections that +use @dfn{Secure Socket Layer} (@acronym{SSL}) and @dfn{Transport Layer +Security} (@acronym{TLS}) protocols. The process of using +@acronym{SSL} and @acronym{TLS} in establishing connections is as +automated and transparent as possible. + +The user has only a few customization options currently: the log +level, priority string, trustfile list, and the minimum number of bits +to be used in Diffie-Hellman key exchange. Rumors that every Emacs +library requires at least 83 customizable variables are thus proven +false. + +@node Help For Users +@chapter Help For Users + +From the user's perspective, there's nothing to the GnuTLS +integration. It Just Works for any Emacs Lisp code that uses +@code{open-protocol-stream} or @code{open-network-stream} +(@pxref{Network,, Network Connections, elisp, The Emacs Lisp Reference +Manual}). The two functions are equivalent, the first one being an +alias of the second. + +There's one way to find out if GnuTLS is available, by calling +@code{gnutls-available-p}. This is a little bit trickier on the W32 +(Windows) platform, but if you have the GnuTLS DLLs (available from +@url{http://sourceforge.net/projects/ezwinports/files/} thanks to Eli +Zaretskii) in the same directory as Emacs, you should be OK. + +@defun gnutls-available-p +This function returns t if GnuTLS is available in this instance of Emacs. +@end defun + +Oh, but sometimes things go wrong. Budgets aren't balanced, +television ads lie, and even TLS and SSL connections can fail to work +properly. Well, there's something to be done in the last case. + +@defvar gnutls-log-level +The @code{gnutls-log-level} variable sets the log level. 1 is +verbose. 2 is very verbose. 5 is crazy. Crazy! Set it to 1 or 2 +and look in the @code{*Messages*} buffer for the debugging +information. +@end defvar + +@defvar gnutls-algorithm-priority +The @code{gnutls-algorithm-priority} variable sets the GnuTLS priority +string. This is global, not per host name (although +@code{gnutls-negotiate} supports a priority string per connection so +it could be done if needed). The priority string syntax is in the +@uref{http://www.gnu.org/software/gnutls/documentation.html, GnuTLS +documentation}. +@end defvar + +@defvar gnutls-trustfiles +The @code{gnutls-trustfiles} variable is a list of trustfiles +(certificates for the issuing authorities). This is global, not per +host name (although @code{gnutls-negotiate} supports a trustfile per +connection so it could be done if needed). The trustfiles can be in +PEM or DER format and examples can be found in most Unix +distributions. By default four locations are tried in this order: +@file{/etc/ssl/certs/ca-certificates.crt} for Debian, Ubuntu, Gentoo +and Arch Linux; @file{/etc/pki/tls/certs/ca-bundle.crt} for Fedora +and RHEL; @file{/etc/ssl/ca-bundle.pem} for Suse; +@file{/usr/ssl/certs/ca-bundle.crt} for Cygwin. You can easily +customize @code{gnutls-trustfiles} to be something else, but let us +know if you do, so we can make the change to benefit the other users +of that platform. +@end defvar + +@defvar gnutls-min-prime-bits +The @code{gnutls-min-prime-bits} variable is a pretty exotic +customization for cases where you want to refuse handshakes with keys +under a specific size. If you don't know for sure that you need it, +you don't. Leave it @code{nil}. +@end defvar + +@node Help For Developers +@chapter Help For Developers + +The GnuTLS library is detected automatically at compile time. You +should see that it's enabled in the @code{configure} output. If not, +follow the standard procedure for finding out why a system library is +not picked up by the Emacs compilation. On the W32 (Windows) +platform, installing the DLLs with a recent build should be enough. + +Just use @code{open-protocol-stream} or @code{open-network-stream} +(the two are equivalent, the first one being an alias to the second). +You should not have to use the @file{gnutls.el} functions directly. +But you can test them with @code{open-gnutls-stream}. + +@defun open-gnutls-stream name buffer host service +This function creates a buffer connected to a specific @var{host} and +@var{service} (port number or service name). The parameters and their +syntax are the same as those given to @code{open-network-stream} +(@pxref{Network,, Network Connections, elisp, The Emacs Lisp Reference +Manual}). The connection process is called @var{name} (made unique if +necessary). This function returns the connection process. + +@lisp +;; open a HTTPS connection +(open-gnutls-stream "tls" "tls-buffer" "yourserver.com" "https") + +;; open a IMAPS connection +(open-gnutls-stream "tls" "tls-buffer" "imap.gmail.com" "imaps") +@end lisp + +@end defun + +The function @code{gnutls-negotiate} is not generally useful and it +may change as needed, so please see @file{gnutls.el} for the details. + +@defun gnutls-negotiate spec +Please see @file{gnutls.el} for the @var{spec} details and for usage, +but do not rely on this function's interface if possible. +@end defun + +@node Function Index +@chapter Function Index +@printindex fn + +@node Variable Index +@chapter Variable Index +@printindex vr + +@bye + +@c End: diff --git a/doc/misc/makefile.w32-in b/doc/misc/makefile.w32-in index 6e4a65c292c..0f81786cdb5 100644 --- a/doc/misc/makefile.w32-in +++ b/doc/misc/makefile.w32-in @@ -51,7 +51,7 @@ INFO_TARGETS = $(infodir)/ccmode \ $(infodir)/remember $(infodir)/nxml-mode \ $(infodir)/epa $(infodir)/mairix-el $(infodir)/sasl \ $(infodir)/auth $(infodir)/eieio $(infodir)/ede \ - $(infodir)/semantic $(infodir)/edt + $(infodir)/semantic $(infodir)/edt $(infodir)/emacs-gnutls DVI_TARGETS = calc.dvi cc-mode.dvi cl.dvi dbus.dvi dired-x.dvi \ ediff.dvi forms.dvi gnus.dvi message.dvi emacs-mime.dvi \ sieve.dvi pgg.dvi mh-e.dvi \ @@ -62,7 +62,7 @@ DVI_TARGETS = calc.dvi cc-mode.dvi cl.dvi dbus.dvi dired-x.dvi \ newsticker.dvi rcirc.dvi erc.dvi ert.dvi \ remember.dvi nxml-mode.dvi \ epa.dvi mairix-el.dvi sasl.dvi auth.dvi eieio.dvi ede.dvi \ - semantic.dvi edt.dvi + semantic.dvi edt.dvi emacs-gnutls.dvi INFOSOURCES = info.texi # The following rule does not work with all versions of `make'. @@ -350,6 +350,11 @@ $(infodir)/edt: edt.texi doclicense.texi edt.dvi: edt.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/edt.texi +$(infodir)/emacs-gnutls: emacs-gnutls.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) emacs-gnutls.texi +emacs-gnutls.dvi: emacs-gnutls.texi doclicense.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-gnutls.texi + mostlyclean: - $(DEL) *.log *.cp *.fn *.ky *.pg *.vr core *.tp *.core gnustmp.* @@ -377,7 +382,7 @@ clean: mostlyclean $(infodir)/epa* $(infodir)/sasl* \ $(infodir)/mairix-el* $(infodir)/auth* \ $(infodir)/eieio* $(infodir)/ede* \ - $(infodir)/semantic* $(infodir)edt* + $(infodir)/semantic* $(infodir)edt* $(infodir)/emacs-gnutls* distclean: clean - $(DEL) makefile diff --git a/info/dir b/info/dir index 06ee2ab8240..d18a38cefa6 100644 --- a/info/dir +++ b/info/dir @@ -40,6 +40,7 @@ Emacs editing modes Emacs network features * EUDC: (eudc). Emacs client for directory servers (LDAP, PH). * Gnus: (gnus). The newsreader Gnus. +* GnuTLS: (emacs-gnutls). The Emacs GnuTLS integration. * Mairix: (mairix-el). Emacs interface to the Mairix mail indexer. * MH-E: (mh-e). Emacs interface to the MH mail system. * Message: (message). Mail and news composition mode that From 050bb9b32106a9864dd7aaf5f3db82c6fe1735af Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 12 Apr 2012 20:01:59 -0400 Subject: [PATCH 39/43] * doc/misc/Makefile.in: Replace non-portable use of $< in emacs-gnutls rules. --- doc/misc/ChangeLog | 4 ++++ doc/misc/Makefile.in | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 55a745d14c6..8f920f62718 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,7 @@ +2012-04-13 Glenn Morris + + * Makefile.in: Replace non-portable use of $< in emacs-gnutls rules. + 2012-04-12 Eli Zaretskii * makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean): Add emacs-gnutls. diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in index 60c11d78261..390b077bbb0 100644 --- a/doc/misc/Makefile.in +++ b/doc/misc/Makefile.in @@ -350,11 +350,11 @@ eieio.pdf: ${srcdir}/eieio.texi emacs-gnutls : $(infodir)/emacs-gnutls $(infodir)/emacs-gnutls: emacs-gnutls.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $< + cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) emacs-gnutls.texi emacs-gnutls.dvi: ${srcdir}/emacs-gnutls.texi - $(ENVADD) $(TEXI2DVI) $< + $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-gnutls.texi emacs-gnutls.pdf: ${srcdir}/emacs-gnutls.texi - $(ENVADD) $(TEXI2PDF) $< + $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-gnutls.texi emacs-mime : $(infodir)/emacs-mime $(infodir)/emacs-mime: emacs-mime.texi From 05f7d0d3faa5ec129c51bcf0ef698fea45a98677 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 12 Apr 2012 20:59:27 -0700 Subject: [PATCH 40/43] More small edits for doc/emacs/mule.texi * mule.texi (Select Input Method, Coding Systems, Recognize Coding): Copyedits. (Coding Systems): Mac OS X apparently uses newlines for EOL. (Recognize Coding): Remove old auto-coding-regexp-alist example. auto-coding-functions does not override coding: tags. Remove rmail-decode-mime-charset; it no longer has any effect. --- doc/emacs/ChangeLog | 9 ++++++++ doc/emacs/mule.texi | 53 +++++++++++++++++++++++++++------------------ 2 files changed, 41 insertions(+), 21 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 5b4ab363202..b8c96d83fa5 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,12 @@ +2012-04-13 Glenn Morris + + * mule.texi (Select Input Method, Coding Systems, Recognize Coding): + Copyedits. + (Coding Systems): Mac OS X apparently uses newlines for EOL. + (Recognize Coding): Remove old auto-coding-regexp-alist example. + auto-coding-functions does not override coding: tags. + Remove rmail-decode-mime-charset; it no longer has any effect. + 2012-04-12 Chong Yidong * custom.texi (Creating Custom Themes): Add reference to Custom diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi index 08d764ea85c..4cf66c14138 100644 --- a/doc/emacs/mule.texi +++ b/doc/emacs/mule.texi @@ -614,7 +614,7 @@ turn off the input method temporarily. To do this, type @kbd{C-\} @kbd{C-\} again. If you type @kbd{C-\} and you have not yet selected an input method, -it prompts for you to specify one. This has the same effect as using +it prompts you to specify one. This has the same effect as using @kbd{C-x @key{RET} C-\} to specify an input method. When invoked with a numeric argument, as in @kbd{C-u C-\}, @@ -657,7 +657,7 @@ automatically. For example: @end lisp @noindent -This activates the input method ``german-prefix'' automatically in the +This automatically activates the input method ``german-prefix'' in Text mode. @findex quail-set-keyboard-layout @@ -671,7 +671,7 @@ the command @kbd{M-x quail-set-keyboard-layout}. You can use the command @kbd{M-x quail-show-key} to show what key (or key sequence) to type in order to input the character following point, using the selected keyboard layout. The command @kbd{C-u C-x =} also -shows that information in addition to the other information about the +shows that information, in addition to other information about the character. @findex list-input-methods @@ -711,7 +711,8 @@ system; for example, to visit a file encoded in codepage 850, type In addition to converting various representations of non-@acronym{ASCII} characters, a coding system can perform end-of-line conversion. Emacs handles three different conventions for how to separate lines in a file: -newline, carriage-return linefeed, and just carriage-return. +newline (``unix''), carriage-return linefeed (``dos''), and just +carriage-return (``mac''). @table @kbd @item C-h C @var{coding} @key{RET} @@ -751,27 +752,27 @@ end-of-line conversion to be decided based on the contents of each file. For example, if the file appears to use the sequence carriage-return linefeed to separate lines, DOS end-of-line conversion will be used. - Each of the listed coding systems has three variants which specify + Each of the listed coding systems has three variants, which specify exactly what to do for end-of-line conversion: @table @code @item @dots{}-unix Don't do any end-of-line conversion; assume the file uses newline to separate lines. (This is the convention normally used -on Unix and GNU systems.) +on Unix and GNU systems, and Mac OS X.) @item @dots{}-dos Assume the file uses carriage-return linefeed to separate lines, and do the appropriate conversion. (This is the convention normally used on Microsoft systems.@footnote{It is also specified for MIME @samp{text/*} bodies and in other network transport contexts. It is different -from the SGML reference syntax record-start/record-end format which +from the SGML reference syntax record-start/record-end format, which Emacs doesn't support directly.}) @item @dots{}-mac Assume the file uses carriage-return to separate lines, and do the -appropriate conversion. (This is the convention normally used on the -Macintosh system.) +appropriate conversion. (This was the convention used on the +Macintosh system prior to OS X.) @end table These variant coding systems are omitted from the @@ -789,7 +790,7 @@ be deduced from the text itself. @cindex @code{raw-text}, coding system The coding system @code{raw-text} is good for a file which is mainly -@acronym{ASCII} text, but may contain byte values above 127 which are +@acronym{ASCII} text, but may contain byte values above 127 that are not meant to encode non-@acronym{ASCII} characters. With @code{raw-text}, Emacs copies those byte values unchanged, and sets @code{enable-multibyte-characters} to @code{nil} in the current buffer @@ -906,37 +907,47 @@ the buffer. The default value of @code{inhibit-iso-escape-detection} is @code{nil}. We recommend that you not change it permanently, only for -one specific operation. That's because many Emacs Lisp source files +one specific operation. That's because some Emacs Lisp source files in the Emacs distribution contain non-@acronym{ASCII} characters encoded in the coding system @code{iso-2022-7bit}, and they won't be decoded correctly when you visit those files if you suppress the escape sequence detection. +@c I count a grand total of 3 such files, so is the above really true? @vindex auto-coding-alist @vindex auto-coding-regexp-alist -@vindex auto-coding-functions - The variables @code{auto-coding-alist}, -@code{auto-coding-regexp-alist} and @code{auto-coding-functions} are + The variables @code{auto-coding-alist} and +@code{auto-coding-regexp-alist} are the strongest way to specify the coding system for certain patterns of -file names, or for files containing certain patterns; these variables -even override @samp{-*-coding:-*-} tags in the file itself. Emacs +file names, or for files containing certain patterns, respectively. +These variables even override @samp{-*-coding:-*-} tags in the file +itself. For example, Emacs uses @code{auto-coding-alist} for tar and archive files, to prevent it from being confused by a @samp{-*-coding:-*-} tag in a member of the archive and thinking it applies to the archive file as a whole. +@ignore +@c This describes old-style BABYL files, which are no longer relevant. Likewise, Emacs uses @code{auto-coding-regexp-alist} to ensure that RMAIL files, whose names in general don't match any particular -pattern, are decoded correctly. One of the builtin -@code{auto-coding-functions} detects the encoding for XML files. +pattern, are decoded correctly. +@end ignore +@vindex auto-coding-functions + Another way to specify a coding system is with the variable +@code{auto-coding-functions}. For example, one of the builtin +@code{auto-coding-functions} detects the encoding for XML files. +Unlike the previous two, this variable does not override any +@samp{-*-coding:-*-} tag. + +@c FIXME? This seems somewhat out of place. Move to the Rmail section? @vindex rmail-decode-mime-charset @vindex rmail-file-coding-system When you get new mail in Rmail, each message is translated automatically from the coding system it is written in, as if it were a separate file. This uses the priority list of coding systems that you have specified. If a MIME message specifies a character set, Rmail -obeys that specification, unless @code{rmail-decode-mime-charset} is -@code{nil}. For reading and saving Rmail files themselves, Emacs uses -the coding system specified by the variable +obeys that specification. For reading and saving Rmail files +themselves, Emacs uses the coding system specified by the variable @code{rmail-file-coding-system}. The default value is @code{nil}, which means that Rmail files are not translated (they are read and written in the Emacs internal character code). From 03ed9e82adda3f6856a12e718fad023bb8b06502 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Fri, 13 Apr 2012 12:18:40 +0800 Subject: [PATCH 41/43] * doc/lispref/customize.texi (Custom Themes): Also document load-theme etc. --- doc/lispref/ChangeLog | 4 +++ doc/lispref/customize.texi | 74 ++++++++++++++++++++++++++++---------- 2 files changed, 59 insertions(+), 19 deletions(-) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 21050287fcc..e58ef2aa3ec 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,7 @@ +2012-04-13 Chong Yidong + + * customize.texi (Custom Themes): Also document load-theme etc. + 2012-04-12 Chong Yidong * customize.texi (Applying Customizations): diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi index 7e6b9ad40ac..ba977c70eb6 100644 --- a/doc/lispref/customize.texi +++ b/doc/lispref/customize.texi @@ -1330,14 +1330,14 @@ be a call to @code{deftheme}, and the last form should be a call to @defmac deftheme theme &optional doc This macro declares @var{theme} (a symbol) as the name of a Custom -theme. The optional argument @var{doc} specifies a string describing +theme. The optional argument @var{doc} should be a string describing the theme; this is the description shown when the user invokes the -@kbd{?} (@code{describe-theme}) command in the @samp{*Custom Themes*} -buffer. +@code{describe-theme} command or types @kbd{?} in the @samp{*Custom +Themes*} buffer. -Two special theme names are disallowed: @code{user} is a ``dummy -theme'' used to store the user's direct customization settings, and -@code{changed} is a ``dummy theme'' used to store changes made outside +Two special theme names are disallowed: @code{user} is a ``dummy'' +theme which stores the user's direct customization settings, and +@code{changed} is a ``dummy'' theme which stores changes made outside of the Customize system. If you specify either of these as the @var{theme} argument, @code{deftheme} signals an error. @end defmac @@ -1347,15 +1347,15 @@ This macro declares that the theme named @var{theme} has been fully specified. @end defmac - In between @code{deftheme} and @code{provide-theme} are the Lisp -forms specifying the theme settings---usually a call to + In between @code{deftheme} and @code{provide-theme} are Lisp forms +specifying the theme settings: usually a call to @code{custom-theme-set-variables} and/or a call to -@code{custom-theme-set-faces}: +@code{custom-theme-set-faces}. @defun custom-theme-set-variables theme &rest args -This function declares that the Custom theme @var{theme} (a symbol) -customizes the variables in @var{args}. Each argument in @var{args} -should be a list of the form +This function specifies the Custom theme @var{theme}'s variable +settings. @var{theme} should be a symbol. Each argument in +@var{args} should be a list of the form @example (@var{var} @var{expression} [@var{now} [@var{request} [@var{comment}]]]) @@ -1367,9 +1367,9 @@ where the list entries have the same meanings as in @end defun @defun custom-theme-set-faces theme &rest args -This function declares that the Custom theme @var{theme} (a symbol) -customizes the faces in @var{args}. Each argument in @var{args} -should be a list of the form +This function specifies the Custom theme @var{theme}'s face settings. +@var{theme} should be a symbol. Each argument in @var{args} should be +a list of the form @example (@var{face} @var{spec} [@var{now} [@var{comment}]]) @@ -1380,7 +1380,43 @@ where the list entries have the same meanings as in @code{custom-set-faces}. @xref{Applying Customizations}. @end defun - In principle, a theme file can also contain other Lisp forms, which -would be evaluated when loading the theme; but it is ``bad form'' for -a theme to do this. (For reasons of security, Emacs prompts the user -before loading any non-built-in theme.) + In theory, a theme file can also contain other Lisp forms, which +would be evaluated when loading the theme, but that is ``bad form''. +To protect against loading themes containing malicious code, Emacs +displays the source file and asks for confirmation from the user +before loading any non-built-in theme for the first time. + + The following functions are useful for programmatically enabling and +disabling Custom themes: + +@defun custom-theme-p theme +This function return a non-@code{nil} value if @var{theme} (a symbol) +is the name of a Custom theme (i.e.@: a Custom theme which has been +loaded into Emacs, whether or not the theme is enabled). Otherwise, +it returns @code{nil}. +@end defun + +@deffn Command load-theme theme &optional no-confirm no-enable +This function loads the Custom theme named @var{theme} from its source +file, looking for the source file in the directories specified by the +variable @code{custom-theme-load-path}. @xref{Custom Themes,,, emacs, +The GNU Emacs Manual}. It also @dfn{enables} the theme, causing its +variable and face settings to take effect. + +If the optional argument @var{no-confirm} is non-@code{nil}, this +skips prompting the user for confirmation before loading the theme. + +If the optional argument @var{no-enable} is non-@code{nil}, the theme +is loaded but not enabled. +@end deffn + +@deffn Command enable-theme theme +This function enables the Custom theme named @var{theme}. It signals +an error if no such theme has been loaded. +@end deffn + +@deffn Command disable-theme theme +This function disables the Custom theme named @var{theme}. The theme +remains loaded, so that a subsequent call to @code{enable-theme} will +re-enable it. +@end deffn From 9557e2beb204f24dc13bac994fd1f42271999f05 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Fri, 13 Apr 2012 15:10:11 +0800 Subject: [PATCH 42/43] Fix for C-x C-x in cua-selection-mode. * emulation/cua-base.el (cua-exchange-point-and-mark): Just call exchange-point-and-mark if cua-enable-cua-keys is nil. Fixes: debbugs:11191 --- lisp/ChangeLog | 5 +++++ lisp/emulation/cua-base.el | 22 ++++++++++++++-------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f7469ddb015..4b031a5dfe9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-04-13 Kim F. Storm + + * emulation/cua-base.el (cua-exchange-point-and-mark): Just call + exchange-point-and-mark if cua-enable-cua-keys is nil (Bug#11191). + 2012-04-12 Chong Yidong * custom.el (custom-theme-set-variables): Doc fix. diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el index a918f298a4e..c31f634dd5c 100644 --- a/lisp/emulation/cua-base.el +++ b/lisp/emulation/cua-base.el @@ -1002,15 +1002,21 @@ behavior, see `cua-paste-pop-rotate-temporarily'." (setq this-command 'cua-paste-pop)))) (defun cua-exchange-point-and-mark (arg) - "Exchanges point and mark, but don't activate the mark. -Activates the mark if a prefix argument is given." + "Exchange point and mark. +Don't activate the mark if `cua-enable-cua-keys' is non-nil. +Otherwise, just activate the mark if a prefix ARG is given. + +See also `exchange-point-and-mark'." (interactive "P") - (if arg - (setq mark-active t) - (let (mark-active) - (exchange-point-and-mark) - (if cua--rectangle - (cua--rectangle-corner 0))))) + (cond ((null cua-enable-cua-keys) + (exchange-point-and-mark arg)) + (arg + (setq mark-active t)) + (t + (let (mark-active) + (exchange-point-and-mark) + (if cua--rectangle + (cua--rectangle-corner 0)))))) ;; Typed text that replaced the highlighted region. (defvar cua--repeat-replace-text nil) From ad3a2b411dc2b34f5d6fa434aee3ca56fa7a88e7 Mon Sep 17 00:00:00 2001 From: Atsuo Ohki Date: Fri, 13 Apr 2012 14:08:18 -0400 Subject: [PATCH 43/43] * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n". Fixes: debbugs:11238 --- src/ChangeLog | 8 ++++++-- src/lread.c | 5 ++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index fc4f31028ea..73c67125257 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,11 +1,15 @@ +2012-04-13 Atsuo Ohki (tiny change) + + * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n" (bug#11238). + 2012-04-10 Teodor Zlatanov * process.c (make_process): * process.h: Add integer `gnutls_handshakes_tried' member to process struct. - * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit. Add - convenience `GNUTLS_LOG2i' macro. + * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit. + Add convenience `GNUTLS_LOG2i' macro. * gnutls.c (gnutls_log_function2i): Convenience log function. (emacs_gnutls_read): Use new log functions, diff --git a/src/lread.c b/src/lread.c index 353f4a3064d..b6135429b48 100644 --- a/src/lread.c +++ b/src/lread.c @@ -839,7 +839,7 @@ lisp_file_lexically_bound_p (Lisp_Object readcharfun) } /* Stop scanning if no colon was found before end marker. */ - if (!in_file_vars) + if (!in_file_vars || ch == '\n' || ch == EOF) break; while (i > 0 && (var[i - 1] == ' ' || var[i - 1] == '\t')) @@ -863,8 +863,7 @@ lisp_file_lexically_bound_p (Lisp_Object readcharfun) ch = READCHAR; } if (! in_file_vars) - /* The value was terminated by an end-marker, which - remove. */ + /* The value was terminated by an end-marker, which remove. */ i -= 3; while (i > 0 && (val[i - 1] == ' ' || val[i - 1] == '\t')) i--;