+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>
buildinfodir = $(srcdir)/../../info
# Directory with the (customized) texinfo.tex file.
texinfodir = $(srcdir)/../misc
+# Directory with emacsver.texi.
+emacsdir = $(srcdir)/../emacs
MKDIR_P = @MKDIR_P@
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
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}/" \
@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
@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@*
@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
@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
@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
@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}.
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
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
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}}.)
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}.
@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
@end smallexample
@noindent
-(@xref{defun, , The @code{defun} Special Form}.)
+(@xref{defun, , The @code{defun} Macro}.)
@need 1250
@noindent
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)
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
+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
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
+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.
'(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"))))
'(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)
-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.
;; (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.
(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.
'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")
(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))
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")))
(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.
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)
(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.
("^ *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)
(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)))))
(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
;;; 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.
(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
: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)
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)))))
;; )
(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)))
(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))
;;;
(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))
(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))
(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
;; 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)
;;
&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
+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.
*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: