aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/emacs/buffers.texi76
-rw-r--r--doc/emacs/mark.texi11
-rw-r--r--doc/emacs/text.texi9
-rw-r--r--doc/emacs/trouble.texi5
-rw-r--r--doc/misc/org.texi4
-rw-r--r--etc/NEWS.262
-rw-r--r--etc/refcards/orgcard.tex4
-rw-r--r--lisp/frameset.el62
-rw-r--r--lisp/org/ob-core.el22
-rw-r--r--lisp/org/ob-exp.el8
-rw-r--r--lisp/org/ob-gnuplot.el7
-rw-r--r--lisp/org/ob-haskell.el9
-rw-r--r--lisp/org/ob-picolisp.el6
-rw-r--r--lisp/org/ob-python.el36
-rw-r--r--lisp/org/ob-ref.el21
-rw-r--r--lisp/org/ob-scheme.el1
-rw-r--r--lisp/org/ob-stan.el9
-rw-r--r--lisp/org/org-agenda.el46
-rw-r--r--lisp/org/org-archive.el2
-rw-r--r--lisp/org/org-capture.el14
-rw-r--r--lisp/org/org-clock.el3
-rw-r--r--lisp/org/org-compat.el4
-rw-r--r--lisp/org/org-duration.el6
-rw-r--r--lisp/org/org-footnote.el2
-rw-r--r--lisp/org/org-inlinetask.el36
-rw-r--r--lisp/org/org-pcomplete.el5
-rw-r--r--lisp/org/org-table.el35
-rw-r--r--lisp/org/org-version.el6
-rw-r--r--lisp/org/org-w3m.el4
-rw-r--r--lisp/org/org.el89
-rw-r--r--lisp/org/ox-beamer.el8
-rw-r--r--lisp/org/ox-latex.el15
-rw-r--r--lisp/org/ox-md.el5
-rw-r--r--lisp/org/ox-odt.el7
-rw-r--r--lisp/org/ox-publish.el4
-rw-r--r--lisp/org/ox.el4
-rw-r--r--lisp/term.el15
-rw-r--r--test/lisp/emacs-lisp/shadow-tests.el2
38 files changed, 343 insertions, 261 deletions
diff --git a/doc/emacs/buffers.texi b/doc/emacs/buffers.texi
index 47ac8d4b05c..f8c1856058a 100644
--- a/doc/emacs/buffers.texi
+++ b/doc/emacs/buffers.texi
@@ -81,7 +81,7 @@ Select the next buffer in the buffer list (@code{next-buffer}).
81@item C-u M-g M-g 81@item C-u M-g M-g
82@itemx C-u M-g g 82@itemx C-u M-g g
83Read a number @var{n} and move to line @var{n} in the most recently 83Read a number @var{n} and move to line @var{n} in the most recently
84selected buffer other than the current buffer. 84selected buffer other than the current buffer, in another window.
85@end table 85@end table
86 86
87@kindex C-x b 87@kindex C-x b
@@ -94,12 +94,12 @@ now displayed in any window.
94 94
95 While entering the buffer name, you can use the usual completion and 95 While entering the buffer name, you can use the usual completion and
96history commands (@pxref{Minibuffer}). Note that @kbd{C-x b}, and 96history commands (@pxref{Minibuffer}). Note that @kbd{C-x b}, and
97related commands, use @dfn{permissive completion with confirmation} for 97related commands, use @dfn{permissive completion with confirmation}
98minibuffer completion: if you type @key{RET} immediately after 98for minibuffer completion: if you type @key{RET} when the minibuffer
99completing up to a nonexistent buffer name, Emacs prints 99text names a nonexistent buffer, Emacs prints @samp{[Confirm]} and you
100@samp{[Confirm]} and you must type a second @key{RET} to submit that 100must type a second @key{RET} to submit that buffer name.
101buffer name. @xref{Completion Exit}, for details. For other 101@xref{Completion Exit}, for details. For other completion options and
102completion options and features, see @ref{Completion Options}. 102features, see @ref{Completion Options}.
103 103
104 If you specify a buffer that does not exist, @kbd{C-x b} creates a 104 If you specify a buffer that does not exist, @kbd{C-x b} creates a
105new, empty buffer that is not visiting any file, and selects it for 105new, empty buffer that is not visiting any file, and selects it for
@@ -124,18 +124,19 @@ direction.
124 124
125@kindex C-x 4 b 125@kindex C-x 4 b
126@findex switch-to-buffer-other-window 126@findex switch-to-buffer-other-window
127 To select a buffer in a window other than the current one, type 127 To select a buffer in a window other than the current one
128@kbd{C-x 4 b} (@code{switch-to-buffer-other-window}). This prompts 128(@pxref{Windows}), type @kbd{C-x 4 b}
129for a buffer name using the minibuffer, displays that buffer in 129(@code{switch-to-buffer-other-window}). This prompts for a buffer
130another window, and selects that window. 130name using the minibuffer, displays that buffer in another window, and
131selects that window.
131 132
132@kindex C-x 5 b 133@kindex C-x 5 b
133@findex switch-to-buffer-other-frame 134@findex switch-to-buffer-other-frame
134 Similarly, @kbd{C-x 5 b} (@code{switch-to-buffer-other-frame}) 135 Similarly, @kbd{C-x 5 b} (@code{switch-to-buffer-other-frame})
135prompts for a buffer name, displays that buffer in another frame, and 136prompts for a buffer name, displays that buffer in another frame
136selects that frame. If the buffer is already being shown in a window 137(@pxref{Frames}), and selects that frame. If the buffer is already
137on another frame, Emacs selects that window and frame instead of 138being shown in a window on another frame, Emacs selects that window
138creating a new frame. 139and frame instead of creating a new frame.
139 140
140 @xref{Displaying Buffers}, for how the @kbd{C-x 4 b} and @kbd{C-x 5 141 @xref{Displaying Buffers}, for how the @kbd{C-x 4 b} and @kbd{C-x 5
141b} commands get the window and/or frame to display in. 142b} commands get the window and/or frame to display in.
@@ -219,7 +220,7 @@ unless they visit files: such buffers are used internally by Emacs.
219@table @kbd 220@table @kbd
220@item C-x C-q 221@item C-x C-q
221Toggle read-only status of buffer (@code{read-only-mode}). 222Toggle read-only status of buffer (@code{read-only-mode}).
222@item M-x rename-buffer @key{RET} @var{name} @key{RET} 223@item M-x rename-buffer @key{RET} @var{buffer} @key{RET}
223Change the name of the current buffer. 224Change the name of the current buffer.
224@item M-x rename-uniquely 225@item M-x rename-uniquely
225Rename the current buffer by adding @samp{<@var{number}>} to the end. 226Rename the current buffer by adding @samp{<@var{number}>} to the end.
@@ -234,8 +235,9 @@ Scroll through buffer @var{buffer}. @xref{View Mode}.
234its contents are not allowed. The mode line indicates read-only 235its contents are not allowed. The mode line indicates read-only
235buffers with @samp{%%} or @samp{%*} near the left margin. @xref{Mode 236buffers with @samp{%%} or @samp{%*} near the left margin. @xref{Mode
236Line}. Read-only buffers are usually made by subsystems such as Dired 237Line}. Read-only buffers are usually made by subsystems such as Dired
237and Rmail that have special commands to operate on the text; also by 238and Rmail that have special commands to operate on the text. Visiting
238visiting a file whose access control says you cannot write it. 239a file whose access control says you cannot write it also makes the
240buffer read-only.
239 241
240@findex read-only-mode 242@findex read-only-mode
241@vindex view-read-only 243@vindex view-read-only
@@ -282,13 +284,13 @@ large number of buffers. You may then find it convenient to @dfn{kill}
282the buffers you no longer need. (Some other editors call this 284the buffers you no longer need. (Some other editors call this
283operation @dfn{close}, and talk about ``closing the buffer'' or 285operation @dfn{close}, and talk about ``closing the buffer'' or
284``closing the file'' visited in the buffer.) On most operating 286``closing the file'' visited in the buffer.) On most operating
285systems, killing a buffer releases its space back to the operating 287systems, killing a buffer releases the memory Emacs used for the buffer
286system so that other programs can use it. Here are some commands for 288back to the operating system so that other programs can use it. Here
287killing buffers: 289are some commands for killing buffers:
288 290
289@table @kbd 291@table @kbd
290@item C-x k @var{bufname} @key{RET} 292@item C-x k @var{buffer} @key{RET}
291Kill buffer @var{bufname} (@code{kill-buffer}). 293Kill buffer @var{buffer} (@code{kill-buffer}).
292@item M-x kill-some-buffers 294@item M-x kill-some-buffers
293Offer to kill each buffer, one by one. 295Offer to kill each buffer, one by one.
294@item M-x kill-matching-buffers 296@item M-x kill-matching-buffers
@@ -307,7 +309,7 @@ confirm with @kbd{yes} before the buffer is killed.
307 309
308@findex kill-some-buffers 310@findex kill-some-buffers
309 The command @kbd{M-x kill-some-buffers} asks about each buffer, one 311 The command @kbd{M-x kill-some-buffers} asks about each buffer, one
310by one. An answer of @kbd{y} means to kill the buffer, just like 312by one. An answer of @kbd{yes} means to kill the buffer, just like
311@code{kill-buffer}. This command ignores buffers whose names begin 313@code{kill-buffer}. This command ignores buffers whose names begin
312with a space, which are used internally by Emacs. 314with a space, which are used internally by Emacs.
313 315
@@ -335,7 +337,9 @@ all the unmodified buffers that you have not used for a long time. An
335ordinary buffer is killed if it has not been displayed for three days; 337ordinary buffer is killed if it has not been displayed for three days;
336however, you can specify certain buffers that should never be killed 338however, you can specify certain buffers that should never be killed
337automatically, and others that should be killed if they have been unused 339automatically, and others that should be killed if they have been unused
338for a mere hour. 340for a mere hour. These defaults, and other aspects of this command's
341behavior, can be controlled by customizing several options described
342in the doc string of @code{clean-buffer-list}.
339 343
340@cindex Midnight mode 344@cindex Midnight mode
341@vindex midnight-mode 345@vindex midnight-mode
@@ -410,7 +414,8 @@ Perform all flagged deletions and saves (@code{Buffer-menu-execute}).
410@findex Buffer-menu-unmark 414@findex Buffer-menu-unmark
411@kindex u @r{(Buffer Menu)} 415@kindex u @r{(Buffer Menu)}
412Remove all flags from the current line, and move down 416Remove all flags from the current line, and move down
413(@code{Buffer-menu-unmark}). 417(@code{Buffer-menu-unmark}). With a prefix argument, moves up after
418removing the flags.
414 419
415@item @key{DEL} 420@item @key{DEL}
416@findex Buffer-menu-backup-unmark 421@findex Buffer-menu-backup-unmark
@@ -422,7 +427,9 @@ Move to the previous line and remove all flags on that line
422@findex Buffer-menu-unmark-all-buffers 427@findex Buffer-menu-unmark-all-buffers
423@kindex M-DEL @r{(Buffer Menu)} 428@kindex M-DEL @r{(Buffer Menu)}
424Remove a particular flag from all lines 429Remove a particular flag from all lines
425(@code{Buffer-menu-unmark-all-buffers}). 430(@code{Buffer-menu-unmark-all-buffers}). This asks for a single
431character, and unmarks buffers marked with that character; typing
432@key{RET} removes all marks.
426 433
427@item U 434@item U
428@findex Buffer-menu-unmark-all 435@findex Buffer-menu-unmark-all
@@ -432,8 +439,8 @@ Remove all flags from all the lines
432@end table 439@end table
433 440
434@noindent 441@noindent
435The commands for adding or removing flags, @kbd{d}, @kbd{C-d}, @kbd{s} 442The commands for removing flags, @kbd{d} and @kbd{C-d}, accept a
436and @kbd{u}, all accept a numeric argument as a repeat count. 443numeric argument as a repeat count.
437 444
438 The following commands operate immediately on the buffer listed on 445 The following commands operate immediately on the buffer listed on
439the current line. They also accept a numeric argument as a repeat 446the current line. They also accept a numeric argument as a repeat
@@ -505,7 +512,8 @@ selected in one, and a previously current buffer (aside from
505@item b 512@item b
506@findex Buffer-menu-bury 513@findex Buffer-menu-bury
507@kindex b @r{(Buffer Menu)} 514@kindex b @r{(Buffer Menu)}
508Bury this line's buffer (@code{Buffer-menu-bury}). 515Bury this line's buffer (@code{Buffer-menu-bury}) (i.e., move it to
516the end of the buffer list).
509 517
510@item m 518@item m
511@findex Buffer-menu-mark 519@findex Buffer-menu-mark
@@ -727,10 +735,10 @@ C-b}. To customize this buffer list, use the @code{bs} Custom group
727@kindex C-Down-mouse-1 735@kindex C-Down-mouse-1
728 MSB global minor mode (``MSB'' stands for ``mouse select buffer'') 736 MSB global minor mode (``MSB'' stands for ``mouse select buffer'')
729provides a different and customizable mouse buffer menu which you may 737provides a different and customizable mouse buffer menu which you may
730prefer. It replaces the bindings of @code{mouse-buffer-menu}, 738prefer. It replaces the @code{mouse-buffer-menu} commands, normally
731normally on @kbd{C-Down-mouse-1} and @kbd{C-@key{F10}}, and the menu 739bound to @kbd{C-Down-mouse-1} and @kbd{C-@key{F10}}, with its own
732bar buffer menu. You can customize the menu in the @code{msb} Custom 740commands, and also modifies the menu-bar buffer menu. You can
733group. 741customize the menu in the @code{msb} Custom group.
734 742
735@findex ibuffer 743@findex ibuffer
736 IBuffer is a major mode for viewing a list of buffers and operating 744 IBuffer is a major mode for viewing a list of buffers and operating
diff --git a/doc/emacs/mark.texi b/doc/emacs/mark.texi
index c1932b682de..072a3bc4b11 100644
--- a/doc/emacs/mark.texi
+++ b/doc/emacs/mark.texi
@@ -135,10 +135,11 @@ detailed description of these mouse commands.
135typing certain cursor motion commands (such as @kbd{S-@key{RIGHT}}, 135typing certain cursor motion commands (such as @kbd{S-@key{RIGHT}},
136@kbd{S-C-f}, @kbd{S-C-n}, etc.). This is called @dfn{shift-selection}. 136@kbd{S-C-f}, @kbd{S-C-n}, etc.). This is called @dfn{shift-selection}.
137It sets the mark at point before moving point, but only if there is no 137It sets the mark at point before moving point, but only if there is no
138active mark set via shift-selection. The mark set by mouse commands 138active mark set via a previous shift-selection or mouse commands. The
139and by shift-selection behaves slightly differently from the usual 139mark set by mouse commands and by shift-selection behaves slightly
140mark: any subsequent unshifted cursor motion command deactivates it 140differently from the usual mark: any subsequent unshifted cursor motion
141automatically. For details, see @ref{Shift Selection}. 141command deactivates it automatically. For details, see @ref{Shift
142Selection}.
142 143
143 Many commands that insert text, such as @kbd{C-y} (@code{yank}), set 144 Many commands that insert text, such as @kbd{C-y} (@code{yank}), set
144the mark at the other end of the inserted text, without activating it. 145the mark at the other end of the inserted text, without activating it.
@@ -161,7 +162,7 @@ object such as a word, list, paragraph or page:
161 162
162@table @kbd 163@table @kbd
163@item M-@@ 164@item M-@@
164Set mark after end of next word (@code{mark-word}). This does not 165Set mark at the end of the next word (@code{mark-word}). This does not
165move point. 166move point.
166@item C-M-@@ 167@item C-M-@@
167Set mark after end of following balanced expression 168Set mark after end of following balanced expression
diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
index 846d9fe8c62..b7659976a98 100644
--- a/doc/emacs/text.texi
+++ b/doc/emacs/text.texi
@@ -381,12 +381,13 @@ at the end).
381 @kbd{C-x C-p C-w} is a handy way to kill a page to move it 381 @kbd{C-x C-p C-w} is a handy way to kill a page to move it
382elsewhere. If you move to another page delimiter with @kbd{C-x [} and 382elsewhere. If you move to another page delimiter with @kbd{C-x [} and
383@kbd{C-x ]}, then yank the killed page, all the pages will be properly 383@kbd{C-x ]}, then yank the killed page, all the pages will be properly
384delimited once again. The reason @kbd{C-x C-p} includes only the 384delimited once again. Making sure this works as expected is the
385following page delimiter in the region is to ensure that. 385reason @kbd{C-x C-p} includes only the following page delimiter in the
386region.
386 387
387 A numeric argument to @kbd{C-x C-p} specifies which page to go to, 388 A numeric argument to @kbd{C-x C-p} specifies which page to go to,
388relative to the current one. Zero means the current page, one 389relative to the current one. Zero means the current page, one means
389the next page, and @minus{}1 the previous one. 390the next page, and @minus{}1 means the previous one.
390 391
391@kindex C-x l 392@kindex C-x l
392@findex count-lines-page 393@findex count-lines-page
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index dd9d088a56e..05114c376c9 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -452,7 +452,7 @@ displays, you can use the mouse to kill Emacs or switch to another
452program. 452program.
453 453
454 On MS-DOS, you must type @kbd{C-@key{Break}} (twice) to cause 454 On MS-DOS, you must type @kbd{C-@key{Break}} (twice) to cause
455emergency escape---but there are cases where it won't work, when 455emergency escape---but there are cases where it won't work, when a
456system call hangs or when Emacs is stuck in a tight loop in C code. 456system call hangs or when Emacs is stuck in a tight loop in C code.
457 457
458@node Bugs 458@node Bugs
@@ -1225,8 +1225,7 @@ check if existing bug reports are fixed in newer versions of Emacs
1225@url{https://debbugs.gnu.org/cgi/pkgreport.cgi?which=pkg&data=emacs}. 1225@url{https://debbugs.gnu.org/cgi/pkgreport.cgi?which=pkg&data=emacs}.
1226 1226
1227@item 1227@item
1228fix existing bug reports 1228fix existing bug reports.
1229@url{https://debbugs.gnu.org/cgi/pkgreport.cgi?which=pkg&data=emacs}.
1230 1229
1231@item 1230@item
1232@c etc/TODO not in WWW_GNU_ORG 1231@c etc/TODO not in WWW_GNU_ORG
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index f779417bd70..762dfafdda7 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -4,8 +4,8 @@
4@settitle The Org Manual 4@settitle The Org Manual
5@include docstyle.texi 5@include docstyle.texi
6 6
7@set VERSION 9.1.4 7@set VERSION 9.1.6
8@set DATE 2017-09-17 8@set DATE 2018-01-03
9 9
10@c Version and Contact Info 10@c Version and Contact Info
11@set MAINTAINERSITE @uref{http://orgmode.org,maintainers web page} 11@set MAINTAINERSITE @uref{http://orgmode.org,maintainers web page}
diff --git a/etc/NEWS.26 b/etc/NEWS.26
index b4c489cf7bd..46762d65e18 100644
--- a/etc/NEWS.26
+++ b/etc/NEWS.26
@@ -635,7 +635,7 @@ state to take effect (making a frame visible, for example).
635* Changes in Specialized Modes and Packages in Emacs 26.1 635* Changes in Specialized Modes and Packages in Emacs 26.1
636 636
637--- 637---
638** Emacs 26.1 comes with Org v9.1.4. 638** Emacs 26.1 comes with Org v9.1.6.
639See the file ORG-NEWS for user-visible changes in Org. 639See the file ORG-NEWS for user-visible changes in Org.
640 640
641--- 641---
diff --git a/etc/refcards/orgcard.tex b/etc/refcards/orgcard.tex
index 0b9c9767d95..1affe548529 100644
--- a/etc/refcards/orgcard.tex
+++ b/etc/refcards/orgcard.tex
@@ -1,6 +1,6 @@
1% Reference Card for Org Mode 1% Reference Card for Org Mode
2\def\orgversionnumber{9.1.4} 2\def\orgversionnumber{9.1.6}
3\def\versionyear{2017} % latest update 3\def\versionyear{2018} % latest update
4\input emacsver.tex 4\input emacsver.tex
5 5
6%**start of header 6%**start of header
diff --git a/lisp/frameset.el b/lisp/frameset.el
index 3fb6901e943..0e3363d7ae3 100644
--- a/lisp/frameset.el
+++ b/lisp/frameset.el
@@ -230,11 +230,10 @@ Properties can be set with
230;; filtering functions) is copied to FILTERED as is. Keyword values :save, 230;; filtering functions) is copied to FILTERED as is. Keyword values :save,
231;; :restore and :never tell the function to copy CURRENT to FILTERED in the 231;; :restore and :never tell the function to copy CURRENT to FILTERED in the
232;; respective situations, that is, when saving, restoring, or never at all. 232;; respective situations, that is, when saving, restoring, or never at all.
233;; Values :save and :restore are not used in this package, because usually if 233;; Values :save and :restore can be useful, for example, if you already
234;; you don't want to save a parameter, you don't want to restore it either. 234;; have a saved frameset created with some intent, and want to reuse it for
235;; But they can be useful, for example, if you already have a saved frameset 235;; a different objective where the expected parameter list has different
236;; created with some intent, and want to reuse it for a different objective 236;; requirements.
237;; where the expected parameter list has different requirements.
238;; 237;;
239;; Finally, the value can also be a filtering function, or a filtering 238;; Finally, the value can also be a filtering function, or a filtering
240;; function plus some arguments. The function is called for each matching 239;; function plus some arguments. The function is called for each matching
@@ -291,6 +290,11 @@ Properties can be set with
291;; So, in general, not saving `name' is the right thing to do, though 290;; So, in general, not saving `name' is the right thing to do, though
292;; surely there are applications that will want to override this filter. 291;; surely there are applications that will want to override this filter.
293;; 292;;
293;; - `frameset--text-pixel-height', `frameset--text-pixel-width': These are used to
294;; save the pixel width and height of a frame. They are necessary
295;; during restore, but should not be set on the actual frame after
296;; restoring, so `:save' is used to ensure they are only saved.
297;;
294;; - `font', `fullscreen', `height' and `width': These parameters suffer 298;; - `font', `fullscreen', `height' and `width': These parameters suffer
295;; from the fact that they are badly mangled when going through a 299;; from the fact that they are badly mangled when going through a
296;; tty session, though not all in the same way. When saving a GUI frame 300;; tty session, though not all in the same way. When saving a GUI frame
@@ -442,32 +446,34 @@ DO NOT MODIFY. See `frameset-filter-alist' for a full description.")
442;;;###autoload 446;;;###autoload
443(defvar frameset-persistent-filter-alist 447(defvar frameset-persistent-filter-alist
444 (nconc 448 (nconc
445 '((background-color . frameset-filter-sanitize-color) 449 '((background-color . frameset-filter-sanitize-color)
446 (buffer-list . :never) 450 (buffer-list . :never)
447 (buffer-predicate . :never) 451 (buffer-predicate . :never)
448 (buried-buffer-list . :never) 452 (buried-buffer-list . :never)
449 ;; Don't save the 'client' parameter to avoid that a subsequent 453 ;; Don't save the 'client' parameter to avoid that a subsequent
450 ;; `save-buffers-kill-terminal' in a non-client session barks at 454 ;; `save-buffers-kill-terminal' in a non-client session barks at
451 ;; the user (Bug#29067). 455 ;; the user (Bug#29067).
452 (client . :never) 456 (client . :never)
453 (delete-before . :never) 457 (delete-before . :never)
454 (font . frameset-filter-font-param) 458 (font . frameset-filter-font-param)
455 (foreground-color . frameset-filter-sanitize-color) 459 (foreground-color . frameset-filter-sanitize-color)
456 (fullscreen . frameset-filter-shelve-param) 460 (frameset--text-pixel-height . :save)
457 (GUI:font . frameset-filter-unshelve-param) 461 (frameset--text-pixel-width . :save)
458 (GUI:fullscreen . frameset-filter-unshelve-param) 462 (fullscreen . frameset-filter-shelve-param)
459 (GUI:height . frameset-filter-unshelve-param) 463 (GUI:font . frameset-filter-unshelve-param)
460 (GUI:width . frameset-filter-unshelve-param) 464 (GUI:fullscreen . frameset-filter-unshelve-param)
461 (height . frameset-filter-shelve-param) 465 (GUI:height . frameset-filter-unshelve-param)
462 (outer-window-id . :never) 466 (GUI:width . frameset-filter-unshelve-param)
463 (parent-frame . :never) 467 (height . frameset-filter-shelve-param)
464 (parent-id . :never) 468 (outer-window-id . :never)
465 (mouse-wheel-frame . :never) 469 (parent-frame . :never)
466 (tty . frameset-filter-tty-to-GUI) 470 (parent-id . :never)
467 (tty-type . frameset-filter-tty-to-GUI) 471 (mouse-wheel-frame . :never)
468 (width . frameset-filter-shelve-param) 472 (tty . frameset-filter-tty-to-GUI)
469 (window-id . :never) 473 (tty-type . frameset-filter-tty-to-GUI)
470 (window-system . :never)) 474 (width . frameset-filter-shelve-param)
475 (window-id . :never)
476 (window-system . :never))
471 frameset-session-filter-alist) 477 frameset-session-filter-alist)
472 "Parameters to filter for persistent framesets. 478 "Parameters to filter for persistent framesets.
473DO NOT MODIFY. See `frameset-filter-alist' for a full description.") 479DO NOT MODIFY. See `frameset-filter-alist' for a full description.")
diff --git a/lisp/org/ob-core.el b/lisp/org/ob-core.el
index 8a17ee4f1fa..5f378b2173f 100644
--- a/lisp/org/ob-core.el
+++ b/lisp/org/ob-core.el
@@ -74,7 +74,6 @@
74(declare-function org-mark-ring-push "org" (&optional pos buffer)) 74(declare-function org-mark-ring-push "org" (&optional pos buffer))
75(declare-function org-narrow-to-subtree "org" ()) 75(declare-function org-narrow-to-subtree "org" ())
76(declare-function org-next-block "org" (arg &optional backward block-regexp)) 76(declare-function org-next-block "org" (arg &optional backward block-regexp))
77(declare-function org-number-sequence "org-compat" (from &optional to inc))
78(declare-function org-open-at-point "org" (&optional in-emacs reference-buffer)) 77(declare-function org-open-at-point "org" (&optional in-emacs reference-buffer))
79(declare-function org-outline-overlay-data "org" (&optional use-markers)) 78(declare-function org-outline-overlay-data "org" (&optional use-markers))
80(declare-function org-previous-block "org" (arg &optional block-regexp)) 79(declare-function org-previous-block "org" (arg &optional block-regexp))
@@ -82,7 +81,7 @@
82(declare-function org-reverse-string "org" (string)) 81(declare-function org-reverse-string "org" (string))
83(declare-function org-set-outline-overlay-data "org" (data)) 82(declare-function org-set-outline-overlay-data "org" (data))
84(declare-function org-show-context "org" (&optional key)) 83(declare-function org-show-context "org" (&optional key))
85(declare-function org-src-coderef-format "org-src" (element)) 84(declare-function org-src-coderef-format "org-src" (&optional element))
86(declare-function org-src-coderef-regexp "org-src" (fmt &optional label)) 85(declare-function org-src-coderef-regexp "org-src" (fmt &optional label))
87(declare-function org-table-align "org-table" ()) 86(declare-function org-table-align "org-table" ())
88(declare-function org-table-end "org-table" (&optional table-type)) 87(declare-function org-table-end "org-table" (&optional table-type))
@@ -2476,7 +2475,7 @@ in the buffer."
2476 (point)))))) 2475 (point))))))
2477 2476
2478(defun org-babel-result-to-file (result &optional description) 2477(defun org-babel-result-to-file (result &optional description)
2479 "Convert RESULT into an `org-mode' link with optional DESCRIPTION. 2478 "Convert RESULT into an Org link with optional DESCRIPTION.
2480If the `default-directory' is different from the containing 2479If the `default-directory' is different from the containing
2481file's directory then expand relative links." 2480file's directory then expand relative links."
2482 (when (stringp result) 2481 (when (stringp result)
@@ -2761,22 +2760,27 @@ block but are passed literally to the \"example-block\"."
2761 (if org-babel-use-quick-and-dirty-noweb-expansion 2760 (if org-babel-use-quick-and-dirty-noweb-expansion
2762 (while (re-search-forward rx nil t) 2761 (while (re-search-forward rx nil t)
2763 (let* ((i (org-babel-get-src-block-info 'light)) 2762 (let* ((i (org-babel-get-src-block-info 'light))
2764 (body (org-babel-expand-noweb-references i)) 2763 (body (if (org-babel-noweb-p (nth 2 i) :eval)
2764 (org-babel-expand-noweb-references i)
2765 (nth 1 i)))
2765 (sep (or (cdr (assq :noweb-sep (nth 2 i))) 2766 (sep (or (cdr (assq :noweb-sep (nth 2 i)))
2766 "\n")) 2767 "\n"))
2767 (full (if comment 2768 (full (if comment
2768 (let ((cs (org-babel-tangle-comment-links i))) 2769 (let ((cs (org-babel-tangle-comment-links i)))
2769 (concat (funcall c-wrap (car cs)) "\n" 2770 (concat (funcall c-wrap (car cs)) "\n"
2770 body "\n" 2771 body "\n"
2771 (funcall c-wrap (cadr cs)))) 2772 (funcall c-wrap (cadr cs))))
2772 body))) 2773 body)))
2773 (setq expansion (cons sep (cons full expansion))))) 2774 (setq expansion (cons sep (cons full expansion)))))
2774 (org-babel-map-src-blocks nil 2775 (org-babel-map-src-blocks nil
2775 (let ((i (org-babel-get-src-block-info 'light))) 2776 (let ((i (let ((org-babel-current-src-block-location (point)))
2777 (org-babel-get-src-block-info 'light))))
2776 (when (equal (or (cdr (assq :noweb-ref (nth 2 i))) 2778 (when (equal (or (cdr (assq :noweb-ref (nth 2 i)))
2777 (nth 4 i)) 2779 (nth 4 i))
2778 source-name) 2780 source-name)
2779 (let* ((body (org-babel-expand-noweb-references i)) 2781 (let* ((body (if (org-babel-noweb-p (nth 2 i) :eval)
2782 (org-babel-expand-noweb-references i)
2783 (nth 1 i)))
2780 (sep (or (cdr (assq :noweb-sep (nth 2 i))) 2784 (sep (or (cdr (assq :noweb-sep (nth 2 i)))
2781 "\n")) 2785 "\n"))
2782 (full (if comment 2786 (full (if comment
diff --git a/lisp/org/ob-exp.el b/lisp/org/ob-exp.el
index c474b1e2be7..d2c32fac81a 100644
--- a/lisp/org/ob-exp.el
+++ b/lisp/org/ob-exp.el
@@ -58,9 +58,13 @@ returned is the value of the last form in BODY. Assume that
58point is at the beginning of the Babel block." 58point is at the beginning of the Babel block."
59 (declare (indent 1) (debug body)) 59 (declare (indent 1) (debug body))
60 `(let ((source (get-text-property (point) 'org-reference))) 60 `(let ((source (get-text-property (point) 'org-reference)))
61 (with-current-buffer org-babel-exp-reference-buffer 61 ;; Source blocks created during export process (e.g., by other
62 ;; source blocks) are not referenced. In this case, do not move
63 ;; point at all.
64 (with-current-buffer (if source org-babel-exp-reference-buffer
65 (current-buffer))
62 (org-with-wide-buffer 66 (org-with-wide-buffer
63 (goto-char source) 67 (when source (goto-char source))
64 ,@body)))) 68 ,@body))))
65 69
66(defun org-babel-exp-src-block () 70(defun org-babel-exp-src-block ()
diff --git a/lisp/org/ob-gnuplot.el b/lisp/org/ob-gnuplot.el
index 1acce502475..674627b8fa0 100644
--- a/lisp/org/ob-gnuplot.el
+++ b/lisp/org/ob-gnuplot.el
@@ -116,6 +116,8 @@ code."
116 (timefmt (cdr (assq :timefmt params))) 116 (timefmt (cdr (assq :timefmt params)))
117 (time-ind (or (cdr (assq :timeind params)) 117 (time-ind (or (cdr (assq :timeind params))
118 (when timefmt 1))) 118 (when timefmt 1)))
119 (directory (and (buffer-file-name)
120 (file-name-directory (buffer-file-name))))
119 (add-to-body (lambda (text) (setq body (concat text "\n" body))))) 121 (add-to-body (lambda (text) (setq body (concat text "\n" body)))))
120 ;; append header argument settings to body 122 ;; append header argument settings to body
121 (when title (funcall add-to-body (format "set title '%s'" title))) 123 (when title (funcall add-to-body (format "set title '%s'" title)))
@@ -161,7 +163,10 @@ code."
161 (format "\\$%s" (car pair)) (cdr pair) body))) 163 (format "\\$%s" (car pair)) (cdr pair) body)))
162 vars) 164 vars)
163 (when prologue (funcall add-to-body prologue)) 165 (when prologue (funcall add-to-body prologue))
164 (when epilogue (setq body (concat body "\n" epilogue)))) 166 (when epilogue (setq body (concat body "\n" epilogue)))
167 ;; Setting the directory needs to be done first so that
168 ;; subsequent 'output' directive goes to the right place.
169 (when directory (funcall add-to-body (format "cd '%s'" directory))))
165 body)) 170 body))
166 171
167(defun org-babel-execute:gnuplot (body params) 172(defun org-babel-execute:gnuplot (body params)
diff --git a/lisp/org/ob-haskell.el b/lisp/org/ob-haskell.el
index 301c6837b3c..b19ee6d70fe 100644
--- a/lisp/org/ob-haskell.el
+++ b/lisp/org/ob-haskell.el
@@ -59,14 +59,23 @@
59 59
60(defvar org-babel-haskell-eoe "\"org-babel-haskell-eoe\"") 60(defvar org-babel-haskell-eoe "\"org-babel-haskell-eoe\"")
61 61
62(defvar haskell-prompt-regexp)
63
62(defun org-babel-execute:haskell (body params) 64(defun org-babel-execute:haskell (body params)
63 "Execute a block of Haskell code." 65 "Execute a block of Haskell code."
66 (require 'inf-haskell)
67 (add-hook 'inferior-haskell-hook
68 (lambda ()
69 (setq-local comint-prompt-regexp
70 (concat haskell-prompt-regexp "\\|^λ?> "))))
64 (let* ((session (cdr (assq :session params))) 71 (let* ((session (cdr (assq :session params)))
65 (result-type (cdr (assq :result-type params))) 72 (result-type (cdr (assq :result-type params)))
66 (full-body (org-babel-expand-body:generic 73 (full-body (org-babel-expand-body:generic
67 body params 74 body params
68 (org-babel-variable-assignments:haskell params))) 75 (org-babel-variable-assignments:haskell params)))
69 (session (org-babel-haskell-initiate-session session params)) 76 (session (org-babel-haskell-initiate-session session params))
77 (comint-preoutput-filter-functions
78 (cons 'ansi-color-filter-apply comint-preoutput-filter-functions))
70 (raw (org-babel-comint-with-output 79 (raw (org-babel-comint-with-output
71 (session org-babel-haskell-eoe t full-body) 80 (session org-babel-haskell-eoe t full-body)
72 (insert (org-trim full-body)) 81 (insert (org-trim full-body))
diff --git a/lisp/org/ob-picolisp.el b/lisp/org/ob-picolisp.el
index 0d44c9832db..b6dc8986f95 100644
--- a/lisp/org/ob-picolisp.el
+++ b/lisp/org/ob-picolisp.el
@@ -39,9 +39,9 @@
39;; directory). 39;; directory).
40 40
41;; Although it might seem more natural to use Emacs Lisp for most 41;; Although it might seem more natural to use Emacs Lisp for most
42;; Lisp-based programming tasks inside Org-Mode, an Emacs library 42;; Lisp-based programming tasks inside Org, an Emacs library written
43;; written in Emacs Lisp, PicoLisp has at least two outstanding 43;; in Emacs Lisp, PicoLisp has at least two outstanding features that
44;; features that make it a valuable addition to Org-Babel: 44;; make it a valuable addition to Org Babel:
45 45
46;; PicoLisp _is_ an object-oriented database with a Prolog-based query 46;; PicoLisp _is_ an object-oriented database with a Prolog-based query
47;; language implemented in PicoLisp (Pilog). Database objects are 47;; language implemented in PicoLisp (Pilog). Database objects are
diff --git a/lisp/org/ob-python.el b/lisp/org/ob-python.el
index 3ea050fffea..951e4d2a4b4 100644
--- a/lisp/org/ob-python.el
+++ b/lisp/org/ob-python.el
@@ -239,6 +239,15 @@ def main():
239 239
240open('%s', 'w').write( pprint.pformat(main()) )") 240open('%s', 'w').write( pprint.pformat(main()) )")
241 241
242(defconst org-babel-python--exec-tmpfile
243 (concat
244 "__org_babel_python_fname = '%s'; "
245 "__org_babel_python_fh = open(__org_babel_python_fname); "
246 "exec(compile("
247 "__org_babel_python_fh.read(), __org_babel_python_fname, 'exec'"
248 ")); "
249 "__org_babel_python_fh.close()"))
250
242(defun org-babel-python-evaluate 251(defun org-babel-python-evaluate
243 (session body &optional result-type result-params preamble) 252 (session body &optional result-type result-params preamble)
244 "Evaluate BODY as Python code." 253 "Evaluate BODY as Python code."
@@ -306,16 +315,23 @@ last statement in BODY, as elisp."
306 (results 315 (results
307 (pcase result-type 316 (pcase result-type
308 (`output 317 (`output
309 (mapconcat 318 (let ((body (if (string-match-p ".\n+." body) ; Multiline
310 #'org-trim 319 (let ((tmp-src-file (org-babel-temp-file
311 (butlast 320 "python-")))
312 (org-babel-comint-with-output 321 (with-temp-file tmp-src-file (insert body))
313 (session org-babel-python-eoe-indicator t body) 322 (format org-babel-python--exec-tmpfile
314 (funcall input-body body) 323 tmp-src-file))
315 (funcall send-wait) (funcall send-wait) 324 body)))
316 (insert org-babel-python-eoe-indicator) 325 (mapconcat
317 (funcall send-wait)) 326 #'org-trim
318 2) "\n")) 327 (butlast
328 (org-babel-comint-with-output
329 (session org-babel-python-eoe-indicator t body)
330 (funcall input-body body)
331 (funcall send-wait) (funcall send-wait)
332 (insert org-babel-python-eoe-indicator)
333 (funcall send-wait))
334 2) "\n")))
319 (`value 335 (`value
320 (let ((tmp-file (org-babel-temp-file "python-"))) 336 (let ((tmp-file (org-babel-temp-file "python-")))
321 (org-babel-comint-with-output 337 (org-babel-comint-with-output
diff --git a/lisp/org/ob-ref.el b/lisp/org/ob-ref.el
index de30a761293..872f7f98151 100644
--- a/lisp/org/ob-ref.el
+++ b/lisp/org/ob-ref.el
@@ -65,24 +65,21 @@
65(declare-function org-show-context "org" (&optional key)) 65(declare-function org-show-context "org" (&optional key))
66(declare-function org-trim "org" (s &optional keep-lead)) 66(declare-function org-trim "org" (s &optional keep-lead))
67 67
68(defvar org-babel-ref-split-regexp
69 "[ \f\t\n\r\v]*\\(.+?\\)[ \f\t\n\r\v]*=[ \f\t\n\r\v]*\\(.+\\)[ \f\t\n\r\v]*")
70
71(defvar org-babel-update-intermediate nil 68(defvar org-babel-update-intermediate nil
72 "Update the in-buffer results of code blocks executed to resolve references.") 69 "Update the in-buffer results of code blocks executed to resolve references.")
73 70
74(defun org-babel-ref-parse (assignment) 71(defun org-babel-ref-parse (assignment)
75 "Parse a variable ASSIGNMENT in a header argument. 72 "Parse a variable ASSIGNMENT in a header argument.
73
76If the right hand side of the assignment has a literal value 74If the right hand side of the assignment has a literal value
77return that value, otherwise interpret as a reference to an 75return that value, otherwise interpret it as a reference to an
78external resource and find its value using 76external resource and find its value using `org-babel-ref-resolve'.
79`org-babel-ref-resolve'. Return a list with two elements. The 77
80first element of the list will be the name of the variable, and 78Return a list with two elements: the name of the variable, and an
81the second will be an emacs-lisp representation of the value of 79Emacs Lisp representation of the value of the variable."
82the variable." 80 (when (string-match "\\(.+?\\)=" assignment)
83 (when (string-match org-babel-ref-split-regexp assignment) 81 (let ((var (org-trim (match-string 1 assignment)))
84 (let ((var (match-string 1 assignment)) 82 (ref (org-trim (substring assignment (match-end 0)))))
85 (ref (match-string 2 assignment)))
86 (cons (intern var) 83 (cons (intern var)
87 (let ((out (save-excursion 84 (let ((out (save-excursion
88 (when org-babel-current-src-block-location 85 (when org-babel-current-src-block-location
diff --git a/lisp/org/ob-scheme.el b/lisp/org/ob-scheme.el
index 029569edacc..cc78b574d07 100644
--- a/lisp/org/ob-scheme.el
+++ b/lisp/org/ob-scheme.el
@@ -40,6 +40,7 @@
40;;; Code: 40;;; Code:
41(require 'ob) 41(require 'ob)
42(require 'geiser nil t) 42(require 'geiser nil t)
43(require 'geiser-impl nil t)
43(defvar geiser-repl--repl) ; Defined in geiser-repl.el 44(defvar geiser-repl--repl) ; Defined in geiser-repl.el
44(defvar geiser-impl--implementation) ; Defined in geiser-impl.el 45(defvar geiser-impl--implementation) ; Defined in geiser-impl.el
45(defvar geiser-default-implementation) ; Defined in geiser-impl.el 46(defvar geiser-default-implementation) ; Defined in geiser-impl.el
diff --git a/lisp/org/ob-stan.el b/lisp/org/ob-stan.el
index 38cda4cdbc7..6fa9fe5c94f 100644
--- a/lisp/org/ob-stan.el
+++ b/lisp/org/ob-stan.el
@@ -49,11 +49,12 @@
49 49
50(defcustom org-babel-stan-cmdstan-directory nil 50(defcustom org-babel-stan-cmdstan-directory nil
51 "CmdStan source directory. 51 "CmdStan source directory.
52'make' will be called from this directory to compile the Stan 52Call \"make\" from this directory to compile the Stan block.
53block. When nil, executing Stan blocks dumps the content to a 53When nil, executing Stan blocks dumps the content to a file."
54plain text file."
55 :group 'org-babel 54 :group 'org-babel
56 :type 'string) 55 :type '(choice
56 (directory :tag "Compilation directory")
57 (const :tag "Dump to a file" nil)))
57 58
58(defvar org-babel-default-header-args:stan 59(defvar org-babel-default-header-args:stan
59 '((:results . "file"))) 60 '((:results . "file")))
diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el
index 9f8d294044c..9aaec330708 100644
--- a/lisp/org/org-agenda.el
+++ b/lisp/org/org-agenda.el
@@ -395,35 +395,35 @@ the daily/weekly agenda, see `org-agenda-skip-function'.")
395 (choice 395 (choice
396 :tag "Condition type" 396 :tag "Condition type"
397 (list :tag "Regexp matches" :inline t 397 (list :tag "Regexp matches" :inline t
398 (const :format "" 'regexp) 398 (const :format "" regexp)
399 (regexp)) 399 (regexp))
400 (list :tag "Regexp does not match" :inline t 400 (list :tag "Regexp does not match" :inline t
401 (const :format "" 'notregexp) 401 (const :format "" notregexp)
402 (regexp)) 402 (regexp))
403 (list :tag "TODO state is" :inline t 403 (list :tag "TODO state is" :inline t
404 (const 'todo) 404 (const todo)
405 (choice 405 (choice
406 (const :tag "Any not-done state" 'todo) 406 (const :tag "Any not-done state" todo)
407 (const :tag "Any done state" 'done) 407 (const :tag "Any done state" done)
408 (const :tag "Any state" 'any) 408 (const :tag "Any state" any)
409 (list :tag "Keyword list" 409 (list :tag "Keyword list"
410 (const :format "" quote) 410 (const :format "" quote)
411 (repeat (string :tag "Keyword"))))) 411 (repeat (string :tag "Keyword")))))
412 (list :tag "TODO state is not" :inline t 412 (list :tag "TODO state is not" :inline t
413 (const 'nottodo) 413 (const nottodo)
414 (choice 414 (choice
415 (const :tag "Any not-done state" 'todo) 415 (const :tag "Any not-done state" todo)
416 (const :tag "Any done state" 'done) 416 (const :tag "Any done state" done)
417 (const :tag "Any state" 'any) 417 (const :tag "Any state" any)
418 (list :tag "Keyword list" 418 (list :tag "Keyword list"
419 (const :format "" quote) 419 (const :format "" quote)
420 (repeat (string :tag "Keyword"))))) 420 (repeat (string :tag "Keyword")))))
421 (const :tag "scheduled" 'scheduled) 421 (const :tag "scheduled" scheduled)
422 (const :tag "not scheduled" 'notscheduled) 422 (const :tag "not scheduled" notscheduled)
423 (const :tag "deadline" 'deadline) 423 (const :tag "deadline" deadline)
424 (const :tag "no deadline" 'notdeadline) 424 (const :tag "no deadline" notdeadline)
425 (const :tag "timestamp" 'timestamp) 425 (const :tag "timestamp" timestamp)
426 (const :tag "no timestamp" 'nottimestamp)))))) 426 (const :tag "no timestamp" nottimestamp))))))
427 (list :tag "Non-standard skipping condition" 427 (list :tag "Non-standard skipping condition"
428 :value (org-agenda-skip-function) 428 :value (org-agenda-skip-function)
429 (const org-agenda-skip-function) 429 (const org-agenda-skip-function)
@@ -3563,7 +3563,7 @@ removed from the entry content. Currently only `planning' is allowed here."
3563 txt)) 3563 txt))
3564 3564
3565(defun org-check-for-org-mode () 3565(defun org-check-for-org-mode ()
3566 "Make sure current buffer is in org-mode. Error if not." 3566 "Make sure current buffer is in Org mode. Error if not."
3567 (or (derived-mode-p 'org-mode) 3567 (or (derived-mode-p 'org-mode)
3568 (error "Cannot execute Org agenda command on buffer in %s" 3568 (error "Cannot execute Org agenda command on buffer in %s"
3569 major-mode))) 3569 major-mode)))
@@ -4509,7 +4509,7 @@ is active."
4509 (with-current-buffer buffer 4509 (with-current-buffer buffer
4510 (with-syntax-table (org-search-syntax-table) 4510 (with-syntax-table (org-search-syntax-table)
4511 (unless (derived-mode-p 'org-mode) 4511 (unless (derived-mode-p 'org-mode)
4512 (error "Agenda file %s is not in `org-mode'" file)) 4512 (error "Agenda file %s is not in Org mode" file))
4513 (let ((case-fold-search t)) 4513 (let ((case-fold-search t))
4514 (save-excursion 4514 (save-excursion
4515 (save-restriction 4515 (save-restriction
@@ -4774,7 +4774,7 @@ The prefix arg TODO-ONLY limits the search to TODO entries."
4774 rtnall (append rtnall rtn)) 4774 rtnall (append rtnall rtn))
4775 (with-current-buffer buffer 4775 (with-current-buffer buffer
4776 (unless (derived-mode-p 'org-mode) 4776 (unless (derived-mode-p 'org-mode)
4777 (error "Agenda file %s is not in `org-mode'" file)) 4777 (error "Agenda file %s is not in Org mode" file))
4778 (save-excursion 4778 (save-excursion
4779 (save-restriction 4779 (save-restriction
4780 (if (eq buffer org-agenda-restrict) 4780 (if (eq buffer org-agenda-restrict)
@@ -5067,9 +5067,9 @@ of what a project is and how to check if it stuck, customize the variable
5067 5067
5068(defun org-agenda-cleanup-fancy-diary () 5068(defun org-agenda-cleanup-fancy-diary ()
5069 "Remove unwanted stuff in buffer created by `fancy-diary-display'. 5069 "Remove unwanted stuff in buffer created by `fancy-diary-display'.
5070This gets rid of the date, the underline under the date, and 5070This gets rid of the date, the underline under the date, and the
5071the dummy entry installed by `org-mode' to ensure non-empty diary for each 5071dummy entry installed by Org mode to ensure non-empty diary for
5072date. It also removes lines that contain only whitespace." 5072each date. It also removes lines that contain only whitespace."
5073 (goto-char (point-min)) 5073 (goto-char (point-min))
5074 (if (looking-at ".*?:[ \t]*") 5074 (if (looking-at ".*?:[ \t]*")
5075 (progn 5075 (progn
@@ -5214,7 +5214,7 @@ the documentation of `org-diary'."
5214 (list (format "ORG-AGENDA-ERROR: No such org-file %s" file)) 5214 (list (format "ORG-AGENDA-ERROR: No such org-file %s" file))
5215 (with-current-buffer buffer 5215 (with-current-buffer buffer
5216 (unless (derived-mode-p 'org-mode) 5216 (unless (derived-mode-p 'org-mode)
5217 (error "Agenda file %s is not in `org-mode'" file)) 5217 (error "Agenda file %s is not in Org mode" file))
5218 (setq org-agenda-buffer (or org-agenda-buffer buffer)) 5218 (setq org-agenda-buffer (or org-agenda-buffer buffer))
5219 (setf org-agenda-current-date date) 5219 (setf org-agenda-current-date date)
5220 (save-excursion 5220 (save-excursion
diff --git a/lisp/org/org-archive.el b/lisp/org/org-archive.el
index a78113493b6..755de7fdac2 100644
--- a/lisp/org/org-archive.el
+++ b/lisp/org/org-archive.el
@@ -429,7 +429,7 @@ Archiving time is retained in the ARCHIVE_TIME node property."
429 (looking-at org-outline-regexp) 429 (looking-at org-outline-regexp)
430 (setq leader (match-string 0) 430 (setq leader (match-string 0)
431 level (funcall outline-level)) 431 level (funcall outline-level))
432 (setq pos (point)) 432 (setq pos (point-marker))
433 (condition-case nil 433 (condition-case nil
434 (outline-up-heading 1 t) 434 (outline-up-heading 1 t)
435 (error (setq e (point-max)) (goto-char (point-min)))) 435 (error (setq e (point-max)) (goto-char (point-min))))
diff --git a/lisp/org/org-capture.el b/lisp/org/org-capture.el
index 24fc0a61f0b..cb1741f2f91 100644
--- a/lisp/org/org-capture.el
+++ b/lisp/org/org-capture.el
@@ -927,18 +927,24 @@ Store them in the capture property list."
927 (_ (error "Cannot find target ID \"%s\"" id)))) 927 (_ (error "Cannot find target ID \"%s\"" id))))
928 (`(file+headline ,path ,headline) 928 (`(file+headline ,path ,headline)
929 (set-buffer (org-capture-target-buffer path)) 929 (set-buffer (org-capture-target-buffer path))
930 ;; Org expects the target file to be in Org mode, otherwise
931 ;; it throws an error. However, the default notes files
932 ;; should work out of the box. In this case, we switch it to
933 ;; Org mode.
930 (unless (derived-mode-p 'org-mode) 934 (unless (derived-mode-p 'org-mode)
931 (error "Target buffer \"%s\" for file+headline not in Org mode" 935 (org-display-warning
932 (current-buffer))) 936 (format "Capture requirement: switching buffer %S to Org mode"
937 (current-buffer)))
938 (org-mode))
933 (org-capture-put-target-region-and-position) 939 (org-capture-put-target-region-and-position)
934 (widen) 940 (widen)
935 (goto-char (point-min)) 941 (goto-char (point-min))
936 (if (re-search-forward (format org-complex-heading-regexp-format 942 (if (re-search-forward (format org-complex-heading-regexp-format
937 (regexp-quote headline)) 943 (regexp-quote headline))
938 nil t) 944 nil t)
939 (goto-char (line-beginning-position)) 945 (beginning-of-line)
940 (goto-char (point-max)) 946 (goto-char (point-max))
941 (or (bolp) (insert "\n")) 947 (unless (bolp) (insert "\n"))
942 (insert "* " headline "\n") 948 (insert "* " headline "\n")
943 (beginning-of-line 0))) 949 (beginning-of-line 0)))
944 (`(file+olp ,path . ,outline-path) 950 (`(file+olp ,path . ,outline-path)
diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el
index fd076de34e2..9bc1f0c06d7 100644
--- a/lisp/org/org-clock.el
+++ b/lisp/org/org-clock.el
@@ -1456,8 +1456,7 @@ The time is always returned as UTC."
1456 (day (nth 3 dt))) 1456 (day (nth 3 dt)))
1457 (if (< hour org-extend-today-until) (setf (nth 3 dt) (1- day))) 1457 (if (< hour org-extend-today-until) (setf (nth 3 dt) (1- day)))
1458 (setf (nth 2 dt) org-extend-today-until) 1458 (setf (nth 2 dt) org-extend-today-until)
1459 (setq dt (append (list 0 0) (nthcdr 2 dt) '(t))) 1459 (apply #'encode-time (append (list 0 0) (nthcdr 2 dt)))))
1460 (apply #'encode-time dt)))
1461 ((or (equal cmt "all") 1460 ((or (equal cmt "all")
1462 (and (or (not cmt) (equal cmt "auto")) 1461 (and (or (not cmt) (equal cmt "auto"))
1463 (not lr))) 1462 (not lr)))
diff --git a/lisp/org/org-compat.el b/lisp/org/org-compat.el
index 138e14e30b1..f32fcd1783e 100644
--- a/lisp/org/org-compat.el
+++ b/lisp/org/org-compat.el
@@ -32,12 +32,12 @@
32(require 'cl-lib) 32(require 'cl-lib)
33(require 'org-macs) 33(require 'org-macs)
34 34
35(declare-function org-at-table.el-p "org" (&optional table-type)) 35(declare-function org-at-table.el-p "org" ())
36(declare-function org-element-at-point "org-element" ()) 36(declare-function org-element-at-point "org-element" ())
37(declare-function org-element-type "org-element" (element)) 37(declare-function org-element-type "org-element" (element))
38(declare-function org-end-of-subtree "org" (&optional invisible-ok to-heading)) 38(declare-function org-end-of-subtree "org" (&optional invisible-ok to-heading))
39(declare-function org-link-set-parameters "org" (type &rest rest)) 39(declare-function org-link-set-parameters "org" (type &rest rest))
40(declare-function org-table-end (&optional table-type)) 40(declare-function org-table-end "org-table" (&optional table-type))
41(declare-function outline-next-heading "outline" ()) 41(declare-function outline-next-heading "outline" ())
42(declare-function table--at-cell-p "table" (position &optional object at-column)) 42(declare-function table--at-cell-p "table" (position &optional object at-column))
43 43
diff --git a/lisp/org/org-duration.el b/lisp/org/org-duration.el
index 356a0343ea2..1c962ba94e0 100644
--- a/lisp/org/org-duration.el
+++ b/lisp/org/org-duration.el
@@ -51,7 +51,7 @@
51 51
52(require 'cl-lib) 52(require 'cl-lib)
53(require 'org-macs) 53(require 'org-macs)
54(declare-function org-trim "org-trim" (s &optional keep-lead)) 54(declare-function org-trim "org" (s &optional keep-lead))
55 55
56 56
57;;; Public variables 57;;; Public variables
@@ -99,8 +99,8 @@ sure to call the following command:
99 :set (lambda (var val) (set-default var val) (org-duration-set-regexps)) 99 :set (lambda (var val) (set-default var val) (org-duration-set-regexps))
100 :initialize 'custom-initialize-changed 100 :initialize 'custom-initialize-changed
101 :type '(choice 101 :type '(choice
102 (const :tag "H:MM" 'h:mm) 102 (const :tag "H:MM" h:mm)
103 (const :tag "H:MM:SS" 'h:mm:ss) 103 (const :tag "H:MM:SS" h:mm:ss)
104 (alist :key-type (string :tag "Unit") 104 (alist :key-type (string :tag "Unit")
105 :value-type (number :tag "Modifier")))) 105 :value-type (number :tag "Modifier"))))
106 106
diff --git a/lisp/org/org-footnote.el b/lisp/org/org-footnote.el
index f9d8055648c..4d3f154c257 100644
--- a/lisp/org/org-footnote.el
+++ b/lisp/org/org-footnote.el
@@ -45,7 +45,7 @@
45(declare-function org-element-property "org-element" (property element)) 45(declare-function org-element-property "org-element" (property element))
46(declare-function org-element-type "org-element" (element)) 46(declare-function org-element-type "org-element" (element))
47(declare-function org-end-of-subtree "org" (&optional invisible-ok to-heading)) 47(declare-function org-end-of-subtree "org" (&optional invisible-ok to-heading))
48(declare-function org-fill-paragraph "org" (&optional justify)) 48(declare-function org-fill-paragraph "org" (&optional justify region))
49(declare-function org-in-block-p "org" (names)) 49(declare-function org-in-block-p "org" (names))
50(declare-function org-in-regexp "org" (re &optional nlines visually)) 50(declare-function org-in-regexp "org" (re &optional nlines visually))
51(declare-function org-in-verbatim-emphasis "org" ()) 51(declare-function org-in-verbatim-emphasis "org" ())
diff --git a/lisp/org/org-inlinetask.el b/lisp/org/org-inlinetask.el
index 5b65fab5932..1825b88cdf6 100644
--- a/lisp/org/org-inlinetask.el
+++ b/lisp/org/org-inlinetask.el
@@ -182,24 +182,28 @@ The number of levels is controlled by `org-inlinetask-min-level'."
182 182
183(defun org-inlinetask-goto-end () 183(defun org-inlinetask-goto-end ()
184 "Go to the end of the inline task at point. 184 "Go to the end of the inline task at point.
185Return point." 185 Return point."
186 (save-match-data 186 (save-match-data
187 (beginning-of-line) 187 (beginning-of-line)
188 (let* ((case-fold-search t) 188 (let* ((case-fold-search t)
189 (inlinetask-re (org-inlinetask-outline-regexp)) 189 (inlinetask-re (org-inlinetask-outline-regexp))
190 (task-end-re (concat inlinetask-re "END[ \t]*$"))) 190 (task-end-re (concat inlinetask-re "END[ \t]*$")))
191 (cond 191 (cond
192 ((looking-at task-end-re)) 192 ((looking-at-p task-end-re)
193 ((looking-at inlinetask-re) 193 (forward-line))
194 (forward-line) 194 ((looking-at-p inlinetask-re)
195 (cond 195 (forward-line)
196 ((looking-at task-end-re)) 196 (cond
197 ((looking-at inlinetask-re)) 197 ((looking-at-p task-end-re) (forward-line))
198 ((org-inlinetask-in-task-p) 198 ((looking-at-p inlinetask-re))
199 (re-search-forward inlinetask-re nil t)))) 199 ((org-inlinetask-in-task-p)
200 (t (re-search-forward inlinetask-re nil t))) 200 (re-search-forward inlinetask-re nil t)
201 (end-of-line) 201 (forward-line))
202 (point)))) 202 (t nil)))
203 (t
204 (re-search-forward inlinetask-re nil t)
205 (forward-line)))))
206 (point))
203 207
204(defun org-inlinetask-get-task-level () 208(defun org-inlinetask-get-task-level ()
205 "Get the level of the inline task around. 209 "Get the level of the inline task around.
@@ -330,7 +334,9 @@ This function is meant to be used in `org-cycle-hook'."
330 (org-inlinetask-goto-end))))) 334 (org-inlinetask-goto-end)))))
331 (`children 335 (`children
332 (save-excursion 336 (save-excursion
333 (while (and (outline-next-heading) (org-inlinetask-at-task-p)) 337 (while
338 (or (org-inlinetask-at-task-p)
339 (and (outline-next-heading) (org-inlinetask-at-task-p)))
334 (org-inlinetask-toggle-visibility) 340 (org-inlinetask-toggle-visibility)
335 (org-inlinetask-goto-end)))))) 341 (org-inlinetask-goto-end))))))
336 342
diff --git a/lisp/org/org-pcomplete.el b/lisp/org/org-pcomplete.el
index f0c07938271..a7cc09def4b 100644
--- a/lisp/org/org-pcomplete.el
+++ b/lisp/org/org-pcomplete.el
@@ -41,11 +41,6 @@
41 41
42;;;; Customization variables 42;;;; Customization variables
43 43
44(defgroup org-complete nil
45 "Outline-based notes management and organizer."
46 :tag "Org"
47 :group 'org)
48
49(defvar org-drawer-regexp) 44(defvar org-drawer-regexp)
50(defvar org-property-re) 45(defvar org-property-re)
51(defvar org-current-tag-alist) 46(defvar org-current-tag-alist)
diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el
index 0ba7165abe9..3932671e8b7 100644
--- a/lisp/org/org-table.el
+++ b/lisp/org/org-table.el
@@ -644,17 +644,30 @@ nil When nil, the command tries to be smart and figure out the
644 (org-table-align)))) 644 (org-table-align))))
645 645
646;;;###autoload 646;;;###autoload
647(defun org-table-import (file arg) 647(defun org-table-import (file separator)
648 "Import FILE as a table. 648 "Import FILE as a table.
649The file is assumed to be tab-separated. Such files can be produced by most 649
650spreadsheet and database applications. If no tabs (at least one per line) 650The command tries to be smart and figure out the separator in the
651are found, lines will be split on whitespace into fields." 651following way:
652
653 - when each line contains a TAB, assume TAB-separated material
654 - when each line contains a comma, assume CSV material
655 - else, assume one or more SPACE characters as separator.
656
657When non-nil, SEPARATOR specifies the field separator in the
658lines. It can have the following values:
659
660(4) Use the comma as a field separator
661(16) Use a TAB as field separator
662(64) Prompt for a regular expression as field separator
663integer When a number, use that many spaces, or a TAB, as field separator
664regexp When a regular expression, use it to match the separator."
652 (interactive "f\nP") 665 (interactive "f\nP")
653 (or (bolp) (newline)) 666 (unless (bolp) (insert "\n"))
654 (let ((beg (point)) 667 (let ((beg (point))
655 (pm (point-max))) 668 (pm (point-max)))
656 (insert-file-contents file) 669 (insert-file-contents file)
657 (org-table-convert-region beg (+ (point) (- (point-max) pm)) arg))) 670 (org-table-convert-region beg (+ (point) (- (point-max) pm)) separator)))
658 671
659 672
660;;;###autoload 673;;;###autoload
@@ -1166,7 +1179,7 @@ to a number. In the case of a timestamp, increment by days."
1166 (- (org-time-string-to-absolute txt) 1179 (- (org-time-string-to-absolute txt)
1167 (org-time-string-to-absolute txt-up))) 1180 (org-time-string-to-absolute txt-up)))
1168 ((string-match org-ts-regexp3 txt) 1) 1181 ((string-match org-ts-regexp3 txt) 1)
1169 ((string-match "\\([-+]\\)?[0-9]+\\(?:\.[0-9]+\\)?" txt-up) 1182 ((string-match "\\([-+]\\)?\\(?:[0-9]+\\)?\\(?:\.[0-9]+\\)?" txt-up)
1170 (- (string-to-number txt) 1183 (- (string-to-number txt)
1171 (string-to-number (match-string 0 txt-up)))) 1184 (string-to-number (match-string 0 txt-up))))
1172 (t 1))) 1185 (t 1)))
@@ -4311,14 +4324,14 @@ FACE, when non-nil, for the highlight."
4311 4324
4312;;;###autoload 4325;;;###autoload
4313(define-minor-mode orgtbl-mode 4326(define-minor-mode orgtbl-mode
4314 "The `org-mode' table editor as a minor mode for use in other modes." 4327 "The Org mode table editor as a minor mode for use in other modes."
4315 :lighter " OrgTbl" :keymap orgtbl-mode-map 4328 :lighter " OrgTbl" :keymap orgtbl-mode-map
4316 (org-load-modules-maybe) 4329 (org-load-modules-maybe)
4317 (cond 4330 (cond
4318 ((derived-mode-p 'org-mode) 4331 ((derived-mode-p 'org-mode)
4319 ;; Exit without error, in case some hook functions calls this 4332 ;; Exit without error, in case some hook functions calls this by
4320 ;; by accident in org-mode. 4333 ;; accident in Org mode.
4321 (message "Orgtbl-mode is not useful in org-mode, command ignored")) 4334 (message "Orgtbl mode is not useful in Org mode, command ignored"))
4322 (orgtbl-mode 4335 (orgtbl-mode
4323 (and (orgtbl-setup) (defun orgtbl-setup () nil)) ;; FIXME: Yuck!?! 4336 (and (orgtbl-setup) (defun orgtbl-setup () nil)) ;; FIXME: Yuck!?!
4324 ;; Make sure we are first in minor-mode-map-alist 4337 ;; Make sure we are first in minor-mode-map-alist
diff --git a/lisp/org/org-version.el b/lisp/org/org-version.el
index 749cbe063e8..8ec120e9b2f 100644
--- a/lisp/org/org-version.el
+++ b/lisp/org/org-version.el
@@ -5,13 +5,13 @@
5(defun org-release () 5(defun org-release ()
6 "The release version of Org. 6 "The release version of Org.
7Inserted by installing Org mode or when a release is made." 7Inserted by installing Org mode or when a release is made."
8 (let ((org-release "9.1.4")) 8 (let ((org-release "9.1.6"))
9 org-release)) 9 org-release))
10;;;###autoload 10;;;###autoload
11(defun org-git-version () 11(defun org-git-version ()
12 "The Git version of org-mode. 12 "The Git version of Org mode.
13Inserted by installing Org or when a release is made." 13Inserted by installing Org or when a release is made."
14 (let ((org-git-version "release_9.1.4-44-gfe7310")) 14 (let ((org-git-version "release_9.1.6-50-g96b33f"))
15 org-git-version)) 15 org-git-version))
16 16
17(provide 'org-version) 17(provide 'org-version)
diff --git a/lisp/org/org-w3m.el b/lisp/org/org-w3m.el
index a3ca4786959..706619c5d2b 100644
--- a/lisp/org/org-w3m.el
+++ b/lisp/org/org-w3m.el
@@ -57,7 +57,7 @@
57 :description (or w3m-current-title w3m-current-url)))) 57 :description (or w3m-current-title w3m-current-url))))
58 58
59(defun org-w3m-copy-for-org-mode () 59(defun org-w3m-copy-for-org-mode ()
60 "Copy current buffer content or active region with `org-mode' style links. 60 "Copy current buffer content or active region with Org style links.
61This will encode `link-title' and `link-location' with 61This will encode `link-title' and `link-location' with
62`org-make-link-string', and insert the transformed test into the kill ring, 62`org-make-link-string', and insert the transformed test into the kill ring,
63so that it can be yanked into an Org buffer with links working correctly." 63so that it can be yanked into an Org buffer with links working correctly."
@@ -94,7 +94,7 @@ so that it can be yanked into an Org buffer with links working correctly."
94 ;; get link title at current point. 94 ;; get link title at current point.
95 (setq link-title (buffer-substring (point) 95 (setq link-title (buffer-substring (point)
96 (org-w3m-get-anchor-end))) 96 (org-w3m-get-anchor-end)))
97 ;; concat `org-mode' style url to `return-content'. 97 ;; concat Org style url to `return-content'.
98 (setq return-content (concat return-content 98 (setq return-content (concat return-content
99 (org-make-link-string 99 (org-make-link-string
100 link-location link-title)))) 100 link-location link-title))))
diff --git a/lisp/org/org.el b/lisp/org/org.el
index 173003d6438..5272061ccc9 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -749,7 +749,7 @@ For export specific modules, see also `org-export-backends'."
749 (const :tag "C panel: Simple routines for us with bad memory" org-panel) 749 (const :tag "C panel: Simple routines for us with bad memory" org-panel)
750 (const :tag "C registry: A registry for Org links" org-registry) 750 (const :tag "C registry: A registry for Org links" org-registry)
751 (const :tag "C screen: Visit screen sessions through Org links" org-screen) 751 (const :tag "C screen: Visit screen sessions through Org links" org-screen)
752 (const :tag "C secretary: Team management with org-mode" org-secretary) 752 (const :tag "C secretary: Team management with Org" org-secretary)
753 (const :tag "C sqlinsert: Convert Org tables to SQL insertions" orgtbl-sqlinsert) 753 (const :tag "C sqlinsert: Convert Org tables to SQL insertions" orgtbl-sqlinsert)
754 (const :tag "C toc: Table of contents for Org buffer" org-toc) 754 (const :tag "C toc: Table of contents for Org buffer" org-toc)
755 (const :tag "C track: Keep up with Org mode development" org-track) 755 (const :tag "C track: Keep up with Org mode development" org-track)
@@ -1710,7 +1710,7 @@ doesn't specify any upper case character."
1710 :type '(choice 1710 :type '(choice
1711 (const :tag "Case-sensitive" nil) 1711 (const :tag "Case-sensitive" nil)
1712 (const :tag "Case-insensitive" t) 1712 (const :tag "Case-insensitive" t)
1713 (const :tag "Case-insensitive for lower case searches only" 'smart))) 1713 (const :tag "Case-insensitive for lower case searches only" smart)))
1714 1714
1715(defcustom org-occur-hook '(org-first-headline-recenter) 1715(defcustom org-occur-hook '(org-first-headline-recenter)
1716 "Hook that is run after `org-occur' has constructed a sparse tree. 1716 "Hook that is run after `org-occur' has constructed a sparse tree.
@@ -4167,7 +4167,10 @@ A string will be inserted as-is in the header of the document."
4167 (list :tag "options/package pair" 4167 (list :tag "options/package pair"
4168 (string :tag "options") 4168 (string :tag "options")
4169 (string :tag "package") 4169 (string :tag "package")
4170 (boolean :tag "Snippet")) 4170 (boolean :tag "Snippet")
4171 (choice
4172 (const :tag "For all compilers" nil)
4173 (repeat :tag "Allowed compiler" string)))
4171 (string :tag "A line of LaTeX")))) 4174 (string :tag "A line of LaTeX"))))
4172 4175
4173(defcustom org-latex-packages-alist nil 4176(defcustom org-latex-packages-alist nil
@@ -4870,7 +4873,7 @@ After a match, the following groups carry important information:
4870 ("beamer" org-startup-with-beamer-mode t) 4873 ("beamer" org-startup-with-beamer-mode t)
4871 ("entitiespretty" org-pretty-entities t) 4874 ("entitiespretty" org-pretty-entities t)
4872 ("entitiesplain" org-pretty-entities nil)) 4875 ("entitiesplain" org-pretty-entities nil))
4873 "Variable associated with STARTUP options for org-mode. 4876 "Variable associated with STARTUP options for Org.
4874Each element is a list of three items: the startup options (as written 4877Each element is a list of three items: the startup options (as written
4875in the #+STARTUP line), the corresponding variable, and the value to set 4878in the #+STARTUP line), the corresponding variable, and the value to set
4876this variable to if the option is found. An optional forth element PUSH 4879this variable to if the option is found. An optional forth element PUSH
@@ -5934,7 +5937,7 @@ by a #."
5934(defun org-fontify-meta-lines-and-blocks (limit) 5937(defun org-fontify-meta-lines-and-blocks (limit)
5935 (condition-case nil 5938 (condition-case nil
5936 (org-fontify-meta-lines-and-blocks-1 limit) 5939 (org-fontify-meta-lines-and-blocks-1 limit)
5937 (error (message "org-mode fontification error in %S at %d" 5940 (error (message "Org mode fontification error in %S at %d"
5938 (current-buffer) 5941 (current-buffer)
5939 (line-number-at-pos))))) 5942 (line-number-at-pos)))))
5940 5943
@@ -6925,6 +6928,7 @@ If POS is nil, use `point' instead."
6925 (org-list-set-item-visibility (point-at-bol) struct 'children) 6928 (org-list-set-item-visibility (point-at-bol) struct 'children)
6926 (org-show-entry) 6929 (org-show-entry)
6927 (org-with-limited-levels (org-show-children)) 6930 (org-with-limited-levels (org-show-children))
6931 (org-show-set-visibility 'canonical)
6928 ;; FIXME: This slows down the func way too much. 6932 ;; FIXME: This slows down the func way too much.
6929 ;; How keep drawers hidden in subtree anyway? 6933 ;; How keep drawers hidden in subtree anyway?
6930 ;; (when (memq 'org-cycle-hide-drawers org-cycle-hook) 6934 ;; (when (memq 'org-cycle-hide-drawers org-cycle-hook)
@@ -7019,20 +7023,22 @@ With a numeric prefix, show all headlines up to that level."
7019 (save-excursion 7023 (save-excursion
7020 (org-back-to-heading t) 7024 (org-back-to-heading t)
7021 (outline-hide-subtree) 7025 (outline-hide-subtree)
7022 (org-reveal) 7026 (org-reveal))
7023 (cond 7027 (cond
7024 ((equal state "folded") 7028 ((equal state "folded")
7025 (outline-hide-subtree)) 7029 (outline-hide-subtree)
7026 ((equal state "children") 7030 (org-end-of-subtree t t))
7027 (org-show-hidden-entry) 7031 ((equal state "children")
7028 (org-show-children)) 7032 (org-show-hidden-entry)
7029 ((equal state "content") 7033 (org-show-children))
7030 (save-excursion 7034 ((equal state "content")
7031 (save-restriction 7035 (save-excursion
7032 (org-narrow-to-subtree) 7036 (save-restriction
7033 (org-content)))) 7037 (org-narrow-to-subtree)
7034 ((member state '("all" "showall")) 7038 (org-content)))
7035 (outline-show-subtree))))))) 7039 (org-end-of-subtree t t))
7040 ((member state '("all" "showall"))
7041 (outline-show-subtree))))))
7036 (unless no-cleanup 7042 (unless no-cleanup
7037 (org-cycle-hide-archived-subtrees 'all) 7043 (org-cycle-hide-archived-subtrees 'all)
7038 (org-cycle-hide-drawers 'all) 7044 (org-cycle-hide-drawers 'all)
@@ -7181,11 +7187,12 @@ are at least `org-cycle-separator-lines' empty lines before the headline."
7181 "Return `org-agenda-files' list, plus all open Org files. 7187 "Return `org-agenda-files' list, plus all open Org files.
7182This is useful for operations that need to scan all of a user's 7188This is useful for operations that need to scan all of a user's
7183open and agenda-wise Org files." 7189open and agenda-wise Org files."
7184 (let ((files (mapcar 'expand-file-name (org-agenda-files)))) 7190 (let ((files (mapcar #'expand-file-name (org-agenda-files))))
7185 (dolist (buf (buffer-list)) 7191 (dolist (buf (buffer-list))
7186 (with-current-buffer buf 7192 (with-current-buffer buf
7187 (when (and (derived-mode-p 'org-mode) (buffer-file-name)) 7193 (when (and (derived-mode-p 'org-mode) (buffer-file-name))
7188 (cl-pushnew (expand-file-name (buffer-file-name)) files)))) 7194 (cl-pushnew (expand-file-name (buffer-file-name)) files
7195 :test #'equal))))
7189 files)) 7196 files))
7190 7197
7191(defsubst org-entry-beginning-position () 7198(defsubst org-entry-beginning-position ()
@@ -9949,20 +9956,24 @@ according to FMT (default from `org-email-link-description-format')."
9949 (reverse slines))) "\n"))))) 9956 (reverse slines))) "\n")))))
9950 (mapconcat #'identity (split-string s) " "))) 9957 (mapconcat #'identity (split-string s) " ")))
9951 9958
9959(defconst org-link-escape-chars
9960 ;;%20 %5B %5D %25
9961 '(?\s ?\[ ?\] ?%)
9962 "List of characters that should be escaped in a link when stored to Org.
9963This is the list that is used for internal purposes.")
9964
9952(defun org-make-link-string (link &optional description) 9965(defun org-make-link-string (link &optional description)
9953 "Make a link with brackets, consisting of LINK and DESCRIPTION." 9966 "Make a link with brackets, consisting of LINK and DESCRIPTION."
9954 (unless (org-string-nw-p link) (error "Empty link")) 9967 (unless (org-string-nw-p link) (error "Empty link"))
9955 (let ((uri (cond ((string-match org-link-types-re link) 9968 (let ((uri (cond ((string-match org-link-types-re link)
9956 (concat (match-string 1 link) 9969 (concat (match-string 1 link)
9957 (org-link-escape (substring link (match-end 1))))) 9970 (org-link-escape (substring link (match-end 1)))))
9958 ;; For readability, url-encode internal links only
9959 ;; when absolutely needed (i.e, when they contain
9960 ;; square brackets). File links however, are
9961 ;; encoded since, e.g., spaces are significant.
9962 ((or (file-name-absolute-p link) 9971 ((or (file-name-absolute-p link)
9963 (string-match-p "\\`\\.\\.?/\\|[][]" link)) 9972 (string-match-p "\\`\\.\\.?/" link))
9964 (org-link-escape link)) 9973 (org-link-escape link))
9965 (t link))) 9974 ;; For readability, do not encode space characters
9975 ;; in fuzzy links.
9976 (t (org-link-escape link (remq ?\s org-link-escape-chars)))))
9966 (description 9977 (description
9967 (and (org-string-nw-p description) 9978 (and (org-string-nw-p description)
9968 ;; Remove brackets from description, as they are fatal. 9979 ;; Remove brackets from description, as they are fatal.
@@ -9973,12 +9984,6 @@ according to FMT (default from `org-email-link-description-format')."
9973 uri 9984 uri
9974 (if description (format "[%s]" description) "")))) 9985 (if description (format "[%s]" description) ""))))
9975 9986
9976(defconst org-link-escape-chars
9977 ;;%20 %5B %5D %25
9978 '(?\s ?\[ ?\] ?%)
9979 "List of characters that should be escaped in a link when stored to Org.
9980This is the list that is used for internal purposes.")
9981
9982(defun org-link-escape (text &optional table merge) 9987(defun org-link-escape (text &optional table merge)
9983 "Return percent escaped representation of TEXT. 9988 "Return percent escaped representation of TEXT.
9984TEXT is a string with the text to escape. 9989TEXT is a string with the text to escape.
@@ -10280,11 +10285,19 @@ Use TAB to complete link prefixes, then RET for type-specific completion support
10280 ;; We are linking to this same file, with a search option 10285 ;; We are linking to this same file, with a search option
10281 (setq link search))))) 10286 (setq link search)))))
10282 10287
10283 ;; Check if we can/should use a relative path. If yes, simplify the link 10288 ;; Check if we can/should use a relative path. If yes, simplify
10289 ;; the link.
10284 (let ((case-fold-search nil)) 10290 (let ((case-fold-search nil))
10285 (when (string-match "\\`\\(file\\|docview\\):" link) 10291 (when (string-match "\\`\\(file\\|docview\\):" link)
10286 (let* ((type (match-string-no-properties 0 link)) 10292 (let* ((type (match-string-no-properties 0 link))
10287 (path (substring-no-properties link (match-end 0))) 10293 (path-start (match-end 0))
10294 (search (and (string-match "::\\(.*\\)\\'" link)
10295 (match-string 1 link)))
10296 (path
10297 (if search
10298 (substring-no-properties
10299 link path-start (match-beginning 0))
10300 (substring-no-properties link (match-end 0))))
10288 (origpath path)) 10301 (origpath path))
10289 (cond 10302 (cond
10290 ((or (eq org-link-file-path-type 'absolute) 10303 ((or (eq org-link-file-path-type 'absolute)
@@ -10305,7 +10318,7 @@ Use TAB to complete link prefixes, then RET for type-specific completion support
10305 (setq path (substring (expand-file-name path) 10318 (setq path (substring (expand-file-name path)
10306 (match-end 0))) 10319 (match-end 0)))
10307 (setq path (abbreviate-file-name (expand-file-name path))))))) 10320 (setq path (abbreviate-file-name (expand-file-name path)))))))
10308 (setq link (concat type path)) 10321 (setq link (concat type path (and search (concat "::" search))))
10309 (when (equal desc origpath) 10322 (when (equal desc origpath)
10310 (setq desc path))))) 10323 (setq desc path)))))
10311 10324
@@ -12185,7 +12198,7 @@ There are two templates for each key, the first uses the original Org syntax,
12185the second uses Emacs Muse-like syntax tags. These Muse-like tags become 12198the second uses Emacs Muse-like syntax tags. These Muse-like tags become
12186the default when the /org-mtags.el/ module has been loaded. See also the 12199the default when the /org-mtags.el/ module has been loaded. See also the
12187variable `org-mtags-prefer-muse-templates'." 12200variable `org-mtags-prefer-muse-templates'."
12188 :group 'org-completion 12201 :group 'org-edit-structure
12189 :type '(repeat 12202 :type '(repeat
12190 (list 12203 (list
12191 (string :tag "Key") 12204 (string :tag "Key")
@@ -12377,7 +12390,7 @@ When called through ELisp, arg is also interpreted in the following way:
12377 (or (looking-at (concat " +" org-todo-regexp "\\( +\\|[ \t]*$\\)")) 12390 (or (looking-at (concat " +" org-todo-regexp "\\( +\\|[ \t]*$\\)"))
12378 (looking-at "\\(?: *\\|[ \t]*$\\)")) 12391 (looking-at "\\(?: *\\|[ \t]*$\\)"))
12379 (let* ((match-data (match-data)) 12392 (let* ((match-data (match-data))
12380 (startpos (point-at-bol)) 12393 (startpos (copy-marker (line-beginning-position)))
12381 (logging (save-match-data (org-entry-get nil "LOGGING" t t))) 12394 (logging (save-match-data (org-entry-get nil "LOGGING" t t)))
12382 (org-log-done org-log-done) 12395 (org-log-done org-log-done)
12383 (org-log-repeat org-log-repeat) 12396 (org-log-repeat org-log-repeat)
diff --git a/lisp/org/ox-beamer.el b/lisp/org/ox-beamer.el
index e17087b43c7..15b78dcdbce 100644
--- a/lisp/org/ox-beamer.el
+++ b/lisp/org/ox-beamer.el
@@ -174,11 +174,11 @@ through `org-beamer-environments-extra' variable.")
174 ("quotation" "q" "\\begin{quotation}%a %% %h" "\\end{quotation}") 174 ("quotation" "q" "\\begin{quotation}%a %% %h" "\\end{quotation}")
175 ("quote" "Q" "\\begin{quote}%a %% %h" "\\end{quote}") 175 ("quote" "Q" "\\begin{quote}%a %% %h" "\\end{quote}")
176 ("structureenv" "s" "\\begin{structureenv}%a %% %h" "\\end{structureenv}") 176 ("structureenv" "s" "\\begin{structureenv}%a %% %h" "\\end{structureenv}")
177 ("theorem" "t" "\\begin{theorem}%a%U" "\\end{theorem}") 177 ("theorem" "t" "\\begin{theorem}%a[%h]" "\\end{theorem}")
178 ("definition" "d" "\\begin{definition}%a%U" "\\end{definition}") 178 ("definition" "d" "\\begin{definition}%a[%h]" "\\end{definition}")
179 ("example" "e" "\\begin{example}%a%U" "\\end{example}") 179 ("example" "e" "\\begin{example}%a[%h]" "\\end{example}")
180 ("exampleblock" "E" "\\begin{exampleblock}%a{%h}" "\\end{exampleblock}") 180 ("exampleblock" "E" "\\begin{exampleblock}%a{%h}" "\\end{exampleblock}")
181 ("proof" "p" "\\begin{proof}%a%U" "\\end{proof}") 181 ("proof" "p" "\\begin{proof}%a[%h]" "\\end{proof}")
182 ("beamercolorbox" "o" "\\begin{beamercolorbox}%o{%h}" "\\end{beamercolorbox}")) 182 ("beamercolorbox" "o" "\\begin{beamercolorbox}%o{%h}" "\\end{beamercolorbox}"))
183 "Environments triggered by properties in Beamer export. 183 "Environments triggered by properties in Beamer export.
184These are the defaults - for user definitions, see 184These are the defaults - for user definitions, see
diff --git a/lisp/org/ox-latex.el b/lisp/org/ox-latex.el
index 2dce7bc29bf..a656e065b94 100644
--- a/lisp/org/ox-latex.el
+++ b/lisp/org/ox-latex.el
@@ -2180,19 +2180,16 @@ contextual information."
2180 (nth (1- level) '("i" "ii" "iii" "iv")) 2180 (nth (1- level) '("i" "ii" "iii" "iv"))
2181 (1- count))))) 2181 (1- count)))))
2182 (checkbox (cl-case (org-element-property :checkbox item) 2182 (checkbox (cl-case (org-element-property :checkbox item)
2183 (on "$\\boxtimes$ ") 2183 (on "$\\boxtimes$")
2184 (off "$\\square$ ") 2184 (off "$\\square$")
2185 (trans "$\\boxminus$ "))) 2185 (trans "$\\boxminus$")))
2186 (tag (let ((tag (org-element-property :tag item))) 2186 (tag (let ((tag (org-element-property :tag item)))
2187 ;; Check-boxes must belong to the tag. 2187 (and tag (org-export-data tag info)))))
2188 (and tag (format "[{%s}] "
2189 (concat checkbox
2190 (org-export-data tag info)))))))
2191 (concat counter 2188 (concat counter
2192 "\\item" 2189 "\\item"
2193 (cond 2190 (cond
2194 (tag) 2191 ((and checkbox tag) (format "[{%s %s}] " checkbox tag))
2195 (checkbox (concat " " checkbox)) 2192 ((or checkbox tag) (format "[{%s}] " (or checkbox tag)))
2196 ;; Without a tag or a check-box, if CONTENTS starts with 2193 ;; Without a tag or a check-box, if CONTENTS starts with
2197 ;; an opening square bracket, add "\relax" to "\item", 2194 ;; an opening square bracket, add "\relax" to "\item",
2198 ;; unless the brackets comes from an initial export 2195 ;; unless the brackets comes from an initial export
diff --git a/lisp/org/ox-md.el b/lisp/org/ox-md.el
index a90a29ff029..c4da8fcb145 100644
--- a/lisp/org/ox-md.el
+++ b/lisp/org/ox-md.el
@@ -500,14 +500,15 @@ TEXT is the string to transcode. INFO is a plist holding
500contextual information." 500contextual information."
501 (when (plist-get info :with-smart-quotes) 501 (when (plist-get info :with-smart-quotes)
502 (setq text (org-export-activate-smart-quotes text :html info))) 502 (setq text (org-export-activate-smart-quotes text :html info)))
503 ;; The below series of replacements in `text' is order sensitive.
504 ;; Protect `, *, _, and \
505 (setq text (replace-regexp-in-string "[`*_\\]" "\\\\\\&" text))
503 ;; Protect ambiguous #. This will protect # at the beginning of 506 ;; Protect ambiguous #. This will protect # at the beginning of
504 ;; a line, but not at the beginning of a paragraph. See 507 ;; a line, but not at the beginning of a paragraph. See
505 ;; `org-md-paragraph'. 508 ;; `org-md-paragraph'.
506 (setq text (replace-regexp-in-string "\n#" "\n\\\\#" text)) 509 (setq text (replace-regexp-in-string "\n#" "\n\\\\#" text))
507 ;; Protect ambiguous ! 510 ;; Protect ambiguous !
508 (setq text (replace-regexp-in-string "\\(!\\)\\[" "\\\\!" text nil nil 1)) 511 (setq text (replace-regexp-in-string "\\(!\\)\\[" "\\\\!" text nil nil 1))
509 ;; Protect `, *, _ and \
510 (setq text (replace-regexp-in-string "[`*_\\]" "\\\\\\&" text))
511 ;; Handle special strings, if required. 512 ;; Handle special strings, if required.
512 (when (plist-get info :with-special-strings) 513 (when (plist-get info :with-special-strings)
513 (setq text (org-html-convert-special-strings text))) 514 (setq text (org-html-convert-special-strings text)))
diff --git a/lisp/org/ox-odt.el b/lisp/org/ox-odt.el
index a7f8e045161..e0c51662d10 100644
--- a/lisp/org/ox-odt.el
+++ b/lisp/org/ox-odt.el
@@ -721,16 +721,17 @@ nil Ignore math snippets.
721 imagemagick to convert pdf files to png files. 721 imagemagick to convert pdf files to png files.
722`mathjax' Do MathJax preprocessing and arrange for MathJax.js to 722`mathjax' Do MathJax preprocessing and arrange for MathJax.js to
723 be loaded. 723 be loaded.
724t Synonym for `mathjax'." 724
725Any other symbol is a synonym for `mathjax'."
725 :group 'org-export-odt 726 :group 'org-export-odt
726 :version "24.4" 727 :version "24.4"
727 :package-version '(Org . "8.0") 728 :package-version '(Org . "8.0")
728 :type '(choice 729 :type '(choice
729 (const :tag "Do not process math in any way" nil) 730 (const :tag "Do not process math in any way" nil)
731 (const :tag "Leave math verbatim" verbatim)
730 (const :tag "Use dvipng to make images" dvipng) 732 (const :tag "Use dvipng to make images" dvipng)
731 (const :tag "Use imagemagick to make images" imagemagick) 733 (const :tag "Use imagemagick to make images" imagemagick)
732 (const :tag "Use MathJax to display math" mathjax) 734 (other :tag "Use MathJax to display math" mathjax)))
733 (const :tag "Leave math verbatim" verbatim)))
734 735
735 736
736;;;; Links 737;;;; Links
diff --git a/lisp/org/ox-publish.el b/lisp/org/ox-publish.el
index 15c9e942b7f..5deb7c54e71 100644
--- a/lisp/org/ox-publish.el
+++ b/lisp/org/ox-publish.el
@@ -57,10 +57,10 @@ Every function in this hook will be called with two arguments:
57the name of the original file and the name of the file 57the name of the original file and the name of the file
58produced.") 58produced.")
59 59
60(defgroup org-publish nil 60(defgroup org-export-publish nil
61 "Options for publishing a set of files." 61 "Options for publishing a set of files."
62 :tag "Org Publishing" 62 :tag "Org Publishing"
63 :group 'org) 63 :group 'org-export)
64 64
65(defcustom org-publish-project-alist nil 65(defcustom org-publish-project-alist nil
66 "Association list to control publishing behavior. 66 "Association list to control publishing behavior.
diff --git a/lisp/org/ox.el b/lisp/org/ox.el
index 1b52f3968f7..7bdac4f290d 100644
--- a/lisp/org/ox.el
+++ b/lisp/org/ox.el
@@ -3699,7 +3699,9 @@ the communication channel used for export, as a plist."
3699 :translate-alist all-transcoders 3699 :translate-alist all-transcoders
3700 :exported-data (make-hash-table :test #'eq :size 401))))) 3700 :exported-data (make-hash-table :test #'eq :size 401)))))
3701 ;; `:internal-references' are shared across back-ends. 3701 ;; `:internal-references' are shared across back-ends.
3702 (prog1 (funcall transcoder data contents new-info) 3702 (prog1 (if (eq type 'plain-text)
3703 (funcall transcoder data new-info)
3704 (funcall transcoder data contents new-info))
3703 (plist-put info :internal-references 3705 (plist-put info :internal-references
3704 (plist-get new-info :internal-references))))))) 3706 (plist-get new-info :internal-references)))))))
3705 3707
diff --git a/lisp/term.el b/lisp/term.el
index c64c64e6ecd..20719987a06 100644
--- a/lisp/term.el
+++ b/lisp/term.el
@@ -2021,16 +2021,13 @@ After the process output mark, sends all text from the process mark to
2021point as input to the process. Before the process output mark, calls value 2021point as input to the process. Before the process output mark, calls value
2022of variable `term-get-old-input' to retrieve old input, copies it to the 2022of variable `term-get-old-input' to retrieve old input, copies it to the
2023process mark, and sends it. A terminal newline is also inserted into the 2023process mark, and sends it. A terminal newline is also inserted into the
2024buffer and sent to the process. The list of function names contained in the 2024buffer and sent to the process. The functions in `term-input-filter-functions'
2025value of `term-input-filter-functions' is called on the input before sending 2025are called on the input before sending it.
2026it. The input is entered into the input history ring, if the value of variable 2026
2027`term-input-filter' returns non-nil when called on the input.
2028
2029Any history reference may be expanded depending on the value of the variable
2030`term-input-autoexpand'. The list of function names contained in the value
2031of `term-input-filter-functions' is called on the input before sending it.
2032The input is entered into the input history ring, if the value of variable 2027The input is entered into the input history ring, if the value of variable
2033`term-input-filter' returns non-nil when called on the input. 2028`term-input-filter' returns non-nil when called on the input. Any history
2029reference may be expanded depending on the value of the variable
2030`term-input-autoexpand'.
2034 2031
2035If variable `term-eol-on-send' is non-nil, then point is moved to the 2032If variable `term-eol-on-send' is non-nil, then point is moved to the
2036end of line before sending the input. 2033end of line before sending the input.
diff --git a/test/lisp/emacs-lisp/shadow-tests.el b/test/lisp/emacs-lisp/shadow-tests.el
index 9d4969fe8bb..f0aa1310bc4 100644
--- a/test/lisp/emacs-lisp/shadow-tests.el
+++ b/test/lisp/emacs-lisp/shadow-tests.el
@@ -33,7 +33,7 @@
33 33
34(ert-deftest shadow-case-insensitive () 34(ert-deftest shadow-case-insensitive ()
35 "Test shadowing for case insensitive filenames." 35 "Test shadowing for case insensitive filenames."
36 ;; Override `file-name-case-insentive-p' so we test the same thing 36 ;; Override `file-name-case-insensitive-p' so we test the same thing
37 ;; regardless of what file system we're running on. 37 ;; regardless of what file system we're running on.
38 (cl-letf (((symbol-function 'file-name-case-insensitive-p) (lambda (_f) t))) 38 (cl-letf (((symbol-function 'file-name-case-insensitive-p) (lambda (_f) t)))
39 (should (equal (list (expand-file-name "p1/foo" shadow-tests-data-directory) 39 (should (equal (list (expand-file-name "p1/foo" shadow-tests-data-directory)