Now on revision 112365. ------------------------------------------------------------ revno: 112365 committer: Glenn Morris branch nick: trunk timestamp: Tue 2013-04-23 21:09:00 -0400 message: Remove old comments about making various formats (use Makefile instead) diff: === modified file 'doc/lispintro/emacs-lisp-intro.texi' --- doc/lispintro/emacs-lisp-intro.texi 2013-04-24 00:58:23 +0000 +++ doc/lispintro/emacs-lisp-intro.texi 2013-04-24 01:09:00 +0000 @@ -41,76 +41,6 @@ @set edition-number 3.10 @set update-date 28 October 2009 -@ignore - ## Summary of shell commands to create various output formats: - - pushd /usr/local/src/emacs/lispintro/ - ## pushd /u/intro/ - - ## Info output - makeinfo --paragraph-indent=0 --verbose emacs-lisp-intro.texi - - ## ;; (progn (when (bufferp (get-buffer "*info*")) (kill-buffer "*info*")) (info "/usr/local/src/emacs/info/eintr")) - - ## DVI output - texi2dvi emacs-lisp-intro.texi - - ## xdvi -margins 24pt -topmargin 4pt -offsets 24pt -geometry 760x1140 -s 5 -useTeXpages -mousemode 1 emacs-lisp-intro.dvi & - - ## HTML output - makeinfo --html --no-split --verbose emacs-lisp-intro.texi - - ## galeon emacs-lisp-intro.html - - ## Plain text output - makeinfo --fill-column=70 --no-split --paragraph-indent=0 \ - --verbose --no-headers --output=emacs-lisp-intro.txt emacs-lisp-intro.texi - - popd - -# as user `root' -# insert thumbdrive - mtusb # mount -v -t ext3 /dev/sda /mnt - cp -v /u/intro/emacs-lisp-intro.texi /mnt/backup/intro/emacs-lisp-intro.texi - umtusb # umount -v /mnt -# remove thumbdrive - - ## Other shell commands - - pushd /usr/local/src/emacs/lispintro/ - ## pushd /u/intro/ - - ## PDF - texi2dvi --pdf emacs-lisp-intro.texi - # xpdf emacs-lisp-intro.pdf & - - ## DocBook -- note file extension - makeinfo --docbook --no-split --paragraph-indent=0 \ - --verbose --output=emacs-lisp-intro.docbook emacs-lisp-intro.texi - - ## XML with a Texinfo DTD -- note file extension - makeinfo --xml --no-split --paragraph-indent=0 \ - --verbose --output=emacs-lisp-intro.texinfoxml emacs-lisp-intro.texi - - ## PostScript (needs DVI) - # gv emacs-lisp-intro.ps & - # Create DVI if we lack it - # texi2dvi emacs-lisp-intro.texi - dvips emacs-lisp-intro.dvi -o emacs-lisp-intro.ps - - ## RTF (needs HTML) - # Use OpenOffice to view RTF - # Create HTML if we lack it - # makeinfo --no-split --html emacs-lisp-intro.texi - /usr/local/src/html2rtf.pl emacs-lisp-intro.html - - ## LaTeX (needs RTF) - /usr/bin/rtf2latex emacs-lisp-intro.rtf - - popd - -@end ignore - @c ================ Included Figures ================ @c Set print-postscript-figures if you print PostScript figures. @@ -119,25 +49,6 @@ @c Your site may require editing changes to print PostScript; in this @c case, search for `print-postscript-figures' and make appropriate changes. -@c ================ How to Create an Info file ================ - -@c If you have `makeinfo' installed, run the following command - -@c makeinfo emacs-lisp-intro.texi - -@c or, if you want a single, large Info file, and no paragraph indents: -@c makeinfo --no-split --paragraph-indent=0 --verbose emacs-lisp-intro.texi - -@c After creating the Info file, edit your Info `dir' file, if the -@c `dircategory' section below does not enable your system to -@c install the manual automatically. -@c (The `dir' file is often in the `/usr/local/share/info/' directory.) - -@c ================ How to Create an HTML file ================ - -@c To convert to HTML format -@c makeinfo --html --no-split --verbose emacs-lisp-intro.texi - @c ================ How to Print a Book in Various Sizes ================ @c This book can be printed in any of three different sizes. @@ -156,34 +67,6 @@ @c @afourpaper @c @set largebook -@c ================ How to Typeset and Print ================ - -@c If you do not include PostScript figures, run either of the -@c following command sequences, or similar commands suited to your -@c system: - -@c texi2dvi emacs-lisp-intro.texi -@c lpr -d emacs-lisp-intro.dvi - -@c or else: - -@c tex emacs-lisp-intro.texi -@c texindex emacs-lisp-intro.?? -@c tex emacs-lisp-intro.texi -@c lpr -d emacs-lisp-intro.dvi - -@c If you include the PostScript figures, and you have old software, -@c you may need to convert the .dvi file to a .ps file before -@c printing. Run either of the following command sequences, or one -@c similar: -@c -@c dvips -f < emacs-lisp-intro.dvi > emacs-lisp-intro.ps -@c -@c or else: -@c -@c postscript -p < emacs-lisp-intro.dvi > emacs-lisp-intro.ps -@c - @c (Note: if you edit the book so as to change the length of the @c table of contents, you may have to change the value of `pageno' below.) ------------------------------------------------------------ revno: 112364 committer: Glenn Morris branch nick: trunk timestamp: Tue 2013-04-23 20:58:23 -0400 message: Minor lispintro tweaks * doc/lispintro/Makefile.in (emacsdir): New variable.. (MAKEINFO_OPTS, ENVADD): Add $emacsdir. (srcs): Add emacsver.texi. (dist): Include emacsver.texi. Edit emacsdir. * doc/lispintro/emacs-lisp-intro.texi (emacsver.texi): Include it. (copying): For non-printed versions, uses Emacs version rather than that of the printed book. (Complications, Lisp macro, defvar and asterisk, defcustom): Copyedits. * doc/lispintro/makefile.w32-in (emacsdir): New variable. (INFO_SOURCES): Add emacsver.texi. (ENVADD): Add $emacsdir (and $texinfodir). diff: === modified file 'doc/lispintro/ChangeLog' --- doc/lispintro/ChangeLog 2013-04-23 22:26:40 +0000 +++ doc/lispintro/ChangeLog 2013-04-24 00:58:23 +0000 @@ -1,3 +1,17 @@ +2013-04-24 Glenn Morris + + * emacs-lisp-intro.texi (emacsver.texi): Include it. + (copying): For non-printed versions, uses Emacs version rather + than that of the printed book. + (Complications, Lisp macro, defvar and asterisk, defcustom): Copyedits. + * Makefile.in (emacsdir): New variable.. + (MAKEINFO_OPTS, ENVADD): Add $emacsdir. + (srcs): Add emacsver.texi. + (dist): Include emacsver.texi. Edit emacsdir. + * makefile.w32-in (emacsdir): New variable. + (INFO_SOURCES): Add emacsver.texi. + (ENVADD): Add $emacsdir (and $texinfodir). + 2013-04-23 Xue Fuqiao * emacs-lisp-intro.texi (Complications, defvar, Writing Defuns) === modified file 'doc/lispintro/Makefile.in' --- doc/lispintro/Makefile.in 2013-01-01 09:11:05 +0000 +++ doc/lispintro/Makefile.in 2013-04-24 00:58:23 +0000 @@ -25,6 +25,8 @@ buildinfodir = $(srcdir)/../../info # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc +# Directory with emacsver.texi. +emacsdir = $(srcdir)/../emacs MKDIR_P = @MKDIR_P@ @@ -33,17 +35,18 @@ INFO_OPTS=@INFO_OPTS@ MAKEINFO = @MAKEINFO@ -MAKEINFO_OPTS = --force -I $(srcdir) +MAKEINFO_OPTS = --force -I $(emacsdir) -I $(srcdir) TEXI2DVI = texi2dvi TEXI2PDF = texi2pdf DVIPS = dvips -ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" \ +ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(emacsdir):$(TEXINPUTS)" \ MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" mkinfodir = @${MKDIR_P} ${buildinfodir} -srcs = ${srcdir}/emacs-lisp-intro.texi ${srcdir}/doclicense.texi +srcs = ${srcdir}/emacs-lisp-intro.texi ${srcdir}/doclicense.texi \ + ${emacsdir}/emacsver.texi .PHONY: info dvi html pdf ps @@ -97,9 +100,10 @@ rm -rf emacs-lispintro-${version} mkdir emacs-lispintro-${version} cp ${srcdir}/*.texi ${srcdir}/*.eps ${srcdir}/*.pdf \ - ${texinfodir}/texinfo.tex \ + ${texinfodir}/texinfo.tex ${emacsdir}/emacsver.texi \ ${srcdir}/ChangeLog* ${srcdir}/README emacs-lispintro-${version}/ sed -e 's/@sr[c]dir@/./' -e 's/^\(texinfodir *=\).*/\1 ./' \ + -e 's/^\(emacsdir *=\).*/\1 ./' \ -e 's/^\(buildinfodir *=\).*/\1 ./' \ -e 's/^\(clean:.*\)/\1 infoclean/' \ -e "s/@ver[s]ion@/${version}/" \ === modified file 'doc/lispintro/emacs-lisp-intro.texi' --- doc/lispintro/emacs-lisp-intro.texi 2013-04-23 22:26:40 +0000 +++ doc/lispintro/emacs-lisp-intro.texi 2013-04-24 00:58:23 +0000 @@ -8,6 +8,8 @@ @syncodeindex fn cp @finalout +@include emacsver.texi + @c --------- @c <<<< For hard copy printing, this file is now @c set for smallbook, which works for all sizes @@ -35,9 +37,9 @@ \global\hbadness=6666 % don't worry about not-too-underfull boxes @end tex +@c These refer to the printed book sold by the FSF. @set edition-number 3.10 @set update-date 28 October 2009 -@c FIXME can this be updated? -- xfq @ignore ## Summary of shell commands to create various output formats: @@ -227,7 +229,12 @@ This is an @cite{Introduction to Programming in Emacs Lisp}, for people who are not programmers. @sp 1 +@iftex Edition @value{edition-number}, @value{update-date} +@end iftex +@ifnottex +Distributed with Emacs version @value{EMACSVER}. +@end ifnottex @ifset WWW_GNU_ORG @html

The homepage for GNU Emacs is at @@ -244,7 +251,7 @@ @iftex Published by the:@* -GNU Press, @hfill @uref{http://www.fsf.org/campaigns/gnu-press/}@* +GNU Press, @hfill @uref{http://www.fsf.org/licensing/gnu-press/}@* a division of the @hfill email: @email{sales@@fsf.org}@* Free Software Foundation, Inc. @hfill Tel: +1 (617) 542-5942@* 51 Franklin Street, Fifth Floor @hfill Fax: +1 (617) 542-2652@* @@ -252,10 +259,10 @@ @end iftex @ifnottex -Published by the: +Printed copies available from @uref{http://shop.fsf.org/}. Published by: @example -GNU Press, http://www.fsf.org/campaigns/gnu-press/ +GNU Press, http://www.fsf.org/licensing/gnu-press/ a division of the email: sales@@fsf.org Free Software Foundation, Inc. Tel: +1 (617) 542-5942 51 Franklin Street, Fifth Floor Fax: +1 (617) 542-2652 @@ -264,7 +271,6 @@ @end ifnottex @sp 1 -@c Printed copies are available from @uref{http://shop.fsf.org/} for $35 each.@* ISBN 1-882114-43-4 Permission is granted to copy, distribute and/or modify this document @@ -1623,13 +1629,20 @@ @dfn{special forms}. They are used for special jobs, like defining a function, and there are not many of them. In the next few chapters, you will be introduced to several of the more important special forms. -And there are also @dfn{macros}. Macro is a construct defined in -Lisp, which differs from a function in that it translates a Lisp -expression into another expression which is to be evaluated instead of -the original expression. (@xref{Lisp macro}.) - - -The third and final complication is this: if the function that the + +As well as special forms, there are also @dfn{macros}. A macro +is a construct defined in Lisp, which differs from a function in that it +translates a Lisp expression into another expression that is to be +evaluated in place of the original expression. (@xref{Lisp macro}.) + +For the purposes of this introduction, you do not need to worry too much +about whether something is a special form, macro, or ordinary function. +For example, @code{if} is a special form (@pxref{if}), but @code{when} +is a macro (@pxref{Lisp macro}). In earlier versions of Emacs, +@code{defun} was a special form, but now it is a macro (@pxref{defun}). +It still behaves in the same way. + +The final complication is this: if the function that the Lisp interpreter is looking at is not a special form, and if it is part of a list, the Lisp interpreter looks to see whether the list has a list inside of it. If there is an inner list, the Lisp interpreter first @@ -8313,7 +8326,7 @@ you can replace @code{when} with @code{if} and understand what goes on. That is what the Lisp interpreter does. -Technically speaking, @code{when} is a Lisp macro. A Lisp @dfn{macro} +Technically speaking, @code{when} is a Lisp macro. A Lisp macro enables you to define new control constructs and other language features. It tells the interpreter how to compute another Lisp expression which will in turn compute the value. In this case, the @@ -9366,7 +9379,7 @@ internal variables that you would not expect a user to change and for variables that you do expect a user to change. Although you can still use @code{defvar} for user customizable variables, please use -@code{defcustom} instead, since that special form provides a path into +@code{defcustom} instead, since it provides a path into the Customization commands. (@xref{defcustom, , Specifying Variables using @code{defcustom}}.) @@ -17025,7 +17038,7 @@ command in which group the variable is located. This tells where to find it. -The @code{defcustom} function recognizes more than a dozen keywords. +The @code{defcustom} macro recognizes more than a dozen keywords. For more information, see @ref{Customization, , Writing Customization Definitions, elisp, The GNU Emacs Lisp Reference Manual}. === modified file 'doc/lispintro/makefile.w32-in' --- doc/lispintro/makefile.w32-in 2013-01-01 09:11:05 +0000 +++ doc/lispintro/makefile.w32-in 2013-04-24 00:58:23 +0000 @@ -23,10 +23,13 @@ infodir = $(srcdir)/../../info # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc +# Directory with emacsver.texi. +emacsdir = $(srcdir)/../emacs INFO_EXT=.info INFO_OPTS=--no-split -INFO_SOURCES = $(srcdir)/emacs-lisp-intro.texi $(srcdir)/doclicense.texi +INFO_SOURCES = $(srcdir)/emacs-lisp-intro.texi $(emacsdir)/emacsver.texi \ + $(srcdir)/doclicense.texi # The file name eintr must fit within 5 characters, to allow for # -NN extensions to fit into DOS 8+3 limits without clashing INFO_TARGETS = $(infodir)/eintr$(INFO_EXT) @@ -37,8 +40,9 @@ TEXI2DVI = texi2dvi TEXI2PDF = texi2pdf DVIPS = dvips -ENVADD = $(srcdir)\..\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \ - "MAKEINFO=$(MAKEINFO) -I$(srcdir) -I$(texinfodir)" /C +ENVADD = $(srcdir)\..\..\nt\envadd.bat \ + "TEXINPUTS=$(srcdir);$(texinfodir);$(emacsdir);$(TEXINPUTS)" \ + "MAKEINFO=$(MAKEINFO) -I$(srcdir) -I$(emacsdir) -I$(texinfodir)" /C .SUFFIXES: .dvi .ps .texi ------------------------------------------------------------ revno: 112363 committer: Xue Fuqiao branch nick: trunk timestamp: Wed 2013-04-24 06:26:40 +0800 message: Doc fix for emacs-lisp-intro.texi. * doc/lispintro/emacs-lisp-intro.texi (Writing Defuns, Prevent confusion, Determining the Element, lambda): Refine the doc about Lisp macros, reported by Glenn Morris. diff: === modified file 'doc/lispintro/ChangeLog' --- doc/lispintro/ChangeLog 2013-04-23 00:43:07 +0000 +++ doc/lispintro/ChangeLog 2013-04-23 22:26:40 +0000 @@ -1,7 +1,8 @@ 2013-04-23 Xue Fuqiao - * emacs-lisp-intro.texi (Complications, defvar): Refine the doc - about Lisp macros. (http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00618.html) + * emacs-lisp-intro.texi (Complications, defvar, Writing Defuns) + (Prevent confusion, Determining the Element, lambda): Refine the + doc about Lisp macros, reported by Glenn Morris. 2013-04-21 Xue Fuqiao === modified file 'doc/lispintro/emacs-lisp-intro.texi' --- doc/lispintro/emacs-lisp-intro.texi 2013-04-23 00:43:07 +0000 +++ doc/lispintro/emacs-lisp-intro.texi 2013-04-23 22:26:40 +0000 @@ -3059,7 +3059,7 @@ @menu * Primitive Functions:: -* defun:: The @code{defun} special form. +* defun:: The @code{defun} macro. * Install:: Install a function definition. * Interactive:: Making a function interactive. * Interactive Options:: Different options for @code{interactive}. @@ -3700,7 +3700,7 @@ name outside the @code{let} expression. This is like understanding that whenever your host refers to `the house', he means his house, not yours. (Symbols used in argument lists work the same way. -@xref{defun, , The @code{defun} Special Form}.) +@xref{defun, , The @code{defun} Macro}.) Local variables created by a @code{let} expression retain their value @emph{only} within the @code{let} expression itself (and within @@ -19456,7 +19456,7 @@ @ignore @c texi2dvi fails when the name of the section is within ifnottex ... (@xref{Prevent confusion, , @code{let} Prevents Confusion}, and -@ref{defun, , The @code{defun} Special Form}.) +@ref{defun, , The @code{defun} Macro}.) @end ignore @node yank @@ -20976,7 +20976,7 @@ @end smallexample @noindent -(@xref{defun, , The @code{defun} Special Form}.) +(@xref{defun, , The @code{defun} Macro}.) @need 1250 @noindent ------------------------------------------------------------ revno: 112362 committer: Glenn Morris branch nick: trunk timestamp: Tue 2013-04-23 17:51:40 -0400 message: Remove some code duplication in startup.el "If keys have their default meanings, use precomputed string to save lots of time" implies substitute-command-keys was slow 20+ years ago when this was originally written. But we were accidentally using the "slow" branch for 5 years and no-one complained about speed (bug#13970). * lisp/startup.el (normal-no-mouse-startup-screen, normal-about-screen): Remove venerable code attempting to avoid substitute-command-keys. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-04-23 17:07:49 +0000 +++ lisp/ChangeLog 2013-04-23 21:51:40 +0000 @@ -1,3 +1,8 @@ +2013-04-23 Glenn Morris + + * startup.el (normal-no-mouse-startup-screen, normal-about-screen): + Remove venerable code attempting to avoid substitute-command-keys. + 2013-04-23 Tassilo Horn * textmodes/reftex-vars.el (reftex-label-regexps): Call === modified file 'lisp/startup.el' --- lisp/startup.el 2013-04-21 02:45:38 +0000 +++ lisp/startup.el 2013-04-23 21:51:40 +0000 @@ -1856,11 +1856,8 @@ (insert "\n" (emacs-version) "\n" emacs-copyright)) -;; No mouse menus, so give help using kbd commands. (defun normal-no-mouse-startup-screen () - - ;; If keys have their default meanings, - ;; use precomputed string to save lots of time. + "Show a splash screen suitable for displays without mouse support." (let* ((c-h-accessible ;; If normal-erase-is-backspace is used on a tty, there's ;; no way to invoke C-h and you have to use F1 instead. @@ -1938,47 +1935,24 @@ 'follow-link t) (insert "\n") (insert "\n" (emacs-version) "\n" emacs-copyright "\n") - - (if (and (eq (key-binding "\C-h\C-c") 'describe-copying) - (eq (key-binding "\C-h\C-o") 'describe-distribution) - (eq (key-binding "\C-h\C-w") 'describe-no-warranty)) - (progn - (insert - " -GNU Emacs comes with ABSOLUTELY NO WARRANTY; type C-h C-w for ") - (insert-button "full details" - 'action (lambda (_button) (describe-no-warranty)) - 'follow-link t) - (insert ". -Emacs is Free Software--Free as in Freedom--so you can redistribute copies -of Emacs and modify it; type C-h C-c to see ") - (insert-button "the conditions" - 'action (lambda (_button) (describe-copying)) - 'follow-link t) - (insert ". -Type C-h C-d for information on ") - (insert-button "getting the latest version" - 'action (lambda (_button) (describe-distribution)) - 'follow-link t) - (insert ".")) - (insert (substitute-command-keys - " + (insert (substitute-command-keys + " GNU Emacs comes with ABSOLUTELY NO WARRANTY; type \\[describe-no-warranty] for ")) - (insert-button "full details" - 'action (lambda (_button) (describe-no-warranty)) - 'follow-link t) - (insert (substitute-command-keys ". + (insert-button "full details" + 'action (lambda (_button) (describe-no-warranty)) + 'follow-link t) + (insert (substitute-command-keys ". Emacs is Free Software--Free as in Freedom--so you can redistribute copies of Emacs and modify it; type \\[describe-copying] to see ")) - (insert-button "the conditions" - 'action (lambda (_button) (describe-copying)) - 'follow-link t) - (insert (substitute-command-keys". + (insert-button "the conditions" + 'action (lambda (_button) (describe-copying)) + 'follow-link t) + (insert (substitute-command-keys". Type \\[describe-distribution] for information on ")) - (insert-button "getting the latest version" - 'action (lambda (_button) (describe-distribution)) - 'follow-link t) - (insert "."))) + (insert-button "getting the latest version" + 'action (lambda (_button) (describe-distribution)) + 'follow-link t) + (insert ".")) (defun normal-about-screen () (insert "\n" (emacs-version) "\n" emacs-copyright "\n\n") @@ -2027,14 +2001,11 @@ (insert "\tBuying printed manuals from the FSF\n")) (defun startup-echo-area-message () - (cond ((daemonp) - "Starting Emacs daemon.") - ((eq (key-binding "\C-h\C-a") 'about-emacs) - "For information about GNU Emacs and the GNU system, type C-h C-a.") - (t - (substitute-command-keys - "For information about GNU Emacs and the GNU system, type \ -\\[about-emacs].")))) + (if (daemonp) + "Starting Emacs daemon." + (substitute-command-keys + "For information about GNU Emacs and the GNU system, type \ +\\[about-emacs]."))) (defun display-startup-echo-area-message () (let ((resize-mini-windows t)) ------------------------------------------------------------ revno: 112361 committer: Glenn Morris branch nick: trunk timestamp: Tue 2013-04-23 11:57:44 -0700 message: * doc/lispref/internals.texi (Writing Emacs Primitives): Remove obvious example. Tweak other to avoid overly long line. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-04-21 11:16:30 +0000 +++ doc/lispref/ChangeLog 2013-04-23 18:57:44 +0000 @@ -1,3 +1,8 @@ +2013-04-23 Glenn Morris + + * internals.texi (Writing Emacs Primitives): Remove obvious example. + Tweak other to avoid overly long line. + 2013-04-21 Xue Fuqiao * internals.texi (Writing Emacs Primitives): Remove unnecessary === modified file 'doc/lispref/internals.texi' --- doc/lispref/internals.texi 2013-04-21 11:16:30 +0000 +++ doc/lispref/internals.texi 2013-04-23 18:57:44 +0000 @@ -666,28 +666,20 @@ This is an interactive specification, a string such as might be used as the argument of @code{interactive} in a Lisp function. In the case of @code{or}, it is 0 (a null pointer), indicating that @code{or} -cannot be called interactively. A value of @code{""} indicates a function that should receive no -arguments when called interactively. For example: - -@smallexample -@group -DEFUN ("baz", Fbaz, Sbaz, 0, 0, "", - doc: /* @dots{} */) -@end group -@end smallexample - +cannot be called interactively. A value of @code{""} indicates a +function that should receive no arguments when called interactively. If the value begins with a @samp{"(}, the string is evaluated as a Lisp form. For example: -@smallexample +@example @group -DEFUN ("foo", Ffoo, Sfoo, 0, UNEVALLED, "(list - (read-char-by-name \"Insert character (Unicode name or hex): \")\ +DEFUN ("foo", Ffoo, Sfoo, 0, UNEVALLED, + "(list (read-char-by-name \"Insert character: \")\ (prefix-numeric-value current-prefix-arg)\ t))", doc: /* @dots{} /*) @end group -@end smallexample +@end example @item doc This is the documentation string. It uses C comment syntax rather ------------------------------------------------------------ revno: 112360 committer: Tassilo Horn branch nick: trunk timestamp: Tue 2013-04-23 19:07:49 +0200 message: Fix recursive load issue with reftex.el and reftex-vars.el. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-04-23 15:23:59 +0000 +++ lisp/ChangeLog 2013-04-23 17:07:49 +0000 @@ -1,8 +1,5 @@ 2013-04-23 Tassilo Horn - * textmodes/reftex.el (reftex-compile-variables): Add autoload - cookie. - * textmodes/reftex-vars.el (reftex-label-regexps): Call `reftex-compile-variables' after changes to this variable. === modified file 'lisp/textmodes/reftex-vars.el' --- lisp/textmodes/reftex-vars.el 2013-04-23 15:18:58 +0000 +++ lisp/textmodes/reftex-vars.el 2013-04-23 17:07:49 +0000 @@ -880,7 +880,8 @@ effective." :set (lambda (symbol value) (set symbol value) - (reftex-compile-variables)) + (when (fboundp 'reftex-compile-variables) + (reftex-compile-variables))) :group 'reftex-defining-label-environments :type '(repeat (regexp :tag "Regular Expression"))) === modified file 'lisp/textmodes/reftex.el' --- lisp/textmodes/reftex.el 2013-04-23 15:23:59 +0000 +++ lisp/textmodes/reftex.el 2013-04-23 17:07:49 +0000 @@ -811,7 +811,6 @@ (reftex-kill-buffer (reftex-make-index-buffer-name tag))) (cdr (assoc 'index-tags (symbol-value reftex-docstruct-symbol))))) -;;;###autoload (defun reftex-compile-variables () ;; Compile the information in reftex-label-alist & Co. ------------------------------------------------------------ revno: 112359 committer: Tassilo Horn branch nick: trunk timestamp: Tue 2013-04-23 17:23:59 +0200 message: * textmodes/reftex.el (reftex-compile-variables): Add autoload cookie. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-04-23 15:18:58 +0000 +++ lisp/ChangeLog 2013-04-23 15:23:59 +0000 @@ -1,5 +1,8 @@ 2013-04-23 Tassilo Horn + * textmodes/reftex.el (reftex-compile-variables): Add autoload + cookie. + * textmodes/reftex-vars.el (reftex-label-regexps): Call `reftex-compile-variables' after changes to this variable. === modified file 'lisp/textmodes/reftex.el' --- lisp/textmodes/reftex.el 2013-04-15 07:55:05 +0000 +++ lisp/textmodes/reftex.el 2013-04-23 15:23:59 +0000 @@ -811,6 +811,7 @@ (reftex-kill-buffer (reftex-make-index-buffer-name tag))) (cdr (assoc 'index-tags (symbol-value reftex-docstruct-symbol))))) +;;;###autoload (defun reftex-compile-variables () ;; Compile the information in reftex-label-alist & Co. ------------------------------------------------------------ revno: 112358 committer: Tassilo Horn branch nick: trunk timestamp: Tue 2013-04-23 17:18:58 +0200 message: * textmodes/reftex-vars.el (reftex-label-regexps): Call `reftex-compile-variables' after changes to this variable. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-04-23 12:29:14 +0000 +++ lisp/ChangeLog 2013-04-23 15:18:58 +0000 @@ -1,3 +1,8 @@ +2013-04-23 Tassilo Horn + + * textmodes/reftex-vars.el (reftex-label-regexps): Call + `reftex-compile-variables' after changes to this variable. + 2013-04-23 Stefan Monnier * jit-lock.el: Fix signals in jit-lock-force-redisplay. === modified file 'lisp/textmodes/reftex-vars.el' --- lisp/textmodes/reftex-vars.el 2013-04-15 07:55:05 +0000 +++ lisp/textmodes/reftex-vars.el 2013-04-23 15:18:58 +0000 @@ -873,7 +873,14 @@ The default value matches usual \\label{...} definitions and keyval style [..., label = {...}, ...] label definitions. It is assumed that the regexp group 1 matches the label text, so you -have to define it using \\(?1:...\\) when adding new regexps." +have to define it using \\(?1:...\\) when adding new regexps. + +When changed from Lisp, make sure to call +`reftex-compile-variables' afterwards to make the change +effective." + :set (lambda (symbol value) + (set symbol value) + (reftex-compile-variables)) :group 'reftex-defining-label-environments :type '(repeat (regexp :tag "Regular Expression"))) ------------------------------------------------------------ revno: 112357 committer: Stefan Monnier branch nick: trunk timestamp: Tue 2013-04-23 08:29:14 -0400 message: * lisp/jit-lock.el: Fix signals in jit-lock-force-redisplay. Use lexical-binding. (jit-lock-force-redisplay): Use markers, check buffer's continued existence and beware narrowed buffers. (jit-lock-fontify-now): Adjust call accordingly. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-04-23 12:27:06 +0000 +++ lisp/ChangeLog 2013-04-23 12:29:14 +0000 @@ -1,3 +1,11 @@ +2013-04-23 Stefan Monnier + + * jit-lock.el: Fix signals in jit-lock-force-redisplay. + Use lexical-binding. + (jit-lock-force-redisplay): Use markers, check buffer's continued + existence and beware narrowed buffers. + (jit-lock-fontify-now): Adjust call accordingly. + 2013-04-22 Stefan Monnier * minibuffer.el (minibuffer-completion-contents): Fix obsolescence info === modified file 'lisp/jit-lock.el' --- lisp/jit-lock.el 2013-01-30 17:03:44 +0000 +++ lisp/jit-lock.el 2013-04-23 12:29:14 +0000 @@ -1,4 +1,4 @@ -;;; jit-lock.el --- just-in-time fontification +;;; jit-lock.el --- just-in-time fontification -*- lexical-binding: t -*- ;; Copyright (C) 1998, 2000-2013 Free Software Foundation, Inc. @@ -412,21 +412,24 @@ ;; eagerly extend the refontified region with ;; jit-lock-after-change-extend-region-functions. (when (< start orig-start) - (run-with-timer 0 nil 'jit-lock-force-redisplay - (current-buffer) start orig-start)) + (run-with-timer 0 nil #'jit-lock-force-redisplay + (copy-marker start) (copy-marker orig-start))) ;; Find the start of the next chunk, if any. (setq start (text-property-any next end 'fontified nil)))))))) -(defun jit-lock-force-redisplay (buf start end) +(defun jit-lock-force-redisplay (start end) "Force the display engine to re-render buffer BUF from START to END." - (with-current-buffer buf - (with-buffer-prepared-for-jit-lock - ;; Don't cause refontification (it's already been done), but just do - ;; some random buffer change, so as to force redisplay. - (put-text-property start end 'fontified t)))) - - + (when (marker-buffer start) + (with-current-buffer (marker-buffer start) + (with-buffer-prepared-for-jit-lock + (when (> end (point-max)) + (setq end (point-max) start (min start end))) + (when (< start (point-min)) + (setq start (point-min) end (max start end))) + ;; Don't cause refontification (it's already been done), but just do + ;; some random buffer change, so as to force redisplay. + (put-text-property start end 'fontified t))))) ;;; Stealth fontification. ------------------------------------------------------------ revno: 112356 committer: Stefan Monnier branch nick: trunk timestamp: Tue 2013-04-23 08:27:06 -0400 message: * lisp/minibuffer.el (minibuffer-completion-contents): Fix obsolescence info to avoid misleading the user. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-04-22 14:41:32 +0000 +++ lisp/ChangeLog 2013-04-23 12:27:06 +0000 @@ -1,3 +1,8 @@ +2013-04-22 Stefan Monnier + + * minibuffer.el (minibuffer-completion-contents): Fix obsolescence info + to avoid misleading the user. + 2013-04-22 Leo Liu * info-look.el: Prefer latex2e.info. (Bug#14240) === modified file 'lisp/minibuffer.el' --- lisp/minibuffer.el 2013-04-18 00:12:33 +0000 +++ lisp/minibuffer.el 2013-04-23 12:27:06 +0000 @@ -638,8 +638,8 @@ (defun minibuffer-completion-contents () "Return the user input in a minibuffer before point as a string. -That used to be what completion commands operate on." - (declare (obsolete minibuffer-contents "24.4")) +In Emacs-22, that was what completion commands operated on." + (declare (obsolete nil "24.4")) (buffer-substring (field-beginning) (point))) (defun delete-minibuffer-contents () ------------------------------------------------------------ revno: 112355 committer: Xue Fuqiao branch nick: trunk timestamp: Tue 2013-04-23 08:43:07 +0800 message: emacs-lisp-intro.texi fixes. * doc/lispintro/emacs-lisp-intro.texi (Complications, defvar): Refine the doc about Lisp macros. (http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00618.html) diff: === modified file 'doc/lispintro/ChangeLog' --- doc/lispintro/ChangeLog 2013-04-21 11:56:28 +0000 +++ doc/lispintro/ChangeLog 2013-04-23 00:43:07 +0000 @@ -1,3 +1,8 @@ +2013-04-23 Xue Fuqiao + + * emacs-lisp-intro.texi (Complications, defvar): Refine the doc + about Lisp macros. (http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00618.html) + 2013-04-21 Xue Fuqiao * emacs-lisp-intro.texi (defcustom, defun) === modified file 'doc/lispintro/emacs-lisp-intro.texi' --- doc/lispintro/emacs-lisp-intro.texi 2013-04-21 11:56:28 +0000 +++ doc/lispintro/emacs-lisp-intro.texi 2013-04-23 00:43:07 +0000 @@ -457,7 +457,7 @@ How To Write Function Definitions * Primitive Functions:: -* defun:: The @code{defun} special form. +* defun:: The @code{defun} macro. * Install:: Install a function definition. * Interactive:: Making a function interactive. * Interactive Options:: Different options for @code{interactive}. @@ -1618,11 +1618,16 @@ in the section on variables. (@xref{Variables}.) @cindex Special form -The second complication occurs because some functions are unusual and do -not work in the usual manner. Those that don't are called @dfn{special -forms}. They are used for special jobs, like defining a function, and -there are not many of them. In the next few chapters, you will be -introduced to several of the more important special forms. +The second complication occurs because some functions are unusual and +do not work in the usual manner. Those that don't are called +@dfn{special forms}. They are used for special jobs, like defining a +function, and there are not many of them. In the next few chapters, +you will be introduced to several of the more important special forms. +And there are also @dfn{macros}. Macro is a construct defined in +Lisp, which differs from a function in that it translates a Lisp +expression into another expression which is to be evaluated instead of +the original expression. (@xref{Lisp macro}.) + The third and final complication is this: if the function that the Lisp interpreter is looking at is not a special form, and if it is part @@ -9291,6 +9296,10 @@ not override the existing value. Second, @code{defvar} has a documentation string. +(There is a related macro, @code{defcustom}, designed for variables +that people customize. It has more features than @code{defvar}. +(@xref{defcustom, , Setting Variables with @code{defcustom}}.) + @menu * See variable current value:: * defvar and asterisk::