diff options
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 |
| 83 | Read a number @var{n} and move to line @var{n} in the most recently | 83 | Read a number @var{n} and move to line @var{n} in the most recently |
| 84 | selected buffer other than the current buffer. | 84 | selected 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 |
| 96 | history commands (@pxref{Minibuffer}). Note that @kbd{C-x b}, and | 96 | history commands (@pxref{Minibuffer}). Note that @kbd{C-x b}, and |
| 97 | related commands, use @dfn{permissive completion with confirmation} for | 97 | related commands, use @dfn{permissive completion with confirmation} |
| 98 | minibuffer completion: if you type @key{RET} immediately after | 98 | for minibuffer completion: if you type @key{RET} when the minibuffer |
| 99 | completing up to a nonexistent buffer name, Emacs prints | 99 | text names a nonexistent buffer, Emacs prints @samp{[Confirm]} and you |
| 100 | @samp{[Confirm]} and you must type a second @key{RET} to submit that | 100 | must type a second @key{RET} to submit that buffer name. |
| 101 | buffer name. @xref{Completion Exit}, for details. For other | 101 | @xref{Completion Exit}, for details. For other completion options and |
| 102 | completion options and features, see @ref{Completion Options}. | 102 | features, 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 |
| 105 | new, empty buffer that is not visiting any file, and selects it for | 105 | new, 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} |
| 129 | for a buffer name using the minibuffer, displays that buffer in | 129 | (@code{switch-to-buffer-other-window}). This prompts for a buffer |
| 130 | another window, and selects that window. | 130 | name using the minibuffer, displays that buffer in another window, and |
| 131 | selects 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}) |
| 135 | prompts for a buffer name, displays that buffer in another frame, and | 136 | prompts for a buffer name, displays that buffer in another frame |
| 136 | selects that frame. If the buffer is already being shown in a window | 137 | (@pxref{Frames}), and selects that frame. If the buffer is already |
| 137 | on another frame, Emacs selects that window and frame instead of | 138 | being shown in a window on another frame, Emacs selects that window |
| 138 | creating a new frame. | 139 | and 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 |
| 141 | b} commands get the window and/or frame to display in. | 142 | b} 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 |
| 221 | Toggle read-only status of buffer (@code{read-only-mode}). | 222 | Toggle 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} |
| 223 | Change the name of the current buffer. | 224 | Change the name of the current buffer. |
| 224 | @item M-x rename-uniquely | 225 | @item M-x rename-uniquely |
| 225 | Rename the current buffer by adding @samp{<@var{number}>} to the end. | 226 | Rename the current buffer by adding @samp{<@var{number}>} to the end. |
| @@ -234,8 +235,9 @@ Scroll through buffer @var{buffer}. @xref{View Mode}. | |||
| 234 | its contents are not allowed. The mode line indicates read-only | 235 | its contents are not allowed. The mode line indicates read-only |
| 235 | buffers with @samp{%%} or @samp{%*} near the left margin. @xref{Mode | 236 | buffers with @samp{%%} or @samp{%*} near the left margin. @xref{Mode |
| 236 | Line}. Read-only buffers are usually made by subsystems such as Dired | 237 | Line}. Read-only buffers are usually made by subsystems such as Dired |
| 237 | and Rmail that have special commands to operate on the text; also by | 238 | and Rmail that have special commands to operate on the text. Visiting |
| 238 | visiting a file whose access control says you cannot write it. | 239 | a file whose access control says you cannot write it also makes the |
| 240 | buffer 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} | |||
| 282 | the buffers you no longer need. (Some other editors call this | 284 | the buffers you no longer need. (Some other editors call this |
| 283 | operation @dfn{close}, and talk about ``closing the buffer'' or | 285 | operation @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 |
| 285 | systems, killing a buffer releases its space back to the operating | 287 | systems, killing a buffer releases the memory Emacs used for the buffer |
| 286 | system so that other programs can use it. Here are some commands for | 288 | back to the operating system so that other programs can use it. Here |
| 287 | killing buffers: | 289 | are 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} |
| 291 | Kill buffer @var{bufname} (@code{kill-buffer}). | 293 | Kill buffer @var{buffer} (@code{kill-buffer}). |
| 292 | @item M-x kill-some-buffers | 294 | @item M-x kill-some-buffers |
| 293 | Offer to kill each buffer, one by one. | 295 | Offer 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 |
| 310 | by one. An answer of @kbd{y} means to kill the buffer, just like | 312 | by 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 |
| 312 | with a space, which are used internally by Emacs. | 314 | with 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 | |||
| 335 | ordinary buffer is killed if it has not been displayed for three days; | 337 | ordinary buffer is killed if it has not been displayed for three days; |
| 336 | however, you can specify certain buffers that should never be killed | 338 | however, you can specify certain buffers that should never be killed |
| 337 | automatically, and others that should be killed if they have been unused | 339 | automatically, and others that should be killed if they have been unused |
| 338 | for a mere hour. | 340 | for a mere hour. These defaults, and other aspects of this command's |
| 341 | behavior, can be controlled by customizing several options described | ||
| 342 | in 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)} |
| 412 | Remove all flags from the current line, and move down | 416 | Remove 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 |
| 418 | removing 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)} |
| 424 | Remove a particular flag from all lines | 429 | Remove 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 |
| 431 | character, 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 |
| 435 | The commands for adding or removing flags, @kbd{d}, @kbd{C-d}, @kbd{s} | 442 | The commands for removing flags, @kbd{d} and @kbd{C-d}, accept a |
| 436 | and @kbd{u}, all accept a numeric argument as a repeat count. | 443 | numeric 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 |
| 439 | the current line. They also accept a numeric argument as a repeat | 446 | the 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)} |
| 508 | Bury this line's buffer (@code{Buffer-menu-bury}). | 515 | Bury this line's buffer (@code{Buffer-menu-bury}) (i.e., move it to |
| 516 | the 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'') |
| 729 | provides a different and customizable mouse buffer menu which you may | 737 | provides a different and customizable mouse buffer menu which you may |
| 730 | prefer. It replaces the bindings of @code{mouse-buffer-menu}, | 738 | prefer. It replaces the @code{mouse-buffer-menu} commands, normally |
| 731 | normally on @kbd{C-Down-mouse-1} and @kbd{C-@key{F10}}, and the menu | 739 | bound to @kbd{C-Down-mouse-1} and @kbd{C-@key{F10}}, with its own |
| 732 | bar buffer menu. You can customize the menu in the @code{msb} Custom | 740 | commands, and also modifies the menu-bar buffer menu. You can |
| 733 | group. | 741 | customize 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. | |||
| 135 | typing certain cursor motion commands (such as @kbd{S-@key{RIGHT}}, | 135 | typing 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}. |
| 137 | It sets the mark at point before moving point, but only if there is no | 137 | It sets the mark at point before moving point, but only if there is no |
| 138 | active mark set via shift-selection. The mark set by mouse commands | 138 | active mark set via a previous shift-selection or mouse commands. The |
| 139 | and by shift-selection behaves slightly differently from the usual | 139 | mark set by mouse commands and by shift-selection behaves slightly |
| 140 | mark: any subsequent unshifted cursor motion command deactivates it | 140 | differently from the usual mark: any subsequent unshifted cursor motion |
| 141 | automatically. For details, see @ref{Shift Selection}. | 141 | command deactivates it automatically. For details, see @ref{Shift |
| 142 | Selection}. | ||
| 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 |
| 144 | the mark at the other end of the inserted text, without activating it. | 145 | the 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-@@ |
| 164 | Set mark after end of next word (@code{mark-word}). This does not | 165 | Set mark at the end of the next word (@code{mark-word}). This does not |
| 165 | move point. | 166 | move point. |
| 166 | @item C-M-@@ | 167 | @item C-M-@@ |
| 167 | Set mark after end of following balanced expression | 168 | Set 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 |
| 382 | elsewhere. If you move to another page delimiter with @kbd{C-x [} and | 382 | elsewhere. 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 |
| 384 | delimited once again. The reason @kbd{C-x C-p} includes only the | 384 | delimited once again. Making sure this works as expected is the |
| 385 | following page delimiter in the region is to ensure that. | 385 | reason @kbd{C-x C-p} includes only the following page delimiter in the |
| 386 | region. | ||
| 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, |
| 388 | relative to the current one. Zero means the current page, one | 389 | relative to the current one. Zero means the current page, one means |
| 389 | the next page, and @minus{}1 the previous one. | 390 | the 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 | |||
| 452 | program. | 452 | program. |
| 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 |
| 455 | emergency escape---but there are cases where it won't work, when | 455 | emergency escape---but there are cases where it won't work, when a |
| 456 | system call hangs or when Emacs is stuck in a tight loop in C code. | 456 | system 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 |
| 1228 | fix existing bug reports | 1228 | fix 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. |
| 639 | See the file ORG-NEWS for user-visible changes in Org. | 639 | See 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. |
| 473 | DO NOT MODIFY. See `frameset-filter-alist' for a full description.") | 479 | DO 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. |
| 2480 | If the `default-directory' is different from the containing | 2479 | If the `default-directory' is different from the containing |
| 2481 | file's directory then expand relative links." | 2480 | file'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 | |||
| 58 | point is at the beginning of the Babel block." | 58 | point 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 | ||
| 240 | open('%s', 'w').write( pprint.pformat(main()) )") | 240 | open('%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 | |||
| 76 | If the right hand side of the assignment has a literal value | 74 | If the right hand side of the assignment has a literal value |
| 77 | return that value, otherwise interpret as a reference to an | 75 | return that value, otherwise interpret it as a reference to an |
| 78 | external resource and find its value using | 76 | external resource and find its value using `org-babel-ref-resolve'. |
| 79 | `org-babel-ref-resolve'. Return a list with two elements. The | 77 | |
| 80 | first element of the list will be the name of the variable, and | 78 | Return a list with two elements: the name of the variable, and an |
| 81 | the second will be an emacs-lisp representation of the value of | 79 | Emacs Lisp representation of the value of the variable." |
| 82 | the 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 | 52 | Call \"make\" from this directory to compile the Stan block. |
| 53 | block. When nil, executing Stan blocks dumps the content to a | 53 | When nil, executing Stan blocks dumps the content to a file." |
| 54 | plain 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'. |
| 5070 | This gets rid of the date, the underline under the date, and | 5070 | This gets rid of the date, the underline under the date, and the |
| 5071 | the dummy entry installed by `org-mode' to ensure non-empty diary for each | 5071 | dummy entry installed by Org mode to ensure non-empty diary for |
| 5072 | date. It also removes lines that contain only whitespace." | 5072 | each 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. |
| 185 | Return 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. |
| 649 | The file is assumed to be tab-separated. Such files can be produced by most | 649 | |
| 650 | spreadsheet and database applications. If no tabs (at least one per line) | 650 | The command tries to be smart and figure out the separator in the |
| 651 | are found, lines will be split on whitespace into fields." | 651 | following 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 | |||
| 657 | When non-nil, SEPARATOR specifies the field separator in the | ||
| 658 | lines. 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 | ||
| 663 | integer When a number, use that many spaces, or a TAB, as field separator | ||
| 664 | regexp 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. |
| 7 | Inserted by installing Org mode or when a release is made." | 7 | Inserted 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. |
| 13 | Inserted by installing Org or when a release is made." | 13 | Inserted 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. |
| 61 | This will encode `link-title' and `link-location' with | 61 | This 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, |
| 63 | so that it can be yanked into an Org buffer with links working correctly." | 63 | so 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. |
| 4874 | Each element is a list of three items: the startup options (as written | 4877 | Each element is a list of three items: the startup options (as written |
| 4875 | in the #+STARTUP line), the corresponding variable, and the value to set | 4878 | in the #+STARTUP line), the corresponding variable, and the value to set |
| 4876 | this variable to if the option is found. An optional forth element PUSH | 4879 | this 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. |
| 7182 | This is useful for operations that need to scan all of a user's | 7188 | This is useful for operations that need to scan all of a user's |
| 7183 | open and agenda-wise Org files." | 7189 | open 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. | ||
| 9963 | This 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. | ||
| 9980 | This 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. |
| 9984 | TEXT is a string with the text to escape. | 9989 | TEXT 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, | |||
| 12185 | the second uses Emacs Muse-like syntax tags. These Muse-like tags become | 12198 | the second uses Emacs Muse-like syntax tags. These Muse-like tags become |
| 12186 | the default when the /org-mtags.el/ module has been loaded. See also the | 12199 | the default when the /org-mtags.el/ module has been loaded. See also the |
| 12187 | variable `org-mtags-prefer-muse-templates'." | 12200 | variable `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. |
| 184 | These are the defaults - for user definitions, see | 184 | These 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 | |||
| 500 | contextual information." | 500 | contextual 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. |
| 724 | t Synonym for `mathjax'." | 724 | |
| 725 | Any 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: | |||
| 57 | the name of the original file and the name of the file | 57 | the name of the original file and the name of the file |
| 58 | produced.") | 58 | produced.") |
| 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 | |||
| 2021 | point as input to the process. Before the process output mark, calls value | 2021 | point as input to the process. Before the process output mark, calls value |
| 2022 | of variable `term-get-old-input' to retrieve old input, copies it to the | 2022 | of variable `term-get-old-input' to retrieve old input, copies it to the |
| 2023 | process mark, and sends it. A terminal newline is also inserted into the | 2023 | process mark, and sends it. A terminal newline is also inserted into the |
| 2024 | buffer and sent to the process. The list of function names contained in the | 2024 | buffer and sent to the process. The functions in `term-input-filter-functions' |
| 2025 | value of `term-input-filter-functions' is called on the input before sending | 2025 | are called on the input before sending it. |
| 2026 | it. 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 | |||
| 2029 | Any 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 | ||
| 2031 | of `term-input-filter-functions' is called on the input before sending it. | ||
| 2032 | The input is entered into the input history ring, if the value of variable | 2027 | The 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 |
| 2029 | reference may be expanded depending on the value of the variable | ||
| 2030 | `term-input-autoexpand'. | ||
| 2034 | 2031 | ||
| 2035 | If variable `term-eol-on-send' is non-nil, then point is moved to the | 2032 | If variable `term-eol-on-send' is non-nil, then point is moved to the |
| 2036 | end of line before sending the input. | 2033 | end 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) |