------------------------------------------------------------ revno: 115916 committer: Bastien Guerry branch nick: trunk timestamp: Wed 2014-01-08 00:36:29 +0100 message: Fix bug 15980 * minibuffer.el (completion--try-word-completion): When both a hyphen and a space are possible candidates for the character following a word, display both candidates. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-07 17:16:24 +0000 +++ lisp/ChangeLog 2014-01-07 23:36:29 +0000 @@ -1,3 +1,9 @@ +2014-01-07 Bastien Guerry + + * minibuffer.el (completion--try-word-completion): When both a + hyphen and a space are possible candidates for the character + following a word, display both candidates. (Bug#15980) + 2014-01-07 Martin Rudalics * window.el (balance-windows-2): While rounding don't give a === modified file 'lisp/minibuffer.el' --- lisp/minibuffer.el 2014-01-01 07:43:34 +0000 +++ lisp/minibuffer.el 2014-01-07 23:36:29 +0000 @@ -1334,16 +1334,19 @@ ;; instead, but it was too blunt, leading to situations where SPC ;; was the only insertable char at point but minibuffer-complete-word ;; refused inserting it. - (let ((exts (mapcar (lambda (str) (propertize str 'completion-try-word t)) - '(" " "-"))) - (before (substring string 0 point)) - (after (substring string point)) - tem) - (while (and exts (not (consp tem))) - (setq tem (completion-try-completion - (concat before (pop exts) after) - table predicate (1+ point) md))) - (if (consp tem) (setq comp tem)))) + (let* ((exts (mapcar (lambda (str) (propertize str 'completion-try-word t)) + '(" " "-"))) + (before (substring string 0 point)) + (after (substring string point)) + (comps + (delete nil + (mapcar (lambda (ext) + (completion-try-completion + (concat before ext after) + table predicate (1+ point) md)) + exts)))) + (when (and (= 1 (length comps) (consp (car comps)))) + (setq comp (car comps))))) ;; Completing a single word is actually more difficult than completing ;; as much as possible, because we first have to find the "current ------------------------------------------------------------ revno: 115915 fixes bug: http://debbugs.gnu.org/16372 committer: Paul Eggert branch nick: trunk timestamp: Tue 2014-01-07 13:14:32 -0800 message: Fix misdisplay of interlaced GIFs with libgif5. * image.c (gif_load): libgif5 deinterlaces for us, so don't do it again. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-01-06 16:28:26 +0000 +++ src/ChangeLog 2014-01-07 21:14:32 +0000 @@ -1,3 +1,9 @@ +2014-01-07 Paul Eggert + + Fix misdisplay of interlaced GIFs with libgif5 (Bug#16372). + * image.c (gif_load): libgif5 deinterlaces for us, so don't do + it again. + 2014-01-06 Eli Zaretskii * xdisp.c (redisplay_window): Don't skip window redisplay if the === modified file 'src/image.c' --- src/image.c 2014-01-01 07:43:34 +0000 +++ src/image.c 2014-01-07 21:14:32 +0000 @@ -7586,7 +7586,7 @@ } /* Apply the pixel values. */ - if (gif->SavedImages[j].ImageDesc.Interlace) + if (GIFLIB_MAJOR < 5 && gif->SavedImages[j].ImageDesc.Interlace) { int row, pass; ------------------------------------------------------------ revno: 115914 committer: Glenn Morris branch nick: trunk timestamp: Tue 2014-01-07 13:50:49 -0500 message: Fix some superscript typos in doc/ * doc/lispref/files.texi (File Attributes): * doc/misc/efaq.texi (Problems with very large files): Fix superscript typo. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-01-07 16:55:17 +0000 +++ doc/lispref/ChangeLog 2014-01-07 18:50:49 +0000 @@ -1,3 +1,7 @@ +2014-01-07 Glenn Morris + + * files.texi (File Attributes): Fix superscipt typo. + 2014-01-07 Chong Yidong * files.texi (Changing Files): Document copy-file changes. === modified file 'doc/lispref/files.texi' --- doc/lispref/files.texi 2014-01-07 04:36:52 +0000 +++ doc/lispref/files.texi 2014-01-07 18:50:49 +0000 @@ -1205,7 +1205,7 @@ @item The file's inode number. If possible, this is an integer. If the inode number is too large to be represented as an integer in Emacs -Lisp but dividing it by @math{2^16} yields a representable integer, +Lisp but dividing it by @math{2^{16}} yields a representable integer, then the value has the form @code{(@var{high} . @var{low})}, where @var{low} holds the low 16 bits. If the inode number is too wide for even that, the value is of the form === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-07 16:55:17 +0000 +++ doc/misc/ChangeLog 2014-01-07 18:50:49 +0000 @@ -1,3 +1,7 @@ +2014-01-07 Glenn Morris + + * efaq.texi (Problems with very large files): Fix superscript typo. + 2013-01-07 Rasmus * org.texi (Global and local cycling): Fix missing '@'. === modified file 'doc/misc/efaq.texi' --- doc/misc/efaq.texi 2014-01-07 16:50:03 +0000 +++ doc/misc/efaq.texi 2014-01-07 18:50:49 +0000 @@ -2750,7 +2750,7 @@ Old versions (i.e., anything before 19.29) of Emacs had problems editing files larger than 8 megabytes. In versions 19.29 and later, the maximum -buffer size is at least 2^27@minus{}1, or 134,217,727 bytes, or 132 MBytes. +buffer size is at least @math{2^{27}-1}, or 134,217,727 bytes, or 132 MBytes. The maximum buffer size on 32-bit machines increased to 256 MBytes in Emacs 22, and again to 512 MBytes in Emacs 23.2. ------------------------------------------------------------ revno: 115913 committer: Bastien Guerry branch nick: trunk timestamp: Tue 2014-01-07 19:01:12 +0100 message: buffers.texi: Fix typo in @math construct. * buffers.texi (Buffers): Fix display of @math content by using nested braces. (Bug#16389) Note that the HTML and plaintext output will use the curly braces like 2^{61} -- but it's better than to have a wrong display of 2^61 in the PDF and printed versions. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2014-01-07 16:55:17 +0000 +++ doc/emacs/ChangeLog 2014-01-07 18:01:12 +0000 @@ -1,3 +1,8 @@ +2014-01-07 Bastien Guerry + + * buffers.texi (Buffers): Fix display of @math content by using + nested braces. (Bug#16389) + 2014-01-07 Chong Yidong * search.texi (Special Isearch): Document C-x 8 RET in isearch. === modified file 'doc/emacs/buffers.texi' --- doc/emacs/buffers.texi 2014-01-01 07:43:34 +0000 +++ doc/emacs/buffers.texi 2014-01-07 18:01:12 +0000 @@ -43,9 +43,9 @@ A buffer's size cannot be larger than some maximum, which is defined by the largest buffer position representable by @dfn{Emacs integers}. This is because Emacs tracks buffer positions using that data type. -For typical 64-bit machines, this maximum buffer size is @math{2^61 - -2} bytes, or about 2 EiB@. For typical 32-bit machines, the maximum is -usually @math{2^29 - 2} bytes, or about 512 MiB@. Buffer sizes are +For typical 64-bit machines, this maximum buffer size is @math{2^{61} - 2} +bytes, or about 2 EiB@. For typical 32-bit machines, the maximum is +usually @math{2^{29} - 2} bytes, or about 512 MiB@. Buffer sizes are also limited by the amount of memory in the system. @menu ------------------------------------------------------------ revno: 115912 committer: martin rudalics branch nick: trunk timestamp: Tue 2014-01-07 18:16:24 +0100 message: Fix Bugs 16351 and 16383 when rounding in balance-windows-2. * window.el (balance-windows-2): While rounding don't give a window more than the remainder. Bug#16351, Bug#16383. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-07 16:50:03 +0000 +++ lisp/ChangeLog 2014-01-07 17:16:24 +0000 @@ -1,3 +1,8 @@ +2014-01-07 Martin Rudalics + + * window.el (balance-windows-2): While rounding don't give a + window more than the remainder. Bug#16351, Bug#16383. + 2014-01-07 Glenn Morris * menu-bar.el (menu-bar-help-extra-packages): Remove. === modified file 'lisp/window.el' --- lisp/window.el 2014-01-05 16:29:44 +0000 +++ lisp/window.el 2014-01-07 17:16:24 +0000 @@ -4541,7 +4541,7 @@ (setq sub first) (while (and sub (> rest 0)) (unless (window--resize-child-windows-skip-p window) - (set-window-new-pixel sub char-size t) + (set-window-new-pixel sub (min rest char-size) t) (setq rest (- rest char-size))) (setq sub (window-right sub))) @@ -4550,7 +4550,7 @@ (setq sub first) (while (and sub (> rest 0)) (unless (eq (window-new-normal sub) 'ignore) - (set-window-new-pixel sub char-size t) + (set-window-new-pixel sub (min rest char-size) t) (setq rest (- rest char-size))) (setq sub (window-right sub))) ------------------------------------------------------------ revno: 115911 committer: Glenn Morris branch nick: trunk timestamp: Tue 2014-01-07 09:13:07 -0800 message: * etc/refcards/orgcard.tex: Revert part of previous change. diff: === modified file 'etc/refcards/orgcard.tex' --- etc/refcards/orgcard.tex 2014-01-07 13:22:53 +0000 +++ etc/refcards/orgcard.tex 2014-01-07 17:13:07 +0000 @@ -1,7 +1,7 @@ % Reference Card for Org Mode \def\orgversionnumber{8.2} \def\versionyear{2014} % latest update -\def\year{2014} % latest copyright year +\input emacsver.tex %**start of header \newcount\columnsperpage ------------------------------------------------------------ revno: 115910 committer: Glenn Morris branch nick: trunk timestamp: Tue 2014-01-07 08:59:24 -0800 message: Fix previous change diff: === modified file 'doc/misc/org.texi' --- doc/misc/org.texi 2014-01-07 13:22:53 +0000 +++ doc/misc/org.texi 2014-01-07 16:59:24 +0000 @@ -2,8 +2,7 @@ @c %**start of header @setfilename ../../info/org @settitle The Org Manual - -@include org-version.inc +@set VERSION 8.2.5c @c Use proper quote and backtick for code sections in PDF output @c Cf. Texinfo manual 14.2 @@ -281,7 +280,7 @@ @dircategory Emacs editing modes @direntry -* Org Mode: (org). Outline-based notes management and organizer +* Org Mode: (org). Outline-based notes management and organizer. @end direntry @titlepage ------------------------------------------------------------ revno: 115909 committer: Glenn Morris branch nick: trunk timestamp: Tue 2014-01-07 08:55:17 -0800 message: ChangeLog fixes diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2014-01-07 04:36:52 +0000 +++ doc/emacs/ChangeLog 2014-01-07 16:55:17 +0000 @@ -3117,9 +3117,9 @@ 2010-03-27 Nick Roberts - doc/emacs/building.texi: Describe restored GDB/MI functionality + * building.texi: Describe restored GDB/MI functionality removed by r99212. - doc/emacs/emacs.texi: Update node names for building.texi. + * emacs.texi: Update node names for building.texi. 2010-03-24 Glenn Morris @@ -4936,7 +4936,7 @@ 2008-05-02 Eric S. Raymond - * emacs/buffers.texi, emacs/files.texi (Version-control): + * buffers.texi, files.texi (Version-control): vc-toggle-read-only is no longer a good idea... 2008-04-29 Glenn Morris === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-01-07 04:36:52 +0000 +++ doc/lispref/ChangeLog 2014-01-07 16:55:17 +0000 @@ -11738,15 +11738,12 @@ 2003-11-02 Jesper Harder (tiny change) - * lispref/anti.texi, lispref/backups.texi, lispref/commands.texi - lispref/customize.texi, lispref/display.texi, lispref/files.texi, - lispref/internals.texi, lispref/keymaps.texi, lispref/loading.texi, - lispref/modes.texi, lispref/nonascii.texi, lispref/numbers.texi, - lispref/objects.texi, lispref/os.texi, lispref/positions.texi, - lispref/processes.texi, lispref/searching.texi, - lispref/sequences.texi, lispref/streams.texi, lispref/strings.texi, - lispref/syntax.texi, lispref/text.texi: Replace @sc{foo} with - @acronym{FOO}. + * anti.texi, backups.texi, commands.texi, customize.texi: + * display.texi, files.texi, internals.texi, keymaps.texi: + * loading.texi, modes.texi, nonascii.texi, numbers.texi: + * objects.texi, os.texi, positions.texi, processes.texi: + * searching.texi, sequences.texi, streams.texi, strings.texi: + * syntax.texi, text.texi: Replace @sc{foo} with @acronym{FOO}. 2003-10-27 Luc Teirlinck === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-07 13:22:53 +0000 +++ doc/misc/ChangeLog 2014-01-07 16:55:17 +0000 @@ -1,10 +1,10 @@ 2013-01-07 Rasmus - * misc/org.texi (Global and local cycling): Fix missing '@'. + * org.texi (Global and local cycling): Fix missing '@'. 2013-01-07 Bastien Guerry - * misc/org.texi (Global and local cycling): Mention C-u C-u TAB. + * org.texi (Global and local cycling): Mention C-u C-u TAB. (Include files, The Export Dispatcher) (Advanced configuration) (Header arguments in Org mode properties): Spelling fixes. @@ -14,7 +14,7 @@ 2013-01-07 Nicolas Goaziou - * misc/org.texi (Org export): New section. + * org.texi (Org export): New section. (HTML doctypes): Fix whitespace error. Fix display. (Publishing options): Add missing html publishing options. @@ -1211,7 +1211,7 @@ 2013-02-07 Eric Ludlam - * doc/misc/ede.texi (Creating a project): Make ede-new doc less + * ede.texi (Creating a project): Make ede-new doc less specific, and only about items it supports, indicating that there might be more. Remove refs to simple project and direct automake from ede new. @@ -1543,7 +1543,7 @@ 2012-11-22 Jay Belanger - * doc/misc/calc.texi (Date Forms): Mention the customizable + * calc.texi (Date Forms): Mention the customizable Gregorian-Julian switch. (Customizing Calc): Mention the variable `calc-gregorian-switch'. @@ -2208,7 +2208,7 @@ 2012-05-19 Jay Belanger - * doc/misc/calc.texi (Basic Operations on Units, Customizing Calc): + * calc.texi (Basic Operations on Units, Customizing Calc): Mention `calc-ensure-consistent-units'. 2012-05-14 Andreas Schwab ------------------------------------------------------------ revno: 115908 committer: Glenn Morris branch nick: trunk timestamp: Tue 2014-01-07 08:50:03 -0800 message: * lisp/menu-bar.el (menu-bar-help-extra-packages): Remove. (menu-bar-help-menu): Use view-external-packages instead. * doc/misc/faq.texi: Comment. diff: === modified file 'doc/misc/efaq.texi' --- doc/misc/efaq.texi 2014-01-07 08:35:29 +0000 +++ doc/misc/efaq.texi 2014-01-07 16:50:03 +0000 @@ -3299,6 +3299,7 @@ For advice on how to find extra packages that are not part of Emacs, see @ref{Packages that do not come with Emacs}. +@c Note that M-x view-external-packages references this node. @node Packages that do not come with Emacs @section Where can I get Emacs Lisp packages that don't come with Emacs? @cindex Unbundled packages === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-07 10:58:03 +0000 +++ lisp/ChangeLog 2014-01-07 16:50:03 +0000 @@ -1,3 +1,8 @@ +2014-01-07 Glenn Morris + + * menu-bar.el (menu-bar-help-extra-packages): Remove. + (menu-bar-help-menu): Use view-external-packages instead. + 2014-01-07 Bastien Guerry * emacs-lisp/package.el (package-delete): Also delete the package === modified file 'lisp/menu-bar.el' --- lisp/menu-bar.el 2014-01-07 08:38:58 +0000 +++ lisp/menu-bar.el 2014-01-07 16:50:03 +0000 @@ -1635,12 +1635,6 @@ :help "Read the Introduction to Emacs Lisp Programming")) menu)) -;; This used to visit MORE.STUFF; maybe it should just be removed. -(defun menu-bar-help-extra-packages () - "Display help about some additional packages available for Emacs." - (interactive) - (info "(efaq)Packages that do not come with Emacs")) - (defun help-with-tutorial-spec-language () "Use the Emacs tutorial, specifying which language you want." (interactive) @@ -1668,8 +1662,8 @@ (bindings--define-key menu [sep2] menu-bar-separator) (bindings--define-key menu [external-packages] - '(menu-item "Finding Extra Packages" menu-bar-help-extra-packages - :help "Lisp packages distributed separately for use in Emacs")) + '(menu-item "Finding Extra Packages" view-external-packages + :help "How to get more Lisp packages for use in Emacs")) (bindings--define-key menu [find-emacs-packages] '(menu-item "Search Built-in Packages" finder-by-keyword :help "Find built-in packages and features by keyword")) ------------------------------------------------------------ revno: 115907 committer: Bastien Guerry branch nick: trunk timestamp: Tue 2014-01-07 14:22:53 +0100 message: Merge Org version 8.2.5c. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-07 08:35:29 +0000 +++ doc/misc/ChangeLog 2014-01-07 13:22:53 +0000 @@ -1,3 +1,23 @@ +2013-01-07 Rasmus + + * misc/org.texi (Global and local cycling): Fix missing '@'. + +2013-01-07 Bastien Guerry + + * misc/org.texi (Global and local cycling): Mention C-u C-u TAB. + (Include files, The Export Dispatcher) + (Advanced configuration) + (Header arguments in Org mode properties): Spelling fixes. + (Special blocks): Add #+BEGIN_ABSTRACT as another example. + (@LaTeX{} specific attributes): New index entries. Use + #+BEGIN_ABSTRACT in the example. + +2013-01-07 Nicolas Goaziou + + * misc/org.texi (Org export): New section. + (HTML doctypes): Fix whitespace error. Fix display. + (Publishing options): Add missing html publishing options. + 2014-01-07 Glenn Morris * efaq.texi (Basic editing, Packages that do not come with Emacs): === modified file 'doc/misc/org.texi' --- doc/misc/org.texi 2014-01-06 05:25:46 +0000 +++ doc/misc/org.texi 2014-01-07 13:22:53 +0000 @@ -2,7 +2,8 @@ @c %**start of header @setfilename ../../info/org @settitle The Org Manual -@set VERSION 8.2.4 + +@include org-version.inc @c Use proper quote and backtick for code sections in PDF output @c Cf. Texinfo manual 14.2 @@ -280,7 +281,7 @@ @dircategory Emacs editing modes @direntry -* Org Mode: (org). Outline-based notes management and organizer. +* Org Mode: (org). Outline-based notes management and organizer @end direntry @titlepage @@ -588,6 +589,7 @@ * @LaTeX{} and PDF export:: Exporting to @LaTeX{}, and processing to PDF * Markdown export:: Exporting to Markdown * OpenDocument Text export:: Exporting to OpenDocument Text +* Org export:: Exporting to Org * iCalendar export:: Exporting to iCalendar * Other built-in back-ends:: Exporting to @code{Texinfo}, a man page, or Org * Export in foreign buffers:: Author tables in lists in Org syntax @@ -1283,6 +1285,9 @@ CONTENTS view up to headlines of level N will be shown. Note that inside tables, @kbd{S-@key{TAB}} jumps to the previous field. +@cindex set startup visibility, command +@orgcmd{C-u C-u @key{TAB},org-set-startup-visibility} +Switch back to the startup visibility of the buffer (@pxref{Initial visibility}). @cindex show all, command @orgcmd{C-u C-u C-u @key{TAB},show-all} Show all, including drawers. @@ -10313,12 +10318,19 @@ examples}). It is also possible to create blocks containing raw code targeted at a specific back-ends (e.g., @samp{#+BEGIN_LATEX}). -Any other block is a @emph{special block}. Each export back-end decides if -they should be exported, and how. When the block is ignored, its contents -are still exported, as if the block were not there. For example, when -exporting a @samp{#+BEGIN_TEST} block, HTML back-end wraps its contents -within @samp{
} tag. Refer to back-end specific -documentation for more information. +Any other block is a @emph{special block}. + +For example, @samp{#+BEGIN_ABSTRACT} and @samp{#+BEGIN_VIDEO} are special +blocks. The first one is useful when exporting to @LaTeX{}, the second one +when exporting to HTML5. + +Each export back-end decides if they should be exported, and how. When the +block is ignored, its contents are still exported, as if the opening and +closing block lines were not there. For example, when exporting a +@samp{#+BEGIN_TEST} block, HTML back-end wraps its contents within a +@samp{
} tag. + +Refer to back-end specific documentation for more information. @node Exporting, Publishing, Markup, Top @chapter Exporting @@ -10350,6 +10362,7 @@ * @LaTeX{} and PDF export:: Exporting to @LaTeX{}, and processing to PDF * Markdown export:: Exporting to Markdown * OpenDocument Text export:: Exporting to OpenDocument Text +* Org export:: Exporting to Org * iCalendar export:: Exporting to iCalendar * Other built-in back-ends:: Exporting to @code{Texinfo}, a man page, or Org * Export in foreign buffers:: Author tables in lists in Org syntax @@ -10449,6 +10462,7 @@ @item man (Man page format) @item md (Markdown format) @item odt (OpenDocument Text format) +@item org (Org format) @item texinfo (Texinfo format) @end itemize @@ -11107,12 +11121,12 @@ @end example Special blocks that do not correspond to HTML5 elements (see -@code{org-html-html5-elements}) will revert to the usual behavior, -i.e. #+BEGIN_LEDERHOSEN will still export to
. +@code{org-html-html5-elements}) will revert to the usual behavior, i.e., +@code{#+BEGIN_LEDERHOSEN} will still export to @samp{
}. Headlines cannot appear within special blocks. To wrap a headline and its -contents in e.g.
or
tags, set the @code{HTML_CONTAINER} -property on the headline itself. +contents in e.g., @samp{
} or @samp{
} tags, set the +@code{HTML_CONTAINER} property on the headline itself. @node HTML preamble and postamble, Quoting HTML tags, HTML doctypes, HTML export @subsection HTML preamble and postamble @@ -11791,12 +11805,18 @@ @subsubheading Special blocks in @LaTeX{} export @cindex special blocks, in @LaTeX{} export +@cindex abstract, in @LaTeX{} export +@cindex proof, in @LaTeX{} export In @LaTeX{} back-end, special blocks become environments of the same name. Value of @code{:options} attribute will be appended as-is to that environment's opening string. For example: @example +#+BEGIN_ABSTRACT +We demonstrate how to solve the Syracuse problem. +#+END_ABSTRACT + #+ATTR_LATEX: :options [Proof of important theorem] #+BEGIN_PROOF ... @@ -11808,6 +11828,10 @@ becomes @example +\begin@{abstract@} +We demonstrate how to solve the Syracuse problem. +\end@{abstract@} + \begin@{proof@}[Proof of important theorem] ... Therefore, any even number greater than 2 is the sum of two primes. @@ -11872,7 +11896,7 @@ @c begin opendocument -@node OpenDocument Text export, iCalendar export, Markdown export, Exporting +@node OpenDocument Text export, Org export, Markdown export, Exporting @section OpenDocument Text export @cindex ODT @cindex OpenDocument @@ -12789,7 +12813,28 @@ @c end opendocument -@node iCalendar export, Other built-in back-ends, OpenDocument Text export, Exporting +@node Org export +@section Org export +@cindex Org export + +@code{org} export back-end creates a normalized version of the Org document +in current buffer. In particular, it evaluates Babel code (@pxref{Evaluating +code blocks}) and removes other back-ends specific contents. + +@subheading Org export commands + +@table @kbd +@orgcmd{C-c C-e O o,org-org-export-to-org} +Export as an Org document. For an Org file, @file{myfile.org}, the resulting +file will be @file{myfile.org.org}. The file will be overwritten without +warning. +@orgcmd{C-c C-e O O,org-org-export-as-org} +Export to a temporary buffer. Do not create a file. +@item C-c C-e O v +Export to an Org file, then open it. +@end table + +@node iCalendar export, Other built-in back-ends, Org export, Exporting @section iCalendar export @cindex iCalendar export @@ -12868,7 +12913,6 @@ @itemize @item @file{ox-man.el}: export to a man page. @item @file{ox-texinfo.el}: export to @code{Texinfo} format. -@item @file{ox-org.el}: export to an Org document. @end itemize To activate these export back-end, customize @code{org-export-backends} or @@ -13314,10 +13358,13 @@ @end multitable @vindex org-html-doctype +@vindex org-html-container-element +@vindex org-html-html5-fancy @vindex org-html-xml-declaration @vindex org-html-link-up @vindex org-html-link-home @vindex org-html-link-org-files-as-html +@vindex org-html-link-use-abs-url @vindex org-html-head @vindex org-html-head-extra @vindex org-html-inline-images @@ -13325,21 +13372,26 @@ @vindex org-html-preamble @vindex org-html-postamble @vindex org-html-table-default-attributes +@vindex org-html-table-row-tags @vindex org-html-head-include-default-style @vindex org-html-head-include-scripts @multitable @columnfractions 0.32 0.68 @item @code{:html-doctype} @tab @code{org-html-doctype} +@item @code{:html-container} @tab @code{org-html-container-element} +@item @code{:html-html5-fancy} @tab @code{org-html-html5-fancy} @item @code{:html-xml-declaration} @tab @code{org-html-xml-declaration} @item @code{:html-link-up} @tab @code{org-html-link-up} @item @code{:html-link-home} @tab @code{org-html-link-home} @item @code{:html-link-org-as-html} @tab @code{org-html-link-org-files-as-html} +@item @code{:html-link-use-abs-url} @tab @code{org-html-link-use-abs-url} @item @code{:html-head} @tab @code{org-html-head} @item @code{:html-head-extra} @tab @code{org-html-head-extra} @item @code{:html-inline-images} @tab @code{org-html-inline-images} @item @code{:html-extension} @tab @code{org-html-extension} @item @code{:html-preamble} @tab @code{org-html-preamble} @item @code{:html-postamble} @tab @code{org-html-postamble} -@item @code{:html-table-attributes} @tab @code{org-html-table-default-attributes} +@item @code{:html-table-attributes} @tab @code{org-html-table-default-attributes} +@item @code{:html-table-row-tags} @tab @code{org-html-table-row-tags} @item @code{:html-head-include-default-style} @tab @code{org-html-head-include-default-style} @item @code{:html-head-include-scripts} @tab @code{org-html-head-include-scripts} @end multitable === modified file 'etc/refcards/orgcard.tex' --- etc/refcards/orgcard.tex 2014-01-01 07:43:34 +0000 +++ etc/refcards/orgcard.tex 2014-01-07 13:22:53 +0000 @@ -1,7 +1,7 @@ % Reference Card for Org Mode -\def\orgversionnumber{8.2.4} -\def\versionyear{2013} % latest update -\input emacsver.tex +\def\orgversionnumber{8.2} +\def\versionyear{2014} % latest update +\def\year{2014} % latest copyright year %**start of header \newcount\columnsperpage === modified file 'lisp/org/ChangeLog' --- lisp/org/ChangeLog 2014-01-05 02:56:08 +0000 +++ lisp/org/ChangeLog 2014-01-07 13:22:53 +0000 @@ -1,3 +1,107 @@ +2013-01-07 Bastien Guerry + + * org-clock.el (org-clock-cancel-hook) + (org-clock-leftover-time): Fix typo in docstring. + + * ox-odt.el (org-odt--frame): Add a draw:name property to the + draw:frame tag. + (org-odt-format-label): Don't use short-caption at all. + + * org-rmail.el (org-rmail-follow-link): Don't raise an error when + no article is matched. + + * org.el (org-set-tags): Ignore invisible text when restoring + cursor position. + (org-refile-get-location): Check for a refile position when the + position is not nil, otherwise allow to create the parent node if + the user requests it. + (org-refile-allow-creating-parent-nodes): Fix typo in + docstring. + (org-entry-get): Minor docstring enhancement. + (org-set-startup-visibility): Bugfix. + (org-shiftcontrolup, org-shiftcontroldown): When + `org-support-shift-select' is not `nil', let-bind it to nil if + point is on a clock log. Otherwise throw an error. + + * ob-lob.el (org-babel-lob-files): Fix custom type. + (org-babel-lob-ingest): Small docstring fix. + + * org-agenda.el (org-cmp-ts): Fix bug: interpret `late' as + `later than any date' instead of `later than today'. + + * org.el (org-do-emphasis-faces): Handle false positives by + restarting the re-search one char after the beginning of the + match, not one char before its ending. + (org-entry-put): Check that the value provided is a string. If it + is nil, convert it to the empty string. + + * ob-latex.el (org-babel-latex-htlatex-packages): Use repeat + instead of list as the defcustom type. + + * ox.el (org-export-with-creator): + * org.el (org-loop-over-headlines-in-active-region) + (org-mouse-1-follows-link, org-provide-todo-statistics): + * org-agenda.el (org-agenda-custom-commands-local-options) + (org-agenda-start-with-log-mode) + (org-agenda-show-inherited-tags): Don't quote const values. + + * ox-texinfo.el (org-texinfo-def-table-markup): + * org-inlinetask.el (org-inlinetask-show-first-star): + * ob-maxima.el (org-babel-maxima-command): Add type. + + * org-table.el (org-table-fix-formulas): Handle multiple + #+tblfm: lines. + + * ox.el (org-export-to-file): Fix typo in docstring. + + * org.el (org-self-insert-command) + (orgtbl-self-insert-command): Change the value of the + `delete-selection' property to allow other commands like + `electric-pair-will-use-region' to be run before deletion. + + * org-attach.el (vc-git): Require. + (org-attach-commit): Check whether git is installed. + +2013-01-07 Nicolas Goaziou + + * ox-icalendar.el (org-icalendar--combine-files): Make sure + anniversaries do not end up in *Message* buffer instead of the ICS + file. + + * ox-html.el: Clean up "FIXME" comments. + + * ox-publish.el (org-publish-resolve-external-fuzzy-link): Fix + docstring. + + * ox.el (org-export-smart-quotes-regexps): Fix smart quote + detection when it is followed by an open parenthesis syntax class. + + * org-element.el (org-element-inline-babel-call-successor): Use + original regexp to stay up-to-date with Babel changes. + (org-element--affiliated-re): Fix affiliated keyword regexp. + + * ox-org.el (org-org-identity): Since back-end specific keywords + are stripped from output, also remove attr_backend keywords. + (org-babel-exp-process-buffer): Fix duplicate evaluation with + :wrap src. + (org-babel-exp-non-block-elements): Removed function. + +2013-01-07 Ted Wiles (tiny change) + + * org-habit.el (org-habit-parse-todo): Match all TODO keywords, + not just "TODO". + +2013-01-07 U-usuario (tiny change) + + * ob-gnuplot.el (org-babel-gnuplot-quote-tsv-field): Fix code + typo. + +2013-01-07 Vladimir Lomov (tiny change) + + * ox-html.el (org-html-style-default): New classes caption.t-above + and caption.t-bottom. + (org-html-table): Use new classes. + 2013-12-23 Chong Yidong * org.el (orgstruct-make-binding): Call set-transient-map instead === modified file 'lisp/org/ob-exp.el' --- lisp/org/ob-exp.el 2014-01-01 07:43:34 +0000 +++ lisp/org/ob-exp.el 2014-01-07 13:22:53 +0000 @@ -150,19 +150,17 @@ :type 'string) (defvar org-babel-default-lob-header-args) -(defun org-babel-exp-non-block-elements (start end) - "Process inline source and call lines between START and END for export." +(defun org-babel-exp-process-buffer () + "Execute all Babel blocks in current buffer." (interactive) - (save-excursion - (goto-char start) - (unless (markerp end) - (let ((m (make-marker))) - (set-marker m end (current-buffer)) - (setq end m))) - (let ((rx (concat "\\(?:" org-babel-inline-src-block-regexp - "\\|" org-babel-lob-one-liner-regexp "\\)"))) - (while (re-search-forward rx end t) - (save-excursion + (save-window-excursion + (save-excursion + (let ((case-fold-search t) + (regexp (concat org-babel-inline-src-block-regexp "\\|" + org-babel-lob-one-liner-regexp "\\|" + "^[ \t]*#\\+BEGIN_SRC"))) + (goto-char (point-min)) + (while (re-search-forward regexp nil t) (let* ((element (save-excursion ;; If match is inline, point is at its ;; end. Move backward so @@ -170,145 +168,117 @@ ;; object, not the following one. (backward-char) (save-match-data (org-element-context)))) - (type (org-element-type element))) - (when (memq type '(babel-call inline-babel-call inline-src-block)) - (let ((beg-el (org-element-property :begin element)) - (end-el (org-element-property :end element))) - (case type - (inline-src-block - (let* ((info (org-babel-parse-inline-src-block-match)) - (params (nth 2 info))) - (setf (nth 1 info) - (if (and (cdr (assoc :noweb params)) - (string= "yes" (cdr (assoc :noweb params)))) - (org-babel-expand-noweb-references - info (org-babel-exp-get-export-buffer)) - (nth 1 info))) - (goto-char beg-el) - (let ((replacement (org-babel-exp-do-export info 'inline))) - (if (equal replacement "") - ;; Replacement code is empty: completely - ;; remove inline src block, including extra - ;; white space that might have been created - ;; when inserting results. - (delete-region beg-el - (progn (goto-char end-el) - (skip-chars-forward " \t") - (point))) - ;; Otherwise: remove inline src block but - ;; preserve following white spaces. Then - ;; insert value. - (delete-region beg-el - (progn (goto-char end-el) - (skip-chars-backward " \t") - (point))) - (insert replacement))))) - ((babel-call inline-babel-call) - (let* ((lob-info (org-babel-lob-get-info)) - (results - (org-babel-exp-do-export - (list "emacs-lisp" "results" - (apply #'org-babel-merge-params - org-babel-default-header-args - org-babel-default-lob-header-args - (append - (org-babel-params-from-properties) - (list - (org-babel-parse-header-arguments - (org-no-properties - (concat - ":var results=" - (mapconcat 'identity - (butlast lob-info 2) - " "))))))) - "" (nth 3 lob-info) (nth 2 lob-info)) - 'lob)) - (rep (org-fill-template - org-babel-exp-call-line-template - `(("line" . ,(nth 0 lob-info)))))) - ;; If replacement is empty, completely remove the - ;; object/element, including any extra white space - ;; that might have been created when including - ;; results. - (if (equal rep "") - (delete-region - beg-el - (progn (goto-char end-el) - (if (not (eq type 'babel-call)) - (progn (skip-chars-forward " \t") (point)) - (skip-chars-forward " \r\t\n") - (line-beginning-position)))) - ;; Otherwise, preserve following white - ;; spaces/newlines and then, insert replacement - ;; string. - (goto-char beg-el) + (type (org-element-type element)) + (beg-el (org-element-property :begin element)) + (end-el (org-element-property :end element))) + (case type + (inline-src-block + (let* ((info (org-babel-parse-inline-src-block-match)) + (params (nth 2 info))) + (setf (nth 1 info) + (if (and (cdr (assoc :noweb params)) + (string= "yes" (cdr (assoc :noweb params)))) + (org-babel-expand-noweb-references + info (org-babel-exp-get-export-buffer)) + (nth 1 info))) + (goto-char beg-el) + (let ((replacement (org-babel-exp-do-export info 'inline))) + (if (equal replacement "") + ;; Replacement code is empty: remove inline src + ;; block, including extra white space that + ;; might have been created when inserting + ;; results. (delete-region beg-el (progn (goto-char end-el) - (skip-chars-backward " \r\t\n") + (skip-chars-forward " \t") (point))) - (insert rep))))))))))))) - -(defvar org-src-preserve-indentation) ; From org-src.el -(defun org-babel-exp-process-buffer () - "Execute all blocks in visible part of buffer." - (interactive) - (save-window-excursion - (let ((case-fold-search t) - (pos (point-min))) - (goto-char pos) - (while (re-search-forward "^[ \t]*#\\+BEGIN_SRC" nil t) - (let ((element (save-match-data (org-element-at-point)))) - (when (eq (org-element-type element) 'src-block) - (let* ((match-start (copy-marker (match-beginning 0))) - (begin (copy-marker (org-element-property :begin element))) - ;; Make sure we don't remove any blank lines after - ;; the block when replacing it. - (block-end (save-excursion - (goto-char (org-element-property :end element)) - (skip-chars-backward " \r\t\n") - (copy-marker (line-end-position)))) - (ind (org-get-indentation)) - (headers - (cons - (org-element-property :language element) - (let ((params (org-element-property :parameters element))) - (and params (org-split-string params "[ \t]+")))))) - ;; Execute all non-block elements between POS and - ;; current block. - (org-babel-exp-non-block-elements pos begin) - ;; Take care of matched block: compute replacement - ;; string. In particular, a nil REPLACEMENT means the - ;; block should be left as-is while an empty string - ;; should remove the block. - (let ((replacement (progn (goto-char match-start) - (org-babel-exp-src-block headers)))) - (cond ((not replacement) (goto-char block-end)) - ((equal replacement "") - (delete-region begin - (progn (goto-char block-end) - (skip-chars-forward " \r\t\n") - (if (eobp) (point) - (line-beginning-position))))) - (t - (goto-char match-start) - (delete-region (point) block-end) - (insert replacement) - (if (org-element-property :preserve-indent element) - ;; Indent only the code block markers. - (save-excursion (skip-chars-backward " \r\t\n") - (indent-line-to ind) - (goto-char match-start) - (indent-line-to ind)) - ;; Indent everything. - (indent-rigidly match-start (point) ind))))) - (setq pos (line-beginning-position)) - ;; Cleanup markers. - (set-marker match-start nil) - (set-marker begin nil) - (set-marker block-end nil))))) - ;; Eventually execute all non-block Babel elements between last - ;; src-block and end of buffer. - (org-babel-exp-non-block-elements pos (point-max))))) + ;; Otherwise: remove inline src block but + ;; preserve following white spaces. Then insert + ;; value. + (delete-region beg-el + (progn (goto-char end-el) + (skip-chars-backward " \t") + (point))) + (insert replacement))))) + ((babel-call inline-babel-call) + (let* ((lob-info (org-babel-lob-get-info)) + (results + (org-babel-exp-do-export + (list "emacs-lisp" "results" + (apply #'org-babel-merge-params + org-babel-default-header-args + org-babel-default-lob-header-args + (append + (org-babel-params-from-properties) + (list + (org-babel-parse-header-arguments + (org-no-properties + (concat + ":var results=" + (mapconcat 'identity + (butlast lob-info 2) + " "))))))) + "" (nth 3 lob-info) (nth 2 lob-info)) + 'lob)) + (rep (org-fill-template + org-babel-exp-call-line-template + `(("line" . ,(nth 0 lob-info)))))) + ;; If replacement is empty, completely remove the + ;; object/element, including any extra white space + ;; that might have been created when including + ;; results. + (if (equal rep "") + (delete-region + beg-el + (progn (goto-char end-el) + (if (not (eq type 'babel-call)) + (progn (skip-chars-forward " \t") (point)) + (skip-chars-forward " \r\t\n") + (line-beginning-position)))) + ;; Otherwise, preserve following white + ;; spaces/newlines and then, insert replacement + ;; string. + (goto-char beg-el) + (delete-region beg-el + (progn (goto-char end-el) + (skip-chars-backward " \r\t\n") + (point))) + (insert rep)))) + (src-block + (let* ((match-start (match-beginning 0)) + ;; Make sure we don't remove any blank lines + ;; after the block when replacing it. + (block-end (save-excursion + (goto-char end-el) + (skip-chars-backward " \r\t\n") + (line-end-position))) + (ind (org-get-indentation)) + (headers + (cons + (org-element-property :language element) + (let ((params (org-element-property :parameters element))) + (and params (org-split-string params "[ \t]+")))))) + ;; Take care of matched block: compute replacement + ;; string. In particular, a nil REPLACEMENT means + ;; the block should be left as-is while an empty + ;; string should remove the block. + (let ((replacement (progn (goto-char match-start) + (org-babel-exp-src-block headers)))) + (cond ((not replacement) (goto-char block-end)) + ((equal replacement "") + (delete-region beg-el end-el)) + (t + (goto-char match-start) + (delete-region (point) block-end) + (insert replacement) + (if (org-element-property :preserve-indent element) + ;; Indent only the code block markers. + (save-excursion (skip-chars-backward " \r\t\n") + (indent-line-to ind) + (goto-char match-start) + (indent-line-to ind)) + ;; Indent everything. + (indent-rigidly match-start (point) ind)))))))))))))) (defun org-babel-in-example-or-verbatim () "Return true if point is in example or verbatim code. === modified file 'lisp/org/ob-gnuplot.el' --- lisp/org/ob-gnuplot.el 2014-01-01 07:43:34 +0000 +++ lisp/org/ob-gnuplot.el 2014-01-07 13:22:53 +0000 @@ -253,7 +253,7 @@ (org-babel-gnuplot-quote-timestamp-field s) (if (zerop (length s)) (or *org-babel-gnuplot-missing* s) - (if (string-match "[ \"]" "?") + (if (string-match "[ \"]" s) (concat "\"" (mapconcat 'identity (split-string s "\"") "\"\"") "\"") s))))) === modified file 'lisp/org/ob-latex.el' --- lisp/org/ob-latex.el 2014-01-01 07:43:34 +0000 +++ lisp/org/ob-latex.el 2014-01-07 13:22:53 +0000 @@ -59,7 +59,7 @@ '("[usenames]{color}" "{tikz}" "{color}" "{listings}" "{amsmath}") "Packages to use for htlatex export." :group 'org-babel - :type '(list (string))) + :type '(repeat (string))) (defun org-babel-expand-body:latex (body params) "Expand BODY according to PARAMS, return the expanded body." === modified file 'lisp/org/ob-lob.el' --- lisp/org/ob-lob.el 2014-01-01 07:43:34 +0000 +++ lisp/org/ob-lob.el 2014-01-07 13:22:53 +0000 @@ -40,14 +40,13 @@ To add files to this list use the `org-babel-lob-ingest' command." :group 'org-babel :version "24.1" - :type 'list) + :type '(repeat file)) (defvar org-babel-default-lob-header-args '((:exports . "results")) "Default header arguments to use when exporting #+lob/call lines.") (defun org-babel-lob-ingest (&optional file) - "Add all named source-blocks defined in FILE to -`org-babel-library-of-babel'." + "Add all named source blocks defined in FILE to `org-babel-library-of-babel'." (interactive "fFile: ") (let ((lob-ingest-count 0)) (org-babel-map-src-blocks file === modified file 'lisp/org/ob-maxima.el' --- lisp/org/ob-maxima.el 2014-01-01 07:43:34 +0000 +++ lisp/org/ob-maxima.el 2014-01-07 13:22:53 +0000 @@ -43,7 +43,8 @@ (defcustom org-babel-maxima-command (if (boundp 'maxima-command) maxima-command "maxima") "Command used to call maxima on the shell." - :group 'org-babel) + :group 'org-babel + :type 'string) (defun org-babel-maxima-expand (body params) "Expand a block of Maxima code according to its header arguments." === modified file 'lisp/org/org-agenda.el' --- lisp/org/org-agenda.el 2014-01-01 07:43:34 +0000 +++ lisp/org/org-agenda.el 2014-01-07 13:22:53 +0000 @@ -328,11 +328,11 @@ (string)) (list :tag "Number of days in agenda" (const org-agenda-span) - (choice (const :tag "Day" 'day) - (const :tag "Week" 'week) - (const :tag "Fortnight" 'fortnight) - (const :tag "Month" 'month) - (const :tag "Year" 'year) + (choice (const :tag "Day" day) + (const :tag "Week" week) + (const :tag "Fortnight" fortnight) + (const :tag "Month" month) + (const :tag "Year" year) (integer :tag "Custom"))) (list :tag "Fixed starting date" (const org-agenda-start-day) @@ -390,32 +390,32 @@ (repeat :inline t :tag "Conditions for skipping" (choice :tag "Condition type" - (list :tag "Regexp matches" :inline t (const :format "" 'regexp) (regexp)) - (list :tag "Regexp does not match" :inline t (const :format "" 'notregexp) (regexp)) + (list :tag "Regexp matches" :inline t (const :format "" regexp) (regexp)) + (list :tag "Regexp does not match" :inline t (const :format "" notregexp) (regexp)) (list :tag "TODO state is" :inline t - (const 'todo) + (const todo) (choice - (const :tag "any not-done state" 'todo) - (const :tag "any done state" 'done) - (const :tag "any state" 'any) + (const :tag "any not-done state" todo) + (const :tag "any done state" done) + (const :tag "any state" any) (list :tag "Keyword list" (const :format "" quote) (repeat (string :tag "Keyword"))))) (list :tag "TODO state is not" :inline t - (const 'nottodo) + (const nottodo) (choice - (const :tag "any not-done state" 'todo) - (const :tag "any done state" 'done) - (const :tag "any state" 'any) + (const :tag "any not-done state" todo) + (const :tag "any done state" done) + (const :tag "any state" any) (list :tag "Keyword list" (const :format "" quote) (repeat (string :tag "Keyword"))))) - (const :tag "scheduled" 'scheduled) - (const :tag "not scheduled" 'notscheduled) - (const :tag "deadline" 'deadline) - (const :tag "no deadline" 'notdeadline) - (const :tag "timestamp" 'timestamp) - (const :tag "no timestamp" 'nottimestamp)))))) + (const :tag "scheduled" scheduled) + (const :tag "not scheduled" notscheduled) + (const :tag "deadline" deadline) + (const :tag "no deadline" notdeadline) + (const :tag "timestamp" timestamp) + (const :tag "no timestamp" nottimestamp)))))) (list :tag "Non-standard skipping condition" :value (org-agenda-skip-function) (const org-agenda-skip-function) @@ -1357,12 +1357,12 @@ :group 'org-agenda-startup :group 'org-agenda-daily/weekly :type '(choice (const :tag "Don't show log items" nil) - (const :tag "Show only log items" 'only) - (const :tag "Show all possible log items" 'clockcheck) + (const :tag "Show only log items" only) + (const :tag "Show all possible log items" clockcheck) (repeat :tag "Choose among possible values for `org-agenda-log-mode-items'" - (choice (const :tag "Show closed log items" 'closed) - (const :tag "Show clocked log items" 'clock) - (const :tag "Show all logged state changes" 'state))))) + (choice (const :tag "Show closed log items" closed) + (const :tag "Show clocked log items" clock) + (const :tag "Show all logged state changes" state))))) (defcustom org-agenda-start-with-clockreport-mode nil "The initial value of clockreport-mode in a newly created agenda window." @@ -1805,7 +1805,7 @@ :version "24.3" :type '(choice (const :tag "Show inherited tags when available" t) - (const :tag "Always show inherited tags" 'always) + (const :tag "Always show inherited tags" always) (repeat :tag "Show inherited tags only in selected agenda types" (symbol :tag "Agenda type")))) @@ -7003,7 +7003,7 @@ \"timestamp_ia\", compare within each of these type. When TYPE is the empty string, compare all timestamps without respect of their type." - (let* ((def (if org-sort-agenda-notime-is-late 9901 -1)) + (let* ((def (if org-sort-agenda-notime-is-late most-positive-fixnum -1)) (ta (or (and (string-match type (or (get-text-property 1 'type a) "")) (get-text-property 1 'ts-date a)) def)) (tb (or (and (string-match type (or (get-text-property 1 'type b) "")) === modified file 'lisp/org/org-attach.el' --- lisp/org/org-attach.el 2014-01-01 07:43:34 +0000 +++ lisp/org/org-attach.el 2014-01-07 13:22:53 +0000 @@ -41,8 +41,7 @@ (require 'cl)) (require 'org-id) (require 'org) - -(declare-function vc-git-root "vc-git" (file)) +(require 'vc-git) (defgroup org-attach nil "Options concerning entry attachments in Org-mode." @@ -266,7 +265,7 @@ (let* ((dir (expand-file-name org-attach-directory)) (git-dir (vc-git-root dir)) (changes 0)) - (when git-dir + (when (and git-dir (executable-find "git")) (with-temp-buffer (cd dir) (let ((have-annex === modified file 'lisp/org/org-ctags.el' --- lisp/org/org-ctags.el 2014-01-05 02:56:08 +0000 +++ lisp/org/org-ctags.el 2014-01-07 13:22:53 +0000 @@ -63,19 +63,19 @@ ;; with the same name as the link; then, if unsuccessful, ask the user if ;; he/she wants to rebuild the 'TAGS' database and try again; then ask if ;; the user wishes to append 'tag' as a new toplevel heading at the end of -;; the buffer; and finally, defer to org's default behavior which is to +;; the buffer; and finally, defer to org's default behaviour which is to ;; search the entire text of the current buffer for 'tag'. ;; -;; This behavior can be modified by changing the value of +;; This behaviour can be modified by changing the value of ;; ORG-CTAGS-OPEN-LINK-FUNCTIONS. For example I have the following in my -;; .emacs, which describes the same behavior as the above paragraph with +;; .emacs, which describes the same behaviour as the above paragraph with ;; one difference: ;; ;; (setq org-ctags-open-link-functions ;; '(org-ctags-find-tag ;; org-ctags-ask-rebuild-tags-file-then-find-tag ;; org-ctags-ask-append-topic -;; org-ctags-fail-silently)) ; <-- prevents org default behavior +;; org-ctags-fail-silently)) ; <-- prevents org default behaviour ;; ;; ;; Usage === modified file 'lisp/org/org-element.el' --- lisp/org/org-element.el 2014-01-01 07:43:34 +0000 +++ lisp/org/org-element.el 2014-01-07 13:22:53 +0000 @@ -239,19 +239,6 @@ By default, all keywords setting attributes (i.e. \"ATTR_LATEX\") are affiliated keywords and need not to be in this list.") -(defconst org-element--affiliated-re - (format "[ \t]*#\\+%s:" - ;; Regular affiliated keywords. - (format "\\(%s\\|ATTR_[-_A-Za-z0-9]+\\)\\(?:\\[\\(.*\\)\\]\\)?" - (regexp-opt org-element-affiliated-keywords))) - "Regexp matching any affiliated keyword. - -Keyword name is put in match group 1. Moreover, if keyword -belongs to `org-element-dual-keywords', put the dual value in -match group 2. - -Don't modify it, set `org-element-affiliated-keywords' instead.") - (defconst org-element-keyword-translation-alist '(("DATA" . "NAME") ("LABEL" . "NAME") ("RESNAME" . "NAME") ("SOURCE" . "NAME") ("SRCNAME" . "NAME") ("TBLNAME" . "NAME") @@ -298,6 +285,31 @@ Any keyword in this list will have its value parsed and stored as a secondary string.") +(defconst org-element--affiliated-re + (format "[ \t]*#\\+\\(?:%s\\):\\(?: \\|$\\)" + (concat + ;; Dual affiliated keywords. + (format "\\(?1:%s\\)\\(?:\\[\\(.*\\)\\]\\)?" + (regexp-opt org-element-dual-keywords)) + "\\|" + ;; Regular affiliated keywords. + (format "\\(?1:%s\\)" + (regexp-opt + (org-remove-if + #'(lambda (keyword) + (member keyword org-element-dual-keywords)) + org-element-affiliated-keywords))) + "\\|" + ;; Export attributes. + "\\(?1:ATTR_[-_A-Za-z0-9]+\\)")) + "Regexp matching any affiliated keyword. + +Keyword name is put in match group 1. Moreover, if keyword +belongs to `org-element-dual-keywords', put the dual value in +match group 2. + +Don't modify it, set `org-element-affiliated-keywords' instead.") + (defconst org-element-object-restrictions (let* ((standard-set (remq 'plain-link (remq 'table-cell org-element-all-successors))) @@ -2906,12 +2918,8 @@ Return value is a cons cell whose CAR is `inline-babel-call' and CDR is beginning position." (save-excursion - ;; Use a simplified version of - ;; `org-babel-inline-lob-one-liner-regexp'. - (when (re-search-forward - "call_\\([^()\n]+?\\)\\(?:\\[.*?\\]\\)?([^\n]*?)\\(\\[.*?\\]\\)?" - nil t) - (cons 'inline-babel-call (match-beginning 0))))) + (when (re-search-forward org-babel-inline-lob-one-liner-regexp nil t) + (cons 'inline-babel-call (match-end 1))))) ;;;; Inline Src Block === modified file 'lisp/org/org-habit.el' --- lisp/org/org-habit.el 2014-01-01 07:43:34 +0000 +++ lisp/org/org-habit.el 2014-01-07 13:22:53 +0000 @@ -200,7 +200,9 @@ (count 0)) (unless reversed (goto-char end)) (while (and (< count maxdays) - (funcall search "- State \"DONE\".*\\[\\([^]]+\\)\\]" limit t)) + (funcall search (format "- State \"%s\".*\\[\\([^]]+\\)\\]" + (regexp-opt org-done-keywords)) + limit t)) (push (time-to-days (org-time-string-to-time (match-string-no-properties 1))) closed-dates) === modified file 'lisp/org/org-inlinetask.el' --- lisp/org/org-inlinetask.el 2014-01-01 07:43:34 +0000 +++ lisp/org/org-inlinetask.el 2014-01-07 13:22:53 +0000 @@ -103,7 +103,8 @@ "Non-nil means display the first star of an inline task as additional marker. When nil, the first star is not shown." :tag "Org Inline Tasks" - :group 'org-structure) + :group 'org-structure + :type 'boolean) (defvar org-odd-levels-only) (defvar org-keyword-time-regexp) === modified file 'lisp/org/org-rmail.el' --- lisp/org/org-rmail.el 2014-01-01 07:43:34 +0000 +++ lisp/org/org-rmail.el 2014-01-07 13:22:53 +0000 @@ -95,7 +95,10 @@ (defun org-rmail-follow-link (folder article) "Follow an Rmail link to FOLDER and ARTICLE." (require 'rmail) - (setq article (org-add-angle-brackets article)) + (cond ((null article) (setq article "")) + ((stringp article) + (setq article (org-add-angle-brackets article))) + (t (user-error "Wrong RMAIL link format"))) (let (message-number) (save-excursion (save-window-excursion @@ -105,8 +108,7 @@ (rmail-widen) (goto-char (point-max)) (if (re-search-backward - (concat "^Message-ID:\\s-+" (regexp-quote - (or article ""))) + (concat "^Message-ID:\\s-+" (regexp-quote article)) nil t) (rmail-what-message)))))) (if message-number === modified file 'lisp/org/org-table.el' --- lisp/org/org-table.el 2014-01-01 07:43:34 +0000 +++ lisp/org/org-table.el 2014-01-07 13:22:53 +0000 @@ -2274,33 +2274,35 @@ For all numbers larger than LIMIT, shift them by DELTA." (save-excursion (goto-char (org-table-end)) - (when (let ((case-fold-search t)) (looking-at "[ \t]*#\\+tblfm:")) - (let ((msg "The formulas in #+TBLFM have been updated") - (re (concat key "\\([0-9]+\\)")) - (re2 - (when remove - (if (or (equal key "$") (equal key "$LR")) - (format "\\(@[0-9]+\\)?%s%d=.*?\\(::\\|$\\)" - (regexp-quote key) remove) - (format "@%d\\$[0-9]+=.*?\\(::\\|$\\)" remove)))) - s n a) - (when remove - (while (re-search-forward re2 (point-at-eol) t) + (let ((case-fold-search t) + (s-end (save-excursion (re-search-forward "^\\S-*$\\|\\'" nil t)))) + (while (re-search-forward "[ \t]*#\\+tblfm:" s-end t) + (let ((msg "The formulas in #+TBLFM have been updated") + (re (concat key "\\([0-9]+\\)")) + (re2 + (when remove + (if (or (equal key "$") (equal key "$LR")) + (format "\\(@[0-9]+\\)?%s%d=.*?\\(::\\|$\\)" + (regexp-quote key) remove) + (format "@%d\\$[0-9]+=.*?\\(::\\|$\\)" remove)))) + s n a) + (when remove + (while (re-search-forward re2 (point-at-eol) t) + (unless (save-match-data (org-in-regexp "remote([^)]+?)")) + (if (equal (char-before (match-beginning 0)) ?.) + (user-error "Change makes TBLFM term %s invalid, use undo to recover" + (match-string 0)) + (replace-match ""))))) + (while (re-search-forward re (point-at-eol) t) (unless (save-match-data (org-in-regexp "remote([^)]+?)")) - (if (equal (char-before (match-beginning 0)) ?.) - (user-error "Change makes TBLFM term %s invalid, use undo to recover" - (match-string 0)) - (replace-match ""))))) - (while (re-search-forward re (point-at-eol) t) - (unless (save-match-data (org-in-regexp "remote([^)]+?)")) - (setq s (match-string 1) n (string-to-number s)) - (cond - ((setq a (assoc s replace)) - (replace-match (concat key (cdr a)) t t) - (message msg)) - ((and limit (> n limit)) - (replace-match (concat key (int-to-string (+ n delta))) t t) - (message msg))))))))) + (setq s (match-string 1) n (string-to-number s)) + (cond + ((setq a (assoc s replace)) + (replace-match (concat key (cdr a)) t t) + (message msg)) + ((and limit (> n limit)) + (replace-match (concat key (int-to-string (+ n delta))) t t) + (message msg)))))))))) (defun org-table-get-specials () "Get the column names and local parameters for this table." === modified file 'lisp/org/org-version.el' --- lisp/org/org-version.el 2013-11-12 13:06:26 +0000 +++ lisp/org/org-version.el 2014-01-07 13:22:53 +0000 @@ -5,13 +5,13 @@ (defun org-release () "The release version of org-mode. Inserted by installing org-mode or when a release is made." - (let ((org-release "8.2.3a")) + (let ((org-release "8.2.5c")) org-release)) ;;;###autoload (defun org-git-version () "The Git version of org-mode. Inserted by installing org-mode or when a release is made." - (let ((org-git-version "release_8.2.3a")) + (let ((org-git-version "release_8.2.5c")) org-git-version)) ;;;###autoload (defvar org-odt-data-dir "/usr/share/emacs/etc/org" === modified file 'lisp/org/org.el' --- lisp/org/org.el 2014-01-01 07:43:34 +0000 +++ lisp/org/org.el 2014-01-07 13:22:53 +0000 @@ -602,7 +602,7 @@ already archived entries." :type '(choice (const :tag "Don't loop" nil) (const :tag "All headlines in active region" t) - (const :tag "In active region, headlines at the same level than the first one" 'start-level) + (const :tag "In active region, headlines at the same level than the first one" start-level) (string :tag "Tags/Property/Todo matcher")) :version "24.1" :group 'org-todo @@ -1741,7 +1741,7 @@ :version "24.4" :package-version '(Org . "8.3") :type '(choice - (const :tag "A double click follows the link" 'double) + (const :tag "A double click follows the link" double) (const :tag "Unconditionally follow the link with mouse-1" t) (integer :tag "mouse-1 click does not follow the link if longer than N ms" 450))) @@ -2246,7 +2246,7 @@ "Non-nil means allow to create new nodes as refile targets. New nodes are then created by adding \"/new node name\" to the completion of an existing node. When the value of this variable is `confirm', -new node creation must be confirmed by the user (recommended) +new node creation must be confirmed by the user (recommended). When nil, the completion must match an existing entry. Note that, if the new heading is not seen by the criteria @@ -2428,7 +2428,7 @@ :group 'org-todo :type '(choice (const :tag "Yes, only for TODO entries" t) - (const :tag "Yes, including all entries" 'all-headlines) + (const :tag "Yes, including all entries" all-headlines) (repeat :tag "Yes, for TODOs in this list" (string :tag "TODO keyword")) (other :tag "No TODO statistics" nil))) @@ -5693,7 +5693,7 @@ '(invisible org-link)) (add-text-properties (match-beginning 3) (match-end 3) '(invisible org-link))))) - (backward-char 1)) + (goto-char (1+ (match-beginning 0)))) rtn)) (defun org-emphasize (&optional char) @@ -6827,10 +6827,12 @@ "Set the visibility required by startup options and properties." (cond ((eq org-startup-folded t) - (org-cycle '(4))) + (org-overview)) ((eq org-startup-folded 'content) - (let ((this-command 'org-cycle) (last-command 'org-cycle)) - (org-cycle '(4)) (org-cycle '(4))))) + (org-content)) + ((or (eq org-startup-folded 'showeverything) + (eq org-startup-folded nil)) + (show-all))) (unless (eq org-startup-folded 'showeverything) (if org-hide-block-startup (org-hide-block-all)) (org-set-visibility-according-to-property 'no-cleanup) @@ -6910,7 +6912,6 @@ (show-branches)) (if (bobp) (throw 'exit nil)))))) - (defun org-optimize-window-after-visibility-change (state) "Adjust the window after a change in outline visibility. This function is the default value of the hook `org-cycle-hook'." @@ -11704,9 +11705,9 @@ (setq answ (funcall cfunc prompt tbl nil (not new-nodes) nil 'org-refile-history (or cdef (car org-refile-history)))) (setq pa (or (assoc answ tbl) (assoc (concat answ "/") tbl))) - (org-refile-check-position pa) (if pa (progn + (org-refile-check-position pa) (when (or (not org-refile-history) (not (eq old-hist org-refile-history)) (not (equal (car pa) (car org-refile-history)))) @@ -14556,7 +14557,7 @@ (and (not (featurep 'xemacs)) c0 indent-tabs-mode (tabify p0 (point))) tags) (t (error "Tags alignment failed"))) - (org-move-to-column col) + (org-move-to-column col nil nil t) (unless just-align (run-hooks 'org-after-tags-change-hook)))))) @@ -15289,6 +15290,8 @@ If the property is present but empty, the return value is the empty string. If the property is not present at all, nil is returned. +Return the value as a string. + If LITERAL-NIL is set, return the string value \"nil\" as a string, do not interpret it as the list atom nil. This is used for inheritance when a \"nil\" value can supersede a non-nil value higher up the hierarchy." @@ -15454,14 +15457,19 @@ and the new value.") (defun org-entry-put (pom property value) - "Set PROPERTY to VALUE for entry at point-or-marker POM." + "Set PROPERTY to VALUE for entry at point-or-marker POM. +If the value is `nil', it is converted to the empty string. +If it is not a string, an error is raised." + (cond ((null value) (setq value "")) + ((not (stringp value)) + (error "Properties values should be strings."))) (org-with-point-at pom (org-back-to-heading t) (let ((beg (point)) (end (save-excursion (outline-next-heading) (point))) range) (cond ((equal property "TODO") - (when (and (stringp value) (string-match "\\S-" value) + (when (and (string-match "\\S-" value) (not (member value org-todo-keywords-1))) (user-error "\"%s\" is not a valid TODO state" value)) (if (or (not value) @@ -15470,7 +15478,7 @@ (org-todo value) (org-set-tags nil 'align)) ((equal property "PRIORITY") - (org-priority (if (and value (stringp value) (string-match "\\S-" value)) + (org-priority (if (and value (string-match "\\S-" value)) (string-to-char value) ?\ )) (org-set-tags nil 'align)) ((equal property "CLOCKSUM") @@ -19489,8 +19497,14 @@ (org-fix-tags-on-the-fly)))) ;; Make `delete-selection-mode' work with org-mode and orgtbl-mode -(put 'org-self-insert-command 'delete-selection t) -(put 'orgtbl-self-insert-command 'delete-selection t) +(put 'org-self-insert-command 'delete-selection + (lambda () + (not (run-hook-with-args-until-success + 'self-insert-uses-region-functions)))) +(put 'orgtbl-self-insert-command 'delete-selection + (lambda () + (not (run-hook-with-args-until-success + 'self-insert-uses-region-functions)))) (put 'org-delete-char 'delete-selection 'supersede) (put 'org-delete-backward-char 'delete-selection 'supersede) (put 'org-yank 'delete-selection 'yank) @@ -20025,21 +20039,19 @@ "Change timestamps synchronously up in CLOCK log lines. Optional argument N tells to change by that many units." (interactive "P") - (cond ((and (not org-support-shift-select) - (org-at-clock-log-p) - (org-at-timestamp-p t)) - (org-clock-timestamps-up n)) - (t (org-shiftselect-error)))) + (if (and (org-at-clock-log-p) (org-at-timestamp-p t)) + (let (org-support-shift-select) + (org-clock-timestamps-up n)) + (user-error "Not at a clock log"))) (defun org-shiftcontroldown (&optional n) "Change timestamps synchronously down in CLOCK log lines. Optional argument N tells to change by that many units." (interactive "P") - (cond ((and (not org-support-shift-select) - (org-at-clock-log-p) - (org-at-timestamp-p t)) - (org-clock-timestamps-down n)) - (t (org-shiftselect-error)))) + (if (and (org-at-clock-log-p) (org-at-timestamp-p t)) + (let (org-support-shift-select) + (org-clock-timestamps-down n)) + (user-error "Not at a clock log"))) (defun org-ctrl-c-ret () "Call `org-table-hline-and-move' or `org-insert-heading' dep. on context." === modified file 'lisp/org/ox-html.el' --- lisp/org/ox-html.el 2014-01-05 02:56:08 +0000 +++ lisp/org/ox-html.el 2014-01-07 13:22:53 +0000 @@ -279,6 +279,8 @@ pre.src-sql:before { content: 'SQL'; } table { border-collapse:collapse; } + caption.t-above { caption-side: top; } + caption.t-bottom { caption-side: bottom; } td, th { vertical-align:top; } th.right { text-align: center; } th.left { text-align: center; } @@ -580,7 +582,7 @@ The function should return the string to be exported. For example, the variable could be set to the following function -in order to mimic default behavior: +in order to mimic default behaviour: The default value simply returns the value of CONTENTS." :group 'org-export-html @@ -3255,8 +3257,8 @@ (if (equal attributes "") "" (concat " " attributes)) (if (not caption) "" (format (if org-html-table-caption-above - "%s" - "%s") + "%s" + "%s") (concat "" (format (org-html--translate "Table %d:" info) number) @@ -3438,21 +3440,6 @@ org-html-extension "html")) plist pub-dir)) - -;;; FIXME - -;;;; org-format-table-html -;;;; org-format-org-table-html -;;;; org-format-table-table-html -;;;; org-table-number-fraction -;;;; org-table-number-regexp -;;;; org-html-inline-image-extensions -;;;; org-export-preferred-target-alist -;;;; class for anchors -;;;; org-export-mark-todo-in-toc -;;;; org-html-format-org-link -;;;; (caption (and caption (org-xml-encode-org-text caption))) -;;;; alt = (file-name-nondirectory path) (provide 'ox-html) === modified file 'lisp/org/ox-icalendar.el' --- lisp/org/ox-icalendar.el 2014-01-01 07:43:34 +0000 +++ lisp/org/ox-icalendar.el 2014-01-07 13:22:53 +0000 @@ -964,9 +964,7 @@ ;; BBDB anniversaries. (when (and org-icalendar-include-bbdb-anniversaries (require 'org-bbdb nil t)) - (with-temp-buffer - (org-bbdb-anniv-export-ical) - (buffer-string))))))) + (with-output-to-string (org-bbdb-anniv-export-ical))))))) (run-hook-with-args 'org-icalendar-after-save-hook org-icalendar-combined-agenda-file)) (org-release-buffers org-agenda-new-buffers))) === modified file 'lisp/org/ox-odt.el' --- lisp/org/ox-odt.el 2014-01-01 07:43:34 +0000 +++ lisp/org/ox-odt.el 2014-01-07 13:22:53 +0000 @@ -998,7 +998,9 @@ (if width (format " svg:width=\"%0.2fcm\"" width) "") (if height (format " svg:height=\"%0.2fcm\"" height) "") extra - (format " text:anchor-type=\"%s\"" (or anchor-type "paragraph"))))) + (format " text:anchor-type=\"%s\"" (or anchor-type "paragraph")) + (format " draw:name=\"%s\"" + (car (org-odt-add-automatic-style "Frame")))))) (format "\n\n%s\n" style frame-attrs @@ -2120,45 +2122,9 @@ ;; Get label and caption. (label (org-element-property :name caption-from)) (caption (org-export-get-caption caption-from)) - (short-caption (org-export-get-caption caption-from t)) - ;; Transcode captions. (caption (and caption (org-export-data caption info))) - ;; Currently short caption are sneaked in as object names. - ;; - ;; The advantages are: - ;; - ;; - Table Of Contents: Currently, there is no support for - ;; building TOC for figures, listings and tables. See - ;; `org-odt-keyword'. User instead has to rely on - ;; external application for building such indices. Within - ;; LibreOffice, building an "Illustration Index" or "Index - ;; of Tables" will create a table with long captions (only) - ;; and building a table with "Object names" will create a - ;; table with short captions. - ;; - ;; - Easy navigation: In LibreOffice, object names are - ;; offered via the navigation bar. This way one can - ;; quickly locate and jump to object of his choice in the - ;; exported document. - ;; - ;; The main disadvantage is that there cannot be any markups - ;; within object names i.e., one cannot embolden, italicize - ;; or underline text within short caption. So suppress - ;; generation of ... and other - ;; markups by overriding the default translators. We - ;; probably shouldn't be suppressing translators for all - ;; elements in `org-element-all-objects', but for now this - ;; will do. - (short-caption - (let ((short-caption (or short-caption caption)) - (backend (org-export-create-backend - :parent (org-export-backend-name - (plist-get info :back-end)) - :transcoders - (mapcar (lambda (type) (cons type (lambda (o c i) c))) - org-element-all-objects)))) - (when short-caption - (org-export-data-with-backend short-caption backend info))))) + ;; FIXME: We don't use short-caption for now + (short-caption nil)) (when (or label caption) (let* ((default-category (case (org-element-type element) === modified file 'lisp/org/ox-org.el' --- lisp/org/ox-org.el 2014-01-01 07:43:34 +0000 +++ lisp/org/ox-org.el 2014-01-07 13:22:53 +0000 @@ -22,15 +22,8 @@ ;;; Commentary: -;; This library implements an Org back-end for Org exporter. -;; -;; It introduces two interactive functions, `org-org-export-as-org' -;; and `org-org-export-to-org', which export, respectively, to -;; a temporary buffer and to a file. -;; -;; A publishing function is also provided: `org-org-publish-to-org'. - ;;; Code: + (require 'ox) (declare-function htmlize-buffer "htmlize" (&optional buffer)) @@ -121,7 +114,10 @@ (defun org-org-identity (blob contents info) "Transcode BLOB element or object back into Org syntax. CONTENTS is its contents, as a string or nil. INFO is ignored." - (org-export-expand blob contents t)) + (let ((case-fold-search t)) + (replace-regexp-in-string + "^[ \t]*#\\+ATTR_[-_A-Za-z0-9]+:\\(?: .*\\)?\n" "" + (org-export-expand blob contents t)))) (defun org-org-headline (headline contents info) "Transcode HEADLINE element back into Org syntax. === modified file 'lisp/org/ox-publish.el' --- lisp/org/ox-publish.el 2014-01-05 02:56:08 +0000 +++ lisp/org/ox-publish.el 2014-01-07 13:22:53 +0000 @@ -228,7 +228,7 @@ `:sitemap-sort-files' The site map is normally sorted alphabetically. You can - change this behavior setting this to `anti-chronologically', + change this behaviour setting this to `anti-chronologically', `chronologically', or nil. `:sitemap-ignore-case' @@ -1072,7 +1072,7 @@ Return value is a list of numbers, or nil. This function allows to resolve external fuzzy links like: - [[file.org::*fuzzy][description]" + [[file.org::*fuzzy][description]]" (when org-publish-cache (cdr (assoc (org-split-string (if (eq (aref fuzzy 0) ?*) (substring fuzzy 1) fuzzy)) === modified file 'lisp/org/ox-texinfo.el' --- lisp/org/ox-texinfo.el 2014-01-05 02:56:08 +0000 +++ lisp/org/ox-texinfo.el 2014-01-07 13:22:53 +0000 @@ -288,7 +288,9 @@ (const :tag "No formatting"))) (defcustom org-texinfo-def-table-markup "@samp" - "Default setting for @table environments.") + "Default setting for @table environments." + :group 'org-export-texinfo + :type 'string) ;;; Text markup === modified file 'lisp/org/ox.el' --- lisp/org/ox.el 2014-01-05 02:56:08 +0000 +++ lisp/org/ox.el 2014-01-07 13:22:53 +0000 @@ -362,7 +362,7 @@ :group 'org-export-general :type '(choice (const :tag "No creator sentence" nil) - (const :tag "Sentence as a comment" 'comment) + (const :tag "Sentence as a comment" comment) (const :tag "Insert the sentence" t))) (defcustom org-export-with-date t @@ -493,7 +493,7 @@ "The last level which is still exported as a headline. Inferior levels will usually produce itemize or enumerate lists -when exported, but back-end behavior may differ. +when exported, but back-end behaviour may differ. This option can also be set with the OPTIONS keyword, e.g. \"H:2\"." @@ -1726,13 +1726,13 @@ (t ;; Options in `org-export-options-alist'. (dolist (property (funcall find-properties key)) - (let ((behavior (nth 4 (assq property options)))) + (let ((behaviour (nth 4 (assq property options)))) (setq plist (plist-put plist property ;; Handle value depending on specified ;; BEHAVIOR. - (case behavior + (case behaviour (space (if (not (plist-get plist property)) (org-trim val) @@ -4955,7 +4955,7 @@ (defconst org-export-smart-quotes-regexps (list ;; Possible opening quote at beginning of string. - "\\`\\([\"']\\)\\(\\w\\|\\s.\\|\\s_\\)" + "\\`\\([\"']\\)\\(\\w\\|\\s.\\|\\s_\\|\\s(\\)" ;; Possible closing quote at beginning of string. "\\`\\([\"']\\)\\(\\s-\\|\\s)\\|\\s.\\)" ;; Possible apostrophe at beginning of string. @@ -5612,7 +5612,7 @@ a string. A non-nil optional argument ASYNC means the process should happen -asynchronously. The resulting buffer file then be accessible +asynchronously. The resulting buffer will then be accessible through the `org-export-stack' interface. Optional arguments SUBTREEP, VISIBLE-ONLY, BODY-ONLY and ------------------------------------------------------------ revno: 115906 committer: Bastien Guerry branch nick: trunk timestamp: Tue 2014-01-07 11:58:03 +0100 message: emacs-lisp/package.el (package-delete): Delete package completely * emacs-lisp/package.el (package-delete): Also delete the package name from `package-alist', not its description only. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-07 08:38:58 +0000 +++ lisp/ChangeLog 2014-01-07 10:58:03 +0000 @@ -1,3 +1,8 @@ +2014-01-07 Bastien Guerry + + * emacs-lisp/package.el (package-delete): Also delete the package + name from `package-alist', not its description only. + 2014-01-07 Glenn Morris * help.el (view-external-packages): === modified file 'lisp/emacs-lisp/package.el' --- lisp/emacs-lisp/package.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/package.el 2014-01-07 10:58:03 +0000 @@ -1231,7 +1231,7 @@ (delete-file signed-file))) ;; Update package-alist. (let* ((name (package-desc-name pkg-desc))) - (delete pkg-desc (assq name package-alist))) + (delete (delete pkg-desc (assq name package-alist)) package-alist)) (message "Package `%s' deleted." (package-desc-full-name pkg-desc))))) (defun package-archive-base (desc) ------------------------------------------------------------ revno: 115905 committer: Glenn Morris branch nick: trunk timestamp: Tue 2014-01-07 00:38:58 -0800 message: Reference efaq.info in preference to etc/MORE.STUFF * lisp/help.el (view-external-packages): * lisp/menu-bar.el (menu-bar-help-extra-packages): Visit efaq.info rather than etc/MORE.STUFF. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-07 07:55:50 +0000 +++ lisp/ChangeLog 2014-01-07 08:38:58 +0000 @@ -1,3 +1,9 @@ +2014-01-07 Glenn Morris + + * help.el (view-external-packages): + * menu-bar.el (menu-bar-help-extra-packages): + Visit efaq.info rather than etc/MORE.STUFF. + 2014-01-07 Juri Linkov * isearch.el (isearch-mode-map): Bind [return] and [backspace] to @@ -6,11 +12,6 @@ * progmodes/ps-mode.el (ps-mode-map): Remove [return] key binding that shadows RET. (Bug#16342) -2014-01-07 Daniel Colascione - - * vc/log-view.el (log-view-beginning-of-defun): Add comment - explaining why we call `log-view-end-of-defun'. - 2014-01-07 Chong Yidong * isearch.el (isearch-yank-char, isearch-yank-word) === modified file 'lisp/help.el' --- lisp/help.el 2014-01-01 07:43:34 +0000 +++ lisp/help.el 2014-01-07 08:38:58 +0000 @@ -437,10 +437,11 @@ (interactive) (view-help-file "DEBUG")) +;; This used to visit MORE.STUFF; maybe it should just be removed. (defun view-external-packages () - "Display external packages and information about Emacs." + "Display info on where to get more Emacs packages." (interactive) - (view-help-file "MORE.STUFF")) + (info "(efaq)Packages that do not come with Emacs")) (defun view-lossage () "Display last 300 input keystrokes. === modified file 'lisp/menu-bar.el' --- lisp/menu-bar.el 2014-01-01 07:43:34 +0000 +++ lisp/menu-bar.el 2014-01-07 08:38:58 +0000 @@ -1635,13 +1635,11 @@ :help "Read the Introduction to Emacs Lisp Programming")) menu)) +;; This used to visit MORE.STUFF; maybe it should just be removed. (defun menu-bar-help-extra-packages () "Display help about some additional packages available for Emacs." (interactive) - (let (enable-local-variables) - (view-file (expand-file-name "MORE.STUFF" - data-directory)) - (goto-address-mode 1))) + (info "(efaq)Packages that do not come with Emacs")) (defun help-with-tutorial-spec-language () "Use the Emacs tutorial, specifying which language you want." ------------------------------------------------------------ revno: 115904 committer: Glenn Morris branch nick: trunk timestamp: Tue 2014-01-07 00:35:29 -0800 message: Merge some info from etc/MORE.STUFF into efaq.texi * doc/misc/efaq.texi (Basic editing, Packages that do not come with Emacs): Merge in some info from etc/MORE.STUFF. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-06 05:25:46 +0000 +++ doc/misc/ChangeLog 2014-01-07 08:35:29 +0000 @@ -1,3 +1,8 @@ +2014-01-07 Glenn Morris + + * efaq.texi (Basic editing, Packages that do not come with Emacs): + Merge in some info from etc/MORE.STUFF. + 2014-01-05 Paul Eggert Specify .texi encoding (Bug#16292). === modified file 'doc/misc/efaq.texi' --- doc/misc/efaq.texi 2014-01-06 05:25:46 +0000 +++ doc/misc/efaq.texi 2014-01-07 08:35:29 +0000 @@ -562,6 +562,9 @@ Emacs help works best if it is invoked by a single key whose value should be stored in the variable @code{help-char}. +Some Emacs slides and tutorials can be found at +@uref{http://web.psung.name/emacs/}. + @node Learning how to do something @section How do I find out how to do something in Emacs? @cindex Help for Emacs @@ -3305,31 +3308,41 @@ @cindex Emacs Lisp List @cindex Emacs Lisp Archive -Your first port of call should be the @kbd{M-x list-packages} command. -This connects to the @uref{http:///elpa.gnu.org, GNU ELPA} (``Emacs -Lisp Package Archive'') server and fetches the list of additional -packages that it offers. These are GNU packages that are available -for use with Emacs, but are distributed separately. Select a package -to get more details about the features that it offers, and then if you -wish, Emacs can download and automatically install it for you. - -@uref{http://www.damtp.cam.ac.uk/user/sje30/emacs/ell.html, The Emacs Lisp -List (ELL)}, maintained by Stephen Eglen, -aims to provide one compact list with links to all of the current Emacs -Lisp files on the Internet. The ELL can be browsed over the web, or -from Emacs with @uref{http://www.damtp.cam.ac.uk/user/sje30/emacs/ell.el, -the @file{ell} package}. - -Many authors post their packages to the @uref{news:gnu.emacs.sources, -Emacs sources newsgroup}. You can search the archives of this -group with @uref{http://groups.google.com/group/gnu.emacs.sources, Google}, -or @uref{http://dir.gmane.org/gmane.emacs.sources, Gmane}, for example. - -Several packages are stored in -@uref{http://emacswiki.org/elisp/, the Lisp area of the Emacs Wiki}. - -Read the file @file{etc/MORE.STUFF} for more information about -external packages. +The easiest way to add more features to your Emacs is to use the +command @kbd{M-x list-packages}. This contacts the +@uref{http:///elpa.gnu.org, GNU ELPA} (``Emacs Lisp Package Archive'') +server and fetches the list of additional packages that it offers. +These are GNU packages that are available for use with Emacs, but are +distributed separately from Emacs itself, for reasons of space, etc. +You can browse the resulting @file{*Packages*} buffer to see what is +available, and then Emacs can automatically download and install the +packages that you select. @xref{Packages,,, emacs, The GNU Emacs Manual}. + +There are other, non-GNU, Emacs Lisp package servers, including: +@uref{http://melpa.milkbox.net, MELPA}; and +@uref{http://marmalade-repo.org, Marmalade}. To use additional +package servers, customize the @code{package-archives} variable. +Be aware that installing a package can run arbitrary code, so only add +sources that you trust. + +The @uref{https://lists.gnu.org/mailman/listinfo/gnu-emacs-sources, +GNU Emacs sources mailing list}, which is gatewayed to the +@uref{news:gnu.emacs.sources, Emacs sources newsgroup} (although the +connection between the two can be unreliable) is an official place +where people can post or announce their extensions to Emacs. + +The @uref{http://emacswiki.org, Emacs Wiki} contains pointers to some +additional extensions. @uref{http://wikemacs.org, WikEmacs} is an +alternative wiki for Emacs. + +@uref{http://www.damtp.cam.ac.uk/user/sje30/emacs/ell.html, The Emacs +Lisp List (ELL)}, has pointers to many Emacs Lisp files, but at time +of writing it is no longer being updated. + +It is impossible for us to list here all the sites that offer Emacs +Lisp packages. If you are interested in a specific feature, then +after checking Emacs itself and GNU ELPA, a web search is often the +best way to find results. @node Spell-checkers @section Spell-checkers ------------------------------------------------------------ revno: 115903 fixes bug: http://debbugs.gnu.org/16342 committer: Juri Linkov branch nick: trunk timestamp: Tue 2014-01-07 09:55:50 +0200 message: * lisp/isearch.el (isearch-mode-map): Bind [return] and [backspace] to isearch-exit and isearch-delete-char resp. (Bug#16342, bug#16035) * lisp/progmodes/ps-mode.el (ps-mode-map): Remove [return] key binding that shadows RET. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-07 06:00:16 +0000 +++ lisp/ChangeLog 2014-01-07 07:55:50 +0000 @@ -1,3 +1,11 @@ +2014-01-07 Juri Linkov + + * isearch.el (isearch-mode-map): Bind [return] and [backspace] to + isearch-exit and isearch-delete-char resp. (Bug#16342, bug#16035) + + * progmodes/ps-mode.el (ps-mode-map): Remove [return] key binding + that shadows RET. (Bug#16342) + 2014-01-07 Daniel Colascione * vc/log-view.el (log-view-beginning-of-defun): Add comment === modified file 'lisp/isearch.el' --- lisp/isearch.el 2014-01-07 04:36:52 +0000 +++ lisp/isearch.el 2014-01-07 07:55:50 +0000 @@ -446,6 +446,7 @@ (define-key map "\M-\C-s" 'isearch-repeat-forward) (define-key map "\M-\C-r" 'isearch-repeat-backward) (define-key map "\177" 'isearch-delete-char) + (define-key map [backspace] 'isearch-delete-char) (define-key map "\C-g" 'isearch-abort) ;; This assumes \e is the meta-prefix-char. @@ -456,6 +457,7 @@ (define-key map "\C-q" 'isearch-quote-char) (define-key map "\r" 'isearch-exit) + (define-key map [return] 'isearch-exit) (define-key map "\C-j" 'isearch-printing-char) (define-key map "\t" 'isearch-printing-char) (define-key map [?\S-\ ] 'isearch-printing-char) === modified file 'lisp/progmodes/ps-mode.el' --- lisp/progmodes/ps-mode.el 2014-01-01 07:43:34 +0000 +++ lisp/progmodes/ps-mode.el 2014-01-07 07:55:50 +0000 @@ -427,7 +427,6 @@ (define-key ps-mode-map "\177" 'ps-mode-backward-delete-char) (define-key ps-mode-map "\t" 'ps-mode-tabkey) (define-key ps-mode-map "\r" 'ps-mode-newline) - (define-key ps-mode-map [return] 'ps-mode-newline) (easy-menu-define ps-mode-main ps-mode-map "PostScript" ps-mode-menu-main)) (unless ps-run-mode-map ------------------------------------------------------------ revno: 115902 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-01-06 23:51:20 -0800 message: Fix typo in previous diff: === modified file 'doc/lispref/display.texi' --- doc/lispref/display.texi 2014-01-07 07:50:29 +0000 +++ doc/lispref/display.texi 2014-01-07 07:51:20 +0000 @@ -483,7 +483,7 @@ killing the @file{*Messages*} buffer, but the next display of a message recreates it. Any Lisp code that needs to access the @file{*Messages*} buffer directly and wants to ensure that it exists -exists should use the function @code{messages-buffer}. +should use the function @code{messages-buffer}. @defun messages-buffer This function returns the @file{*Messages*} buffer. If it does not ------------------------------------------------------------ revno: 115901 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-01-06 23:50:29 -0800 message: Minor tweak for earlier display.texi change diff: === modified file 'doc/lispref/display.texi' --- doc/lispref/display.texi 2014-01-07 02:56:17 +0000 +++ doc/lispref/display.texi 2014-01-07 07:50:29 +0000 @@ -481,8 +481,9 @@ @code{message}. By default, this buffer is read-only and uses the major mode @code{messages-buffer-mode}. Nothing prevents the user from killing the @file{*Messages*} buffer, but the next display of a message -recreates it. Any Lisp code that needs to ensure the @file{*Messages*} -buffer exists should use the function @code{messages-buffer}. +recreates it. Any Lisp code that needs to access the +@file{*Messages*} buffer directly and wants to ensure that it exists +exists should use the function @code{messages-buffer}. @defun messages-buffer This function returns the @file{*Messages*} buffer. If it does not ------------------------------------------------------------ revno: 115900 committer: Daniel Colascione branch nick: trunk timestamp: Mon 2014-01-06 22:00:16 -0800 message: Explain recent change to log-view.el diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-07 04:36:52 +0000 +++ lisp/ChangeLog 2014-01-07 06:00:16 +0000 @@ -1,3 +1,8 @@ +2014-01-07 Daniel Colascione + + * vc/log-view.el (log-view-beginning-of-defun): Add comment + explaining why we call `log-view-end-of-defun'. + 2014-01-07 Chong Yidong * isearch.el (isearch-yank-char, isearch-yank-word) === modified file 'lisp/vc/log-view.el' --- lisp/vc/log-view.el 2014-01-06 07:33:06 +0000 +++ lisp/vc/log-view.el 2014-01-07 06:00:16 +0000 @@ -431,6 +431,9 @@ `log-view-message-re'." (when (null arg) (setf arg 1)) (if (< arg 0) + ;; In log view, the end of one defun is the beginning of the + ;; next, so punting to log-view-end-of-defun is safe in this + ;; context. (log-view-end-of-defun (- arg)) (let ((found t)) (while (> arg 0) ------------------------------------------------------------ revno: 115899 committer: Chong Yidong branch nick: trunk timestamp: Tue 2014-01-07 12:36:52 +0800 message: More doc updates. * doc/emacs/search.texi (Special Isearch): Document C-x 8 RET in isearch. (Word Search): Document incremental word search changes. (Isearch Yank): Document M-s C-e with a prefix argument. * doc/lispref/files.texi (Changing Files): Document copy-file changes. * lisp/isearch.el (isearch-yank-char, isearch-yank-word) (isearch-yank-line): Doc fix. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2014-01-07 01:46:23 +0000 +++ doc/emacs/ChangeLog 2014-01-07 04:36:52 +0000 @@ -1,3 +1,9 @@ +2014-01-07 Chong Yidong + + * search.texi (Special Isearch): Document C-x 8 RET in isearch. + (Word Search): Document incremental word search changes. + (Isearch Yank): Document M-s C-e with a prefix argument. + 2014-01-07 Glenn Morris * cal-xtra.texi (Calendar Customizing): === modified file 'doc/emacs/search.texi' --- doc/emacs/search.texi 2014-01-01 07:43:34 +0000 +++ doc/emacs/search.texi 2014-01-07 04:36:52 +0000 @@ -229,12 +229,14 @@ @samp{foo bar}, @samp{foo bar}, and so on (but not @samp{foobar}). More precisely, Emacs matches each sequence of space characters in the search string to a regular expression specified by the variable -@code{search-whitespace-regexp}. For example, set it to -@samp{"[[:space:]\n]+"} to make spaces match sequences of newlines as -well as spaces. To toggle lax space matching, type @kbd{M-s SPC} +@code{search-whitespace-regexp}. For example, to make spaces match +sequences of newlines as well as spaces, set it to +@samp{"[[:space:]\n]+"}. + + To toggle lax space matching, type @kbd{M-s SPC} (@code{isearch-toggle-lax-whitespace}). To disable this feature entirely, change @code{search-whitespace-regexp} to @code{nil}; then -each space in the search string matches exactly one space +each space in the search string matches exactly one space. If the search string you entered contains only lower-case letters, the search is case-insensitive; as long as an upper-case letter exists @@ -244,15 +246,29 @@ To search for a newline character, type @kbd{C-j}. - To search for other control characters, such as @key{control-S}, -quote it by typing @kbd{C-q} first (@pxref{Inserting Text}). To -search for non-@acronym{ASCII} characters, you can either use -@kbd{C-q} and enter its octal code, or use an input method -(@pxref{Input Methods}). If an input method is enabled in the current -buffer when you start the search, you can use it in the search string -also. While typing the search string, you can toggle the input method -with the command @kbd{C-\} (@code{isearch-toggle-input-method}). You -can also turn on a non-default input method with @kbd{C-^} + To search for non-@acronym{ASCII} characters, use one of the +following methods: + +@itemize @bullet +@item +Type @kbd{C-q}, followed by a non-graphic character or a sequence of +octal digits. This adds a character to the search string, similar to +inserting into a buffer using @kbd{C-q} (@pxref{Inserting Text}). For +example, @kbd{C-q C-s} during incremental search adds the +@key{control-S} character to the search string. + +@item +Type @kbd{C-x 8 @key{RET}}, followed by a Unicode name or code-point. +This adds the specified character into the search string, similar to +the usual @code{insert-char} command (@pxref{Inserting Text}). + +@item +Use an input method (@pxref{Input Methods}). If an input method is +enabled in the current buffer when you start the search, you can use +it in the search string also. While typing the search string, you can +toggle the input method with @kbd{C-\} +(@code{isearch-toggle-input-method}). You can also turn on a +non-default input method with @kbd{C-^} (@code{isearch-toggle-specified-input-method}), which prompts for the name of the input method. When an input method is active during incremental search, the search prompt includes the input method @@ -268,6 +284,7 @@ where @var{im} is the mnemonic of the active input method. Any input method you enable during incremental search remains enabled in the current buffer afterwards. +@end itemize @kindex M-% @r{(Incremental search)} Typing @kbd{M-%} in incremental search invokes @code{query-replace} @@ -315,7 +332,8 @@ @findex isearch-yank-line Similarly, @kbd{M-s C-e} (@code{isearch-yank-line}) appends the rest of the current line to the search string. If point is already at the -end of a line, it appends the next line. +end of a line, it appends the next line. With a prefix argument +@var{n}, it appends the next @var{n} lines. If the search is currently case-insensitive, both @kbd{C-w} and @kbd{M-s C-e} convert the text they copy to lower case, so that the @@ -481,12 +499,13 @@ @code{word-search-backward} respectively. Incremental and nonincremental word searches differ slightly in the -way they find a match. In a nonincremental word search, the last word -in the search string must exactly match a whole word. In an -incremental word search, the matching is more lax: the last word in -the search string can match part of a word, so that the matching -proceeds incrementally as you type. This additional laxity does not -apply to the lazy highlight, which always matches whole words. +way they find a match. In a nonincremental word search, each word in +the search string must exactly match a whole word. In an incremental +word search, the matching is more lax: while you are typing the search +string, its first and last words need not match whole words. This is +so that the matching can proceed incrementally as you type. This +additional laxity does not apply to the lazy highlight, which always +matches whole words. @node Symbol Search @section Symbol Search === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-01-07 02:56:17 +0000 +++ doc/lispref/ChangeLog 2014-01-07 04:36:52 +0000 @@ -1,3 +1,7 @@ +2014-01-07 Chong Yidong + + * files.texi (Changing Files): Document copy-file changes. + 2014-01-07 Glenn Morris * display.texi (Logging Messages): Copyedits re messages-buffer. === modified file 'doc/lispref/files.texi' --- doc/lispref/files.texi 2014-01-05 23:36:13 +0000 +++ doc/lispref/files.texi 2014-01-07 04:36:52 +0000 @@ -1561,11 +1561,15 @@ the correct permissions to do so. If the optional argument @var{preserve-permissions} is non-@code{nil}, -this function copies the file modes (or ``permissions''), as well as -its Access Control List and SELinux context (if any). -@xref{Information about Files}. Otherwise, if the destination is -created its file permission bits are those of the source, masked by -the default file permissions. +this function copies the file modes (or ``permissions'') of +@var{oldname} to @var{newname}, as well as the Access Control List and +SELinux context (if any). @xref{Information about Files}. + +Otherwise, the file modes of @var{newname} are left unchanged if it is +an existing file, and set to those of @var{oldname}, masked by the +default file permissions (see @code{set-default-file-modes} below), if +@var{newname} is to be newly created. The Access Control List or +SELinux context are not copied over in either case. @end deffn @deffn Command make-symbolic-link filename newname &optional ok-if-exists @@ -1636,13 +1640,12 @@ @defun set-default-file-modes mode @cindex umask -This function sets the default file permissions for new files created -by Emacs and its subprocesses. Every file created with Emacs -initially has these permissions, or a subset of them -(@code{write-region} will not grant execute permissions even if the -default file permissions allow execution). On Unix and GNU/Linux, the -default permissions are given by the bitwise complement of the -``umask'' value. +This function sets the default permissions for new files created by +Emacs and its subprocesses. Every file created with Emacs initially +has these permissions, or a subset of them (@code{write-region} will +not grant execute permissions even if the default file permissions +allow execution). On Unix and GNU/Linux, the default permissions are +given by the bitwise complement of the ``umask'' value. The argument @var{mode} should be an integer which specifies the permissions, similar to @code{set-file-modes} above. Only the lowest === modified file 'etc/NEWS' --- etc/NEWS 2014-01-07 01:50:44 +0000 +++ etc/NEWS 2014-01-07 04:36:52 +0000 @@ -702,6 +702,7 @@ starts a symbol (identifier) incremental search forward with the symbol found near point added to the search string initially. ++++ *** `C-x 8 RET' in Isearch mode reads a character by its Unicode name and adds it to the search string. @@ -721,10 +722,12 @@ *** By default, prefix arguments do not now terminate Isearch mode. Set `isearch-allow-prefix' to nil to restore old behavior. ++++ *** More Isearch commands accept prefix arguments, namely `isearch-printing-char', `isearch-quote-char', `isearch-yank-word', `isearch-yank-line'. ++++ *** Word search now matches whitespace at the beginning/end of the search string if it contains leading/trailing whitespace. In an incremental word search or when using a non-nil LAX argument @@ -739,7 +742,7 @@ *** New command `ses-rename-cell' allows assigning names to SES cells. ** Shell - +--- *** `explicit-bash-args' now always defaults to use --noediting. During initialization, Emacs no longer expends a process to decide whether it is safe to use Bash's --noediting option. These days @@ -971,6 +974,7 @@ `file-extended-attributes'. The attributes can be applied to another file using `set-file-extended-attributes'. ++++ ** By default `copy-file' no longer copies file permission bits to an existing destination; and it sets the file permission bits of a newly created destination to those of the source, masked by the default file @@ -1146,6 +1150,7 @@ argument GROUP which causes it check for file group too. This can be used in place of the 9th element of `file-attributes'. +--- *** The function `set-visited-file-modtime' now accepts a 0 or -1 argument, with the same interpretation as the returned value of `visited-file-modtime'. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-06 23:34:05 +0000 +++ lisp/ChangeLog 2014-01-07 04:36:52 +0000 @@ -1,3 +1,8 @@ +2014-01-07 Chong Yidong + + * isearch.el (isearch-yank-char, isearch-yank-word) + (isearch-yank-line): Doc fix. + 2014-01-06 Stefan Monnier * abbrev.el (define-abbrev): Beware new meaning of fboundp. === modified file 'lisp/isearch.el' --- lisp/isearch.el 2014-01-01 07:43:34 +0000 +++ lisp/isearch.el 2014-01-07 04:36:52 +0000 @@ -1946,7 +1946,8 @@ (forward-char arg))) (defun isearch-yank-char (&optional arg) - "Pull next character from buffer into search string." + "Pull next character from buffer into search string. +If optional ARG is non-nil, pull in the next ARG characters." (interactive "p") (isearch-yank-internal (lambda () (forward-char arg) (point)))) @@ -1965,12 +1966,14 @@ (forward-char 1)) (point)))) (defun isearch-yank-word (&optional arg) - "Pull next word from buffer into search string." + "Pull next word from buffer into search string. +If optional ARG is non-nil, pull in the next ARG words." (interactive "p") (isearch-yank-internal (lambda () (forward-word arg) (point)))) (defun isearch-yank-line (&optional arg) - "Pull rest of line from buffer into search string." + "Pull rest of line from buffer into search string. +If optional ARG is non-nil, yank the next ARG lines." (interactive "p") (isearch-yank-internal (lambda () (let ((inhibit-field-text-motion t)) ------------------------------------------------------------ revno: 115898 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-01-06 21:56:17 -0500 message: * doc/lispref/display.texi (Logging Messages): Copyedits re messages-buffer. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-01-06 05:25:46 +0000 +++ doc/lispref/ChangeLog 2014-01-07 02:56:17 +0000 @@ -1,3 +1,7 @@ +2014-01-07 Glenn Morris + + * display.texi (Logging Messages): Copyedits re messages-buffer. + 2014-01-06 Paul Eggert Specify .texi encoding (Bug#16292). === modified file 'doc/lispref/display.texi' --- doc/lispref/display.texi 2014-01-01 23:13:59 +0000 +++ doc/lispref/display.texi 2014-01-07 02:56:17 +0000 @@ -478,13 +478,15 @@ Almost all the messages displayed in the echo area are also recorded in the @file{*Messages*} buffer so that the user can refer back to them. This includes all the messages that are output with -@code{message}. This buffer is read-only and has the major-mode -@code{messages-buffer-mode}. The best way to retrieve that buffer is -the function @code{messages-buffer}. +@code{message}. By default, this buffer is read-only and uses the major +mode @code{messages-buffer-mode}. Nothing prevents the user from +killing the @file{*Messages*} buffer, but the next display of a message +recreates it. Any Lisp code that needs to ensure the @file{*Messages*} +buffer exists should use the function @code{messages-buffer}. @defun messages-buffer -Return the @file{*Messages*} buffer. -If it does not exist, create and it switch it to @code{messages-buffer-mode}. +This function returns the @file{*Messages*} buffer. If it does not +exist, it creates it, and switches it to @code{messages-buffer-mode}. @end defun @defopt message-log-max ------------------------------------------------------------ revno: 115897 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-01-06 21:33:46 -0500 message: * etc/PROBLEMS: Remove yet more old stuff; more small edits diff: === modified file 'etc/PROBLEMS' --- etc/PROBLEMS 2014-01-07 02:11:14 +0000 +++ etc/PROBLEMS 2014-01-07 02:33:46 +0000 @@ -1,7 +1,6 @@ Known Problems with GNU Emacs -Copyright (C) 1987-1989, 1993-1999, 2001-2014 Free Software Foundation, -Inc. +Copyright (C) 1987-1989, 1993-1999, 2001-2014 Free Software Foundation, Inc. See the end of the file for license conditions. @@ -112,7 +111,7 @@ ** Emacs crashes when running in a terminal, if compiled with GCC 4.5.0 This version of GCC is buggy: see - http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6031 + http://debbugs.gnu.org/6031 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43904 You can work around this error in gcc-4.5 by omitting sibling call @@ -156,8 +155,8 @@ untar it :-). ** Emacs can crash when displaying PNG images with transparency. -This is due to a bug introduced in ImageMagick 6.8.2-3. The bug -should be fixed in ImageMagick 6.8.3-10. Please see Bug#13867. +This is due to a bug introduced in ImageMagick 6.8.2-3. The bug should +be fixed in ImageMagick 6.8.3-10. See . ** Crashes when displaying GIF images in Emacs built with version libungif-4.1.0 are resolved by using version libungif-4.1.0b1. @@ -310,17 +309,6 @@ though the system itself is capable of it. Either use a different shell, or set the variable `cannot-suspend' to a non-nil value. -*** With M-x enable-flow-control, you need to type C-\ twice -to do incremental search--a single C-\ gets no response. - -This has been traced to communicating with your machine via kermit, -with C-\ as the kermit escape character. One solution is to use -another escape character in kermit. One user did - - set escape-character 17 - -in his .kermrc file, to make C-q the kermit escape character. - ** Mailers and other helper programs *** movemail compiled with POP support can't connect to the POP server. @@ -991,7 +979,7 @@ example, work fine. A bug report has been filed in the Gnome bugzilla: http://bugzilla.gnome.org/show_bug.cgi?id=357032 -*** Gnome: Emacs' xterm-mouse-mode doesn't work on the Gnome terminal. +*** Gnome: Emacs's xterm-mouse-mode doesn't work on the Gnome terminal. A symptom of this bug is that double-clicks insert a control sequence into the buffer. The reason this happens is an apparent @@ -1153,7 +1141,7 @@ 1) If you don't need X Input Methods (XIM) for entering text in some language you use, you can improve performance on WAN links by using the X resource useXIM to turn off use of XIM. This does not affect - the use of Emacs' own input methods, which are part of the Leim + the use of Emacs's own input methods, which are part of the Leim package. 2) If the connection is very slow, you might also want to consider @@ -1619,7 +1607,7 @@ `global-font-lock-mode'. ** Unexpected characters inserted into the buffer when you start Emacs. -See eg http://debbugs.gnu.org/11129 +See e.g. This can happen when you start Emacs in -nw mode in an Xterm. For example, in the *scratch* buffer, you might see something like: @@ -1658,7 +1646,7 @@ exec ssh "$@" *** GNU/Linux: Truncated svn annotate output with SSH. -http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7791 +http://debbugs.gnu.org/7791 The symptoms are: you are accessing a svn repository over SSH. You use vc-annotate on a large (several thousand line) file, and the @@ -1670,13 +1658,6 @@ same contents as the one used above for CVS_RSH, and set the SVN_SSH environment variable to point to it. -*** GNU/Linux: On Linux-based GNU systems using libc versions 5.4.19 through -5.4.22, Emacs crashes at startup with a segmentation fault. - -This problem happens if libc defines the symbol __malloc_initialized. -One known solution is to upgrade to a newer libc version. 5.4.33 is -known to work. - *** GNU/Linux: After upgrading to a newer version of Emacs, the Meta key stops working. @@ -1774,15 +1755,6 @@ Alternatively, if you want a blinking underscore as your Emacs cursor, change the "cvvis" capability to send the "\E[?25h\E[?0c" command. -*** GNU/Linux: Error messages `internal facep []' happen on GNU/Linux systems. - -There is a report that replacing libc.so.5.0.9 with libc.so.5.2.16 -caused this to start happening. People are not sure why, but the -problem seems unlikely to be in Emacs itself. Some suspect that it -is actually Xlib which won't work with libc.so.5.2.16. - -Using the old library version is a workaround. - ** FreeBSD *** FreeBSD 2.1.5: useless symbolic links remain in /tmp or other @@ -2039,7 +2011,7 @@ is missing, all Emacs networking features are disabled. Old versions of Windows 95 may not have the required DLL. To use -Emacs' networking features on Windows 95, you must install the +Emacs's networking features on Windows 95, you must install the "Windows Socket 2" update available from MicroSoft's support Web. ** Emacs exits with "X protocol error" when run with an X server for MS-Windows. @@ -2247,7 +2219,7 @@ AltGr has been pressed. The variable `w32-recognize-altgr' can be set to nil to tell Emacs that AltGr is really Ctrl and Alt. -** Under some X-servers running on MS-Windows, Emacs' display is incorrect. +** Under some X-servers running on MS-Windows, Emacs's display is incorrect. The symptoms are that Emacs does not completely erase blank areas of the screen during scrolling or some other screen operations (e.g., selective @@ -2271,19 +2243,6 @@ ** Configuration -*** The `configure' script doesn't find the jpeg library. - -There are reports that this happens on some systems because the linker -by default only looks for shared libraries, but jpeg distribution by -default only installs a nonshared version of the library, `libjpeg.a'. - -If this is the problem, you can configure the jpeg library with the -`--enable-shared' option and then rebuild libjpeg. This produces a -shared version of libjpeg, which you need to install. Finally, rerun -the Emacs configure script, which should now find the jpeg library. -Alternatively, modify the generated src/Makefile to link the .a file -explicitly, and edit src/config.h to define HAVE_JPEG. - *** `configure' warns ``accepted by the compiler, rejected by the preprocessor''. This indicates a mismatch between the C compiler and preprocessor that @@ -2494,10 +2453,6 @@ The precise file names depend on the compiler version, so we cannot easily arrange to supply them. -*** Linking says that the functions insque and remque are undefined. - -Change oldXMenu/Makefile by adding insque.o to the variable OBJS. - *** `tparam' reported as a multiply-defined symbol when linking with ncurses. This problem results from an incompatible change in ncurses, in @@ -2518,7 +2473,8 @@ Compiling the lisp files fails at random places, complaining: "No rule to make target `/path/to/some/lisp.elc'". The causes of this problem are not understood. Using GNU make 3.81 compiled -from source, rather than the Ubuntu version, worked. See Bug#327,821. +from source, rather than the Ubuntu version, worked. +See . ** Dumping ------------------------------------------------------------ revno: 115896 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-01-06 21:11:14 -0500 message: * etc/PROBLEMS: More removal of old stuff diff: === modified file 'etc/PROBLEMS' --- etc/PROBLEMS 2014-01-07 02:06:00 +0000 +++ etc/PROBLEMS 2014-01-07 02:11:14 +0000 @@ -400,7 +400,7 @@ If you cannot fix the configuration, you can set the Lisp variable mail-host-address to the value you want. -** NFS and RFS +** NFS *** Emacs says it has saved a file, but the file does not actually appear on disk. @@ -412,55 +412,6 @@ calls involved in writing a file, including `close'; but in the case where the problem occurs, none of those system calls fails. -*** Editing files through RFS gives spurious "file has changed" warnings. -It is possible that a change in Emacs 18.37 gets around this problem, -but in case not, here is a description of how to fix the RFS bug that -causes it. - - There was a serious pair of bugs in the handling of the fsync() system - call in the RFS server. - - The first is that the fsync() call is handled as another name for the - close() system call (!!). It appears that fsync() is not used by very - many programs; Emacs version 18 does an fsync() before closing files - to make sure that the bits are on the disk. - - This is fixed by the enclosed patch to the RFS server. - - The second, more serious problem, is that fsync() is treated as a - non-blocking system call (i.e., it's implemented as a message that - gets sent to the remote system without waiting for a reply). Fsync is - a useful tool for building atomic file transactions. Implementing it - as a non-blocking RPC call (when the local call blocks until the sync - is done) is a bad idea; unfortunately, changing it will break the RFS - protocol. No fix was supplied for this problem. - - (as always, your line numbers may vary) - - % rcsdiff -c -r1.2 serversyscall.c - RCS file: RCS/serversyscall.c,v - retrieving revision 1.2 - diff -c -r1.2 serversyscall.c - *** /tmp/,RCSt1003677 Wed Jan 28 15:15:02 1987 - --- serversyscall.c Wed Jan 28 15:14:48 1987 - *************** - *** 163,169 **** - /* - * No return sent for close or fsync! - */ - ! if (syscall == RSYS_close || syscall == RSYS_fsync) - proc->p_returnval = deallocate_fd(proc, msg->m_args[0]); - else - { - --- 166,172 ---- - /* - * No return sent for close or fsync! - */ - ! if (syscall == RSYS_close) - proc->p_returnval = deallocate_fd(proc, msg->m_args[0]); - else - { - ** PSGML conflicts with sgml-mode. PSGML package uses the same names of some variables (like keymap) @@ -495,9 +446,10 @@ *** Emacs uses 100% of CPU time -This is a known problem with some versions of the Semantic package. -The solution is to upgrade Semantic to version 2.0pre4 (distributed -with CEDET 1.0pre4) or later. +This was a known problem with some old versions of the Semantic package. +The solution was to upgrade Semantic to version 2.0pre4 (distributed +with CEDET 1.0pre4) or later. Note that Emacs includes Semantic since +23.2, and this issue does not apply to the included version. *** Self-documentation messages are garbled. ------------------------------------------------------------ revno: 115895 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-01-06 21:06:00 -0500 message: * etc/PROBLEMS: Remove some old stuff; other small edits diff: === modified file 'etc/PROBLEMS' --- etc/PROBLEMS 2014-01-07 01:54:51 +0000 +++ etc/PROBLEMS 2014-01-07 02:06:00 +0000 @@ -12,7 +12,7 @@ and old Emacs releases, has been removed. Consult older versions of this file if you are interested in that information. -* Mule-UCS doesn't work in Emacs 23. +* Mule-UCS doesn't work in Emacs 23 onwards It's completely redundant now, as far as we know. @@ -107,57 +107,6 @@ and should be deleted or their directories removed from your load-path. -** With X11R6.4, public-patch-3, Emacs crashes at startup. - -Reportedly this patch in X fixes the problem. - - --- xc/lib/X11/imInt.c~ Wed Jun 30 13:31:56 1999 - +++ xc/lib/X11/imInt.c Thu Jul 1 15:10:27 1999 - @@ -1,4 +1,4 @@ - -/* $TOG: imInt.c /main/5 1998/05/30 21:11:16 kaleb $ */ - +/* $TOG: imInt.c /main/5 1998/05/30 21:11:16 kaleb $ */ - /****************************************************************** - - Copyright 1992, 1993, 1994 by FUJITSU LIMITED - @@ -166,8 +166,8 @@ - _XimMakeImName(lcd) - XLCd lcd; - { - - char* begin; - - char* end; - + char* begin = NULL; - + char* end = NULL; - char* ret; - int i = 0; - char* ximmodifier = XIMMODIFIER; - @@ -182,7 +182,11 @@ - } - ret = Xmalloc(end - begin + 2); - if (ret != NULL) { - - (void)strncpy(ret, begin, end - begin + 1); - + if (begin != NULL) { - + (void)strncpy(ret, begin, end - begin + 1); - + } else { - + ret[0] = '\0'; - + } - ret[end - begin + 1] = '\0'; - } - return ret; - -** Emacs crashes on startup after a glibc upgrade. - -This is caused by a binary incompatible change to the malloc -implementation in glibc 2.5.90-22. As a result, Emacs binaries built -using prior versions of glibc crash when run under 2.5.90-22. - -This problem was first seen in pre-release versions of Fedora 7, and -may be fixed in the final Fedora 7 release. To stop the crash from -happening, first try upgrading to the newest version of glibc; if this -does not work, rebuild Emacs with the same version of glibc that you -will run it under. For details, see - -https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=239344 - * Crash bugs ** Emacs crashes when running in a terminal, if compiled with GCC 4.5.0 @@ -280,7 +229,7 @@ you must issue the command "module load openmpi". This adds /usr/lib/openmpi/lib to LD_LIBRARY_PATH. If you then start Emacs from the same shell, you will encounter this crash. -Ref: +Ref: There is no good solution to this problem if you need to use both OpenMPI and Emacs with libotf support. The best you can do is use a @@ -300,17 +249,18 @@ will not be seen. To fix this, do M-x byte-recompile-directory and specify the directory that contains the Lisp files. -Emacs should print a warning when loading a .elc file which is older +Emacs prints a warning when loading a .elc file which is older than the corresponding .el file. -*** Watch out for .emacs files and EMACSLOADPATH environment vars. - -These control the actions of Emacs. -~/.emacs is your Emacs init file. +Alternatively, if you set the option `load-prefer-newer' non-nil, +Emacs will load whichever version of a file is the newest. + +*** Watch out for the EMACSLOADPATH environment variable + EMACSLOADPATH overrides which directories the function "load" will search. -If you observe strange problems, check for these and get rid -of them, then try again. +If you observe strange problems, check for this variable in your +environment. *** Using epop3.el package causes Emacs to signal an error. ------------------------------------------------------------ revno: 115894 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-01-06 20:54:51 -0500 message: * etc/PROBLEMS: Remove some no-longer relevant stuff re installation diff: === modified file 'etc/PROBLEMS' --- etc/PROBLEMS 2014-01-01 07:43:34 +0000 +++ etc/PROBLEMS 2014-01-07 01:54:51 +0000 @@ -2760,26 +2760,6 @@ ** Installation -*** Installing Emacs gets an error running `install-info'. - -You need to install a recent version of Texinfo; that package -supplies the `install-info' command. - -*** Installing to a directory with spaces in the name fails. - -For example, if you call configure with a directory-related option -with spaces in the value, eg --enable-locallisppath='/path/with\ spaces'. -Using directory paths with spaces is not supported at this time: you -must re-configure without using spaces. - -*** Installing to a directory with non-ASCII characters in the name fails. - -Installation may fail, or the Emacs executable may not start -correctly, if a directory name containing non-ASCII characters is used -as a `configure' argument (e.g. `--prefix'). The problem can also -occur if a non-ASCII directory is specified in the EMACSLOADPATH -envvar. - *** On Solaris, use GNU Make when installing an out-of-tree build The Emacs configuration process allows you to configure the ------------------------------------------------------------ revno: 115893 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-01-06 20:50:44 -0500 message: * etc/NEWS: Markup trivia diff: === modified file 'etc/NEWS' --- etc/NEWS 2014-01-07 01:46:23 +0000 +++ etc/NEWS 2014-01-07 01:50:44 +0000 @@ -34,14 +34,17 @@ `--with-file-notification-no'. See below for file-notify features. FIXME? This feature is not available for the Nextstep port. (?) +--- ** The configure option `--without-compress-info' has been generalized, and renamed to `--without-compress-install'. It now prevents compression of _any_ files during installation. +--- ** The configure option `--with-crt-dir' has been removed. It is no longer needed, as the crt*.o files are no longer linked specially. +--- ** Directories passed to configure option `--enable-locallisppath' are no longer created during installation. ------------------------------------------------------------ revno: 115892 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-01-06 20:46:23 -0500 message: Document calendar-day-header-array * doc/emacs/cal-xtra.texi (Calendar Customizing): Mention calendar-day-header-array. * etc/NEWS: Markup. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2014-01-06 06:25:30 +0000 +++ doc/emacs/ChangeLog 2014-01-07 01:46:23 +0000 @@ -1,3 +1,8 @@ +2014-01-07 Glenn Morris + + * cal-xtra.texi (Calendar Customizing): + Mention calendar-day-header-array. + 2013-12-28 Glenn Morris * trouble.texi (Understanding Bug Reporting): Brevity. === modified file 'doc/emacs/cal-xtra.texi' --- doc/emacs/cal-xtra.texi 2014-01-01 07:43:34 +0000 +++ doc/emacs/cal-xtra.texi 2014-01-07 01:46:23 +0000 @@ -43,9 +43,12 @@ @code{calendar-intermonth-text} as described in their documentation. @vindex calendar-month-header +@vindex calendar-day-header-array The variable @code{calendar-month-header} controls the text that appears above each month in the calendar. By default, it shows the -month and year. +month and year. The variable @code{calendar-day-header-array} +controls the text that appears above each day's column in every month. +By default, it shows the first two letters of each day's name. @vindex calendar-holiday-marker @vindex diary-entry-marker === modified file 'etc/NEWS' --- etc/NEWS 2014-01-06 06:25:30 +0000 +++ etc/NEWS 2014-01-07 01:46:23 +0000 @@ -353,12 +353,14 @@ *** New faces `calendar-weekday-header', `calendar-weekend-header', and `calendar-month-header'. ++++ *** New option `calendar-day-header-array'. +++ *** New variable `diary-from-outlook-function', used by the command `diary-from-outlook'. +--- *** The variable `calendar-font-lock-keywords' is obsolete. ** Calc ------------------------------------------------------------ revno: 115891 committer: Stefan Monnier branch nick: trunk timestamp: Mon 2014-01-06 18:34:05 -0500 message: * lisp/abbrev.el (define-abbrev): Beware new meaning of fboundp. * lisp/emacs-lisp/elint.el (elint-find-builtins): * lisp/emacs-lisp/eldoc.el (eldoc-symbol-function): * lisp/emacs-lisp/bytecomp.el (byte-compile-callargs-warn) (byte-compile-file-form-defmumble, byte-compile, byte-compile-form): * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): * lisp/apropos.el (apropos-safe-documentation): * lisp/subr.el (symbol-file): Remove redundant fboundp. * lisp/progmodes/idlw-shell.el (idlwave-shell-comint-filter): Use defalias. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-06 20:54:37 +0000 +++ lisp/ChangeLog 2014-01-06 23:34:05 +0000 @@ -1,3 +1,15 @@ +2014-01-06 Stefan Monnier + + * abbrev.el (define-abbrev): Beware new meaning of fboundp. + * emacs-lisp/elint.el (elint-find-builtins): + * emacs-lisp/eldoc.el (eldoc-symbol-function): + * emacs-lisp/bytecomp.el (byte-compile-callargs-warn) + (byte-compile-file-form-defmumble, byte-compile, byte-compile-form): + * emacs-lisp/byte-opt.el (byte-compile-inline-expand): + * apropos.el (apropos-safe-documentation): + * subr.el (symbol-file): Remove redundant fboundp. + * progmodes/idlw-shell.el (idlwave-shell-comint-filter): Use defalias. + 2014-01-06 Bastien Guerry * hl-line.el (global-hl-line-overlay): Make a local variable. === modified file 'lisp/abbrev.el' --- lisp/abbrev.el 2014-01-01 07:43:34 +0000 +++ lisp/abbrev.el 2014-01-06 23:34:05 +0000 @@ -588,7 +588,7 @@ (boundp sym) (symbol-value sym) (not (abbrev-get sym :system))) (unless (or system-flag - (and (boundp sym) (fboundp sym) + (and (boundp sym) ;; load-file-name (equal (symbol-value sym) expansion) (equal (symbol-function sym) hook))) === modified file 'lisp/apropos.el' --- lisp/apropos.el 2014-01-01 07:43:34 +0000 +++ lisp/apropos.el 2014-01-06 23:34:05 +0000 @@ -1006,8 +1006,7 @@ "Like `documentation', except it avoids calling `get_doc_string'. Will return nil instead." (while (and function (symbolp function)) - (setq function (if (fboundp function) - (symbol-function function)))) + (setq function (symbol-function function))) (if (eq (car-safe function) 'macro) (setq function (cdr function))) (setq function (if (byte-code-function-p function) === modified file 'lisp/emacs-lisp/byte-opt.el' --- lisp/emacs-lisp/byte-opt.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/byte-opt.el 2014-01-06 23:34:05 +0000 @@ -248,10 +248,10 @@ (defun byte-compile-inline-expand (form) (let* ((name (car form)) (localfn (cdr (assq name byte-compile-function-environment))) - (fn (or localfn (and (fboundp name) (symbol-function name))))) + (fn (or localfn (symbol-function name)))) (when (autoloadp fn) (autoload-do-load fn) - (setq fn (or (and (fboundp name) (symbol-function name)) + (setq fn (or (symbol-function name) (cdr (assq name byte-compile-function-environment))))) (pcase fn (`nil === modified file 'lisp/emacs-lisp/bytecomp.el' --- lisp/emacs-lisp/bytecomp.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/bytecomp.el 2014-01-06 23:34:05 +0000 @@ -1265,8 +1265,7 @@ (if (byte-code-function-p def) (aref def 0) '(&rest def))))) - (if (and (fboundp (car form)) - (subrp (symbol-function (car form)))) + (if (subrp (symbol-function (car form))) (subr-arity (symbol-function (car form)))))) (ncall (length (cdr form)))) ;; Check many or unevalled from subr-arity. @@ -2396,9 +2395,8 @@ (byte-compile-warn "%s `%s' defined multiple times in this file" (if macro "macro" "function") name))) - ((and (fboundp name) - (eq (car-safe (symbol-function name)) - (if macro 'lambda 'macro))) + ((eq (car-safe (symbol-function name)) + (if macro 'lambda 'macro)) (when (byte-compile-warning-enabled-p 'redefine) (byte-compile-warn "%s `%s' being redefined as a %s" (if macro "function" "macro") @@ -2532,7 +2530,7 @@ (byte-compile-close-variables (let* ((lexical-binding lexical-binding) (fun (if (symbolp form) - (and (fboundp form) (symbol-function form)) + (symbol-function form) form)) (macro (eq (car-safe fun) 'macro))) (if macro @@ -2946,8 +2944,7 @@ (format "; use `%s' instead." interactive-only)) (t ".")))) - (if (and (fboundp (car form)) - (eq (car-safe (symbol-function (car form))) 'macro)) + (if (eq (car-safe (symbol-function (car form))) 'macro) (byte-compile-log-warning (format "Forgot to expand macro %s" (car form)) nil :error)) (if (and handler === modified file 'lisp/emacs-lisp/eldoc.el' --- lisp/emacs-lisp/eldoc.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/eldoc.el 2014-01-06 23:34:05 +0000 @@ -512,8 +512,7 @@ ;; Do indirect function resolution if possible. (defun eldoc-symbol-function (fsym) - (let ((defn (and (fboundp fsym) - (symbol-function fsym)))) + (let ((defn (symbol-function fsym))) (and (symbolp defn) (condition-case _ (setq defn (indirect-function fsym)) === modified file 'lisp/emacs-lisp/elint.el' --- lisp/emacs-lisp/elint.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/elint.el 2014-01-06 23:34:05 +0000 @@ -1145,8 +1145,8 @@ (defun elint-find-builtins () "Return a list of all built-in functions." (let (subrs) - (mapatoms (lambda (s) (and (fboundp s) (subrp (symbol-function s)) - (setq subrs (cons s subrs))))) + (mapatoms (lambda (s) (and (subrp (symbol-function s)) + (push s subrs)))) subrs)) (defun elint-find-builtin-args (&optional list) === modified file 'lisp/progmodes/idlw-shell.el' --- lisp/progmodes/idlw-shell.el 2014-01-01 07:43:34 +0000 +++ lisp/progmodes/idlw-shell.el 2014-01-06 23:34:05 +0000 @@ -1446,10 +1446,10 @@ ;; Newer versions of comint.el changed the name of comint-filter to ;; comint-output-filter. -(defun idlwave-shell-comint-filter (process string) nil) -(if (fboundp 'comint-output-filter) - (fset 'idlwave-shell-comint-filter (symbol-function 'comint-output-filter)) - (fset 'idlwave-shell-comint-filter (symbol-function 'comint-filter))) +(defalias 'idlwave-shell-comint-filter + (if (fboundp 'comint-output-filter) + #'comint-output-filter + #'comint-filter)) (defun idlwave-shell-is-running () "Return t if the shell process is running." === modified file 'lisp/subr.el' --- lisp/subr.el 2014-01-06 19:29:39 +0000 +++ lisp/subr.el 2014-01-06 23:34:05 +0000 @@ -1810,7 +1810,7 @@ TYPE is `defun', `defvar', or `defface', that specifies function definition, variable definition, or face definition only." (if (and (or (null type) (eq type 'defun)) - (symbolp symbol) (fboundp symbol) + (symbolp symbol) (autoloadp (symbol-function symbol))) (nth 1 (symbol-function symbol)) (let ((files load-history) ------------------------------------------------------------ revno: 115890 committer: Bastien Guerry branch nick: trunk timestamp: Mon 2014-01-06 21:54:37 +0100 message: Fix Bug#16183 about `global-hl-line-sticky-flag'. * hl-line.el (global-hl-line-overlay): Make a local variable. (global-hl-line-overlays): New variable to store all overlays. (global-hl-line-mode): Don't delete overlays from the current buffer when `global-hl-line-sticky-flag' is non-nil. (global-hl-line-highlight): Add new overlays to `global-hl-line-overlays'. (global-hl-line-unhighlight-all): New function to delete all overlays when turning off `global-hl-line-mode'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-06 19:29:39 +0000 +++ lisp/ChangeLog 2014-01-06 20:54:37 +0000 @@ -1,3 +1,15 @@ +2014-01-06 Bastien Guerry + + * hl-line.el (global-hl-line-overlay): Make a local variable. + (global-hl-line-overlays): New variable to store all overlays. + (global-hl-line-mode): Don't delete overlays from the current + buffer when `global-hl-line-sticky-flag' is non-nil. + (global-hl-line-highlight): Add new overlays to + `global-hl-line-overlays'. + (global-hl-line-unhighlight-all): New function to delete all + overlays when turning off `global-hl-line-mode'. + This fixes Bug#16183. + 2014-01-06 Stefan Monnier * subr.el (set-transient-map): Fix nested case and docstring. === modified file 'lisp/hl-line.el' --- lisp/hl-line.el 2014-01-01 07:43:34 +0000 +++ lisp/hl-line.el 2014-01-06 20:54:37 +0000 @@ -64,9 +64,14 @@ (defvar-local hl-line-overlay nil "Overlay used by Hl-Line mode to highlight the current line.") -(defvar global-hl-line-overlay nil +(defvar-local global-hl-line-overlay nil "Overlay used by Global-Hl-Line mode to highlight the current line.") +(defvar global-hl-line-overlays nil + "Overlays used by Global-Hl-Line mode in various buffers. +Global-Hl-Line keeps displaying one overlay in each buffer +when `global-hl-line-sticky-flag' is non-nil.") + (defgroup hl-line nil "Highlight the current line." :version "21.1" @@ -193,9 +198,14 @@ :group 'hl-line (if global-hl-line-mode (progn - (add-hook 'pre-command-hook #'global-hl-line-unhighlight) + ;; In case `kill-all-local-variables' is called. + (add-hook 'change-major-mode-hook #'global-hl-line-unhighlight) + (if global-hl-line-sticky-flag + (remove-hook 'pre-command-hook #'global-hl-line-unhighlight) + (add-hook 'pre-command-hook #'global-hl-line-unhighlight)) + (global-hl-line-highlight) (add-hook 'post-command-hook #'global-hl-line-highlight)) - (global-hl-line-unhighlight) + (global-hl-line-unhighlight-all) (remove-hook 'pre-command-hook #'global-hl-line-unhighlight) (remove-hook 'post-command-hook #'global-hl-line-highlight))) @@ -205,6 +215,8 @@ (unless (window-minibuffer-p) (unless global-hl-line-overlay (setq global-hl-line-overlay (hl-line-make-overlay))) ; To be moved. + (unless (member global-hl-line-overlay global-hl-line-overlays) + (push global-hl-line-overlay global-hl-line-overlays)) (overlay-put global-hl-line-overlay 'window (unless global-hl-line-sticky-flag (selected-window))) @@ -215,6 +227,16 @@ (when global-hl-line-overlay (delete-overlay global-hl-line-overlay))) +(defun global-hl-line-unhighlight-all () + "Deactivate all Global-Hl-Line overlays." + (mapc (lambda (ov) + (let ((ovb (overlay-buffer ov))) + (when (bufferp ovb) + (with-current-buffer ovb + (global-hl-line-unhighlight))))) + global-hl-line-overlays) + (setq global-hl-line-overlays nil)) + (defun hl-line-move (overlay) "Move the Hl-Line overlay. If `hl-line-range-function' is non-nil, move the OVERLAY to the position ------------------------------------------------------------ revno: 115889 committer: Stefan Monnier branch nick: trunk timestamp: Mon 2014-01-06 14:29:39 -0500 message: * lisp/subr.el (set-transient-map): Fix nested case and docstring. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-06 11:15:42 +0000 +++ lisp/ChangeLog 2014-01-06 19:29:39 +0000 @@ -1,3 +1,7 @@ +2014-01-06 Stefan Monnier + + * subr.el (set-transient-map): Fix nested case and docstring. + 2014-01-06 Tassilo Horn * textmodes/reftex-vars.el (reftex-label-alist-builtin): Add a @@ -10,12 +14,10 @@ * vc/log-view.el (log-view-beginning-of-defun): Rewrite to behave like `beginning-of-defun'. (log-view-end-of-defun,log-view-end-of-defun-1): Rename old - log-view-end-of-defun to log-view-end-of-defun-1. Replace - log-view-end-of-defun with wrapper that behaves like - `end-of-defun'. + log-view-end-of-defun to log-view-end-of-defun-1. Replace + log-view-end-of-defun with wrapper that behaves like `end-of-defun'. (log-view-extract-comment): Call `log-view-current-entry' directly - instead of relying on broken `log-view-beginning-of-defun' - behavior. + instead of relying on broken `log-view-beginning-of-defun' behavior. 2014-01-06 Paul Eggert === modified file 'lisp/subr.el' --- lisp/subr.el 2014-01-01 07:43:34 +0000 +++ lisp/subr.el 2014-01-06 19:29:39 +0000 @@ -4280,29 +4280,33 @@ Optional arg ON-EXIT, if non-nil, specifies a function that is called, with no arguments, after MAP is deactivated. -Note that MAP will take precedence over the \"overriding\" maps -`overriding-terminal-local-map' and `overriding-local-map' (and -over the `keymap' text property). Unlike those maps, if no match -for a key is found in MAP, Emacs continues the normal key lookup -sequence." +This uses `overriding-terminal-local-map' which takes precedence over all other +keymaps. As usual, if no match for a key is found in MAP, the normal key +lookup sequence then continues." (let ((clearfun (make-symbol "clear-transient-map"))) ;; Don't use letrec, because equal (in add/remove-hook) would get trapped ;; in a cycle. (fset clearfun (lambda () - ;; FIXME: Handle the case of multiple transient maps. For - ;; example, if isearch and C-u both use transient maps, - ;; then the lifetime of the C-u should be nested within - ;; the isearch overlay, so the pre-command-hook of isearch - ;; should be suspended during the C-u one so we don't exit - ;; isearch just because we hit 1 after C-u and that 1 - ;; exits isearch whereas it doesn't exit C-u. (with-demoted-errors "set-transient-map PCH: %S" - (unless (cond ((null keep-pred) nil) - ((eq t keep-pred) - (eq this-command - (lookup-key map (this-command-keys-vector)))) - (t (funcall keep-pred))) + (unless (cond + ((not (eq map (cadr overriding-terminal-local-map))) + ;; There's presumably some other transient-map in + ;; effect. Wait for that one to terminate before we + ;; remove ourselves. + ;; For example, if isearch and C-u both use transient + ;; maps, then the lifetime of the C-u should be nested + ;; within isearch's, so the pre-command-hook of + ;; isearch should be suspended during the C-u one so + ;; we don't exit isearch just because we hit 1 after + ;; C-u and that 1 exits isearch whereas it doesn't + ;; exit C-u. + t) + ((null keep-pred) nil) + ((eq t keep-pred) + (eq this-command + (lookup-key map (this-command-keys-vector)))) + (t (funcall keep-pred))) (internal-pop-keymap map 'overriding-terminal-local-map) (remove-hook 'pre-command-hook clearfun) (when on-exit (funcall on-exit)))))) ------------------------------------------------------------ revno: 115888 fixes bug: http://debbugs.gnu.org/16129 committer: Eli Zaretskii branch nick: trunk timestamp: Mon 2014-01-06 18:28:26 +0200 message: Fix bug #16129 with slow and incorrect redisplay in follow-mode. src/xdisp.c (redisplay_window): Don't skip window redisplay if the last value of point is not equal to buffer's point. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-01-05 02:56:08 +0000 +++ src/ChangeLog 2014-01-06 16:28:26 +0000 @@ -1,3 +1,8 @@ +2014-01-06 Eli Zaretskii + + * xdisp.c (redisplay_window): Don't skip window redisplay if the + last value of point is not equal to buffer's point. (Bug#16129) + 2014-01-05 Paul Eggert Spelling fixes. === modified file 'src/xdisp.c' --- src/xdisp.c 2014-01-01 17:44:48 +0000 +++ src/xdisp.c 2014-01-06 16:28:26 +0000 @@ -15621,7 +15621,8 @@ && REDISPLAY_SOME_P () && !w->redisplay && !f->redisplay - && !buffer->text->redisplay) + && !buffer->text->redisplay + && BUF_PT (buffer) == w->last_point) return; /* Make sure that both W's markers are valid. */ ------------------------------------------------------------ revno: 115887 committer: Tassilo Horn branch nick: trunk timestamp: Mon 2014-01-06 12:15:42 +0100 message: Add `Texinfo' entry to reftex-label-alist-builtin. * lisp/textmodes/reftex-vars.el (reftex-label-alist-builtin): Add a `Texinfo' entry. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-06 07:33:06 +0000 +++ lisp/ChangeLog 2014-01-06 11:15:42 +0000 @@ -1,3 +1,8 @@ +2014-01-06 Tassilo Horn + + * textmodes/reftex-vars.el (reftex-label-alist-builtin): Add a + `Texinfo' entry. + 2014-01-06 Daniel Colascione Fix defun navigation in vc log view. === modified file 'lisp/textmodes/reftex-vars.el' --- lisp/textmodes/reftex-vars.el 2014-01-01 07:43:34 +0000 +++ lisp/textmodes/reftex-vars.el 2014-01-06 11:15:42 +0000 @@ -127,7 +127,10 @@ ;; The label macro is hard coded, but it *could* be defined like this: ;;("\\label{*}" nil nil nil nil) - ))) + )) + + ;; Texinfo + (Texinfo "Texinfo default environments" nil)) "The default label environment descriptions. Lower-case symbols correspond to a style file of the same name in the LaTeX distribution. Mixed-case symbols are convenience aliases.") ------------------------------------------------------------ revno: 115886 committer: Daniel Colascione branch nick: trunk timestamp: Sun 2014-01-05 23:33:06 -0800 message: Fix defun navigation in vc log view. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-06 06:25:30 +0000 +++ lisp/ChangeLog 2014-01-06 07:33:06 +0000 @@ -1,3 +1,17 @@ +2014-01-06 Daniel Colascione + + Fix defun navigation in vc log view. + + * vc/log-view.el (log-view-beginning-of-defun): Rewrite to behave + like `beginning-of-defun'. + (log-view-end-of-defun,log-view-end-of-defun-1): Rename old + log-view-end-of-defun to log-view-end-of-defun-1. Replace + log-view-end-of-defun with wrapper that behaves like + `end-of-defun'. + (log-view-extract-comment): Call `log-view-current-entry' directly + instead of relying on broken `log-view-beginning-of-defun' + behavior. + 2014-01-06 Paul Eggert Spelling fixes. === modified file 'lisp/vc/log-view.el' --- lisp/vc/log-view.el 2014-01-01 07:43:34 +0000 +++ lisp/vc/log-view.el 2014-01-06 07:33:06 +0000 @@ -429,18 +429,28 @@ This is Log View mode's default `beginning-of-defun-function'. It assumes that a log entry starts with a line matching `log-view-message-re'." - (if (or (null arg) (zerop arg)) - (setq arg 1)) + (when (null arg) (setf arg 1)) (if (< arg 0) - (dotimes (_n (- arg)) - (log-view-end-of-defun)) - (catch 'beginning-of-buffer - (dotimes (_n arg) - (or (log-view-current-entry nil t) - (throw 'beginning-of-buffer nil))) - (point)))) + (log-view-end-of-defun (- arg)) + (let ((found t)) + (while (> arg 0) + (setf arg (1- arg)) + (let ((cur-start (log-view-current-entry))) + (setf found + (cond ((null cur-start) + (goto-char (point-min)) + nil) + ((>= (car cur-start) (point)) + (unless (bobp) + (forward-line -1) + (setf arg (1+ arg))) + nil) + (t + (goto-char (car cur-start)) + t))))) + found))) -(defun log-view-end-of-defun () +(defun log-view-end-of-defun-1 () "Move forward to the next Log View entry." (let ((looping t)) (if (looking-at log-view-message-re) @@ -457,6 +467,16 @@ (setq looping nil) (forward-line -1)))))) +(defun log-view-end-of-defun (&optional arg) + "Move forward to the next Log View entry. +Works like `end-of-defun'." + (when (null arg) (setf arg 1)) + (if (< arg 0) + (log-view-beginning-of-defun (- arg)) + (dotimes (_n arg) + (log-view-end-of-defun-1) + t))) + (defvar cvs-minor-current-files) (defvar cvs-branch-prefix) (defvar cvs-secondary-branch-prefix) @@ -511,7 +531,8 @@ (cond ((eq backend 'SVN) (forward-line -1))) (setq en (point)) - (log-view-beginning-of-defun) + (or (log-view-current-entry nil t) + (throw 'beginning-of-buffer nil)) (cond ((memq backend '(SCCS RCS CVS MCVS SVN)) (forward-line 2)) ((eq backend 'Hg) ------------------------------------------------------------ revno: 115885 committer: Paul Eggert branch nick: trunk timestamp: Sun 2014-01-05 22:25:30 -0800 message: Spelling fixes. * calc/calc-yank.el (calc-edit-mode, calc-edit-cancel): * emacs-lisp/debug.el (cancel-debug-on-entry): * epg.el (epg-error-to-string): * files.el (recover-file): * lpr.el (lpr-buffer, print-buffer, lpr-region, print-region): * mail/emacsbug.el (report-emacs-bug-hook): * mail/sendmail.el (mail-recover): * ses.el (ses-yank-resize): * term/ns-win.el (ns-print-buffer): Spelling fixes in diagnostics, mostly for "canceled" with one L. * epg.el (epg-key-capability-alist): Rename from misspelled version. All uses changed. * obsolete/xesam.el (xesam-all-fields): Fix misspelled field name. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2014-01-01 07:43:34 +0000 +++ doc/emacs/ChangeLog 2014-01-06 06:25:30 +0000 @@ -1236,7 +1236,7 @@ \\`info- no longer handled specially. Update for rmail-enable-mime-composing. Don't mention 'm' for replies. - Don't mention rmail-mail-new-frame and cancelling, since it does + Don't mention rmail-mail-new-frame and canceling, since it does not work for Message at the moment. * cal-xtra.texi: Copyedits. === modified file 'doc/emacs/mini.texi' --- doc/emacs/mini.texi 2014-01-01 07:43:34 +0000 +++ doc/emacs/mini.texi 2014-01-06 06:25:30 +0000 @@ -37,7 +37,7 @@ The simplest way to enter a minibuffer argument is to type the text, then @key{RET} to submit the argument and exit the minibuffer. Alternatively, you can type @kbd{C-g} to exit the minibuffer by -cancelling the command asking for the argument (@pxref{Quitting}). +canceling the command asking for the argument (@pxref{Quitting}). @cindex default argument Sometimes, the prompt shows a @dfn{default argument}, inside === modified file 'doc/misc/semantic.texi' --- doc/misc/semantic.texi 2014-01-06 05:25:46 +0000 +++ doc/misc/semantic.texi 2014-01-06 06:25:30 +0000 @@ -607,7 +607,7 @@ @c LocalWords: backquote bnf bovinate bovinates LALR @c LocalWords: bovinating bovination bovinator bucketize @c LocalWords: cb cdr charquote checkcache cindex CLOS -@c LocalWords: concat concocting const constantness ctxt Decl defcustom +@c LocalWords: concat concocting const ctxt Decl defcustom @c LocalWords: deffn deffnx defun defvar destructor's dfn diff dir @c LocalWords: doc docstring EDE EIEIO elisp emacsman emph enum @c LocalWords: eq Exp EXPANDFULL expression fn foo func funcall === modified file 'doc/misc/srecode.texi' --- doc/misc/srecode.texi 2014-01-06 05:25:46 +0000 +++ doc/misc/srecode.texi 2014-01-06 06:25:30 +0000 @@ -342,7 +342,7 @@ between editable fields in the template. Once the cursor moves out of the are inserted by the template, all the -fields are cancelled. +fields are canceled. @b{NOTE}: Some conveniences in templates, such as completion, or character restrictions are lost when using field editing mode. === modified file 'etc/NEWS' --- etc/NEWS 2014-01-05 23:36:13 +0000 +++ etc/NEWS 2014-01-06 06:25:30 +0000 @@ -856,7 +856,7 @@ *** The previous version of todo-mode.el is obsolete and renamed otodo-mode.el. -*** xesam.el is obsolete, because the XESAM project has been cancelled. +*** xesam.el is obsolete, because the XESAM project has been canceled. +++ *** yow.el is obsolete; use fortune.el or cookie1.el instead. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-06 05:04:57 +0000 +++ lisp/ChangeLog 2014-01-06 06:25:30 +0000 @@ -1,3 +1,20 @@ +2014-01-06 Paul Eggert + + Spelling fixes. + * calc/calc-yank.el (calc-edit-mode, calc-edit-cancel): + * emacs-lisp/debug.el (cancel-debug-on-entry): + * epg.el (epg-error-to-string): + * files.el (recover-file): + * lpr.el (lpr-buffer, print-buffer, lpr-region, print-region): + * mail/emacsbug.el (report-emacs-bug-hook): + * mail/sendmail.el (mail-recover): + * ses.el (ses-yank-resize): + * term/ns-win.el (ns-print-buffer): + Spelling fixes in diagnostics, mostly for "canceled" with one L. + * epg.el (epg-key-capability-alist): Rename from misspelled version. + All uses changed. + * obsolete/xesam.el (xesam-all-fields): Fix misspelled field name. + 2014-01-06 Leo Liu * dired-x.el (dired-mode-map): Rebind dired-omit-mode to C-x M-o @@ -7148,7 +7165,7 @@ 2013-07-06 Jan Djärv * files.el (write-file): Do not display confirm dialog for NS, - it does its own dialog, which can't be cancelled (Bug#14578). + it does its own dialog, which can't be canceled (Bug#14578). 2013-07-06 Eli Zaretskii === modified file 'lisp/calc/calc-yank.el' --- lisp/calc/calc-yank.el 2014-01-01 07:43:34 +0000 +++ lisp/calc/calc-yank.el 2014-01-06 06:25:30 +0000 @@ -588,7 +588,7 @@ (add-hook 'kill-buffer-hook (lambda () (let ((calc-edit-handler nil)) (calc-edit-finish t)) - (message "(Cancelled)")) t t) + (message "(Canceled)")) t t) (insert (propertize (concat (or title title "Calc Edit Mode. ") @@ -669,7 +669,7 @@ (interactive) (let ((calc-edit-handler nil)) (calc-edit-finish)) - (message "(Cancelled)")) + (message "(Canceled)")) (defun calc-finish-stack-edit (num) (let ((buf (current-buffer)) === modified file 'lisp/cedet/semantic/complete.el' --- lisp/cedet/semantic/complete.el 2014-01-01 07:43:34 +0000 +++ lisp/cedet/semantic/complete.el 2014-01-06 06:25:30 +0000 @@ -1968,7 +1968,7 @@ (complst nil)) (when (and thissym (or (not (string= thissym "")) nextsym)) - ;; Do a quick calcuation of completions. + ;; Do a quick calculation of completions. (semantic-collector-calculate-completions collector thissym nil) ;; Get the master list @@ -2048,7 +2048,7 @@ (complst nil)) (when (and thissym (or (not (string= thissym "")) nextsym)) - ;; Do a quick calcuation of completions. + ;; Do a quick calculation of completions. (semantic-collector-calculate-completions collector thissym nil) ;; Get the master list === modified file 'lisp/cedet/semantic/edit.el' --- lisp/cedet/semantic/edit.el 2014-01-01 07:43:34 +0000 +++ lisp/cedet/semantic/edit.el 2014-01-06 06:25:30 +0000 @@ -907,11 +907,11 @@ (defun semantic-edits-splice-insert (newtags parent cachelist) "Insert NEWTAGS into PARENT using CACHELIST. -PARENT could be nil, in which case CACHLIST is the buffer cache +PARENT could be nil, in which case CACHELIST is the buffer cache which must be updated. CACHELIST must be searched to find where NEWTAGS are to be inserted. The positions of NEWTAGS must be synchronized with those in -CACHELIST for this to work. Some routines pre-position CACHLIST at a +CACHELIST for this to work. Some routines pre-position CACHELIST at a convenient location, so use that." (let* ((start (semantic-tag-start (car newtags))) (newtagendcell (nthcdr (1- (length newtags)) newtags)) === modified file 'lisp/dired.el' --- lisp/dired.el 2014-01-03 11:21:25 +0000 +++ lisp/dired.el 2014-01-06 06:25:30 +0000 @@ -4353,7 +4353,7 @@ ;;;*** -;;;### (autoloads nil "dired-x" "dired-x.el" "e816f06101aaf6f8a02b0192a58f90ad") +;;;### (autoloads nil "dired-x" "dired-x.el" "fe5dbf515419da3b9907f32e5d4311fa") ;;; Generated autoloads from dired-x.el (autoload 'dired-jump "dired-x" "\ === modified file 'lisp/emacs-lisp/debug.el' --- lisp/emacs-lisp/debug.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/debug.el 2014-01-06 06:25:30 +0000 @@ -829,7 +829,7 @@ (progn (advice-remove function #'debug--implement-debug-on-entry) function) - (message "Cancelling debug-on-entry for all functions") + (message "Canceling debug-on-entry for all functions") (mapcar #'cancel-debug-on-entry (debug--function-list)))) (defun debugger-list-functions () === modified file 'lisp/emacs-lisp/eieio-opt.el' --- lisp/emacs-lisp/eieio-opt.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/eieio-opt.el 2014-01-06 06:25:30 +0000 @@ -749,7 +749,7 @@ current expansion depth." (when (eq (point-min) (point-max)) ;; This function is only called once, to start the whole deal. - ;; Ceate, and expand the default object. + ;; Create and expand the default object. (eieio-class-button eieio-default-superclass 0) (forward-line -1) (speedbar-expand-line))) === modified file 'lisp/epg.el' --- lisp/epg.el 2014-01-01 07:43:34 +0000 +++ lisp/epg.el 2014-01-06 06:25:30 +0000 @@ -135,7 +135,7 @@ (?f . full) (?u . ultimate))) -(defvar epg-key-capablity-alist +(defvar epg-key-capability-alist '((?e . encrypt) (?s . sign) (?c . certify) @@ -1124,7 +1124,7 @@ ((eq (car error) 'exit) "Exit") ((eq (car error) 'quit) - "Cancelled") + "Canceled") ((eq (car error) 'no-data) (let ((entry (assq (cdr error) epg-no-data-reason-alist))) (if entry @@ -1922,7 +1922,7 @@ (if (aref line 1) (cdr (assq (string-to-char (aref line 1)) epg-key-validity-alist))) (delq nil - (mapcar (lambda (char) (cdr (assq char epg-key-capablity-alist))) + (mapcar (lambda (char) (cdr (assq char epg-key-capability-alist))) (aref line 11))) (member (aref line 0) '("sec" "ssb")) (string-to-number (aref line 3)) === modified file 'lisp/files.el' --- lisp/files.el 2014-01-01 07:43:34 +0000 +++ lisp/files.el 2014-01-06 06:25:30 +0000 @@ -5570,7 +5570,7 @@ (insert-file-contents file-name nil) (set-buffer-file-coding-system coding-system)) (after-find-file nil nil t)) - (t (user-error "Recover-file cancelled"))))) + (t (user-error "Recover-file canceled"))))) (defun recover-session () "Recover auto save files from a previous Emacs session. === modified file 'lisp/filesets.el' --- lisp/filesets.el 2014-01-01 07:43:34 +0000 +++ lisp/filesets.el 2014-01-06 06:25:30 +0000 @@ -1767,7 +1767,7 @@ n name))) (dolist (this files nil) (filesets-file-open open-function this)) - (message "Filesets: cancelled"))) + (message "Filesets: canceled"))) (filesets-error 'error "Filesets: Unknown fileset: " name)))) (defun filesets-close (&optional mode name lookup-name) === modified file 'lisp/gnus/message.el' --- lisp/gnus/message.el 2014-01-01 07:43:34 +0000 +++ lisp/gnus/message.el 2014-01-06 06:25:30 +0000 @@ -7214,7 +7214,7 @@ (let ((buffer-read-only nil)) (erase-buffer) (insert-file-contents file-name nil))) - (t (error "message-recover cancelled"))))) + (t (error "message-recover canceled"))))) ;;; Washing Subject: === modified file 'lisp/image-dired.el' --- lisp/image-dired.el 2014-01-01 07:43:34 +0000 +++ lisp/image-dired.el 2014-01-06 06:25:30 +0000 @@ -881,7 +881,7 @@ (progn (image-dired-display-thumbs) (pop-to-buffer image-dired-thumbnail-buffer)) - (message "Cancelled.")))) + (message "Canceled.")))) ;;;###autoload (defalias 'image-dired 'image-dired-show-all-from-dir) === modified file 'lisp/international/characters.el' --- lisp/international/characters.el 2014-01-01 07:43:34 +0000 +++ lisp/international/characters.el 2014-01-06 06:25:30 +0000 @@ -1094,7 +1094,7 @@ ;; (LOCALE TABLE (CHARSET (FROM-CODE . TO-CODE) ...) ...) ;; LOCALE: locale symbol ;; TABLE: char-table used for char-width-table, initially nil. -;; CAHRSET: character set +;; CHARSET: character set ;; FROM-CODE, TO-CODE: range of code-points in CHARSET (defvar cjk-char-width-table-list === modified file 'lisp/international/ucs-normalize.el' --- lisp/international/ucs-normalize.el 2014-01-01 07:43:34 +0000 +++ lisp/international/ucs-normalize.el 2014-01-06 06:25:30 +0000 @@ -131,7 +131,7 @@ This list is taken from http://www.unicode.org/Public/UNIDATA/5.2/CompositionExclusions.txt") - ;; Unicode ranges that decompositions & combinings are defined. + ;; Unicode ranges that decompositions & combining characters are defined. (defvar check-range nil) (setq check-range '((#x00a0 . #x3400) (#xA600 . #xAC00) (#xF900 . #x110ff) (#x1d000 . #x1dfff) (#x1f100 . #x1f2ff) (#x2f800 . #x2faff))) === modified file 'lisp/lpr.el' --- lisp/lpr.el 2014-01-01 07:43:34 +0000 +++ lisp/lpr.el 2014-01-06 06:25:30 +0000 @@ -161,7 +161,7 @@ for customization of the printer command." (interactive (unless (y-or-n-p "Send current buffer to default printer? ") - (error "Cancelled"))) + (error "Canceled"))) (print-region-1 (point-min) (point-max) lpr-switches nil)) ;;;###autoload @@ -180,7 +180,7 @@ for further customization of the printer command." (interactive (unless (y-or-n-p "Send current buffer to default printer? ") - (error "Cancelled"))) + (error "Canceled"))) (print-region-1 (point-min) (point-max) lpr-switches t)) ;;;###autoload @@ -191,7 +191,7 @@ (interactive (if (y-or-n-p "Send selected text to default printer? ") (list (region-beginning) (region-end)) - (error "Cancelled"))) + (error "Canceled"))) (print-region-1 start end lpr-switches nil)) ;;;###autoload @@ -211,7 +211,7 @@ (interactive (if (y-or-n-p "Send selected text to default printer? ") (list (region-beginning) (region-end)) - (error "Cancelled"))) + (error "Canceled"))) (print-region-1 start end lpr-switches t)) (defun print-region-1 (start end switches page-headers) === modified file 'lisp/mail/emacsbug.el' --- lisp/mail/emacsbug.el 2014-01-01 07:43:34 +0000 +++ lisp/mail/emacsbug.el 2014-01-06 06:25:30 +0000 @@ -399,7 +399,7 @@ (format " using \\[%s]" report-emacs-bug-send-command) ""))))) - (error "M-x report-emacs-bug was cancelled, please read *Bug Help* buffer")) + (error "M-x report-emacs-bug was canceled, please read *Bug Help* buffer")) ;; Query the user for the SMTP method, so that we can skip ;; questions about From header validity if the user is going to ;; use mailclient, anyway. === modified file 'lisp/mail/sendmail.el' --- lisp/mail/sendmail.el 2014-01-01 07:43:34 +0000 +++ lisp/mail/sendmail.el 2014-01-06 06:25:30 +0000 @@ -1977,7 +1977,7 @@ (if (not (yes-or-no-p (format "Recover mail draft from auto save file %s? " file-name))) - (error "mail-recover cancelled") + (error "mail-recover canceled") (let ((buffer-read-only nil) (buffer-coding buffer-file-coding-system) ;; Auto-save files are written in internal === modified file 'lisp/net/newsticker.el' --- lisp/net/newsticker.el 2014-01-01 07:43:34 +0000 +++ lisp/net/newsticker.el 2014-01-06 06:25:30 +0000 @@ -378,7 +378,7 @@ ;; * Remove stupid newlines in titles (headlines) -- Thanks to ;; Jeff Rancier. -;; 0.94 * Added clickerability and description for channel headings. +;; 0.94 * Added clickability and description for channel headings. ;; * Made it work for (at least some) rss 0.9 feeds. ;; 0.93 * Added some more sites. === modified file 'lisp/obsolete/xesam.el' --- lisp/obsolete/xesam.el 2014-01-01 07:43:34 +0000 +++ lisp/obsolete/xesam.el 2014-01-06 06:25:30 +0000 @@ -198,7 +198,7 @@ "xesam:colorCount" "xesam:colorSpace" "xesam:columnCount" "xesam:comment" "xesam:commentCharacterCount" "xesam:conflicts" "xesam:contactMedium" "xesam:contactName" "xesam:contactNick" "xesam:contactPhoto" - "xesam:contactURL" "xesam:contains" "xesam:contenKeyword" + "xesam:contactURL" "xesam:contains" "xesam:contentKeyword" "xesam:contentComment" "xesam:contentCreated" "xesam:contentModified" "xesam:contentType" "xesam:contributor" "xesam:copyright" "xesam:creator" "xesam:definesClass" "xesam:definesFunction" "xesam:definesGlobalVariable" === modified file 'lisp/org/org-clock.el' --- lisp/org/org-clock.el 2014-01-01 07:43:34 +0000 +++ lisp/org/org-clock.el 2014-01-06 06:25:30 +0000 @@ -424,7 +424,7 @@ "Hook run when stopping the current clock.") (defvar org-clock-cancel-hook nil - "Hook run when cancelling the current clock.") + "Hook run when canceling the current clock.") (defvar org-clock-goto-hook nil "Hook run when selecting the currently clocked-in entry.") (defvar org-clock-has-been-used nil @@ -441,7 +441,7 @@ (defvar org-clock-start-time "") (defvar org-clock-leftover-time nil - "If non-nil, user cancelled a clock; this is when leftover time started.") + "If non-nil, user canceled a clock; this is when leftover time started.") (defvar org-clock-effort "" "Effort estimate of the currently clocking task.") === modified file 'lisp/ses.el' --- lisp/ses.el 2014-01-03 14:18:24 +0000 +++ lisp/ses.el 2014-01-06 06:25:30 +0000 @@ -3025,7 +3025,7 @@ (if rowbool (format "%d rows" needrows) "") (if (and rowbool colbool) " and " "") (if colbool (format "%d columns" needcols) ""))) - (error "Cancelled")) + (error "Canceled")) (when rowbool (let (ses--curcell) (save-excursion === modified file 'lisp/term/ns-win.el' --- lisp/term/ns-win.el 2014-01-01 07:43:34 +0000 +++ lisp/term/ns-win.el 2014-01-06 06:25:30 +0000 @@ -626,7 +626,7 @@ `(mouse-1 POSITION 1)))) (if (y-or-n-p (format "Print buffer %s? " (buffer-name))) (print-buffer) - (error "Cancelled"))) + (error "Canceled"))) (print-buffer))) ;;;; Font support. === modified file 'lisp/textmodes/table.el' --- lisp/textmodes/table.el 2014-01-01 07:43:34 +0000 +++ lisp/textmodes/table.el 2014-01-06 06:25:30 +0000 @@ -559,7 +559,7 @@ ;; Todo: (in the order of priority, some are just possibility) ;; ----- ;; -;; Fix compatibilities with other input method than quail +;; Fix incompatibilities with input methods other than quail ;; Resolve conflict with flyspell ;; Use mouse for resizing cells ;; A mechanism to link cells internally === modified file 'lisp/whitespace.el' --- lisp/whitespace.el 2014-01-01 07:43:34 +0000 +++ lisp/whitespace.el 2014-01-06 06:25:30 +0000 @@ -344,7 +344,7 @@ ;; Thanks to Andreas Roehler for ;; indicating defface byte-compilation warnings. ;; -;; Thanks to TimOCallaghan (EmacsWiki) for the idea about highlight +;; Thanks to Tim O'Callaghan (EmacsWiki) for the idea about highlight ;; "long" lines. See EightyColumnRule (EmacsWiki). ;; ;; Thanks to Yanghui Bian for indicating a new === modified file 'src/ChangeLog.12' --- src/ChangeLog.12 2014-01-01 07:43:34 +0000 +++ src/ChangeLog.12 2014-01-06 06:25:30 +0000 @@ -19902,7 +19902,7 @@ now, but we want to make other targets possible. * lisp.h: Include , for INTPTR_MAX, UINTPTR_MAX. (EMACS_INTPTR, EMACS_UINTPTR): New macros. - In the rest of the code, change types of integers that hold casted + In the rest of the code, change types of integers that hold casts of pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically replacing EMACS_INT, long, EMACS_UINT, and unsigned long. (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed. === modified file 'src/ftfont.c' --- src/ftfont.c 2014-01-01 07:43:34 +0000 +++ src/ftfont.c 2014-01-06 06:25:30 +0000 @@ -54,7 +54,7 @@ /* Cache for FT_Face and FcCharSet. */ static Lisp_Object ft_face_cache; -/* The actual structure for FreeType font that can be casted to struct +/* The actual structure for FreeType font that can be cast to struct font. */ struct ftfont_info === modified file 'src/macfont.m' --- src/macfont.m 2014-01-01 07:43:34 +0000 +++ src/macfont.m 2014-01-06 06:25:30 +0000 @@ -84,7 +84,7 @@ struct macfont_metrics; -/* The actual structure for Mac font that can be casted to struct font. */ +/* The actual structure for Mac font that can be cast to struct font. */ struct macfont_info { === modified file 'src/nsterm.m' --- src/nsterm.m 2014-01-05 02:56:08 +0000 +++ src/nsterm.m 2014-01-06 06:25:30 +0000 @@ -3506,7 +3506,7 @@ /* GNUStep and OSX <= 10.4 does not have cancelTracking. */ #if defined (NS_IMPL_COCOA) && \ MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 -/* Check if menu open should be cancelled or continued as normal. */ +/* Check if menu open should be canceled or continued as normal. */ void ns_check_menu_open (NSMenu *menu) { === modified file 'src/xftfont.c' --- src/xftfont.c 2014-01-01 07:43:34 +0000 +++ src/xftfont.c 2014-01-06 06:25:30 +0000 @@ -42,7 +42,7 @@ static Lisp_Object QChinting, QCautohint, QChintstyle, QCrgba, QCembolden, QClcdfilter; -/* The actual structure for Xft font that can be casted to struct +/* The actual structure for Xft font that can be cast to struct font. */ struct xftfont_info ------------------------------------------------------------ revno: 115884 committer: Paul Eggert branch nick: trunk timestamp: Sun 2014-01-05 21:25:46 -0800 message: Specify .texi encoding. * emacs-lisp-intro.texi: * back.texi, book-spine.texi, lay-flat.texi: * ada-mode.texi, auth.texi, autotype.texi, bovine.texi, calc.texi: * cc-mode.texi, cl.texi, dbus.texi, dired-x.texi, ebrowse.texi: * ede.texi, ediff.texi, edt.texi, efaq.texi, eieio.texi: * emacs-gnutls.texi, epa.texi, erc.texi, ert.texi: * eshell.texi, eudc.texi, flymake.texi, forms.texi, gnus-coding.texi: * gnus-faq.texi, htmlfontify.texi, idlwave.texi, ido.texi, info.texi: * message.texi, mh-e.texi, newsticker.texi, nxml-mode.texi: * octave-mode.texi, org.texi, pcl-cvs.texi, pgg.texi, rcirc.texi: * reftex.texi, remember.texi, sasl.texi, sc.texi, semantic.texi: * ses.texi, sieve.texi, smtpmail.texi, speedbar.texi, srecode.texi: * todo-mode.texi, tramp.texi, url.texi, vip.texi, viper.texi: * widget.texi, wisent.texi, woman.texi: Add @documentencoding. diff: === modified file 'doc/lispintro/ChangeLog' --- doc/lispintro/ChangeLog 2014-01-01 07:43:34 +0000 +++ doc/lispintro/ChangeLog 2014-01-06 05:25:46 +0000 @@ -1,3 +1,8 @@ +2013-12-30 Paul Eggert + + Specify .texi encoding (Bug#16292). + * emacs-lisp-intro.texi: Add @documentencoding. + 2013-12-30 Glenn Morris * emacs-lisp-intro.texi: Use @quotation for license notice. === modified file 'doc/lispintro/emacs-lisp-intro.texi' --- doc/lispintro/emacs-lisp-intro.texi 2014-01-01 08:31:29 +0000 +++ doc/lispintro/emacs-lisp-intro.texi 2014-01-06 05:25:46 +0000 @@ -4,6 +4,7 @@ @c setfilename emacs-lisp-intro.info @c sethtmlfilename emacs-lisp-intro.html @settitle Programming in Emacs Lisp +@documentencoding UTF-8 @syncodeindex vr cp @syncodeindex fn cp @finalout === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-01-05 23:36:13 +0000 +++ doc/lispref/ChangeLog 2014-01-06 05:25:46 +0000 @@ -1,3 +1,9 @@ +2014-01-06 Paul Eggert + + Specify .texi encoding (Bug#16292). + * back.texi, book-spine.texi, lay-flat.texi: + Add @documentencoding. + 2014-01-05 Chong Yidong * backups.texi (Making Backups): Document backup-buffer change. === modified file 'doc/lispref/back.texi' --- doc/lispref/back.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/back.texi 2014-01-06 05:25:46 +0000 @@ -6,6 +6,7 @@ @c %**start of header @setfilename back-cover @settitle GNU Emacs Lisp Reference Manual +@documentencoding UTF-8 @c %**end of header . @sp 7 === modified file 'doc/lispref/book-spine.texi' --- doc/lispref/book-spine.texi 2013-12-30 17:08:32 +0000 +++ doc/lispref/book-spine.texi 2014-01-06 05:25:46 +0000 @@ -2,6 +2,7 @@ @c %**start of header @setfilename book-spine @settitle book-spine +@documentencoding UTF-8 @c %**end of header @include emacsver.texi === modified file 'doc/lispref/lay-flat.texi' --- doc/lispref/lay-flat.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/lay-flat.texi 2014-01-06 05:25:46 +0000 @@ -7,6 +7,7 @@ @setfilename inner-covers.info @settitle Inner Covers @smallbook +@documentencoding UTF-8 @comment %**end of header @headings off === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-03 23:14:16 +0000 +++ doc/misc/ChangeLog 2014-01-06 05:25:46 +0000 @@ -1,3 +1,20 @@ +2014-01-05 Paul Eggert + + Specify .texi encoding (Bug#16292). + * ada-mode.texi, auth.texi, autotype.texi, bovine.texi, calc.texi: + * cc-mode.texi, cl.texi, dbus.texi, dired-x.texi, ebrowse.texi: + * ede.texi, ediff.texi, edt.texi, efaq.texi, eieio.texi: + * emacs-gnutls.texi, epa.texi, erc.texi, ert.texi: + * eshell.texi, eudc.texi, flymake.texi, forms.texi, gnus-coding.texi: + * gnus-faq.texi, htmlfontify.texi, idlwave.texi, ido.texi, info.texi: + * message.texi, mh-e.texi, newsticker.texi, nxml-mode.texi: + * octave-mode.texi, org.texi, pcl-cvs.texi, pgg.texi, rcirc.texi: + * reftex.texi, remember.texi, sasl.texi, sc.texi, semantic.texi: + * ses.texi, sieve.texi, smtpmail.texi, speedbar.texi, srecode.texi: + * todo-mode.texi, tramp.texi, url.texi, vip.texi, viper.texi: + * widget.texi, wisent.texi, woman.texi: + Add @documentencoding. + 2014-01-03 Aidan Gauland * eshell.texi (What Eshell is not): Clean up confusing clause. === modified file 'doc/misc/ada-mode.texi' --- doc/misc/ada-mode.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/ada-mode.texi 2014-01-06 05:25:46 +0000 @@ -1,6 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename ../../info/ada-mode @settitle Ada Mode +@documentencoding UTF-8 @copying Copyright @copyright{} 1999--2014 Free Software Foundation, Inc. === modified file 'doc/misc/auth.texi' --- doc/misc/auth.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/auth.texi 2014-01-06 05:25:46 +0000 @@ -6,6 +6,7 @@ @setfilename ../../info/auth @settitle Emacs auth-source Library @value{VERSION} +@documentencoding UTF-8 @copying This file describes the Emacs auth-source library. === modified file 'doc/misc/autotype.texi' --- doc/misc/autotype.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/autotype.texi 2014-01-06 05:25:46 +0000 @@ -5,6 +5,7 @@ @c @node Autotypist, Picture, Abbrevs, Top @c @chapter Features for Automatic Typing @settitle Features for Automatic Typing +@documentencoding UTF-8 @c @cindex text @c @cindex selfinserting text @c @cindex autotypist === modified file 'doc/misc/bovine.texi' --- doc/misc/bovine.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/bovine.texi 2014-01-06 05:25:46 +0000 @@ -4,6 +4,7 @@ @set TITLE Bovine parser development @set AUTHOR Eric M. Ludlam, David Ponce, and Richard Y. Kim @settitle @value{TITLE} +@documentencoding UTF-8 @c ************************************************************************* @c @ Header === modified file 'doc/misc/calc.texi' --- doc/misc/calc.texi 2014-01-03 02:53:29 +0000 +++ doc/misc/calc.texi 2014-01-06 05:25:46 +0000 @@ -4,6 +4,7 @@ @setfilename ../../info/calc @c [title] @settitle GNU Emacs Calc Manual +@documentencoding UTF-8 @setchapternewpage odd @comment %**end of header (This is for running Texinfo on a region.) === modified file 'doc/misc/cc-mode.texi' --- doc/misc/cc-mode.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/cc-mode.texi 2014-01-06 05:25:46 +0000 @@ -83,6 +83,7 @@ @setfilename ../../info/ccmode @settitle CC Mode Manual +@documentencoding UTF-8 @footnotestyle end @c The following four macros generate the filenames and titles of the === modified file 'doc/misc/cl.texi' --- doc/misc/cl.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/cl.texi 2014-01-06 05:25:46 +0000 @@ -1,6 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename ../../info/cl @settitle Common Lisp Extensions +@documentencoding UTF-8 @include emacsver.texi @copying === modified file 'doc/misc/dbus.texi' --- doc/misc/dbus.texi 2014-01-03 03:07:20 +0000 +++ doc/misc/dbus.texi 2014-01-06 05:25:46 +0000 @@ -2,6 +2,7 @@ @setfilename ../../info/dbus @c %**start of header @settitle Using of D-Bus +@documentencoding UTF-8 @c @setchapternewpage odd @c %**end of header === modified file 'doc/misc/dired-x.texi' --- doc/misc/dired-x.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/dired-x.texi 2014-01-06 05:25:46 +0000 @@ -9,6 +9,7 @@ @comment %**start of header (This is for running Texinfo on a region.) @setfilename ../../info/dired-x @settitle Dired Extra User's Manual +@documentencoding UTF-8 @include emacsver.texi === modified file 'doc/misc/ebrowse.texi' --- doc/misc/ebrowse.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/ebrowse.texi 2014-01-06 05:25:46 +0000 @@ -3,6 +3,7 @@ @comment %**start of header @setfilename ../../info/ebrowse @settitle A Class Browser for C++ +@documentencoding UTF-8 @setchapternewpage odd @syncodeindex fn cp @comment %**end of header === modified file 'doc/misc/ede.texi' --- doc/misc/ede.texi 2014-01-03 03:13:58 +0000 +++ doc/misc/ede.texi 2014-01-06 05:25:46 +0000 @@ -1,6 +1,7 @@ \input texinfo @setfilename ../../info/ede @settitle Emacs Development Environment +@documentencoding UTF-8 @copying This file describes EDE, the Emacs Development Environment. === modified file 'doc/misc/ediff.texi' --- doc/misc/ediff.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/ediff.texi 2014-01-06 05:25:46 +0000 @@ -10,6 +10,7 @@ @setfilename ../../info/ediff @settitle Ediff User's Manual +@documentencoding UTF-8 @synindex vr cp @synindex fn cp @synindex pg cp === modified file 'doc/misc/edt.texi' --- doc/misc/edt.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/edt.texi 2014-01-06 05:25:46 +0000 @@ -1,6 +1,7 @@ \input texinfo @setfilename ../../info/edt @settitle EDT Emulation for Emacs +@documentencoding UTF-8 @copying This file documents the EDT emulation package for Emacs. === modified file 'doc/misc/efaq.texi' --- doc/misc/efaq.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/efaq.texi 2014-01-06 05:25:46 +0000 @@ -2,6 +2,7 @@ @c %**start of header @setfilename ../../info/efaq @settitle GNU Emacs FAQ +@documentencoding UTF-8 @c %**end of header @include emacsver.texi === modified file 'doc/misc/eieio.texi' --- doc/misc/eieio.texi 2014-01-03 03:13:58 +0000 +++ doc/misc/eieio.texi 2014-01-06 05:25:46 +0000 @@ -3,6 +3,7 @@ @set TITLE Enhanced Implementation of Emacs Interpreted Objects @set AUTHOR Eric M. Ludlam @settitle @value{TITLE} +@documentencoding UTF-8 @c ************************************************************************* @c @ Header === modified file 'doc/misc/emacs-gnutls.texi' --- doc/misc/emacs-gnutls.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/emacs-gnutls.texi 2014-01-06 05:25:46 +0000 @@ -4,6 +4,7 @@ @setfilename ../../info/emacs-gnutls @settitle Emacs GnuTLS Integration @value{VERSION} +@documentencoding UTF-8 @copying This file describes the Emacs GnuTLS integration. === modified file 'doc/misc/epa.texi' --- doc/misc/epa.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/epa.texi 2014-01-06 05:25:46 +0000 @@ -2,6 +2,7 @@ @c %**start of header @setfilename ../../info/epa @settitle EasyPG Assistant User's Manual +@documentencoding UTF-8 @c %**end of header @set VERSION 1.0.0 === modified file 'doc/misc/erc.texi' --- doc/misc/erc.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/erc.texi 2014-01-06 05:25:46 +0000 @@ -4,6 +4,7 @@ @settitle ERC Manual @syncodeindex fn cp @include emacsver.texi +@documentencoding UTF-8 @c %**end of header @copying === modified file 'doc/misc/ert.texi' --- doc/misc/ert.texi 2014-01-03 03:00:39 +0000 +++ doc/misc/ert.texi 2014-01-06 05:25:46 +0000 @@ -2,6 +2,7 @@ @c %**start of header @setfilename ../../info/ert @settitle Emacs Lisp Regression Testing +@documentencoding UTF-8 @c %**end of header @dircategory Emacs misc features === modified file 'doc/misc/eshell.texi' --- doc/misc/eshell.texi 2014-01-05 02:56:08 +0000 +++ doc/misc/eshell.texi 2014-01-06 05:25:46 +0000 @@ -4,6 +4,7 @@ @settitle Eshell: The Emacs Shell @defindex cm @synindex vr fn +@documentencoding UTF-8 @c %**end of header @copying === modified file 'doc/misc/eudc.texi' --- doc/misc/eudc.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/eudc.texi 2014-01-06 05:25:46 +0000 @@ -3,6 +3,7 @@ @setfilename ../../info/eudc @settitle Emacs Unified Directory Client (EUDC) Manual @afourpaper +@documentencoding UTF-8 @c %**end of header @copying === modified file 'doc/misc/flymake.texi' --- doc/misc/flymake.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/flymake.texi 2014-01-06 05:25:46 +0000 @@ -5,6 +5,7 @@ @set UPDATED April 2004 @settitle GNU Flymake @value{VERSION} @syncodeindex pg cp +@documentencoding UTF-8 @comment %**end of header @copying === modified file 'doc/misc/forms.texi' --- doc/misc/forms.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/forms.texi 2014-01-06 05:25:46 +0000 @@ -14,6 +14,7 @@ @end iftex @c @smallbook @comment %**end of header (This is for running Texinfo on a region.) +@documentencoding UTF-8 @copying This file documents Forms mode, a form-editing major mode for GNU Emacs. === modified file 'doc/misc/gnus-coding.texi' --- doc/misc/gnus-coding.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/gnus-coding.texi 2014-01-06 05:25:46 +0000 @@ -2,6 +2,7 @@ @setfilename gnus-coding @settitle Gnus Coding Style and Maintenance Guide +@documentencoding UTF-8 @syncodeindex fn cp @syncodeindex vr cp @syncodeindex pg cp === modified file 'doc/misc/gnus-faq.texi' --- doc/misc/gnus-faq.texi 2014-01-01 07:43:34 +0000 +++ doc/misc/gnus-faq.texi 2014-01-06 05:25:46 +0000 @@ -5,6 +5,7 @@ @c @c @setfilename gnus-faq.info @c @settitle Frequently Asked Questions +@c @documentencoding UTF-8 @c %**end of header @c === modified file 'doc/misc/htmlfontify.texi' --- doc/misc/htmlfontify.texi 2014-01-05 02:56:08 +0000 +++ doc/misc/htmlfontify.texi 2014-01-06 05:25:46 +0000 @@ -3,6 +3,7 @@ @setfilename ../../info/htmlfontify @settitle Htmlfontify User Manual @exampleindent 2 +@documentencoding UTF-8 @comment %**end of header @copying === modified file 'doc/misc/idlwave.texi' --- doc/misc/idlwave.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/idlwave.texi 2014-01-06 05:25:46 +0000 @@ -12,6 +12,7 @@ @set DATE April, 2007 @set AUTHOR J.D. Smith & Carsten Dominik @set MAINTAINER J.D. Smith +@documentencoding UTF-8 @c %**end of header @finalout === modified file 'doc/misc/ido.texi' --- doc/misc/ido.texi 2014-01-01 23:13:59 +0000 +++ doc/misc/ido.texi 2014-01-06 05:25:46 +0000 @@ -1,6 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename ../../info/ido @settitle Interactive Do +@documentencoding UTF-8 @include emacsver.texi @copying === modified file 'doc/misc/info.texi' --- doc/misc/info.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/info.texi 2014-01-06 05:25:46 +0000 @@ -8,6 +8,7 @@ @syncodeindex fn cp @syncodeindex vr cp @syncodeindex ky cp +@documentencoding UTF-8 @comment %**end of header @copying === modified file 'doc/misc/message.texi' --- doc/misc/message.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/message.texi 2014-01-06 05:25:46 +0000 @@ -4,6 +4,7 @@ @setfilename ../../info/message @settitle Message Manual +@documentencoding UTF-8 @synindex fn cp @synindex vr cp @synindex pg cp === modified file 'doc/misc/mh-e.texi' --- doc/misc/mh-e.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/mh-e.texi 2014-01-06 05:25:46 +0000 @@ -5,6 +5,7 @@ @c %**start of header @setfilename ../../info/mh-e @settitle The MH-E Manual +@documentencoding UTF-8 @c %**end of header @c Version of the software and manual. === modified file 'doc/misc/newsticker.texi' --- doc/misc/newsticker.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/newsticker.texi 2014-01-06 05:25:46 +0000 @@ -7,6 +7,7 @@ @syncodeindex vr cp @syncodeindex fn cp @syncodeindex pg cp +@documentencoding UTF-8 @comment %**end of header @copying === modified file 'doc/misc/nxml-mode.texi' --- doc/misc/nxml-mode.texi 2014-01-03 03:07:20 +0000 +++ doc/misc/nxml-mode.texi 2014-01-06 05:25:46 +0000 @@ -2,6 +2,7 @@ @c %**start of header @setfilename ../../info/nxml-mode @settitle nXML Mode +@documentencoding UTF-8 @c %**end of header @copying === modified file 'doc/misc/octave-mode.texi' --- doc/misc/octave-mode.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/octave-mode.texi 2014-01-06 05:25:46 +0000 @@ -2,6 +2,7 @@ @c %**start of header @setfilename ../../info/octave-mode @settitle Octave Mode +@documentencoding UTF-8 @c %**end of header @copying === modified file 'doc/misc/org.texi' --- doc/misc/org.texi 2014-01-05 02:56:08 +0000 +++ doc/misc/org.texi 2014-01-06 05:25:46 +0000 @@ -15,6 +15,7 @@ @set MAINTAINER Carsten Dominik @set MAINTAINEREMAIL @email{carsten at orgmode dot org} @set MAINTAINERCONTACT @uref{mailto:carsten at orgmode dot org,contact the maintainer} +@documentencoding UTF-8 @c %**end of header @finalout === modified file 'doc/misc/pcl-cvs.texi' --- doc/misc/pcl-cvs.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/pcl-cvs.texi 2014-01-06 05:25:46 +0000 @@ -3,6 +3,7 @@ @setfilename ../../info/pcl-cvs @settitle PCL-CVS---Emacs Front-End to CVS @syncodeindex vr fn +@documentencoding UTF-8 @c %**end of header @copying === modified file 'doc/misc/pgg.texi' --- doc/misc/pgg.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/pgg.texi 2014-01-06 05:25:46 +0000 @@ -7,6 +7,8 @@ @set VERSION 0.1 @settitle PGG @value{VERSION} +@documentencoding UTF-8 + @copying This file describes PGG @value{VERSION}, an Emacs interface to various PGP implementations. === modified file 'doc/misc/rcirc.texi' --- doc/misc/rcirc.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/rcirc.texi 2014-01-06 05:25:46 +0000 @@ -2,6 +2,7 @@ @c %**start of header @setfilename ../../info/rcirc @settitle rcirc Manual +@documentencoding UTF-8 @c %**end of header @copying === modified file 'doc/misc/reftex.texi' --- doc/misc/reftex.texi 2014-01-03 03:15:01 +0000 +++ doc/misc/reftex.texi 2014-01-06 05:25:46 +0000 @@ -2,6 +2,7 @@ @c %**start of header @setfilename ../../info/reftex @settitle RefTeX User Manual +@documentencoding UTF-8 @synindex ky cp @syncodeindex vr cp @syncodeindex fn cp === modified file 'doc/misc/remember.texi' --- doc/misc/remember.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/remember.texi 2014-01-06 05:25:46 +0000 @@ -3,6 +3,7 @@ @setfilename ../../info/remember @settitle Remember Manual @syncodeindex fn cp +@documentencoding UTF-8 @c %**end of header @copying === modified file 'doc/misc/sasl.texi' --- doc/misc/sasl.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/sasl.texi 2014-01-06 05:25:46 +0000 @@ -7,6 +7,8 @@ @set VERSION 0.2 @settitle Emacs SASL Library @value{VERSION} +@documentencoding UTF-8 + @copying This file describes the Emacs SASL library, version @value{VERSION}. === modified file 'doc/misc/sc.texi' --- doc/misc/sc.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/sc.texi 2014-01-06 05:25:46 +0000 @@ -3,6 +3,7 @@ @comment %**start of header (This is for running Texinfo on a region.) @setfilename ../../info/sc @settitle Supercite User's Manual +@documentencoding UTF-8 @iftex @finalout @end iftex === modified file 'doc/misc/semantic.texi' --- doc/misc/semantic.texi 2014-01-03 03:13:58 +0000 +++ doc/misc/semantic.texi 2014-01-06 05:25:46 +0000 @@ -3,6 +3,7 @@ @set TITLE Semantic Manual @set AUTHOR Eric M. Ludlam, David Ponce, and Richard Y. Kim @settitle @value{TITLE} +@documentencoding UTF-8 @c ************************************************************************* @c @ Header === modified file 'doc/misc/ses.texi' --- doc/misc/ses.texi 2014-01-03 14:18:24 +0000 +++ doc/misc/ses.texi 2014-01-06 05:25:46 +0000 @@ -6,6 +6,7 @@ @syncodeindex fn cp @syncodeindex vr cp @syncodeindex ky cp +@documentencoding UTF-8 @c %**end of header @copying === modified file 'doc/misc/sieve.texi' --- doc/misc/sieve.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/sieve.texi 2014-01-06 05:25:46 +0000 @@ -4,6 +4,7 @@ @setfilename ../../info/sieve @settitle Emacs Sieve Manual +@documentencoding UTF-8 @synindex fn cp @synindex vr cp @synindex pg cp === modified file 'doc/misc/smtpmail.texi' --- doc/misc/smtpmail.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/smtpmail.texi 2014-01-06 05:25:46 +0000 @@ -1,6 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename ../../info/smtpmail @settitle Emacs SMTP Library +@documentencoding UTF-8 @syncodeindex vr fn @copying Copyright @copyright{} 2003--2014 Free Software Foundation, Inc. === modified file 'doc/misc/speedbar.texi' --- doc/misc/speedbar.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/speedbar.texi 2014-01-06 05:25:46 +0000 @@ -1,6 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename ../../info/speedbar @settitle Speedbar: File/Tag summarizing utility +@documentencoding UTF-8 @syncodeindex fn cp @copying === modified file 'doc/misc/srecode.texi' --- doc/misc/srecode.texi 2014-01-03 03:13:58 +0000 +++ doc/misc/srecode.texi 2014-01-06 05:25:46 +0000 @@ -4,6 +4,7 @@ @set TITLE SRecoder Manual @set AUTHOR Eric M. Ludlam @settitle @value{TITLE} +@documentencoding UTF-8 @c Merge all indexes into a single index for now. @c We can always separate them later into two or more as needed. === modified file 'doc/misc/todo-mode.texi' --- doc/misc/todo-mode.texi 2014-01-01 07:43:34 +0000 +++ doc/misc/todo-mode.texi 2014-01-06 05:25:46 +0000 @@ -5,6 +5,7 @@ @syncodeindex fn cp @syncodeindex vr cp @syncodeindex ky cp +@documentencoding UTF-8 @c %**end of header @copying === modified file 'doc/misc/tramp.texi' --- doc/misc/tramp.texi 2014-01-05 02:56:08 +0000 +++ doc/misc/tramp.texi 2014-01-06 05:25:46 +0000 @@ -2,6 +2,7 @@ @setfilename ../../info/tramp @c %**start of header @settitle TRAMP User Manual +@documentencoding UTF-8 @c %**end of header @c This is *so* much nicer :) === modified file 'doc/misc/url.texi' --- doc/misc/url.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/url.texi 2014-01-06 05:25:46 +0000 @@ -2,6 +2,8 @@ @setfilename ../../info/url @settitle URL Programmer's Manual +@documentencoding UTF-8 + @iftex @c @finalout @end iftex === modified file 'doc/misc/vip.texi' --- doc/misc/vip.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/vip.texi 2014-01-06 05:25:46 +0000 @@ -2,6 +2,8 @@ @setfilename ../../info/vip @settitle VIP +@documentencoding UTF-8 + @copying Copyright @copyright{} 1987, 2001--2014 Free Software Foundation, Inc. === modified file 'doc/misc/viper.texi' --- doc/misc/viper.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/viper.texi 2014-01-06 05:25:46 +0000 @@ -6,6 +6,8 @@ @comment @setfilename viper.info @setfilename ../../info/viper +@documentencoding UTF-8 + @copying Copyright @copyright{} 1995--1997, 2001--2014 Free Software Foundation, Inc. === modified file 'doc/misc/widget.texi' --- doc/misc/widget.texi 2014-01-03 03:07:20 +0000 +++ doc/misc/widget.texi 2014-01-06 05:25:46 +0000 @@ -5,6 +5,7 @@ @syncodeindex fn cp @syncodeindex vr cp @syncodeindex ky cp +@documentencoding UTF-8 @c %**end of header @copying === modified file 'doc/misc/wisent.texi' --- doc/misc/wisent.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/wisent.texi 2014-01-06 05:25:46 +0000 @@ -20,6 +20,7 @@ @c @footnotestyle separate @c @paragraphindent 2 @c @@smallbook +@documentencoding UTF-8 @c %**end of header @copying === modified file 'doc/misc/woman.texi' --- doc/misc/woman.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/woman.texi 2014-01-06 05:25:46 +0000 @@ -8,6 +8,7 @@ @c Look for @page and @need commands. @setchapternewpage off @paragraphindent 0 +@documentencoding UTF-8 @c %**end of header @copying ------------------------------------------------------------ revno: 115883 fixes bug: http://debbugs.gnu.org/16354 committer: Leo Liu branch nick: trunk timestamp: Mon 2014-01-06 13:04:57 +0800 message: * dired-x.el (dired-mode-map): Rebind dired-omit-mode to C-x M-o to avoid shadowning global key. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-06 03:58:59 +0000 +++ lisp/ChangeLog 2014-01-06 05:04:57 +0000 @@ -1,3 +1,8 @@ +2014-01-06 Leo Liu + + * dired-x.el (dired-mode-map): Rebind dired-omit-mode to C-x M-o + to avoid shadowning global key. (Bug#16354) + 2014-01-06 Daniel Colascione * textmodes/rst.el (rst-mode): Set electric-indent-inhibit for === modified file 'lisp/dired-x.el' --- lisp/dired-x.el 2014-01-01 07:43:34 +0000 +++ lisp/dired-x.el 2014-01-06 05:04:57 +0000 @@ -241,7 +241,7 @@ ;;; KEY BINDINGS. -(define-key dired-mode-map "\M-o" 'dired-omit-mode) +(define-key dired-mode-map "\C-c\M-o" 'dired-omit-mode) (define-key dired-mode-map "*O" 'dired-mark-omitted) (define-key dired-mode-map "\M-(" 'dired-mark-sexp) (define-key dired-mode-map "*(" 'dired-mark-sexp) ------------------------------------------------------------ revno: 115882 committer: Daniel Colascione branch nick: trunk timestamp: Sun 2014-01-05 19:58:59 -0800 message: rst-mode indentation is non-deterministic, so inhibit electric indentation diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-05 16:29:44 +0000 +++ lisp/ChangeLog 2014-01-06 03:58:59 +0000 @@ -1,3 +1,8 @@ +2014-01-06 Daniel Colascione + + * textmodes/rst.el (rst-mode): Set electric-indent-inhibit for + rst-mode. + 2014-01-05 Martin Rudalics * window.el (balance-windows): Add mising t to fix Bug#16351. === modified file 'lisp/textmodes/rst.el' --- lisp/textmodes/rst.el 2014-01-01 07:43:34 +0000 +++ lisp/textmodes/rst.el 2014-01-06 03:58:59 +0000 @@ -864,7 +864,10 @@ (add-hook 'font-lock-extend-region-functions 'rst-font-lock-extend-region t) ;; Text after a changed line may need new fontification. - (set (make-local-variable 'jit-lock-contextually) t)) + (set (make-local-variable 'jit-lock-contextually) t) + + ;; Indentation is not deterministic. + (setq electric-indent-inhibit t)) ;;;###autoload (define-minor-mode rst-minor-mode ------------------------------------------------------------ revno: 115881 committer: Katsumi Yamaoka branch nick: trunk timestamp: Sun 2014-01-05 23:38:42 +0000 message: Gnus: Silence the byte compiler diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2014-01-01 07:43:34 +0000 +++ lisp/gnus/ChangeLog 2014-01-05 23:38:42 +0000 @@ -1,3 +1,10 @@ +2014-01-05 Katsumi Yamaoka + + * gnus-sum.el (gnus-article-stop-animations): Declare it before using. + (nnimap-split-fancy, nnimap-split-methods): Declare. + + * mm-util.el (help-function-arglist): Declare. + 2013-12-28 Glenn Morris * gnus-sieve.el (gnus-sieve-select-method): === modified file 'lisp/gnus/gnus-sum.el' --- lisp/gnus/gnus-sum.el 2014-01-01 07:43:34 +0000 +++ lisp/gnus/gnus-sum.el 2014-01-05 23:38:42 +0000 @@ -7216,6 +7216,7 @@ (gnus-dribble-save))) (declare-function gnus-cache-write-active "gnus-cache" (&optional force)) +(declare-function gnus-article-stop-animations "gnus-art" ()) (defun gnus-summary-exit (&optional temporary leave-hidden) "Exit reading current newsgroup, and then return to group selection mode. @@ -7320,7 +7321,6 @@ (unless quit-config (setq gnus-newsgroup-name nil))))) -(declare-function gnus-article-stop-animations "gnus-art" ()) (declare-function gnus-stop-downloads "gnus-art" ()) (defalias 'gnus-summary-quit 'gnus-summary-exit-no-update) @@ -10659,6 +10659,9 @@ ;;; Respooling +(defvar nnimap-split-fancy) +(defvar nnimap-split-methods) + (defun gnus-summary-respool-query (&optional silent trace) "Query where the respool algorithm would put this article." (interactive) === modified file 'lisp/gnus/mm-util.el' --- lisp/gnus/mm-util.el 2014-01-01 07:43:34 +0000 +++ lisp/gnus/mm-util.el 2014-01-05 23:38:42 +0000 @@ -1378,6 +1378,8 @@ (write-region start end filename append visit lockname))) (autoload 'gmm-write-region "gmm-utils") +(declare-function help-function-arglist "help-fns" + (def &optional preserve-names)) ;; It is not a MIME function, but some MIME functions use it. (if (and (fboundp 'make-temp-file) ------------------------------------------------------------ revno: 115880 committer: Chong Yidong branch nick: trunk timestamp: Mon 2014-01-06 07:36:13 +0800 message: More doc updates. * backups.texi (Making Backups): Document backup-buffer change. * commands.texi (Defining Commands): Document the interactive-form property more carefully. Document interactive-only. * compile.texi (Compiler Errors): Copyedits. Note that the details for byte-compile-warnings are in its docstring. * customize.texi (Variable Definitions): Likewise. * files.texi (Visiting Files): Copyedits. (Testing Accessibility): Mention ACLs. Move file-modes here from File Attributes. (Truenames): Move file-equal-p here from Kinds of Files. (File Attributes): Move file-newer-than-file-p here from Testing Accessibility. (Extended Attributes): New node. Add file-extended-attributes. (Changing Files): Document set-file-extended-attributes. * minibuf.texi (Minibuffer Contents): Remove obsolete function minibuffer-completion-contents. * variables.texi (Defining Variables): Note that defvar acts always on the dynamic value. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-01-05 01:33:33 +0000 +++ doc/lispref/ChangeLog 2014-01-05 23:36:13 +0000 @@ -1,3 +1,30 @@ +2014-01-05 Chong Yidong + + * backups.texi (Making Backups): Document backup-buffer change. + + * files.texi (Visiting Files): Copyedits. + (Testing Accessibility): Mention ACLs. Move file-modes here from + File Attributes. + (Truenames): Move file-equal-p here from Kinds of Files. + (File Attributes): Move file-newer-than-file-p here from Testing + Accessibility. + (Extended Attributes): New node. Add file-extended-attributes. + (Changing Files): Document set-file-extended-attributes. + + * commands.texi (Defining Commands): Document the interactive-form + property more carefully. Document interactive-only. + + * compile.texi (Compiler Errors): Copyedits. Note that the + details for byte-compile-warnings are in its docstring. + + * minibuf.texi (Minibuffer Contents): Remove obsolete function + minibuffer-completion-contents. + + * variables.texi (Defining Variables): Note that defvar acts + always on the dynamic value. + + * customize.texi (Variable Definitions): Likewise. + 2014-01-05 Paul Eggert Document vconcat and the empty vector (Bug#16246). === modified file 'doc/lispref/backups.texi' --- doc/lispref/backups.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/backups.texi 2014-01-05 23:36:13 +0000 @@ -57,13 +57,15 @@ saving the buffer the first time. If a backup was made by renaming, the return value is a cons cell of -the form (@var{modes} @var{context} @var{backupname}), where +the form (@var{modes} @var{extra-alist} @var{backupname}), where @var{modes} are the mode bits of the original file, as returned by -@code{file-modes} (@pxref{File Attributes,, Other Information about -Files}), @var{context} is a list describing the original file's -SELinux context (@pxref{File Attributes}), and @var{backupname} is the -name of the backup. In all other cases, that is, if a backup was made -by copying or if no backup was made, this function returns @code{nil}. +@code{file-modes} (@pxref{Testing Accessibility}), @var{extra-alist} +is an alist describing the original file's extended attributes, as +returned by @code{file-extended-attributes} (@pxref{Extended +Attributes}), and @var{backupname} is the name of the backup. + +In all other cases (i.e., if a backup was made by copying or if no +backup was made), this function returns @code{nil}. @end defun @defvar buffer-backed-up === modified file 'doc/lispref/commands.texi' --- doc/lispref/commands.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/commands.texi 2014-01-05 23:36:13 +0000 @@ -108,13 +108,26 @@ The special form @code{interactive} turns a Lisp function into a command. The @code{interactive} form must be located at top-level in -the function body (usually as the first form in the body), or in the -@code{interactive-form} property of the function symbol. When the -@code{interactive} form is located in the function body, it does -nothing when actually executed. Its presence serves as a flag, which -tells the Emacs command loop that the function can be called -interactively. The argument of the @code{interactive} form controls -the reading of arguments for an interactive call. +the function body, usually as the first form in the body; this applies +to both lambda expressions (@pxref{Lambda Expressions}) and +@code{defun} forms (@pxref{Defining Functions}). This form does +nothing during the actual execution of the function; its presence +serves as a flag, telling the Emacs command loop that the function can +be called interactively. The argument of the @code{interactive} form +specifies how the arguments for an interactive call should be read. + +@cindex @code{interactive-form} property + Alternatively, an @code{interactive} form may be specified in a +function symbol's @code{interactive-form} property. A non-@code{nil} +value for this property takes precedence over any @code{interactive} +form in the function body itself. This feature is seldom used. + +@cindex @code{interactive-only} property + Sometimes, a named command is only intended to be called +interactively, never directly from Lisp. In that case, give it a +non-@code{nil} @code{interactive-only} property. In that case, the +byte compiler will print a warning message if the command is called +from Lisp. @menu * Using Interactive:: General rules for @code{interactive}. === modified file 'doc/lispref/compile.texi' --- doc/lispref/compile.texi 2014-01-03 05:49:06 +0000 +++ doc/lispref/compile.texi 2014-01-05 23:36:13 +0000 @@ -430,29 +430,35 @@ @section Compiler Errors @cindex compiler errors - Byte compilation outputs all errors and warnings into the buffer -@file{*Compile-Log*}. The messages include file names and line -numbers that identify the location of the problem. The usual Emacs -commands for operating on compiler diagnostics work properly on these + Error and warning messages from byte compilation are printed in a +buffer named @file{*Compile-Log*}. These messages include file names +and line numbers identifying the location of the problem. The usual +Emacs commands for operating on compiler output can be used on these messages. When an error is due to invalid syntax in the program, the byte compiler might get confused about the errors' exact location. One way -to investigate is to switch to the buffer @w{@file{ *Compiler Input*}}. -(This buffer name starts with a space, so it does not show up in -@kbd{M-x list-buffers}.) This buffer contains the program being +to investigate is to switch to the buffer @w{@file{ *Compiler +Input*}}. (This buffer name starts with a space, so it does not show +up in the Buffer Menu.) This buffer contains the program being compiled, and point shows how far the byte compiler was able to read; the cause of the error might be nearby. @xref{Syntax Errors}, for some tips for locating syntax errors. - When the byte compiler warns about functions that were used but not -defined, it always reports the line number for the end of the file, -not the locations where the missing functions were called. To find -the latter, you must search for the function names. - - You can suppress the compiler warning for calling an undefined -function @var{func} by conditionalizing the function call on an -@code{fboundp} test, like this: + A common type of warning issued by the byte compiler is for +functions and variables that were used but not defined. Such warnings +report the line number for the end of the file, not the locations +where the missing functions or variables were used; to find these, you +must search the file manually. + + If you are sure that a warning message about a missing function or +variable is unjustified, there are several ways to suppress it: + +@itemize @bullet +@item +You can suppress the warning for a specific call to a function +@var{func} by conditionalizing it on an @code{fboundp} test, like +this: @example (if (fboundp '@var{func}) ...(@var{func} ...)...) @@ -463,14 +469,10 @@ @code{if}, and @var{func} must appear quoted in the call to @code{fboundp}. (This feature operates for @code{cond} as well.) - You can tell the compiler that a function is defined using -@code{declare-function} (@pxref{Declaring Functions}). Likewise, you -can tell the compiler that a variable is defined using @code{defvar} -with no initial value. - - You can suppress the compiler warning for a specific use of an -undefined variable @var{variable} by conditionalizing its use on a -@code{boundp} test, like this: +@item +Likewise, you can suppress the warning for a specific use of a +variable @var{variable} by conditionalizing it on a @code{boundp} +test: @example (if (boundp '@var{variable}) ...@var{variable}...) @@ -481,7 +483,17 @@ @code{if}, and @var{variable} must appear quoted in the call to @code{boundp}. - You can suppress any and all compiler warnings within a certain +@item +You can tell the compiler that a function is defined using +@code{declare-function}. @xref{Declaring Functions}. + +@item +Likewise, you can tell the compiler that a variable is defined using +@code{defvar} with no initial value. (Note that this marks the +variable as special.) @xref{Defining Variables}. +@end itemize + + You can also suppress any and all compiler warnings within a certain expression using the construct @code{with-no-warnings}: @c This is implemented with a defun, but conceptually it is @@ -497,8 +509,9 @@ one you intend to suppress. @end defspec - More precise control of warnings is possible by setting the variable -@code{byte-compile-warnings}. + Byte compiler warnings can be controlled more precisely by setting +the variable @code{byte-compile-warnings}. See its documentation +string for details. @node Byte-Code Objects @section Byte-Code Function Objects === modified file 'doc/lispref/customize.texi' --- doc/lispref/customize.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/customize.texi 2014-01-05 23:36:13 +0000 @@ -287,13 +287,17 @@ The argument @var{standard} is an expression that specifies the standard value for @var{option}. Evaluating the @code{defcustom} form -evaluates @var{standard}, but does not necessarily install the -standard value. If @var{option} already has a default value, -@code{defcustom} does not change it. If the user has saved a -customization for @var{option}, @code{defcustom} installs the user's -customized value as @var{option}'s default value. If neither of those -cases applies, @code{defcustom} installs the result of evaluating -@var{standard} as the default value. +evaluates @var{standard}, but does not necessarily bind the option to +that value. If @var{option} already has a default value, it is left +unchanged. If the user has already saved a customization for +@var{option}, the user's customized value is installed as the default +value. Otherwise, the result of evaluating @var{standard} is +installed as the default value. + +Like @code{defvar}, this macro marks @code{option} as a special +variable, meaning that it should always be dynamically bound. If +@var{option} is already lexically bound, that lexical binding remains +in effect until the binding construct exits. @xref{Variable Scoping}. The expression @var{standard} can be evaluated at various other times, too---whenever the customization facility needs to know @var{option}'s === modified file 'doc/lispref/elisp.texi' --- doc/lispref/elisp.texi 2014-01-01 08:31:29 +0000 +++ doc/lispref/elisp.texi 2014-01-05 23:36:13 +0000 @@ -951,7 +951,8 @@ * Testing Accessibility:: Is a given file readable? Writable? * Kinds of Files:: Is it a directory? A symbolic link? * Truenames:: Eliminating symbolic links from a file name. -* File Attributes:: How large is it? Any other names? Etc. +* File Attributes:: File sizes, modification times, etc. +* Extended Attributes:: Extended file attributes for access control. * Locating Files:: How to find a file in standard places. File Names === modified file 'doc/lispref/files.texi' --- doc/lispref/files.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/files.texi 2014-01-05 23:36:13 +0000 @@ -7,21 +7,21 @@ @chapter Files This chapter describes the Emacs Lisp functions and variables to -find, create, view, save, and otherwise work with files and file +find, create, view, save, and otherwise work with files and directories. A few other file-related functions are described in @ref{Buffers}, and those related to backups and auto-saving are described in @ref{Backups and Auto-Saving}. Many of the file functions take one or more arguments that are file -names. A file name is actually a string. Most of these functions -expand file name arguments by calling @code{expand-file-name}, so that +names. A file name is a string. Most of these functions expand file +name arguments using the function @code{expand-file-name}, so that @file{~} is handled correctly, as are relative file names (including -@samp{../}). @xref{File Name Expansion}. +@file{../}). @xref{File Name Expansion}. In addition, certain @dfn{magic} file names are handled specially. For example, when a remote file name is specified, Emacs accesses the -file over the network via an appropriate protocol (@pxref{Remote -Files,, Remote Files, emacs, The GNU Emacs Manual}). This handling is +file over the network via an appropriate protocol. @xref{Remote +Files,, Remote Files, emacs, The GNU Emacs Manual}. This handling is done at a very low level, so you may assume that all the functions described in this chapter accept magic file names as file name arguments, except where noted. @xref{Magic File Names}, for details. @@ -58,22 +58,21 @@ file ``the visited file'' of the buffer. A file and a buffer are two different things. A file is information -recorded permanently in the computer (unless you delete it). A buffer, -on the other hand, is information inside of Emacs that will vanish at -the end of the editing session (or when you kill the buffer). Usually, -a buffer contains information that you have copied from a file; then we -say the buffer is visiting that file. The copy in the buffer is what -you modify with editing commands. Such changes to the buffer do not -change the file; therefore, to make the changes permanent, you must -@dfn{save} the buffer, which means copying the altered buffer contents -back into the file. +recorded permanently in the computer (unless you delete it). A +buffer, on the other hand, is information inside of Emacs that will +vanish at the end of the editing session (or when you kill the +buffer). When a buffer is visiting a file, it contains information +copied from the file. The copy in the buffer is what you modify with +editing commands. Changes to the buffer do not change the file; to +make the changes permanent, you must @dfn{save} the buffer, which +means copying the altered buffer contents back into the file. - In spite of the distinction between files and buffers, people often -refer to a file when they mean a buffer and vice-versa. Indeed, we say, -``I am editing a file'', rather than, ``I am editing a buffer that I -will soon save as a file of the same name''. Humans do not usually need -to make the distinction explicit. When dealing with a computer program, -however, it is good to keep the distinction in mind. + Despite the distinction between files and buffers, people often +refer to a file when they mean a buffer and vice-versa. Indeed, we +say, ``I am editing a file'', rather than, ``I am editing a buffer +that I will soon save as a file of the same name''. Humans do not +usually need to make the distinction explicit. When dealing with a +computer program, however, it is good to keep the distinction in mind. @menu * Visiting Functions:: The usual interface functions for visiting. @@ -507,9 +506,9 @@ @section Reading from Files @cindex reading from files - You can copy a file from the disk and insert it into a buffer -using the @code{insert-file-contents} function. Don't use the user-level -command @code{insert-file} in a Lisp program, as that sets the mark. + To copy the contents of a file into a buffer, use the function +@code{insert-file-contents}. (Don't use the command +@code{insert-file} in a Lisp program, as that sets the mark.) @defun insert-file-contents filename &optional visit beg end replace This function inserts the contents of file @var{filename} into the @@ -769,26 +768,24 @@ @section Information about Files @cindex file, information about - The functions described in this section all operate on strings that -designate file names. With a few exceptions, all the functions have -names that begin with the word @samp{file}. These functions all -return information about actual files or directories, so their -arguments must all exist as actual files or directories unless -otherwise noted. + This section describes the functions for retrieving various types of +information about files (or directories or symbolic links), such as +whether a file is readable or writable, and its size. These functions +all take arguments which are file names. Except where noted, these +arguments need to specify existing files, or an error is signaled. @cindex file names, trailing whitespace @cindex trailing blanks in file names -Be careful with file names that end in blanks: some filesystems -(notably, MS-Windows) will ignore trailing whitespace in file names, -and return information about the file after stripping those blanks -from the name, not about the file whose name you passed to the -functions described in this section. + Be careful with file names that end in spaces. On some filesystems +(notably, MS-Windows), trailing whitespace characters in file names +are silently and automatically ignored. @menu * Testing Accessibility:: Is a given file readable? Writable? * Kinds of Files:: Is it a directory? A symbolic link? * Truenames:: Eliminating symbolic links from a file name. -* File Attributes:: How large is it? Any other names? Etc. +* File Attributes:: File sizes, modification times, etc. +* Extended Attributes:: Extended file attributes for access control. * Locating Files:: How to find a file in standard places. @end menu @@ -797,10 +794,16 @@ @cindex accessibility of a file @cindex file accessibility - These functions test for permission to access a file in specific -ways. Unless explicitly stated otherwise, they recursively follow -symbolic links for their file name arguments, at all levels (at the -level of the file itself and at all levels of parent directories). + These functions test for permission to access a file for reading, +writing, or execution. Unless explicitly stated otherwise, they +recursively follow symbolic links for their file name arguments, at +all levels (at the level of the file itself and at all levels of +parent directories). + + On some operating systems, more complex sets of access permissions +can be specified, via mechanisms such as Access Control Lists (ACLs). +@xref{Extended Attributes}, for how to query and set those +permissions. @defun file-exists-p filename This function returns @code{t} if a file named @var{filename} appears @@ -810,9 +813,8 @@ containing directories, regardless of the permissions of the file itself.) -If the file does not exist, or if fascist access control policies -prevent you from finding the attributes of the file, this function -returns @code{nil}. +If the file does not exist, or if access control policies prevent you +from finding its attributes, this function returns @code{nil}. Directories are files, so @code{file-exists-p} returns @code{t} when given a directory name. However, symbolic links are treated @@ -823,24 +825,8 @@ @defun file-readable-p filename This function returns @code{t} if a file named @var{filename} exists and you can read it. It returns @code{nil} otherwise. - -@example -@group -(file-readable-p "files.texi") - @result{} t -@end group -@group -(file-exists-p "/usr/spool/mqueue") - @result{} t -@end group -@group -(file-readable-p "/usr/spool/mqueue") - @result{} nil -@end group -@end example @end defun -@c Emacs 19 feature @defun file-executable-p filename This function returns @code{t} if a file named @var{filename} exists and you can execute it. It returns @code{nil} otherwise. On Unix and @@ -856,27 +842,18 @@ but the specified directory does exist and you can write in that directory. -In the third example below, @file{foo} is not writable because the -parent directory does not exist, even though the user could create such -a directory. +In the example below, @file{foo} is not writable because the parent +directory does not exist, even though the user could create such a +directory. @example @group -(file-writable-p "~/foo") - @result{} t -@end group -@group -(file-writable-p "/foo") - @result{} nil -@end group -@group (file-writable-p "~/no-such-dir/foo") @result{} nil @end group @end example @end defun -@c Emacs 19 feature @defun file-accessible-directory-p dirname This function returns @code{t} if you have permission to open existing files in the directory whose name as a file is @var{dirname}; @@ -885,16 +862,13 @@ @file{/foo/}) or the file name of a file which is a directory (such as @file{/foo}, without the final slash). -Example: after the following, +For example, from the following we deduce that any attempt to read a +file in @file{/foo/} will give an error: @example (file-accessible-directory-p "/foo") @result{} nil @end example - -@noindent -we can deduce that any attempt to read a file in @file{/foo/} will -give an error. @end defun @defun access-file filename string @@ -917,39 +891,59 @@ follow symbolic links at all levels of parent directories. @end defun -@defun file-newer-than-file-p filename1 filename2 -@cindex file age -@cindex file modification time -This function returns @code{t} if the file @var{filename1} is -newer than file @var{filename2}. If @var{filename1} does not -exist, it returns @code{nil}. If @var{filename1} does exist, but -@var{filename2} does not, it returns @code{t}. - -In the following example, assume that the file @file{aug-19} was written -on the 19th, @file{aug-20} was written on the 20th, and the file -@file{no-file} doesn't exist at all. +@defun file-modes filename +@cindex mode bits +@cindex file permissions +@cindex permissions, file +@cindex file modes +This function returns the @dfn{mode bits} of @var{filename}---an +integer summarizing its read, write, and execution permissions. +Symbolic links in @var{filename} are recursively followed at all +levels. If the file does not exist, the return value is @code{nil}. + +@xref{File permissions,,, coreutils, The @sc{gnu} @code{Coreutils} +Manual}, for a description of mode bits. For example, if the +low-order bit is 1, the file is executable by all users; if the +second-lowest-order bit is 1, the file is writable by all users; etc. +The highest possible value is 4095 (7777 octal), meaning that everyone +has read, write, and execute permission, the @acronym{SUID} bit is set +for both others and group, and the sticky bit is set. + +@xref{Changing Files}, for the @code{set-file-modes} function, which +can be used to set these permissions. @example @group -(file-newer-than-file-p "aug-19" "aug-20") - @result{} nil -@end group -@group -(file-newer-than-file-p "aug-20" "aug-19") - @result{} t -@end group -@group -(file-newer-than-file-p "aug-19" "no-file") - @result{} t -@end group -@group -(file-newer-than-file-p "no-file" "aug-19") - @result{} nil +(file-modes "~/junk/diffs") + @result{} 492 ; @r{Decimal integer.} +@end group +@group +(format "%o" 492) + @result{} "754" ; @r{Convert to octal.} +@end group + +@group +(set-file-modes "~/junk/diffs" #o666) + @result{} nil +@end group + +@group +$ ls -l diffs +-rw-rw-rw- 1 lewis lewis 3063 Oct 30 16:00 diffs @end group @end example -You can use @code{file-attributes} to get a file's last modification -time as a list of four integers. @xref{File Attributes}. +@cindex MS-DOS and file modes +@cindex file modes and MS-DOS +@strong{MS-DOS note:} On MS-DOS, there is no such thing as an +``executable'' file mode bit. So @code{file-modes} considers a file +executable if its name ends in one of the standard executable +extensions, such as @file{.com}, @file{.bat}, @file{.exe}, and some +others. Files that begin with the Unix-standard @samp{#!} signature, +such as shell and Perl scripts, are also considered executable. +Directories are also reported as executable, for compatibility with +Unix. These conventions are also followed by @code{file-attributes} +(@pxref{File Attributes}). @end defun @node Kinds of Files @@ -987,8 +981,6 @@ @result{} "/pub/bin" @end group @end example - -@c !!! file-symlink-p: should show output of ls -l for comparison @end defun The next two functions recursively follow symbolic links at @@ -1029,21 +1021,6 @@ other I/O device). @end defun -@defun file-equal-p file1 file2 -This function returns @code{t} if the files @var{file1} and -@var{file2} name the same file. If @var{file1} or @var{file2} does -not exist, the return value is unspecified. -@end defun - -@defun file-in-directory-p file dir -This function returns @code{t} if @var{file} is a file in directory -@var{dir}, or in a subdirectory of @var{dir}. It also returns -@code{t} if @var{file} and @var{dir} are the same directory. It -compares the @code{file-truename} values of the two directories -(@pxref{Truenames}). If @var{dir} does not name an existing -directory, the return value is @code{nil}. -@end defun - @node Truenames @subsection Truenames @cindex truename (of file) @@ -1066,14 +1043,14 @@ substitute-in-file-name}. If you may need to follow symbolic links preceding @samp{..}@: -appearing as a name component, you should make sure to call -@code{file-truename} without prior direct or indirect calls to -@code{expand-file-name}, as otherwise the file name component -immediately preceding @samp{..} will be ``simplified away'' before -@code{file-truename} is called. To eliminate the need for a call to -@code{expand-file-name}, @code{file-truename} handles @samp{~} in the -same way that @code{expand-file-name} does. @xref{File Name -Expansion,, Functions that Expand Filenames}. +appearing as a name component, call @code{file-truename} without prior +direct or indirect calls to @code{expand-file-name}. Otherwise, the +file name component immediately preceding @samp{..} will be +``simplified away'' before @code{file-truename} is called. To +eliminate the need for a call to @code{expand-file-name}, +@code{file-truename} handles @samp{~} in the same way that +@code{expand-file-name} does. @xref{File Name Expansion,, Functions +that Expand Filenames}. @end defun @defun file-chase-links filename &optional limit @@ -1102,70 +1079,61 @@ @result{} "/home/foo/hello" @end example - @xref{Buffer File Name}, for related information. +@defun file-equal-p file1 file2 +This function returns @code{t} if the files @var{file1} and +@var{file2} name the same file. This is similar to comparing their +truenames, except that remote file names are also handled in an +appropriate manner. If @var{file1} or @var{file2} does not exist, the +return value is unspecified. +@end defun + +@defun file-in-directory-p file dir +This function returns @code{t} if @var{file} is a file in directory +@var{dir}, or in a subdirectory of @var{dir}. It also returns +@code{t} if @var{file} and @var{dir} are the same directory. It +compares the truenames of the two directories. If @var{dir} does not +name an existing directory, the return value is @code{nil}. +@end defun @node File Attributes -@subsection Other Information about Files +@subsection File Attributes +@cindex file attributes This section describes the functions for getting detailed -information about a file, other than its contents. This information -includes the mode bits that control access permissions, the owner and -group numbers, the number of names, the inode number, the size, and -the times of access and modification. - -@defun file-modes filename -@cindex file permissions -@cindex permissions, file -@cindex file attributes -@cindex file modes -This function returns the @dfn{mode bits} describing the @dfn{file -permissions} of @var{filename}, as an integer. It recursively follows -symbolic links in @var{filename} at all levels. If @var{filename} -does not exist, the return value is @code{nil}. - -@xref{File permissions,,, coreutils, The @sc{gnu} @code{Coreutils} -Manual}, for a description of mode bits. If the low-order bit is 1, -then the file is executable by all users, if the second-lowest-order -bit is 1, then the file is writable by all users, etc. The highest -value returnable is 4095 (7777 octal), meaning that everyone has read, -write, and execute permission, that the @acronym{SUID} bit is set for -both others and group, and that the sticky bit is set. +information about a file, including the owner and group numbers, the +number of names, the inode number, the size, and the times of access +and modification. + +@defun file-newer-than-file-p filename1 filename2 +@cindex file age +@cindex file modification time +This function returns @code{t} if the file @var{filename1} is +newer than file @var{filename2}. If @var{filename1} does not +exist, it returns @code{nil}. If @var{filename1} does exist, but +@var{filename2} does not, it returns @code{t}. + +In the following example, assume that the file @file{aug-19} was written +on the 19th, @file{aug-20} was written on the 20th, and the file +@file{no-file} doesn't exist at all. @example @group -(file-modes "~/junk/diffs") - @result{} 492 ; @r{Decimal integer.} -@end group -@group -(format "%o" 492) - @result{} "754" ; @r{Convert to octal.} -@end group - -@group -(set-file-modes "~/junk/diffs" #o666) - @result{} nil -@end group - -@group -$ ls -l diffs --rw-rw-rw- 1 lewis lewis 3063 Oct 30 16:00 diffs +(file-newer-than-file-p "aug-19" "aug-20") + @result{} nil +@end group +@group +(file-newer-than-file-p "aug-20" "aug-19") + @result{} t +@end group +@group +(file-newer-than-file-p "aug-19" "no-file") + @result{} t +@end group +@group +(file-newer-than-file-p "no-file" "aug-19") + @result{} nil @end group @end example - -@xref{Changing Files}, for functions that change file permissions, -such as @code{set-file-modes}. - -@cindex MS-DOS and file modes -@cindex file modes and MS-DOS -@strong{MS-DOS note:} On MS-DOS, there is no such thing as an -``executable'' file mode bit. So @code{file-modes} considers a file -executable if its name ends in one of the standard executable -extensions, such as @file{.com}, @file{.bat}, @file{.exe}, and some -others. Files that begin with the Unix-standard @samp{#!} signature, -such as shell and Perl scripts, are also considered executable. -Directories are also reported as executable, for compatibility with -Unix. These conventions are also followed by @code{file-attributes}, -below. @end defun If the @var{filename} argument to the next two functions is a @@ -1173,31 +1141,6 @@ target. However, they both recursively follow symbolic links at all levels of parent directories. -@defun file-nlinks filename -This function returns the number of names (i.e., hard links) that -file @var{filename} has. If the file does not exist, this function -returns @code{nil}. Note that symbolic links have no effect on this -function, because they are not considered to be names of the files -they link to. - -@example -@group -$ ls -l foo* --rw-rw-rw- 2 rms rms 4 Aug 19 01:27 foo --rw-rw-rw- 2 rms rms 4 Aug 19 01:27 foo1 -@end group - -@group -(file-nlinks "foo") - @result{} 2 -@end group -@group -(file-nlinks "doesnt-exist") - @result{} nil -@end group -@end example -@end defun - @defun file-attributes filename &optional id-format @anchor{Definition of file-attributes} This function returns a list of attributes of file @var{filename}. If @@ -1339,52 +1282,99 @@ @end table @end defun -@cindex SELinux context - SELinux is a Linux kernel feature which provides more sophisticated -file access controls than ordinary ``Unix-style'' file permissions. -If Emacs has been compiled with SELinux support on a system with -SELinux enabled, you can use the function @code{file-selinux-context} -to retrieve a file's SELinux security context. For the function -@code{set-file-selinux-context}, see @ref{Changing Files}. - -@defun file-selinux-context filename -This function returns the SELinux security context of the file -@var{filename}. This return value is a list of the form -@code{(@var{user} @var{role} @var{type} @var{range})}, whose elements -are the context's user, role, type, and range respectively, as Lisp -strings. See the SELinux documentation for details about what these -actually mean. - -If the file does not exist or is inaccessible, or if the system does -not support SELinux, or if Emacs was not compiled with SELinux -support, then the return value is @code{(nil nil nil nil)}. +@defun file-nlinks filename +This function returns the number of names (i.e., hard links) that +file @var{filename} has. If the file does not exist, this function +returns @code{nil}. Note that symbolic links have no effect on this +function, because they are not considered to be names of the files +they link to. + +@example +@group +$ ls -l foo* +-rw-rw-rw- 2 rms rms 4 Aug 19 01:27 foo +-rw-rw-rw- 2 rms rms 4 Aug 19 01:27 foo1 +@end group + +@group +(file-nlinks "foo") + @result{} 2 +@end group +@group +(file-nlinks "doesnt-exist") + @result{} nil +@end group +@end example @end defun +@node Extended Attributes +@subsection Extended File Attributes +@cindex extended file attributes + +On some operating systems, each file can be associated with arbitrary +@dfn{extended file attributes}. At present, Emacs supports querying +and setting two specific sets of extended file attributes: Access +Control Lists (ACLs) and SELinux contexts. These extended file +attributes are used, on some systems, to impose more sophisticated +file access controls than the basic ``Unix-style'' permissions +discussed in the previous sections. + @cindex access control list @cindex ACL entries - If Emacs has been compiled with @dfn{ACL} (access control list) -support, you can use the function @code{file-acl} to retrieve a file's -ACL entries. The interface implementation is platform-specific; on -GNU/Linux and BSD, Emacs uses the POSIX ACL interface, while on -MS-Windows Emacs emulates the POSIX ACL interface with native file -security APIs. +@cindex SELinux context + A detailed explanation of ACLs and SELinux is beyond the scope of +this manual. For our purposes, each file can be associated with an +@dfn{ACL}, which specifies its properties under an ACL-based file +control system, and/or an @dfn{SELinux context}, which specifies its +properties under the SELinux system. @defun file-acl filename -This function returns the ACL entries of the file @var{filename}. The -return value is a platform-dependent object containing some -representation of the ACL entries. Don't use it for anything except -passing it to the @code{set-file-acl} function (@pxref{Changing Files, -set-file-acl}). - -If the file does not exist or is inaccessible, or if Emacs was unable to -determine the ACL entries, then the return value is @code{nil}. The -latter can happen for local files if Emacs was not compiled with ACL -support, or for remote files if the file handler returns nil for the -file's ACL entries. +This function returns the ACL for the file @var{filename}. The exact +Lisp representation of the ACL is unspecified (and may change in +future Emacs versions), but it is the same as what @code{set-file-acl} +takes for its @var{acl} argument (@pxref{Changing Files}). + +The underlying ACL implementation is platform-specific; on GNU/Linux +and BSD, Emacs uses the POSIX ACL interface, while on MS-Windows Emacs +emulates the POSIX ACL interface with native file security APIs. + +If Emacs was not compiled with ACL support, or the file does not exist +or is inaccessible, or Emacs was unable to determine the ACL entries +for any other reason, then the return value is @code{nil}. +@end defun + +@defun file-selinux-context filename +This function returns the SELinux context of the file @var{filename}, +as a list of the form @code{(@var{user} @var{role} @var{type} +@var{range})}. The list elements are the context's user, role, type, +and range respectively, as Lisp strings; see the SELinux documentation +for details about what these actually mean. The return value has the +same form as what @code{set-file-selinux-context} takes for its +@var{context} argument (@pxref{Changing Files}). + +If Emacs was not compiled with SELinux support, or the file does not +exist or is inaccessible, or if the system does not support SELinux, +then the return value is @code{(nil nil nil nil)}. +@end defun + +@defun file-extended-attributes filename +This function returns an alist of the Emacs-recognized extended +attributes of file @var{filename}. Currently, it serves as a +convenient way to retrieve both the ACL and SELinux context; you can +then call the function @code{set-file-extended-attributes}, with the +returned alist as its second argument, to apply the same file access +attributes to another file (@pxref{Changing Files}). + +One of the elements is @code{(acl . @var{acl})}, where @var{acl} has +the same form returned by @code{file-acl}. + +Another element is @code{(selinux-context . @var{context})}, where +@var{context} is the SELinux context, in the same form returned by +@code{file-selinux-context}. @end defun @node Locating Files -@subsection How to Locate Files in Standard Places +@subsection Locating Files in Standard Places @cindex locate file in path @cindex find file in path @@ -1571,10 +1561,11 @@ the correct permissions to do so. If the optional argument @var{preserve-permissions} is non-@code{nil}, -this function copies the file's permissions, such as its file modes, -its SELinux context, and ACL entries (@pxref{File Attributes}). -Otherwise, if the destination is created its file permission bits are -those of the source, masked by the default file permissions. +this function copies the file modes (or ``permissions''), as well as +its Access Control List and SELinux context (if any). +@xref{Information about Files}. Otherwise, if the destination is +created its file permission bits are those of the source, masked by +the default file permissions. @end deffn @deffn Command make-symbolic-link filename newname &optional ok-if-exists @@ -1616,7 +1607,7 @@ @cindex permissions, file @cindex file modes, setting @deffn Command set-file-modes filename mode -This function sets the @dfn{file mode} (or @dfn{file permissions}) of +This function sets the @dfn{file mode} (or @dfn{permissions}) of @var{filename} to @var{mode}. It recursively follows symbolic links at all levels for @var{filename}. @@ -1705,25 +1696,31 @@ (@pxref{Time of Day}). @end defun +@defun set-file-extended-attributes filename attribute-alist +This function sets the Emacs-recognized extended file attributes for +@code{filename}. The second argument @var{attribute-alist} should be +an alist of the same form returned by @code{file-extended-attributes}. +@xref{Extended Attributes}. +@end defun + @defun set-file-selinux-context filename context -This function sets the SELinux security context of the file -@var{filename} to @var{context}. @xref{File Attributes}, for a brief -description of SELinux contexts. The @var{context} argument should be -a list @code{(@var{user} @var{role} @var{type} @var{range})}, like the -return value of @code{file-selinux-context}. The function returns -@code{t} if it succeeds to set the SELinux security context of -@var{filename}, @code{nil} otherwise. The function does nothing and -returns @code{nil} if SELinux is disabled, or if Emacs was compiled -without SELinux support. +This function sets the SELinux security context for @var{filename} to +@var{context}. The @var{context} argument should be a list +@code{(@var{user} @var{role} @var{type} @var{range})}, where each +element is a string. @xref{Extended Attributes}. + +The function returns @code{t} if it succeeds in setting the SELinux +context of @var{filename}. It returns @code{nil} if the context was +not set (e.g., if SELinux is disabled, or if Emacs was compiled +without SELinux support). @end defun -@defun set-file-acl filename acl-string -This function sets the ACL entries of the file @var{filename} to -@var{acl-string}. @xref{File Attributes}, for a brief description of -ACLs. The @var{acl-string} argument should be a string containing the -textual representation of the desired ACL entries as returned by -@code{file-acl} (@pxref{File Attributes, file-acl}). The function -returns @code{t} if it succeeds to set the ACL entries of +@defun set-file-acl filename acl +This function sets the Access Control List for @var{filename} to +@var{acl}. The @var{acl} argument should have the same form returned +by the function @code{file-acl}. @xref{Extended Attributes}. + +The function returns @code{t} if it successfully sets the ACL of @var{filename}, @code{nil} otherwise. @end defun === modified file 'doc/lispref/minibuf.texi' --- doc/lispref/minibuf.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/minibuf.texi 2014-01-05 23:36:13 +0000 @@ -2224,12 +2224,6 @@ properties, just the characters themselves. @xref{Text Properties}. @end defun -@defun minibuffer-completion-contents -This is like @code{minibuffer-contents}, except that it returns only -the contents before point. That is the part that completion commands -operate on. @xref{Minibuffer Completion}. -@end defun - @defun delete-minibuffer-contents This function erases the editable contents of the minibuffer (that is, everything except the prompt), if a minibuffer is current. Otherwise, === modified file 'doc/lispref/variables.texi' --- doc/lispref/variables.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/variables.texi 2014-01-05 23:36:13 +0000 @@ -416,18 +416,23 @@ @dfn{special}, meaning that it should always be dynamically bound (@pxref{Variable Scoping}). -If @var{symbol} is void and @var{value} is specified, @code{defvar} -evaluates @var{value} and sets @var{symbol} to the result. But if -@var{symbol} already has a value (i.e., it is not void), @var{value} -is not even evaluated, and @var{symbol}'s value remains unchanged. If -@var{value} is omitted, the value of @var{symbol} is not changed in -any case. +If @var{value} is specified, and @var{symbol} is void (i.e., it has no +dynamically bound value; @pxref{Void Variables}), then @var{value} is +evaluated and @var{symbol} is set to the result. But if @var{symbol} +is not void, @var{value} is not evaluated, and @var{symbol}'s value is +left unchanged. If @var{value} is omitted, the value of @var{symbol} +is not changed in any case. If @var{symbol} has a buffer-local binding in the current buffer, -@code{defvar} operates on the default value, which is buffer-independent, -not the current (buffer-local) binding. It sets the default value if +@code{defvar} acts on the default value, which is buffer-independent, +rather than the buffer-local binding. It sets the default value if the default value is void. @xref{Buffer-Local Variables}. +If @var{symbol} is already lexically bound (e.g., if the @code{defvar} +form occurs in a @code{let} form with lexical binding enabled), then +@code{defvar} sets the dynamic value. The lexical binding remains in +effect until its binding construct exits. @xref{Variable Scoping}. + When you evaluate a top-level @code{defvar} form with @kbd{C-M-x} in Emacs Lisp mode (@code{eval-defun}), a special feature of @code{eval-defun} arranges to set the variable unconditionally, without === modified file 'etc/NEWS' --- etc/NEWS 2014-01-05 06:10:52 +0000 +++ etc/NEWS 2014-01-05 23:36:13 +0000 @@ -904,6 +904,7 @@ ** `(input-pending-p)' no longer runs other timers which are ready to run. The new optional CHECK-TIMERS param allows for the prior behavior. ++++ ** `defvar' and `defcustom' in a let-binding affect the "external" default. --- @@ -958,6 +959,7 @@ when lexical binding is enabled. Previously, VAR was bound to nil, which often led to spurious unused-variable warnings. ++++ ** The return value of `backup-buffer' has changed. The second argument is no longer an SELinux context, instead it is an alist of extended attributes as returned by the new function @@ -1083,6 +1085,7 @@ *** `string-remove-prefix' *** `string-remove-suffix' ++++ ** Obsoleted functions: *** `log10' *** `dont-compile' @@ -1100,8 +1103,10 @@ *** `completion-in-region-function' obsoletes `completion-in-region-functions'. *** `filter-buffer-substring-function' obsoletes `filter-buffer-substring-functions'. ++++ ** `byte-compile-interactive-only-functions' is now obsolete. -It has been replaced by the symbol property 'interactive-only. +To specify that a command should only be called interactively, give it +a non-nil `interactive-only' property. +++ ** `split-string' now takes an optional argument TRIM. ------------------------------------------------------------ revno: 115879 committer: Tassilo Horn branch nick: trunk timestamp: Sun 2014-01-05 21:17:13 +0100 message: Define org-level-* faces in tsdh-light theme. * etc/themes/tsdh-light-theme.el (tsdh-light): Define org-level-* faces. diff: === modified file 'etc/ChangeLog' --- etc/ChangeLog 2014-01-01 07:43:34 +0000 +++ etc/ChangeLog 2014-01-05 20:17:13 +0000 @@ -1,3 +1,8 @@ +2014-01-05 Tassilo Horn + + * themes/tsdh-light-theme.el (tsdh-light): Define org-level-* + faces. + 2013-12-29 Paul Eggert Plain copy-file no longer chmods an existing destination (Bug#16133). === modified file 'etc/themes/tsdh-light-theme.el' --- etc/themes/tsdh-light-theme.el 2014-01-01 07:43:34 +0000 +++ etc/themes/tsdh-light-theme.el 2014-01-05 20:17:13 +0000 @@ -38,13 +38,21 @@ '(header-line ((t (:inherit mode-line :inverse-video t)))) '(hl-line ((t (:background "grey95")))) '(minibuffer-prompt ((t (:background "yellow" :foreground "medium blue" :box (:line-width -1 :color "red" :style released-button) :weight bold)))) - '(mode-line ((t (:box (:line-width -1 :color "red" :style released-button) :family "DejaVu Sans")))) - '(mode-line-inactive ((t (:inherit mode-line :foreground "dim gray")))) + '(mode-line ((t (:background "wheat" :foreground "black" :box (:line-width 1 :color "tan") :family "DejaVu Sans")))) + '(mode-line-inactive ((t (:inherit mode-line :foreground "dark gray")))) '(org-agenda-date ((t (:inherit org-agenda-structure)))) '(org-agenda-date-today ((t (:inherit org-agenda-date :underline t)))) '(org-agenda-date-weekend ((t (:inherit org-agenda-date :foreground "dark green")))) '(org-agenda-structure ((t (:foreground "Blue1" :weight bold :height 1.1 :family "DeJaVu Sans")))) '(org-hide ((t (:foreground "white")))) + '(org-level-1 ((t (:inherit outline-1 :box nil)))) + '(org-level-2 ((t (:inherit outline-2 :box nil)))) + '(org-level-3 ((t (:inherit outline-3 :box nil)))) + '(org-level-4 ((t (:inherit outline-4 :box nil)))) + '(org-level-5 ((t (:inherit outline-5 :box nil)))) + '(org-level-6 ((t (:inherit outline-6 :box nil)))) + '(org-level-7 ((t (:inherit outline-7 :box nil)))) + '(org-level-8 ((t (:inherit outline-8 :box nil)))) '(org-tag ((t (:weight bold)))) '(outline-1 ((t (:inherit font-lock-function-name-face :weight bold)))) '(outline-2 ((t (:inherit font-lock-variable-name-face :weight bold)))) ------------------------------------------------------------ revno: 115878 committer: martin rudalics branch nick: trunk timestamp: Sun 2014-01-05 17:29:44 +0100 message: In balance-windows add mising t to fix Bug#16351. * window.el (balance-windows): Add mising t to fix Bug#16351. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-05 10:23:35 +0000 +++ lisp/ChangeLog 2014-01-05 16:29:44 +0000 @@ -1,3 +1,7 @@ +2014-01-05 Martin Rudalics + + * window.el (balance-windows): Add mising t to fix Bug#16351. + 2014-01-05 Lars Magne Ingebrigtsen * net/shr.el (shr-descend): Don't bug out if the anchor is empty === modified file 'lisp/window.el' --- lisp/window.el 2014-01-01 07:43:34 +0000 +++ lisp/window.el 2014-01-05 16:29:44 +0000 @@ -4608,7 +4608,7 @@ (window--resize-reset (window-frame window) t) (balance-windows-1 window t) (when (window--resize-apply-p frame t) - (window-resize-apply frame) + (window-resize-apply frame t) (window--pixel-to-total frame t) (run-window-configuration-change-hook frame)))) ------------------------------------------------------------ revno: 115877 committer: Lars Magne Ingebrigtsen branch nick: trunk timestamp: Sun 2014-01-05 11:23:35 +0100 message: Make shr do line filling better when encountering very long words (shr-insert): If we have a word that's longer than `shr-width', break after it anyway. Otherwise we'll do no breaking once we get such a long word. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-05 09:45:45 +0000 +++ lisp/ChangeLog 2014-01-05 10:23:35 +0000 @@ -2,6 +2,9 @@ * net/shr.el (shr-descend): Don't bug out if the anchor is empty (bug#16285). + (shr-insert): If we have a word that's longer than `shr-width', + break after it anyway. Otherwise we'll do no breaking once we get + such a long word. 2014-01-05 Kenjiro NAKAYAMA === modified file 'lisp/net/shr.el' --- lisp/net/shr.el 2014-01-05 09:45:45 +0000 +++ lisp/net/shr.el 2014-01-05 10:23:35 +0000 @@ -475,7 +475,13 @@ (when (> shr-indentation 0) (shr-indent)) (end-of-line)) - (insert " "))) + (if (<= (current-column) shr-width) + (insert " ") + ;; In case we couldn't get a valid break point (because of a + ;; word that's longer than `shr-width'), just break anyway. + (insert "\n") + (when (> shr-indentation 0) + (shr-indent))))) (unless (string-match "[ \t\r\n ]\\'" text) (delete-char -1))))) ------------------------------------------------------------ revno: 115876 fixes bug: http://debbugs.gnu.org/16285 committer: Lars Magne Ingebrigtsen branch nick: trunk timestamp: Sun 2014-01-05 10:45:45 +0100 message: * net/shr.el (shr-descend): Don't bug out if the anchor is empty. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-05 09:27:26 +0000 +++ lisp/ChangeLog 2014-01-05 09:45:45 +0000 @@ -1,3 +1,8 @@ +2014-01-05 Lars Magne Ingebrigtsen + + * net/shr.el (shr-descend): Don't bug out if the anchor is empty + (bug#16285). + 2014-01-05 Kenjiro NAKAYAMA * net/eww.el (eww): Support single/double quote for search. === modified file 'lisp/net/shr.el' --- lisp/net/shr.el 2014-01-01 07:43:34 +0000 +++ lisp/net/shr.el 2014-01-05 09:45:45 +0000 @@ -380,6 +380,10 @@ (shr-generic (cdr dom))) (when (and shr-target-id (equal (cdr (assq :id (cdr dom))) shr-target-id)) + ;; If the element was empty, we don't have anything to put the + ;; anchor on. So just insert a dummy character. + (when (= start (point)) + (insert "*")) (put-text-property start (1+ start) 'shr-target-id shr-target-id)) ;; If style is set, then this node has set the color. (when style ------------------------------------------------------------ revno: 115875 author: Kenjiro NAKAYAMA committer: Lars Magne Ingebrigtsen branch nick: trunk timestamp: Sun 2014-01-05 10:27:26 +0100 message: Make the eww history browsing work again * net/eww.el (eww-list-histories,eww-history-browse): Fixup. (eww-history-quit): Delete and use quit-window. (eww-history-kill): Delete, because it doesn't work well and not necessary. (eww-history-mode-map): Delete some keys and add easy-menu. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-05 09:25:05 +0000 +++ lisp/ChangeLog 2014-01-05 09:27:26 +0000 @@ -1,6 +1,11 @@ 2014-01-05 Kenjiro NAKAYAMA - * net/eww.el (eww): Support single/double quote for search. + * net/eww.el (eww): Support single/double quote for search. + * net/eww.el (eww-list-histories,eww-history-browse): Fixup. + (eww-history-quit): Delete and use quit-window. + (eww-history-kill): Delete, because it doesn't work well and + not necessary. + (eww-history-mode-map): Delete some keys and add easy-menu. 2014-01-05 Paul Eggert === modified file 'lisp/net/eww.el' --- lisp/net/eww.el 2014-01-05 09:25:05 +0000 +++ lisp/net/eww.el 2014-01-05 09:27:26 +0000 @@ -1283,32 +1283,30 @@ (interactive) (when (null eww-history) (error "No eww-histories are defined")) - (set-buffer (get-buffer-create "*eww history*")) - (eww-history-mode) - (let ((inhibit-read-only t) - (domain-length 0) - (title-length 0) - url title format start) - (erase-buffer) - (dolist (history eww-history) - (setq start (point)) - (setq domain-length (max domain-length (length (plist-get history :url)))) - (setq title-length (max title-length (length (plist-get history :title)))) - ) - (setq format (format "%%-%ds %%-%ds" title-length domain-length) - header-line-format - (concat " " (format format "Title" "URL"))) - - (dolist (history eww-history) - (setq url (plist-get history :url)) - (setq title (plist-get history :title)) - (insert (format format title url)) - (insert "\n") - (put-text-property start (point) 'eww-history history) - ) - (goto-char (point-min))) - (pop-to-buffer "*eww history*") - ) + (let ((eww-history-trans eww-history)) + (set-buffer (get-buffer-create "*eww history*")) + (eww-history-mode) + (let ((inhibit-read-only t) + (domain-length 0) + (title-length 0) + url title format start) + (erase-buffer) + (dolist (history eww-history-trans) + (setq start (point)) + (setq domain-length (max domain-length (length (plist-get history :url)))) + (setq title-length (max title-length (length (plist-get history :title))))) + (setq format (format "%%-%ds %%-%ds" title-length domain-length) + header-line-format + (concat " " (format format "Title" "URL"))) + (dolist (history eww-history-trans) + (setq start (point)) + (setq url (plist-get history :url)) + (setq title (plist-get history :title)) + (insert (format format title url)) + (insert "\n") + (put-text-property start (1+ start) 'eww-history history)) + (goto-char (point-min))) + (pop-to-buffer "*eww history*"))) (defun eww-history-browse () "Browse the history under point in eww." @@ -1316,39 +1314,23 @@ (let ((history (get-text-property (line-beginning-position) 'eww-history))) (unless history (error "No history on the current line")) - (eww-history-quit) - (pop-to-buffer "*eww*") - (eww-browse-url (plist-get history :url)))) - -(defun eww-history-quit () - "Kill the current buffer." - (interactive) - (kill-buffer (current-buffer))) - -(defvar eww-history-kill-ring nil) - -(defun eww-history-kill () - "Kill the current history." - (interactive) - (let* ((start (line-beginning-position)) - (history (get-text-property start 'eww-history)) - (inhibit-read-only t)) - (unless history - (error "No history on the current line")) - (forward-line 1) - (push (buffer-substring start (point)) eww-history-kill-ring) - (delete-region start (point)) - (setq eww-history (delq history eww-history)) - )) + (quit-window) + (eww-restore-history history))) (defvar eww-history-mode-map (let ((map (make-sparse-keymap))) (suppress-keymap map) - (define-key map "q" 'eww-history-quit) - (define-key map [(control k)] 'eww-history-kill) + (define-key map "q" 'quit-window) (define-key map "\r" 'eww-history-browse) - (define-key map "n" 'next-error-no-select) - (define-key map "p" 'previous-error-no-select) +;; (define-key map "n" 'next-error-no-select) +;; (define-key map "p" 'previous-error-no-select) + + (easy-menu-define nil map + "Menu for `eww-history-mode-map'." + '("Eww History" + ["Exit" quit-window t] + ["Browse" eww-history-browse + :active (get-text-property (line-beginning-position) 'eww-history)])) map)) (define-derived-mode eww-history-mode nil "eww history" ------------------------------------------------------------ revno: 115874 author: Kenjiro NAKAYAMA committer: Lars Magne Ingebrigtsen branch nick: trunk timestamp: Sun 2014-01-05 10:25:05 +0100 message: * net/eww.el (eww): Support single/double quote for search. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-05 06:10:52 +0000 +++ lisp/ChangeLog 2014-01-05 09:25:05 +0000 @@ -1,3 +1,7 @@ +2014-01-05 Kenjiro NAKAYAMA + + * net/eww.el (eww): Support single/double quote for search. + 2014-01-05 Paul Eggert Fix misspelling of 'chinese' in rx (Bug#16237). === modified file 'lisp/net/eww.el' --- lisp/net/eww.el 2014-01-01 07:43:34 +0000 +++ lisp/net/eww.el 2014-01-05 09:25:05 +0000 @@ -157,8 +157,9 @@ (user-error "FTP is not supported.")) (t (if (and (= (length (split-string url)) 1) - (or (> (length (split-string url "\\.")) 1) - (string-match eww-local-regex url))) + (or (and (not (string-match-p "\\`[\"\'].*[\"\']\\'" url)) + (> (length (split-string url "\\.")) 1)) + (string-match eww-local-regex url))) (progn (unless (string-match-p "\\`[a-zA-Z][-a-zA-Z0-9+.]*://" url) (setq url (concat "http://" url))) ------------------------------------------------------------ revno: 115873 fixes bug: http://debbugs.gnu.org/16237 committer: Paul Eggert branch nick: trunk timestamp: Sat 2014-01-04 22:10:52 -0800 message: Fix misspelling of 'chinese' in rx. * lisp/emacs-lisp/rx.el (rx-categories): Correct spelling of chinese-two-byte. diff: === modified file 'etc/NEWS' --- etc/NEWS 2014-01-05 02:56:08 +0000 +++ etc/NEWS 2014-01-05 06:10:52 +0000 @@ -1257,6 +1257,9 @@ +++ ** New functions `group-gid' and `group-real-gid'. +** The spelling of the rx.el category `chinese-two-byte' has been +corrected (the first 'e' was missing). + ** Changes to the Emacs Lisp Coding Conventions in Emacs 24.4 +++ === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-05 05:49:44 +0000 +++ lisp/ChangeLog 2014-01-05 06:10:52 +0000 @@ -1,5 +1,9 @@ 2014-01-05 Paul Eggert + Fix misspelling of 'chinese' in rx (Bug#16237). + * emacs-lisp/rx.el (rx-categories): Correct spelling of + chinese-two-byte. + Change subword regexps back to vars (Bug#16296). * progmodes/subword.el (subword-forward-regexp) (subword-backward-regexp): Change these back to variables. === modified file 'lisp/emacs-lisp/rx.el' --- lisp/emacs-lisp/rx.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/rx.el 2014-01-05 06:10:52 +0000 @@ -258,7 +258,8 @@ (not-at-end-of-line . ?<) (not-at-beginning-of-line . ?>) (alpha-numeric-two-byte . ?A) - (chinse-two-byte . ?C) + (chinese-two-byte . ?C) + (chinse-two-byte . ?C) ;; A typo in Emacs 21.1-24.3. (greek-two-byte . ?G) (japanese-hiragana-two-byte . ?H) (indian-two-byte . ?I) @@ -1045,7 +1046,7 @@ `not-at-end-of-line' (\\c<) `not-at-beginning-of-line' (\\c>) `alpha-numeric-two-byte' (\\cA) - `chinse-two-byte' (\\cC) + `chinese-two-byte' (\\cC) `greek-two-byte' (\\cG) `japanese-hiragana-two-byte' (\\cH) `indian-tow-byte' (\\cI) ------------------------------------------------------------ revno: 115872 fixes bug: http://debbugs.gnu.org/16296 committer: Paul Eggert branch nick: trunk timestamp: Sat 2014-01-04 21:49:44 -0800 message: Change subword regexps back to vars. * progmodes/subword.el (subword-forward-regexp) (subword-backward-regexp): Change these back to variables. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-05 02:56:08 +0000 +++ lisp/ChangeLog 2014-01-05 05:49:44 +0000 @@ -1,3 +1,9 @@ +2014-01-05 Paul Eggert + + Change subword regexps back to vars (Bug#16296). + * progmodes/subword.el (subword-forward-regexp) + (subword-backward-regexp): Change these back to variables. + 2014-01-03 Stefan Monnier * emacs-lisp/lisp-mode.el (lisp-mode-variables): Don't bother with === modified file 'lisp/progmodes/subword.el' --- lisp/progmodes/subword.el 2014-01-01 07:43:34 +0000 +++ lisp/progmodes/subword.el 2014-01-05 05:49:44 +0000 @@ -93,11 +93,11 @@ (defvar subword-backward-function 'subword-backward-internal "Function to call for backward subword movement.") -(defconst subword-forward-regexp +(defvar subword-forward-regexp "\\W*\\(\\([[:upper:]]*\\(\\W\\)?\\)[[:lower:][:digit:]]*\\)" "Regexp used by `subword-forward-internal'.") -(defconst subword-backward-regexp +(defvar subword-backward-regexp "\\(\\(\\W\\|[[:lower:][:digit:]]\\)\\([[:upper:]]+\\W*\\)\\|\\W\\w+\\)" "Regexp used by `subword-backward-internal'.") ------------------------------------------------------------ revno: 115871 committer: Paul Eggert branch nick: trunk timestamp: Sat 2014-01-04 20:56:23 -0800 message: Spelling fix. diff: === modified file 'src/Makefile.in' --- src/Makefile.in 2014-01-05 00:55:29 +0000 +++ src/Makefile.in 2014-01-05 04:56:23 +0000 @@ -110,7 +110,7 @@ ## If available, the names of the paxctl and setfattr programs. ## On grsecurity/PaX systems, unexec will fail due to a gap between -## the bss section and the heap. Older versions nee paxctl to work +## the bss section and the heap. Older versions need paxctl to work ## around this, newer ones setfattr. See Bug#11398 and Bug#16343. PAXCTL = @PAXCTL@ SETFATTR = @SETFATTR@ ------------------------------------------------------------ revno: 115870 committer: Paul Eggert branch nick: trunk timestamp: Sat 2014-01-04 18:56:08 -0800 message: Spelling fixes. * lib-src/Makefile.in (regex.o): Remove reference to no-longer-used macros CONFIG_BROKETS and INHIBIT_STRING_HEADER. "BROKETS" was a misspelling anyway.... * src/nsterm.h (updateCollectionBehavior): Rename from updateCollectionBehaviour. All uses changed. diff: === modified file 'doc/misc/efaq-w32.texi' --- doc/misc/efaq-w32.texi 2014-01-03 03:15:01 +0000 +++ doc/misc/efaq-w32.texi 2014-01-05 02:56:08 +0000 @@ -166,7 +166,7 @@ Emacs binaries are distributed as zip files, digitally signed by the developer who built them. Generally most users will want the file @file{emacs-@value{EMACSVER}-bin-i386.zip}, which -contains everything you need to get started. +contains everything you need to get started. @cindex where to get sources @cindex Emacs source code @@ -290,7 +290,7 @@ The command to unpack a source distribution from the command line is: @example -tar xzf emacs-@value{EMACSVER}.tar.gz +tar xzf emacs-@value{EMACSVER}.tar.gz @end example If this does not work with the versions of tar and gzip that you have, @@ -577,9 +577,9 @@ Subject: Re: Re[2]: problem with caps/ctrl swap on NT 4.0 @end ignore @example -It's a binary value that lets you map keystrokes in the low-level keyboard -drivers in NT. As a result you don't have to worry about applications -bypassing mappings that you've done at a higher level (i.e. it just works). +It's a binary value that lets you map keystrokes in the low-level keyboard +drivers in NT. As a result you don't have to worry about applications +bypassing mappings that you've done at a higher level (i.e. it just works). Here's the format of the value: @@ -591,11 +591,11 @@ DWORD: mapping n DWORD: 0x00000000 terminating null DWORD -Each mapping DWORD has two parts: the input scancode, and an output -scancode. To map scancode 0x1d (left control) to scancode 0x3a (caps -lock), you want a value of 0x003a001d. Note that this does not swap the -keys. Using just this mapping value, both the left control and the caps -lock key will behave as caps-lock. To swap, you also need to map 0x3a to +Each mapping DWORD has two parts: the input scancode, and an output +scancode. To map scancode 0x1d (left control) to scancode 0x3a (caps +lock), you want a value of 0x003a001d. Note that this does not swap the +keys. Using just this mapping value, both the left control and the caps +lock key will behave as caps-lock. To swap, you also need to map 0x3a to 0x1d, using 0x001d003a. This registry value is system wide, and can't be made user-specific. It @@ -1357,7 +1357,7 @@ the buffering semantics. Some programs handle this by having an explicit flag to control their -buffering behaviour, typically @option{-i} for interactive. Other +buffering behavior, typically @option{-i} for interactive. Other programs manage to detect that they are running under Emacs, by using @samp{getenv("emacs")} internally. @@ -1430,7 +1430,7 @@ You can start an interactive shell in Emacs by typing @kbd{M-x shell}. Emacs uses the @env{SHELL} environment variable to determine which program to use as the shell. To instruct Emacs to use a non-default -shell, you can either set this environment variable, or customize +shell, you can either set this environment variable, or customize @code{explicit-shell-file-name}. You can also customize @code{shell-file-name} to change the shell that will be used by subprocesses that are started with @code{shell-command} and === modified file 'doc/misc/eshell.texi' --- doc/misc/eshell.texi 2014-01-03 23:14:16 +0000 +++ doc/misc/eshell.texi 2014-01-05 02:56:08 +0000 @@ -281,7 +281,7 @@ If you would prefer to use the built-in commands instead of the external commands, set @code{eshell-prefer-lisp-functions} to @code{t}. -Some of the built-in commands have different behaviour from their +Some of the built-in commands have different behavior from their external counterparts, and some have no external counterpart. Most of these will print a usage message when given the @code{--help} option. @@ -627,7 +627,7 @@ incompatibilities. Most globbing is pattern-based expansion, but there is also predicate-based expansion. See @ref{Filename Generation, , , zsh, The Z Shell Manual} -for full syntax. To customize the syntax and behaviour of globbing in +for full syntax. To customize the syntax and behavior of globbing in Eshell see the Customize@footnote{@xref{Easy Customization, , , emacs, The GNU Emacs Manual}.} groups ``eshell-glob'' and ``eshell-pred''. === modified file 'doc/misc/htmlfontify.texi' --- doc/misc/htmlfontify.texi 2014-01-01 07:43:34 +0000 +++ doc/misc/htmlfontify.texi 2014-01-05 02:56:08 +0000 @@ -57,7 +57,7 @@ @menu * Introduction:: About Htmlfontify. * Usage & Examples:: How to use Htmlfontify. -* Customization:: Fine-tuning Htmlfontify's behaviour. +* Customization:: Fine-tuning Htmlfontify's behavior. * Requirements:: External programs used by Htmlfontify. * GNU Free Documentation License:: The license for this documentation. * Index:: Index of contents. @@ -820,7 +820,7 @@ from 0.18 onwards, each font attribute list is scored, and the non-conflicting list with the highest score is returned. (A specification with a class of @code{t} is considered to match any class you specify. -This matches Emacs's behaviour when deciding on which face attributes to +This matches Emacs's behavior when deciding on which face attributes to use, to the best of my understanding ). If @var{class} is nil, then you just get get whatever === modified file 'doc/misc/org.texi' --- doc/misc/org.texi 2014-01-01 23:13:59 +0000 +++ doc/misc/org.texi 2014-01-05 02:56:08 +0000 @@ -9952,7 +9952,7 @@ Contents of the included file will belong to the same structure (headline, item) containing the @code{INCLUDE} keyword. In particular, headlines within -the file will become children of the current section. That behaviour can be +the file will become children of the current section. That behavior can be changed by providing an additional keyword parameter, @code{:minlevel}. In that case, all headlines in the included file will be shifted so the one with the lowest level reaches that specified level. For example, to make a file @@ -10398,7 +10398,7 @@ argument, or with @kbd{&} key from the dispatcher. @vindex org-export-in-background -To make this behaviour the default, customize the variable +To make this behavior the default, customize the variable @code{org-export-in-background}. @item C-b @@ -13073,7 +13073,7 @@ The @code{my-ascii-src-block} function looks at the attribute above the element. If it isn't true, it gives hand to the @code{ascii} back-end. Otherwise, it creates a box around the code, leaving room for the language. -A new back-end is then created. It only changes its behaviour when +A new back-end is then created. It only changes its behavior when translating @code{src-block} type element. Now, all it takes to use the new back-end is calling the following from an Org buffer: @@ -14102,7 +14102,7 @@ outermost call or source block.@footnote{The deprecated syntax for default header argument properties, using the name of the header argument as a property name directly, evaluates the property as seen by the corresponding -source block definition. This behaviour has been kept for backwards +source block definition. This behavior has been kept for backwards compatibility.} In the following example the value of === modified file 'doc/misc/sem-user.texi' --- doc/misc/sem-user.texi 2014-01-01 07:43:34 +0000 +++ doc/misc/sem-user.texi 2014-01-05 02:56:08 +0000 @@ -983,7 +983,7 @@ you may have found a language support bug in the local-variable parser, or using statement parser. -Calling @kbd{M-x bovinte} should force a reset on the scope in case +Calling @kbd{M-x bovinate} should force a reset on the scope in case there is merely some bad state. @example @@ -1014,7 +1014,7 @@ @kbd{M-x semanticdb-typecache-dump}. If your data types are not in the typecache, there may be some parsing -error or other bug. Calling @kbd{M-x bovinte} should force a reset on +error or other bug. Calling @kbd{M-x bovinate} should force a reset on the typecache in case there is merely some bad state. @example === modified file 'doc/misc/tramp.texi' --- doc/misc/tramp.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/tramp.texi 2014-01-05 02:56:08 +0000 @@ -2744,7 +2744,7 @@ continuous output of the @command{tail} command. @ifset emacs -A similar behaviour can be reached by @kbd{M-x auto-revert-tail-mode}, +A similar behavior can be reached by @kbd{M-x auto-revert-tail-mode}, if available. @end ifset === modified file 'etc/NEWS' --- etc/NEWS 2014-01-03 05:37:58 +0000 +++ etc/NEWS 2014-01-05 02:56:08 +0000 @@ -455,7 +455,7 @@ parentheses and quotes, i.e. the buffer should end up at least as balanced as before. -You can further control this behaviour by adjusting the predicates +You can further control this behavior by adjusting the predicates stored in `electric-pair-inhibit-predicate' and `electric-pair-skip-self'. @@ -481,7 +481,7 @@ *** New variables control the pairing in strings and comments. You can customize `electric-pair-text-pairs' and -`electric-pair-text-syntax-table' to tweak pairing behaviour inside +`electric-pair-text-syntax-table' to tweak pairing behavior inside strings and comments. ** EPA === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2014-01-01 07:43:34 +0000 +++ lib-src/ChangeLog 2014-01-05 02:56:08 +0000 @@ -1,3 +1,10 @@ +2014-01-05 Paul Eggert + + Spelling fixes. + * Makefile.in (regex.o): Remove reference to no-longer-used macros + CONFIG_BROKETS and INHIBIT_STRING_HEADER. "BROKETS" was a + misspelling anyway.... + 2013-12-14 Paul Eggert Use bool for boolean, focusing on headers. === modified file 'lib-src/Makefile.in' --- lib-src/Makefile.in 2014-01-01 07:43:34 +0000 +++ lib-src/Makefile.in 2014-01-05 02:56:08 +0000 @@ -315,8 +315,7 @@ cd ../lib && $(MAKE) libgnu.a regex.o: $(srcdir)/../src/regex.c $(srcdir)/../src/regex.h $(config_h) - ${CC} -c ${CPP_CFLAGS} -DCONFIG_BROKETS -DINHIBIT_STRING_HEADER \ - ${srcdir}/../src/regex.c + ${CC} -c ${CPP_CFLAGS} ${srcdir}/../src/regex.c etags${EXEEXT}: ${srcdir}/etags.c regex.o $(NTLIB) $(config_h) $(CC) ${ALL_CFLAGS} -DEMACS_NAME="\"GNU Emacs\"" \ === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-03 22:38:55 +0000 +++ lisp/ChangeLog 2014-01-05 02:56:08 +0000 @@ -131,7 +131,7 @@ * shell.el (shell-dynamic-complete-command): Doc fix. (shell--command-completion-data): Shell completion now matches executable filenames from the current buffer's directory, on - systems in which this behaviour is the default (windows-nt, ms-dos). + systems in which this behavior is the default (windows-nt, ms-dos). 2013-12-27 Lars Ingebrigtsen === modified file 'lisp/delsel.el' --- lisp/delsel.el 2014-01-01 07:43:34 +0000 +++ lisp/delsel.el 2014-01-05 02:56:08 +0000 @@ -49,7 +49,7 @@ ;; The normal case: delete the active region prior to executing ;; the command which will insert replacement text. ;; -;; For commands which need to dynamically determine this behaviour. +;; For commands which need to dynamically determine this behavior. ;; The function should return one of the above values or nil. ;;; Code: @@ -99,7 +99,7 @@ The normal case: delete the active region prior to executing the command which will insert replacement text. FUNCTION - For commands which need to dynamically determine this behaviour. + For commands which need to dynamically determine this behavior. FUNCTION should take no argument and return one of the above values or nil." (condition-case data (cond ((eq type 'kill) === modified file 'lisp/elec-pair.el' --- lisp/elec-pair.el 2014-01-01 07:43:34 +0000 +++ lisp/elec-pair.el 2014-01-05 02:56:08 +0000 @@ -169,7 +169,7 @@ (defun electric-pair-backward-delete-char (n &optional killflag untabify) "Delete characters backward, and maybe also two adjacent paired delimiters. -Remaining behaviour is given by `backward-delete-char' or, if UNTABIFY is +Remaining behavior is given by `backward-delete-char' or, if UNTABIFY is non-nil, `backward-delete-char-untabify'." (interactive "*p\nP") (let* ((prev (char-before)) @@ -191,7 +191,7 @@ (defun electric-pair-backward-delete-char-untabify (n &optional killflag) "Delete characters backward, and maybe also two adjacent paired delimiters. -Remaining behaviour is given by `backward-delete-char-untabify'." +Remaining behavior is given by `backward-delete-char-untabify'." (interactive "*p\nP") (electric-pair-backward-delete-char n killflag t)) === modified file 'lisp/erc/erc-lang.el' --- lisp/erc/erc-lang.el 2014-01-01 07:43:34 +0000 +++ lisp/erc/erc-lang.el 2014-01-05 02:56:08 +0000 @@ -32,6 +32,9 @@ (require 'erc) +;; FIXME: It's ISO 639-1, not ISO 638. ISO 638 is for paper, board and pulps. +;; The Lisp variable should be renamed. + (defvar iso-638-languages '(("aa" . "Afar") ("ab" . "Abkhazian") @@ -42,7 +45,7 @@ ("ay" . "Aymara") ("az" . "Azerbaijani") ("ba" . "Bashkir") - ("be" . "Byelorussian") + ("be" . "Belarusian") ("bg" . "Bulgarian") ("bh" . "Bihari") ("bi" . "Bislama") === modified file 'lisp/gnus/pop3.el' --- lisp/gnus/pop3.el 2014-01-01 07:43:34 +0000 +++ lisp/gnus/pop3.el 2014-01-05 02:56:08 +0000 @@ -107,7 +107,7 @@ deleted on the server right after fetching. Gnus users should use the `:leave' keyword in a mail source to direct -the behaviour per server, rather than directly modifying this value. +the behavior per server, rather than directly modifying this value. Note that POP servers maintain no state information between sessions, so what the client believes is there and what is actually there may === modified file 'lisp/htmlfontify.el' --- lisp/htmlfontify.el 2014-01-01 07:43:34 +0000 +++ lisp/htmlfontify.el 2014-01-05 02:56:08 +0000 @@ -1619,7 +1619,7 @@ An implementation can use TEXT-BLOCK, TEXT-ID, TEXT-BEGINS-BLOCK-P to implement fold/unfold-on-mouse-click like -behaviour. +behavior. The default handler is `hfy-begin-span'.") === modified file 'lisp/language/cyril-util.el' --- lisp/language/cyril-util.el 2014-01-01 07:43:34 +0000 +++ lisp/language/cyril-util.el 2014-01-05 02:56:08 +0000 @@ -41,7 +41,7 @@ ;; Written by Valery Alexeev . (defvar cyrillic-language-alist - (list '("Belorussian") '("Bulgarian") '("Macedonian") + (list '("Belarusian") '("Bulgarian") '("Macedonian") '("Russian") '("Serbo-Croatian") '("Ukrainian")) "List of known cyrillic languages.") === modified file 'lisp/org/ChangeLog' --- lisp/org/ChangeLog 2014-01-01 07:43:34 +0000 +++ lisp/org/ChangeLog 2014-01-05 02:56:08 +0000 @@ -1714,7 +1714,7 @@ * org.el (org-previous-line-empty-p): New parameter to allow checking next line. Add a docstring. (org-insert-heading): Handle two universal prefix arguments as - advertized in the docstring. Don't insert new lines when + advertised in the docstring. Don't insert new lines when creating a heading after the first heading in the current subtree. (org-insert-heading-respect-content): New optional argument @@ -3522,7 +3522,7 @@ parsing. * org.el (org-adaptive-fill-function): Do not handle - `adaptive-fill-regexp' in comments as the behaviour is not + `adaptive-fill-regexp' in comments as the behavior is not satisfying. * org-list.el (org-list-struct-apply-struct): Do not move item's @@ -3677,7 +3677,7 @@ "wrong-type-argument" error in template insertion. * org.el (org-fill-paragraph): Use empty commented lines as - separators when filling comments. This mimics default behaviour + separators when filling comments. This mimics default behavior from "newcomment.el", which is not used in Org. * ox-html.el (org-html-link): Add image attributes to "img" tag, @@ -3984,7 +3984,7 @@ * ox.el (org-export-with-timestamps): Only applies to isolated timestamps, i.e. timestamps in a paragraph containing only timestamps and empty strings. - (org-export--skip-p): Skip timestamps according to new behaviour. + (org-export--skip-p): Skip timestamps according to new behavior. * ox-latex.el (org-latex--script-size): Handle consecutive alterning sub and superscript. @@ -4313,7 +4313,7 @@ * ox.el (org-export-as): Store export options in :export-options porperty within communication channel. - * ox-latex.el (org-latex-item): Fix wrong behaviour when a counter + * ox-latex.el (org-latex-item): Fix wrong behavior when a counter is set in an ordered list while its parent is not ordered. * ox.el (org-export-format-code-default): Handle empty source @@ -4942,7 +4942,7 @@ timestamps ranges with repeaters. * org.el (org-edit-special): Rewrite `org-edit-special' using Org - Elements tools. Behaviour should be unchanged. + Elements tools. Behavior should be unchanged. * org-element.el (org-element-context): Add an optional argument so that (org-element-context) and (org-element-context @@ -6383,7 +6383,7 @@ * org.el: Make `org-closest-date' aware of hours repeaters. * org.el (org-end-of-line): Do not call `end-of-visual-line' when - moving to the end of line. Also improve behaviour on elements that + moving to the end of line. Also improve behavior on elements that can be hidden. * org.el (org-sparse-tree): Allow to call `org-show-todo-tree' @@ -10565,7 +10565,7 @@ 2012-04-01 Nicolas Goaziou * org.el (org-beginning-of-line, org-end-of-line): Fix special C-a - and C-e behaviour with visual lines. + and C-e behavior with visual lines. 2012-04-01 Eric Schulte @@ -11105,7 +11105,7 @@ * ob-emacs-lisp.el: A comment on the last line of an emacs-lisp code block would cause an error when the block is was executed. - This fix cures this behaviour. + This fix cures this behavior. 2012-04-01 Eric Schulte @@ -12994,7 +12994,7 @@ 2012-01-03 Nicolas Goaziou * org-list.el (org-list-separating-blank-lines-number): - The behaviour of `org-back-over-empty-lines' depends on the + The behavior of `org-back-over-empty-lines' depends on the associated value of `headline' in `org-blank-before-new-entry', which is out of context in a list. === modified file 'lisp/org/org-ctags.el' --- lisp/org/org-ctags.el 2014-01-01 07:43:34 +0000 +++ lisp/org/org-ctags.el 2014-01-05 02:56:08 +0000 @@ -63,19 +63,19 @@ ;; with the same name as the link; then, if unsuccessful, ask the user if ;; he/she wants to rebuild the 'TAGS' database and try again; then ask if ;; the user wishes to append 'tag' as a new toplevel heading at the end of -;; the buffer; and finally, defer to org's default behaviour which is to +;; the buffer; and finally, defer to org's default behavior which is to ;; search the entire text of the current buffer for 'tag'. ;; -;; This behaviour can be modified by changing the value of +;; This behavior can be modified by changing the value of ;; ORG-CTAGS-OPEN-LINK-FUNCTIONS. For example I have the following in my -;; .emacs, which describes the same behaviour as the above paragraph with +;; .emacs, which describes the same behavior as the above paragraph with ;; one difference: ;; ;; (setq org-ctags-open-link-functions ;; '(org-ctags-find-tag ;; org-ctags-ask-rebuild-tags-file-then-find-tag ;; org-ctags-ask-append-topic -;; org-ctags-fail-silently)) ; <-- prevents org default behaviour +;; org-ctags-fail-silently)) ; <-- prevents org default behavior ;; ;; ;; Usage === modified file 'lisp/org/ox-html.el' --- lisp/org/ox-html.el 2014-01-01 08:31:29 +0000 +++ lisp/org/ox-html.el 2014-01-05 02:56:08 +0000 @@ -580,7 +580,7 @@ The function should return the string to be exported. For example, the variable could be set to the following function -in order to mimic default behaviour: +in order to mimic default behavior: The default value simply returns the value of CONTENTS." :group 'org-export-html === modified file 'lisp/org/ox-latex.el' --- lisp/org/ox-latex.el 2014-01-01 07:43:34 +0000 +++ lisp/org/ox-latex.el 2014-01-05 02:56:08 +0000 @@ -589,7 +589,7 @@ The function should return the string to be exported. For example, the variable could be set to the following function -in order to mimic default behaviour: +in order to mimic default behavior: \(defun org-latex-format-inlinetask \(todo type priority name tags contents\) \"Format an inline task element for LaTeX export.\" === modified file 'lisp/org/ox-publish.el' --- lisp/org/ox-publish.el 2014-01-01 07:43:34 +0000 +++ lisp/org/ox-publish.el 2014-01-05 02:56:08 +0000 @@ -228,7 +228,7 @@ `:sitemap-sort-files' The site map is normally sorted alphabetically. You can - change this behaviour setting this to `anti-chronologically', + change this behavior setting this to `anti-chronologically', `chronologically', or nil. `:sitemap-ignore-case' === modified file 'lisp/org/ox-texinfo.el' --- lisp/org/ox-texinfo.el 2014-01-01 07:43:34 +0000 +++ lisp/org/ox-texinfo.el 2014-01-05 02:56:08 +0000 @@ -348,7 +348,7 @@ The function should return the string to be exported. For example, the variable could be set to the following function -in order to mimic default behaviour: +in order to mimic default behavior: \(defun org-texinfo-format-inlinetask \(todo type priority name tags contents\) \"Format an inline task element for Texinfo export.\" === modified file 'lisp/org/ox.el' --- lisp/org/ox.el 2014-01-01 07:43:34 +0000 +++ lisp/org/ox.el 2014-01-05 02:56:08 +0000 @@ -143,7 +143,7 @@ "Alist between export properties and ways to set them. The CAR of the alist is the property name, and the CDR is a list -like (KEYWORD OPTION DEFAULT BEHAVIOUR) where: +like (KEYWORD OPTION DEFAULT BEHAVIOR) where: KEYWORD is a string representing a buffer keyword, or nil. Each property defined this way can also be set, during subtree @@ -152,7 +152,7 @@ property). OPTION is a string that could be found in an #+OPTIONS: line. DEFAULT is the default value for the property. -BEHAVIOUR determines how Org should handle multiple keywords for +BEHAVIOR determines how Org should handle multiple keywords for the same property. It is a symbol among: nil Keep old value and discard the new one. t Replace old value with the new one. @@ -493,7 +493,7 @@ "The last level which is still exported as a headline. Inferior levels will usually produce itemize or enumerate lists -when exported, but back-end behaviour may differ. +when exported, but back-end behavior may differ. This option can also be set with the OPTIONS keyword, e.g. \"H:2\"." @@ -1649,7 +1649,7 @@ ((member keyword org-element-document-properties) (org-element-parse-secondary-string value (org-element-restriction 'keyword))) - ;; If BEHAVIOUR is `split' expected value is + ;; If BEHAVIOR is `split' expected value is ;; a list of strings, not a string. ((eq (nth 4 option) 'split) (org-split-string value)) (t value))))))))) @@ -1726,13 +1726,13 @@ (t ;; Options in `org-export-options-alist'. (dolist (property (funcall find-properties key)) - (let ((behaviour (nth 4 (assq property options)))) + (let ((behavior (nth 4 (assq property options)))) (setq plist (plist-put plist property ;; Handle value depending on specified - ;; BEHAVIOUR. - (case behaviour + ;; BEHAVIOR. + (case behavior (space (if (not (plist-get plist property)) (org-trim val) === modified file 'lisp/textmodes/reftex-index.el' --- lisp/textmodes/reftex-index.el 2014-01-01 07:43:34 +0000 +++ lisp/textmodes/reftex-index.el 2014-01-05 02:56:08 +0000 @@ -896,7 +896,7 @@ ;; If FINAL is t, stay there ;; If FINAL is 'hide, hide the *Index* window. ;; Otherwise, move cursor back into *Index* window. - ;; NO-REVISIT means don't visit files, just use live biffers. + ;; NO-REVISIT means don't visit files, just use live buffers. (let* ((data (get-text-property (point) :data)) (index-window (selected-window)) === modified file 'lisp/url/url-queue.el' --- lisp/url/url-queue.el 2014-01-01 07:43:34 +0000 +++ lisp/url/url-queue.el 2014-01-05 02:56:08 +0000 @@ -69,7 +69,7 @@ :inhibit-cookiesp inhibit-cookies)))) (url-queue-setup-runners)) -;; To ensure asynch behaviour, we start the required number of queue +;; To ensure asynch behavior, we start the required number of queue ;; runners from `run-with-idle-timer'. So we're basically going ;; through the queue in two ways: 1) synchronously when a program ;; calls `url-queue-retrieve' (which will then start the required === modified file 'src/ChangeLog' --- src/ChangeLog 2014-01-05 00:55:29 +0000 +++ src/ChangeLog 2014-01-05 02:56:08 +0000 @@ -1,5 +1,9 @@ 2014-01-05 Paul Eggert + Spelling fixes. + * nsterm.h (updateCollectionBehavior): Rename from + updateCollectionBehaviour. All uses changed. + Port to GNU/Linux with recent grsecurity/PaX patches (Bug#16343). * Makefile.in (SETFATTR): New macro. (temacs$(EXEEXT)): Use it. === modified file 'src/nsterm.h' --- src/nsterm.h 2014-01-01 07:43:34 +0000 +++ src/nsterm.h 2014-01-05 02:56:08 +0000 @@ -183,7 +183,7 @@ - (BOOL) fsIsNative; - (BOOL) isFullscreen; #ifdef HAVE_NATIVE_FS -- (void) updateCollectionBehaviour; +- (void) updateCollectionBehavior; #endif #ifdef NS_IMPL_GNUSTEP === modified file 'src/nsterm.m' --- src/nsterm.m 2014-01-01 07:43:34 +0000 +++ src/nsterm.m 2014-01-05 02:56:08 +0000 @@ -3497,7 +3497,7 @@ if (FRAME_NS_P (f)) { EmacsView *view = FRAME_NS_VIEW (f); - [view updateCollectionBehaviour]; + [view updateCollectionBehavior]; } } } @@ -6317,7 +6317,7 @@ [self setFSValue: fs_before_fs]; fs_before_fs = -1; #ifdef HAVE_NATIVE_FS - [self updateCollectionBehaviour]; + [self updateCollectionBehavior]; #endif if (FRAME_EXTERNAL_TOOL_BAR (emacsframe)) { @@ -6349,7 +6349,7 @@ } #ifdef HAVE_NATIVE_FS -- (void)updateCollectionBehaviour +- (void)updateCollectionBehavior { if (! [self isFullscreen]) { @@ -7647,7 +7647,7 @@ DEFVAR_BOOL ("ns-use-srgb-colorspace", ns_use_srgb_colorspace, doc: /*Non-nil means to use sRGB colorspace on OSX >= 10.7. -Note that this does not apply to images. +Note that this does not apply to images. This variable is ignored on OSX < 10.7 and GNUStep. Default is t. */); ns_use_srgb_colorspace = YES; ------------------------------------------------------------ revno: 115869 fixes bug: http://debbugs.gnu.org/16246 committer: Paul Eggert branch nick: trunk timestamp: Sat 2014-01-04 17:33:33 -0800 message: Document vconcat and the empty vector (Bug#16246). * sequences.texi (Vector Functions): Document behavior better when the result is empty. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-01-05 01:24:41 +0000 +++ doc/lispref/ChangeLog 2014-01-05 01:33:33 +0000 @@ -1,5 +1,9 @@ 2014-01-05 Paul Eggert + Document vconcat and the empty vector (Bug#16246). + * sequences.texi (Vector Functions): + Document behavior better when the result is empty. + Document behavior of (string-to-number "+@") (Bug#16293). * strings.texi (String Conversion): Document behavior of string-to-number on invalid strings that begin with "+", too. === modified file 'doc/lispref/sequences.texi' --- doc/lispref/sequences.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/sequences.texi 2014-01-05 01:33:33 +0000 @@ -471,11 +471,11 @@ @cindex copying vectors This function returns a new vector containing all the elements of @var{sequences}. The arguments @var{sequences} may be true lists, -vectors, strings or bool-vectors. If no @var{sequences} are given, an -empty vector is returned. +vectors, strings or bool-vectors. If no @var{sequences} are given, +the empty vector is returned. -The value is a newly constructed vector that is not @code{eq} to any -existing vector. +The value is either the empty vector, or is a newly constructed +nonempty vector that is not @code{eq} to any existing vector. @example @group ------------------------------------------------------------ revno: 115868 fixes bug: http://debbugs.gnu.org/16293 committer: Paul Eggert branch nick: trunk timestamp: Sat 2014-01-04 17:24:41 -0800 message: Document behavior of (string-to-number "+@") (Bug#16293). * strings.texi (String Conversion): Document behavior of string-to-number on invalid strings that begin with "+", too. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-01-03 05:49:06 +0000 +++ doc/lispref/ChangeLog 2014-01-05 01:24:41 +0000 @@ -1,3 +1,9 @@ +2014-01-05 Paul Eggert + + Document behavior of (string-to-number "+@") (Bug#16293). + * strings.texi (String Conversion): Document behavior of + string-to-number on invalid strings that begin with "+", too. + 2014-01-03 Chong Yidong * help.texi (Documentation, Accessing Documentation): Copyedits. === modified file 'doc/lispref/strings.texi' --- doc/lispref/strings.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/strings.texi 2014-01-05 01:24:41 +0000 @@ -622,10 +622,8 @@ The parsing skips spaces and tabs at the beginning of @var{string}, then reads as much of @var{string} as it can interpret as a number in the given base. (On some systems it ignores other whitespace at the -beginning, not just spaces and tabs.) If the first character after -the ignored whitespace is neither a digit in the given base, nor a -plus or minus sign, nor the leading dot of a floating point number, -this function returns 0. +beginning, not just spaces and tabs.) If @var{string} cannot be +interpreted as a number, this function returns 0. @example (string-to-number "256") ------------------------------------------------------------ revno: 115867 committer: Paul Eggert branch nick: trunk timestamp: Sat 2014-01-04 17:00:32 -0800 message: Fix typo in previous change. diff: === modified file 'configure.ac' --- configure.ac 2014-01-05 00:55:29 +0000 +++ configure.ac 2014-01-05 01:00:32 +0000 @@ -1001,7 +1001,7 @@ if test "$emacs_cv_prog_setfattr" = yes; then SETFATTR=setfattr else - SETFATTR=no + SETFATTR= fi rm -f conftest.tmp AC_SUBST([SETFATTR]) ------------------------------------------------------------ revno: 115866 fixes bug: http://debbugs.gnu.org/16343 committer: Paul Eggert branch nick: trunk timestamp: Sat 2014-01-04 16:55:29 -0800 message: Port to GNU/Linux with recent grsecurity/PaX patches (Bug#16343). Problem and proposed patch reported by Ulrich Mueller; this patch uses a somewhat-different approach. * configure.ac (SETFATTR): New variable. * src/Makefile.in (SETFATTR): New macro. (temacs$(EXEEXT)): Use it. diff: === modified file 'ChangeLog' --- ChangeLog 2014-01-03 01:59:58 +0000 +++ ChangeLog 2014-01-05 00:55:29 +0000 @@ -1,3 +1,10 @@ +2014-01-05 Paul Eggert + + Port to GNU/Linux with recent grsecurity/PaX patches (Bug#16343). + Problem and proposed patch reported by Ulrich Mueller; + this patch uses a somewhat-different approach. + * configure.ac (SETFATTR): New variable. + 2014-01-03 Paul Eggert Merge from gnulib, incorporating: === modified file 'configure.ac' --- configure.ac 2014-01-01 08:31:29 +0000 +++ configure.ac 2014-01-05 00:55:29 +0000 @@ -988,6 +988,24 @@ [if $PAXCTL -v conftest$EXEEXT >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no); PAXCTL=""; fi]) fi + + if test "${SETFATTR+set}" != set; then + AC_CACHE_CHECK([for setfattr], + [emacs_cv_prog_setfattr], + [touch conftest.tmp + if (setfattr -n user.pax.flags conftest.tmp) >/dev/null 2>&1; then + emacs_cv_prog_setfattr=yes + else + emacs_cv_prog_setfattr=no + fi]) + if test "$emacs_cv_prog_setfattr" = yes; then + SETFATTR=setfattr + else + SETFATTR=no + fi + rm -f conftest.tmp + AC_SUBST([SETFATTR]) + fi fi ## Need makeinfo >= 4.7 (?) to build the manuals. === modified file 'src/ChangeLog' --- src/ChangeLog 2014-01-04 09:31:30 +0000 +++ src/ChangeLog 2014-01-05 00:55:29 +0000 @@ -1,3 +1,9 @@ +2014-01-05 Paul Eggert + + Port to GNU/Linux with recent grsecurity/PaX patches (Bug#16343). + * Makefile.in (SETFATTR): New macro. + (temacs$(EXEEXT)): Use it. + 2014-01-04 Martin Rudalics Fix maximization behavior on Windows (Bug#16300). === modified file 'src/Makefile.in' --- src/Makefile.in 2014-01-01 07:43:34 +0000 +++ src/Makefile.in 2014-01-05 00:55:29 +0000 @@ -108,11 +108,12 @@ ## Flags to pass to ld only for temacs. TEMACS_LDFLAGS = $(LD_SWITCH_SYSTEM) $(LD_SWITCH_SYSTEM_TEMACS) -## If available, the full path to the paxctl program. +## If available, the names of the paxctl and setfattr programs. ## On grsecurity/PaX systems, unexec will fail due to a gap between -## the bss section and the heap. This can be prevented by disabling -## memory randomization in temacs with "paxctl -r". See bug#11398. +## the bss section and the heap. Older versions nee paxctl to work +## around this, newer ones setfattr. See Bug#11398 and Bug#16343. PAXCTL = @PAXCTL@ +SETFATTR = @SETFATTR@ ## Some systems define this to request special libraries. LIBS_SYSTEM=@LIBS_SYSTEM@ @@ -494,6 +495,8 @@ $(TEMACS_POST_LINK) test "$(CANNOT_DUMP)" = "yes" || \ test "X$(PAXCTL)" = X || $(PAXCTL) -r temacs$(EXEEXT) + test "$(CANNOT_DUMP)" = "yes" || test -z "$(SETFATTR)" || \ + $(SETFATTR) -n user.pax.flags -v r $@ ## The following oldxmenu-related rules are only (possibly) used if ## HAVE_X11 && !USE_GTK, but there is no harm in always defining them. ------------------------------------------------------------ revno: 115865 committer: martin rudalics branch nick: trunk timestamp: Sat 2014-01-04 10:31:30 +0100 message: Fix maximization behavior on Windows (Bug#16300). Fix maximization behavior on Windows (Bug#16300). * w32fns.c (w32_fullscreen_rect): Don't handle FULLSCREEN_MAXIMIZED and FULLSCREEN_NONE specially. * w32term.c (w32fullscreen_hook): Use SetWindowPlacement instead of SetWindowPos. Restore last placement also when leaving FULLSCREEN_HEIGHT and FULLSCREEN_WIDTH. Call ShowWindow in all but the FULLSCREEN_BOTH case. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-01-03 06:47:27 +0000 +++ src/ChangeLog 2014-01-04 09:31:30 +0000 @@ -1,3 +1,13 @@ +2014-01-04 Martin Rudalics + + Fix maximization behavior on Windows (Bug#16300). + * w32fns.c (w32_fullscreen_rect): Don't handle + FULLSCREEN_MAXIMIZED and FULLSCREEN_NONE specially. + * w32term.c (w32fullscreen_hook): Use SetWindowPlacement instead + of SetWindowPos. Restore last placement also when leaving + FULLSCREEN_HEIGHT and FULLSCREEN_WIDTH. Call ShowWindow in all + but the FULLSCREEN_BOTH case. + 2014-01-03 Paul Eggert Port to C89. === modified file 'src/w32fns.c' --- src/w32fns.c 2014-01-02 15:58:48 +0000 +++ src/w32fns.c 2014-01-04 09:31:30 +0000 @@ -402,12 +402,6 @@ rect->right = mi.rcMonitor.right; rect->bottom = mi.rcMonitor.bottom; break; - case FULLSCREEN_MAXIMIZED: - rect->left = mi.rcWork.left; - rect->top = mi.rcWork.top; - rect->right = mi.rcWork.right; - rect->bottom = mi.rcWork.bottom; - break; case FULLSCREEN_WIDTH: rect->left = mi.rcWork.left; rect->top = normal.top; @@ -420,7 +414,6 @@ rect->right = normal.right; rect->bottom = mi.rcWork.bottom; break; - case FULLSCREEN_NONE: default: *rect = normal; break; === modified file 'src/w32term.c' --- src/w32term.c 2014-01-02 15:58:48 +0000 +++ src/w32term.c 2014-01-04 09:31:30 +0000 @@ -5564,18 +5564,22 @@ if (FRAME_PREV_FSMODE (f) == FULLSCREEN_BOTH) { SetWindowLong (hwnd, GWL_STYLE, dwStyle | WS_OVERLAPPEDWINDOW); - SetWindowPos (hwnd, NULL, 0, 0, 0, 0, - SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | - SWP_NOOWNERZORDER | SWP_FRAMECHANGED); - } + SetWindowPlacement (hwnd, &FRAME_NORMAL_PLACEMENT (f)); + } + else if (FRAME_PREV_FSMODE (f) == FULLSCREEN_HEIGHT + || FRAME_PREV_FSMODE (f) == FULLSCREEN_WIDTH) + SetWindowPlacement (hwnd, &FRAME_NORMAL_PLACEMENT (f)); - w32_fullscreen_rect (hwnd, f->want_fullscreen, - FRAME_NORMAL_PLACEMENT (f).rcNormalPosition, &rect); FRAME_PREV_FSMODE (f) = f->want_fullscreen; - if (f->want_fullscreen == FULLSCREEN_MAXIMIZED) - PostMessage (FRAME_W32_WINDOW (f), WM_SYSCOMMAND, 0xf030, 0); + + if (f->want_fullscreen == FULLSCREEN_NONE) + ShowWindow (hwnd, SW_SHOWNORMAL); + else if (f->want_fullscreen == FULLSCREEN_MAXIMIZED) + ShowWindow (hwnd, SW_MAXIMIZE); else if (f->want_fullscreen == FULLSCREEN_BOTH) { + w32_fullscreen_rect (hwnd, f->want_fullscreen, + FRAME_NORMAL_PLACEMENT (f).rcNormalPosition, &rect); SetWindowLong (hwnd, GWL_STYLE, dwStyle & ~WS_OVERLAPPEDWINDOW); SetWindowPos (hwnd, HWND_TOP, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, @@ -5583,6 +5587,9 @@ } else { + ShowWindow (hwnd, SW_SHOWNORMAL); + w32_fullscreen_rect (hwnd, f->want_fullscreen, + FRAME_NORMAL_PLACEMENT (f).rcNormalPosition, &rect); SetWindowPos (hwnd, HWND_TOP, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, 0); } ------------------------------------------------------------ revno: 115864 committer: Glenn Morris branch nick: trunk timestamp: Fri 2014-01-03 19:18:33 -0800 message: * admin/admin.el (manual-html-fix-index-2): Fix minor Texinfo 4 issue with start of detailed menu. diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2014-01-04 02:31:56 +0000 +++ admin/ChangeLog 2014-01-04 03:18:33 +0000 @@ -2,6 +2,7 @@ * admin.el (manual-html-fix-node-div): Handle Texinfo 5's movable
. (manual-html-fix-index-2): Tweak Texinfo 5 table format. + Fix minor Texinfo 4 issue with start of detailed menu. 2014-01-03 Glenn Morris === modified file 'admin/admin.el' --- admin/admin.el 2014-01-04 02:35:45 +0000 +++ admin/admin.el 2014-01-04 03:18:33 +0000 @@ -508,9 +508,6 @@ ;; The Emacs and Elisp manual have some text at the ;; start of the detailed menu that is not part of the menu. ;; Other manuals do not. - ;; FIXME Texinfo 4 branch does not handle this correctly. - ;; See eg s/emacs/manual/html_node/eintr/index.html - ;; start of "Detailed Node Listing". (if (re-search-forward "in one step:" (line-end-position 3) t) (forward-line 1)) (insert "

\n") @@ -568,7 +565,12 @@ (replace-match " \n

Detailed Node Listing

\n\n" t t) (search-forward "

") - (search-forward "

" nil t) + ;; FIXME Fragile! + ;; The Emacs and Elisp manual have some text at the + ;; start of the detailed menu that is not part of the menu. + ;; Other manuals do not. + (if (looking-at "Here are some other nodes") + (search-forward "

")) (goto-char (match-beginning 0)) (skip-chars-backward "\n ") (setq open-td nil) ------------------------------------------------------------ revno: 115863 committer: Glenn Morris branch nick: trunk timestamp: Fri 2014-01-03 18:35:45 -0800 message: * admin.el (manual-html-fix-index-2): Tweak previous change. diff: === modified file 'admin/admin.el' --- admin/admin.el 2014-01-04 02:31:56 +0000 +++ admin/admin.el 2014-01-04 02:35:45 +0000 @@ -483,7 +483,7 @@ (forward-line 1) (while (not done) (cond ((re-search-forward "\\)\ -:  \\(.*\\)" (line-end-position) t) +:  ]*>\\(.*\\)" (line-end-position) t) (replace-match (format "\\1\n\\2" (if table-workaround " bgcolor=\"white\"" ""))) ------------------------------------------------------------ revno: 115862 committer: Glenn Morris branch nick: trunk timestamp: Fri 2014-01-03 18:31:56 -0800 message: Yet more Texinfo 5 tweaks for admin.el's make-manuals * admin.el (manual-html-fix-node-div): Handle Texinfo 5's movable


. (manual-html-fix-index-2): Tweak Texinfo 5 table format. diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2014-01-03 03:24:27 +0000 +++ admin/ChangeLog 2014-01-04 02:31:56 +0000 @@ -1,3 +1,8 @@ +2014-01-04 Glenn Morris + + * admin.el (manual-html-fix-node-div): Handle Texinfo 5's movable
. + (manual-html-fix-index-2): Tweak Texinfo 5 table format. + 2014-01-03 Glenn Morris * admin.el: More Texinfo 5 updates. === modified file 'admin/admin.el' --- admin/admin.el 2014-01-03 03:24:27 +0000 +++ admin/admin.el 2014-01-04 02:31:56 +0000 @@ -372,7 +372,7 @@ ;; Close the div id="content" that fix-index-1 added. (insert "\n
\n")) ;; For normal nodes, give the header div a blue bg. - (manual-html-fix-node-div)) + (manual-html-fix-node-div t)) (save-buffer)))))) (defun manual-pdf (texi-file dest) @@ -426,17 +426,38 @@ (search-backward "\\)" nil t) + (setq type (match-string 1)) + ;; NB it is this that makes the bg of non-header cells in the + ;; index tables be blue. Is that intended? + ;; Also, if you don't remove the
, the color of the first + ;; row in the table will be wrong. + ;; This all seems rather odd to me... (replace-match " style=\"background-color:#DDDDFF\">" t t nil 2) (setq opoint (point)) - (re-search-forward "
") - (setq div-end (match-beginning 0)) - (goto-char opoint) - (if (search-forward "
" div-end 'move) - (replace-match "" t t))))) + (when (or split (equal type "node")) + ;; In Texinfo 4, the
(and anchor) comes after the
. + (re-search-forward "
") + (setq div-end (if (equal type "node") + (match-beginning 0) + (line-end-position 2))) + (goto-char opoint) + (if (search-forward "
" div-end 'move) + (replace-match "" t t) + (if split (forward-line -1)))) + ;; In Texinfo 5, the
(and anchor) comes before the
(?). + ;; Except in split output, where it comes on the line after + ;; the
. But only sometimes. I have no clue what the + ;; logic of where it goes is. + (when (equal type "header") + (goto-char opoint) + (when (re-search-backward "^
$" (line-beginning-position -3) t) + (replace-match "") + (goto-char opoint)))))) + (defun manual-html-fix-index-1 () "Remove the h1 header, and the short and long contents lists. @@ -453,42 +474,63 @@ (insert "
\n\n"))) (defun manual-html-fix-index-2 (&optional table-workaround) - "Replace the index list in the current buffer with a HTML table." + "Replace the index list in the current buffer with a HTML table. +Leave point after the table." (if (re-search-forward "" nil t) - ;; It seems that Texinfo 5 already uses a table. - ;; Tweak it a bit. TODO is this worth it? + ;; Texinfo 5 already uses a table. Tweak it a bit. (let (opoint done) (replace-match " style=\"float:left\" width=\"100%\"" nil t nil 1) - ;; Not all manuals have the detailed menu. - ;; If it is there, split it into a separate table. - (when (re-search-forward ".*The Detailed Node Listing *" nil t) - (setq opoint (match-beginning 0)) - (while (and (looking-at " *—") - (zerop (forward-line 1)))) - (delete-region opoint (point)) - (insert "
\n\n\ -

Detailed Node Listing

\n") - (search-forward "") - (delete-region (match-beginning 0) (match-end 0)) - (forward-line -1) - (or (looking-at "^$") (error "Parse error 1")) - (forward-line -1) - (if (looking-at "^$") (error "Parse error 2")) - (forward-line -1) - (or (looking-at "^$") (error "Parse error 3")) - (forward-line 1) - (insert "\n\ -") - ;; Get rid of ugly
 formatting of chapter headings.
-	  (while (and (not done)
-		      (re-search-forward "\\(
\n\\|\
-\n
\\|\\)\ +:
\\(.*\\)" (line-end-position) t) + (replace-match (format "\\1\n") + (forward-line 1)) + ((looking-at "\n") + (replace-match "") + (replace-match "\n")) + ;; Not all manuals have the detailed menu. + ;; If it is there, split it into a separate table. + ((re-search-forward ".*The Detailed Node Listing *" + (line-end-position) t) + (setq opoint (match-beginning 0)) + (while (and (looking-at " *—") + (zerop (forward-line 1)))) + (delete-region opoint (point)) + (insert "
\n\ -") - (forward-line 1) - (insert "
  
\\2" + (if table-workaround + " bgcolor=\"white\"" ""))) + (search-forward "
") + (search-forward "
\n\n\ +

Detailed Node Listing

\n\n

") + ;; FIXME Fragile! + ;; The Emacs and Elisp manual have some text at the + ;; start of the detailed menu that is not part of the menu. + ;; Other manuals do not. + ;; FIXME Texinfo 4 branch does not handle this correctly. + ;; See eg s/emacs/manual/html_node/eintr/index.html + ;; start of "Detailed Node Listing". + (if (re-search-forward "in one step:" (line-end-position 3) t) + (forward-line 1)) + (insert "

\n") + (search-forward "") + (delete-region (match-beginning 0) (match-end 0)) + (forward-line -1) + (or (looking-at "^$") (error "Parse error 1")) + (forward-line -1) + (if (looking-at "^$") (error "Parse error 2")) + (forward-line -1) + (or (looking-at "^$") (error "Parse error 3")) + (forward-line 1) + (insert "\n\ +") + (forward-line 1)) + ((looking-at ".*" nil t) @@ -512,8 +554,6 @@ (insert " \n ") (if table-workaround ;; This works around a Firefox bug in the mono file. - ;; FIXME Is this still needed? - ;; If so, the Texinfo 5 branch needs to add it too. (insert "\n
\n") + (forward-line 1) + (insert "
") (insert "")) (insert tag "" (or desc "")) ------------------------------------------------------------ revno: 115861 committer: Aidan Gauland branch nick: trunk timestamp: Sat 2014-01-04 12:14:16 +1300 message: * eshell.texi (What Eshell is not): Clean up confusing clause. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-03 14:18:24 +0000 +++ doc/misc/ChangeLog 2014-01-03 23:14:16 +0000 @@ -1,3 +1,7 @@ +2014-01-03 Aidan Gauland + + * eshell.texi (What Eshell is not): Clean up confusing clause. + 2014-01-03 Glenn Morris * efaq-w32.texi, reftex.texi: Use @insertcopying in non-TeX. === modified file 'doc/misc/eshell.texi' --- doc/misc/eshell.texi 2014-01-03 01:55:15 +0000 +++ doc/misc/eshell.texi 2014-01-03 23:14:16 +0000 @@ -147,11 +147,11 @@ Eshell is @emph{not} a replacement for system shells such as @command{bash} or @command{zsh}. Use Eshell when you want to move text between Emacs and external processes; if you only want to pipe -output from one external process to another, to another, use a system -shell, because Emacs's IO system is buffer oriented, not stream -oriented, and is very inefficient at such tasks. If you want to write -shell scripts in Eshell, don't; either write an elisp library or use a -system shell. +output from one external process to another (and then another, and so +on), use a system shell, because Emacs's IO system is buffer oriented, +not stream oriented, and is very inefficient at such tasks. If you +want to write shell scripts in Eshell, don't; either write an elisp +library or use a system shell. Some things Eshell just doesn't do well. It fills the niche between IELM and your system shell, where the peculiar use-cases lie, and it ------------------------------------------------------------ revno: 115860 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16247 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2014-01-03 17:38:55 -0500 message: * lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables): Don't bother with syntax-begin-function. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-03 14:18:24 +0000 +++ lisp/ChangeLog 2014-01-03 22:38:55 +0000 @@ -1,3 +1,8 @@ +2014-01-03 Stefan Monnier + + * emacs-lisp/lisp-mode.el (lisp-mode-variables): Don't bother with + syntax-begin-function (bug#16247). + 2014-01-03 Chong Yidong * emacs-lisp/nadvice.el (advice--make-docstring): Change args. === modified file 'lisp/emacs-lisp/lisp-mode.el' --- lisp/emacs-lisp/lisp-mode.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/lisp-mode.el 2014-01-03 22:38:55 +0000 @@ -460,7 +460,7 @@ (setq-local comment-use-global-state t) (setq-local imenu-generic-expression lisp-imenu-generic-expression) (setq-local multibyte-syntax-as-symbol t) - (setq-local syntax-begin-function 'beginning-of-defun) + ;; (setq-local syntax-begin-function 'beginning-of-defun) ;;Bug#16247. (setq font-lock-defaults `(,(if elisp '(lisp-el-font-lock-keywords lisp-el-font-lock-keywords-1 ------------------------------------------------------------ revno: 115859 committer: Vincent Belaïche branch nick: trunk timestamp: Fri 2014-01-03 15:18:24 +0100 message: Reverted revision 115838. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-03 04:10:07 +0000 +++ doc/misc/ChangeLog 2014-01-03 14:18:24 +0000 @@ -19,10 +19,6 @@ * eshell.texi (top): Fix incorrect info filename in an xref. -2014-01-02 Vincent Belaïche - - * ses.texi: Add documentation for local printer functions. - 2014-01-02 Glenn Morris * Makefile.in (cc_mode_deps): Rename from (typo) ccmode_deps. === modified file 'doc/misc/ses.texi' --- doc/misc/ses.texi 2014-01-02 21:05:34 +0000 +++ doc/misc/ses.texi 2014-01-03 14:18:24 +0000 @@ -434,13 +434,6 @@ Centering with tildes (~) and spill-over. @end table -You can define printer function local to a sheet with command -@code{ses-define-local-printer}. For instance define printer -@samp{foo} to @code{"%.2f"} and then use symbol @samp{foo} as a -printer function. Then, if you call again -@code{ses-define-local-printer} on @samp{foo} to redefine it as -@code{"%.3f"} all the cells using printer @samp{foo} will be reprinted -accordingly. @node Clearing cells @section Clearing cells === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-03 14:15:53 +0000 +++ lisp/ChangeLog 2014-01-03 14:18:24 +0000 @@ -45,34 +45,6 @@ * mail/rmail.el (rmail-get-coding-function): Variable. (rmail-get-coding-system): Use it. -2014-01-02 Vincent Belaïche - - * ses.el (ses-initial-global-parameters-re): New defconst, a - specific regexp is needed now that ses.el can handle both - file-format 2 (no local printers) and 3 (may have local printers). - (silence compiler): Add local variables needed for local printer - handling. - (ses-set-localvars): Handle hashmap initialisation. - (ses-paramlines-plist): Add param-line for number of local printers. - (ses-paramfmt-plist): New defconst, needed for code factorization - between functions `ses-set-parameter' and - `ses-file-format-extend-paramter-list' - (ses-make-local-printer-info): New defsubst. - (ses-locprn-get-compiled, ses-locprn-compiled-aset) - (ses-locprn-get-def, ses-locprn-def-aset, ses-locprn-get-number) - (ses-cell-printer-aset): New defmacro. - (ses-local-printer-compile): New defun. - (ses-local-printer): New defmacro. - (ses-printer-validate, ses-call-printer): Add support for local - printer functions. - (ses-file-format-extend-paramter-list): New defun. - (ses-set-parameter): Use const `ses-paramfmt-plist' for code factorization. - (ses-load): Add support for local - printer functions. - (ses-read-printer): Update docstring and add support for local printer functions. - (ses-refresh-local-printer, ses-define-local-printer): New defun. - (ses-safe-printer): Add support for local printer functions. - 2013-12-31 Eli Zaretskii * international/mule-conf.el: Unify the charset indian-is13194. === modified file 'lisp/ses.el' --- lisp/ses.el 2014-01-03 14:15:53 +0000 +++ lisp/ses.el 2014-01-03 14:18:24 +0000 @@ -238,10 +238,6 @@ "\n( ;Global parameters (these are read first)\n 2 ;SES file-format\n 1 ;numrows\n 1 ;numcols\n)\n\n" "Initial contents for the three-element list at the bottom of the data area.") -(defconst ses-initial-global-parameters-re - "\n( ;Global parameters (these are read first)\n [23] ;SES file-format\n [0-9]+ ;numrows\n [0-9]+ ;numcols\n\\( [0-9]+ ;numlocprn\n\\)?)\n\n" - "Match Global parameters for .") - (defconst ses-initial-file-trailer ";; Local Variables:\n;; mode: ses\n;; End:\n" "Initial contents for the file-trailer area at the bottom of the file.") @@ -275,17 +271,11 @@ ;; Local variables and constants ;;---------------------------------------------------------------------------- -(eval-and-compile ; silence compiler +(eval-and-compile (defconst ses-localvars '(ses--blank-line ses--cells ses--col-printers ses--col-widths ses--curcell ses--curcell-overlay ses--default-printer - (ses--local-printer-hashmap . :hashmap) - ;; the list is there to remember the order of local printers like there - ;; are written to the SES filen which service the hashmap does not - ;; provide. - ses--local-printer-list - (ses--numlocprn . 0); count of local printers ses--deferred-narrow ses--deferred-recalc ses--deferred-write ses--file-format ses--named-cell-hashmap @@ -308,20 +298,7 @@ ((symbolp x) (set (make-local-variable x) nil)) ((consp x) - (cond - ((integerp (cdr x)) - (set (make-local-variable (car x)) (cdr x))) - ((eq (cdr x) :hashmap) - (set (make-local-variable (car x)) - (if (boundp (car x)) - (let ((xv (symbol-value (car x)))) - (if (hash-table-p xv) - (clrhash xv) - (warn "Unexpected value of symbol %S, should be a hash table" x) - (make-hash-table :test 'eq))) - (make-hash-table :test 'eq)))) - (t (error "Unexpected initializer `%S' in list `ses-localvars' for entry %S" - (cdr x) (car x)) ) )) + (set (make-local-variable (car x)) (cdr x))) (t (error "Unexpected elements `%S' in list `ses-localvars'" x)))))) (eval-when-compile ; silence compiler @@ -333,21 +310,10 @@ (defconst ses-paramlines-plist '(ses--col-widths -5 ses--col-printers -4 ses--default-printer -3 ses--header-row -2 ses--file-format 1 ses--numrows 2 - ses--numcols 3 ses--numlocprn 4) + ses--numcols 3) "Offsets from 'Global parameters' line to various parameter lines in the data area of a spreadsheet.") -(defconst ses-paramfmt-plist - '(ses--col-widths "(ses-column-widths %S)" - ses--col-printers "(ses-column-printers %S)" - ses--default-printer "(ses-default-printer %S)" - ses--header-row "(ses-header-row %S)" - ses--file-format " %S ;SES file-format" - ses--numrows " %S ;numrows" - ses--numcols " %S ;numcols" - ses--numlocprn " %S ;numlocprn") - "Formats of 'Global parameters' various parameters in the data -area of a spreadsheet.") ;; ;; "Side-effect variables". They are set in one function, altered in @@ -388,30 +354,6 @@ property-list) (vector symbol formula printer references property-list)) -(defsubst ses-make-local-printer-info (def &optional compiled-def number) - (let ((v (vector def - (or compiled-def (ses-local-printer-compile def)) - (or number ses--numlocprn) - nil))) - (push v ses--local-printer-list) - (aset v 3 ses--local-printer-list) - v)) - -(defmacro ses-locprn-get-compiled (locprn) - `(aref ,locprn 1)) - -(defmacro ses-locprn-compiled-aset (locprn compiled) - `(aset ,locprn 1 ,compiled)) - -(defmacro ses-locprn-get-def (locprn) - `(aref ,locprn 0)) - -(defmacro ses-locprn-def-aset (locprn def) - `(aset ,locprn 0 ,def)) - -(defmacro ses-locprn-get-number (locprn) - `(aref ,locprn 2)) - (defmacro ses-cell-symbol (row &optional col) "From a CELL or a pair (ROW,COL), get the symbol that names the local-variable holding its value. (0,0) => A1." `(aref ,(if col `(ses-get-cell ,row ,col) row) 0)) @@ -429,10 +371,6 @@ "From a CELL or a pair (ROW,COL), get the function that prints its value." `(aref ,(if col `(ses-get-cell ,row ,col) row) 2)) -(defmacro ses-cell-printer-aset (cell printer) - "From a CELL set the printer that prints its value." - `(aset ,cell 2 ,printer)) - (defmacro ses-cell-references (row &optional col) "From a CELL or a pair (ROW,COL), get the list of symbols for cells whose functions refer to its value." @@ -612,29 +550,6 @@ (set sym value) sym) -(defun ses-local-printer-compile (printer) - "Convert local printer function into faster printer -definition." - (cond - ((functionp printer) printer) - ((stringp printer) - `(lambda (x) (format ,printer x))) - (t (error "Invalid printer %S" printer)))) - -(defmacro ses-local-printer (printer-name printer-def) - "Define a local printer with name PRINTER-NAME and definition -PRINTER-DEF. Return the printer info." - (or - (and (symbolp printer-name) - (ses-printer-validate printer-def)) - (error "Invalid local printer definition")) - (and (gethash printer-name ses--local-printer-hashmap) - (error "Duplicate printer definition %S" printer-name)) - (add-to-list 'ses-read-printer-history (symbol-name printer-name)) - (puthash printer-name - (ses-make-local-printer-info (ses-safe-printer printer-def)) - ses--local-printer-hashmap)) - (defmacro ses-column-widths (widths) "Load the vector of column widths from the spreadsheet file. This is a macro to prevent propagate-on-load viruses." @@ -748,8 +663,6 @@ "Signal an error if PRINTER is not a valid SES cell printer." (or (not printer) (stringp printer) - ;; printer is a local printer - (and (symbolp printer) (gethash printer ses--local-printer-hashmap)) (functionp printer) (and (stringp (car-safe printer)) (not (cdr printer))) (error "Invalid printer function")) @@ -1347,13 +1260,7 @@ (format (car printer) value) "")) (t - (setq value (funcall - (or (and (symbolp printer) - (let ((locprn (gethash printer ses--local-printer-hashmap))) - (and locprn - (ses-locprn-get-compiled locprn)))) - printer) - (or value ""))) + (setq value (funcall printer (or value ""))) (if (stringp value) value (or (stringp (car-safe value)) @@ -1426,22 +1333,6 @@ (goto-char ses--params-marker) (forward-line def)))) -(defun ses-file-format-extend-paramter-list (new-file-format) - "Extend the global parameters list when file format is updated -from 2 to 3. This happens when local printer function are added -to a sheet that was created with SES version 2. This is not -undoable. Return nil when there was no change, and non nil otherwise." - (save-excursion - (cond - ((and (= ses--file-format 2) (= 3 new-file-format)) - (ses-set-parameter 'ses--file-format 3 ) - (ses-widen) - (goto-char ses--params-marker) - (forward-line (plist-get ses-paramlines-plist 'ses--numlocprn )) - (insert (format (plist-get ses-paramfmt-plist 'ses--numlocprn) ses--numlocprn) - ?\n) - t) ))) - (defun ses-set-parameter (def value &optional elem) "Set parameter DEF to VALUE (with undo) and write the value to the data area. See `ses-goto-data' for meaning of DEF. Newlines in the data are escaped. @@ -1451,7 +1342,13 @@ ;; in case one of them is being changed. (ses-goto-data def) (let ((inhibit-read-only t) - (fmt (plist-get ses-paramfmt-plist + (fmt (plist-get '(ses--col-widths "(ses-column-widths %S)" + ses--col-printers "(ses-column-printers %S)" + ses--default-printer "(ses-default-printer %S)" + ses--header-row "(ses-header-row %S)" + ses--file-format " %S ;SES file-format" + ses--numrows " %S ;numrows" + ses--numcols " %S ;numcols") def)) oldval) (if elem @@ -1837,38 +1734,29 @@ (search-backward ";; Local Variables:\n" nil t) (backward-list 1) (setq ses--params-marker (point-marker)) - (let* ((params (ignore-errors (read (current-buffer)))) - (params-len (safe-length params))) - (or (and (>= params-len 3) - (<= params-len 4) + (let ((params (ignore-errors (read (current-buffer))))) + (or (and (= (safe-length params) 3) (numberp (car params)) (numberp (cadr params)) (>= (cadr params) 0) (numberp (nth 2 params)) - (> (nth 2 params) 0) - (or (<= params-len 3) - (let ((numlocprn (nth 3 params))) - (and (integerp numlocprn) (>= numlocprn 0))))) + (> (nth 2 params) 0)) (error "Invalid SES file")) (setq ses--file-format (car params) ses--numrows (cadr params) - ses--numcols (nth 2 params) - ses--numlocprn (or (nth 3 params) 0)) + ses--numcols (nth 2 params)) (when (= ses--file-format 1) (let (buffer-undo-list) ; This is not undoable. (ses-goto-data 'ses--header-row) (insert "(ses-header-row 0)\n") - (ses-set-parameter 'ses--file-format 3) + (ses-set-parameter 'ses--file-format 2) (message "Upgrading from SES-1 file format"))) - (or (> ses--file-format 3) + (or (= ses--file-format 2) (error "This file needs a newer version of the SES library code")) ;; Initialize cell array. (setq ses--cells (make-vector ses--numrows nil)) (dotimes (row ses--numrows) - (aset ses--cells row (make-vector ses--numcols nil))) - ;; initialize local printer map. - (clrhash ses--local-printer-hashmap)) - + (aset ses--cells row (make-vector ses--numcols nil)))) ;; Skip over print area, which we assume is correct. (goto-char (point-min)) (forward-line ses--numrows) @@ -1879,22 +1767,7 @@ (forward-char (1- (length ses-print-data-boundary))) ;; Initialize printer and symbol lists. (mapc 'ses-printer-record ses-standard-printer-functions) - (setq ses--symbolic-formulas nil) - - ;; Load local printer definitions. - ;; This must be loaded *BEFORE* cells and column printers because the latters - ;; may call them. - (save-excursion - (forward-line (* ses--numrows (1+ ses--numcols))) - (let ((numlocprn ses--numlocprn)) - (setq ses--numlocprn 0) - (dotimes (lp numlocprn) - (let ((x (read (current-buffer)))) - (or (and (looking-at-p "\n") - (eq (car-safe x) 'ses-local-printer) - (eval x)) - (error "local printer-def error")) - (setq ses--numlocprn (1+ ses--numlocprn)))))) + (setq ses--symbolic-formulas nil) ;; Load cell definitions. (dotimes (row ses--numrows) (dotimes (col ses--numcols) @@ -1907,8 +1780,6 @@ (eval x))) (or (looking-at-p "\n\n") (error "Missing blank line between rows"))) - ;; Skip local printer function declaration --- that were already loaded. - (forward-line (+ 2 ses--numlocprn)) ;; Load global parameters. (let ((widths (read (current-buffer))) (n1 (char-after (point))) @@ -1933,7 +1804,8 @@ (1value (eval head-row))) ;; Should be back at global-params. (forward-char 1) - (or (looking-at-p ses-initial-global-parameters-re) + (or (looking-at-p (replace-regexp-in-string "1" "[0-9]+" + ses-initial-global-parameters)) (error "Problem with column-defs or global-params")) ;; Check for overall newline count in definitions area. (forward-line 3) @@ -2517,10 +2389,8 @@ ;;---------------------------------------------------------------------------- (defun ses-read-printer (prompt default) - "Common code for functions `ses-read-cell-printer', `ses-read-column-printer', -`ses-read-default-printer' and `ses-define-local-printer'. -PROMPT should end with \": \". Result is t if operation was -canceled." + "Common code for `ses-read-cell-printer', `ses-read-column-printer', and `ses-read-default-printer'. +PROMPT should end with \": \". Result is t if operation was canceled." (barf-if-buffer-read-only) (if (eq default t) (setq default "") @@ -2540,7 +2410,6 @@ (or (not new) (stringp new) (stringp (car-safe new)) - (and (symbolp new) (gethash new ses--local-printer-hashmap)) (ses-warn-unsafe new 'unsafep-function) (setq new t))) new)) @@ -3474,71 +3343,6 @@ (symbol-name new-name))) (force-mode-line-update))) -(defun ses-refresh-local-printer (name compiled-value) - "Refresh printout of spreadsheet for all cells with printer - defined to local printer named NAME using the value COMPILED-VALUE for this printer" - (message "Refreshing cells using printer %S" name) - (let (new-print) - (dotimes (row ses--numrows) - (dotimes (col ses--numcols) - (let ((cell-printer (ses-cell-printer row col))) - (when (eq cell-printer name) - (unless new-print - (setq new-print t) - (ses-begin-change)) - (ses-print-cell row col))))))) - -(defun ses-define-local-printer (printer-name) - "Define a local printer with name PRINTER-NAME." - (interactive "*SEnter printer name: ") - (let* ((cur-printer (gethash printer-name ses--local-printer-hashmap)) - (default (and (vectorp cur-printer) (ses-locprn-get-def cur-printer))) - printer-def-text - create-printer - (new-printer (ses-read-printer (format "Enter definition of printer %S: " printer-name) default))) - (cond - ;; cancelled operation => do nothing - ((eq new-printer t)) - ;; no change => do nothing - ((and (vectorp cur-printer) (equal new-printer default))) - ;; re-defined printer - ((vectorp cur-printer) - (setq create-printer 0) - (ses-locprn-def-aset cur-printer new-printer) - (ses-refresh-local-printer - printer-name - (ses-locprn-compiled-aset cur-printer (ses-local-printer-compile new-printer)))) - ;; new definition - (t - (setq create-printer 1) - (puthash printer-name - (setq cur-printer - (ses-make-local-printer-info new-printer)) - ses--local-printer-hashmap))) - (when create-printer - (setq printer-def-text - (concat - "(ses-local-printer " - (symbol-name printer-name) - " " - (prin1-to-string (ses-locprn-get-def cur-printer)) - ")")) - (save-excursion - (ses-goto-data ses--numrows - (ses-locprn-get-number cur-printer)) - (let ((inhibit-read-only t)) - ;; Special undo since it's outside the narrowed buffer. - (let (buffer-undo-list) - (if (= create-printer 0) - (delete-region (point) (line-end-position)) - (insert ?\n) - (backward-char)) - (insert printer-def-text) - (when (= create-printer 1) - (ses-file-format-extend-paramter-list 3) - (ses-set-parameter 'ses--numlocprn (+ ses--numlocprn create-printer))) ))))) ) - - ;;---------------------------------------------------------------------------- ;; Checking formulas for safety ;;---------------------------------------------------------------------------- @@ -3548,7 +3352,6 @@ (if (or (stringp printer) (stringp (car-safe printer)) (not printer) - (and (symbolp printer) (gethash printer ses--local-printer-hashmap)) (ses-warn-unsafe printer 'unsafep-function)) printer 'ses-unsafe)) ------------------------------------------------------------ revno: 115858 committer: Vincent Belaïche branch nick: trunk timestamp: Fri 2014-01-03 15:15:53 +0100 message: Reverted revision 115841. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-03 05:37:58 +0000 +++ lisp/ChangeLog 2014-01-03 14:15:53 +0000 @@ -47,11 +47,6 @@ 2014-01-02 Vincent Belaïche - * ses.el (ses-load): Correct handling for ses--file-format - checking. - -2014-01-02 Vincent Belaïche - * ses.el (ses-initial-global-parameters-re): New defconst, a specific regexp is needed now that ses.el can handle both file-format 2 (no local printers) and 3 (may have local printers). === modified file 'lisp/ses.el' --- lisp/ses.el 2014-01-02 22:54:37 +0000 +++ lisp/ses.el 2014-01-03 14:15:53 +0000 @@ -1860,7 +1860,7 @@ (insert "(ses-header-row 0)\n") (ses-set-parameter 'ses--file-format 3) (message "Upgrading from SES-1 file format"))) - (or (<= ses--file-format 3) + (or (> ses--file-format 3) (error "This file needs a newer version of the SES library code")) ;; Initialize cell array. (setq ses--cells (make-vector ses--numrows nil)) ------------------------------------------------------------ revno: 115857 committer: Glenn Morris branch nick: trunk timestamp: Fri 2014-01-03 06:21:25 -0500 message: Auto-commit of loaddefs files. diff: === modified file 'lisp/dired.el' --- lisp/dired.el 2014-01-01 07:43:34 +0000 +++ lisp/dired.el 2014-01-03 11:21:25 +0000 @@ -3850,7 +3850,7 @@ ;;; Start of automatically extracted autoloads. -;;;### (autoloads nil "dired-aux" "dired-aux.el" "73fd06d9614bf44e2ced2e0c13024008") +;;;### (autoloads nil "dired-aux" "dired-aux.el" "8861a67d8b72a1110007fba0be161c86") ;;; Generated autoloads from dired-aux.el (autoload 'dired-diff "dired-aux" "\ === modified file 'lisp/mail/rmail.el' --- lisp/mail/rmail.el 2014-01-02 22:30:32 +0000 +++ lisp/mail/rmail.el 2014-01-03 11:21:25 +0000 @@ -4677,7 +4677,7 @@ ;;;*** -;;;### (autoloads nil "rmailmm" "rmailmm.el" "47599e3257b0fc7c84f237db0324d718") +;;;### (autoloads nil "rmailmm" "rmailmm.el" "14706c880a031839d767ee7edaeef97e") ;;; Generated autoloads from rmailmm.el (autoload 'rmail-mime "rmailmm" "\ ------------------------------------------------------------ revno: 115856 committer: Paul Eggert branch nick: trunk timestamp: Thu 2014-01-02 22:47:27 -0800 message: Port to C89. * data.c (arithcompare_driver): * fileio.c (Fcar_less_than_car): * fns.c (internal_equal): * frame.c (delete_frame): * lisp.h (enum More_Lisp_Bits): * lread.c (read1): Avoid C99 constructs that don't work in C89. * data.c (ULL_MAX, count_trailing_zeros_ll): New macros, to port to C89, which doesn't have 'long long'. (count_trailing_zero_bits): Use them. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-01-03 05:37:58 +0000 +++ src/ChangeLog 2014-01-03 06:47:27 +0000 @@ -1,3 +1,17 @@ +2014-01-03 Paul Eggert + + Port to C89. + * data.c (arithcompare_driver): + * fileio.c (Fcar_less_than_car): + * fns.c (internal_equal): + * frame.c (delete_frame): + * lisp.h (enum More_Lisp_Bits): + * lread.c (read1): + Avoid C99 constructs that don't work in C89. + * data.c (ULL_MAX, count_trailing_zeros_ll): New macros, + to port to C89, which doesn't have 'long long'. + (count_trailing_zero_bits): Use them. + 2014-01-03 Chong Yidong * doc.c (Fdocumentation): Remove dynamic-docstring-function. === modified file 'src/data.c' --- src/data.c 2014-01-01 07:43:34 +0000 +++ src/data.c 2014-01-03 06:47:27 +0000 @@ -2320,7 +2320,8 @@ arithcompare_driver (ptrdiff_t nargs, Lisp_Object *args, enum Arith_Comparison comparison) { - for (ptrdiff_t argnum = 1; argnum < nargs; ++argnum) + ptrdiff_t argnum; + for (argnum = 1; argnum < nargs; ++argnum) { if (EQ (Qnil, arithcompare (args[argnum-1], args[argnum], comparison))) return Qnil; @@ -2979,10 +2980,12 @@ #if HAVE_UNSIGNED_LONG_LONG_INT enum { BITS_PER_ULL = CHAR_BIT * sizeof (unsigned long long) }; +# define ULL_MAX ULLONG_MAX #else enum { BITS_PER_ULL = CHAR_BIT * sizeof (unsigned long) }; -# define ULLONG_MAX ULONG_MAX +# define ULL_MAX ULONG_MAX # define count_one_bits_ll count_one_bits_l +# define count_trailing_zeros_ll count_trailing_zeros_l #endif /* Shift VAL right by the width of an unsigned long long. @@ -3140,7 +3143,7 @@ return count_trailing_zeros (val); if (BITS_WORD_MAX == ULONG_MAX) return count_trailing_zeros_l (val); - if (BITS_WORD_MAX == ULLONG_MAX) + if (BITS_WORD_MAX == ULL_MAX) return count_trailing_zeros_ll (val); /* The rest of this code is for the unlikely platform where bits_word differs @@ -3157,7 +3160,7 @@ count < BITS_PER_BITS_WORD - BITS_PER_ULL; count += BITS_PER_ULL) { - if (val & ULLONG_MAX) + if (val & ULL_MAX) return count + count_trailing_zeros_ll (val); val = shift_right_ull (val); } === modified file 'src/fileio.c' --- src/fileio.c 2014-01-01 17:44:48 +0000 +++ src/fileio.c 2014-01-03 06:47:27 +0000 @@ -5053,7 +5053,9 @@ doc: /* Return t if (car A) is numerically less than (car B). */) (Lisp_Object a, Lisp_Object b) { - Lisp_Object args[2] = { Fcar (a), Fcar (b), }; + Lisp_Object args[2]; + args[0] = Fcar (a); + args[1] = Fcar (b); return Flss (2, args); } === modified file 'src/fns.c' --- src/fns.c 2014-01-01 07:43:34 +0000 +++ src/fns.c 2014-01-03 06:47:27 +0000 @@ -1996,7 +1996,9 @@ error ("Stack overflow in equal"); if (NILP (ht)) { - Lisp_Object args[2] = { QCtest, Qeq }; + Lisp_Object args[2]; + args[0] = QCtest; + args[1] = Qeq; ht = Fmake_hash_table (2, args); } switch (XTYPE (o1)) === modified file 'src/frame.c' --- src/frame.c 2014-01-02 15:58:48 +0000 +++ src/frame.c 2014-01-03 06:47:27 +0000 @@ -1372,10 +1372,11 @@ { + struct terminal *terminal; block_input (); if (FRAME_TERMINAL (f)->delete_frame_hook) (*FRAME_TERMINAL (f)->delete_frame_hook) (f); - struct terminal *terminal = FRAME_TERMINAL (f); + terminal = FRAME_TERMINAL (f); f->output_data.nothing = 0; f->terminal = 0; /* Now the frame is dead. */ unblock_input (); === modified file 'src/lisp.h' --- src/lisp.h 2014-01-01 19:27:41 +0000 +++ src/lisp.h 2014-01-03 06:47:27 +0000 @@ -633,7 +633,7 @@ /* Used to extract pseudovector subtype information. */ PSEUDOVECTOR_AREA_BITS = PSEUDOVECTOR_SIZE_BITS + PSEUDOVECTOR_REST_BITS, - PVEC_TYPE_MASK = 0x3f << PSEUDOVECTOR_AREA_BITS, + PVEC_TYPE_MASK = 0x3f << PSEUDOVECTOR_AREA_BITS }; /* These functions extract various sorts of values from a Lisp_Object. === modified file 'src/lread.c' --- src/lread.c 2014-01-01 23:13:59 +0000 +++ src/lread.c 2014-01-03 06:47:27 +0000 @@ -2654,9 +2654,10 @@ /* Accept compiled functions at read-time so that we don't have to build them using function calls. */ Lisp_Object tmp; + struct Lisp_Vector *vec; tmp = read_vector (readcharfun, 1); - struct Lisp_Vector* vec = XVECTOR (tmp); - if (vec->header.size==0) + vec = XVECTOR (tmp); + if (vec->header.size == 0) invalid_syntax ("Empty byte-code object"); make_byte_code (vec); return tmp; ------------------------------------------------------------ revno: 115855 committer: Paul Eggert branch nick: trunk timestamp: Thu 2014-01-02 22:42:23 -0800 message: Whitespace fixes for recently-added code. diff: === modified file 'src/alloc.c' --- src/alloc.c 2014-01-01 07:43:34 +0000 +++ src/alloc.c 2014-01-03 06:42:23 +0000 @@ -3214,8 +3214,9 @@ void make_byte_code (struct Lisp_Vector *v) { - /* Don't allow the global zero_vector to become a byte code object. */ - eassert(0 < v->header.size); + /* Don't allow the global zero_vector to become a byte code object. */ + eassert (0 < v->header.size); + if (v->header.size > 1 && STRINGP (v->contents[1]) && STRING_MULTIBYTE (v->contents[1])) /* BYTECODE-STRING must have been produced by Emacs 20.2 or the ------------------------------------------------------------ revno: 115854 committer: Chong Yidong branch nick: trunk timestamp: Fri 2014-01-03 13:49:06 +0800 message: Lisp manaual improvements re docstrings * doc/lispref/compile.texi (Docs and Compilation): Copyedits. * doc/lispref/help.texi (Documentation, Accessing Documentation): Copyedits. (Documentation Basics): Rewrite, avoiding a repeat discussion of docstring conventions. * doc/lispref/tips.texi (Documentation Tips): Move discussion of emacs-lisp-docstring-fill-column here from Documentation Basics. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-01-02 19:17:48 +0000 +++ doc/lispref/ChangeLog 2014-01-03 05:49:06 +0000 @@ -1,3 +1,14 @@ +2014-01-03 Chong Yidong + + * help.texi (Documentation, Accessing Documentation): Copyedits. + (Documentation Basics): Rewrite, avoiding a repeat discussion of + docstring conventions. + + * tips.texi (Documentation Tips): Move discussion of + emacs-lisp-docstring-fill-column here from Documentation Basics. + + * compile.texi (Docs and Compilation): Copyedits. + 2014-01-02 Glenn Morris * numbers.texi (Numeric Conversions): Fix a typo. === modified file 'doc/lispref/compile.texi' --- doc/lispref/compile.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/compile.texi 2014-01-03 05:49:06 +0000 @@ -240,60 +240,50 @@ @section Documentation Strings and Compilation @cindex dynamic loading of documentation - Functions and variables loaded from a byte-compiled file access their -documentation strings dynamically from the file whenever needed. This -saves space within Emacs, and makes loading faster because the -documentation strings themselves need not be processed while loading the -file. Actual access to the documentation strings becomes slower as a -result, but this normally is not enough to bother users. - - Dynamic access to documentation strings does have drawbacks: - -@itemize @bullet -@item -If you delete or move the compiled file after loading it, Emacs can no -longer access the documentation strings for the functions and variables -in the file. - -@item -If you alter the compiled file (such as by compiling a new version), -then further access to documentation strings in this file will -probably give nonsense results. -@end itemize - -@noindent -These problems normally occur only if you build Emacs yourself and use -it from the directory where you built it, and you happen to edit -and/or recompile the Lisp source files. They can be easily cured by -reloading each file after recompiling it. - -@cindex @samp{#@@@var{count}} -@cindex @samp{#$} - The dynamic documentation string feature writes compiled files that -use a special Lisp reader construct, @samp{#@@@var{count}}. This -construct skips the next @var{count} characters. It also uses the -@samp{#$} construct, which stands for ``the name of this file, as a -string''. It is usually best not to use these constructs in Lisp source -files, since they are not designed to be clear to humans reading the -file. - - You can disable the dynamic documentation string feature at compile -time by setting @code{byte-compile-dynamic-docstrings} to @code{nil}; -this is useful mainly if you expect to change the file, and you want -Emacs processes that have already loaded it to keep working when the -file changes. You can do this globally, or for one source file by -specifying a file-local binding for the variable. One way to do that -is by adding this string to the file's first line: - -@example --*-byte-compile-dynamic-docstrings: nil;-*- -@end example + When Emacs loads functions and variables from a byte-compiled file, +it normally does not load their documentation strings into memory. +Each documentation string is ``dynamically'' loaded from the +byte-compiled file only when needed. This saves memory, and speeds up +loading by skipping the processing of the documentation strings. + + This feature has a drawback: if you delete, move, or alter the +compiled file (such as by compiling a new version), Emacs may no +longer be able to access the documentation string of previously-loaded +functions or variables. Such a problem normally only occurs if you +build Emacs yourself, and happen to edit and/or recompile the Lisp +source files. To solve it, just reload each file after recompilation. + + Dynamic loading of documentation strings from byte-compiled files is +determined, at compile time, for each byte-compiled file. It can be +disabled via the option @code{byte-compile-dynamic-docstrings}. @defopt byte-compile-dynamic-docstrings If this is non-@code{nil}, the byte compiler generates compiled files that are set up for dynamic loading of documentation strings. + +To disable the dynamic loading feature for a specific file, set this +option to @code{nil} in its header line (@pxref{File Variables, , +Local Variables in Files, emacs, The GNU Emacs Manual}), like this: + +@smallexample +-*-byte-compile-dynamic-docstrings: nil;-*- +@end smallexample + +This is useful mainly if you expect to change the file, and you want +Emacs sessions that have already loaded it to keep working when the +file changes. @end defopt +@cindex @samp{#@@@var{count}} +@cindex @samp{#$} +Internally, the dynamic loading of documentation strings is +accomplished by writing compiled files with a special Lisp reader +construct, @samp{#@@@var{count}}. This construct skips the next +@var{count} characters. It also uses the @samp{#$} construct, which +stands for ``the name of this file, as a string''. Do not use these +constructs in Lisp source files; they are not designed to be clear to +humans reading the file. + @node Dynamic Loading @section Dynamic Loading of Individual Functions === modified file 'doc/lispref/help.texi' --- doc/lispref/help.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/help.texi 2014-01-03 05:49:06 +0000 @@ -10,8 +10,13 @@ GNU Emacs has convenient built-in help facilities, most of which derive their information from documentation strings associated with functions and variables. This chapter describes how to access -documentation strings in Lisp programs. @xref{Documentation Tips}, -for how to write good documentation strings. +documentation strings in Lisp programs. + + The contents of a documentation string should follow certain +conventions. In particular, its first line should be a complete +sentence (or two complete sentences) that briefly describes what the +function or variable does. @xref{Documentation Tips}, for how to +write good documentation strings. Note that the documentation strings for Emacs are not the same thing as the Emacs manual. Manuals have their own source files, written in @@ -40,77 +45,48 @@ @cindex string, writing a doc string A documentation string is written using the Lisp syntax for strings, -with double-quote characters surrounding the text of the string. This -is because it really is a Lisp string object. The string serves as -documentation when it is written in the proper place in the definition -of a function or variable. In a function definition, the documentation -string follows the argument list. In a variable definition, the -documentation string follows the initial value of the variable. - - When you write a documentation string, make the first line a -complete sentence (or two complete sentences) that briefly describes -what the function or variable does. Some commands, such as -@code{apropos}, show only the first line of a multi-line documentation -string. Also, you should not indent the second line of a -documentation string, if it has one, because that looks odd when you -use @kbd{C-h f} (@code{describe-function}) or @kbd{C-h v} -(@code{describe-variable}) to view the documentation string. There -are many other conventions for documentation strings; see -@ref{Documentation Tips}. - - Documentation strings can contain several special text sequences, -referring to key bindings which are looked up in the current keymaps -when the user views the documentation. This allows the help commands -to display the correct keys even if a user rearranges the default key +with double-quote characters surrounding the text. It is, in fact, an +actual Lisp string. When the string appears in the proper place in a +function or variable definition, it serves as the function's or +variable's documentation. + +@cindex @code{function-documentation} property + In a function definition (a @code{lambda} or @code{defun} form), the +documentation string is specified after the argument list, and is +normally stored directly in the function object. @xref{Function +Documentation}. You can also put function documentation in the +@code{function-documentation} property of a function name +(@pxref{Accessing Documentation}). + +@cindex @code{variable-documentation} property + In a variable definition (a @code{defvar} form), the documention +string is specified after the initial value. @xref{Defining +Variables}. The string is stored in the variable's +@code{variable-documentation} property. + +@cindex @file{DOC} (documentation) file + Sometimes, Emacs does not keep documentation strings in memory. +There are two such circumstances. Firstly, to save memory, the +documentation for preloaded functions and variables (including +primitives) is kept in a file named @file{DOC}, in the directory +specified by @code{doc-directory} (@pxref{Accessing Documentation}). +Secondly, when a function or variable is loaded from a byte-compiled +file, Emacs avoids loading its documentation string (@pxref{Docs and +Compilation}). In both cases, Emacs looks up the documentation string +from the file only when needed, such as when the user calls @kbd{C-h +f} (@code{describe-function}) for a function. + + Documentation strings can contain special @dfn{key substitution +sequences}, referring to key bindings which are looked up only when +the user views the documentation. This allows the help commands to +display the correct keys even if a user rearranges the default key bindings. @xref{Keys in Documentation}. In the documentation string of an autoloaded command -(@pxref{Autoload}), these special text sequences have an additional -special effect: they cause @kbd{C-h f} (@code{describe-function}) on -the command to trigger autoloading. (This is needed for correctly -setting up the hyperlinks in the @file{*Help*} buffer). - -@vindex emacs-lisp-docstring-fill-column - Emacs Lisp mode fills documentation strings to the width -specified by @code{emacs-lisp-docstring-fill-column}. - - Exactly where a documentation string is stored depends on how its -function or variable was defined or loaded into memory: - -@itemize @bullet -@item -@kindex function-documentation -When you define a function (@pxref{Lambda Expressions}, and -@pxref{Function Documentation}), the documentation string is stored in -the function definition itself. You can also put function -documentation in the @code{function-documentation} property of a -function name. That is useful for function definitions which can't -hold a documentation string, such as keyboard macros. - -@item -@kindex variable-documentation -When you define a variable with a @code{defvar} or related form -(@pxref{Defining Variables}), the documentation is stored in the -variable's @code{variable-documentation} property. - -@cindex @file{DOC} (documentation) file -@item -To save memory, the documentation for preloaded functions and -variables (including primitive functions and autoloaded functions) is -not kept in memory, but in the file -@file{emacs/etc/DOC}). - -@item -When a function or variable is loaded from a byte-compiled file during -the Emacs session, its documentation string is not loaded into memory. -Instead, Emacs looks it up in the byte-compiled file as needed. -@xref{Docs and Compilation}. -@end itemize - -@noindent -Regardless of where the documentation string is stored, you can -retrieve it using the @code{documentation} or -@code{documentation-property} function, described in the next section. +(@pxref{Autoload}), these key-substitution sequences have an +additional special effect: they cause @kbd{C-h f} on the command to +trigger autoloading. (This is needed for correctly setting up the +hyperlinks in the @file{*Help*} buffer.) @node Accessing Documentation @section Access to Documentation Strings @@ -122,18 +98,20 @@ which @var{property} is @code{variable-documentation}. However, it can also be used to look up other kinds of documentation, such as for customization groups (but for function documentation, use the -@code{documentation} command, below). - -If the value recorded in the property list refers to a documentation -string stored in a @file{DOC} file or a byte-compiled -file, it looks up that string and returns it. If the property value -isn't @code{nil}, isn't a string, and doesn't refer to text in a file, -then it is evaluated as a Lisp expression to obtain a string. - -The last thing this function does is pass the string through -@code{substitute-command-keys} to substitute actual key bindings -(@pxref{Keys in Documentation}). However, it skips this step if -@var{verbatim} is non-@code{nil}. +@code{documentation} function, below). + +If the property value refers to a documentation string stored in the +@file{DOC} file or a byte-compiled file, this function looks up that +string and returns it. + +If the property value isn't @code{nil}, isn't a string, and doesn't +refer to text in a file, then it is evaluated as a Lisp expression to +obtain a string. + +Finally, this function passes the string through +@code{substitute-command-keys} to substitute key bindings (@pxref{Keys +in Documentation}). It skips this step if @var{verbatim} is +non-@code{nil}. @smallexample @group @@ -160,16 +138,18 @@ If @var{function} is a symbol, this function first looks for the @code{function-documentation} property of that symbol; if that has a non-@code{nil} value, the documentation comes from that value (if the -value is not a string, it is evaluated). If @var{function} is not a -symbol, or if it has no @code{function-documentation} property, then -@code{documentation} extracts the documentation string from the actual -function definition, reading it from a file if called for. - -Finally, unless @var{verbatim} is non-@code{nil}, it calls -@code{substitute-command-keys} so as to return a value containing the -actual (current) key bindings. - -The function @code{documentation} signals a @code{void-function} error +value is not a string, it is evaluated). + +If @var{function} is not a symbol, or if it has no +@code{function-documentation} property, then @code{documentation} +extracts the documentation string from the actual function definition, +reading it from a file if called for. + +Finally, unless @var{verbatim} is non-@code{nil}, this function calls +@code{substitute-command-keys}. The result is the documentation +string to return. + +The @code{documentation} function signals a @code{void-function} error if @var{function} has no function definition. However, it is OK if the function definition has no documentation string. In that case, @code{documentation} returns @code{nil}. @@ -180,7 +160,6 @@ face. @end defun -@c Wordy to prevent overfull hboxes. --rjc 15mar92 Here is an example of using the two functions, @code{documentation} and @code{documentation-property}, to display the documentation strings for several symbols in a @file{*Help*} buffer. @@ -313,6 +292,7 @@ @cindex documentation, keys in @cindex keys in documentation strings @cindex substituting keys in documentation +@cindex key substitution sequence When documentation strings refer to key sequences, they should use the current, actual key bindings. They can do so using certain special text === modified file 'doc/lispref/tips.texi' --- doc/lispref/tips.texi 2014-01-01 08:31:29 +0000 +++ doc/lispref/tips.texi 2014-01-03 05:49:06 +0000 @@ -573,10 +573,13 @@ 60 characters. The first line should not be wider than 67 characters or it will look bad in the output of @code{apropos}. -You can fill the text if that looks good. However, rather than blindly -filling the entire documentation string, you can often make it much more -readable by choosing certain line breaks with care. Use blank lines -between sections if the documentation string is long. +@vindex emacs-lisp-docstring-fill-column +You can fill the text if that looks good. Emacs Lisp mode fills +documentation strings to the width specified by +@code{emacs-lisp-docstring-fill-column}. However, you can sometimes +make a documentation string much more readable by adjusting its line +breaks with care. Use blank lines between sections if the +documentation string is long. @item The first line of the documentation string should consist of one or two ------------------------------------------------------------ revno: 115853 committer: Chong Yidong branch nick: trunk timestamp: Fri 2014-01-03 13:37:58 +0800 message: Remove the dynamic-docstring-function feature. * emacs-lisp/advice.el (ad--make-advised-docstring): Change args. Ignore function-documentation property when getting documentation. (ad-activate-advised-definition): Use function-documentation generate the docstring. (ad-make-advised-definition): Don't call ad-make-advised-definition-docstring. (ad-make-advised-definition-docstring, ad-advised-definition-p): Delete functions. * emacs-lisp/nadvice.el (advice--make-docstring): Change args. (advice--docstring): Delete variable. (advice--make-1): Leave the docstring empty. (advice-add): Use function-documentation for advised docstring. * progmodes/sql.el (sql-help): Use function-documentation instead of dynamic-docstring-function property. No need to autoload now. (sql--help-docstring): New variable. (sql--make-help-docstring): Use it. * doc.c (Fdocumentation): Remove dynamic-docstring-function. diff: === modified file 'etc/NEWS' --- etc/NEWS 2014-01-02 09:40:11 +0000 +++ etc/NEWS 2014-01-03 05:37:58 +0000 @@ -995,9 +995,6 @@ ** The `defalias-fset-function' property lets you catch `defalias' calls, and redirect them to your own function, instead of `fset'. -** Docstrings can be made dynamic by adding a `dynamic-docstring-function' -text-property on the first char. - +++ ** New variable `enable-dir-local-variables'. Directory-local variables are ignored if this is nil. This may be === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-03 05:10:52 +0000 +++ lisp/ChangeLog 2014-01-03 05:37:58 +0000 @@ -1,3 +1,24 @@ +2014-01-03 Chong Yidong + + * emacs-lisp/nadvice.el (advice--make-docstring): Change args. + (advice--docstring): Delete variable. + (advice--make-1): Leave the docstring empty. + (advice-add): Use function-documentation for advised docstring. + + * emacs-lisp/advice.el (ad--make-advised-docstring): Change args. + Ignore function-documentation property when getting documentation. + (ad-activate-advised-definition): Use function-documentation + generate the docstring. + (ad-make-advised-definition): Don't call + ad-make-advised-definition-docstring. + (ad-make-advised-definition-docstring, ad-advised-definition-p): + Delete functions. + + * progmodes/sql.el (sql-help): Use function-documentation instead + of dynamic-docstring-function property. No need to autoload now. + (sql--help-docstring): New variable. + (sql--make-help-docstring): Use it. + 2014-01-03 Stefan Monnier * ielm.el (ielm-tab): Retarget. === modified file 'lisp/emacs-lisp/advice.el' --- lisp/emacs-lisp/advice.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/advice.el 2014-01-03 05:37:58 +0000 @@ -2185,26 +2185,6 @@ (if (ad-interactive-form definition) 1 0)) (cdr (cdr (ad-lambda-expression definition))))))) -(defun ad-make-advised-definition-docstring (_function) - "Make an identifying docstring for the advised definition of FUNCTION. -Put function name into the documentation string so we can infer -the name of the advised function from the docstring. This is needed -to generate a proper advised docstring even if we are just given a -definition (see the code for `documentation')." - (eval-when-compile - (propertize "Advice function assembled by advice.el." - 'dynamic-docstring-function - #'ad--make-advised-docstring))) - -(defun ad-advised-definition-p (definition) - "Return non-nil if DEFINITION was generated from advice information." - (if (or (ad-lambda-p definition) - (macrop definition) - (ad-compiled-p definition)) - (let ((docstring (ad-docstring definition))) - (and (stringp docstring) - (get-text-property 0 'dynamic-docstring-function docstring))))) - (defun ad-definition-type (definition) "Return symbol that describes the type of DEFINITION." ;; These symbols are only ever used to check a cache entry's validity. @@ -2498,36 +2478,39 @@ (require 'help-fns) ;For help-split-fundoc and help-add-fundoc-usage. -(defun ad--make-advised-docstring (origdoc function &optional style) +(defun ad--make-advised-docstring (function &optional style) "Construct a documentation string for the advised FUNCTION. -It concatenates the original documentation with the documentation -strings of the individual pieces of advice which will be formatted -according to STYLE. STYLE can be `plain', everything else -will be interpreted as `default'. The order of the advice documentation -strings corresponds to before/around/after and the individual ordering -in any of these classes." - (if (and (symbolp function) - (string-match "\\`ad-+Advice-" (symbol-name function))) - (setq function - (intern (substring (symbol-name function) (match-end 0))))) - (let* ((usage (help-split-fundoc origdoc function)) - paragraphs advice-docstring) - (setq usage (if (null usage) t (setq origdoc (cdr usage)) (car usage))) - (if origdoc (setq paragraphs (list origdoc))) - (dolist (class ad-advice-classes) - (dolist (advice (ad-get-enabled-advices function class)) - (setq advice-docstring - (ad-make-single-advice-docstring advice class style)) - (if advice-docstring - (push advice-docstring paragraphs)))) - (setq origdoc (if paragraphs - (propertize - ;; separate paragraphs with blank lines: - (mapconcat 'identity (nreverse paragraphs) "\n\n") - ;; FIXME: what is this for? - 'dynamic-docstring-function - #'ad--make-advised-docstring))) - (help-add-fundoc-usage origdoc usage))) +Concatenate the original documentation with the documentation +strings of the individual pieces of advice. Optional argument +STYLE specifies how to format the pieces of advice; it can be +`plain', or any other value which means the default formatting. + +The advice documentation is shown in order of before/around/after +advice type, obeying the priority in each of these types." + ;; Retrieve the original function documentation + (let* ((fun (get function 'function-documentation)) + (origdoc (unwind-protect + (progn (put function 'function-documentation nil) + (documentation function t)) + (put function 'function-documentation fun)))) + (if (and (symbolp function) + (string-match "\\`ad-+Advice-" (symbol-name function))) + (setq function + (intern (substring (symbol-name function) (match-end 0))))) + (let* ((usage (help-split-fundoc origdoc function)) + paragraphs advice-docstring) + (setq usage (if (null usage) t (setq origdoc (cdr usage)) (car usage))) + (if origdoc (setq paragraphs (list origdoc))) + (dolist (class ad-advice-classes) + (dolist (advice (ad-get-enabled-advices function class)) + (setq advice-docstring + (ad-make-single-advice-docstring advice class style)) + (if advice-docstring + (push advice-docstring paragraphs)))) + (setq origdoc (if paragraphs + (mapconcat 'identity (nreverse paragraphs) + "\n\n"))) + (help-add-fundoc-usage origdoc usage)))) ;; @@@ Accessing overriding arglists and interactive forms: @@ -2575,7 +2558,7 @@ ;; Finally, build the sucker: (ad-assemble-advised-definition advised-arglist - (ad-make-advised-definition-docstring function) + nil interactive-form orig-form (ad-get-enabled-advices function 'before) @@ -2889,6 +2872,8 @@ (fset advicefunname (or verified-cached-definition (ad-make-advised-definition function))) + (put advicefunname 'function-documentation + `(ad--make-advised-docstring ',advicefunname)) (unless (equal (interactive-form advicefunname) old-ispec) ;; If the interactive-spec of advicefunname has changed, force nadvice to ;; refresh its copy. === modified file 'lisp/emacs-lisp/nadvice.el' --- lisp/emacs-lisp/nadvice.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/nadvice.el 2014-01-03 05:37:58 +0000 @@ -67,8 +67,8 @@ (defsubst advice--cdr (f) (aref (aref f 2) 2)) (defsubst advice--props (f) (aref (aref f 2) 3)) -(defun advice--make-docstring (_string function) - "Build the raw doc-string of SYMBOL, presumably advised." +(defun advice--make-docstring (function) + "Build the raw docstring for FUNCTION, presumably advised." (let ((flist (indirect-function function)) (docstring nil)) (if (eq 'macro (car-safe flist)) (setq flist (cdr flist))) @@ -105,13 +105,6 @@ (setq origdoc (cdr usage)) (car usage))) (help-add-fundoc-usage (concat docstring origdoc) usage)))) -(defvar advice--docstring - ;; Can't eval-when-compile nor use defconst because it then gets pure-copied, - ;; which drops the text-properties. - ;;(eval-when-compile - (propertize "Advised function" - 'dynamic-docstring-function #'advice--make-docstring)) ;; ) - (defun advice-eval-interactive-spec (spec) "Evaluate the interactive spec SPEC." (cond @@ -144,7 +137,7 @@ (advice (apply #'make-byte-code 128 byte-code (vector #'apply function main props) stack-depth - advice--docstring + nil (and (or (commandp function) (commandp main)) (not (and (symbolp main) ;; Don't autoload too eagerly! (autoloadp (symbol-function main)))) @@ -370,7 +363,6 @@ (unless (eq oldadv (get symbol 'advice--pending)) (put symbol 'advice--pending (advice--subst-main oldadv nil))) (funcall fsetfun symbol newdef)))) - ;;;###autoload (defun advice-add (symbol where function &optional props) @@ -398,6 +390,7 @@ (get symbol 'advice--pending)) (t (symbol-function symbol))) function props) + (put symbol 'function-documentation `(advice--make-docstring ',symbol)) (add-function :around (get symbol 'defalias-fset-function) #'advice--defalias-fset)) nil) === modified file 'lisp/progmodes/sql.el' --- lisp/progmodes/sql.el 2014-01-01 07:43:34 +0000 +++ lisp/progmodes/sql.el 2014-01-03 05:37:58 +0000 @@ -2826,14 +2826,14 @@ "]\n")))) doc)) -;;;###autoload -(eval - ;; FIXME: This dynamic-docstring-function trick doesn't work for byte-compiled - ;; functions, because of the lazy-loading of docstrings, which strips away - ;; text properties. - '(defun sql-help () - #("Show short help for the SQL modes. +(defun sql-help () + "Show short help for the SQL modes." + (interactive) + (describe-function 'sql-help)) +(put 'sql-help 'function-documentation '(sql--make-help-docstring)) +(defvar sql--help-docstring + "Show short help for the SQL modes. Use an entry function to open an interactive SQL buffer. This buffer is usually named `*SQL*'. The name of the major mode is SQLi. @@ -2862,24 +2862,20 @@ In this SQL buffer (SQL mode), you can send the region or the entire buffer to the interactive SQL buffer (SQLi mode). The results are -appended to the SQLi buffer without disturbing your SQL buffer." - 0 1 (dynamic-docstring-function sql--make-help-docstring)) - (interactive) - (describe-function 'sql-help))) - -(defun sql--make-help-docstring (doc _fun) - "Insert references to loaded products into the help buffer string." - - ;; Insert FREE software list - (when (string-match "^\\(\\s-*\\)[\\\\][\\\\]FREE\\s-*\n" doc 0) - (setq doc (replace-match (sql-help-list-products (match-string 1 doc) t) - t t doc 0))) - - ;; Insert non-FREE software list - (when (string-match "^\\(\\s-*\\)[\\\\][\\\\]NONFREE\\s-*\n" doc 0) - (setq doc (replace-match (sql-help-list-products (match-string 1 doc) nil) - t t doc 0))) - doc) +appended to the SQLi buffer without disturbing your SQL buffer.") + +(defun sql--make-help-docstring () + "Return a docstring for `sql-help' listing loaded SQL products." + (let ((doc sql--help-docstring)) + ;; Insert FREE software list + (when (string-match "^\\(\\s-*\\)[\\\\][\\\\]FREE\\s-*$" doc 0) + (setq doc (replace-match (sql-help-list-products (match-string 1 doc) t) + t t doc 0))) + ;; Insert non-FREE software list + (when (string-match "^\\(\\s-*\\)[\\\\][\\\\]NONFREE\\s-*$" doc 0) + (setq doc (replace-match (sql-help-list-products (match-string 1 doc) nil) + t t doc 0))) + doc)) (defun sql-default-value (var) "Fetch the value of a variable. === modified file 'src/ChangeLog' --- src/ChangeLog 2014-01-02 15:58:48 +0000 +++ src/ChangeLog 2014-01-03 05:37:58 +0000 @@ -1,3 +1,7 @@ +2014-01-03 Chong Yidong + + * doc.c (Fdocumentation): Remove dynamic-docstring-function. + 2014-01-02 Martin Rudalics Further adjust frame/window scrollbar width calculations. === modified file 'src/doc.c' --- src/doc.c 2014-01-01 07:43:34 +0000 +++ src/doc.c 2014-01-03 05:37:58 +0000 @@ -416,21 +416,6 @@ xsignal1 (Qinvalid_function, fun); } - /* Check for a dynamic docstring. These come with - a dynamic-docstring-function text property. */ - if (STRINGP (doc)) - { - Lisp_Object func - = Fget_text_property (make_number (0), - intern ("dynamic-docstring-function"), - doc); - if (!NILP (func)) - /* Pass both `doc' and `function' since `function' can be needed, and - finding `doc' can be annoying: calling `documentation' is not an - option because it would infloop. */ - doc = call2 (func, doc, function); - } - /* If DOC is 0, it's typically because of a dumped file missing from the DOC file (bug in src/Makefile.in). */ if (EQ (doc, make_number (0))) ------------------------------------------------------------ revno: 115852 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16224 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2014-01-03 00:10:52 -0500 message: * lisp/ielm.el (ielm-tab): Retarget. (ielm-map): Use ielm-tab for tab. (ielm-complete-filename): Use comint-filename-completion. (ielm-complete-symbol): Remove. (inferior-emacs-lisp-mode): Use lisp-completion-at-point instead and remove ielm-tab from completion-at-point-functions. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-03 04:40:30 +0000 +++ lisp/ChangeLog 2014-01-03 05:10:52 +0000 @@ -1,5 +1,12 @@ 2014-01-03 Stefan Monnier + * ielm.el (ielm-tab): Retarget. + (ielm-map): Use ielm-tab for tab. + (ielm-complete-filename): Use comint-filename-completion. + (ielm-complete-symbol): Remove. + (inferior-emacs-lisp-mode): Use lisp-completion-at-point instead and + remove ielm-tab from completion-at-point-functions (bug#16224). + * emacs-lisp/pcase.el (pcase--split-equal, pcase--split-member): Beware signals raised by predicates (bug#16201). === modified file 'lisp/ielm.el' --- lisp/ielm.el 2014-01-01 07:43:34 +0000 +++ lisp/ielm.el 2014-01-03 05:10:52 +0000 @@ -168,7 +168,7 @@ (defvar ielm-map (let ((map (make-sparse-keymap))) - (define-key map "\t" 'completion-at-point) + (define-key map "\t" 'ielm-tab) (define-key map "\C-m" 'ielm-return) (define-key map "\e\C-m" 'ielm-return-for-effect) (define-key map "\C-j" 'ielm-send-input) @@ -201,36 +201,19 @@ ;;; Completion stuff -(defun ielm-tab nil - "Possibly indent the current line as Lisp code." +(defun ielm-tab () + "Indent or complete." (interactive) - (when (or (eq (preceding-char) ?\n) - (eq (char-syntax (preceding-char)) ?\s)) - (ielm-indent-line) - t)) + (if (or (eq (preceding-char) ?\n) + (eq (char-syntax (preceding-char)) ?\s)) + (ielm-indent-line) + (completion-at-point))) -(defun ielm-complete-symbol nil - "Complete the Lisp symbol before point." - ;; A wrapper for completion-at-point that returns non-nil if - ;; completion has occurred - (let* ((btick (buffer-modified-tick)) - (cbuffer (get-buffer "*Completions*")) - (ctick (and cbuffer (buffer-modified-tick cbuffer))) - (completion-at-point-functions '(lisp-completion-at-point))) - (completion-at-point) - ;; completion has occurred if: - (or - ;; the buffer has been modified - (not (= btick (buffer-modified-tick))) - ;; a completions buffer has been modified or created - (if cbuffer - (not (= ctick (buffer-modified-tick cbuffer))) - (get-buffer "*Completions*"))))) (defun ielm-complete-filename nil "Dynamically complete filename before point, if in a string." (when (nth 3 (parse-partial-sexp comint-last-input-start (point))) - (comint-dynamic-complete-filename))) + (comint-filename-completion))) (defun ielm-indent-line nil "Indent the current line as Lisp code if it is not a prompt line." @@ -557,8 +540,8 @@ (setq comint-input-sender 'ielm-input-sender) (setq comint-process-echoes nil) (set (make-local-variable 'completion-at-point-functions) - '(ielm-tab comint-replace-by-expanded-history - ielm-complete-filename ielm-complete-symbol)) + '(comint-replace-by-expanded-history + ielm-complete-filename lisp-completion-at-point)) (set (make-local-variable 'ielm-prompt-internal) ielm-prompt) (set (make-local-variable 'comint-prompt-read-only) ielm-prompt-read-only) (setq comint-get-old-input 'ielm-get-old-input) ------------------------------------------------------------ revno: 115851 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16201 committer: Stefan Monnier branch nick: trunk timestamp: Thu 2014-01-02 23:40:30 -0500 message: * lisp/emacs-lisp/pcase.el (pcase--split-equal, pcase--split-member): Beware signals raised by predicates. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-02 22:54:37 +0000 +++ lisp/ChangeLog 2014-01-03 04:40:30 +0000 @@ -1,9 +1,14 @@ +2014-01-03 Stefan Monnier + + * emacs-lisp/pcase.el (pcase--split-equal, pcase--split-member): + Beware signals raised by predicates (bug#16201). + 2014-01-02 Richard Stallman * dired-aux.el (dired-do-print): Handle printer-name. - * mail/rmailmm.el (rmail-mime-message-p): Moved to rmail.el. - * mail/rmail.el (rmail-mime-message-p): Moved from rmailmm.el. + * mail/rmailmm.el (rmail-mime-message-p): Move to rmail.el. + * mail/rmail.el (rmail-mime-message-p): Move from rmailmm.el. (rmail-epa-decrypt): Turn off mime processing. * mail/rmail.el (rmail-make-in-reply-to-field): @@ -65,8 +70,8 @@ 2013-12-28 João Távora - * elec-pair.el (electric-pair-post-self-insert-function): Don't - open extra newlines at beginning of buffer. (Bug#16272) + * elec-pair.el (electric-pair-post-self-insert-function): + Don't open extra newlines at beginning of buffer. (Bug#16272) 2013-12-28 Eli Zaretskii === modified file 'lisp/emacs-lisp/pcase.el' --- lisp/emacs-lisp/pcase.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/pcase.el 2014-01-03 04:40:30 +0000 @@ -461,9 +461,10 @@ ((and (eq (car-safe pat) 'pred) (symbolp (cadr pat)) (get (cadr pat) 'side-effect-free)) - (if (funcall (cadr pat) elem) - '(:pcase--succeed . nil) - '(:pcase--fail . nil))))) + (ignore-errors + (if (funcall (cadr pat) elem) + '(:pcase--succeed . nil) + '(:pcase--fail . nil)))))) (defun pcase--split-member (elems pat) ;; Based on pcase--split-equal. @@ -484,10 +485,11 @@ ((and (eq (car-safe pat) 'pred) (symbolp (cadr pat)) (get (cadr pat) 'side-effect-free) - (let ((p (cadr pat)) (all t)) - (dolist (elem elems) - (unless (funcall p elem) (setq all nil))) - all)) + (ignore-errors + (let ((p (cadr pat)) (all t)) + (dolist (elem elems) + (unless (funcall p elem) (setq all nil))) + all))) '(:pcase--succeed . nil)))) (defun pcase--split-pred (vars upat pat) @@ -761,14 +763,14 @@ ;; `then-body', but only within some sub-branch). (macroexp-let* `(,@(if (get syma 'pcase-used) `((,syma (car ,sym)))) - ,@(if (get symd 'pcase-used) `((,symd (cdr ,sym))))) + ,@(if (get symd 'pcase-used) `((,symd (cdr ,sym))))) then-body) (pcase--u else-rest)))) ((or (integerp qpat) (symbolp qpat) (stringp qpat)) - (let* ((splitrest (pcase--split-rest - sym (lambda (pat) (pcase--split-equal qpat pat)) rest)) - (then-rest (car splitrest)) - (else-rest (cdr splitrest))) + (let* ((splitrest (pcase--split-rest + sym (lambda (pat) (pcase--split-equal qpat pat)) rest)) + (then-rest (car splitrest)) + (else-rest (cdr splitrest))) (pcase--if (cond ((stringp qpat) `(equal ,sym ,qpat)) ((null qpat) `(null ,sym)) ------------------------------------------------------------ revno: 115850 committer: Michael Albinus branch nick: trunk timestamp: Fri 2014-01-03 05:10:07 +0100 message: Fix typo. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-03 03:15:01 +0000 +++ doc/misc/ChangeLog 2014-01-03 04:10:07 +0000 @@ -13,11 +13,11 @@ 2014-01-03 Aidan Gauland - * eshell.text (top): Fix incorrect use of xref. + * eshell.texi (top): Fix incorrect use of xref. 2014-01-03 Aidan Gauland - * eshell.text (top): Fix incorrect info filename in an xref. + * eshell.texi (top): Fix incorrect info filename in an xref. 2014-01-02 Vincent Belaïche @@ -29,11 +29,11 @@ 2014-01-02 Aidan Gauland - * eshell.text (Command Basics): Removed `Command basics' chapter. + * eshell.texi (Command Basics): Removed `Command basics' chapter. 2014-01-02 Aidan Gauland - * eshell.text (What is Eshell?): Add section about what not to use + * eshell.texi (What is Eshell?): Add section about what not to use Eshell for. 2013-12-23 Teodor Zlatanov ------------------------------------------------------------ revno: 115849 committer: Glenn Morris branch nick: trunk timestamp: Thu 2014-01-02 19:24:27 -0800 message: More Texinfo 5 updates for make-manuals (not yet finished) * admin/admin.el (manual-html-fix-headers): Tweak Texinfo 5 body. (manual-html-fix-node-div): Treat "header" like "node". (manual-html-fix-index-1): Handle Texinfo 5 top heading. (manual-html-fix-index-2): Tweak Texinfo 5 listing tables. diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2014-01-02 08:47:40 +0000 +++ admin/ChangeLog 2014-01-03 03:24:27 +0000 @@ -1,3 +1,11 @@ +2014-01-03 Glenn Morris + + * admin.el: More Texinfo 5 updates. + (manual-html-fix-headers): Tweak Texinfo 5 body. + (manual-html-fix-node-div): Treat "header" like "node". + (manual-html-fix-index-1): Handle Texinfo 5 top heading. + (manual-html-fix-index-2): Tweak Texinfo 5 listing tables. + 2014-01-02 Xue Fuqiao * check-doc-strings: Replace `perl -w' with `use warnings;'. === modified file 'admin/admin.el' --- admin/admin.el 2014-01-02 08:47:40 +0000 +++ admin/admin.el 2014-01-03 03:24:27 +0000 @@ -328,6 +328,7 @@ (manual-html-fix-node-div) (goto-char (point-max)) (re-search-backward "[\n \t]*") + ;; Close the div id="content" that fix-index-1 added. (insert "\n\n") (save-buffer))) @@ -368,6 +369,7 @@ (manual-html-fix-index-2) (if copyright-text (insert copyright-text)) + ;; Close the div id="content" that fix-index-1 added. (insert "\n\n")) ;; For normal nodes, give the header div a blue bg. (manual-html-fix-node-div)) @@ -407,22 +409,28 @@ (setq opoint (match-beginning 0)) (unless texi5 (search-forward "")) - ((looking-at "

[- ]*The Detailed Node Listing[- \n]*") - (replace-match "

\n + (if (re-search-forward "" nil t) + ;; It seems that Texinfo 5 already uses a table. + ;; Tweak it a bit. TODO is this worth it? + (let (opoint done) + (replace-match " style=\"float:left\" width=\"100%\"" nil t nil 1) + ;; Not all manuals have the detailed menu. + ;; If it is there, split it into a separate table. + (when (re-search-forward ".*The Detailed Node Listing *" nil t) + (setq opoint (match-beginning 0)) + (while (and (looking-at " *—") + (zerop (forward-line 1)))) + (delete-region opoint (point)) + (insert "
\n\n\ +

Detailed Node Listing

\n") + (search-forward "") + (delete-region (match-beginning 0) (match-end 0)) + (forward-line -1) + (or (looking-at "^$") (error "Parse error 1")) + (forward-line -1) + (if (looking-at "^$") (error "Parse error 2")) + (forward-line -1) + (or (looking-at "^$") (error "Parse error 3")) + (forward-line 1) + (insert "\n\ +") + ;; Get rid of ugly
 formatting of chapter headings.
+	  (while (and (not done)
+		      (re-search-forward "\\(
\n\\|\
+\n
\\|" nil t) + ;; FIXME? The following search seems dangerously lax. + (search-forward "
    ")) + (replace-match "
\n\ +") + (forward-line 1) + (insert "
") + (forward-line 1) + (while (not done) + (cond + ((or (looking-at "
  • \\(\\):[ \t]+\\(.*\\)$") + (looking-at "
  • \\(\\)$")) + (setq tag (match-string 1)) + (setq desc (match-string 2)) + (replace-match "" t t) + (when open-td + (save-excursion + (forward-char -1) + (skip-chars-backward " ") + (delete-region (point) (line-end-position)) + (insert "\n "))) + (insert "
  • \n ") + (if table-workaround + ;; This works around a Firefox bug in the mono file. + ;; FIXME Is this still needed? + ;; If so, the Texinfo 5 branch needs to add it too. + (insert "\n
    ") + (insert "")) + (insert tag "" (or desc "")) + (setq open-td t)) + ((eq (char-after) ?\n) + (delete-char 1) + ;; Negate the following `forward-line'. + (forward-line -1)) + ((looking-at "")) + ((looking-at "

    [- ]*The Detailed Node Listing[- \n]*") + (replace-match "

    \n

    Detailed Node Listing

    \n\n" t t) - (search-forward "

    ") - (search-forward "

    " nil t) - (goto-char (match-beginning 0)) - (skip-chars-backward "\n ") - (setq open-td nil) - (insert "

    \n\n")) - ((looking-at "") - (replace-match "" t t)) - ((looking-at "

    ") - (replace-match "" t t) - (when open-td - (insert " ") - (setq open-td nil)) - (insert "

    + (search-forward "

    ") + (search-forward "

    " nil t) + (goto-char (match-beginning 0)) + (skip-chars-backward "\n ") + (setq open-td nil) + (insert "

    \n\n
    ")) + ((looking-at "") + (replace-match "" t t)) + ((looking-at "

    ") + (replace-match "" t t) + (when open-td + (insert " ") + (setq open-td nil)) + (insert "

    "))) - ((looking-at "[ \t]*[ \t]*$") - (replace-match - (if open-td - " \n
    ") - (if (re-search-forward "

    [ \t\n]*
      " nil t) - (replace-match "
    " - "") t t) - (setq done t)) - (t - (if (eobp) - (error "Parse error in %s" - (file-name-nondirectory buffer-file-name))) - (unless open-td - (setq done t)))) - (forward-line 1)))) + (if (re-search-forward "

    [ \t\n]*
      " nil t) + (replace-match " "))) + ((looking-at "[ \t]*
    [ \t]*$") + (replace-match + (if open-td + " \n" + "") t t) + (setq done t)) + (t + (if (eobp) + (error "Parse error in %s" + (file-name-nondirectory buffer-file-name))) + (unless open-td + (setq done t)))) + (forward-line 1))))) ;; Stuff to check new `defcustom's got :version tags. ------------------------------------------------------------ revno: 115848 committer: Glenn Morris branch nick: trunk timestamp: Thu 2014-01-02 19:15:01 -0800 message: * doc/misc/efaq-w32.texi, reftex.texi: Use @insertcopying in non-TeX. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-03 03:13:58 +0000 +++ doc/misc/ChangeLog 2014-01-03 03:15:01 +0000 @@ -1,5 +1,7 @@ 2014-01-03 Glenn Morris + * efaq-w32.texi, reftex.texi: Use @insertcopying in non-TeX. + * ede.texi, eieio.texi, semantic.texi, srecode.texi: Add copyright notice to titlepage. === modified file 'doc/misc/efaq-w32.texi' --- doc/misc/efaq-w32.texi 2014-01-01 07:43:34 +0000 +++ doc/misc/efaq-w32.texi 2014-01-03 03:15:01 +0000 @@ -71,6 +71,10 @@ @c Links to ftp.gnu.org are given as http links, since Windows ftp clients @c are notoriously bad at handling firewalls etc. +@ifnottex +@insertcopying +@end ifnottex + @contents @menu === modified file 'doc/misc/reftex.texi' --- doc/misc/reftex.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/reftex.texi 2014-01-03 03:15:01 +0000 @@ -98,6 +98,8 @@ @node Top @top @RefTeX{} +@insertcopying + @RefTeX{} is a package for managing Labels, References, Citations and index entries with GNU Emacs. ------------------------------------------------------------ revno: 115847 committer: Glenn Morris branch nick: trunk timestamp: Thu 2014-01-02 19:13:58 -0800 message: * ede.texi, eieio.texi, semantic.texi, srecode.texi: Add copyright notice to titlepage. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-03 03:07:20 +0000 +++ doc/misc/ChangeLog 2014-01-03 03:13:58 +0000 @@ -1,5 +1,8 @@ 2014-01-03 Glenn Morris + * ede.texi, eieio.texi, semantic.texi, srecode.texi: + Add copyright notice to titlepage. + * dbus.texi, nxml-mode.texi, widget.texi: Add titlepage. * ert.texi: Add a titlepage. Use @insertcopying. === modified file 'doc/misc/ede.texi' --- doc/misc/ede.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/ede.texi 2014-01-03 03:13:58 +0000 @@ -30,6 +30,9 @@ @center @titlefont{EDE (The Emacs Development Environment)} @sp 4 @center by Eric Ludlam +@page +@vskip 0pt plus 1filll +@insertcopying @end titlepage @page === modified file 'doc/misc/eieio.texi' --- doc/misc/eieio.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/eieio.texi 2014-01-03 03:13:58 +0000 @@ -35,15 +35,16 @@ @center @titlefont{@value{TITLE}} @sp 4 @center by @value{AUTHOR} +@page +@vskip 0pt plus 1filll +@insertcopying @end titlepage -@page @macro eieio{} @i{EIEIO} @end macro -@node Top, Quick Start, (dir), (dir) -@comment node-name, next, previous, up +@node Top @top EIEIO @eieio{} (``Enhanced Implementation of Emacs Interpreted Objects'') @@ -173,7 +174,6 @@ error. @ref{Signals}. @node Introduction -@comment node-name, next, previous, up @chapter Introduction Due to restrictions in the Emacs Lisp language, CLOS cannot be @@ -245,7 +245,6 @@ @end table @node Building Classes -@comment node-name, next, previous, up @chapter Building Classes First off, please note that this manual cannot serve as a complete @@ -632,7 +631,6 @@ @eieio{}-specific tags. @node Making New Objects -@comment node-name, next, previous, up @chapter Making New Objects Suppose we have a simple class is defined, such as: @@ -702,7 +700,6 @@ @end defun @node Accessing Slots -@comment node-name, next, previous, up @chapter Accessing Slots There are several ways to access slot values in an object. The naming @@ -819,7 +816,6 @@ @end defun @node Writing Methods -@comment node-name, next, previous, up @chapter Writing Methods Writing a method in @eieio{} is similar to writing a function. The @@ -1036,7 +1032,6 @@ @end table @node Predicates -@comment node-name, next, previous, up @chapter Predicates and Utilities Now that we know how to create classes, access slots, and define @@ -1197,7 +1192,6 @@ @end defun @node Customizing -@comment node-name, next, previous, up @chapter Customizing Objects @eieio{} supports the Custom facility through two new widget types. @@ -1279,7 +1273,6 @@ @end defun @node Base Classes -@comment node-name, next, previous, up @chapter Base Classes All defined classes, if created with no specified parent class, @@ -1301,7 +1294,6 @@ @end menu @node eieio-instance-inheritor -@comment node-name, next, previous, up @section @code{eieio-instance-inheritor} This class is defined in the package @file{eieio-base}. @@ -1366,7 +1358,6 @@ @end deffn @node eieio-singleton -@comment node-name, next, previous, up @section @code{eieio-singleton} This class is defined in the package @file{eieio-base}. @@ -1378,7 +1369,6 @@ @end deftp @node eieio-persistent -@comment node-name, next, previous, up @section @code{eieio-persistent} This class is defined in the package @file{eieio-base}. @@ -1430,7 +1420,6 @@ @end defun @node eieio-named -@comment node-name, next, previous, up @section @code{eieio-named} This class is defined in the package @file{eieio-base}. @@ -1442,7 +1431,6 @@ @end deftp @node eieio-speedbar -@comment node-name, next, previous, up @section @code{eieio-speedbar} This class is in package @file{eieio-speedbar}. @@ -1537,7 +1525,6 @@ @end deffn @node Browsing -@comment node-name, next, previous, up @chapter Browsing class trees The command @kbd{M-x eieio-browse} displays a buffer listing all the @@ -1560,7 +1547,6 @@ comes out upside-down. @node Class Values -@comment node-name, next, previous, up @chapter Class Values Details about any class or object can be retrieved using the function @@ -1573,7 +1559,6 @@ displayed. @node Documentation -@comment node-name, next, previous, up @chapter Documentation It is possible to automatically create documentation for your classes in @@ -1616,7 +1601,6 @@ @end deffn @node Default Superclass -@comment node-name, next, previous, up @chapter Default Superclass All defined classes, if created with no specified parent class, will @@ -1792,7 +1776,6 @@ @end defun @node Signals -@comment node-name, next, previous, up @chapter Signals There are new condition names (signals) that can be caught when using @@ -1837,7 +1820,6 @@ @end deffn @node Naming Conventions -@comment node-name, next, previous, up @chapter Naming Conventions @xref{Tips,,Tips and Conventions,elisp,GNU Emacs Lisp Reference @@ -1866,7 +1848,6 @@ @end itemize @node CLOS compatibility -@comment node-name, next, previous, up @chapter CLOS compatibility Currently, the following functions should behave almost as expected from === modified file 'doc/misc/semantic.texi' --- doc/misc/semantic.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/semantic.texi 2014-01-03 03:13:58 +0000 @@ -49,6 +49,9 @@ @center @titlefont{Semantic} @sp 4 @center by @value{AUTHOR} +@page +@vskip 0pt plus 1filll +@insertcopying @end titlepage @page === modified file 'doc/misc/srecode.texi' --- doc/misc/srecode.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/srecode.texi 2014-01-03 03:13:58 +0000 @@ -40,6 +40,9 @@ @center @titlefont{SRecode} @vskip 0pt plus 1 fill @center by @value{AUTHOR} +@page +@vskip 0pt plus 1filll +@insertcopying @end titlepage @macro semantic{} ------------------------------------------------------------ revno: 115846 committer: Glenn Morris branch nick: trunk timestamp: Thu 2014-01-02 19:07:20 -0800 message: * doc/misc/dbus.texi, nxml-mode.texi, widget.texi: Add titlepage. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-03 03:00:39 +0000 +++ doc/misc/ChangeLog 2014-01-03 03:07:20 +0000 @@ -1,5 +1,7 @@ 2014-01-03 Glenn Morris + * dbus.texi, nxml-mode.texi, widget.texi: Add titlepage. + * ert.texi: Add a titlepage. Use @insertcopying. * calc.texi (Top): Use @top rather than @chapter. === modified file 'doc/misc/dbus.texi' --- doc/misc/dbus.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/dbus.texi 2014-01-03 03:07:20 +0000 @@ -29,6 +29,14 @@ * D-Bus: (dbus). Using D-Bus in Emacs. @end direntry +@titlepage +@title Using D-Bus in Emacs +@page +@vskip 0pt plus 1filll +@insertcopying +@end titlepage + + @contents === modified file 'doc/misc/nxml-mode.texi' --- doc/misc/nxml-mode.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/nxml-mode.texi 2014-01-03 03:07:20 +0000 @@ -28,6 +28,17 @@ * nXML Mode: (nxml-mode). XML editing mode with RELAX NG support. @end direntry + +@titlepage +@title nXML mode +@page +@vskip 0pt plus 1filll +@insertcopying +@end titlepage + +@contents + + @node Top @top nXML Mode === modified file 'doc/misc/widget.texi' --- doc/misc/widget.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/widget.texi 2014-01-03 03:07:20 +0000 @@ -29,6 +29,14 @@ Customization facility. @end direntry + +@titlepage +@title The Emacs Widget Library +@page +@vskip 0pt plus 1filll +@insertcopying +@end titlepage + @contents @node Top ------------------------------------------------------------ revno: 115845 committer: Glenn Morris branch nick: trunk timestamp: Thu 2014-01-02 19:00:39 -0800 message: * doc/misc/ert.texi: Add a titlepage. Use @insertcopying. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-03 02:53:29 +0000 +++ doc/misc/ChangeLog 2014-01-03 03:00:39 +0000 @@ -1,5 +1,7 @@ 2014-01-03 Glenn Morris + * ert.texi: Add a titlepage. Use @insertcopying. + * calc.texi (Top): Use @top rather than @chapter. 2014-01-03 Aidan Gauland === modified file 'doc/misc/ert.texi' --- doc/misc/ert.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/ert.texi 2014-01-03 03:00:39 +0000 @@ -25,9 +25,21 @@ @end quotation @end copying +@titlepage +@title Emacs Lisp Regression Testing +@page +@vskip 0pt plus 1filll +@insertcopying +@end titlepage + +@contents + +@ifnottex @node Top @top ERT: Emacs Lisp Regression Testing +@insertcopying + ERT is a tool for automated testing in Emacs Lisp. Its main features are facilities for defining tests, running them and reporting the results, and for debugging test failures interactively. @@ -85,6 +97,7 @@ @end detailmenu @end menu +@end ifnottex @node Introduction @chapter Introduction ------------------------------------------------------------ revno: 115844 committer: Glenn Morris branch nick: trunk timestamp: Thu 2014-01-02 18:53:29 -0800 message: * doc/misc/calc.texi (Top): Use @top rather than @chapter. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-03 01:55:15 +0000 +++ doc/misc/ChangeLog 2014-01-03 02:53:29 +0000 @@ -1,3 +1,7 @@ +2014-01-03 Glenn Morris + + * calc.texi (Top): Use @top rather than @chapter. + 2014-01-03 Aidan Gauland * eshell.text (top): Fix incorrect use of xref. === modified file 'doc/misc/calc.texi' --- doc/misc/calc.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/calc.texi 2014-01-03 02:53:29 +0000 @@ -140,7 +140,7 @@ @c [begin] @ifnottex @node Top, Getting Started, (dir), (dir) -@chapter The GNU Emacs Calculator +@top The GNU Emacs Calculator @noindent @dfn{Calc} is an advanced desk calculator and mathematical tool ------------------------------------------------------------ revno: 115843 committer: Paul Eggert branch nick: trunk timestamp: Thu 2014-01-02 17:59:58 -0800 message: Merge from gnulib. This incorporates: 2014-01-02 manywarnings: remove -Wmudflap This ports better to GCC 4.9-to-be. diff: === modified file 'ChangeLog' --- ChangeLog 2014-01-01 07:43:34 +0000 +++ ChangeLog 2014-01-03 01:59:58 +0000 @@ -1,3 +1,9 @@ +2014-01-03 Paul Eggert + + Merge from gnulib, incorporating: + 2014-01-02 manywarnings: remove -Wmudflap + This ports better to GCC 4.9-to-be. + 2013-12-31 Fabrice Popineau * configure.ac (canonical, C_SWITCH_SYSTEM): Support a 64-bit === modified file 'm4/manywarnings.m4' --- m4/manywarnings.m4 2014-01-01 07:43:34 +0000 +++ m4/manywarnings.m4 2014-01-03 01:59:58 +0000 @@ -146,7 +146,6 @@ -Wmissing-include-dirs \ -Wmissing-parameter-type \ -Wmissing-prototypes \ - -Wmudflap \ -Wmultichar \ -Wnarrowing \ -Wnested-externs \ ------------------------------------------------------------ revno: 115842 committer: Aidan Gauland branch nick: trunk timestamp: Fri 2014-01-03 14:55:15 +1300 message: * eshell.text (top): Fix incorrect use of xref. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-02 21:05:34 +0000 +++ doc/misc/ChangeLog 2014-01-03 01:55:15 +0000 @@ -1,5 +1,9 @@ 2014-01-03 Aidan Gauland + * eshell.text (top): Fix incorrect use of xref. + +2014-01-03 Aidan Gauland + * eshell.text (top): Fix incorrect info filename in an xref. 2014-01-02 Vincent Belaïche === modified file 'doc/misc/eshell.texi' --- doc/misc/eshell.texi 2014-01-02 20:17:19 +0000 +++ doc/misc/eshell.texi 2014-01-03 01:55:15 +0000 @@ -63,7 +63,7 @@ Eshell is a shell-like command interpreter implemented in Emacs Lisp. It invokes no external processes except for those requested by the -user. It is intended to be an alternative to the @xref{Lisp Interaction, IELM, , emacs, The Emacs Lisp Reference Manual} +user. It is intended to be an alternative to the IELM (@pxref{Lisp Interaction, Emacs Lisp Interaction, , emacs, The Emacs Editor}) REPL for Emacs @emph{and} with an interface similar to command shells such as @command{bash}, @command{zsh}, @command{rc}, or @command{4dos}. ------------------------------------------------------------ revno: 115841 committer: Vincent Belaïche branch nick: trunk timestamp: Thu 2014-01-02 23:54:37 +0100 message: Correct ses--file-format checking. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-02 22:35:00 +0000 +++ lisp/ChangeLog 2014-01-02 22:54:37 +0000 @@ -14,6 +14,11 @@ 2014-01-02 Vincent Belaïche + * ses.el (ses-load): Correct handling for ses--file-format + checking. + +2014-01-02 Vincent Belaïche + * ses.el (ses-initial-global-parameters-re): New defconst, a specific regexp is needed now that ses.el can handle both file-format 2 (no local printers) and 3 (may have local printers). === modified file 'lisp/ses.el' --- lisp/ses.el 2014-01-02 21:05:34 +0000 +++ lisp/ses.el 2014-01-02 22:54:37 +0000 @@ -1860,7 +1860,7 @@ (insert "(ses-header-row 0)\n") (ses-set-parameter 'ses--file-format 3) (message "Upgrading from SES-1 file format"))) - (or (> ses--file-format 3) + (or (<= ses--file-format 3) (error "This file needs a newer version of the SES library code")) ;; Initialize cell array. (setq ses--cells (make-vector ses--numrows nil)) ------------------------------------------------------------ revno: 115840 author: rms committer: Richard Stallman branch nick: trunk timestamp: Thu 2014-01-02 17:35:00 -0500 message: dired-do-print handles printer-name * dired-aux.el (dired-do-print): Handle printer-name. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-02 22:30:32 +0000 +++ lisp/ChangeLog 2014-01-02 22:35:00 +0000 @@ -1,5 +1,7 @@ 2014-01-02 Richard Stallman + * dired-aux.el (dired-do-print): Handle printer-name. + * mail/rmailmm.el (rmail-mime-message-p): Moved to rmail.el. * mail/rmail.el (rmail-mime-message-p): Moved from rmailmm.el. (rmail-epa-decrypt): Turn off mime processing. === modified file 'lisp/dired-aux.el' --- lisp/dired-aux.el 2014-01-01 07:43:34 +0000 +++ lisp/dired-aux.el 2014-01-02 22:35:00 +0000 @@ -415,6 +415,12 @@ `lpr-switches' as default." (interactive "P") (let* ((file-list (dired-get-marked-files t arg)) + (lpr-switches + (if (and (stringp printer-name) + (string< "" printer-name)) + (cons (concat lpr-printer-switch printer-name) + lpr-switches) + lpr-switches)) (command (dired-mark-read-string "Print %s with: " (mapconcat 'identity ------------------------------------------------------------ revno: 115839 author: rms committer: Richard Stallman branch nick: trunk timestamp: Thu 2014-01-02 17:30:32 -0500 message: Minor rmail fixes. * mail/rmail.el (rmail-get-coding-function): Variable. (rmail-get-coding-system): Use it. * mail/rmail.el (rmail-make-in-reply-to-field): Add parens in message-id. * mail/rmailmm.el (rmail-mime-message-p): Moved to rmail.el. * mail/rmail.el (rmail-mime-message-p): Moved from rmailmm.el. (rmail-epa-decrypt): Turn off mime processing. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-02 21:05:34 +0000 +++ lisp/ChangeLog 2014-01-02 22:30:32 +0000 @@ -1,3 +1,15 @@ +2014-01-02 Richard Stallman + + * mail/rmailmm.el (rmail-mime-message-p): Moved to rmail.el. + * mail/rmail.el (rmail-mime-message-p): Moved from rmailmm.el. + (rmail-epa-decrypt): Turn off mime processing. + + * mail/rmail.el (rmail-make-in-reply-to-field): + Add parens in message-id. + + * mail/rmail.el (rmail-get-coding-function): Variable. + (rmail-get-coding-system): Use it. + 2014-01-02 Vincent Belaïche * ses.el (ses-initial-global-parameters-re): New defconst, a === modified file 'lisp/mail/rmail.el' --- lisp/mail/rmail.el 2014-01-01 07:43:34 +0000 +++ lisp/mail/rmail.el 2014-01-02 22:30:32 +0000 @@ -104,6 +104,11 @@ "Non-nil if message has been processed by `rmail-show-mime-function'.") (put 'rmail-mime-decoded 'permanent-local t) ; for rmail-edit +(defsubst rmail-mime-message-p () + "Non-nil if and only if the current message is a MIME." + (or (get-text-property (point) 'rmail-mime-entity) + (get-text-property (point-min) 'rmail-mime-entity))) + (defgroup rmail nil "Mail reader for Emacs." :group 'mail) @@ -686,6 +691,12 @@ This is set to nil by default.") +(defcustom rmail-get-coding-function nil + "Function of no args to try to determine coding system for a message." + :type 'function + :group 'rmail + :version "24.4") + (defcustom rmail-enable-mime t "If non-nil, RMAIL automatically displays decoded MIME messages. For this to work, the feature specified by `rmail-mime-feature' must @@ -1029,9 +1040,10 @@ The buffer is expected to be narrowed to just the header of the message." (save-excursion (goto-char (point-min)) - (if (re-search-forward rmail-mime-charset-pattern nil t) - (coding-system-from-name (match-string 1)) - 'undecided))) + (or (funcall rmail-get-coding-function) + (if (re-search-forward rmail-mime-charset-pattern nil t) + (coding-system-from-name (match-string 1)) + 'undecided)))) ;;; Set up Rmail mode keymaps @@ -3863,16 +3875,18 @@ message-id)) ;; missing From, or Message-ID is sufficiently informative message-id - (concat message-id " (" tem ")")) + (concat message-id " (" tem ")")) + ;; Message has no Message-ID field. ;; Copy TEM, discarding text properties. (setq tem (copy-sequence tem)) (set-text-properties 0 (length tem) nil tem) (setq tem (copy-sequence tem)) ;; Use prin1 to fake RFC822 quoting (let ((field (prin1-to-string tem))) + ;; Wrap it in parens to make it a comment according to RFC822 (if date - (concat field "'s message of " date) - field))))) + (concat "(" field "'s message of " date ")") + (concat "(" field ")")))))) ((let* ((foo "[^][\000-\037()<>@,;:\\\" ]+") (bar "[^][\000-\037()<>@,;:\\\"]+")) ;; These strings both match all non-ASCII characters. @@ -3898,7 +3912,8 @@ (if message-id ;; " (message from Unix Loser on 1-Apr-89)" (concat message-id " (" field ")") - field)))) + ;; Wrap in parens to make it a comment, for RFC822. + (concat "(" field ")"))))) (t ;; If we can't kludge it simply, do it correctly (let ((mail-use-rfc822 t)) @@ -4483,7 +4498,7 @@ ;; There doesn't really seem to be an appropriate menu. ;; Eg the edit command is not in a menu either. (defun rmail-epa-decrypt () - "Decrypt OpenPGP armors in current message." + "Decrypt GnuPG or OpenPGP armors in current message." (interactive) ;; Save the current buffer here for cleanliness, in case we @@ -4493,14 +4508,10 @@ (let (decrypts) (goto-char (point-min)) - ;; In case the encrypted data is inside a mime attachment, - ;; show it. This is a kludge; to be clean, it should not - ;; modify the buffer, but I don't see how to do that. - (when (search-forward "octet-stream" nil t) - (beginning-of-line) - (forward-button 1) - (if (looking-at "Show") - (rmail-mime-toggle-hidden))) + ;; Turn off mime processing. + (when (and (rmail-mime-message-p) + (not (get-text-property (point-min) 'rmail-mime-hidden))) + (rmail-mime)) ;; Now find all armored messages in the buffer ;; and decrypt them one by one. @@ -4560,6 +4571,7 @@ (when armor-end (delete-region armor-start armor-end) (insert-buffer-substring from-buffer (nth 0 d) (nth 1 d))))))))))))) + ;;;; Desktop support === modified file 'lisp/mail/rmailmm.el' --- lisp/mail/rmailmm.el 2014-01-01 07:43:34 +0000 +++ lisp/mail/rmailmm.el 2014-01-02 22:30:32 +0000 @@ -230,11 +230,6 @@ (defsubst rmail-mime-entity-set-truncated (entity truncated) (aset entity 9 truncated)) -(defsubst rmail-mime-message-p () - "Non-nil if and only if the current message is a MIME." - (or (get-text-property (point) 'rmail-mime-entity) - (get-text-property (point-min) 'rmail-mime-entity))) - ;;; Buttons (defun rmail-mime-save (button) ------------------------------------------------------------ revno: 115838 committer: Vincent Belaïche branch nick: trunk timestamp: Thu 2014-01-02 22:05:34 +0100 message: Add support for local printer functions in SES. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-02 20:17:19 +0000 +++ doc/misc/ChangeLog 2014-01-02 21:05:34 +0000 @@ -2,6 +2,10 @@ * eshell.text (top): Fix incorrect info filename in an xref. +2014-01-02 Vincent Belaïche + + * ses.texi: Add documentation for local printer functions. + 2014-01-02 Glenn Morris * Makefile.in (cc_mode_deps): Rename from (typo) ccmode_deps. === modified file 'doc/misc/ses.texi' --- doc/misc/ses.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/ses.texi 2014-01-02 21:05:34 +0000 @@ -434,6 +434,13 @@ Centering with tildes (~) and spill-over. @end table +You can define printer function local to a sheet with command +@code{ses-define-local-printer}. For instance define printer +@samp{foo} to @code{"%.2f"} and then use symbol @samp{foo} as a +printer function. Then, if you call again +@code{ses-define-local-printer} on @samp{foo} to redefine it as +@code{"%.3f"} all the cells using printer @samp{foo} will be reprinted +accordingly. @node Clearing cells @section Clearing cells === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-01 07:43:34 +0000 +++ lisp/ChangeLog 2014-01-02 21:05:34 +0000 @@ -1,3 +1,31 @@ +2014-01-02 Vincent Belaïche + + * ses.el (ses-initial-global-parameters-re): New defconst, a + specific regexp is needed now that ses.el can handle both + file-format 2 (no local printers) and 3 (may have local printers). + (silence compiler): Add local variables needed for local printer + handling. + (ses-set-localvars): Handle hashmap initialisation. + (ses-paramlines-plist): Add param-line for number of local printers. + (ses-paramfmt-plist): New defconst, needed for code factorization + between functions `ses-set-parameter' and + `ses-file-format-extend-paramter-list' + (ses-make-local-printer-info): New defsubst. + (ses-locprn-get-compiled, ses-locprn-compiled-aset) + (ses-locprn-get-def, ses-locprn-def-aset, ses-locprn-get-number) + (ses-cell-printer-aset): New defmacro. + (ses-local-printer-compile): New defun. + (ses-local-printer): New defmacro. + (ses-printer-validate, ses-call-printer): Add support for local + printer functions. + (ses-file-format-extend-paramter-list): New defun. + (ses-set-parameter): Use const `ses-paramfmt-plist' for code factorization. + (ses-load): Add support for local + printer functions. + (ses-read-printer): Update docstring and add support for local printer functions. + (ses-refresh-local-printer, ses-define-local-printer): New defun. + (ses-safe-printer): Add support for local printer functions. + 2013-12-31 Eli Zaretskii * international/mule-conf.el: Unify the charset indian-is13194. === modified file 'lisp/ses.el' --- lisp/ses.el 2014-01-01 07:43:34 +0000 +++ lisp/ses.el 2014-01-02 21:05:34 +0000 @@ -238,6 +238,10 @@ "\n( ;Global parameters (these are read first)\n 2 ;SES file-format\n 1 ;numrows\n 1 ;numcols\n)\n\n" "Initial contents for the three-element list at the bottom of the data area.") +(defconst ses-initial-global-parameters-re + "\n( ;Global parameters (these are read first)\n [23] ;SES file-format\n [0-9]+ ;numrows\n [0-9]+ ;numcols\n\\( [0-9]+ ;numlocprn\n\\)?)\n\n" + "Match Global parameters for .") + (defconst ses-initial-file-trailer ";; Local Variables:\n;; mode: ses\n;; End:\n" "Initial contents for the file-trailer area at the bottom of the file.") @@ -271,11 +275,17 @@ ;; Local variables and constants ;;---------------------------------------------------------------------------- -(eval-and-compile +(eval-and-compile ; silence compiler (defconst ses-localvars '(ses--blank-line ses--cells ses--col-printers ses--col-widths ses--curcell ses--curcell-overlay ses--default-printer + (ses--local-printer-hashmap . :hashmap) + ;; the list is there to remember the order of local printers like there + ;; are written to the SES filen which service the hashmap does not + ;; provide. + ses--local-printer-list + (ses--numlocprn . 0); count of local printers ses--deferred-narrow ses--deferred-recalc ses--deferred-write ses--file-format ses--named-cell-hashmap @@ -298,7 +308,20 @@ ((symbolp x) (set (make-local-variable x) nil)) ((consp x) - (set (make-local-variable (car x)) (cdr x))) + (cond + ((integerp (cdr x)) + (set (make-local-variable (car x)) (cdr x))) + ((eq (cdr x) :hashmap) + (set (make-local-variable (car x)) + (if (boundp (car x)) + (let ((xv (symbol-value (car x)))) + (if (hash-table-p xv) + (clrhash xv) + (warn "Unexpected value of symbol %S, should be a hash table" x) + (make-hash-table :test 'eq))) + (make-hash-table :test 'eq)))) + (t (error "Unexpected initializer `%S' in list `ses-localvars' for entry %S" + (cdr x) (car x)) ) )) (t (error "Unexpected elements `%S' in list `ses-localvars'" x)))))) (eval-when-compile ; silence compiler @@ -310,10 +333,21 @@ (defconst ses-paramlines-plist '(ses--col-widths -5 ses--col-printers -4 ses--default-printer -3 ses--header-row -2 ses--file-format 1 ses--numrows 2 - ses--numcols 3) + ses--numcols 3 ses--numlocprn 4) "Offsets from 'Global parameters' line to various parameter lines in the data area of a spreadsheet.") +(defconst ses-paramfmt-plist + '(ses--col-widths "(ses-column-widths %S)" + ses--col-printers "(ses-column-printers %S)" + ses--default-printer "(ses-default-printer %S)" + ses--header-row "(ses-header-row %S)" + ses--file-format " %S ;SES file-format" + ses--numrows " %S ;numrows" + ses--numcols " %S ;numcols" + ses--numlocprn " %S ;numlocprn") + "Formats of 'Global parameters' various parameters in the data +area of a spreadsheet.") ;; ;; "Side-effect variables". They are set in one function, altered in @@ -354,6 +388,30 @@ property-list) (vector symbol formula printer references property-list)) +(defsubst ses-make-local-printer-info (def &optional compiled-def number) + (let ((v (vector def + (or compiled-def (ses-local-printer-compile def)) + (or number ses--numlocprn) + nil))) + (push v ses--local-printer-list) + (aset v 3 ses--local-printer-list) + v)) + +(defmacro ses-locprn-get-compiled (locprn) + `(aref ,locprn 1)) + +(defmacro ses-locprn-compiled-aset (locprn compiled) + `(aset ,locprn 1 ,compiled)) + +(defmacro ses-locprn-get-def (locprn) + `(aref ,locprn 0)) + +(defmacro ses-locprn-def-aset (locprn def) + `(aset ,locprn 0 ,def)) + +(defmacro ses-locprn-get-number (locprn) + `(aref ,locprn 2)) + (defmacro ses-cell-symbol (row &optional col) "From a CELL or a pair (ROW,COL), get the symbol that names the local-variable holding its value. (0,0) => A1." `(aref ,(if col `(ses-get-cell ,row ,col) row) 0)) @@ -371,6 +429,10 @@ "From a CELL or a pair (ROW,COL), get the function that prints its value." `(aref ,(if col `(ses-get-cell ,row ,col) row) 2)) +(defmacro ses-cell-printer-aset (cell printer) + "From a CELL set the printer that prints its value." + `(aset ,cell 2 ,printer)) + (defmacro ses-cell-references (row &optional col) "From a CELL or a pair (ROW,COL), get the list of symbols for cells whose functions refer to its value." @@ -550,6 +612,29 @@ (set sym value) sym) +(defun ses-local-printer-compile (printer) + "Convert local printer function into faster printer +definition." + (cond + ((functionp printer) printer) + ((stringp printer) + `(lambda (x) (format ,printer x))) + (t (error "Invalid printer %S" printer)))) + +(defmacro ses-local-printer (printer-name printer-def) + "Define a local printer with name PRINTER-NAME and definition +PRINTER-DEF. Return the printer info." + (or + (and (symbolp printer-name) + (ses-printer-validate printer-def)) + (error "Invalid local printer definition")) + (and (gethash printer-name ses--local-printer-hashmap) + (error "Duplicate printer definition %S" printer-name)) + (add-to-list 'ses-read-printer-history (symbol-name printer-name)) + (puthash printer-name + (ses-make-local-printer-info (ses-safe-printer printer-def)) + ses--local-printer-hashmap)) + (defmacro ses-column-widths (widths) "Load the vector of column widths from the spreadsheet file. This is a macro to prevent propagate-on-load viruses." @@ -663,6 +748,8 @@ "Signal an error if PRINTER is not a valid SES cell printer." (or (not printer) (stringp printer) + ;; printer is a local printer + (and (symbolp printer) (gethash printer ses--local-printer-hashmap)) (functionp printer) (and (stringp (car-safe printer)) (not (cdr printer))) (error "Invalid printer function")) @@ -1260,7 +1347,13 @@ (format (car printer) value) "")) (t - (setq value (funcall printer (or value ""))) + (setq value (funcall + (or (and (symbolp printer) + (let ((locprn (gethash printer ses--local-printer-hashmap))) + (and locprn + (ses-locprn-get-compiled locprn)))) + printer) + (or value ""))) (if (stringp value) value (or (stringp (car-safe value)) @@ -1333,6 +1426,22 @@ (goto-char ses--params-marker) (forward-line def)))) +(defun ses-file-format-extend-paramter-list (new-file-format) + "Extend the global parameters list when file format is updated +from 2 to 3. This happens when local printer function are added +to a sheet that was created with SES version 2. This is not +undoable. Return nil when there was no change, and non nil otherwise." + (save-excursion + (cond + ((and (= ses--file-format 2) (= 3 new-file-format)) + (ses-set-parameter 'ses--file-format 3 ) + (ses-widen) + (goto-char ses--params-marker) + (forward-line (plist-get ses-paramlines-plist 'ses--numlocprn )) + (insert (format (plist-get ses-paramfmt-plist 'ses--numlocprn) ses--numlocprn) + ?\n) + t) ))) + (defun ses-set-parameter (def value &optional elem) "Set parameter DEF to VALUE (with undo) and write the value to the data area. See `ses-goto-data' for meaning of DEF. Newlines in the data are escaped. @@ -1342,13 +1451,7 @@ ;; in case one of them is being changed. (ses-goto-data def) (let ((inhibit-read-only t) - (fmt (plist-get '(ses--col-widths "(ses-column-widths %S)" - ses--col-printers "(ses-column-printers %S)" - ses--default-printer "(ses-default-printer %S)" - ses--header-row "(ses-header-row %S)" - ses--file-format " %S ;SES file-format" - ses--numrows " %S ;numrows" - ses--numcols " %S ;numcols") + (fmt (plist-get ses-paramfmt-plist def)) oldval) (if elem @@ -1734,29 +1837,38 @@ (search-backward ";; Local Variables:\n" nil t) (backward-list 1) (setq ses--params-marker (point-marker)) - (let ((params (ignore-errors (read (current-buffer))))) - (or (and (= (safe-length params) 3) + (let* ((params (ignore-errors (read (current-buffer)))) + (params-len (safe-length params))) + (or (and (>= params-len 3) + (<= params-len 4) (numberp (car params)) (numberp (cadr params)) (>= (cadr params) 0) (numberp (nth 2 params)) - (> (nth 2 params) 0)) + (> (nth 2 params) 0) + (or (<= params-len 3) + (let ((numlocprn (nth 3 params))) + (and (integerp numlocprn) (>= numlocprn 0))))) (error "Invalid SES file")) (setq ses--file-format (car params) ses--numrows (cadr params) - ses--numcols (nth 2 params)) + ses--numcols (nth 2 params) + ses--numlocprn (or (nth 3 params) 0)) (when (= ses--file-format 1) (let (buffer-undo-list) ; This is not undoable. (ses-goto-data 'ses--header-row) (insert "(ses-header-row 0)\n") - (ses-set-parameter 'ses--file-format 2) + (ses-set-parameter 'ses--file-format 3) (message "Upgrading from SES-1 file format"))) - (or (= ses--file-format 2) + (or (> ses--file-format 3) (error "This file needs a newer version of the SES library code")) ;; Initialize cell array. (setq ses--cells (make-vector ses--numrows nil)) (dotimes (row ses--numrows) - (aset ses--cells row (make-vector ses--numcols nil)))) + (aset ses--cells row (make-vector ses--numcols nil))) + ;; initialize local printer map. + (clrhash ses--local-printer-hashmap)) + ;; Skip over print area, which we assume is correct. (goto-char (point-min)) (forward-line ses--numrows) @@ -1767,7 +1879,22 @@ (forward-char (1- (length ses-print-data-boundary))) ;; Initialize printer and symbol lists. (mapc 'ses-printer-record ses-standard-printer-functions) - (setq ses--symbolic-formulas nil) + (setq ses--symbolic-formulas nil) + + ;; Load local printer definitions. + ;; This must be loaded *BEFORE* cells and column printers because the latters + ;; may call them. + (save-excursion + (forward-line (* ses--numrows (1+ ses--numcols))) + (let ((numlocprn ses--numlocprn)) + (setq ses--numlocprn 0) + (dotimes (lp numlocprn) + (let ((x (read (current-buffer)))) + (or (and (looking-at-p "\n") + (eq (car-safe x) 'ses-local-printer) + (eval x)) + (error "local printer-def error")) + (setq ses--numlocprn (1+ ses--numlocprn)))))) ;; Load cell definitions. (dotimes (row ses--numrows) (dotimes (col ses--numcols) @@ -1780,6 +1907,8 @@ (eval x))) (or (looking-at-p "\n\n") (error "Missing blank line between rows"))) + ;; Skip local printer function declaration --- that were already loaded. + (forward-line (+ 2 ses--numlocprn)) ;; Load global parameters. (let ((widths (read (current-buffer))) (n1 (char-after (point))) @@ -1804,8 +1933,7 @@ (1value (eval head-row))) ;; Should be back at global-params. (forward-char 1) - (or (looking-at-p (replace-regexp-in-string "1" "[0-9]+" - ses-initial-global-parameters)) + (or (looking-at-p ses-initial-global-parameters-re) (error "Problem with column-defs or global-params")) ;; Check for overall newline count in definitions area. (forward-line 3) @@ -2389,8 +2517,10 @@ ;;---------------------------------------------------------------------------- (defun ses-read-printer (prompt default) - "Common code for `ses-read-cell-printer', `ses-read-column-printer', and `ses-read-default-printer'. -PROMPT should end with \": \". Result is t if operation was canceled." + "Common code for functions `ses-read-cell-printer', `ses-read-column-printer', +`ses-read-default-printer' and `ses-define-local-printer'. +PROMPT should end with \": \". Result is t if operation was +canceled." (barf-if-buffer-read-only) (if (eq default t) (setq default "") @@ -2410,6 +2540,7 @@ (or (not new) (stringp new) (stringp (car-safe new)) + (and (symbolp new) (gethash new ses--local-printer-hashmap)) (ses-warn-unsafe new 'unsafep-function) (setq new t))) new)) @@ -3343,6 +3474,71 @@ (symbol-name new-name))) (force-mode-line-update))) +(defun ses-refresh-local-printer (name compiled-value) + "Refresh printout of spreadsheet for all cells with printer + defined to local printer named NAME using the value COMPILED-VALUE for this printer" + (message "Refreshing cells using printer %S" name) + (let (new-print) + (dotimes (row ses--numrows) + (dotimes (col ses--numcols) + (let ((cell-printer (ses-cell-printer row col))) + (when (eq cell-printer name) + (unless new-print + (setq new-print t) + (ses-begin-change)) + (ses-print-cell row col))))))) + +(defun ses-define-local-printer (printer-name) + "Define a local printer with name PRINTER-NAME." + (interactive "*SEnter printer name: ") + (let* ((cur-printer (gethash printer-name ses--local-printer-hashmap)) + (default (and (vectorp cur-printer) (ses-locprn-get-def cur-printer))) + printer-def-text + create-printer + (new-printer (ses-read-printer (format "Enter definition of printer %S: " printer-name) default))) + (cond + ;; cancelled operation => do nothing + ((eq new-printer t)) + ;; no change => do nothing + ((and (vectorp cur-printer) (equal new-printer default))) + ;; re-defined printer + ((vectorp cur-printer) + (setq create-printer 0) + (ses-locprn-def-aset cur-printer new-printer) + (ses-refresh-local-printer + printer-name + (ses-locprn-compiled-aset cur-printer (ses-local-printer-compile new-printer)))) + ;; new definition + (t + (setq create-printer 1) + (puthash printer-name + (setq cur-printer + (ses-make-local-printer-info new-printer)) + ses--local-printer-hashmap))) + (when create-printer + (setq printer-def-text + (concat + "(ses-local-printer " + (symbol-name printer-name) + " " + (prin1-to-string (ses-locprn-get-def cur-printer)) + ")")) + (save-excursion + (ses-goto-data ses--numrows + (ses-locprn-get-number cur-printer)) + (let ((inhibit-read-only t)) + ;; Special undo since it's outside the narrowed buffer. + (let (buffer-undo-list) + (if (= create-printer 0) + (delete-region (point) (line-end-position)) + (insert ?\n) + (backward-char)) + (insert printer-def-text) + (when (= create-printer 1) + (ses-file-format-extend-paramter-list 3) + (ses-set-parameter 'ses--numlocprn (+ ses--numlocprn create-printer))) ))))) ) + + ;;---------------------------------------------------------------------------- ;; Checking formulas for safety ;;---------------------------------------------------------------------------- @@ -3352,6 +3548,7 @@ (if (or (stringp printer) (stringp (car-safe printer)) (not printer) + (and (symbolp printer) (gethash printer ses--local-printer-hashmap)) (ses-warn-unsafe printer 'unsafep-function)) printer 'ses-unsafe)) ------------------------------------------------------------ revno: 115837 committer: Aidan Gauland branch nick: trunk timestamp: Fri 2014-01-03 09:17:19 +1300 message: * eshell.text (top): Fix incorrect info filename in an xref. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-02 19:19:20 +0000 +++ doc/misc/ChangeLog 2014-01-02 20:17:19 +0000 @@ -1,3 +1,7 @@ +2014-01-03 Aidan Gauland + + * eshell.text (top): Fix incorrect info filename in an xref. + 2014-01-02 Glenn Morris * Makefile.in (cc_mode_deps): Rename from (typo) ccmode_deps. === modified file 'doc/misc/eshell.texi' --- doc/misc/eshell.texi 2014-01-02 09:32:20 +0000 +++ doc/misc/eshell.texi 2014-01-02 20:17:19 +0000 @@ -63,10 +63,10 @@ Eshell is a shell-like command interpreter implemented in Emacs Lisp. It invokes no external processes except for those requested by the -user. It is intended to be an alternative to the @xref{Lisp -Interaction, IELM, , elisp, The Emacs Lisp Reference Manual} REPL for -Emacs @emph{and} with an interface similar to command shells such as -@command{bash}, @command{zsh}, @command{rc}, or @command{4dos}. +user. It is intended to be an alternative to the @xref{Lisp Interaction, IELM, , emacs, The Emacs Lisp Reference Manual} +REPL for Emacs @emph{and} with an interface similar to command shells +such as @command{bash}, @command{zsh}, @command{rc}, or +@command{4dos}. @c This manual is updated to release 2.4 of Eshell. @insertcopying ------------------------------------------------------------ revno: 115836 committer: Glenn Morris branch nick: trunk timestamp: Thu 2014-01-02 11:19:20 -0800 message: * doc/misc/Makefile.in (cc_mode_deps): Rename from (typo) ccmode_deps. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-02 09:32:20 +0000 +++ doc/misc/ChangeLog 2014-01-02 19:19:20 +0000 @@ -1,3 +1,7 @@ +2014-01-02 Glenn Morris + + * Makefile.in (cc_mode_deps): Rename from (typo) ccmode_deps. + 2014-01-02 Aidan Gauland * eshell.text (Command Basics): Removed `Command basics' chapter. === modified file 'doc/misc/Makefile.in' --- doc/misc/Makefile.in 2014-01-01 07:43:34 +0000 +++ doc/misc/Makefile.in 2014-01-02 19:19:20 +0000 @@ -193,7 +193,7 @@ calc.html: $(calc_deps) $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/calc.texi -ccmode_deps = ${srcdir}/cc-mode.texi ${gfdl} +cc_mode_deps = ${srcdir}/cc-mode.texi ${gfdl} ccmode : $(buildinfodir)/ccmode$(INFO_EXT) $(buildinfodir)/ccmode$(INFO_EXT): $(cc_mode_deps) $(mkinfodir) ------------------------------------------------------------ revno: 115835 committer: Glenn Morris branch nick: trunk timestamp: Thu 2014-01-02 11:18:24 -0800 message: Add 2014 to more copyright years diff: === modified file 'doc/man/ebrowse.1' --- doc/man/ebrowse.1 2013-01-03 01:35:49 +0000 +++ doc/man/ebrowse.1 2014-01-02 19:18:24 +0000 @@ -85,7 +85,7 @@ Copyright .if t \(co .if n (C) -2008-2013 Free Software Foundation, Inc. +2008-2014 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are === modified file 'doc/man/emacs.1' --- doc/man/emacs.1 2013-08-31 19:49:52 +0000 +++ doc/man/emacs.1 2014-01-02 19:18:24 +0000 @@ -655,7 +655,7 @@ Copyright .if t \(co .if n (C) -1995, 1999-2013 Free Software Foundation, Inc. +1995, 1999-2014 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are === modified file 'doc/man/etags.1' --- doc/man/etags.1 2013-02-13 04:31:09 +0000 +++ doc/man/etags.1 2014-01-02 19:18:24 +0000 @@ -268,7 +268,7 @@ Copyright .if t \(co .if n (C) -1992, 1999, 2001-2013 Free Software Foundation, Inc. +1992, 1999, 2001-2014 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are === modified file 'doc/man/grep-changelog.1' --- doc/man/grep-changelog.1 2013-01-03 01:35:49 +0000 +++ doc/man/grep-changelog.1 2014-01-02 19:18:24 +0000 @@ -62,7 +62,7 @@ Copyright .if t \(co .if n (C) -2008-2013 Free Software Foundation, Inc. +2008-2014 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are === modified file 'etc/refcards/ru-refcard.tex' --- etc/refcards/ru-refcard.tex 2014-01-01 07:43:34 +0000 +++ etc/refcards/ru-refcard.tex 2014-01-02 19:18:24 +0000 @@ -22,7 +22,7 @@ \setlength{\ColThreeWidth}{25mm} \newcommand{\versionemacs}[0]{24} % version of Emacs this is for -\newcommand{\cyear}[0]{2013} % copyright year +\newcommand{\cyear}[0]{2014} % copyright year \newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill \centerline{\footnotesize \copyright\ \cyear\ Free Software Foundation, Inc. ------------------------------------------------------------ revno: 115834 committer: Glenn Morris branch nick: trunk timestamp: Thu 2014-01-02 11:17:48 -0800 message: * doc/lispref/numbers.texi (Numeric Conversions): Fix a typo. Also some ChangeLog fixes. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-01-01 07:43:34 +0000 +++ doc/lispref/ChangeLog 2014-01-02 19:17:48 +0000 @@ -1,3 +1,7 @@ +2014-01-02 Glenn Morris + + * numbers.texi (Numeric Conversions): Fix a typo. + 2013-12-29 Paul Eggert Plain copy-file no longer chmods an existing destination (Bug#16133). @@ -1355,14 +1359,16 @@ Tweak markup. Remove domain-error and friends, which seem to be unused after the floating-point code revamp. - * functions.texi (Obsolete Functions): Obsolescence also affects + * functions.texi (Defining Functions): defun is now a macro. + (Obsolete Functions): Obsolescence also affects documentation commands. Various clarifications. (Declare Form): New node. * strings.texi (String Basics): Copyedits. - * os.texi (Idle Timers): Minor clarifications. + * os.texi (Startup Summary): Document leim-list.el change. (User Identification): Add system-users and system-groups. + (Idle Timers): Minor clarifications. * macros.texi (Defining Macros): Move description of `declare' to Declare Form node. @@ -1378,14 +1384,6 @@ the machine-independence of negative division since it does not happen in practice. -2012-09-28 Chong Yidong - - * os.texi (Startup Summary): Document leim-list.el change. - -2012-09-25 Chong Yidong - - * functions.texi (Defining Functions): defun is now a macro. - 2012-09-28 Leo Liu * files.texi (Files): Fix typo. === modified file 'doc/lispref/numbers.texi' --- doc/lispref/numbers.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/numbers.texi 2014-01-02 19:17:48 +0000 @@ -447,7 +447,7 @@ functions convert @var{number} to an integer, or return it unchanged if it already is an integer. If @var{divisor} is non-@code{nil}, they divide @var{number} by @var{divisor} and convert the result to an -integer. integer. If @var{divisor} is zero (whether integer or +integer. If @var{divisor} is zero (whether integer or floating-point), Emacs signals an @code{arith-error} error. @defun truncate number &optional divisor ------------------------------------------------------------ revno: 115833 committer: martin rudalics branch nick: trunk timestamp: Thu 2014-01-02 16:58:48 +0100 message: Further adjust frame/window scrollbar width calculations. * window.c (apply_window_adjustment): Set windows_or_buffers_changed. (Fwindow_scroll_bars): Return actual scrollbar width. * xfns.c (x_set_scroll_bar_default_width): Rename wid to unit. For non-toolkit builds again use 14 as minimum width and set FRAME_CONFIG_SCROLL_BAR_WIDTH accordingly. * xterm.c (XTset_vertical_scroll_bar): Take width from WINDOW_SCROLL_BAR_AREA_WIDTH. (x_new_font): Rename wid to unit. Base calculation of new scrollbar width on toolkit used and make it analogous to that of x_set_scroll_bar_default_width. * w32fns.c (x_set_scroll_bar_default_width): Rename wid to unit. (Fx_create_frame): Call x_set_scroll_bar_default_width instead of GetSystemMetrics. * w32term.c (w32_set_vertical_scroll_bar): Take width from WINDOW_SCROLL_BAR_AREA_WIDTH. (x_new_font): Make it correspond to changes in xterm.c. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-01-01 19:27:41 +0000 +++ src/ChangeLog 2014-01-02 15:58:48 +0000 @@ -1,3 +1,24 @@ +2014-01-02 Martin Rudalics + + Further adjust frame/window scrollbar width calculations. + * window.c (apply_window_adjustment): Set + windows_or_buffers_changed. + (Fwindow_scroll_bars): Return actual scrollbar width. + * xfns.c (x_set_scroll_bar_default_width): Rename wid to unit. + For non-toolkit builds again use 14 as minimum width and set + FRAME_CONFIG_SCROLL_BAR_WIDTH accordingly. + * xterm.c (XTset_vertical_scroll_bar): Take width from + WINDOW_SCROLL_BAR_AREA_WIDTH. + (x_new_font): Rename wid to unit. Base calculation of new + scrollbar width on toolkit used and make it analogous to that of + x_set_scroll_bar_default_width. + * w32fns.c (x_set_scroll_bar_default_width): Rename wid to unit. + (Fx_create_frame): Call x_set_scroll_bar_default_width instead + of GetSystemMetrics. + * w32term.c (w32_set_vertical_scroll_bar): Take width from + WINDOW_SCROLL_BAR_AREA_WIDTH. + (x_new_font): Make it correspond to changes in xterm.c. + 2014-01-01 Paul Eggert * lisp.h (EMACS_INT): Configure based on INTPTR_MAX, not LONG_MAX. === modified file 'src/frame.c' --- src/frame.c 2014-01-01 07:43:34 +0000 +++ src/frame.c 2014-01-02 15:58:48 +0000 @@ -3584,6 +3584,8 @@ do_pending_window_change (0); } + /* Eventually remove the following call. It should have been done by + x_set_window_size already. */ change_frame_size (f, 0, 0, 0, 0, 0, 1); XWINDOW (FRAME_SELECTED_WINDOW (f))->cursor.hpos = 0; XWINDOW (FRAME_SELECTED_WINDOW (f))->cursor.x = 0; === modified file 'src/w32fns.c' --- src/w32fns.c 2014-01-01 07:43:34 +0000 +++ src/w32fns.c 2014-01-02 15:58:48 +0000 @@ -1851,11 +1851,11 @@ void x_set_scroll_bar_default_width (struct frame *f) { - int wid = FRAME_COLUMN_WIDTH (f); + int unit = FRAME_COLUMN_WIDTH (f); FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = GetSystemMetrics (SM_CXVSCROLL); - FRAME_CONFIG_SCROLL_BAR_COLS (f) = (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) + - wid - 1) / wid; + FRAME_CONFIG_SCROLL_BAR_COLS (f) + = (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) + unit - 1) / unit; } @@ -4407,7 +4407,7 @@ XSETFRAME (frame, f); /* By default, make scrollbars the system standard width. */ - FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = GetSystemMetrics (SM_CXVSCROLL); + x_set_scroll_bar_default_width (f); f->terminal = dpyinfo->terminal; === modified file 'src/w32term.c' --- src/w32term.c 2014-01-01 07:43:34 +0000 +++ src/w32term.c 2014-01-02 15:58:48 +0000 @@ -3716,7 +3716,7 @@ /* Compute the left edge and the width of the scroll bar area. */ left = WINDOW_SCROLL_BAR_AREA_X (w); - width = WINDOW_CONFIG_SCROLL_BAR_WIDTH (w); + width = WINDOW_SCROLL_BAR_AREA_WIDTH (w); /* Does the scroll bar exist yet? */ if (NILP (w->vertical_scroll_bar)) @@ -5361,6 +5361,7 @@ x_new_font (struct frame *f, Lisp_Object font_object, int fontset) { struct font *font = XFONT_OBJECT (font_object); + int unit; if (fontset < 0) fontset = fontset_from_font (font_object); @@ -5372,22 +5373,21 @@ FRAME_FONT (f) = font; FRAME_BASELINE_OFFSET (f) = font->baseline_offset; - FRAME_COLUMN_WIDTH (f) = font->average_width; + FRAME_COLUMN_WIDTH (f) = unit = font->average_width; FRAME_LINE_HEIGHT (f) = font->height; compute_fringe_widths (f, 1); - /* Compute the scroll bar width in character columns. */ + /* Compute number of scrollbar columns. */ + unit = FRAME_COLUMN_WIDTH (f); if (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) > 0) - { - int wid = FRAME_COLUMN_WIDTH (f); - FRAME_CONFIG_SCROLL_BAR_COLS (f) - = (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) + wid - 1) / wid; - } + FRAME_CONFIG_SCROLL_BAR_COLS (f) + = (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) + unit - 1) / unit; else { - int wid = FRAME_COLUMN_WIDTH (f); - FRAME_CONFIG_SCROLL_BAR_COLS (f) = (14 + wid - 1) / wid; + FRAME_CONFIG_SCROLL_BAR_COLS (f) = (14 + unit - 1) / unit; + FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = + FRAME_CONFIG_SCROLL_BAR_COLS (f) * unit; } /* Now make the frame display the given font. */ === modified file 'src/window.c' --- src/window.c 2014-01-01 07:43:34 +0000 +++ src/window.c 2014-01-02 15:58:48 +0000 @@ -6631,6 +6631,7 @@ adjust_window_margins (w); clear_glyph_matrix (w->current_matrix); w->window_end_valid = 0; + windows_or_buffers_changed = 30; wset_redisplay (w); adjust_frame_glyphs (XFRAME (WINDOW_FRAME (w))); } @@ -6834,9 +6835,7 @@ { struct window *w = decode_live_window (window); - return list4 (make_number ((WINDOW_CONFIG_SCROLL_BAR_WIDTH (w) - ? WINDOW_CONFIG_SCROLL_BAR_WIDTH (w) - : WINDOW_SCROLL_BAR_AREA_WIDTH (w))), + return list4 (make_number (WINDOW_SCROLL_BAR_AREA_WIDTH (w)), make_number (WINDOW_SCROLL_BAR_COLS (w)), w->vertical_scroll_bar_type, Qnil); } === modified file 'src/xfns.c' --- src/xfns.c 2014-01-01 07:43:34 +0000 +++ src/xfns.c 2014-01-02 15:58:48 +0000 @@ -1488,7 +1488,7 @@ void x_set_scroll_bar_default_width (struct frame *f) { - int wid = FRAME_COLUMN_WIDTH (f); + int unit = FRAME_COLUMN_WIDTH (f); #ifdef USE_TOOLKIT_SCROLL_BARS #ifdef USE_GTK int minw = xg_get_default_scrollbar_width (); @@ -1496,16 +1496,14 @@ int minw = 16; #endif /* A minimum width of 14 doesn't look good for toolkit scroll bars. */ - FRAME_CONFIG_SCROLL_BAR_COLS (f) = (minw + wid - 1) / wid; + FRAME_CONFIG_SCROLL_BAR_COLS (f) = (minw + unit - 1) / unit; FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = minw; #else - /* Make the actual width 16 pixels and a multiple of a - character width. */ - FRAME_CONFIG_SCROLL_BAR_COLS (f) = (16 + wid - 1) / wid; - - /* Use all of that space (aside from required margins) for the - scroll bar. */ - FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = 16; + /* The width of a non-toolkit scrollbar is at least 14 pixels and a + multiple of the frame's character width. */ + FRAME_CONFIG_SCROLL_BAR_COLS (f) = (14 + unit - 1) / unit; + FRAME_CONFIG_SCROLL_BAR_WIDTH (f) + = FRAME_CONFIG_SCROLL_BAR_COLS (f) * unit; #endif } === modified file 'src/xterm.c' --- src/xterm.c 2014-01-01 07:43:34 +0000 +++ src/xterm.c 2014-01-02 15:58:48 +0000 @@ -5096,7 +5096,7 @@ /* Compute the left edge and the width of the scroll bar area. */ left = WINDOW_SCROLL_BAR_AREA_X (w); - width = WINDOW_CONFIG_SCROLL_BAR_WIDTH (w); + width = WINDOW_SCROLL_BAR_AREA_WIDTH (w); /* Does the scroll bar exist yet? */ if (NILP (w->vertical_scroll_bar)) @@ -7675,6 +7675,7 @@ x_new_font (struct frame *f, Lisp_Object font_object, int fontset) { struct font *font = XFONT_OBJECT (font_object); + int unit; if (fontset < 0) fontset = fontset_from_font (font_object); @@ -7694,21 +7695,20 @@ compute_fringe_widths (f, 1); - /* Compute the scroll bar width in character columns. */ - if (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) > 0) - { - int wid = FRAME_COLUMN_WIDTH (f); - - FRAME_CONFIG_SCROLL_BAR_COLS (f) - = (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) + wid-1) / wid; - } - else - { - int wid = FRAME_COLUMN_WIDTH (f); - - FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = 14; - FRAME_CONFIG_SCROLL_BAR_COLS (f) = (14 + wid - 1) / wid; - } + unit = FRAME_COLUMN_WIDTH (f); +#ifdef USE_TOOLKIT_SCROLL_BARS + /* The width of a toolkit scrollbar does not change with the new + font but we have to calculate the number of columns it occupies + anew. */ + FRAME_CONFIG_SCROLL_BAR_COLS (f) + = (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) + unit - 1) / unit; +#else + /* The width of a non-toolkit scrollbar is at least 14 pixels and a + multiple of the frame's character width. */ + FRAME_CONFIG_SCROLL_BAR_COLS (f) = (14 + unit - 1) / unit; + FRAME_CONFIG_SCROLL_BAR_WIDTH (f) + = FRAME_CONFIG_SCROLL_BAR_COLS (f) * unit; +#endif if (FRAME_X_WINDOW (f) != 0) { ------------------------------------------------------------ revno: 115832 committer: Michael Albinus branch nick: trunk timestamp: Thu 2014-01-02 10:40:11 +0100 message: * NEWS: Explain, why xesam.el is obsolete. diff: === modified file 'etc/NEWS' --- etc/NEWS 2014-01-01 07:43:34 +0000 +++ etc/NEWS 2014-01-02 09:40:11 +0000 @@ -856,7 +856,7 @@ *** The previous version of todo-mode.el is obsolete and renamed otodo-mode.el. -*** xesam.el. +*** xesam.el is obsolete, because the XESAM project has been cancelled. +++ *** yow.el is obsolete; use fortune.el or cookie1.el instead. ------------------------------------------------------------ revno: 115831 committer: Aidan Gauland branch nick: trunk timestamp: Thu 2014-01-02 22:32:20 +1300 message: * eshell.text (Command Basics): Removed `Command basics' chapter. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-02 09:27:46 +0000 +++ doc/misc/ChangeLog 2014-01-02 09:32:20 +0000 @@ -1,5 +1,9 @@ 2014-01-02 Aidan Gauland + * eshell.text (Command Basics): Removed `Command basics' chapter. + +2014-01-02 Aidan Gauland + * eshell.text (What is Eshell?): Add section about what not to use Eshell for. === modified file 'doc/misc/eshell.texi' --- doc/misc/eshell.texi 2014-01-02 09:27:46 +0000 +++ doc/misc/eshell.texi 2014-01-02 09:32:20 +0000 @@ -74,7 +74,6 @@ @menu * Introduction:: A brief introduction to the Emacs Shell. -* Command basics:: The basics of command usage. * Commands:: * Expansion:: * Input/Output:: @@ -202,98 +201,6 @@ requests, bug reports and encouragement. Thanks a lot! Without you there would be no new releases of Eshell. -@node Command basics -@chapter Basic overview - -A command shell is a means of entering verbally-formed commands. This -is really all that it does, and every feature described in this manual -is a means to that end. Therefore, it's important to take firm hold on -exactly what a command is, and how it fits in the overall picture of -things. - -@menu -* Commands verbs:: Commands always begin with a verb. -* Command arguments:: Some verbs require arguments. -@end menu - -@node Commands verbs -@section Commands verbs - -Commands are expressed using @dfn{script}, a special shorthand language -computers can understand with no trouble. Script is an extremely simple -language; oddly enough, this is what makes it look so complicated! -Whereas normal languages use a variety of embellishments, the form of a -script command is always: - -@example -@var{verb} [@var{arguments}] -@end example - -The verb expresses what you want your computer to do. There are a fixed -number of verbs, although this number is usually quite large. On the -author's computer, it reaches almost 1400 in number. But of course, -only a handful of these are really necessary. - -Sometimes, the verb is all that's written. A verb is always a single -word, usually related to the task it performs. @command{reboot} is a -good example. Entering that on GNU/Linux will reboot the -computer---assuming you have sufficient privileges. - -Other verbs require more information. These are usually very capable -verbs, and must be told specifically what to do. The extra information -is given in the form of @dfn{arguments}. For example, the -@command{echo} verb prints back whatever arguments you type. It -requires these arguments to know what to echo. A proper use of -@command{echo} looks like this: - -@example -echo This is an example of using echo! -@end example - -This script command causes the computer to echo back: ``This is an -example of using echo!'' - -Although command verbs are always simple words, like @command{reboot} or -@command{echo}, arguments may have a wide variety of forms. There are -textual arguments, numerical arguments---even Lisp arguments. -Distinguishing these different types of arguments requires special -typing, for the computer to know exactly what you mean. - -@node Command arguments -@section Command arguments - -Eshell recognizes several different kinds of command arguments: - -@enumerate -@item Strings (also called textual arguments) -@item Numbers (floating point or integer) -@item Lisp lists -@item Lisp symbols -@item Emacs buffers -@item Emacs process handles -@end enumerate - -Most users need to worry only about the first two. The third, Lisp lists, -occur very frequently, but almost always behind the scenes. - -Strings are the most common type of argument, and consist of nearly any -character. Special characters---those used by Eshell -specifically---must be preceded by a backslash (@samp{\}). When in doubt, it -is safe to add backslashes anywhere and everywhere. - -Here is a more complicated @command{echo} example: - -@example -echo A\ Multi-word\ Argument\ With\ A\ \$\ dollar -@end example - -Beyond this, things get a bit more complicated. While not beyond the -reach of someone wishing to learn, it is definitely beyond the scope of -this manual to present it all in a simplistic manner. Get comfortable -with Eshell as a basic command invocation tool, and learn more about the -commands on your system; then come back when it all sits more familiarly -on your mind. Have fun! - @node Commands @chapter Commands ------------------------------------------------------------ revno: 115830 committer: Aidan Gauland branch nick: trunk timestamp: Thu 2014-01-02 22:27:46 +1300 message: * eshell.text (What is Eshell?): Add section about what not to use Eshell for. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-01 07:43:34 +0000 +++ doc/misc/ChangeLog 2014-01-02 09:27:46 +0000 @@ -1,3 +1,8 @@ +2014-01-02 Aidan Gauland + + * eshell.text (What is Eshell?): Add section about what not to use + Eshell for. + 2013-12-23 Teodor Zlatanov * emacs-gnutls.texi (Help For Users): Document `gnutls-verify-error'. === modified file 'doc/misc/eshell.texi' --- doc/misc/eshell.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/eshell.texi 2014-01-02 09:27:46 +0000 @@ -61,19 +61,19 @@ @node Top @top Eshell -Eshell is a shell-like command interpreter -implemented in Emacs Lisp. It invokes no external processes except for -those requested by the user. It is intended to be a functional -replacement for command shells such as @command{bash}, @command{zsh}, -@command{rc}, or @command{4dos}; since Emacs itself is capable of -handling the sort of tasks accomplished by those tools. +Eshell is a shell-like command interpreter implemented in Emacs Lisp. +It invokes no external processes except for those requested by the +user. It is intended to be an alternative to the @xref{Lisp +Interaction, IELM, , elisp, The Emacs Lisp Reference Manual} REPL for +Emacs @emph{and} with an interface similar to command shells such as +@command{bash}, @command{zsh}, @command{rc}, or @command{4dos}. @c This manual is updated to release 2.4 of Eshell. @insertcopying @end ifnottex @menu -* What is Eshell?:: A brief introduction to the Emacs Shell. +* Introduction:: A brief introduction to the Emacs Shell. * Command basics:: The basics of command usage. * Commands:: * Expansion:: @@ -87,8 +87,9 @@ * Key Index:: @end menu -@node What is Eshell? -@chapter What is Eshell? +@node Introduction +@chapter Introduction +@section What is Eshell? @cindex what is Eshell? @cindex Eshell, what it is @@ -139,6 +140,24 @@ looks like: But don't let it fool you; once you know what's going on, it's easier than it looks: @code{ls -lt **/*.doc(Lk+50aM+5)}.} +@section What Eshell is not +@cindex Eshell, what it is not +@cindex what Eshell is not +@cindex what isn't Eshell? + +Eshell is @emph{not} a replacement for system shells such as +@command{bash} or @command{zsh}. Use Eshell when you want to move +text between Emacs and external processes; if you only want to pipe +output from one external process to another, to another, use a system +shell, because Emacs's IO system is buffer oriented, not stream +oriented, and is very inefficient at such tasks. If you want to write +shell scripts in Eshell, don't; either write an elisp library or use a +system shell. + +Some things Eshell just doesn't do well. It fills the niche between +IELM and your system shell, where the peculiar use-cases lie, and it +is less than ideal outside that niche. + @menu * Contributors to Eshell:: People who have helped out! @end menu ------------------------------------------------------------ revno: 115829 committer: Xue Fuqiao branch nick: trunk timestamp: Thu 2014-01-02 16:47:40 +0800 message: * admin/check-doc-strings: Replace `perl -w' with `use warnings;'. diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2014-01-01 07:43:34 +0000 +++ admin/ChangeLog 2014-01-02 08:47:40 +0000 @@ -1,3 +1,7 @@ +2014-01-02 Xue Fuqiao + + * check-doc-strings: Replace `perl -w' with `use warnings;'. + 2013-12-30 Glenn Morris * admin.el (manual-html-fix-headers, manual-html-fix-index-1): === modified file 'admin/admin.el' --- admin/admin.el 2014-01-01 07:43:34 +0000 +++ admin/admin.el 2014-01-02 08:47:40 +0000 @@ -218,6 +218,7 @@ (buffer-substring start (point)))) '("efaq-w32"))))) +;; TODO report the progress (defun make-manuals (root &optional type) "Generate the web manuals for the Emacs webpage. ROOT should be the root of an Emacs source tree. === modified file 'admin/check-doc-strings' --- admin/check-doc-strings 2013-01-03 02:36:29 +0000 +++ admin/check-doc-strings 2014-01-02 08:47:40 +0000 @@ -1,11 +1,12 @@ : #-*- Perl -*- -eval 'exec perl -w -S $0 ${1+"$@"}' # Portability kludge +eval 'exec perl -S $0 ${1+"$@"}' # Portability kludge if 0; # Author: Martin Buchholz # This program is in the public domain. use strict; +use warnings; use POSIX; (my $myName = $0) =~ s@.*/@@; my $usage=" ------------------------------------------------------------ revno: 115828 committer: Paul Eggert branch nick: trunk timestamp: Wed 2014-01-01 15:13:59 -0800 message: Prefer ASCII in doc and comments when the difference does not matter. diff: === modified file 'doc/emacs/maintaining.texi' --- doc/emacs/maintaining.texi 2014-01-01 07:43:34 +0000 +++ doc/emacs/maintaining.texi 2014-01-01 23:13:59 +0000 @@ -1046,7 +1046,7 @@ @findex vc-ignore Many source trees contain some files that do not need to be versioned, such as editor backups, object or bytecode files, and built -programs. You can simply not add them, but then they’ll always crop +programs. You can simply not add them, but then they'll always crop up as unknown files. You can also tell the version control system to ignore these files by adding them to the ignore file at the top of the tree. @kbd{C-x v G} (@code{vc-ignore}) can help you do this. When === modified file 'doc/emacs/text.texi' --- doc/emacs/text.texi 2014-01-01 07:43:34 +0000 +++ doc/emacs/text.texi 2014-01-01 23:13:59 +0000 @@ -2086,7 +2086,7 @@ commands, including Auto Fill (@pxref{Auto Fill}), insert only soft newlines and delete only soft newlines, leaving hard newlines alone. -@c FIXME: I don't see ‘unfilled’ in that node. --xfq +@c FIXME: I don't see 'unfilled' in that node. --xfq Thus, when editing with Enriched mode, you should not use @key{RET} or @kbd{C-o} to break lines in the middle of filled paragraphs. Use Auto Fill mode or explicit fill commands (@pxref{Fill Commands}) === modified file 'doc/lispref/display.texi' --- doc/lispref/display.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/display.texi 2014-01-01 23:13:59 +0000 @@ -615,8 +615,8 @@ @code{condition-case}, the user won't see the error message; it could show the message to the user by reporting it as a warning.) -@c FIXME: Why use ‘(bytecomp)’ instead of ‘'bytecomp’ or simply -@c ‘bytecomp’ here? The parens are part of ‘warning-type-format’ but +@c FIXME: Why use "(bytecomp)" instead of "'bytecomp" or simply +@c "bytecomp" here? The parens are part of warning-type-format but @c not part of the warning type. --xfq @cindex warning type Each warning has a @dfn{warning type} to classify it. The type is a @@ -2044,7 +2044,7 @@ Alternative foreground color, a string. This is like @code{:foreground} but the color is only used as a foreground when the background color is near to the foreground that would have been used. This is useful for -example when marking text (i.e. the region face). If the text has a foreground +example when marking text (i.e. the region face). If the text has a foreground that is visible with the region face, that foreground is used. If the foreground is near the region face background, @code{:distant-foreground} is used instead so the text is readable. @@ -3589,8 +3589,8 @@ @xref{Fringe Bitmaps}. @end ifnottex -@c FIXME: I can't find the ‘fringes-indicator-alist’ variable. Maybe -@c it should be ‘fringe-indicator-alist’ or ‘fringe-cursor-alist’? --xfq +@c FIXME: I can't find the fringes-indicator-alist variable. Maybe +@c it should be fringe-indicator-alist or fringe-cursor-alist? --xfq When @code{fringe-cursor-alist} has a buffer-local value, and there is no bitmap defined for a cursor type, the corresponding value from the default value of @code{fringes-indicator-alist} is used. @@ -4712,7 +4712,7 @@ wish. @code{:max-width} and @code{:max-height} will always preserve the aspect ratio. -@c FIXME: ‘:format-type’ or ‘:format’? --xfq +@c FIXME: ':format-type' or ':format'? --xfq @item :format ImageMagick tries to auto-detect the image type, but it isn't always able to. By using @code{:format-type}, we can give ImageMagick a hint @@ -4793,7 +4793,7 @@ The remaining arguments, @var{props}, specify additional image properties---for example, -@c ‘:heuristic-mask’ is not documented? +@c ':heuristic-mask' is not documented? @example (create-image "foo.xpm" 'xpm nil :heuristic-mask t) @end example === modified file 'doc/lispref/nonascii.texi' --- doc/lispref/nonascii.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/nonascii.texi 2014-01-01 23:13:59 +0000 @@ -550,15 +550,13 @@ @defun get-char-code-property char propname This function returns the value of @var{char}'s @var{propname} property. -@c FIXME: Use ‘?\s’ instead of ‘? ’ for the space character in the -@c first example? --xfq @example @group -(get-char-code-property ? 'general-category) +(get-char-code-property ?\s 'general-category) @result{} Zs @end group @group -(get-char-code-property ?1 'general-category) +(get-char-code-property ?1 'general-category) @result{} Nd @end group @group @@ -688,7 +686,7 @@ system (@pxref{Coding Systems}). @end defun -@c TODO: Explain the properties here and add indexes such as ‘charset property’. +@c TODO: Explain the properties here and add indexes such as 'charset property'. @defun charset-plist charset This function returns the property list of the character set @var{charset}. Although @var{charset} is a symbol, this is not the === modified file 'doc/misc/ido.texi' --- doc/misc/ido.texi 2014-01-01 07:43:34 +0000 +++ doc/misc/ido.texi 2014-01-01 23:13:59 +0000 @@ -576,7 +576,7 @@ Now you can customize @code{completion-ignored-extensions} as well. Go ahead and add all the useless object files, backup files, shared -library files and other computing flotsam you don’t want Ido to show. +library files and other computing flotsam you don't want Ido to show. @strong{Please notice:} Ido will still complete the ignored elements if it would otherwise not show any other matches. So if you type out === modified file 'doc/misc/org.texi' --- doc/misc/org.texi 2014-01-01 08:31:29 +0000 +++ doc/misc/org.texi 2014-01-01 23:13:59 +0000 @@ -13071,7 +13071,7 @@ @end lisp The @code{my-ascii-src-block} function looks at the attribute above the -element. If it isn’t true, it gives hand to the @code{ascii} back-end. +element. If it isn't true, it gives hand to the @code{ascii} back-end. Otherwise, it creates a box around the code, leaving room for the language. A new back-end is then created. It only changes its behaviour when translating @code{src-block} type element. Now, all it takes to use the new @@ -13778,7 +13778,7 @@ can be useful in situations where potentially untrusted Org mode files are exported in an automated fashion, for example when Org mode is used as the markup language for a wiki. It is also possible to set this variable to -@code{‘inline-only}. In that case, only inline code blocks will be +@code{'inline-only}. In that case, only inline code blocks will be evaluated, in order to insert their results. Non-inline code blocks are assumed to have their results already inserted in the buffer by manual evaluation. This setting is useful to avoid expensive recalculations during === modified file 'src/lread.c' --- src/lread.c 2014-01-01 07:43:34 +0000 +++ src/lread.c 2014-01-01 23:13:59 +0000 @@ -2053,7 +2053,7 @@ if (EQ (stream, Qt)) stream = Qread_char; if (EQ (stream, Qread_char)) - /* FIXME: ¿¡ When is this used !? */ + /* FIXME: ?! When is this used !? */ return call1 (intern ("read-minibuffer"), build_string ("Lisp expression: ")); ------------------------------------------------------------ revno: 115827 committer: Paul Eggert branch nick: trunk timestamp: Wed 2014-01-01 11:27:41 -0800 message: * lisp.h (EMACS_INT): Configure based on INTPTR_MAX, not LONG_MAX. This is a cleaner way to fix the MinGW-w64 porting problem. Check for INTPTR_MAX misconfiguration. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-01-01 17:44:48 +0000 +++ src/ChangeLog 2014-01-01 19:27:41 +0000 @@ -1,3 +1,9 @@ +2014-01-01 Paul Eggert + + * lisp.h (EMACS_INT): Configure based on INTPTR_MAX, not LONG_MAX. + This is a cleaner way to fix the MinGW-w64 porting problem. + Check for INTPTR_MAX misconfiguration. + 2014-01-01 Eli Zaretskii * search.c (newline_cache_on_off, find_newline): In indirect === modified file 'src/lisp.h' --- src/lisp.h 2014-01-01 07:43:34 +0000 +++ src/lisp.h 2014-01-01 19:27:41 +0000 @@ -63,21 +63,25 @@ pI - printf length modifier for EMACS_INT EMACS_UINT - unsigned variant of EMACS_INT */ #ifndef EMACS_INT_MAX -# if LONG_MAX < LLONG_MAX && (defined(WIDE_EMACS_INT) || defined(_WIN64)) +# if INTPTR_MAX <= 0 +# error "INTPTR_MAX misconfigured" +# elif INTPTR_MAX <= INT_MAX && !defined WIDE_EMACS_INT +typedef int EMACS_INT; +typedef unsigned int EMACS_UINT; +# define EMACS_INT_MAX INT_MAX +# define pI "" +# elif INTPTR_MAX <= LONG_MAX && !defined WIDE_EMACS_INT +typedef long int EMACS_INT; +typedef unsigned long EMACS_UINT; +# define EMACS_INT_MAX LONG_MAX +# define pI "l" +# elif INTPTR_MAX <= LLONG_MAX typedef long long int EMACS_INT; typedef unsigned long long int EMACS_UINT; # define EMACS_INT_MAX LLONG_MAX # define pI "ll" -# elif INT_MAX < LONG_MAX -typedef long int EMACS_INT; -typedef unsigned long EMACS_UINT; -# define EMACS_INT_MAX LONG_MAX -# define pI "l" # else -typedef int EMACS_INT; -typedef unsigned int EMACS_UINT; -# define EMACS_INT_MAX INT_MAX -# define pI "" +# error "INTPTR_MAX too large" # endif #endif ------------------------------------------------------------ revno: 115826 fixes bug: http://debbugs.gnu.org/16265 committer: Eli Zaretskii branch nick: trunk timestamp: Wed 2014-01-01 19:44:48 +0200 message: Fix bug #16265 with buffer caches when modifying text in indirect buffers. src/search.c (newline_cache_on_off, find_newline): In indirect buffers, use the newline cache of the base buffer. src/insdel.c (invalidate_buffer_caches): If BUF is an indirect buffer, invalidate the caches of its base buffer. src/indent.c (width_run_cache_on_off, compute_motion): In indirect buffers, use the width-run cache of the base buffer. src/xdisp.c (redisplay_window): When the window displays an indirect buffer, and the character widths in the display table have changed, invalidate the width-run cache of the corresponding base buffer. src/fileio.c (Finsert_file_contents): When invalidating the newline cache, consider the case of inserting into indirect buffer. src/bidi.c (bidi_paragraph_cache_on_off, bidi_find_paragraph_start): In indirect buffers, use the paragraph cache of the base buffer. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-01-01 07:43:34 +0000 +++ src/ChangeLog 2014-01-01 17:44:48 +0000 @@ -1,3 +1,25 @@ +2014-01-01 Eli Zaretskii + + * search.c (newline_cache_on_off, find_newline): In indirect + buffers, use the newline cache of the base buffer. + + * insdel.c (invalidate_buffer_caches): If BUF is an indirect + buffer, invalidate the caches of its base buffer. (Bug#16265) + + * indent.c (width_run_cache_on_off, compute_motion): In indirect + buffers, use the width-run cache of the base buffer. + + * xdisp.c (redisplay_window): When the window displays an indirect + buffer, and the character widths in the display table have + changed, invalidate the width-run cache of the corresponding base + buffer. + + * fileio.c (Finsert_file_contents): When invalidating the newline + cache, consider the case of inserting into indirect buffer. + + * bidi.c (bidi_paragraph_cache_on_off, bidi_find_paragraph_start): + In indirect buffers, use the paragraph cache of the base buffer. + 2013-12-31 Martin Rudalics * window.c (grow_mini_window): Fix last change. === modified file 'src/bidi.c' --- src/bidi.c 2014-01-01 07:43:34 +0000 +++ src/bidi.c 2014-01-01 17:44:48 +0000 @@ -1100,20 +1100,44 @@ static struct region_cache * bidi_paragraph_cache_on_off (void) { + struct buffer *cache_buffer = current_buffer; + bool indirect_p = false; + + /* For indirect buffers, make sure to use the cache of their base + buffer. */ + if (cache_buffer->base_buffer) + { + cache_buffer = cache_buffer->base_buffer; + indirect_p = true; + } + + /* Don't turn on or off the cache in the base buffer, if the value + of cache-long-scans of the base buffer is inconsistent with that. + This is because doing so will just make the cache pure overhead, + since if we turn it on via indirect buffer, it will be + immediately turned off by its base buffer. */ if (NILP (BVAR (current_buffer, cache_long_scans))) { - if (current_buffer->bidi_paragraph_cache) + if (!indirect_p + || NILP (BVAR (cache_buffer, cache_long_scans))) { - free_region_cache (current_buffer->bidi_paragraph_cache); - current_buffer->bidi_paragraph_cache = 0; + if (cache_buffer->bidi_paragraph_cache) + { + free_region_cache (cache_buffer->bidi_paragraph_cache); + cache_buffer->bidi_paragraph_cache = 0; + } } return NULL; } else { - if (!current_buffer->bidi_paragraph_cache) - current_buffer->bidi_paragraph_cache = new_region_cache (); - return current_buffer->bidi_paragraph_cache; + if (!indirect_p + || !NILP (BVAR (cache_buffer, cache_long_scans))) + { + if (!cache_buffer->bidi_paragraph_cache) + cache_buffer->bidi_paragraph_cache = new_region_cache (); + } + return cache_buffer->bidi_paragraph_cache; } } @@ -1134,6 +1158,10 @@ ptrdiff_t limit = ZV, limit_byte = ZV_BYTE; struct region_cache *bpc = bidi_paragraph_cache_on_off (); ptrdiff_t n = 0, oldpos = pos, next; + struct buffer *cache_buffer = current_buffer; + + if (cache_buffer->base_buffer) + cache_buffer = cache_buffer->base_buffer; while (pos_byte > BEGV_BYTE && n++ < MAX_PARAGRAPH_SEARCH @@ -1144,7 +1172,7 @@ of the text over which we scan back includes paragraph_start_re? */ DEC_BOTH (pos, pos_byte); - if (bpc && region_cache_backward (current_buffer, bpc, pos, &next)) + if (bpc && region_cache_backward (cache_buffer, bpc, pos, &next)) { pos = next, pos_byte = CHAR_TO_BYTE (pos); break; @@ -1155,7 +1183,7 @@ if (n >= MAX_PARAGRAPH_SEARCH) pos = BEGV, pos_byte = BEGV_BYTE; if (bpc) - know_region_cache (current_buffer, bpc, pos, oldpos); + know_region_cache (cache_buffer, bpc, pos, oldpos); /* Positions returned by the region cache are not limited to BEGV..ZV range, so we limit them here. */ pos_byte = clip_to_bounds (BEGV_BYTE, pos_byte, ZV_BYTE); === modified file 'src/fileio.c' --- src/fileio.c 2014-01-01 07:43:34 +0000 +++ src/fileio.c 2014-01-01 17:44:48 +0000 @@ -4496,7 +4496,11 @@ /* We made a lot of deletions and insertions above, so invalidate the newline cache for the entire region of the inserted characters. */ - if (current_buffer->newline_cache) + if (current_buffer->base_buffer && current_buffer->base_buffer->newline_cache) + invalidate_region_cache (current_buffer->base_buffer, + current_buffer->base_buffer->newline_cache, + PT - BEG, Z - PT - inserted); + else if (current_buffer->newline_cache) invalidate_region_cache (current_buffer, current_buffer->newline_cache, PT - BEG, Z - PT - inserted); === modified file 'src/indent.c' --- src/indent.c 2014-01-01 07:43:34 +0000 +++ src/indent.c 2014-01-01 17:44:48 +0000 @@ -144,30 +144,51 @@ /* Allocate or free the width run cache, as requested by the current state of current_buffer's cache_long_scans variable. */ -static void +static struct region_cache * width_run_cache_on_off (void) { + struct buffer *cache_buffer = current_buffer; + bool indirect_p = false; + + if (cache_buffer->base_buffer) + { + cache_buffer = cache_buffer->base_buffer; + indirect_p = true; + } + if (NILP (BVAR (current_buffer, cache_long_scans)) /* And, for the moment, this feature doesn't work on multibyte characters. */ || !NILP (BVAR (current_buffer, enable_multibyte_characters))) { - /* It should be off. */ - if (current_buffer->width_run_cache) - { - free_region_cache (current_buffer->width_run_cache); - current_buffer->width_run_cache = 0; - bset_width_table (current_buffer, Qnil); + if (!indirect_p + || NILP (BVAR (cache_buffer, cache_long_scans)) + || !NILP (BVAR (cache_buffer, enable_multibyte_characters))) + { + /* It should be off. */ + if (cache_buffer->width_run_cache) + { + free_region_cache (cache_buffer->width_run_cache); + cache_buffer->width_run_cache = 0; + bset_width_table (current_buffer, Qnil); + } } + return NULL; } else { - /* It should be on. */ - if (current_buffer->width_run_cache == 0) - { - current_buffer->width_run_cache = new_region_cache (); - recompute_width_table (current_buffer, buffer_display_table ()); - } + if (!indirect_p + || (!NILP (BVAR (cache_buffer, cache_long_scans)) + && NILP (BVAR (cache_buffer, enable_multibyte_characters)))) + { + /* It should be on. */ + if (cache_buffer->width_run_cache == 0) + { + cache_buffer->width_run_cache = new_region_cache (); + recompute_width_table (current_buffer, buffer_display_table ()); + } + } + return cache_buffer->width_run_cache; } } @@ -1128,12 +1149,16 @@ EMACS_INT contin_hpos; /* HPOS of last column of continued line. */ int prev_tab_offset; /* Previous tab offset. */ int continuation_glyph_width; + struct buffer *cache_buffer = current_buffer; + struct region_cache *width_cache; struct composition_it cmp_it; XSETWINDOW (window, win); - width_run_cache_on_off (); + if (cache_buffer->base_buffer) + cache_buffer = cache_buffer->base_buffer; + width_cache = width_run_cache_on_off (); if (dp == buffer_display_table ()) width_table = (VECTORP (BVAR (current_buffer, width_table)) ? XVECTOR (BVAR (current_buffer, width_table))->contents @@ -1404,13 +1429,11 @@ /* Consult the width run cache to see if we can avoid inspecting the text character-by-character. */ - if (current_buffer->width_run_cache && pos >= next_width_run) + if (width_cache && pos >= next_width_run) { ptrdiff_t run_end; int common_width - = region_cache_forward (current_buffer, - current_buffer->width_run_cache, - pos, &run_end); + = region_cache_forward (cache_buffer, width_cache, pos, &run_end); /* A width of zero means the character's width varies (like a tab), is meaningless (like a newline), or we just don't @@ -1486,7 +1509,7 @@ pos++, pos_byte++; /* Perhaps add some info to the width_run_cache. */ - if (current_buffer->width_run_cache) + if (width_cache) { /* Is this character part of the current run? If so, extend the run. */ @@ -1502,8 +1525,7 @@ (Currently, we only cache runs of width == 1). */ if (width_run_start < width_run_end && width_run_width == 1) - know_region_cache (current_buffer, - current_buffer->width_run_cache, + know_region_cache (cache_buffer, width_cache, width_run_start, width_run_end); /* Start recording a new width run. */ @@ -1639,10 +1661,10 @@ after_loop: /* Remember any final width run in the cache. */ - if (current_buffer->width_run_cache + if (width_cache && width_run_width == 1 && width_run_start < width_run_end) - know_region_cache (current_buffer, current_buffer->width_run_cache, + know_region_cache (cache_buffer, width_cache, width_run_start, width_run_end); val_compute_motion.bufpos = pos; === modified file 'src/insdel.c' --- src/insdel.c 2014-01-01 07:43:34 +0000 +++ src/insdel.c 2014-01-01 17:44:48 +0000 @@ -1878,6 +1878,10 @@ void invalidate_buffer_caches (struct buffer *buf, ptrdiff_t start, ptrdiff_t end) { + /* Indirect buffers usually have their caches set to NULL, but we + need to consider the caches of their base buffer. */ + if (buf->base_buffer) + buf = buf->base_buffer; if (buf->newline_cache) invalidate_region_cache (buf, buf->newline_cache, === modified file 'src/search.c' --- src/search.c 2014-01-01 07:43:34 +0000 +++ src/search.c 2014-01-01 17:44:48 +0000 @@ -602,23 +602,47 @@ Otherwise, make sure it's off. This is our cheezy way of associating an action with the change of state of a buffer-local variable. */ -static void +static struct region_cache * newline_cache_on_off (struct buffer *buf) { + struct buffer *base_buf = buf; + bool indirect_p = false; + + if (buf->base_buffer) + { + base_buf = buf->base_buffer; + indirect_p = true; + } + + /* Don't turn on or off the cache in the base buffer, if the value + of cache-long-scans of the base buffer is inconsistent with that. + This is because doing so will just make the cache pure overhead, + since if we turn it on via indirect buffer, it will be + immediately turned off by its base buffer. */ if (NILP (BVAR (buf, cache_long_scans))) { - /* It should be off. */ - if (buf->newline_cache) - { - free_region_cache (buf->newline_cache); - buf->newline_cache = 0; - } + if (!indirect_p + || NILP (BVAR (base_buf, cache_long_scans))) + { + /* It should be off. */ + if (base_buf->newline_cache) + { + free_region_cache (base_buf->newline_cache); + base_buf->newline_cache = 0; + } + } + return NULL; } else { - /* It should be on. */ - if (buf->newline_cache == 0) - buf->newline_cache = new_region_cache (); + if (!indirect_p + || !NILP (BVAR (base_buf, cache_long_scans))) + { + /* It should be on. */ + if (base_buf->newline_cache == 0) + base_buf->newline_cache = new_region_cache (); + } + return base_buf->newline_cache; } } @@ -653,6 +677,7 @@ { struct region_cache *newline_cache; int direction; + struct buffer *cache_buffer; if (count > 0) { @@ -669,8 +694,11 @@ if (end_byte == -1) end_byte = CHAR_TO_BYTE (end); - newline_cache_on_off (current_buffer); - newline_cache = current_buffer->newline_cache; + newline_cache = newline_cache_on_off (current_buffer); + if (current_buffer->base_buffer) + cache_buffer = current_buffer->base_buffer; + else + cache_buffer = current_buffer; if (shortage != 0) *shortage = 0; @@ -694,7 +722,7 @@ ptrdiff_t next_change; immediate_quit = 0; while (region_cache_forward - (current_buffer, newline_cache, start, &next_change)) + (cache_buffer, newline_cache, start, &next_change)) start = next_change; immediate_quit = allow_quit; @@ -738,7 +766,7 @@ this line's region is free of them. */ if (newline_cache) { - know_region_cache (current_buffer, newline_cache, + know_region_cache (cache_buffer, newline_cache, BYTE_TO_CHAR (lim_byte + cursor), BYTE_TO_CHAR (lim_byte + next)); /* know_region_cache can relocate buffer text. */ @@ -774,7 +802,7 @@ ptrdiff_t next_change; immediate_quit = 0; while (region_cache_backward - (current_buffer, newline_cache, start, &next_change)) + (cache_buffer, newline_cache, start, &next_change)) start = next_change; immediate_quit = allow_quit; @@ -814,7 +842,7 @@ this line's region is free of them. */ if (newline_cache) { - know_region_cache (current_buffer, newline_cache, + know_region_cache (cache_buffer, newline_cache, BYTE_TO_CHAR (ceiling_byte + prev + 1), BYTE_TO_CHAR (ceiling_byte + cursor)); /* know_region_cache can relocate buffer text. */ === modified file 'src/xdisp.c' --- src/xdisp.c 2014-01-01 07:43:34 +0000 +++ src/xdisp.c 2014-01-01 17:44:48 +0000 @@ -15767,16 +15767,20 @@ this may be a bit late to catch such changes, but the rest of redisplay goes (non-fatally) haywire when the display table is changed, so why should we worry about doing any better? */ - if (current_buffer->width_run_cache) + if (current_buffer->width_run_cache + || (current_buffer->base_buffer + && current_buffer->base_buffer->width_run_cache)) { struct Lisp_Char_Table *disptab = buffer_display_table (); if (! disptab_matches_widthtab (disptab, XVECTOR (BVAR (current_buffer, width_table)))) { - invalidate_region_cache (current_buffer, - current_buffer->width_run_cache, - BEG, Z); + struct buffer *buf = current_buffer; + + if (buf->base_buffer) + buf = buf->base_buffer; + invalidate_region_cache (buf, buf->width_run_cache, BEG, Z); recompute_width_table (current_buffer, disptab); } } ------------------------------------------------------------ revno: 115825 committer: Paul Eggert branch nick: trunk timestamp: Wed 2014-01-01 00:31:29 -0800 message: Fix copyright years by hand. These are dates that admin/update-copyright did not update, or updated incorrectly. diff: === modified file 'admin/unidata/unidata-gen.el' --- admin/unidata/unidata-gen.el 2013-12-22 18:24:23 +0000 +++ admin/unidata/unidata-gen.el 2014-01-01 08:31:29 +0000 @@ -1,6 +1,6 @@ ;; unidata-gen.el -- Create files containing character property data. -;; Copyright 2008-2013 (C) Free Software Foundation, Inc. +;; Copyright (C) 2008-2014 Free Software Foundation, Inc. ;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) === modified file 'config.bat' --- config.bat 2013-11-05 07:54:03 +0000 +++ config.bat 2014-01-01 08:31:29 +0000 @@ -1,7 +1,7 @@ @echo off rem ---------------------------------------------------------------------- rem Configuration script for MSDOS -rem Copyright (C) 1994-1999, 2001-2013 Free Software Foundation, Inc. +rem Copyright (C) 1994-1999, 2001-2014 Free Software Foundation, Inc. rem This file is part of GNU Emacs. === modified file 'configure.ac' --- configure.ac 2014-01-01 07:43:34 +0000 +++ configure.ac 2014-01-01 08:31:29 +0000 @@ -4551,7 +4551,7 @@ version=$PACKAGE_VERSION -copyright="Copyright (C) 2013 Free Software Foundation, Inc." +copyright="Copyright (C) 2014 Free Software Foundation, Inc." AC_DEFINE_UNQUOTED(COPYRIGHT, ["$copyright"], [Short copyright string for this version of Emacs.]) AC_SUBST(copyright) @@ -4868,7 +4868,7 @@ AH_TOP([/* GNU Emacs site configuration template file. -Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2013 +Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2014 Free Software Foundation, Inc. This file is part of GNU Emacs. === modified file 'doc/emacs/emacs-xtra.texi' --- doc/emacs/emacs-xtra.texi 2013-12-30 17:08:32 +0000 +++ doc/emacs/emacs-xtra.texi 2014-01-01 08:31:29 +0000 @@ -11,7 +11,7 @@ @copying This manual describes specialized features of Emacs. -Copyright @copyright{} 2004--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2004--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/emacs/emacs.texi' --- doc/emacs/emacs.texi 2013-12-30 17:08:32 +0000 +++ doc/emacs/emacs.texi 2014-01-01 08:31:29 +0000 @@ -26,7 +26,7 @@ @end ifnottex updated for Emacs version @value{EMACSVER}. -Copyright @copyright{} 1985--1987, 1993--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1985--1987, 1993--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/lispintro/emacs-lisp-intro.texi' --- doc/lispintro/emacs-lisp-intro.texi 2013-12-30 17:08:32 +0000 +++ doc/lispintro/emacs-lisp-intro.texi 2014-01-01 08:31:29 +0000 @@ -112,7 +112,7 @@ Distributed with Emacs version @value{EMACSVER}. @end ifnottex @sp 1 -Copyright @copyright{} 1990--1995, 1997, 2001--2013 Free Software +Copyright @copyright{} 1990--1995, 1997, 2001--2014 Free Software Foundation, Inc. @sp 1 === modified file 'doc/lispref/elisp.texi' --- doc/lispref/elisp.texi 2013-12-30 17:08:32 +0000 +++ doc/lispref/elisp.texi 2014-01-01 08:31:29 +0000 @@ -98,7 +98,7 @@ @end ifnottex corresponding to Emacs version @value{EMACSVER}. -Copyright @copyright{} 1990--1996, 1998--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1990--1996, 1998--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/lispref/tips.texi' --- doc/lispref/tips.texi 2014-01-01 07:43:34 +0000 +++ doc/lispref/tips.texi 2014-01-01 08:31:29 +0000 @@ -915,7 +915,7 @@ @group ;;; foo.el --- Support for the Foo programming language -;; Copyright (C) 2010-2013 Your Name +;; Copyright (C) 2010-2014 Your Name @end group ;; Author: Your Name === modified file 'doc/misc/ada-mode.texi' --- doc/misc/ada-mode.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/ada-mode.texi 2014-01-01 08:31:29 +0000 @@ -3,7 +3,7 @@ @settitle Ada Mode @copying -Copyright @copyright{} 1999--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1999--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/auth.texi' --- doc/misc/auth.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/auth.texi 2014-01-01 08:31:29 +0000 @@ -10,7 +10,7 @@ @copying This file describes the Emacs auth-source library. -Copyright @copyright{} 2008--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2008--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/autotype.texi' --- doc/misc/autotype.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/autotype.texi 2014-01-01 08:31:29 +0000 @@ -10,7 +10,7 @@ @c @cindex autotypist @copying -Copyright @copyright{} 1994--1995, 1999, 2001--2013 +Copyright @copyright{} 1994--1995, 1999, 2001--2014 Free Software Foundation, Inc. @quotation === modified file 'doc/misc/bovine.texi' --- doc/misc/bovine.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/bovine.texi 2014-01-01 08:31:29 +0000 @@ -23,7 +23,7 @@ @c %**end of header @copying -Copyright @copyright{} 1999--2004, 2012--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1999--2004, 2012--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/calc.texi' --- doc/misc/calc.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/calc.texi 2014-01-01 08:31:29 +0000 @@ -94,7 +94,7 @@ GNU Emacs @value{EMACSVER}. @end ifnotinfo -Copyright @copyright{} 1990--1991, 2001--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1990--1991, 2001--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -11801,7 +11801,7 @@ leaving the first, third, fourth, and so on; @kbd{M-3 M-@key{DEL}} deletes the third stack element. -The above commands do not depend on the location of the cursor. +The above commands do not depend on the location of the cursor. If the customizable variable @code{calc-context-sensitive-enter} is non-@code{nil} (@pxref{Customizing Calc}), these commands will become context sensitive. For example, instead of duplicating the top of the stack, @@ -33326,7 +33326,7 @@ 99@dots{}9. The least significant digit is @var{d0}; the last digit, @var{dn}, which is always nonzero, is the most significant digit. For example, the integer @mathit{-12345678} might be stored as -@samp{(bigneg 678 345 12)}. +@samp{(bigneg 678 345 12)}. The distinction between small and large integers is entirely hidden from the user. In @code{defmath} definitions, the Lisp predicate @code{integerp} @@ -35712,10 +35712,10 @@ The commands @code{calc-enter} and @code{calc-pop} will typically duplicate the top of the stack. If @code{calc-context-sensitive-enter} is non-@code{nil}, then the -@code{calc-enter} will copy the element at the cursor to the +@code{calc-enter} will copy the element at the cursor to the top of the stack and @code{calc-pop} will delete the element at the cursor. The default value of @code{calc-context-sensitive-enter} is -@code{nil}. +@code{nil}. @end defvar @defvar calc-undo-length === modified file 'doc/misc/cc-mode.texi' --- doc/misc/cc-mode.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/cc-mode.texi 2014-01-01 08:31:29 +0000 @@ -156,7 +156,7 @@ @copying This manual is for CC Mode in Emacs. -Copyright @copyright{} 1995--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1995--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/cl.texi' --- doc/misc/cl.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/cl.texi 2014-01-01 08:31:29 +0000 @@ -6,7 +6,7 @@ @copying This file documents the GNU Emacs Common Lisp emulation package. -Copyright @copyright{} 1993, 2001--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1993, 2001--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -1495,7 +1495,7 @@ @node Blocks and Exits @section Blocks and Exits -@cindex block +@cindex block @noindent Common Lisp @dfn{blocks} provide a non-local exit mechanism very === modified file 'doc/misc/dbus.texi' --- doc/misc/dbus.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/dbus.texi 2014-01-01 08:31:29 +0000 @@ -9,7 +9,7 @@ @syncodeindex fn cp @copying -Copyright @copyright{} 2007--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2007--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/dired-x.texi' --- doc/misc/dired-x.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/dired-x.texi 2014-01-01 08:31:29 +0000 @@ -19,7 +19,7 @@ @comment %**end of header (This is for running Texinfo on a region.) @copying -Copyright @copyright{} 1994--1995, 1999, 2001--2013 +Copyright @copyright{} 1994--1995, 1999, 2001--2014 Free Software Foundation, Inc. @quotation === modified file 'doc/misc/ebrowse.texi' --- doc/misc/ebrowse.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/ebrowse.texi 2014-01-01 08:31:29 +0000 @@ -10,7 +10,7 @@ @copying This file documents Ebrowse, a C++ class browser for GNU Emacs. -Copyright @copyright{} 2000--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2000--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/ede.texi' --- doc/misc/ede.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/ede.texi 2014-01-01 08:31:29 +0000 @@ -5,7 +5,7 @@ @copying This file describes EDE, the Emacs Development Environment. -Copyright @copyright{} 1998--2001, 2004--2005, 2008--2013 +Copyright @copyright{} 1998--2001, 2004--2005, 2008--2014 Free Software Foundation, Inc. @quotation === modified file 'doc/misc/ediff.texi' --- doc/misc/ediff.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/ediff.texi 2014-01-01 08:31:29 +0000 @@ -25,7 +25,7 @@ This file documents Ediff, a comprehensive visual interface to Unix diff and patch utilities. -Copyright @copyright{} 1995--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1995--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/edt.texi' --- doc/misc/edt.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/edt.texi 2014-01-01 08:31:29 +0000 @@ -5,7 +5,7 @@ @copying This file documents the EDT emulation package for Emacs. -Copyright @copyright{} 1986, 1992, 1994--1995, 1999--2013 +Copyright @copyright{} 1986, 1992, 1994--1995, 1999--2014 Free Software Foundation, Inc. @quotation === modified file 'doc/misc/efaq.texi' --- doc/misc/efaq.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/efaq.texi 2014-01-01 08:31:29 +0000 @@ -11,7 +11,7 @@ @c appreciate a notice if you do). @copying -Copyright @copyright{} 2001--2013 Free Software Foundation, Inc.@* +Copyright @copyright{} 2001--2014 Free Software Foundation, Inc.@* Copyright @copyright{} 1994, 1995, 1996, 1997, 1998, 1999, 2000 Reuven M. Lerner@* Copyright @copyright{} 1992, 1993 Steven Byrnes@* === modified file 'doc/misc/eieio.texi' --- doc/misc/eieio.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/eieio.texi 2014-01-01 08:31:29 +0000 @@ -11,7 +11,7 @@ @copying This manual documents EIEIO, an object framework for Emacs Lisp. -Copyright @copyright{} 2007--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2007--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/emacs-gnutls.texi' --- doc/misc/emacs-gnutls.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/emacs-gnutls.texi 2014-01-01 08:31:29 +0000 @@ -8,7 +8,7 @@ @copying This file describes the Emacs GnuTLS integration. -Copyright @copyright{} 2012--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2012--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/emacs-mime.texi' --- doc/misc/emacs-mime.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/emacs-mime.texi 2014-01-01 08:31:29 +0000 @@ -11,7 +11,7 @@ @copying This file documents the Emacs MIME interface functionality. -Copyright @copyright{} 1998--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1998--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/epa.texi' --- doc/misc/epa.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/epa.texi 2014-01-01 08:31:29 +0000 @@ -9,7 +9,7 @@ @copying This file describes EasyPG Assistant @value{VERSION}. -Copyright @copyright{} 2007--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2007--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/erc.texi' --- doc/misc/erc.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/erc.texi 2014-01-01 08:31:29 +0000 @@ -9,7 +9,7 @@ @copying This manual is for ERC as distributed with Emacs @value{EMACSVER}. -Copyright @copyright{} 2005--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2005--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/ert.texi' --- doc/misc/ert.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/ert.texi 2014-01-01 08:31:29 +0000 @@ -10,7 +10,7 @@ @end direntry @copying -Copyright @copyright{} 2008, 2010--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2008, 2010--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/eshell.texi' --- doc/misc/eshell.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/eshell.texi 2014-01-01 08:31:29 +0000 @@ -9,7 +9,7 @@ @copying This manual is for Eshell, the Emacs shell. -Copyright @copyright{} 1999--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1999--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/eudc.texi' --- doc/misc/eudc.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/eudc.texi 2014-01-01 08:31:29 +0000 @@ -12,7 +12,7 @@ directory servers using various protocols such as LDAP or the CCSO white pages directory system (PH/QI) -Copyright @copyright{} 1998, 2000--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1998, 2000--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/flymake.texi' --- doc/misc/flymake.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/flymake.texi 2014-01-01 08:31:29 +0000 @@ -11,7 +11,7 @@ This manual is for GNU Flymake (version @value{VERSION}, @value{UPDATED}), which is a universal on-the-fly syntax checker for GNU Emacs. -Copyright @copyright{} 2004--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2004--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/forms.texi' --- doc/misc/forms.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/forms.texi 2014-01-01 08:31:29 +0000 @@ -18,7 +18,7 @@ @copying This file documents Forms mode, a form-editing major mode for GNU Emacs. -Copyright @copyright{} 1989, 1997, 2001--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1989, 1997, 2001--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/gnus-coding.texi' --- doc/misc/gnus-coding.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/gnus-coding.texi 2014-01-01 08:31:29 +0000 @@ -7,7 +7,7 @@ @syncodeindex pg cp @copying -Copyright @copyright{} 2004--2005, 2007--2013 Free Software +Copyright @copyright{} 2004--2005, 2007--2014 Free Software Foundation, Inc. @quotation === modified file 'doc/misc/gnus-news.el' --- doc/misc/gnus-news.el 2014-01-01 07:43:34 +0000 +++ doc/misc/gnus-news.el 2014-01-01 08:31:29 +0000 @@ -26,7 +26,7 @@ (defvar gnus-news-header-disclaimer "GNUS NEWS -- history of user-visible changes. -Copyright (C) 1999-2013 Free Software Foundation, Inc. +Copyright (C) 1999-2014 Free Software Foundation, Inc. See the end of the file for license conditions. Please send Gnus bug reports to bugs@gnus.org. === modified file 'doc/misc/gnus.texi' --- doc/misc/gnus.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/gnus.texi 2014-01-01 08:31:29 +0000 @@ -11,7 +11,7 @@ @documentencoding UTF-8 @copying -Copyright @copyright{} 1995--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1995--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/idlwave.texi' --- doc/misc/idlwave.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/idlwave.texi 2014-01-01 08:31:29 +0000 @@ -22,7 +22,7 @@ This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE @value{VERSION}. -Copyright @copyright{} 1999--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1999--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/info.texi' --- doc/misc/info.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/info.texi 2014-01-01 08:31:29 +0000 @@ -14,7 +14,7 @@ This file describes how to use Info, the on-line, menu-driven GNU documentation system. -Copyright @copyright{} 1989, 1992, 1996--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1989, 1992, 1996--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/mairix-el.texi' --- doc/misc/mairix-el.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/mairix-el.texi 2014-01-01 08:31:29 +0000 @@ -6,7 +6,7 @@ @documentencoding UTF-8 @copying -Copyright @copyright{} 2008--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2008--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/message.texi' --- doc/misc/message.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/message.texi 2014-01-01 08:31:29 +0000 @@ -10,7 +10,7 @@ @copying This file documents Message, the Emacs message composition mode. -Copyright @copyright{} 1996--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1996--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/mh-e.texi' --- doc/misc/mh-e.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/mh-e.texi 2014-01-01 08:31:29 +0000 @@ -24,7 +24,7 @@ This is version @value{VERSION}@value{EDITION} of @cite{The MH-E Manual}, last updated @value{UPDATED}. -Copyright @copyright{} 1995, 2001--2003, 2005--2013 Free Software +Copyright @copyright{} 1995, 2001--2003, 2005--2014 Free Software Foundation, Inc. @c This dual license has been agreed upon by the FSF. === modified file 'doc/misc/newsticker.texi' --- doc/misc/newsticker.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/newsticker.texi 2014-01-01 08:31:29 +0000 @@ -13,7 +13,7 @@ This manual is for Newsticker (version @value{VERSION}, @value{UPDATED}). @noindent -Copyright @copyright{} 2004--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2004--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/nxml-mode.texi' --- doc/misc/nxml-mode.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/nxml-mode.texi 2014-01-01 08:31:29 +0000 @@ -8,7 +8,7 @@ This manual documents nXML mode, an Emacs major mode for editing XML with RELAX NG support. -Copyright @copyright{} 2007--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2007--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/octave-mode.texi' --- doc/misc/octave-mode.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/octave-mode.texi 2014-01-01 08:31:29 +0000 @@ -5,7 +5,7 @@ @c %**end of header @copying -Copyright @copyright{} 1996--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1996--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/org.texi' --- doc/misc/org.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/org.texi 2014-01-01 08:31:29 +0000 @@ -262,7 +262,7 @@ @copying This manual is for Org version @value{VERSION}. -Copyright @copyright{} 2004--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2004--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/pcl-cvs.texi' --- doc/misc/pcl-cvs.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/pcl-cvs.texi 2014-01-01 08:31:29 +0000 @@ -6,7 +6,7 @@ @c %**end of header @copying -Copyright @copyright{} 1991--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1991--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/pgg.texi' --- doc/misc/pgg.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/pgg.texi 2014-01-01 08:31:29 +0000 @@ -11,7 +11,7 @@ This file describes PGG @value{VERSION}, an Emacs interface to various PGP implementations. -Copyright @copyright{} 2001, 2003--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2001, 2003--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/rcirc.texi' --- doc/misc/rcirc.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/rcirc.texi 2014-01-01 08:31:29 +0000 @@ -5,7 +5,7 @@ @c %**end of header @copying -Copyright @copyright{} 2006--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2006--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/reftex.texi' --- doc/misc/reftex.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/reftex.texi 2014-01-01 08:31:29 +0000 @@ -45,7 +45,7 @@ to do labels, references, citations and indices for LaTeX documents with Emacs. -Copyright @copyright{} 1997--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1997--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/remember.texi' --- doc/misc/remember.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/remember.texi 2014-01-01 08:31:29 +0000 @@ -8,7 +8,7 @@ @copying This manual is for Remember Mode, version 1.9 -Copyright @copyright{} 2001, 2004--2005, 2007--2013 +Copyright @copyright{} 2001, 2004--2005, 2007--2014 Free Software Foundation, Inc. @quotation === modified file 'doc/misc/sasl.texi' --- doc/misc/sasl.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/sasl.texi 2014-01-01 08:31:29 +0000 @@ -10,7 +10,7 @@ @copying This file describes the Emacs SASL library, version @value{VERSION}. -Copyright @copyright{} 2000, 2004--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2000, 2004--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/sc.texi' --- doc/misc/sc.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/sc.texi 2014-01-01 08:31:29 +0000 @@ -14,7 +14,7 @@ This document describes Supercite, an Emacs package for citing and attributing replies to mail and news messages. -Copyright @copyright{} 1993, 2001--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1993, 2001--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/semantic.texi' --- doc/misc/semantic.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/semantic.texi 2014-01-01 08:31:29 +0000 @@ -24,7 +24,7 @@ @copying This manual documents the Semantic library and utilities. -Copyright @copyright{} 1999--2005, 2007, 2009--2013 Free Software +Copyright @copyright{} 1999--2005, 2007, 2009--2014 Free Software Foundation, Inc. @quotation === modified file 'doc/misc/ses.texi' --- doc/misc/ses.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/ses.texi 2014-01-01 08:31:29 +0000 @@ -11,7 +11,7 @@ @copying This file documents @acronym{SES}: the Simple Emacs Spreadsheet. -Copyright @copyright{} 2002--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2002--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/sieve.texi' --- doc/misc/sieve.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/sieve.texi 2014-01-01 08:31:29 +0000 @@ -11,7 +11,7 @@ @copying This file documents the Emacs Sieve package, for server-side mail filtering. -Copyright @copyright{} 2001--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2001--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/smtpmail.texi' --- doc/misc/smtpmail.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/smtpmail.texi 2014-01-01 08:31:29 +0000 @@ -3,7 +3,7 @@ @settitle Emacs SMTP Library @syncodeindex vr fn @copying -Copyright @copyright{} 2003--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2003--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/speedbar.texi' --- doc/misc/speedbar.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/speedbar.texi 2014-01-01 08:31:29 +0000 @@ -4,7 +4,7 @@ @syncodeindex fn cp @copying -Copyright @copyright{} 1999--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1999--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/srecode.texi' --- doc/misc/srecode.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/srecode.texi 2014-01-01 08:31:29 +0000 @@ -15,7 +15,7 @@ @c %**end of header @copying -Copyright @copyright{} 2007--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2007--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/texinfo.tex' --- doc/misc/texinfo.tex 2014-01-01 07:43:34 +0000 +++ doc/misc/texinfo.tex 2014-01-01 08:31:29 +0000 @@ -5,7 +5,9 @@ % \def\texinfoversion{2013-09-11.11} % -% Copyright 1985-1986, 1988, 1990-2014 Free Software Foundation, Inc. +% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, +% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, +% 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. % % This texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as === modified file 'doc/misc/tramp.texi' --- doc/misc/tramp.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/tramp.texi 2014-01-01 08:31:29 +0000 @@ -65,7 +65,7 @@ @end ifclear @copying -Copyright @copyright{} 1999--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1999--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/url.texi' --- doc/misc/url.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/url.texi 2014-01-01 08:31:29 +0000 @@ -20,7 +20,7 @@ @copying This is the manual for the @code{url} Emacs Lisp library. -Copyright @copyright{} 1993--1999, 2002, 2004--2013 Free Software +Copyright @copyright{} 1993--1999, 2002, 2004--2014 Free Software Foundation, Inc. @quotation === modified file 'doc/misc/vip.texi' --- doc/misc/vip.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/vip.texi 2014-01-01 08:31:29 +0000 @@ -3,7 +3,7 @@ @settitle VIP @copying -Copyright @copyright{} 1987, 2001--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1987, 2001--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/viper.texi' --- doc/misc/viper.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/viper.texi 2014-01-01 08:31:29 +0000 @@ -7,7 +7,7 @@ @setfilename ../../info/viper @copying -Copyright @copyright{} 1995--1997, 2001--2013 Free Software Foundation, Inc. +Copyright @copyright{} 1995--1997, 2001--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/widget.texi' --- doc/misc/widget.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/widget.texi 2014-01-01 08:31:29 +0000 @@ -8,7 +8,7 @@ @c %**end of header @copying -Copyright @copyright{} 2000--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2000--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'doc/misc/wisent.texi' --- doc/misc/wisent.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/wisent.texi 2014-01-01 08:31:29 +0000 @@ -23,7 +23,7 @@ @c %**end of header @copying -Copyright @copyright{} 1988--1993, 1995, 1998--2004, 2007, 2012--2013 +Copyright @copyright{} 1988--1993, 1995, 1998--2004, 2007, 2012--2014 Free Software Foundation, Inc. @c Since we are both GNU manuals, we do not need to ack each other here. === modified file 'doc/misc/woman.texi' --- doc/misc/woman.texi 2013-12-30 17:08:32 +0000 +++ doc/misc/woman.texi 2014-01-01 08:31:29 +0000 @@ -14,7 +14,7 @@ This file documents WoMan: A program to browse Unix manual pages `W.O. (without) man'. -Copyright @copyright{} 2001--2013 Free Software Foundation, Inc. +Copyright @copyright{} 2001--2014 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document === modified file 'etc/images/README' --- etc/images/README 2014-01-01 07:43:34 +0000 +++ etc/images/README 2014-01-01 08:31:29 +0000 @@ -27,15 +27,15 @@ Files: splash.pbm, splash.xpm, gnus.pbm Author: Luis Fernandes - Copyright (C) 2001-2013 Free Software Foundation, Inc. + Copyright (C) 2001-2014 Free Software Foundation, Inc. Files: splash.png, splash.svg Author: Francesc Rocher - Copyright (C) 2008-2013 Free Software Foundation, Inc. + Copyright (C) 2008-2014 Free Software Foundation, Inc. Files: checked.xpm, unchecked.xpm Author: Chong Yidong - Copyright (C) 2010-2013 Free Software Foundation, Inc. + Copyright (C) 2010-2014 Free Software Foundation, Inc. * The following icons are from GTK+ 2.x. They are not part of Emacs, but === modified file 'etc/images/checked.xpm' --- etc/images/checked.xpm 2013-01-01 09:11:05 +0000 +++ etc/images/checked.xpm 2014-01-01 08:31:29 +0000 @@ -1,5 +1,5 @@ /* XPM */ -/* Copyright (C) 2010-2013 Free Software Foundation, Inc. +/* Copyright (C) 2010-2014 Free Software Foundation, Inc. * * Author: Chong Yidong * === modified file 'etc/images/gnus/README' --- etc/images/gnus/README 2014-01-01 07:43:34 +0000 +++ etc/images/gnus/README 2014-01-01 08:31:29 +0000 @@ -21,11 +21,11 @@ unsubscribe.pbm unsubscribe.xpm uu-decode.pbm uu-decode.xpm uu-post.pbm uu-post.xpm Author: Luis Fernandes -Copyright (C) 2001-2013 Free Software Foundation, Inc. +Copyright (C) 2001-2014 Free Software Foundation, Inc. Files: gnus.png, gnus.svg Author: Francesc Rocher - Copyright (C) 2008-2013 Free Software Foundation, Inc. + Copyright (C) 2008-2014 Free Software Foundation, Inc. * The following icons are from GNOME 2.x. They are not part of Emacs, === modified file 'etc/images/gud/README' --- etc/images/gud/README 2014-01-01 07:43:34 +0000 +++ etc/images/gud/README 2014-01-01 08:31:29 +0000 @@ -31,7 +31,7 @@ The following icons are converted from the Insight Windows style icon set in src/gdb/gdbtk/library/images2. -Copyright (C) 2002-2013 Free Software Foundation, Inc. +Copyright (C) 2002-2014 Free Software Foundation, Inc. License: GNU General Public License version 3 or later (see COPYING) cont.pbm and cont.xpm were converted from continue.gif @@ -47,7 +47,7 @@ The following icons are created from the Insight Windows style icon set in src/gdb/gdbtk/library/images2. -Copyright (C) 2002-2013 Free Software Foundation, Inc. +Copyright (C) 2002-2014 Free Software Foundation, Inc. License: GNU General Public License version 3 or later (see COPYING) rcont.xpm rfinish.xpm === modified file 'etc/images/icons/README' --- etc/images/icons/README 2014-01-01 07:43:34 +0000 +++ etc/images/icons/README 2014-01-01 08:31:29 +0000 @@ -13,7 +13,7 @@ hicolor/32x32/apps/emacs22.png hicolor/48x48/apps/emacs22.png Author: Andrew Zhilin -Copyright (C) 2005-2013 Free Software Foundation, Inc. +Copyright (C) 2005-2014 Free Software Foundation, Inc. License: GNU General Public License version 3 or later (see COPYING) Files: allout-widgets-dark-bg/closed.png @@ -62,5 +62,5 @@ allout-widgets-light-bg/through-descender.xpm Author: Ken Manheimer -Copyright (C) 2011-2013 Free Software Foundation, Inc. +Copyright (C) 2011-2014 Free Software Foundation, Inc. License: GNU General Public License version 3 or later (see COPYING) === modified file 'etc/images/mh-logo.xpm' --- etc/images/mh-logo.xpm 2013-01-01 09:11:05 +0000 +++ etc/images/mh-logo.xpm 2014-01-01 08:31:29 +0000 @@ -1,7 +1,7 @@ /* XPM */ /* MH-E Logo * - * Copyright (C) 2003-2013 Free Software Foundation, Inc. + * Copyright (C) 2003-2014 Free Software Foundation, Inc. * * Author: Satyaki Das * === modified file 'etc/images/splash.xpm' --- etc/images/splash.xpm 2013-01-01 09:11:05 +0000 +++ etc/images/splash.xpm 2014-01-01 08:31:29 +0000 @@ -1,7 +1,7 @@ /* XPM */ /* Gnu Emacs Logo * - * Copyright (C) 2001-2013 Free Software Foundation, Inc. + * Copyright (C) 2001-2014 Free Software Foundation, Inc. * * Author: Luis Fernandes * === modified file 'etc/images/unchecked.xpm' --- etc/images/unchecked.xpm 2013-01-01 09:11:05 +0000 +++ etc/images/unchecked.xpm 2014-01-01 08:31:29 +0000 @@ -1,5 +1,5 @@ /* XPM */ -/* Copyright (C) 2010-2013 Free Software Foundation, Inc. +/* Copyright (C) 2010-2014 Free Software Foundation, Inc. * * Author: Chong Yidong * === modified file 'etc/refcards/README' --- etc/refcards/README 2014-01-01 07:43:34 +0000 +++ etc/refcards/README 2014-01-01 08:31:29 +0000 @@ -32,7 +32,7 @@ File: gnus-logo.eps, gnus-logo.pdf Author: Luis Fernandes - Copyright (C) 2001-2013 Free Software Foundation, Inc. + Copyright (C) 2001-2014 Free Software Foundation, Inc. License: GNU General Public License version 3 or later (see COPYING) === modified file 'etc/refcards/gnus-refcard.tex' --- etc/refcards/gnus-refcard.tex 2013-01-01 09:11:05 +0000 +++ etc/refcards/gnus-refcard.tex 2014-01-01 08:31:29 +0000 @@ -120,7 +120,7 @@ %% Gnus logo by Luis Fernandes. \newcommand{\Copyright}{% \begin{center} - Copyright \copyright\ 1995, 2000, 2002--2013 Free Software Foundation, Inc.\\* + Copyright \copyright\ 1995, 2000, 2002--2014 Free Software Foundation, Inc.\\* \end{center} Permission is granted to make and distribute copies of this reference === modified file 'etc/tutorials/TUTORIAL.cn' --- etc/tutorials/TUTORIAL.cn 2014-01-01 07:43:34 +0000 +++ etc/tutorials/TUTORIAL.cn 2014-01-01 08:31:29 +0000 @@ -1016,7 +1016,7 @@ 本篇指南是 GNU Emacs 的一部分,并允许在下列条件的约束下发行其拷贝: - Copyright (C) 1985, 1996, 1998, 2001-2013 Free Software Foundation, + Copyright (C) 1985, 1996, 1998, 2001-2014 Free Software Foundation, Inc. 本文件为 GNU Emacs 的一部分。 === modified file 'etc/tutorials/TUTORIAL.he' --- etc/tutorials/TUTORIAL.he 2013-01-01 09:11:05 +0000 +++ etc/tutorials/TUTORIAL.he 2014-01-01 08:31:29 +0000 @@ -989,7 +989,7 @@ גירסה זו של השיעור הינה חלק מחבילת GNU Emacs. היא מוגנת בזכויות יוצרים וניתנת להעתקה והפצת עותקים בתנאים מסויימים כדלקמן: - Copyright (C) 2010-2013 Free Software Foundation, Inc. + Copyright (C) 2010-2014 Free Software Foundation, Inc. ‏GNU Emacs הינו תכנה חפשית; זכותכם להפיצו ו\או לשנותו בכפוף לתנאי הרשיון GNU General Public License, כפי שהוא יוצא לאור ע"י Free === modified file 'etc/tutorials/TUTORIAL.nl' --- etc/tutorials/TUTORIAL.nl 2014-01-01 07:43:34 +0000 +++ etc/tutorials/TUTORIAL.nl 2014-01-01 08:31:29 +0000 @@ -1239,7 +1239,7 @@ This version of the tutorial is a part of GNU Emacs. It is copyrighted and comes with permission to distribute copies on certain conditions: - Copyright (C) 1985, 1996, 1998, 2001-2013 Free Software Foundation, Inc. + Copyright (C) 1985, 1996, 1998, 2001-2014 Free Software Foundation, Inc. This file is part of GNU Emacs. === modified file 'etc/tutorials/TUTORIAL.ro' --- etc/tutorials/TUTORIAL.ro 2014-01-01 07:43:34 +0000 +++ etc/tutorials/TUTORIAL.ro 2014-01-01 08:31:29 +0000 @@ -1082,7 +1082,7 @@ This version of the tutorial, like GNU Emacs, is copyrighted, and comes with permission to distribute copies on certain conditions: -Copyright (C) 1998, 2001-2013 Free Software Foundation, Inc. +Copyright (C) 1998, 2001-2014 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the === modified file 'etc/tutorials/TUTORIAL.sl' --- etc/tutorials/TUTORIAL.sl 2013-01-01 09:11:05 +0000 +++ etc/tutorials/TUTORIAL.sl 2014-01-01 08:31:29 +0000 @@ -1119,7 +1119,7 @@ To besedilo, kot sam GNU Emacs, je avtorsko delo, in njegovo razmnoževanje in razširjanje je dovoljeno pod naslednjimi pogoji: -Copyright © 1985, 1996, 1998, 2001-2013 Free Software Foundation, Inc. +Copyright © 1985, 1996, 1998, 2001-2014 Free Software Foundation, Inc. Ta datoteka je del paketa GNU Emacs. === modified file 'lib-src/rcs2log' --- lib-src/rcs2log 2014-01-01 07:43:34 +0000 +++ lib-src/rcs2log 2014-01-01 08:31:29 +0000 @@ -20,7 +20,7 @@ # along with this program. If not, see . -Copyright='Copyright (C) 2013 Free Software Foundation, Inc. +Copyright='Copyright (C) 2014 Free Software Foundation, Inc. This program comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of this program under the terms of the GNU General Public License. @@ -774,4 +774,3 @@ # Local Variables: # tab-width:4 # End: - === modified file 'lib/getopt_.h' --- lib/getopt_.h 2014-01-01 07:43:34 +0000 +++ lib/getopt_.h 2014-01-01 08:31:29 +0000 @@ -130,7 +130,7 @@ /* The definition of _GL_ARG_NONNULL is copied here. */ /* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2013 Free Software Foundation, Inc. + Copyright (C) 2009-2014 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published === modified file 'lisp/cedet/semantic/imenu.el' --- lisp/cedet/semantic/imenu.el 2013-01-03 01:35:49 +0000 +++ lisp/cedet/semantic/imenu.el 2014-01-01 08:31:29 +0000 @@ -1,7 +1,6 @@ ;;; semantic/imenu.el --- Use Semantic as an imenu tag generator -;;; Copyright (C) 2000-2005, 2007-2008, 2010-2013 -;; Free Software Foundation, Inc. +;; Copyright (C) 2000-2005, 2007-2008, 2010-2014 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam ;; Maintainer: Eric Ludlam === modified file 'lisp/net/tramp-sh.el' --- lisp/net/tramp-sh.el 2014-01-01 07:43:34 +0000 +++ lisp/net/tramp-sh.el 2014-01-01 08:31:29 +0000 @@ -685,7 +685,7 @@ (defconst tramp-perl-encode "%s -e ' # This script contributed by Juanma Barranquero . -# Copyright (C) 2002-2013 Free Software Foundation, Inc. +# Copyright (C) 2002-2014 Free Software Foundation, Inc. use strict; my %%trans = do { @@ -723,7 +723,7 @@ (defconst tramp-perl-decode "%s -e ' # This script contributed by Juanma Barranquero . -# Copyright (C) 2002-2013 Free Software Foundation, Inc. +# Copyright (C) 2002-2014 Free Software Foundation, Inc. use strict; my %%trans = do { === modified file 'lisp/org/ox-html.el' --- lisp/org/ox-html.el 2014-01-01 07:43:34 +0000 +++ lisp/org/ox-html.el 2014-01-01 08:31:29 +0000 @@ -188,7 +188,7 @@ @licstart The following is the entire license notice for the JavaScript code in this tag. -Copyright (C) 2012-2013 Free Software Foundation, Inc. +Copyright (C) 2012-2014 Free Software Foundation, Inc. The JavaScript code in this tag is free software: you can redistribute it and/or modify it under the terms of the GNU @@ -385,7 +385,7 @@ * @licstart The following is the entire license notice for the * JavaScript code in %SCRIPT_PATH. * - * Copyright (C) 2012-2013 Free Software Foundation, Inc. + * Copyright (C) 2012-2014 Free Software Foundation, Inc. * * * The JavaScript code in this tag is free software: you can @@ -414,7 +414,7 @@ @licstart The following is the entire license notice for the JavaScript code in this tag. -Copyright (C) 2012-2013 Free Software Foundation, Inc. +Copyright (C) 2012-2014 Free Software Foundation, Inc. The JavaScript code in this tag is free software: you can redistribute it and/or modify it under the terms of the GNU === modified file 'msdos/README' --- msdos/README 2014-01-01 07:43:34 +0000 +++ msdos/README 2014-01-01 08:31:29 +0000 @@ -10,7 +10,7 @@ Windows 3.X. Since these are binary files, their copyright notice is reproduced here: -# Copyright (C) 1993, 2002-2013 Free Software Foundation, Inc. +# Copyright (C) 1993, 2002-2014 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # === modified file 'msdos/autogen/Makefile.in' --- msdos/autogen/Makefile.in 2014-01-01 07:43:34 +0000 +++ msdos/autogen/Makefile.in 2014-01-01 08:31:29 +0000 @@ -13,7 +13,7 @@ @SET_MAKE@ -# Copyright (C) 2002-2013 Free Software Foundation, Inc. +# Copyright (C) 2002-2014 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -36,7 +36,7 @@ # Generated by gnulib-tool. # Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=close --avoid=dup --avoid=fchdir --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=open --avoid=openat-die --avoid=opendir --avoid=raise --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt byteswap c-ctype c-strcase careadlinkat close-stream count-one-bits count-trailing-zeros crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync getloadavg getopt-gnu gettime gettimeofday intprops largefile lstat manywarnings memrchr mkostemp mktime pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat sig2str socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub unsetenv utimens warnings -# Copyright (C) 2002-2013 Free Software Foundation, Inc. +# Copyright (C) 2002-2014 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -1256,12 +1256,12 @@ version = @version@ x_default_search_path = @x_default_search_path@ BUILT_SOURCES = $(am__append_3) $(am__append_8) -CLEANFILES = +CLEANFILES = EXTRA_DIST = $(am__append_4) $(am__append_9) MOSTLYCLEANDIRS = $(am__append_11) MOSTLYCLEANFILES = $(am__append_1) $(am__append_6) noinst_LIBRARIES = $(am__append_2) $(am__append_7) -SUFFIXES = +SUFFIXES = AM_CFLAGS = $(PROFILING_CFLAGS) $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS) DEFAULT_INCLUDES = -I. -I$(top_srcdir)/lib -I../src -I$(top_srcdir)/src @BUILDING_FOR_WINDOWSNT_FALSE@libgnu_a_SOURCES = allocator.c \ @@ -1389,7 +1389,7 @@ clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -libgnu.a: $(libgnu_a_OBJECTS) $(libgnu_a_DEPENDENCIES) +libgnu.a: $(libgnu_a_OBJECTS) $(libgnu_a_DEPENDENCIES) -rm -f libgnu.a $(libgnu_a_AR) libgnu.a $(libgnu_a_OBJECTS) $(libgnu_a_LIBADD) $(RANLIB) libgnu.a === modified file 'msdos/depfiles.bat' --- msdos/depfiles.bat 2013-01-03 01:35:49 +0000 +++ msdos/depfiles.bat 2014-01-01 08:31:29 +0000 @@ -1,7 +1,7 @@ @echo off rem ---------------------------------------------------------------------- rem Auxiliary script for MSDOS, run by ../config.bat -rem Copyright (C) 2011-2013 Free Software Foundation, Inc. +rem Copyright (C) 2011-2014 Free Software Foundation, Inc. rem This file is part of GNU Emacs. === modified file 'msdos/sed2v2.inp' --- msdos/sed2v2.inp 2014-01-01 07:43:34 +0000 +++ msdos/sed2v2.inp 2014-01-01 08:31:29 +0000 @@ -31,7 +31,7 @@ #ifndef MSDOS\ #define MSDOS\ #endif -/^#undef COPYRIGHT *$/s/^.*$/#define COPYRIGHT "Copyright (C) 2013 Free Software Foundation, Inc."/ +/^#undef COPYRIGHT *$/s/^.*$/#define COPYRIGHT "Copyright (C) 2014 Free Software Foundation, Inc."/ /^#undef DIRECTORY_SEP *$/s!^.*$!#define DIRECTORY_SEP '/'! /^#undef DOS_NT *$/s/^.*$/#define DOS_NT/ /^#undef FLOAT_CHECK_DOMAIN *$/s/^.*$/#define FLOAT_CHECK_DOMAIN/ === modified file 'nt/config.nt' --- nt/config.nt 2014-01-01 07:43:34 +0000 +++ nt/config.nt 2014-01-01 08:31:29 +0000 @@ -72,7 +72,7 @@ #define CLASH_DETECTION 1 /* Short copyright string for this version of Emacs. */ -#define COPYRIGHT "Copyright (C) 2013 Free Software Foundation, Inc." +#define COPYRIGHT "Copyright (C) 2014 Free Software Foundation, Inc." /* Define to one of '_getb67', 'GETB67', 'getb67' for Cray-2 and Cray-YMP systems. This function is required for 'alloca.c' support on those systems. === modified file 'nt/configure.bat' --- nt/configure.bat 2013-08-31 18:26:59 +0000 +++ nt/configure.bat 2014-01-01 08:31:29 +0000 @@ -1,7 +1,7 @@ @echo off rem ---------------------------------------------------------------------- rem Configuration script for MS Windows operating systems -rem Copyright (C) 1999-2013 Free Software Foundation, Inc. +rem Copyright (C) 1999-2014 Free Software Foundation, Inc. rem This file is part of GNU Emacs. @@ -972,4 +972,3 @@ set dbginfo= endlocal set use_extensions= - === modified file 'nt/emacs.rc' --- nt/emacs.rc 2013-04-09 02:38:56 +0000 +++ nt/emacs.rc 2014-01-01 08:31:29 +0000 @@ -31,7 +31,7 @@ VALUE "FileDescription", "GNU Emacs: The extensible self-documenting text editor\0" VALUE "FileVersion", "24, 3, 50, 0\0" VALUE "InternalName", "Emacs\0" - VALUE "LegalCopyright", "Copyright (C) 2001-2013\0" + VALUE "LegalCopyright", "Copyright (C) 2001-2014\0" VALUE "OriginalFilename", "emacs.exe" VALUE "ProductName", "Emacs\0" VALUE "ProductVersion", "24, 3, 50, 0\0" @@ -43,4 +43,3 @@ VALUE "Translation", 0x409, 1200 END END - === modified file 'nt/emacsclient.rc' --- nt/emacsclient.rc 2013-03-05 03:59:35 +0000 +++ nt/emacsclient.rc 2014-01-01 08:31:29 +0000 @@ -25,7 +25,7 @@ VALUE "FileDescription", "GNU EmacsClient: Client for the extensible self-documenting text editor\0" VALUE "FileVersion", "24, 3, 50, 0\0" VALUE "InternalName", "EmacsClient\0" - VALUE "LegalCopyright", "Copyright (C) 2001-2013\0" + VALUE "LegalCopyright", "Copyright (C) 2001-2014\0" VALUE "OriginalFilename", "emacsclientw.exe" VALUE "ProductName", "EmacsClient\0" VALUE "ProductVersion", "24, 3, 50, 0\0" @@ -37,4 +37,3 @@ VALUE "Translation", 0x409, 1200 END END - === modified file 'nt/icons/README' --- nt/icons/README 2014-01-01 07:43:34 +0000 +++ nt/icons/README 2014-01-01 08:31:29 +0000 @@ -8,7 +8,7 @@ File: emacs22.ico Author: Andrew Zhilin -Copyright (C) 2005-2013 Free Software Foundation, Inc. +Copyright (C) 2005-2014 Free Software Foundation, Inc. License: GNU General Public License version 3 or later (see COPYING) @@ -17,7 +17,7 @@ gnu5w32.ico gnu5w32t.ico gnu6w48.ico gnu6w48t.ico gnu7.ico gnu8.ico gnu9.ico Author: Rob Davenport -Copyright (C) 1999, 2001-2013 Free Software Foundation, Inc. +Copyright (C) 1999, 2001-2014 Free Software Foundation, Inc. License: GNU General Public License version 3 or later (see COPYING)