Merge from trunk.
authorEli Zaretskii <eliz@gnu.org>
Wed, 24 Apr 2013 19:12:03 +0000 (22:12 +0300)
committerEli Zaretskii <eliz@gnu.org>
Wed, 24 Apr 2013 19:12:03 +0000 (22:12 +0300)
25 files changed:
doc/lispintro/ChangeLog
doc/lispintro/Makefile.in
doc/lispintro/emacs-lisp-intro.texi
doc/lispintro/makefile.w32-in
doc/lispref/ChangeLog
doc/lispref/internals.texi
etc/ChangeLog
etc/themes/tsdh-dark-theme.el
lisp/ChangeLog
lisp/progmodes/compile.el
lisp/startup.el
lisp/textmodes/reftex-vars.el
lisp/textmodes/reftex.el
lisp/textmodes/remember.el
lisp/vc/vc-bzr.el
lisp/vc/vc-cvs.el
lisp/vc/vc-git.el
lisp/vc/vc-hg.el
lisp/vc/vc-mtn.el
lisp/vc/vc-rcs.el
lisp/vc/vc-sccs.el
lisp/vc/vc-svn.el
lisp/vc/vc.el
src/ChangeLog
src/coding.c

index be9f9f9..5e46555 100644 (file)
@@ -1,7 +1,27 @@
+2013-04-24  Eli Zaretskii  <eliz@gnu.org>
+
+       * makefile.w32-in (INFO_OPTS): Add "-I$(emacsdir)" to fix last
+       commit.
+
+2013-04-24  Glenn Morris  <rgm@gnu.org>
+
+       * 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  <xfq.free@gmail.com>
 
-       * 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  <xfq.free@gmail.com>
 
index a6b50b8..338b4ad 100644 (file)
@@ -25,6 +25,8 @@ version=@version@
 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_EXT=@INFO_EXT@
 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 @@ dist:
        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}/" \
index 7831603..ce4da17 100644 (file)
@@ -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
 \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:
-
-    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 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.
 @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.)
 
 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
 <p>The homepage for GNU Emacs is at
@@ -244,7 +134,7 @@ Foundation, Inc.
 @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 +142,10 @@ Boston, MA 02110-1301 USA
 @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 +154,6 @@ Boston, MA 02110-1301 USA
 @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 +1512,20 @@ 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}.)
 
+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}.)
 
-The third and final complication is this: if the function that the
+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
@@ -3059,7 +2955,7 @@ symbol refers to it.)
 
 @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 +3596,7 @@ name for a @dfn{local variable} that overshadows any use of the same
 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
@@ -8313,7 +8209,7 @@ an @code{if} without the possibility of an else clause.  In your mind,
 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 +9262,7 @@ In the past, Emacs used the @code{defvar} special form both for
 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 +16921,7 @@ Finally, the @code{:group} keyword tells the Emacs Customization
 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}.
 
@@ -19456,7 +19352,7 @@ them in an argument list (and within expressions called by them).
 @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 +20872,7 @@ equivalent of @code{multiply-by-seven} is:
 @end smallexample
 
 @noindent
-(@xref{defun, ,  The @code{defun} Special Form}.)
+(@xref{defun, ,  The @code{defun} Macro}.)
 
 @need 1250
 @noindent
index 377112a..39760ba 100644 (file)
@@ -23,10 +23,13 @@ srcdir = .
 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_OPTS=--no-split -I$(emacsdir)
+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 @@ INSTALL_INFO = install-info
 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
 
index f770fb3..1a6fd5e 100644 (file)
@@ -1,3 +1,8 @@
+2013-04-23  Glenn Morris  <rgm@gnu.org>
+
+       * internals.texi (Writing Emacs Primitives): Remove obvious example.
+       Tweak other to avoid overly long line.
+
 2013-04-21  Xue Fuqiao  <xfq.free@gmail.com>
 
        * internals.texi (Writing Emacs Primitives): Remove unnecessary
index 2444085..06375c1 100644 (file)
@@ -666,28 +666,20 @@ less than 8.
 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
index 0dd27a1..afad086 100644 (file)
@@ -1,3 +1,8 @@
+2013-04-24  Tassilo Horn  <tsdh@gnu.org>
+
+       * themes/tsdh-dark-theme.el (tsdh-dark): Add ido faces and remove
+       :box from outline faces.
+
 2013-04-18  Leo Liu  <sdl.web@gmail.com>
 
        * NEWS: Mention new key ? for describe-prefix-bindings.
index 879f8f1..7b0c711 100644 (file)
@@ -65,6 +65,9 @@ Used and created by Tassilo Horn.")
  '(hl-line ((t (:background "grey25"))))
  '(hl-paren-face ((t (:weight bold))) t)
  '(icomplete-first-match ((t (:foreground "deep sky blue" :weight bold))))
+ '(ido-first-match ((t (:foreground "turquoise" :weight bold))))
+ '(ido-only-match ((t (:foreground "medium spring green" :weight bold))))
+ '(ido-subdir ((t (:inherit dired-directory :weight normal))))
  '(lusty-file-face ((t (:foreground "SpringGreen1"))) t)
  '(magit-header ((t (:box 1 :weight bold))))
  '(magit-section-title ((t (:inherit magit-header :background "dark slate blue"))))
@@ -95,14 +98,14 @@ Used and created by Tassilo Horn.")
  '(org-scheduled-previously ((t (:foreground "#FF7400"))))
  '(org-tag ((t (:weight bold))))
  '(org-todo ((t (:foreground "#FF6961" :weight bold))))
- '(outline-1 ((t (:foreground "cyan1" :box (:line-width 1 :color "gainsboro") :weight bold))))
- '(outline-2 ((t (:foreground "SeaGreen1" :box (:line-width 1 :color "gainsboro") :weight bold))))
- '(outline-3 ((t (:foreground "cyan3" :box (:line-width 1 :color "gainsboro") :weight bold))))
- '(outline-4 ((t (:foreground "SeaGreen3" :box (:line-width 1 :color "gainsboro") :weight bold))))
- '(outline-5 ((t (:foreground "LightGoldenrod1" :box (:line-width 1 :color "gainsboro") :weight bold))))
- '(outline-6 ((t (:foreground "light salmon" :box (:line-width 1 :color "gainsboro") :weight bold))))
- '(outline-7 ((t (:foreground "pale goldenrod" :box (:line-width 1 :color "gainsboro") :weight bold))))
- '(outline-8 ((t (:foreground "OliveDrab1" :box (:line-width 1 :color "gainsboro") :weight bold))))
+ '(outline-1 ((t (:foreground "cyan1" :weight bold))))
+ '(outline-2 ((t (:foreground "SeaGreen1" :weight bold))))
+ '(outline-3 ((t (:foreground "cyan3" :weight bold))))
+ '(outline-4 ((t (:foreground "SeaGreen3" :weight bold))))
+ '(outline-5 ((t (:foreground "LightGoldenrod1" :weight bold))))
+ '(outline-6 ((t (:foreground "light salmon" :weight bold))))
+ '(outline-7 ((t (:foreground "pale goldenrod" :weight bold))))
+ '(outline-8 ((t (:foreground "OliveDrab1" :weight bold))))
  '(rcirc-my-nick ((t (:foreground "SpringGreen1" :weight bold))) t)
  '(rcirc-other-nick ((t (:foreground "dodger blue"))) t)
  '(rcirc-track-keyword ((t (:foreground "DodgerBlue" :weight bold))) t)
index 59e2a22..f69e60e 100644 (file)
@@ -1,14 +1,47 @@
-2013-04-23  Tassilo Horn  <tsdh@gnu.org>
+2013-04-24  Reuben Thomas <rrt@sc3d.org>
 
-       * textmodes/reftex.el (reftex-compile-variables): Add autoload
-       cookie.
+       * textmodes/remember.el (remember-handler-functions): Add an
+       option for a new handler `remember-store-in-files'.
+       (remember-data-directory, remember-directory-file-name-format):
+       New options.
+       (remember-store-in-files): New function to store remember notes
+       as separate files within a directory.
+
+2013-04-24  Magnus Henoch  <magnus.henoch@gmail.com>
+
+       * progmodes/compile.el (compilation-next-error-function):
+       Pass "formats" to compilation-find-file (bug#11777).
+
+2013-04-24  Glenn Morris  <rgm@gnu.org>
+
+       * vc/vc-bzr.el (vc-bzr-print-log):
+       * vc/vc-hg.el (vc-hg-print-log):
+       * vc/vc-svn.el (vc-svn-print-log):
+       Fix START-REVISION with LIMIT != 1.  (Bug#14168)
+
+       * vc/vc-bzr.el (vc-bzr-print-log):
+       * vc/vc-cvs.el (vc-cvs-print-log):
+       * vc/vc-git.el (vc-git-print-log):
+       * vc/vc-hg.el (vc-hg-print-log):
+       * vc/vc-mtn.el (vc-mtn-print-log):
+       * vc/vc-rcs.el (vc-rcs-print-log):
+       * vc/vc-sccs.el (vc-sccs-print-log):
+       * vc/vc-svn.el (vc-svn-print-log):
+       * vc/vc.el (vc-print-log-internal): Doc fixes.
+
+2013-04-23  Glenn Morris  <rgm@gnu.org>
+
+       * startup.el (normal-no-mouse-startup-screen, normal-about-screen):
+       Remove venerable code attempting to avoid substitute-command-keys.
+
+2013-04-23  Tassilo Horn  <tsdh@gnu.org>
 
-       * textmodes/reftex-vars.el (reftex-label-regexps): Call
-       `reftex-compile-variables' after changes to this variable.
+       * textmodes/reftex-vars.el (reftex-label-regexps):
+       Call `reftex-compile-variables' after changes to this variable.
 
 2013-04-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       * jit-lock.el: Fix signals in jit-lock-force-redisplay.
+       * jit-lock.el: Fix signals in jit-lock-force-redisplay (bug#13542).
        Use lexical-binding.
        (jit-lock-force-redisplay): Use markers, check buffer's continued
        existence and beware narrowed buffers.
index 98a89bb..d6f136e 100644 (file)
@@ -2382,10 +2382,12 @@ This is the value of `next-error-function' in Compilation buffers."
                  ;;            (setq timestamp compilation-buffer-modtime)))
                  )
       (with-current-buffer
-          (compilation-find-file
-           marker
-           (caar (compilation--loc->file-struct loc))
-           (cadr (car (compilation--loc->file-struct loc))))
+          (apply #'compilation-find-file
+                 marker
+                 (caar (compilation--loc->file-struct loc))
+                 (cadr (car (compilation--loc->file-struct loc)))
+                 (compilation--file-struct->formats
+                  (compilation--loc->file-struct loc)))
         (let ((screen-columns
                ;; Obey the compilation-error-screen-columns of the target
                ;; buffer if its major mode set it buffer-locally.
index dc21005..b7b4c15 100644 (file)
@@ -1856,11 +1856,8 @@ To quit a partially entered command, type Control-g.\n")
   (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 @@ If you have no Meta key, you may instead type ESC followed by the character.)")
                 '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 @@ Type \\[describe-distribution] for information on "))
   (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))
index a220002..7343d86 100644 (file)
@@ -880,7 +880,8 @@ When changed from Lisp, make sure to call
 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")))
 
index 8b5dee5..21083fd 100644 (file)
@@ -811,7 +811,6 @@ This enforces rescanning the buffer on next use."
      (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.
 
index 16b9962..1286e5d 100644 (file)
@@ -216,10 +216,11 @@ All functions are run in the remember buffer."
 Each function is called with the current buffer narrowed to what the
 user wants remembered.
 If any function returns non-nil, the data is assumed to have been
-recorded somewhere by that function. "
+recorded somewhere by that function."
   :type 'hook
   :options '(remember-store-in-mailbox
              remember-append-to-file
+             remember-store-in-files
              remember-diary-extract-entries
              org-remember-handler)
   :group 'remember)
@@ -429,6 +430,27 @@ If you want to remember a region, supply a universal prefix to
         (run-hook-with-args-until-success 'remember-handler-functions))
       (remember-destroy))))
 
+(defcustom remember-data-directory "~/remember"
+  "The directory in which to store remember data as files."
+  :type 'file
+  :group 'remember)
+
+(defcustom remember-directory-file-name-format "%Y-%m-%d_%T-%z"
+  "Format string for the file name in which to store unprocessed data."
+  :type 'file
+  :group 'remember)
+
+(defun remember-store-in-files ()
+  "Store remember data in a file in `remember-data-directory'.
+The file is named after `remember-directory-file-name-format'."
+  (let ((name (format-time-string
+              remember-directory-file-name-format (current-time)))
+        (text (buffer-string)))
+    (with-temp-buffer
+      (insert text)
+      (write-file (convert-standard-filename
+                   (format "%s/%s" remember-data-directory name))))))
+
 ;;;###autoload
 (defun remember-clipboard ()
   "Remember the contents of the current clipboard.
index d72c1f7..06942ad 100644 (file)
@@ -694,7 +694,10 @@ REV non-nil gets an error."
                   ("^ *timestamp: \\(.*\\)" (1 'change-log-date-face)))))))
 
 (defun vc-bzr-print-log (files buffer &optional shortlog start-revision limit)
-  "Get bzr change log for FILES into specified BUFFER."
+  "Print commit log associated with FILES into specified BUFFER.
+If SHORTLOG is non-nil, use --line format.
+If START-REVISION is non-nil, it is the newest revision to show.
+If LIMIT is non-nil, show no more than this many entries."
   ;; `vc-do-command' creates the buffer, but we need it before running
   ;; the command.
   (vc-setup-buffer buffer)
@@ -709,6 +712,15 @@ REV non-nil gets an error."
            (when shortlog '("--line"))
            (when start-revision (list (format "-r..%s" start-revision)))
            (when limit (list "-l" (format "%s" limit)))
+           ;; This is to remove --forward, if it has been added by an alias.
+           ;; There is no sensible way to combine --limit and --forward,
+           ;; and it breaks the meaning of START-REVISION as the
+           ;; _newest_ revision.  See bug#14168.
+           ;; FIXME There may be other alias stuff we want to keep.
+           ;; Is there a way to just suppress --forward?
+           ;; As of 2013/4 the only caller uses limit = 1, so it does
+           ;; not matter much.
+           (and start-revision limit (> limit 1) '("--no-aliases"))
            (if (stringp vc-bzr-log-switches)
                (list vc-bzr-log-switches)
              vc-bzr-log-switches)))))
index 3346838..7a8f810 100644 (file)
@@ -503,7 +503,8 @@ Will fail unless you have administrative privileges on the repo."
 (declare-function vc-rcs-print-log-cleanup "vc-rcs" ())
 
 (defun vc-cvs-print-log (files buffer &optional _shortlog _start-revision limit)
-  "Get change logs associated with FILES."
+  "Print commit log associated with FILES into specified BUFFER.
+Remaining arguments are ignored."
   (require 'vc-rcs)
   ;; It's just the catenation of the individual logs.
   (vc-cvs-command
index 17de931..06474cb 100644 (file)
@@ -732,9 +732,11 @@ This prompts for a branch to merge from."
 ;;; HISTORY FUNCTIONS
 
 (defun vc-git-print-log (files buffer &optional shortlog start-revision limit)
-  "Get change log associated with FILES.
-Note that using SHORTLOG requires at least Git version 1.5.6,
-for the --graph option."
+  "Print commit log associated with FILES into specified BUFFER.
+If SHORTLOG is non-nil, use a short format based on `vc-git-root-log-format'.
+\(This requires at least Git version 1.5.6, for the --graph option.)
+If START-REVISION is non-nil, it is the newest revision to show.
+If LIMIT is non-nil, show no more than this many entries."
   (let ((coding-system-for-read vc-git-commits-coding-system))
     ;; `vc-do-command' creates the buffer, but we need it before running
     ;; the command.
index 033e78c..feec015 100644 (file)
@@ -152,7 +152,7 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
      (2 'change-log-list)
      (3 'change-log-name)
      (4 'change-log-date)))
-  "Mercurial log template for `vc-print-root-log'.
+  "Mercurial log template for `vc-hg-print-log' short format.
 This should be a list (TEMPLATE REGEXP KEYWORDS), where TEMPLATE
 is the \"--template\" argument string to pass to Mercurial,
 REGEXP is a regular expression matching the resulting Mercurial
@@ -246,7 +246,10 @@ highlighting the Log View buffer."
   :group 'vc-hg)
 
 (defun vc-hg-print-log (files buffer &optional shortlog start-revision limit)
-  "Get change log associated with FILES."
+  "Print commit log associated with FILES into specified BUFFER.
+If SHORTLOG is non-nil, use a short format based on `vc-hg-root-log-format'.
+If START-REVISION is non-nil, it is the newest revision to show.
+If LIMIT is non-nil, show no more than this many entries."
   ;; `vc-do-command' creates the buffer, but we need it before running
   ;; the command.
   (vc-setup-buffer buffer)
@@ -257,7 +260,7 @@ highlighting the Log View buffer."
        buffer
       (apply 'vc-hg-command buffer 0 files "log"
             (nconc
-             (when start-revision (list (format "-r%s:" start-revision)))
+             (when start-revision (list (format "-r%s:0" start-revision)))
              (when limit (list "-l" (format "%s" limit)))
              (when shortlog (list "--template" (car vc-hg-root-log-format)))
              vc-hg-log-switches)))))
index 06827a5..fbfd895 100644 (file)
@@ -202,6 +202,10 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
 ;;   )
 
 (defun vc-mtn-print-log (files buffer &optional _shortlog start-revision limit)
+  "Print commit logs associated with FILES into specified BUFFER.
+_SHORTLOG is ignored.
+If START-REVISION is non-nil, it is the newest revision to show.
+If LIMIT is non-nil, show no more than this many entries."
   (apply 'vc-mtn-command buffer 0 files "log"
         (append
          (when start-revision (list "--from" (format "%s" start-revision)))
index 40d8acb..0a2fc80 100644 (file)
@@ -567,10 +567,14 @@ directory the operation is applied to all registered files beneath it."
     (when (looking-at "[\b\t\n\v\f\r ]+")
       (delete-char (- (match-end 0) (match-beginning 0))))))
 
-(defun vc-rcs-print-log (files buffer &optional shortlog start-revision-ignored limit)
-  "Get change log associated with FILE.  If FILE is a
-directory the operation is applied to all registered files beneath it."
-  (vc-do-command (or buffer "*vc*") 0 "rlog" (mapcar 'vc-name (vc-expand-dirs files)))
+(defun vc-rcs-print-log (files buffer &optional shortlog
+                               start-revision-ignored limit)
+  "Print commit log associated with FILES into specified BUFFER.
+Remaining arguments are ignored.
+If FILE is a directory the operation is applied to all registered
+files beneath it."
+  (vc-do-command (or buffer "*vc*") 0 "rlog"
+                 (mapcar 'vc-name (vc-expand-dirs files)))
   (with-current-buffer (or buffer "*vc*")
     (vc-rcs-print-log-cleanup))
   (when limit 'limit-unsupported))
index bfbe422..d3cf650 100644 (file)
@@ -350,7 +350,8 @@ revert all subfiles."
 ;;;
 
 (defun vc-sccs-print-log (files buffer &optional shortlog start-revision-ignored limit)
-  "Get change log associated with FILES."
+  "Print commit log associated with FILES into specified BUFFER.
+Remaining arguments are ignored."
   (setq files (vc-expand-dirs files))
   (vc-sccs-do-command buffer 0 "prs" (mapcar 'vc-name files))
   (when limit 'limit-unsupported))
index 923888b..a94bf0d 100644 (file)
@@ -494,7 +494,10 @@ or svn+ssh://."
   (set (make-local-variable 'log-view-per-file-logs) nil))
 
 (defun vc-svn-print-log (files buffer &optional shortlog start-revision limit)
-  "Get change log(s) associated with FILES."
+  "Print commit log associated with FILES into specified BUFFER.
+SHORTLOG is ignored.
+If START-REVISION is non-nil, it is the newest revision to show.
+If LIMIT is non-nil, show no more than this many entries."
   (save-current-buffer
     (vc-setup-buffer buffer)
     (let ((inhibit-read-only t))
@@ -512,7 +515,7 @@ or svn+ssh://."
                   (append
                    (list
                     (if start-revision
-                        (format "-r%s" start-revision)
+                        (format "-r%s:1" start-revision)
                       ;; By default Subversion only shows the log up to the
                       ;; working revision, whereas we also want the log of the
                       ;; subsequent commits.  At least that's what the
index 7f03aff..5e1d27c 100644 (file)
 ;;   If LIMIT is true insert only insert LIMIT log entries.  If the
 ;;   backend does not support limiting the number of entries to show
 ;;   it should return `limit-unsupported'.
-;;   If START-REVISION is given, then show the log starting from the
-;;   revision.  At this point START-REVISION is only required to work
-;;   in conjunction with LIMIT = 1.
+;;   If START-REVISION is given, then show the log starting from that
+;;   revision ("starting" in the sense of it being the _newest_
+;;   revision shown, rather than the working revision, which is normally
+;;   the case).  Not all backends support this.  At present, this is
+;;   only ever used with LIMIT = 1 (by vc-annotate-show-log-revision-at-line).
 ;;
 ;; * log-outgoing (backend remote-location)
 ;;
@@ -2111,14 +2113,11 @@ or if PL-RETURN is 'limit-unsupported."
                                       &optional is-start-revision limit)
   "For specified BACKEND and FILES, show the VC log.
 Leave point at WORKING-REVISION, if it is non-nil.
-If IS-START-REVISION is non-nil, start the log from WORKING-REVISION.
-Show up to LIMIT entries (non-nil means unlimited).
-\(IS-START-REVISION non-nil might not work correctly if LIMIT is not 1.)"
-  ;; The parenthetical remark is based on the commentary of vc.el for
-  ;; "print log": "At this point START-REVISION is only required to work
-  ;; in conjunction with LIMIT = 1."  The only thing that passes
-  ;; IS-START-REVISION non-nil is vc-annotate-show-log-revision-at-line,
-  ;; which sets LIMIT = 1.
+If IS-START-REVISION is non-nil, start the log from WORKING-REVISION
+\(not all backends support this); i.e., show only WORKING-REVISION and
+earlier revisions.  Show up to LIMIT entries (non-nil means unlimited)."
+  ;; As of 2013/04 the only thing that passes IS-START-REVISION non-nil
+  ;; is vc-annotate-show-log-revision-at-line, which sets LIMIT = 1.
 
   ;; Don't switch to the output buffer before running the command,
   ;; so that any buffer-local settings in the vc-controlled
index 31764ca..99e2c3d 100644 (file)
@@ -1,3 +1,9 @@
+2013-04-24  Kenichi Handa  <handa@gnu.org>
+
+       * coding.c (decode_coding_iso_2022): When an invalid escape
+       sequence is encountered, reset the invocation and designation
+       status to the safest one.
+
 2013-04-22  Paul Eggert  <eggert@cs.ucla.edu>
 
        * Makefile.in (bootstrap-clean): Remove stamp-h1 too.
index f979903..b9fb92c 100644 (file)
@@ -3887,6 +3887,14 @@ decode_coding_iso_2022 (struct coding_system *coding)
       *charbuf++ = c < 0 ? -c : ASCII_BYTE_P (c) ? c : BYTE8_TO_CHAR (c);
       char_offset++;
       coding->errors++;
+      /* Reset the invocation and designation status to the safest
+        one; i.e. designate ASCII to the graphic register 0, and
+        invoke that register to the graphic plane 0.  This typically
+        helps the case that an designation sequence for ASCII "ESC (
+        B" is somehow broken (e.g. broken by a newline).  */
+      CODING_ISO_INVOCATION (coding, 0) = 0;
+      CODING_ISO_DESIGNATION (coding, 0) = charset_ascii;
+      charset_id_0 = charset_ascii;
       continue;
 
     break_loop: