diff options
| author | Rasmus | 2018-03-27 23:34:41 +0200 |
|---|---|---|
| committer | Rasmus | 2018-03-27 23:34:41 +0200 |
| commit | 613c9a5c1f3237fbdc3a3db2341c7c59353d2aa2 (patch) | |
| tree | 7651699ebeb2a2a2d8d1081707d091fbc424e8fb /lisp | |
| parent | 1b075a9e38ca6812417f95ed2272e61d875d9e86 (diff) | |
| download | emacs-613c9a5c1f3237fbdc3a3db2341c7c59353d2aa2.tar.gz emacs-613c9a5c1f3237fbdc3a3db2341c7c59353d2aa2.zip | |
Update Org to v9.1.9
Please note this is a bugfix release. See etc/ORG-NEWS for details.
Diffstat (limited to 'lisp')
102 files changed, 589 insertions, 567 deletions
diff --git a/lisp/org/ob-C.el b/lisp/org/ob-C.el index 092354e9ca6..ff5be349676 100644 --- a/lisp/org/ob-C.el +++ b/lisp/org/ob-C.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Thierry Banel | 6 | ;; Thierry Banel |
| 7 | ;; Keywords: literate programming, reproducible research | 7 | ;; Keywords: literate programming, reproducible research |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
diff --git a/lisp/org/ob-J.el b/lisp/org/ob-J.el index 4aec293afca..87812213eee 100644 --- a/lisp/org/ob-J.el +++ b/lisp/org/ob-J.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Oleh Krehel | 5 | ;; Author: Oleh Krehel |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-R.el b/lisp/org/ob-R.el index 84bb89f6e00..d7e936eba0d 100644 --- a/lisp/org/ob-R.el +++ b/lisp/org/ob-R.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Dan Davison | 6 | ;; Dan Davison |
| 7 | ;; Keywords: literate programming, reproducible research, R, statistics | 7 | ;; Keywords: literate programming, reproducible research, R, statistics |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
diff --git a/lisp/org/ob-asymptote.el b/lisp/org/ob-asymptote.el index 211eab7f29b..84e23648094 100644 --- a/lisp/org/ob-asymptote.el +++ b/lisp/org/ob-asymptote.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-awk.el b/lisp/org/ob-awk.el index 474111f2637..1ee4552eb0f 100644 --- a/lisp/org/ob-awk.el +++ b/lisp/org/ob-awk.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-calc.el b/lisp/org/ob-calc.el index 4ed5dd4be05..387cba210a9 100644 --- a/lisp/org/ob-calc.el +++ b/lisp/org/ob-calc.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-clojure.el b/lisp/org/ob-clojure.el index 852fe08b934..890f60ada8a 100644 --- a/lisp/org/ob-clojure.el +++ b/lisp/org/ob-clojure.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Author: Joel Boehland, Eric Schulte, Oleh Krehel, Frederick Giasson | 5 | ;; Author: Joel Boehland, Eric Schulte, Oleh Krehel, Frederick Giasson |
| 6 | ;; | 6 | ;; |
| 7 | ;; Keywords: literate programming, reproducible research | 7 | ;; Keywords: literate programming, reproducible research |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
diff --git a/lisp/org/ob-comint.el b/lisp/org/ob-comint.el index 32449753a62..e9c6f937b14 100644 --- a/lisp/org/ob-comint.el +++ b/lisp/org/ob-comint.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research, comint | 6 | ;; Keywords: literate programming, reproducible research, comint |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-coq.el b/lisp/org/ob-coq.el index a52044e8ae0..875c794b19a 100644 --- a/lisp/org/ob-coq.el +++ b/lisp/org/ob-coq.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-core.el b/lisp/org/ob-core.el index 0e2e78a6710..5d5faaa6fd0 100644 --- a/lisp/org/ob-core.el +++ b/lisp/org/ob-core.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Authors: Eric Schulte | 5 | ;; Authors: Eric Schulte |
| 6 | ;; Dan Davison | 6 | ;; Dan Davison |
| 7 | ;; Keywords: literate programming, reproducible research | 7 | ;; Keywords: literate programming, reproducible research |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
| @@ -980,13 +980,24 @@ with a prefix argument then this is passed on to | |||
| 980 | (defmacro org-babel-do-in-edit-buffer (&rest body) | 980 | (defmacro org-babel-do-in-edit-buffer (&rest body) |
| 981 | "Evaluate BODY in edit buffer if there is a code block at point. | 981 | "Evaluate BODY in edit buffer if there is a code block at point. |
| 982 | Return t if a code block was found at point, nil otherwise." | 982 | Return t if a code block was found at point, nil otherwise." |
| 983 | `(let ((org-src-window-setup 'switch-invisibly)) | 983 | (declare (debug (body))) |
| 984 | (when (and (org-babel-where-is-src-block-head) | 984 | `(let* ((element (org-element-at-point)) |
| 985 | ;; This function is not supposed to move point. However, | ||
| 986 | ;; `org-edit-src-code' always moves point back into the | ||
| 987 | ;; source block. It is problematic if the point was before | ||
| 988 | ;; the code, e.g., on block's opening line. In this case, | ||
| 989 | ;; we want to restore this location after executing BODY. | ||
| 990 | (outside-position | ||
| 991 | (and (<= (line-beginning-position) | ||
| 992 | (org-element-property :post-affiliated element)) | ||
| 993 | (point-marker))) | ||
| 994 | (org-src-window-setup 'switch-invisibly)) | ||
| 995 | (when (and (org-babel-where-is-src-block-head element) | ||
| 985 | (org-edit-src-code)) | 996 | (org-edit-src-code)) |
| 986 | (unwind-protect (progn ,@body) | 997 | (unwind-protect (progn ,@body) |
| 987 | (org-edit-src-exit)) | 998 | (org-edit-src-exit) |
| 999 | (when outside-position (goto-char outside-position))) | ||
| 988 | t))) | 1000 | t))) |
| 989 | (def-edebug-spec org-babel-do-in-edit-buffer (body)) | ||
| 990 | 1001 | ||
| 991 | (defun org-babel-do-key-sequence-in-edit-buffer (key) | 1002 | (defun org-babel-do-key-sequence-in-edit-buffer (key) |
| 992 | "Read key sequence and execute the command in edit buffer. | 1003 | "Read key sequence and execute the command in edit buffer. |
diff --git a/lisp/org/ob-css.el b/lisp/org/ob-css.el index 8c0b8d75a0a..8cabf2bc789 100644 --- a/lisp/org/ob-css.el +++ b/lisp/org/ob-css.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-ditaa.el b/lisp/org/ob-ditaa.el index 82cc89d0221..9507630ba29 100644 --- a/lisp/org/ob-ditaa.el +++ b/lisp/org/ob-ditaa.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-dot.el b/lisp/org/ob-dot.el index e72dd3cada5..31e0a4f325e 100644 --- a/lisp/org/ob-dot.el +++ b/lisp/org/ob-dot.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-ebnf.el b/lisp/org/ob-ebnf.el index 4e96b211760..8c7c5415e6c 100644 --- a/lisp/org/ob-ebnf.el +++ b/lisp/org/ob-ebnf.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Michael Gauland | 5 | ;; Author: Michael Gauland |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; Version: 1.00 | 8 | ;; Version: 1.00 |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/org/ob-emacs-lisp.el b/lisp/org/ob-emacs-lisp.el index 2dc350629dd..8ea2ec127a6 100644 --- a/lisp/org/ob-emacs-lisp.el +++ b/lisp/org/ob-emacs-lisp.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-eval.el b/lisp/org/ob-eval.el index 44972f95636..2bfaa08a609 100644 --- a/lisp/org/ob-eval.el +++ b/lisp/org/ob-eval.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research, comint | 6 | ;; Keywords: literate programming, reproducible research, comint |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-exp.el b/lisp/org/ob-exp.el index d2c32fac81a..264dc0ed067 100644 --- a/lisp/org/ob-exp.el +++ b/lisp/org/ob-exp.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Authors: Eric Schulte | 5 | ;; Authors: Eric Schulte |
| 6 | ;; Dan Davison | 6 | ;; Dan Davison |
| 7 | ;; Keywords: literate programming, reproducible research | 7 | ;; Keywords: literate programming, reproducible research |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
diff --git a/lisp/org/ob-forth.el b/lisp/org/ob-forth.el index ed14b1873d3..efd5759358c 100644 --- a/lisp/org/ob-forth.el +++ b/lisp/org/ob-forth.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research, forth | 6 | ;; Keywords: literate programming, reproducible research, forth |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-fortran.el b/lisp/org/ob-fortran.el index dad7eda0c72..49e960ff927 100644 --- a/lisp/org/ob-fortran.el +++ b/lisp/org/ob-fortran.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Authors: Sergey Litvinov | 5 | ;; Authors: Sergey Litvinov |
| 6 | ;; Eric Schulte | 6 | ;; Eric Schulte |
| 7 | ;; Keywords: literate programming, reproducible research, fortran | 7 | ;; Keywords: literate programming, reproducible research, fortran |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | ;; | 11 | ;; |
diff --git a/lisp/org/ob-gnuplot.el b/lisp/org/ob-gnuplot.el index 674627b8fa0..b2f491331e8 100644 --- a/lisp/org/ob-gnuplot.el +++ b/lisp/org/ob-gnuplot.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-groovy.el b/lisp/org/ob-groovy.el index 4e10ecd6b1d..565b09754ba 100644 --- a/lisp/org/ob-groovy.el +++ b/lisp/org/ob-groovy.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Miro Bezjak | 5 | ;; Author: Miro Bezjak |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
| @@ -84,12 +84,12 @@ in BODY as elisp." | |||
| 84 | (when session (error "Sessions are not (yet) supported for Groovy")) | 84 | (when session (error "Sessions are not (yet) supported for Groovy")) |
| 85 | (pcase result-type | 85 | (pcase result-type |
| 86 | (`output | 86 | (`output |
| 87 | (let ((src-file (org-babel-temp-file "groovy-"))) | 87 | (let ((src-file (org-babel-temp-file "groovy_"))) |
| 88 | (progn (with-temp-file src-file (insert body)) | 88 | (progn (with-temp-file src-file (insert body)) |
| 89 | (org-babel-eval | 89 | (org-babel-eval |
| 90 | (concat org-babel-groovy-command " " src-file) "")))) | 90 | (concat org-babel-groovy-command " " src-file) "")))) |
| 91 | (`value | 91 | (`value |
| 92 | (let* ((src-file (org-babel-temp-file "groovy-")) | 92 | (let* ((src-file (org-babel-temp-file "groovy_")) |
| 93 | (wrapper (format org-babel-groovy-wrapper-method body))) | 93 | (wrapper (format org-babel-groovy-wrapper-method body))) |
| 94 | (with-temp-file src-file (insert wrapper)) | 94 | (with-temp-file src-file (insert wrapper)) |
| 95 | (let ((raw (org-babel-eval | 95 | (let ((raw (org-babel-eval |
diff --git a/lisp/org/ob-haskell.el b/lisp/org/ob-haskell.el index b19ee6d70fe..e607ee0c55b 100644 --- a/lisp/org/ob-haskell.el +++ b/lisp/org/ob-haskell.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-hledger.el b/lisp/org/ob-hledger.el index 71589034702..727fb1f162a 100644 --- a/lisp/org/ob-hledger.el +++ b/lisp/org/ob-hledger.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Simon Michael | 5 | ;; Author: Simon Michael |
| 6 | ;; Keywords: literate programming, reproducible research, plain text accounting | 6 | ;; Keywords: literate programming, reproducible research, plain text accounting |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-io.el b/lisp/org/ob-io.el index 7c7d9df25ad..4f407cc52c3 100644 --- a/lisp/org/ob-io.el +++ b/lisp/org/ob-io.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Andrzej Lichnerowicz | 5 | ;; Author: Andrzej Lichnerowicz |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-java.el b/lisp/org/ob-java.el index 1f257531831..d6301bff2d5 100644 --- a/lisp/org/ob-java.el +++ b/lisp/org/ob-java.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-js.el b/lisp/org/ob-js.el index 5aa2ed791dc..38c8c39ac96 100644 --- a/lisp/org/ob-js.el +++ b/lisp/org/ob-js.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research, js | 6 | ;; Keywords: literate programming, reproducible research, js |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-keys.el b/lisp/org/ob-keys.el index 3d8e865a029..fc96df47561 100644 --- a/lisp/org/ob-keys.el +++ b/lisp/org/ob-keys.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-latex.el b/lisp/org/ob-latex.el index 4654ba5d3a8..6a963e52f26 100644 --- a/lisp/org/ob-latex.el +++ b/lisp/org/ob-latex.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-ledger.el b/lisp/org/ob-ledger.el index 84f0599a417..2a1331441ae 100644 --- a/lisp/org/ob-ledger.el +++ b/lisp/org/ob-ledger.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric S Fraga | 5 | ;; Author: Eric S Fraga |
| 6 | ;; Keywords: literate programming, reproducible research, accounting | 6 | ;; Keywords: literate programming, reproducible research, accounting |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-lilypond.el b/lisp/org/ob-lilypond.el index b4c4b9a90e4..3d3cc07f135 100644 --- a/lisp/org/ob-lilypond.el +++ b/lisp/org/ob-lilypond.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Martyn Jago | 5 | ;; Author: Martyn Jago |
| 6 | ;; Keywords: babel language, literate programming | 6 | ;; Keywords: babel language, literate programming |
| 7 | ;; Homepage: http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-lilypond.html | 7 | ;; Homepage: https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-lilypond.html |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
| @@ -24,7 +24,7 @@ | |||
| 24 | ;;; Commentary: | 24 | ;;; Commentary: |
| 25 | 25 | ||
| 26 | ;; Installation, ob-lilypond documentation, and examples are available at | 26 | ;; Installation, ob-lilypond documentation, and examples are available at |
| 27 | ;; http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-lilypond.html | 27 | ;; https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-lilypond.html |
| 28 | ;; | 28 | ;; |
| 29 | ;; Lilypond documentation can be found at | 29 | ;; Lilypond documentation can be found at |
| 30 | ;; http://lilypond.org/manuals.html | 30 | ;; http://lilypond.org/manuals.html |
diff --git a/lisp/org/ob-lisp.el b/lisp/org/ob-lisp.el index d4a7c37133d..b846138f7a3 100644 --- a/lisp/org/ob-lisp.el +++ b/lisp/org/ob-lisp.el | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | ;; Eric Schulte | 6 | ;; Eric Schulte |
| 7 | ;; David T. O'Toole <dto@gnu.org> | 7 | ;; David T. O'Toole <dto@gnu.org> |
| 8 | ;; Keywords: literate programming, reproducible research | 8 | ;; Keywords: literate programming, reproducible research |
| 9 | ;; Homepage: http://orgmode.org | 9 | ;; Homepage: https://orgmode.org |
| 10 | 10 | ||
| 11 | ;; This file is part of GNU Emacs. | 11 | ;; This file is part of GNU Emacs. |
| 12 | 12 | ||
diff --git a/lisp/org/ob-lob.el b/lisp/org/ob-lob.el index f103a811856..6af6bf07e84 100644 --- a/lisp/org/ob-lob.el +++ b/lisp/org/ob-lob.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Authors: Eric Schulte | 5 | ;; Authors: Eric Schulte |
| 6 | ;; Dan Davison | 6 | ;; Dan Davison |
| 7 | ;; Keywords: literate programming, reproducible research | 7 | ;; Keywords: literate programming, reproducible research |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
| @@ -79,44 +79,54 @@ if so then run the appropriate source block from the Library." | |||
| 79 | (org-babel-execute-src-block nil info) | 79 | (org-babel-execute-src-block nil info) |
| 80 | t))) | 80 | t))) |
| 81 | 81 | ||
| 82 | (defun org-babel-lob--src-info (name) | 82 | (defun org-babel-lob--src-info (ref) |
| 83 | "Return internal representation for Babel data named NAME. | 83 | "Return internal representation for Babel data referenced as REF. |
| 84 | NAME is a string. This function looks into the current document | 84 | REF is a string. This function looks into the current document |
| 85 | for a Babel call or source block. If none is found, it looks | 85 | for a Babel call or source block. If none is found, it looks |
| 86 | after NAME in the Library of Babel. Eventually, if that also | 86 | after REF in the Library of Babel." |
| 87 | fails, it returns nil." | 87 | (let ((name ref) |
| 88 | ;; During export, look into the pristine copy of the document being | 88 | (file nil)) |
| 89 | ;; exported instead of the current one, which could miss some data. | 89 | ;; Extract the remote file, if specified in the reference. |
| 90 | (with-current-buffer (or org-babel-exp-reference-buffer (current-buffer)) | 90 | (when (string-match "\\`\\(.+\\):\\(.+\\)\\'" ref) |
| 91 | (org-with-wide-buffer | 91 | (setq file (match-string 1 ref)) |
| 92 | (goto-char (point-min)) | 92 | (setq name (match-string 2 ref))) |
| 93 | (catch :found | 93 | ;; During export, look into the pristine copy of the document |
| 94 | (let ((case-fold-search t) | 94 | ;; being exported instead of the current one, which could miss |
| 95 | (regexp (org-babel-named-data-regexp-for-name name))) | 95 | ;; some data. |
| 96 | (while (re-search-forward regexp nil t) | 96 | (with-current-buffer (cond (file (find-file-noselect file t)) |
| 97 | (let ((element (org-element-at-point))) | 97 | (org-babel-exp-reference-buffer) |
| 98 | (when (equal name (org-element-property :name element)) | 98 | (t (current-buffer))) |
| 99 | (throw :found | 99 | (org-with-point-at 1 |
| 100 | (pcase (org-element-type element) | 100 | (catch :found |
| 101 | (`src-block (org-babel-get-src-block-info t element)) | 101 | (let ((case-fold-search t) |
| 102 | (`babel-call (org-babel-lob-get-info element)) | 102 | (regexp (org-babel-named-data-regexp-for-name name))) |
| 103 | ;; Non-executable data found. Since names are | 103 | (while (re-search-forward regexp nil t) |
| 104 | ;; supposed to be unique throughout a document, | 104 | (let ((element (org-element-at-point))) |
| 105 | ;; bail out. | 105 | (when (equal name (org-element-property :name element)) |
| 106 | (_ nil)))))) | 106 | (throw :found |
| 107 | ;; No element named NAME in buffer. Try Library of Babel. | 107 | (pcase (org-element-type element) |
| 108 | (cdr (assoc-string name org-babel-library-of-babel))))))) | 108 | (`src-block (org-babel-get-src-block-info t element)) |
| 109 | (`babel-call (org-babel-lob-get-info element)) | ||
| 110 | ;; Non-executable data found. Since names | ||
| 111 | ;; are supposed to be unique throughout | ||
| 112 | ;; a document, bail out. | ||
| 113 | (_ nil)))))) | ||
| 114 | (cdr (assoc-string ref org-babel-library-of-babel)))))))) | ||
| 109 | 115 | ||
| 110 | ;;;###autoload | 116 | ;;;###autoload |
| 111 | (defun org-babel-lob-get-info (&optional datum) | 117 | (defun org-babel-lob-get-info (&optional datum) |
| 112 | "Return internal representation for Library of Babel function call. | 118 | "Return internal representation for Library of Babel function call. |
| 113 | Consider DATUM, when provided, or element at point. Return nil | 119 | |
| 114 | when not on an appropriate location. Otherwise return a list | 120 | Consider DATUM, when provided, or element at point otherwise. |
| 115 | compatible with `org-babel-get-src-block-info', which see." | 121 | |
| 122 | Return nil when not on an appropriate location. Otherwise return | ||
| 123 | a list compatible with `org-babel-get-src-block-info', which | ||
| 124 | see." | ||
| 116 | (let* ((context (or datum (org-element-context))) | 125 | (let* ((context (or datum (org-element-context))) |
| 117 | (type (org-element-type context))) | 126 | (type (org-element-type context)) |
| 127 | (reference (org-element-property :call context))) | ||
| 118 | (when (memq type '(babel-call inline-babel-call)) | 128 | (when (memq type '(babel-call inline-babel-call)) |
| 119 | (pcase (org-babel-lob--src-info (org-element-property :call context)) | 129 | (pcase (org-babel-lob--src-info reference) |
| 120 | (`(,language ,body ,header ,_ ,_ ,_ ,coderef) | 130 | (`(,language ,body ,header ,_ ,_ ,_ ,coderef) |
| 121 | (let ((begin (org-element-property (if (eq type 'inline-babel-call) | 131 | (let ((begin (org-element-property (if (eq type 'inline-babel-call) |
| 122 | :begin | 132 | :begin |
diff --git a/lisp/org/ob-lua.el b/lisp/org/ob-lua.el index ff9aae01fac..6ae72c7e565 100644 --- a/lisp/org/ob-lua.el +++ b/lisp/org/ob-lua.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Authors: Dieter Schoen | 5 | ;; Authors: Dieter Schoen |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-makefile.el b/lisp/org/ob-makefile.el index 692ebb6c923..46870378295 100644 --- a/lisp/org/ob-makefile.el +++ b/lisp/org/ob-makefile.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Thomas S. Dye | 6 | ;; Thomas S. Dye |
| 7 | ;; Keywords: literate programming, reproducible research | 7 | ;; Keywords: literate programming, reproducible research |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
diff --git a/lisp/org/ob-matlab.el b/lisp/org/ob-matlab.el index da2eadc477c..5baac77742c 100644 --- a/lisp/org/ob-matlab.el +++ b/lisp/org/ob-matlab.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Dan Davison | 5 | ;; Author: Dan Davison |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-maxima.el b/lisp/org/ob-maxima.el index fc2471761a0..b42a4b8afaf 100644 --- a/lisp/org/ob-maxima.el +++ b/lisp/org/ob-maxima.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Author: Eric S Fraga | 5 | ;; Author: Eric S Fraga |
| 6 | ;; Eric Schulte | 6 | ;; Eric Schulte |
| 7 | ;; Keywords: literate programming, reproducible research, maxima | 7 | ;; Keywords: literate programming, reproducible research, maxima |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
diff --git a/lisp/org/ob-mscgen.el b/lisp/org/ob-mscgen.el index 8f8c8c5dce9..b2c2443c8fc 100644 --- a/lisp/org/ob-mscgen.el +++ b/lisp/org/ob-mscgen.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Juan Pechiar | 5 | ;; Author: Juan Pechiar |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-ocaml.el b/lisp/org/ob-ocaml.el index b8212b128bc..90926b5c35b 100644 --- a/lisp/org/ob-ocaml.el +++ b/lisp/org/ob-ocaml.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-octave.el b/lisp/org/ob-octave.el index 7d729055060..c7339cf992d 100644 --- a/lisp/org/ob-octave.el +++ b/lisp/org/ob-octave.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Dan Davison | 5 | ;; Author: Dan Davison |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-org.el b/lisp/org/ob-org.el index 310aaec3f39..7a495faaedf 100644 --- a/lisp/org/ob-org.el +++ b/lisp/org/ob-org.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-perl.el b/lisp/org/ob-perl.el index 2b96bf9cd56..85806fd5330 100644 --- a/lisp/org/ob-perl.el +++ b/lisp/org/ob-perl.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Authors: Dan Davison | 5 | ;; Authors: Dan Davison |
| 6 | ;; Eric Schulte | 6 | ;; Eric Schulte |
| 7 | ;; Keywords: literate programming, reproducible research | 7 | ;; Keywords: literate programming, reproducible research |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
diff --git a/lisp/org/ob-picolisp.el b/lisp/org/ob-picolisp.el index fd129b899b2..cc2c8a8dff2 100644 --- a/lisp/org/ob-picolisp.el +++ b/lisp/org/ob-picolisp.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Authors: Thorsten Jolitz | 5 | ;; Authors: Thorsten Jolitz |
| 6 | ;; Eric Schulte | 6 | ;; Eric Schulte |
| 7 | ;; Keywords: literate programming, reproducible research | 7 | ;; Keywords: literate programming, reproducible research |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
diff --git a/lisp/org/ob-plantuml.el b/lisp/org/ob-plantuml.el index 53ba42ec367..9a9313e7be9 100644 --- a/lisp/org/ob-plantuml.el +++ b/lisp/org/ob-plantuml.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Zhang Weize | 5 | ;; Author: Zhang Weize |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-processing.el b/lisp/org/ob-processing.el index 83fcadd2575..1a88930277f 100644 --- a/lisp/org/ob-processing.el +++ b/lisp/org/ob-processing.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Jarmo Hurri (adapted from ob-asymptote.el written by Eric Schulte) | 5 | ;; Author: Jarmo Hurri (adapted from ob-asymptote.el written by Eric Schulte) |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-python.el b/lisp/org/ob-python.el index 951e4d2a4b4..9f1234bac52 100644 --- a/lisp/org/ob-python.el +++ b/lisp/org/ob-python.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Authors: Eric Schulte | 5 | ;; Authors: Eric Schulte |
| 6 | ;; Dan Davison | 6 | ;; Dan Davison |
| 7 | ;; Keywords: literate programming, reproducible research | 7 | ;; Keywords: literate programming, reproducible research |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
diff --git a/lisp/org/ob-ref.el b/lisp/org/ob-ref.el index 872f7f98151..3efa17f9601 100644 --- a/lisp/org/ob-ref.el +++ b/lisp/org/ob-ref.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Authors: Eric Schulte | 5 | ;; Authors: Eric Schulte |
| 6 | ;; Dan Davison | 6 | ;; Dan Davison |
| 7 | ;; Keywords: literate programming, reproducible research | 7 | ;; Keywords: literate programming, reproducible research |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
diff --git a/lisp/org/ob-ruby.el b/lisp/org/ob-ruby.el index 6daf52b0127..7686ac4e807 100644 --- a/lisp/org/ob-ruby.el +++ b/lisp/org/ob-ruby.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-sass.el b/lisp/org/ob-sass.el index 5b179a6e8cb..af55d763e34 100644 --- a/lisp/org/ob-sass.el +++ b/lisp/org/ob-sass.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-scheme.el b/lisp/org/ob-scheme.el index cc78b574d07..0efe5f3467c 100644 --- a/lisp/org/ob-scheme.el +++ b/lisp/org/ob-scheme.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Authors: Eric Schulte | 5 | ;; Authors: Eric Schulte |
| 6 | ;; Michael Gauland | 6 | ;; Michael Gauland |
| 7 | ;; Keywords: literate programming, reproducible research, scheme | 7 | ;; Keywords: literate programming, reproducible research, scheme |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
diff --git a/lisp/org/ob-screen.el b/lisp/org/ob-screen.el index 4fad849d024..fb7c8e2daa4 100644 --- a/lisp/org/ob-screen.el +++ b/lisp/org/ob-screen.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Benjamin Andresen | 5 | ;; Author: Benjamin Andresen |
| 6 | ;; Keywords: literate programming, interactive shell | 6 | ;; Keywords: literate programming, interactive shell |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-shell.el b/lisp/org/ob-shell.el index c53dd65e66e..362dfd520fb 100644 --- a/lisp/org/ob-shell.el +++ b/lisp/org/ob-shell.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-shen.el b/lisp/org/ob-shen.el index 9308e5b38b1..d81e7d60df1 100644 --- a/lisp/org/ob-shen.el +++ b/lisp/org/ob-shen.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research, shen | 6 | ;; Keywords: literate programming, reproducible research, shen |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-sql.el b/lisp/org/ob-sql.el index 524e9b73e1a..959ede3decc 100644 --- a/lisp/org/ob-sql.el +++ b/lisp/org/ob-sql.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-sqlite.el b/lisp/org/ob-sqlite.el index 4799896f63b..42528a38712 100644 --- a/lisp/org/ob-sqlite.el +++ b/lisp/org/ob-sqlite.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-stan.el b/lisp/org/ob-stan.el index 6fa9fe5c94f..ffc26818841 100644 --- a/lisp/org/ob-stan.el +++ b/lisp/org/ob-stan.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Kyle Meyer | 5 | ;; Author: Kyle Meyer |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
| @@ -39,7 +39,7 @@ | |||
| 39 | ;; that does not end in ".stan". | 39 | ;; that does not end in ".stan". |
| 40 | ;; | 40 | ;; |
| 41 | ;; For more information and usage examples, visit | 41 | ;; For more information and usage examples, visit |
| 42 | ;; http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-stan.html | 42 | ;; https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-stan.html |
| 43 | ;; | 43 | ;; |
| 44 | ;; [1] http://mc-stan.org/ | 44 | ;; [1] http://mc-stan.org/ |
| 45 | 45 | ||
diff --git a/lisp/org/ob-table.el b/lisp/org/ob-table.el index 9ee0bcc24b5..f6a5c88e479 100644 --- a/lisp/org/ob-table.el +++ b/lisp/org/ob-table.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-tangle.el b/lisp/org/ob-tangle.el index 5fa59ac4d76..48eddb73a92 100644 --- a/lisp/org/ob-tangle.el +++ b/lisp/org/ob-tangle.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Eric Schulte | 5 | ;; Author: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ob-vala.el b/lisp/org/ob-vala.el index 02b3bab5b7f..96c37e3ad08 100644 --- a/lisp/org/ob-vala.el +++ b/lisp/org/ob-vala.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Christian Garbs <mitch@cgarbs.de> | 5 | ;; Author: Christian Garbs <mitch@cgarbs.de> |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;;; License: | 9 | ;;; License: |
| 10 | 10 | ||
diff --git a/lisp/org/ob.el b/lisp/org/ob.el index a029da861bd..35f65ffa828 100644 --- a/lisp/org/ob.el +++ b/lisp/org/ob.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Authors: Eric Schulte | 5 | ;; Authors: Eric Schulte |
| 6 | ;; Keywords: literate programming, reproducible research | 6 | ;; Keywords: literate programming, reproducible research |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el index 9aaec330708..5bbf5e34ee5 100644 --- a/lisp/org/org-agenda.el +++ b/lisp/org/org-agenda.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
| @@ -1644,9 +1644,10 @@ When nil, such items are sorted as 0 minutes effort." | |||
| 1644 | (tags . " %i %-12:c") | 1644 | (tags . " %i %-12:c") |
| 1645 | (search . " %i %-12:c")) | 1645 | (search . " %i %-12:c")) |
| 1646 | "Format specifications for the prefix of items in the agenda views. | 1646 | "Format specifications for the prefix of items in the agenda views. |
| 1647 | An alist with five entries, each for the different agenda types. The | 1647 | |
| 1648 | keys of the sublists are `agenda', `todo', `search' and `tags'. | 1648 | An alist with one entry per agenda type. The keys of the |
| 1649 | The values are format strings. | 1649 | sublists are `agenda', `todo', `search' and `tags'. The values |
| 1650 | are format strings. | ||
| 1650 | 1651 | ||
| 1651 | This format works similar to a printf format, with the following meaning: | 1652 | This format works similar to a printf format, with the following meaning: |
| 1652 | 1653 | ||
| @@ -2075,7 +2076,10 @@ works you probably want to add it to `org-agenda-custom-commands' for good." | |||
| 2075 | (defvar org-agenda-follow-mode nil) | 2076 | (defvar org-agenda-follow-mode nil) |
| 2076 | (defvar org-agenda-entry-text-mode nil) | 2077 | (defvar org-agenda-entry-text-mode nil) |
| 2077 | (defvar org-agenda-clockreport-mode nil) | 2078 | (defvar org-agenda-clockreport-mode nil) |
| 2078 | (defvar org-agenda-show-log nil) | 2079 | (defvar org-agenda-show-log nil |
| 2080 | "When non-nil, show the log in the agenda. | ||
| 2081 | Do not set this directly; instead use | ||
| 2082 | `org-agenda-start-with-log-mode', which see.") | ||
| 2079 | (defvar org-agenda-redo-command nil) | 2083 | (defvar org-agenda-redo-command nil) |
| 2080 | (defvar org-agenda-query-string nil) | 2084 | (defvar org-agenda-query-string nil) |
| 2081 | (defvar org-agenda-mode-hook nil | 2085 | (defvar org-agenda-mode-hook nil |
| @@ -2207,9 +2211,9 @@ The following commands are available: | |||
| 2207 | nil t) | 2211 | nil t) |
| 2208 | (unless org-agenda-keep-modes | 2212 | (unless org-agenda-keep-modes |
| 2209 | (setq org-agenda-follow-mode org-agenda-start-with-follow-mode | 2213 | (setq org-agenda-follow-mode org-agenda-start-with-follow-mode |
| 2210 | org-agenda-entry-text-mode org-agenda-start-with-entry-text-mode)) | 2214 | org-agenda-entry-text-mode org-agenda-start-with-entry-text-mode |
| 2211 | (setq org-agenda-show-log org-agenda-start-with-log-mode) | 2215 | org-agenda-show-log org-agenda-start-with-log-mode |
| 2212 | (setq org-agenda-clockreport-mode org-agenda-start-with-clockreport-mode) | 2216 | org-agenda-clockreport-mode org-agenda-start-with-clockreport-mode)) |
| 2213 | (add-to-invisibility-spec '(org-filtered)) | 2217 | (add-to-invisibility-spec '(org-filtered)) |
| 2214 | (add-to-invisibility-spec '(org-link)) | 2218 | (add-to-invisibility-spec '(org-link)) |
| 2215 | (easy-menu-change | 2219 | (easy-menu-change |
| @@ -6172,7 +6176,7 @@ scheduled items with an hour specification like [h]h:mm." | |||
| 6172 | ;; Nullify delay when a repeater triggered already | 6176 | ;; Nullify delay when a repeater triggered already |
| 6173 | ;; and the delay is of the form --Xd. | 6177 | ;; and the delay is of the form --Xd. |
| 6174 | ((and (string-match-p "--[0-9]+[hdwmy]" s) | 6178 | ((and (string-match-p "--[0-9]+[hdwmy]" s) |
| 6175 | (> current schedule)) | 6179 | (> schedule (org-agenda--timestamp-to-absolute s))) |
| 6176 | 0) | 6180 | 0) |
| 6177 | (suppress-delay | 6181 | (suppress-delay |
| 6178 | (let ((org-scheduled-delay-days suppress-delay)) | 6182 | (let ((org-scheduled-delay-days suppress-delay)) |
| @@ -8177,7 +8181,6 @@ so that the date SD will be in that range." | |||
| 8177 | (interactive) | 8181 | (interactive) |
| 8178 | (org-agenda-check-type t 'agenda) | 8182 | (org-agenda-check-type t 'agenda) |
| 8179 | (setq org-agenda-clockreport-mode (not org-agenda-clockreport-mode)) | 8183 | (setq org-agenda-clockreport-mode (not org-agenda-clockreport-mode)) |
| 8180 | (setq org-agenda-start-with-clockreport-mode org-agenda-clockreport-mode) | ||
| 8181 | (org-agenda-set-mode-name) | 8184 | (org-agenda-set-mode-name) |
| 8182 | (org-agenda-redo) | 8185 | (org-agenda-redo) |
| 8183 | (message "Clocktable mode is %s" | 8186 | (message "Clocktable mode is %s" |
| @@ -8201,7 +8204,6 @@ log items, nothing else." | |||
| 8201 | nil 'clockcheck)) | 8204 | nil 'clockcheck)) |
| 8202 | (special '(closed clock state)) | 8205 | (special '(closed clock state)) |
| 8203 | (t (not org-agenda-show-log)))) | 8206 | (t (not org-agenda-show-log)))) |
| 8204 | (setq org-agenda-start-with-log-mode org-agenda-show-log) | ||
| 8205 | (org-agenda-set-mode-name) | 8207 | (org-agenda-set-mode-name) |
| 8206 | (org-agenda-redo) | 8208 | (org-agenda-redo) |
| 8207 | (message "Log mode is %s" (if org-agenda-show-log "on" "off"))) | 8209 | (message "Log mode is %s" (if org-agenda-show-log "on" "off"))) |
| @@ -9895,32 +9897,33 @@ The prefix arg is passed through to the command if possible." | |||
| 9895 | (org-agenda-set-tags ,tag | 9897 | (org-agenda-set-tags ,tag |
| 9896 | ,(if (eq action ?+) ''on ''off)))))) | 9898 | ,(if (eq action ?+) ''on ''off)))))) |
| 9897 | 9899 | ||
| 9898 | (?s | 9900 | ((and (or ?s ?d) c) |
| 9899 | (let ((time | 9901 | (let* ((schedule? (eq c ?s)) |
| 9900 | (and (not arg) | 9902 | (prompt (if schedule? "(Re)Schedule to" "(Re)Set Deadline to")) |
| 9901 | (org-read-date nil nil nil "(Re)Schedule to" | 9903 | (time |
| 9902 | org-overriding-default-time)))) | 9904 | (and (not arg) |
| 9905 | (let ((new (org-read-date | ||
| 9906 | nil nil nil prompt org-overriding-default-time))) | ||
| 9907 | ;; A "double plus" answer applies to every | ||
| 9908 | ;; scheduled time. Do not turn it into | ||
| 9909 | ;; a fixed date yet. | ||
| 9910 | (if (string-match-p "\\`[ \t]*\\+\\+" | ||
| 9911 | org-read-date-final-answer) | ||
| 9912 | org-read-date-final-answer | ||
| 9913 | new))))) | ||
| 9903 | ;; Make sure to not prompt for a note when bulk | 9914 | ;; Make sure to not prompt for a note when bulk |
| 9904 | ;; rescheduling as Org cannot cope with simultaneous notes. | 9915 | ;; rescheduling/resetting deadline as Org cannot cope with |
| 9905 | ;; Besides, it could be annoying depending on the number of | 9916 | ;; simultaneous notes. Besides, it could be annoying |
| 9906 | ;; items re-scheduled. | 9917 | ;; depending on the number of marked items. |
| 9907 | (setq cmd | 9918 | (setq cmd |
| 9908 | `(lambda () | 9919 | (if schedule? |
| 9909 | (let ((org-log-reschedule (and org-log-reschedule 'time))) | 9920 | `(lambda () |
| 9910 | (org-agenda-schedule arg ,time)))))) | 9921 | (let ((org-log-reschedule |
| 9911 | (?d | 9922 | (and org-log-reschedule 'time))) |
| 9912 | (let ((time | 9923 | (org-agenda-schedule arg ,time))) |
| 9913 | (and (not arg) | 9924 | `(lambda () |
| 9914 | (org-read-date nil nil nil "(Re)Set Deadline to" | 9925 | (let ((org-log-redeadline (and org-log-redeadline 'time))) |
| 9915 | org-overriding-default-time)))) | 9926 | (org-agenda-deadline arg ,time))))))) |
| 9916 | ;; Make sure to not prompt for a note when bulk | ||
| 9917 | ;; rescheduling as Org cannot cope with simultaneous | ||
| 9918 | ;; notes. Besides, it could be annoying depending on the | ||
| 9919 | ;; number of items re-scheduled. | ||
| 9920 | (setq cmd | ||
| 9921 | `(lambda () | ||
| 9922 | (let ((org-log-redeadline (and org-log-redeadline 'time))) | ||
| 9923 | (org-agenda-deadline arg ,time)))))) | ||
| 9924 | 9927 | ||
| 9925 | (?S | 9928 | (?S |
| 9926 | (unless (org-agenda-check-type nil 'agenda 'todo) | 9929 | (unless (org-agenda-check-type nil 'agenda 'todo) |
diff --git a/lisp/org/org-archive.el b/lisp/org/org-archive.el index 755de7fdac2..e020ec21409 100644 --- a/lisp/org/org-archive.el +++ b/lisp/org/org-archive.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
diff --git a/lisp/org/org-bbdb.el b/lisp/org/org-bbdb.el index 1d39efb88c4..5d36379b5eb 100644 --- a/lisp/org/org-bbdb.el +++ b/lisp/org/org-bbdb.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Authors: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Authors: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Thomas Baumann <thomas dot baumann at ch dot tum dot de> | 6 | ;; Thomas Baumann <thomas dot baumann at ch dot tum dot de> |
| 7 | ;; Keywords: outlines, hypermedia, calendar, wp | 7 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | ;; | 9 | ;; |
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | ;; | 11 | ;; |
diff --git a/lisp/org/org-capture.el b/lisp/org/org-capture.el index cb1741f2f91..3de386c69d6 100644 --- a/lisp/org/org-capture.el +++ b/lisp/org/org-capture.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
| @@ -51,8 +51,8 @@ | |||
| 51 | (require 'org) | 51 | (require 'org) |
| 52 | 52 | ||
| 53 | (declare-function org-at-encrypted-entry-p "org-crypt" ()) | 53 | (declare-function org-at-encrypted-entry-p "org-crypt" ()) |
| 54 | (declare-function org-datetree-find-date-create "org-datetree" | 54 | (declare-function org-clock-update-mode-line "org-clock" (&optional refresh)) |
| 55 | (date &optional keep-restriction)) | 55 | (declare-function org-datetree-find-date-create "org-datetree" (date &optional keep-restriction)) |
| 56 | (declare-function org-decrypt-entry "org-crypt" ()) | 56 | (declare-function org-decrypt-entry "org-crypt" ()) |
| 57 | (declare-function org-encrypt-entry "org-crypt" ()) | 57 | (declare-function org-encrypt-entry "org-crypt" ()) |
| 58 | (declare-function org-table-analyze "org-table" ()) | 58 | (declare-function org-table-analyze "org-table" ()) |
| @@ -541,8 +541,8 @@ not-in-buffer: command not displayed in matching buffers | |||
| 541 | If you define several checks, the agenda command will be | 541 | If you define several checks, the agenda command will be |
| 542 | accessible if there is at least one valid check. | 542 | accessible if there is at least one valid check. |
| 543 | 543 | ||
| 544 | You can also bind a key to another agenda custom command | 544 | You can also bind a key to another capture template depending on |
| 545 | depending on contextual rules. | 545 | contextual rules. |
| 546 | 546 | ||
| 547 | \\='((\"c\" \"d\" ((in-mode . \"message-mode\")))) | 547 | \\='((\"c\" \"d\" ((in-mode . \"message-mode\")))) |
| 548 | 548 | ||
| @@ -724,21 +724,24 @@ captured item after finalizing." | |||
| 724 | 724 | ||
| 725 | ;; Did we start the clock in this capture buffer? | 725 | ;; Did we start the clock in this capture buffer? |
| 726 | (when (and org-capture-clock-was-started | 726 | (when (and org-capture-clock-was-started |
| 727 | org-clock-marker (marker-buffer org-clock-marker) | 727 | org-clock-marker |
| 728 | (equal (marker-buffer org-clock-marker) (buffer-base-buffer)) | 728 | (eq (marker-buffer org-clock-marker) (buffer-base-buffer)) |
| 729 | (> org-clock-marker (point-min)) | 729 | (>= org-clock-marker (point-min)) |
| 730 | (< org-clock-marker (point-max))) | 730 | (< org-clock-marker (point-max))) |
| 731 | ;; Looks like the clock we started is still running. Clock out. | 731 | ;; Looks like the clock we started is still running. |
| 732 | (when (not org-capture-clock-keep) (let (org-log-note-clock-out) (org-clock-out))) | 732 | (if org-capture-clock-keep |
| 733 | (when (and (not org-capture-clock-keep) | 733 | ;; User may have completed clocked heading from the template. |
| 734 | (org-capture-get :clock-resume 'local) | 734 | ;; Refresh clock mode line. |
| 735 | (markerp (org-capture-get :interrupted-clock 'local)) | 735 | (org-clock-update-mode-line t) |
| 736 | (buffer-live-p (marker-buffer | 736 | ;; Clock out. Possibly resume interrupted clock. |
| 737 | (org-capture-get :interrupted-clock 'local)))) | 737 | (let (org-log-note-clock-out) (org-clock-out)) |
| 738 | (let ((clock-in-task (org-capture-get :interrupted-clock 'local))) | 738 | (when (and (org-capture-get :clock-resume 'local) |
| 739 | (org-with-point-at clock-in-task | 739 | (markerp (org-capture-get :interrupted-clock 'local)) |
| 740 | (org-clock-in))) | 740 | (buffer-live-p (marker-buffer |
| 741 | (message "Interrupted clock has been resumed"))) | 741 | (org-capture-get :interrupted-clock 'local)))) |
| 742 | (let ((clock-in-task (org-capture-get :interrupted-clock 'local))) | ||
| 743 | (org-with-point-at clock-in-task (org-clock-in))) | ||
| 744 | (message "Interrupted clock has been resumed")))) | ||
| 742 | 745 | ||
| 743 | (let ((beg (point-min)) | 746 | (let ((beg (point-min)) |
| 744 | (end (point-max)) | 747 | (end (point-max)) |
| @@ -1118,7 +1121,7 @@ may have been stored before." | |||
| 1118 | (setq level (org-get-valid-level | 1121 | (setq level (org-get-valid-level |
| 1119 | (if (org-at-heading-p) (org-outline-level) 1) | 1122 | (if (org-at-heading-p) (org-outline-level) 1) |
| 1120 | 1)) | 1123 | 1)) |
| 1121 | (if reversed? (outline-next-heading) (org-end-of-subtree t))) | 1124 | (if reversed? (outline-next-heading) (org-end-of-subtree t t))) |
| 1122 | ;; Insert as a top-level entry at the beginning of the file. | 1125 | ;; Insert as a top-level entry at the beginning of the file. |
| 1123 | (reversed? | 1126 | (reversed? |
| 1124 | (goto-char (point-min)) | 1127 | (goto-char (point-min)) |
diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el index 4c5fcc64b0f..ff32e28d1e8 100644 --- a/lisp/org/org-clock.el +++ b/lisp/org/org-clock.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
| @@ -430,7 +430,9 @@ This applies when using `org-clock-goto'." | |||
| 430 | :type 'integer) | 430 | :type 'integer) |
| 431 | 431 | ||
| 432 | (defcustom org-clock-display-default-range 'thisyear | 432 | (defcustom org-clock-display-default-range 'thisyear |
| 433 | "Default range when displaying clocks with `org-clock-display'." | 433 | "Default range when displaying clocks with `org-clock-display'. |
| 434 | Valid values are: `today', `yesterday', `thisweek', `lastweek', | ||
| 435 | `thismonth', `lastmonth', `thisyear', `lastyear' and `untilnow'." | ||
| 434 | :group 'org-clock | 436 | :group 'org-clock |
| 435 | :type '(choice (const today) | 437 | :type '(choice (const today) |
| 436 | (const yesterday) | 438 | (const yesterday) |
| @@ -441,7 +443,8 @@ This applies when using `org-clock-goto'." | |||
| 441 | (const thisyear) | 443 | (const thisyear) |
| 442 | (const lastyear) | 444 | (const lastyear) |
| 443 | (const untilnow) | 445 | (const untilnow) |
| 444 | (const :tag "Select range interactively" interactive))) | 446 | (const :tag "Select range interactively" interactive)) |
| 447 | :safe #'symbolp) | ||
| 445 | 448 | ||
| 446 | (defvar org-clock-in-prepare-hook nil | 449 | (defvar org-clock-in-prepare-hook nil |
| 447 | "Hook run when preparing the clock. | 450 | "Hook run when preparing the clock. |
| @@ -465,38 +468,6 @@ to add an effort property.") | |||
| 465 | (defvar org-clock-stored-resume-clock nil | 468 | (defvar org-clock-stored-resume-clock nil |
| 466 | "Clock to resume, saved by `org-clock-load'") | 469 | "Clock to resume, saved by `org-clock-load'") |
| 467 | 470 | ||
| 468 | (defconst org-clock--oldest-date | ||
| 469 | (let* ((dichotomy | ||
| 470 | (lambda (min max pred) | ||
| 471 | (if (funcall pred min) min | ||
| 472 | (cl-incf min) | ||
| 473 | (while (> (- max min) 1) | ||
| 474 | (let ((mean (+ (ash min -1) (ash max -1) (logand min max 1)))) | ||
| 475 | (if (funcall pred mean) (setq max mean) (setq min mean))))) | ||
| 476 | max)) | ||
| 477 | (high | ||
| 478 | (funcall dichotomy | ||
| 479 | most-negative-fixnum | ||
| 480 | 0 | ||
| 481 | (lambda (m) | ||
| 482 | ;; libc in macOS 10.6 hangs when decoding times | ||
| 483 | ;; around year -2**31. Limit `high' not to go | ||
| 484 | ;; any earlier than that. | ||
| 485 | (unless (and (eq system-type 'darwin) | ||
| 486 | (string-match-p | ||
| 487 | "10\\.6\\.[[:digit:]]" | ||
| 488 | (shell-command-to-string | ||
| 489 | "sw_vers -productVersion")) | ||
| 490 | (<= m -1034058203135)) | ||
| 491 | (ignore-errors (decode-time (list m 0))))))) | ||
| 492 | (low | ||
| 493 | (funcall dichotomy | ||
| 494 | most-negative-fixnum | ||
| 495 | 0 | ||
| 496 | (lambda (m) (ignore-errors (decode-time (list high m))))))) | ||
| 497 | (list high low)) | ||
| 498 | "Internal time for oldest date representable on the system.") | ||
| 499 | |||
| 500 | ;;; The clock for measuring work time. | 471 | ;;; The clock for measuring work time. |
| 501 | 472 | ||
| 502 | (defvar org-mode-line-string "") | 473 | (defvar org-mode-line-string "") |
| @@ -542,6 +513,15 @@ cannot be translated." | |||
| 542 | (assoc-string language org-clock-clocktable-language-setup t)) | 513 | (assoc-string language org-clock-clocktable-language-setup t)) |
| 543 | s)) | 514 | s)) |
| 544 | 515 | ||
| 516 | (defun org-clock--mode-line-heading () | ||
| 517 | "Return currently clocked heading, formatted for mode line." | ||
| 518 | (cond ((functionp org-clock-heading-function) | ||
| 519 | (funcall org-clock-heading-function)) | ||
| 520 | ((org-before-first-heading-p) "???") | ||
| 521 | (t (replace-regexp-in-string | ||
| 522 | org-bracket-link-analytic-regexp "\\5" | ||
| 523 | (org-no-properties (org-get-heading t t t t)))))) | ||
| 524 | |||
| 545 | (defun org-clock-menu () | 525 | (defun org-clock-menu () |
| 546 | (interactive) | 526 | (interactive) |
| 547 | (popup-menu | 527 | (popup-menu |
| @@ -690,19 +670,18 @@ If not, show simply the clocked time like 01:50." | |||
| 690 | (if org-clock-effort | 670 | (if org-clock-effort |
| 691 | (let* ((effort-in-minutes (org-duration-to-minutes org-clock-effort)) | 671 | (let* ((effort-in-minutes (org-duration-to-minutes org-clock-effort)) |
| 692 | (work-done-str | 672 | (work-done-str |
| 693 | (propertize | 673 | (propertize (org-duration-from-minutes clocked-time) |
| 694 | (org-duration-from-minutes clocked-time) | 674 | 'face |
| 695 | 'face (if (and org-clock-task-overrun (not org-clock-task-overrun-text)) | 675 | (if (and org-clock-task-overrun |
| 696 | 'org-mode-line-clock-overrun 'org-mode-line-clock))) | 676 | (not org-clock-task-overrun-text)) |
| 697 | (effort-str (org-duration-from-minutes effort-in-minutes)) | 677 | 'org-mode-line-clock-overrun |
| 698 | (clockstr (propertize | 678 | 'org-mode-line-clock))) |
| 699 | (concat " [%s/" effort-str | 679 | (effort-str (org-duration-from-minutes effort-in-minutes))) |
| 700 | "] (" (replace-regexp-in-string "%" "%%" org-clock-heading) ")") | 680 | (format (propertize " [%s/%s] (%s)" 'face 'org-mode-line-clock) |
| 701 | 'face 'org-mode-line-clock))) | 681 | work-done-str effort-str org-clock-heading)) |
| 702 | (format clockstr work-done-str)) | 682 | (format (propertize " [%s] (%s)" 'face 'org-mode-line-clock) |
| 703 | (propertize (concat " [" (org-duration-from-minutes clocked-time) | 683 | (org-duration-from-minutes clocked-time) |
| 704 | "]" (format " (%s)" org-clock-heading)) | 684 | org-clock-heading)))) |
| 705 | 'face 'org-mode-line-clock)))) | ||
| 706 | 685 | ||
| 707 | (defun org-clock-get-last-clock-out-time () | 686 | (defun org-clock-get-last-clock-out-time () |
| 708 | "Get the last clock-out time for the current subtree." | 687 | "Get the last clock-out time for the current subtree." |
| @@ -712,10 +691,13 @@ If not, show simply the clocked time like 01:50." | |||
| 712 | ".*\\]--\\(\\[[^]]+\\]\\)") end t) | 691 | ".*\\]--\\(\\[[^]]+\\]\\)") end t) |
| 713 | (org-time-string-to-time (match-string 1)))))) | 692 | (org-time-string-to-time (match-string 1)))))) |
| 714 | 693 | ||
| 715 | (defun org-clock-update-mode-line () | 694 | (defun org-clock-update-mode-line (&optional refresh) |
| 695 | "Update mode line with clock information. | ||
| 696 | When optional argument is non-nil, refresh cached heading." | ||
| 716 | (if org-clock-effort | 697 | (if org-clock-effort |
| 717 | (org-clock-notify-once-if-expired) | 698 | (org-clock-notify-once-if-expired) |
| 718 | (setq org-clock-task-overrun nil)) | 699 | (setq org-clock-task-overrun nil)) |
| 700 | (when refresh (setq org-clock-heading (org-clock--mode-line-heading))) | ||
| 719 | (setq org-mode-line-string | 701 | (setq org-mode-line-string |
| 720 | (propertize | 702 | (propertize |
| 721 | (let ((clock-string (org-clock-get-clock-string)) | 703 | (let ((clock-string (org-clock-get-clock-string)) |
| @@ -1232,7 +1214,8 @@ the default behavior." | |||
| 1232 | (when (equal select '(64)) | 1214 | (when (equal select '(64)) |
| 1233 | ;; Set start-time to `org-clock-out-time' | 1215 | ;; Set start-time to `org-clock-out-time' |
| 1234 | (let ((org-clock-continuously t)) | 1216 | (let ((org-clock-continuously t)) |
| 1235 | (org-clock-in nil org-clock-out-time))) | 1217 | (org-clock-in nil org-clock-out-time) |
| 1218 | (throw 'abort nil))) | ||
| 1236 | 1219 | ||
| 1237 | (when (equal select '(4)) | 1220 | (when (equal select '(4)) |
| 1238 | (setq selected-task (org-clock-select-task "Clock-in on task: ")) | 1221 | (setq selected-task (org-clock-select-task "Clock-in on task: ")) |
| @@ -1298,15 +1281,7 @@ the default behavior." | |||
| 1298 | org-clock-in-switch-to-state | 1281 | org-clock-in-switch-to-state |
| 1299 | "\\>")))) | 1282 | "\\>")))) |
| 1300 | (org-todo org-clock-in-switch-to-state))) | 1283 | (org-todo org-clock-in-switch-to-state))) |
| 1301 | (setq org-clock-heading | 1284 | (setq org-clock-heading (org-clock--mode-line-heading)) |
| 1302 | (cond ((and org-clock-heading-function | ||
| 1303 | (functionp org-clock-heading-function)) | ||
| 1304 | (funcall org-clock-heading-function)) | ||
| 1305 | ((nth 4 (org-heading-components)) | ||
| 1306 | (replace-regexp-in-string | ||
| 1307 | "\\[\\[.*?\\]\\[\\(.*?\\)\\]\\]" "\\1" | ||
| 1308 | (match-string-no-properties 4))) | ||
| 1309 | (t "???"))) | ||
| 1310 | (org-clock-find-position org-clock-in-resume) | 1285 | (org-clock-find-position org-clock-in-resume) |
| 1311 | (cond | 1286 | (cond |
| 1312 | ((and org-clock-in-resume | 1287 | ((and org-clock-in-resume |
| @@ -1442,7 +1417,7 @@ in particular CLOCK_MODELINE_TOTAL and the corresponding variable | |||
| 1442 | `org-clock-mode-line-total' and then decides which time to use. | 1417 | `org-clock-mode-line-total' and then decides which time to use. |
| 1443 | 1418 | ||
| 1444 | The time is always returned as UTC." | 1419 | The time is always returned as UTC." |
| 1445 | (let ((cmt (or (org-entry-get nil "CLOCK_MODELINE_TOTAL") | 1420 | (let ((cmt (or (org-entry-get nil "CLOCK_MODELINE_TOTAL" 'selective) |
| 1446 | (symbol-name org-clock-mode-line-total))) | 1421 | (symbol-name org-clock-mode-line-total))) |
| 1447 | (lr (org-entry-get nil "LAST_REPEAT"))) | 1422 | (lr (org-entry-get nil "LAST_REPEAT"))) |
| 1448 | (cond | 1423 | (cond |
| @@ -1451,7 +1426,7 @@ The time is always returned as UTC." | |||
| 1451 | (current-time)) | 1426 | (current-time)) |
| 1452 | ((equal cmt "today") | 1427 | ((equal cmt "today") |
| 1453 | (setq org--msg-extra "showing today's task time.") | 1428 | (setq org--msg-extra "showing today's task time.") |
| 1454 | (let* ((dt (org-decode-time nil t)) | 1429 | (let* ((dt (decode-time)) |
| 1455 | (hour (nth 2 dt)) | 1430 | (hour (nth 2 dt)) |
| 1456 | (day (nth 3 dt))) | 1431 | (day (nth 3 dt))) |
| 1457 | (if (< hour org-extend-today-until) (setf (nth 3 dt) (1- day))) | 1432 | (if (< hour org-extend-today-until) (setf (nth 3 dt) (1- day))) |
| @@ -1784,6 +1759,7 @@ With prefix arg SELECT, offer recently clocked tasks for selection." | |||
| 1784 | (defvar-local org-clock-file-total-minutes nil | 1759 | (defvar-local org-clock-file-total-minutes nil |
| 1785 | "Holds the file total time in minutes, after a call to `org-clock-sum'.") | 1760 | "Holds the file total time in minutes, after a call to `org-clock-sum'.") |
| 1786 | 1761 | ||
| 1762 | ;;;###autoload | ||
| 1787 | (defun org-clock-sum-today (&optional headline-filter) | 1763 | (defun org-clock-sum-today (&optional headline-filter) |
| 1788 | "Sum the times for each subtree for today." | 1764 | "Sum the times for each subtree for today." |
| 1789 | (let ((range (org-clock-special-range 'today))) | 1765 | (let ((range (org-clock-special-range 'today))) |
| @@ -1929,37 +1905,36 @@ Use `\\[org-clock-remove-overlays]' to remove the subtree times." | |||
| 1929 | (prop (cond ((not arg) :org-clock-minutes-default) | 1905 | (prop (cond ((not arg) :org-clock-minutes-default) |
| 1930 | (todayp :org-clock-minutes-today) | 1906 | (todayp :org-clock-minutes-today) |
| 1931 | (customp :org-clock-minutes-custom) | 1907 | (customp :org-clock-minutes-custom) |
| 1932 | (t :org-clock-minutes))) | 1908 | (t :org-clock-minutes)))) |
| 1933 | time h m p) | ||
| 1934 | (cond ((not arg) (org-clock-sum-custom | 1909 | (cond ((not arg) (org-clock-sum-custom |
| 1935 | nil org-clock-display-default-range prop)) | 1910 | nil org-clock-display-default-range prop)) |
| 1936 | (todayp (org-clock-sum-today)) | 1911 | (todayp (org-clock-sum-today)) |
| 1937 | (customp (org-clock-sum-custom nil arg)) | 1912 | (customp (org-clock-sum-custom nil arg)) |
| 1938 | (t (org-clock-sum))) | 1913 | (t (org-clock-sum))) |
| 1939 | (unless (eq arg '(64)) | 1914 | (unless (equal arg '(64)) |
| 1940 | (save-excursion | 1915 | (save-excursion |
| 1941 | (goto-char (point-min)) | 1916 | (goto-char (point-min)) |
| 1942 | (while (or (and (equal (setq p (point)) (point-min)) | 1917 | (let ((p nil)) |
| 1943 | (get-text-property p prop)) | 1918 | (while (or (and (equal (setq p (point)) (point-min)) |
| 1944 | (setq p (next-single-property-change | 1919 | (get-text-property p prop)) |
| 1945 | (point) prop))) | 1920 | (setq p (next-single-property-change (point) prop))) |
| 1946 | (goto-char p) | 1921 | (goto-char p) |
| 1947 | (when (setq time (get-text-property p prop)) | 1922 | (let ((time (get-text-property p prop))) |
| 1948 | (org-clock-put-overlay time))) | 1923 | (when time (org-clock-put-overlay time))))) |
| 1949 | (setq h (/ org-clock-file-total-minutes 60) | ||
| 1950 | m (- org-clock-file-total-minutes (* 60 h))) | ||
| 1951 | ;; Arrange to remove the overlays upon next change. | 1924 | ;; Arrange to remove the overlays upon next change. |
| 1952 | (when org-remove-highlights-with-change | 1925 | (when org-remove-highlights-with-change |
| 1953 | (add-hook 'before-change-functions 'org-clock-remove-overlays | 1926 | (add-hook 'before-change-functions 'org-clock-remove-overlays |
| 1954 | nil 'local)))) | 1927 | nil 'local)))) |
| 1955 | (message (concat (format "Total file time%s: " | 1928 | (let* ((h (/ org-clock-file-total-minutes 60)) |
| 1956 | (cond (todayp " for today") | 1929 | (m (- org-clock-file-total-minutes (* 60 h)))) |
| 1957 | (customp " (custom)") | 1930 | (message (concat (format "Total file time%s: " |
| 1958 | (t ""))) | 1931 | (cond (todayp " for today") |
| 1959 | (org-duration-from-minutes | 1932 | (customp " (custom)") |
| 1960 | org-clock-file-total-minutes) | 1933 | (t ""))) |
| 1961 | " (%d hours and %d minutes)") | 1934 | (org-duration-from-minutes |
| 1962 | h m))) | 1935 | org-clock-file-total-minutes) |
| 1936 | " (%d hours and %d minutes)") | ||
| 1937 | h m)))) | ||
| 1963 | 1938 | ||
| 1964 | (defvar-local org-clock-overlays nil) | 1939 | (defvar-local org-clock-overlays nil) |
| 1965 | 1940 | ||
| @@ -2051,27 +2026,32 @@ fontified, and then returned." | |||
| 2051 | 2026 | ||
| 2052 | ;;;###autoload | 2027 | ;;;###autoload |
| 2053 | (defun org-clock-report (&optional arg) | 2028 | (defun org-clock-report (&optional arg) |
| 2054 | "Create a table containing a report about clocked time. | 2029 | "Update or create a table containing a report about clocked time. |
| 2055 | If the cursor is inside an existing clocktable block, then the table | 2030 | |
| 2056 | will be updated. If not, a new clocktable will be inserted. The scope | 2031 | If point is inside an existing clocktable block, update it. |
| 2057 | of the new clock will be subtree when called from within a subtree, and | 2032 | Otherwise, insert a new one. |
| 2058 | file elsewhere. | 2033 | |
| 2059 | 2034 | The new table inherits its properties from the variable | |
| 2060 | When called with a prefix argument, move to the first clock table in the | 2035 | `org-clock-clocktable-default-properties'. The scope of the |
| 2061 | buffer and update it." | 2036 | clocktable, when not specified in the previous variable, is |
| 2037 | `subtree' when the function is called from within a subtree, and | ||
| 2038 | `file' elsewhere. | ||
| 2039 | |||
| 2040 | When called with a prefix argument, move to the first clock table | ||
| 2041 | in the buffer and update it." | ||
| 2062 | (interactive "P") | 2042 | (interactive "P") |
| 2063 | (org-clock-remove-overlays) | 2043 | (org-clock-remove-overlays) |
| 2064 | (when arg | 2044 | (when arg |
| 2065 | (org-find-dblock "clocktable") | 2045 | (org-find-dblock "clocktable") |
| 2066 | (org-show-entry)) | 2046 | (org-show-entry)) |
| 2067 | (if (org-in-clocktable-p) | 2047 | (pcase (org-in-clocktable-p) |
| 2068 | (goto-char (org-in-clocktable-p)) | 2048 | (`nil |
| 2069 | (let ((props (if (ignore-errors | 2049 | (org-create-dblock |
| 2070 | (save-excursion (org-back-to-heading))) | 2050 | (org-combine-plists |
| 2071 | (list :name "clocktable" :scope 'subtree) | 2051 | (list :scope (if (org-before-first-heading-p) 'file 'subtree)) |
| 2072 | (list :name "clocktable")))) | 2052 | org-clock-clocktable-default-properties |
| 2073 | (org-create-dblock | 2053 | '(:name "clocktable")))) |
| 2074 | (org-combine-plists org-clock-clocktable-default-properties props)))) | 2054 | (start (goto-char start))) |
| 2075 | (org-update-dblock)) | 2055 | (org-update-dblock)) |
| 2076 | 2056 | ||
| 2077 | (defun org-day-of-week (day month year) | 2057 | (defun org-day-of-week (day month year) |
| @@ -2258,7 +2238,9 @@ have priority." | |||
| 2258 | ;; Format start and end times according to AS-STRINGS. | 2238 | ;; Format start and end times according to AS-STRINGS. |
| 2259 | (let* ((start (pcase key | 2239 | (let* ((start (pcase key |
| 2260 | (`interactive (org-read-date nil t nil "Range start? ")) | 2240 | (`interactive (org-read-date nil t nil "Range start? ")) |
| 2261 | (`untilnow org-clock--oldest-date) | 2241 | ;; In theory, all clocks started after the dawn of |
| 2242 | ;; humanity. | ||
| 2243 | (`untilnow (encode-time 0 0 0 0 0 -50000)) | ||
| 2262 | (_ (encode-time 0 m h d month y)))) | 2244 | (_ (encode-time 0 m h d month y)))) |
| 2263 | (end (pcase key | 2245 | (end (pcase key |
| 2264 | (`interactive (org-read-date nil t nil "Range end? ")) | 2246 | (`interactive (org-read-date nil t nil "Range end? ")) |
| @@ -2692,16 +2674,15 @@ LEVEL is an integer. Indent by two spaces per level above 1." | |||
| 2692 | 2674 | ||
| 2693 | (defun org-clocktable-steps (params) | 2675 | (defun org-clocktable-steps (params) |
| 2694 | "Step through the range to make a number of clock tables." | 2676 | "Step through the range to make a number of clock tables." |
| 2695 | (let* ((p1 (copy-sequence params)) | 2677 | (let* ((ts (plist-get params :tstart)) |
| 2696 | (ts (plist-get p1 :tstart)) | 2678 | (te (plist-get params :tend)) |
| 2697 | (te (plist-get p1 :tend)) | 2679 | (ws (plist-get params :wstart)) |
| 2698 | (ws (plist-get p1 :wstart)) | 2680 | (ms (plist-get params :mstart)) |
| 2699 | (ms (plist-get p1 :mstart)) | 2681 | (step0 (plist-get params :step)) |
| 2700 | (step0 (plist-get p1 :step)) | 2682 | (step (cdr (assq step0 '((day . 86400) (week . 604800))))) |
| 2701 | (step (cdr (assoc step0 '((day . 86400) (week . 604800))))) | 2683 | (stepskip0 (plist-get params :stepskip0)) |
| 2702 | (stepskip0 (plist-get p1 :stepskip0)) | 2684 | (block (plist-get params :block)) |
| 2703 | (block (plist-get p1 :block)) | 2685 | cc tsb) |
| 2704 | cc step-time tsb) | ||
| 2705 | (when block | 2686 | (when block |
| 2706 | (setq cc (org-clock-special-range block nil t ws ms) | 2687 | (setq cc (org-clock-special-range block nil t ws ms) |
| 2707 | ts (car cc) | 2688 | ts (car cc) |
| @@ -2724,37 +2705,37 @@ LEVEL is an integer. Indent by two spaces per level above 1." | |||
| 2724 | (setq tsb | 2705 | (setq tsb |
| 2725 | (if (eq step0 'week) | 2706 | (if (eq step0 'week) |
| 2726 | (let ((dow (nth 6 (decode-time (seconds-to-time ts))))) | 2707 | (let ((dow (nth 6 (decode-time (seconds-to-time ts))))) |
| 2727 | (if (< dow ws) ts | 2708 | (if (<= dow ws) ts |
| 2728 | (- ts (* 86400 (- dow ws))))) | 2709 | (- ts (* 86400 (- dow ws))))) |
| 2729 | ts)) | 2710 | ts)) |
| 2730 | (setq p1 (plist-put p1 :header "")) | ||
| 2731 | (setq p1 (plist-put p1 :step nil)) | ||
| 2732 | (setq p1 (plist-put p1 :block nil)) | ||
| 2733 | (while (< tsb te) | 2711 | (while (< tsb te) |
| 2734 | (or (bolp) (insert "\n")) | 2712 | (unless (bolp) (insert "\n")) |
| 2735 | (setq p1 (plist-put p1 :tstart (format-time-string | 2713 | (let ((start-time (seconds-to-time (max tsb ts)))) |
| 2736 | (org-time-stamp-format nil t) | 2714 | (cl-incf tsb (let ((dow (nth 6 (decode-time (seconds-to-time tsb))))) |
| 2737 | (seconds-to-time (max tsb ts))))) | 2715 | (if (or (eq step0 'day) |
| 2738 | (cl-incf tsb (let ((dow (nth 6 (decode-time (seconds-to-time tsb))))) | 2716 | (= dow ws)) |
| 2739 | (if (or (eq step0 'day) | 2717 | step |
| 2740 | (= dow ws)) | 2718 | (* 86400 (- ws dow))))) |
| 2741 | step | 2719 | (insert "\n" |
| 2742 | (* 86400 (- ws dow))))) | 2720 | (if (eq step0 'day) "Daily report: " |
| 2743 | (setq p1 (plist-put p1 :tend (format-time-string | 2721 | "Weekly report starting on: ") |
| 2744 | (org-time-stamp-format nil t) | 2722 | (format-time-string (org-time-stamp-format nil t) start-time) |
| 2745 | (seconds-to-time (min te tsb))))) | 2723 | "\n") |
| 2746 | (insert "\n" (if (eq step0 'day) "Daily report: " | 2724 | (let ((table-begin (line-beginning-position 0)) |
| 2747 | "Weekly report starting on: ") | 2725 | (step-time |
| 2748 | (plist-get p1 :tstart) "\n") | 2726 | (org-dblock-write:clocktable |
| 2749 | (setq step-time (org-dblock-write:clocktable p1)) | 2727 | (org-combine-plists |
| 2750 | (re-search-forward "^[ \t]*#\\+END:") | 2728 | params |
| 2751 | (when (and (equal step-time 0) stepskip0) | 2729 | (list |
| 2752 | ;; Remove the empty table | 2730 | :header "" :step nil :block nil |
| 2753 | (delete-region (point-at-bol) | 2731 | :tstart (format-time-string (org-time-stamp-format t t) |
| 2754 | (save-excursion | 2732 | start-time) |
| 2755 | (re-search-backward "^\\(Daily\\|Weekly\\) report" | 2733 | :tend (format-time-string (org-time-stamp-format t t) |
| 2756 | nil t) | 2734 | (seconds-to-time (min te tsb)))))))) |
| 2757 | (point)))) | 2735 | (re-search-forward "^[ \t]*#\\+END:") |
| 2736 | (when (and stepskip0 (equal step-time 0)) | ||
| 2737 | ;; Remove the empty table | ||
| 2738 | (delete-region (line-beginning-position) table-begin)))) | ||
| 2758 | (end-of-line 0)))) | 2739 | (end-of-line 0)))) |
| 2759 | 2740 | ||
| 2760 | (defun org-clock-get-table-data (file params) | 2741 | (defun org-clock-get-table-data (file params) |
diff --git a/lisp/org/org-colview.el b/lisp/org/org-colview.el index 0d5a9827d59..cb5c091d0a3 100644 --- a/lisp/org/org-colview.el +++ b/lisp/org/org-colview.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
diff --git a/lisp/org/org-compat.el b/lisp/org/org-compat.el index f32fcd1783e..1fd408de9e5 100644 --- a/lisp/org/org-compat.el +++ b/lisp/org/org-compat.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
| @@ -61,12 +61,6 @@ | |||
| 61 | (defalias 'format-message 'format) | 61 | (defalias 'format-message 'format) |
| 62 | (defalias 'gui-get-selection 'x-get-selection)) | 62 | (defalias 'gui-get-selection 'x-get-selection)) |
| 63 | 63 | ||
| 64 | (defun org-decode-time (&optional time zone) | ||
| 65 | "Backward-compatible function for `decode-time'." | ||
| 66 | (if (< emacs-major-version 25) | ||
| 67 | (decode-time time) | ||
| 68 | (decode-time time zone))) | ||
| 69 | |||
| 70 | (unless (fboundp 'directory-name-p) | 64 | (unless (fboundp 'directory-name-p) |
| 71 | (defun directory-name-p (name) | 65 | (defun directory-name-p (name) |
| 72 | "Return non-nil if NAME ends with a directory separator character." | 66 | "Return non-nil if NAME ends with a directory separator character." |
| @@ -78,37 +72,6 @@ | |||
| 78 | (and (memq system-type '(windows-nt ms-dos)) | 72 | (and (memq system-type '(windows-nt ms-dos)) |
| 79 | (= lastc ?\\)))))) | 73 | (= lastc ?\\)))))) |
| 80 | 74 | ||
| 81 | (unless (fboundp 'directory-files-recursively) | ||
| 82 | (defun directory-files-recursively (dir regexp &optional include-directories) | ||
| 83 | "Return list of all files under DIR that have file names matching REGEXP. | ||
| 84 | This function works recursively. Files are returned in \"depth first\" | ||
| 85 | order, and files from each directory are sorted in alphabetical order. | ||
| 86 | Each file name appears in the returned list in its absolute form. | ||
| 87 | Optional argument INCLUDE-DIRECTORIES non-nil means also include in the | ||
| 88 | output directories whose names match REGEXP." | ||
| 89 | (let ((result nil) | ||
| 90 | (files nil) | ||
| 91 | ;; When DIR is "/", remote file names like "/method:" could | ||
| 92 | ;; also be offered. We shall suppress them. | ||
| 93 | (tramp-mode (and tramp-mode (file-remote-p (expand-file-name dir))))) | ||
| 94 | (dolist (file (sort (file-name-all-completions "" dir) | ||
| 95 | 'string<)) | ||
| 96 | (unless (member file '("./" "../")) | ||
| 97 | (if (directory-name-p file) | ||
| 98 | (let* ((leaf (substring file 0 (1- (length file)))) | ||
| 99 | (full-file (expand-file-name leaf dir))) | ||
| 100 | ;; Don't follow symlinks to other directories. | ||
| 101 | (unless (file-symlink-p full-file) | ||
| 102 | (setq result | ||
| 103 | (nconc result (directory-files-recursively | ||
| 104 | full-file regexp include-directories)))) | ||
| 105 | (when (and include-directories | ||
| 106 | (string-match regexp leaf)) | ||
| 107 | (setq result (nconc result (list full-file))))) | ||
| 108 | (when (string-match regexp file) | ||
| 109 | (push (expand-file-name file dir) files))))) | ||
| 110 | (nconc result (nreverse files))))) | ||
| 111 | |||
| 112 | 75 | ||
| 113 | ;;; Obsolete aliases (remove them after the next major release). | 76 | ;;; Obsolete aliases (remove them after the next major release). |
| 114 | 77 | ||
diff --git a/lisp/org/org-datetree.el b/lisp/org/org-datetree.el index a8162fe9382..d00bad222cb 100644 --- a/lisp/org/org-datetree.el +++ b/lisp/org/org-datetree.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
diff --git a/lisp/org/org-docview.el b/lisp/org/org-docview.el index 57069b32aee..a467212d012 100644 --- a/lisp/org/org-docview.el +++ b/lisp/org/org-docview.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Jan Böcker <jan.boecker at jboecker dot de> | 5 | ;; Author: Jan Böcker <jan.boecker at jboecker dot de> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
diff --git a/lisp/org/org-element.el b/lisp/org/org-element.el index 9e5c4007bd7..d9c6522e2f0 100644 --- a/lisp/org/org-element.el +++ b/lisp/org/org-element.el | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | 22 | ||
| 23 | ;;; Commentary: | 23 | ;;; Commentary: |
| 24 | ;; | 24 | ;; |
| 25 | ;; See <http://orgmode.org/worg/dev/org-syntax.html> for details about | 25 | ;; See <https://orgmode.org/worg/dev/org-syntax.html> for details about |
| 26 | ;; Org syntax. | 26 | ;; Org syntax. |
| 27 | ;; | 27 | ;; |
| 28 | ;; Lisp-wise, a syntax object can be represented as a list. | 28 | ;; Lisp-wise, a syntax object can be represented as a list. |
| @@ -3065,7 +3065,7 @@ Assume point is at the beginning of the link." | |||
| 3065 | (setq path (match-string-no-properties 1)) | 3065 | (setq path (match-string-no-properties 1)) |
| 3066 | (setq contents-begin (match-beginning 1)) | 3066 | (setq contents-begin (match-beginning 1)) |
| 3067 | (setq contents-end (match-end 1))) | 3067 | (setq contents-end (match-end 1))) |
| 3068 | ;; Type 2: Standard link, i.e. [[http://orgmode.org][homepage]] | 3068 | ;; Type 2: Standard link, i.e. [[https://orgmode.org][homepage]] |
| 3069 | ((looking-at org-bracket-link-regexp) | 3069 | ((looking-at org-bracket-link-regexp) |
| 3070 | (setq format 'bracket) | 3070 | (setq format 'bracket) |
| 3071 | (setq contents-begin (match-beginning 3)) | 3071 | (setq contents-begin (match-beginning 3)) |
| @@ -3114,14 +3114,14 @@ Assume point is at the beginning of the link." | |||
| 3114 | (t | 3114 | (t |
| 3115 | (setq type "fuzzy") | 3115 | (setq type "fuzzy") |
| 3116 | (setq path raw-link)))) | 3116 | (setq path raw-link)))) |
| 3117 | ;; Type 3: Plain link, e.g., http://orgmode.org | 3117 | ;; Type 3: Plain link, e.g., https://orgmode.org |
| 3118 | ((looking-at org-plain-link-re) | 3118 | ((looking-at org-plain-link-re) |
| 3119 | (setq format 'plain) | 3119 | (setq format 'plain) |
| 3120 | (setq raw-link (match-string-no-properties 0)) | 3120 | (setq raw-link (match-string-no-properties 0)) |
| 3121 | (setq type (match-string-no-properties 1)) | 3121 | (setq type (match-string-no-properties 1)) |
| 3122 | (setq link-end (match-end 0)) | 3122 | (setq link-end (match-end 0)) |
| 3123 | (setq path (match-string-no-properties 2))) | 3123 | (setq path (match-string-no-properties 2))) |
| 3124 | ;; Type 4: Angular link, e.g., <http://orgmode.org>. Unlike to | 3124 | ;; Type 4: Angular link, e.g., <https://orgmode.org>. Unlike to |
| 3125 | ;; bracket links, follow RFC 3986 and remove any extra | 3125 | ;; bracket links, follow RFC 3986 and remove any extra |
| 3126 | ;; whitespace in URI. | 3126 | ;; whitespace in URI. |
| 3127 | ((looking-at org-angle-link-re) | 3127 | ((looking-at org-angle-link-re) |
diff --git a/lisp/org/org-entities.el b/lisp/org/org-entities.el index 65c7d055e08..e291b521f90 100644 --- a/lisp/org/org-entities.el +++ b/lisp/org/org-entities.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org>, | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org>, |
| 6 | ;; Ulf Stegemann <ulf at zeitform dot de> | 6 | ;; Ulf Stegemann <ulf at zeitform dot de> |
| 7 | ;; Keywords: outlines, calendar, wp | 7 | ;; Keywords: outlines, calendar, wp |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | ;; | 9 | ;; |
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | ;; | 11 | ;; |
diff --git a/lisp/org/org-eww.el b/lisp/org/org-eww.el index 3d9dddcac03..1b6112adbb9 100644 --- a/lisp/org/org-eww.el +++ b/lisp/org/org-eww.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Marco Wahl <marcowahlsoft>a<gmailcom> | 5 | ;; Author: Marco Wahl <marcowahlsoft>a<gmailcom> |
| 6 | ;; Keywords: link, eww | 6 | ;; Keywords: link, eww |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/org-faces.el b/lisp/org/org-faces.el index 83871fb4454..750ada1e9c3 100644 --- a/lisp/org/org-faces.el +++ b/lisp/org/org-faces.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
diff --git a/lisp/org/org-feed.el b/lisp/org/org-feed.el index c3491d5df70..fde19e632c7 100644 --- a/lisp/org/org-feed.el +++ b/lisp/org/org-feed.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; | 4 | ;; |
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
| @@ -276,14 +276,21 @@ have been saved." | |||
| 276 | (defun org-feed-update-all () | 276 | (defun org-feed-update-all () |
| 277 | "Get inbox items from all feeds in `org-feed-alist'." | 277 | "Get inbox items from all feeds in `org-feed-alist'." |
| 278 | (interactive) | 278 | (interactive) |
| 279 | (let ((nfeeds (length org-feed-alist)) | 279 | (let ((entries 0) |
| 280 | (nnew (apply '+ (mapcar 'org-feed-update org-feed-alist)))) | 280 | (errors 0) |
| 281 | (message "%s from %d %s" | 281 | (total-feeds (length org-feed-alist))) |
| 282 | (cond ((= nnew 0) "No new entries") | 282 | (dolist (feed org-feed-alist) |
| 283 | ((= nnew 1) "1 new entry") | 283 | (let ((items (ignore-errors (org-feed-update feed)))) |
| 284 | (t (format "%d new entries" nnew))) | 284 | (if items (cl-incf entries items) |
| 285 | nfeeds | 285 | (cl-incf errors)))) |
| 286 | (if (= nfeeds 1) "feed" "feeds")))) | 286 | (message "%s from %d %s%s" |
| 287 | (pcase entries | ||
| 288 | (0 "No new entries") | ||
| 289 | (1 "1 new entry") | ||
| 290 | (_ (format "%d new entries" entries))) | ||
| 291 | total-feeds | ||
| 292 | (if (= total-feeds 1) "feed" "feeds") | ||
| 293 | (if (= 0 errors) "" (format " (unavailable feeds: %d)" errors))))) | ||
| 287 | 294 | ||
| 288 | ;;;###autoload | 295 | ;;;###autoload |
| 289 | (defun org-feed-update (feed &optional retrieve-only) | 296 | (defun org-feed-update (feed &optional retrieve-only) |
diff --git a/lisp/org/org-footnote.el b/lisp/org/org-footnote.el index 4d3f154c257..c6376ca5dc0 100644 --- a/lisp/org/org-footnote.el +++ b/lisp/org/org-footnote.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; | 4 | ;; |
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
diff --git a/lisp/org/org-gnus.el b/lisp/org/org-gnus.el index 0f2cdc28fbf..a53b343efb4 100644 --- a/lisp/org/org-gnus.el +++ b/lisp/org/org-gnus.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Tassilo Horn <tassilo at member dot fsf dot org> | 6 | ;; Tassilo Horn <tassilo at member dot fsf dot org> |
| 7 | ;; Keywords: outlines, hypermedia, calendar, wp | 7 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | ;; | 9 | ;; |
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | ;; | 11 | ;; |
| @@ -42,6 +42,7 @@ | |||
| 42 | 42 | ||
| 43 | (declare-function gnus-activate-group "gnus-start" (group &optional scan dont-check method dont-sub-check)) | 43 | (declare-function gnus-activate-group "gnus-start" (group &optional scan dont-check method dont-sub-check)) |
| 44 | (declare-function gnus-find-method-for-group "gnus" (group &optional info)) | 44 | (declare-function gnus-find-method-for-group "gnus" (group &optional info)) |
| 45 | (declare-function gnus-article-show-summary "gnus-art" ()) | ||
| 45 | (declare-function gnus-group-group-name "gnus-group") | 46 | (declare-function gnus-group-group-name "gnus-group") |
| 46 | (declare-function gnus-group-jump-to-group "gnus-group" (group &optional prompt)) | 47 | (declare-function gnus-group-jump-to-group "gnus-group" (group &optional prompt)) |
| 47 | (declare-function gnus-group-read-group "gnus-group" (&optional all no-article group select-articles)) | 48 | (declare-function gnus-group-read-group "gnus-group" (&optional all no-article group select-articles)) |
| @@ -142,7 +143,14 @@ If `org-store-link' was called with a prefix arg the meaning of | |||
| 142 | (save-excursion | 143 | (save-excursion |
| 143 | (nnir-article-group (gnus-summary-article-number)))) | 144 | (nnir-article-group (gnus-summary-article-number)))) |
| 144 | (_ gnus-newsgroup-name))) | 145 | (_ gnus-newsgroup-name))) |
| 145 | (header (with-current-buffer gnus-summary-buffer | 146 | (header (if (eq major-mode 'gnus-article-mode) |
| 147 | ;; When in an article, first move to summary | ||
| 148 | ;; buffer, with point on the summary of the | ||
| 149 | ;; current article before extracting headers. | ||
| 150 | (save-window-excursion | ||
| 151 | (save-excursion | ||
| 152 | (gnus-article-show-summary) | ||
| 153 | (gnus-summary-article-header))) | ||
| 146 | (gnus-summary-article-header))) | 154 | (gnus-summary-article-header))) |
| 147 | (from (mail-header-from header)) | 155 | (from (mail-header-from header)) |
| 148 | (message-id (org-unbracket-string "<" ">" (mail-header-id header))) | 156 | (message-id (org-unbracket-string "<" ">" (mail-header-id header))) |
diff --git a/lisp/org/org-habit.el b/lisp/org/org-habit.el index 09f13129e1b..375714e35ea 100644 --- a/lisp/org/org-habit.el +++ b/lisp/org/org-habit.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: John Wiegley <johnw at gnu dot org> | 5 | ;; Author: John Wiegley <johnw at gnu dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
diff --git a/lisp/org/org-id.el b/lisp/org/org-id.el index a230947c78a..26b203ff06d 100644 --- a/lisp/org/org-id.el +++ b/lisp/org/org-id.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; | 4 | ;; |
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
diff --git a/lisp/org/org-indent.el b/lisp/org/org-indent.el index ef68c3c4fa7..84bac2aa799 100644 --- a/lisp/org/org-indent.el +++ b/lisp/org/org-indent.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; | 4 | ;; |
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
diff --git a/lisp/org/org-info.el b/lisp/org/org-info.el index db5d66ce761..6dde36ceba1 100644 --- a/lisp/org/org-info.el +++ b/lisp/org/org-info.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
diff --git a/lisp/org/org-inlinetask.el b/lisp/org/org-inlinetask.el index 1825b88cdf6..08fc268d0d7 100644 --- a/lisp/org/org-inlinetask.el +++ b/lisp/org/org-inlinetask.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; | 4 | ;; |
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/org-list.el b/lisp/org/org-list.el index ad0030ffdf8..1f51809f1ce 100644 --- a/lisp/org/org-list.el +++ b/lisp/org/org-list.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Bastien Guerry <bzg@gnu.org> | 6 | ;; Bastien Guerry <bzg@gnu.org> |
| 7 | ;; Keywords: outlines, hypermedia, calendar, wp | 7 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | ;; | 9 | ;; |
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | ;; | 11 | ;; |
| @@ -121,6 +121,7 @@ | |||
| 121 | (declare-function org-element-set-element "org-element" (old new)) | 121 | (declare-function org-element-set-element "org-element" (old new)) |
| 122 | (declare-function org-element-type "org-element" (element)) | 122 | (declare-function org-element-type "org-element" (element)) |
| 123 | (declare-function org-element-update-syntax "org-element" ()) | 123 | (declare-function org-element-update-syntax "org-element" ()) |
| 124 | (declare-function org-end-of-meta-data "org" (&optional full)) | ||
| 124 | (declare-function org-entry-get "org" | 125 | (declare-function org-entry-get "org" |
| 125 | (pom property &optional inherit literal-nil)) | 126 | (pom property &optional inherit literal-nil)) |
| 126 | (declare-function org-export-create-backend "ox" (&rest rest) t) | 127 | (declare-function org-export-create-backend "ox" (&rest rest) t) |
| @@ -2356,27 +2357,23 @@ is an integer, 0 means `-', 1 means `+' etc. If WHICH is | |||
| 2356 | 2357 | ||
| 2357 | (defun org-toggle-checkbox (&optional toggle-presence) | 2358 | (defun org-toggle-checkbox (&optional toggle-presence) |
| 2358 | "Toggle the checkbox in the current line. | 2359 | "Toggle the checkbox in the current line. |
| 2359 | With prefix arg TOGGLE-PRESENCE, add or remove checkboxes. With | 2360 | |
| 2360 | double prefix, set checkbox to [-]. | 2361 | With prefix argument TOGGLE-PRESENCE, add or remove checkboxes. |
| 2362 | With a double prefix argument, set the checkbox to \"[-]\". | ||
| 2361 | 2363 | ||
| 2362 | When there is an active region, toggle status or presence of the | 2364 | When there is an active region, toggle status or presence of the |
| 2363 | first checkbox there, and make every item inside have the same | 2365 | first checkbox there, and make every item inside have the same |
| 2364 | status or presence, respectively. | 2366 | status or presence, respectively. |
| 2365 | 2367 | ||
| 2366 | If the cursor is in a headline, apply this to all checkbox items | 2368 | If point is on a headline, apply this to all checkbox items in |
| 2367 | in the text below the heading, taking as reference the first item | 2369 | the text below the heading, taking as reference the first item in |
| 2368 | in subtree, ignoring drawers." | 2370 | subtree, ignoring planning line and any drawer following it." |
| 2369 | (interactive "P") | 2371 | (interactive "P") |
| 2370 | (save-excursion | 2372 | (save-excursion |
| 2371 | (let* (singlep | 2373 | (let* (singlep |
| 2372 | block-item | 2374 | block-item |
| 2373 | lim-up | 2375 | lim-up |
| 2374 | lim-down | 2376 | lim-down |
| 2375 | (keyword-re (concat "^[ \t]*\\<\\(" org-scheduled-string | ||
| 2376 | "\\|" org-deadline-string | ||
| 2377 | "\\|" org-closed-string | ||
| 2378 | "\\|" org-clock-string "\\)" | ||
| 2379 | " *[[<]\\([^]>]+\\)[]>]")) | ||
| 2380 | (orderedp (org-entry-get nil "ORDERED")) | 2377 | (orderedp (org-entry-get nil "ORDERED")) |
| 2381 | (_bounds | 2378 | (_bounds |
| 2382 | ;; In a region, start at first item in region. | 2379 | ;; In a region, start at first item in region. |
| @@ -2389,15 +2386,10 @@ in subtree, ignoring drawers." | |||
| 2389 | (error "No item in region")) | 2386 | (error "No item in region")) |
| 2390 | (setq lim-down (copy-marker limit)))) | 2387 | (setq lim-down (copy-marker limit)))) |
| 2391 | ((org-at-heading-p) | 2388 | ((org-at-heading-p) |
| 2392 | ;; On an heading, start at first item after drawers and | 2389 | ;; On a heading, start at first item after drawers and |
| 2393 | ;; time-stamps (scheduled, etc.). | 2390 | ;; time-stamps (scheduled, etc.). |
| 2394 | (let ((limit (save-excursion (outline-next-heading) (point)))) | 2391 | (let ((limit (save-excursion (outline-next-heading) (point)))) |
| 2395 | (forward-line 1) | 2392 | (org-end-of-meta-data t) |
| 2396 | (while (or (looking-at org-drawer-regexp) | ||
| 2397 | (looking-at keyword-re)) | ||
| 2398 | (if (looking-at keyword-re) | ||
| 2399 | (forward-line 1) | ||
| 2400 | (re-search-forward "^[ \t]*:END:" limit nil))) | ||
| 2401 | (if (org-list-search-forward (org-item-beginning-re) limit t) | 2393 | (if (org-list-search-forward (org-item-beginning-re) limit t) |
| 2402 | (setq lim-up (point-at-bol)) | 2394 | (setq lim-up (point-at-bol)) |
| 2403 | (error "No item in subtree")) | 2395 | (error "No item in subtree")) |
| @@ -2656,8 +2648,8 @@ Return t if successful." | |||
| 2656 | (= top (point-at-bol)) | 2648 | (= top (point-at-bol)) |
| 2657 | (cdr (assq 'indent org-list-automatic-rules)) | 2649 | (cdr (assq 'indent org-list-automatic-rules)) |
| 2658 | (if no-subtree | 2650 | (if no-subtree |
| 2659 | (error | 2651 | (user-error |
| 2660 | "First item of list cannot move without its subtree") | 2652 | "At first item: use S-M-<left/right> to move the whole list") |
| 2661 | t)))) | 2653 | t)))) |
| 2662 | ;; Determine begin and end points of zone to indent. If moving | 2654 | ;; Determine begin and end points of zone to indent. If moving |
| 2663 | ;; more than one item, save them for subsequent moves. | 2655 | ;; more than one item, save them for subsequent moves. |
diff --git a/lisp/org/org-macro.el b/lisp/org/org-macro.el index 0fb0b8ad175..1033db2af46 100644 --- a/lisp/org/org-macro.el +++ b/lisp/org/org-macro.el | |||
| @@ -130,7 +130,7 @@ Templates are stored in buffer-local variable | |||
| 130 | function installs the following ones: \"property\", | 130 | function installs the following ones: \"property\", |
| 131 | \"time\". and, if the buffer is associated to a file, | 131 | \"time\". and, if the buffer is associated to a file, |
| 132 | \"input-file\" and \"modification-time\"." | 132 | \"input-file\" and \"modification-time\"." |
| 133 | (let* ((templates (org-macro--collect-macros)) | 133 | (let* ((templates nil) |
| 134 | (update-templates | 134 | (update-templates |
| 135 | (lambda (cell) | 135 | (lambda (cell) |
| 136 | (let ((old-template (assoc (car cell) templates))) | 136 | (let ((old-template (assoc (car cell) templates))) |
| @@ -164,7 +164,7 @@ function installs the following ones: \"property\", | |||
| 164 | (org-macro--counter-initialize) | 164 | (org-macro--counter-initialize) |
| 165 | (funcall update-templates | 165 | (funcall update-templates |
| 166 | (cons "n" "(eval (org-macro--counter-increment \"$1\" \"$2\"))")) | 166 | (cons "n" "(eval (org-macro--counter-increment \"$1\" \"$2\"))")) |
| 167 | (setq org-macro-templates templates))) | 167 | (setq org-macro-templates (nconc (org-macro--collect-macros) templates)))) |
| 168 | 168 | ||
| 169 | (defun org-macro-expand (macro templates) | 169 | (defun org-macro-expand (macro templates) |
| 170 | "Return expanded MACRO, as a string. | 170 | "Return expanded MACRO, as a string. |
diff --git a/lisp/org/org-macs.el b/lisp/org/org-macs.el index 79d09e37970..510ece1cb19 100644 --- a/lisp/org/org-macs.el +++ b/lisp/org/org-macs.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
diff --git a/lisp/org/org-mhe.el b/lisp/org/org-mhe.el index 32a6ff11b91..e74a9ee59d6 100644 --- a/lisp/org/org-mhe.el +++ b/lisp/org/org-mhe.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Thomas Baumann <thomas dot baumann at ch dot tum dot de> | 5 | ;; Author: Thomas Baumann <thomas dot baumann at ch dot tum dot de> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
diff --git a/lisp/org/org-mobile.el b/lisp/org/org-mobile.el index 71914750f0b..cbf169f4078 100644 --- a/lisp/org/org-mobile.el +++ b/lisp/org/org-mobile.el | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | ;; | 3 | ;; |
| 4 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 4 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 5 | ;; Keywords: outlines, hypermedia, calendar, wp | 5 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 6 | ;; Homepage: http://orgmode.org | 6 | ;; Homepage: https://orgmode.org |
| 7 | ;; | 7 | ;; |
| 8 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
| 9 | ;; | 9 | ;; |
diff --git a/lisp/org/org-mouse.el b/lisp/org/org-mouse.el index ba38c058dd0..5a10b59b1eb 100644 --- a/lisp/org/org-mouse.el +++ b/lisp/org/org-mouse.el | |||
| @@ -24,7 +24,7 @@ | |||
| 24 | ;; | 24 | ;; |
| 25 | ;; Org-mouse provides mouse support for org-mode. | 25 | ;; Org-mouse provides mouse support for org-mode. |
| 26 | ;; | 26 | ;; |
| 27 | ;; http://orgmode.org | 27 | ;; https://orgmode.org |
| 28 | ;; | 28 | ;; |
| 29 | ;; Org mouse implements the following features: | 29 | ;; Org mouse implements the following features: |
| 30 | ;; * following links with the left mouse button | 30 | ;; * following links with the left mouse button |
diff --git a/lisp/org/org-pcomplete.el b/lisp/org/org-pcomplete.el index a7cc09def4b..88a2e10d854 100644 --- a/lisp/org/org-pcomplete.el +++ b/lisp/org/org-pcomplete.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; John Wiegley <johnw at gnu dot org> | 6 | ;; John Wiegley <johnw at gnu dot org> |
| 7 | ;; Keywords: outlines, hypermedia, calendar, wp | 7 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | ;; | 9 | ;; |
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | ;; | 11 | ;; |
diff --git a/lisp/org/org-plot.el b/lisp/org/org-plot.el index 6c74f3e6581..ebd7af42a85 100644 --- a/lisp/org/org-plot.el +++ b/lisp/org/org-plot.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; | 4 | ;; |
| 5 | ;; Author: Eric Schulte <schulte dot eric at gmail dot com> | 5 | ;; Author: Eric Schulte <schulte dot eric at gmail dot com> |
| 6 | ;; Keywords: tables, plotting | 6 | ;; Keywords: tables, plotting |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
diff --git a/lisp/org/org-protocol.el b/lisp/org/org-protocol.el index 27c2bb28d0f..33957ee3269 100644 --- a/lisp/org/org-protocol.el +++ b/lisp/org/org-protocol.el | |||
| @@ -184,10 +184,10 @@ Possible properties are: | |||
| 184 | Example: | 184 | Example: |
| 185 | 185 | ||
| 186 | (setq org-protocol-project-alist | 186 | (setq org-protocol-project-alist |
| 187 | \\='((\"http://orgmode.org/worg/\" | 187 | \\='((\"https://orgmode.org/worg/\" |
| 188 | :online-suffix \".php\" | 188 | :online-suffix \".php\" |
| 189 | :working-suffix \".org\" | 189 | :working-suffix \".org\" |
| 190 | :base-url \"http://orgmode.org/worg/\" | 190 | :base-url \"https://orgmode.org/worg/\" |
| 191 | :working-directory \"/home/user/org/Worg/\") | 191 | :working-directory \"/home/user/org/Worg/\") |
| 192 | (\"http://localhost/org-notes/\" | 192 | (\"http://localhost/org-notes/\" |
| 193 | :online-suffix \".html\" | 193 | :online-suffix \".html\" |
| @@ -688,7 +688,7 @@ the cdr of an element in `org-publish-project-alist', reuse | |||
| 688 | (let ((working-dir (expand-file-name | 688 | (let ((working-dir (expand-file-name |
| 689 | (or (plist-get project-plist :base-directory) | 689 | (or (plist-get project-plist :base-directory) |
| 690 | default-directory))) | 690 | default-directory))) |
| 691 | (base-url "http://orgmode.org/worg/") | 691 | (base-url "https://orgmode.org/worg/") |
| 692 | (strip-suffix (or (plist-get project-plist :html-extension) ".html")) | 692 | (strip-suffix (or (plist-get project-plist :html-extension) ".html")) |
| 693 | (working-suffix (if (plist-get project-plist :base-extension) | 693 | (working-suffix (if (plist-get project-plist :base-extension) |
| 694 | (concat "." (plist-get project-plist :base-extension)) | 694 | (concat "." (plist-get project-plist :base-extension)) |
diff --git a/lisp/org/org-rmail.el b/lisp/org/org-rmail.el index be433f66d1f..d50fd648b60 100644 --- a/lisp/org/org-rmail.el +++ b/lisp/org/org-rmail.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
diff --git a/lisp/org/org-src.el b/lisp/org/org-src.el index 7c28acf9d85..829354c0d56 100644 --- a/lisp/org/org-src.el +++ b/lisp/org/org-src.el | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | ;; Bastien Guerry <bzg@gnu.org> | 6 | ;; Bastien Guerry <bzg@gnu.org> |
| 7 | ;; Dan Davison <davison at stats dot ox dot ac dot uk> | 7 | ;; Dan Davison <davison at stats dot ox dot ac dot uk> |
| 8 | ;; Keywords: outlines, hypermedia, calendar, wp | 8 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 9 | ;; Homepage: http://orgmode.org | 9 | ;; Homepage: https://orgmode.org |
| 10 | ;; | 10 | ;; |
| 11 | ;; This file is part of GNU Emacs. | 11 | ;; This file is part of GNU Emacs. |
| 12 | ;; | 12 | ;; |
diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el index 4bb5c91ce87..dcf74303637 100644 --- a/lisp/org/org-table.el +++ b/lisp/org/org-table.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
| @@ -135,7 +135,7 @@ the fixed string \"#+ORGTBL: SEND\", followed by instruction on how to | |||
| 135 | convert the table into a data structure useful in the | 135 | convert the table into a data structure useful in the |
| 136 | language of the buffer. Check the manual for the section on | 136 | language of the buffer. Check the manual for the section on |
| 137 | \"Translator functions\", and more generally check out | 137 | \"Translator functions\", and more generally check out |
| 138 | http://orgmode.org/manual/Tables-in-arbitrary-syntax.html#Tables-in-arbitrary-syntax | 138 | the Info node `(org)Tables in arbitrary syntax'. |
| 139 | 139 | ||
| 140 | All occurrences of %n in a template will be replaced with the name of the | 140 | All occurrences of %n in a template will be replaced with the name of the |
| 141 | table, obtained by prompting the user." | 141 | table, obtained by prompting the user." |
| @@ -387,16 +387,19 @@ portability of tables." | |||
| 387 | (const :tag "Error on attempt to cross" error))) | 387 | (const :tag "Error on attempt to cross" error))) |
| 388 | 388 | ||
| 389 | (defcustom org-table-formula-create-columns nil | 389 | (defcustom org-table-formula-create-columns nil |
| 390 | "Non-nil means that evaluation of a field formula can add new | 390 | "Non-nil means evaluation of formula can add new columns. |
| 391 | columns if an out-of-bounds field is being set." | 391 | When non-nil, evaluating an out-of-bounds field can insert as |
| 392 | many columns as needed. When set to `warn', issue a warning when | ||
| 393 | doing so. When set to `prompt', ask user before creating a new | ||
| 394 | column. Otherwise, throw an error." | ||
| 392 | :group 'org-table-calculation | 395 | :group 'org-table-calculation |
| 393 | :version "26.1" | 396 | :version "26.1" |
| 394 | :package-version '(Org . "8.3") | 397 | :package-version '(Org . "8.3") |
| 395 | :type '(choice | 398 | :type '(choice |
| 396 | (const :tag "Setting an out-of-bounds field generates an error (default)" nil) | 399 | (const :tag "Out-of-bounds field generates an error (default)" nil) |
| 397 | (const :tag "Setting an out-of-bounds field silently adds columns as needed" t) | 400 | (const :tag "Out-of-bounds field silently adds columns as needed" t) |
| 398 | (const :tag "Setting an out-of-bounds field adds columns as needed, but issues a warning message" warn) | 401 | (const :tag "Out-of-bounds field adds columns, but issues a warning" warn) |
| 399 | (const :tag "When setting an out-of-bounds field, the user is prompted" prompt))) | 402 | (const :tag "Prompt user when setting an out-of-bounds field" prompt))) |
| 400 | 403 | ||
| 401 | (defgroup org-table-import-export nil | 404 | (defgroup org-table-import-export nil |
| 402 | "Options concerning table import and export in Org mode." | 405 | "Options concerning table import and export in Org mode." |
| @@ -3327,7 +3330,9 @@ existing formula for column %s" | |||
| 3327 | t)) | 3330 | t)) |
| 3328 | (and (eq org-table-formula-create-columns 'prompt) | 3331 | (and (eq org-table-formula-create-columns 'prompt) |
| 3329 | (yes-or-no-p | 3332 | (yes-or-no-p |
| 3330 | "Out-of-bounds formula. Add columns? "))))))) | 3333 | "Out-of-bounds formula. Add columns? ")) |
| 3334 | (user-error | ||
| 3335 | "Missing columns in the table. Aborting")))))) | ||
| 3331 | (org-table-eval-formula nil formula t t t t)))) | 3336 | (org-table-eval-formula nil formula t t t t)))) |
| 3332 | ;; Clean up markers and internal text property. | 3337 | ;; Clean up markers and internal text property. |
| 3333 | (remove-text-properties (point-min) (point-max) '(org-untouchable t)) | 3338 | (remove-text-properties (point-min) (point-max) '(org-untouchable t)) |
diff --git a/lisp/org/org-timer.el b/lisp/org/org-timer.el index 65e777b63ef..d840944ef17 100644 --- a/lisp/org/org-timer.el +++ b/lisp/org/org-timer.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
diff --git a/lisp/org/org-version.el b/lisp/org/org-version.el index 8ec120e9b2f..132ad2b3035 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.6")) | 8 | (let ((org-release "9.1.9")) |
| 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.6-50-g96b33f")) | 14 | (let ((org-git-version "release_9.1.9-65-g5e4542")) |
| 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 706619c5d2b..9690c8e90c6 100644 --- a/lisp/org/org-w3m.el +++ b/lisp/org/org-w3m.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Andy Stewart <lazycat dot manatee at gmail dot com> | 5 | ;; Author: Andy Stewart <lazycat dot manatee at gmail dot com> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | ;; | 8 | ;; |
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | ;; | 10 | ;; |
diff --git a/lisp/org/org.el b/lisp/org/org.el index a53553bfd8b..1373861ad1b 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el | |||
| @@ -6,8 +6,8 @@ | |||
| 6 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 6 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 7 | ;; Maintainer: Carsten Dominik <carsten at orgmode dot org> | 7 | ;; Maintainer: Carsten Dominik <carsten at orgmode dot org> |
| 8 | ;; Keywords: outlines, hypermedia, calendar, wp | 8 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 9 | ;; Homepage: http://orgmode.org | 9 | ;; Homepage: https://orgmode.org |
| 10 | ;; Version: 9.1.6 | 10 | ;; Version: 9.1.9 |
| 11 | ;; | 11 | ;; |
| 12 | ;; This file is part of GNU Emacs. | 12 | ;; This file is part of GNU Emacs. |
| 13 | ;; | 13 | ;; |
| @@ -49,7 +49,7 @@ | |||
| 49 | ;; --------------------------- | 49 | ;; --------------------------- |
| 50 | ;; See the corresponding sections in the manual at | 50 | ;; See the corresponding sections in the manual at |
| 51 | ;; | 51 | ;; |
| 52 | ;; http://orgmode.org/org.html#Installation | 52 | ;; https://orgmode.org/org.html#Installation |
| 53 | ;; | 53 | ;; |
| 54 | ;; Documentation | 54 | ;; Documentation |
| 55 | ;; ------------- | 55 | ;; ------------- |
| @@ -60,7 +60,7 @@ | |||
| 60 | ;; in the doc/ directory. | 60 | ;; in the doc/ directory. |
| 61 | ;; | 61 | ;; |
| 62 | ;; A list of recent changes can be found at | 62 | ;; A list of recent changes can be found at |
| 63 | ;; http://orgmode.org/Changes.html | 63 | ;; https://orgmode.org/Changes.html |
| 64 | ;; | 64 | ;; |
| 65 | ;;; Code: | 65 | ;;; Code: |
| 66 | 66 | ||
| @@ -1866,7 +1866,7 @@ See the manual for examples." | |||
| 1866 | 1866 | ||
| 1867 | (defcustom org-descriptive-links t | 1867 | (defcustom org-descriptive-links t |
| 1868 | "Non-nil means Org will display descriptive links. | 1868 | "Non-nil means Org will display descriptive links. |
| 1869 | E.g. [[http://orgmode.org][Org website]] will be displayed as | 1869 | E.g. [[https://orgmode.org][Org website]] will be displayed as |
| 1870 | \"Org Website\", hiding the link itself and just displaying its | 1870 | \"Org Website\", hiding the link itself and just displaying its |
| 1871 | description. When set to nil, Org will display the full links | 1871 | description. When set to nil, Org will display the full links |
| 1872 | literally. | 1872 | literally. |
| @@ -3758,7 +3758,7 @@ This variable is populated from #+PROPERTY lines.") | |||
| 3758 | :group 'org) | 3758 | :group 'org) |
| 3759 | 3759 | ||
| 3760 | (defvar-local org-category nil | 3760 | (defvar-local org-category nil |
| 3761 | "Variable used by org files to set a category for agenda display. | 3761 | "Variable used by Org files to set a category for agenda display. |
| 3762 | Such files should use a file variable to set it, for example | 3762 | Such files should use a file variable to set it, for example |
| 3763 | 3763 | ||
| 3764 | # -*- mode: org; org-category: \"ELisp\" | 3764 | # -*- mode: org; org-category: \"ELisp\" |
| @@ -4040,7 +4040,7 @@ Place-holders only used by `:image-converter': | |||
| 4040 | (defcustom org-preview-latex-image-directory "ltximg/" | 4040 | (defcustom org-preview-latex-image-directory "ltximg/" |
| 4041 | "Path to store latex preview images. | 4041 | "Path to store latex preview images. |
| 4042 | A relative path here creates many directories relative to the | 4042 | A relative path here creates many directories relative to the |
| 4043 | processed org files paths. An absolute path puts all preview | 4043 | processed Org files paths. An absolute path puts all preview |
| 4044 | images at the same place." | 4044 | images at the same place." |
| 4045 | :group 'org-latex | 4045 | :group 'org-latex |
| 4046 | :version "26.1" | 4046 | :version "26.1" |
| @@ -4238,9 +4238,9 @@ lines to the buffer: | |||
| 4238 | :type 'boolean) | 4238 | :type 'boolean) |
| 4239 | 4239 | ||
| 4240 | (defcustom org-hidden-keywords nil | 4240 | (defcustom org-hidden-keywords nil |
| 4241 | "List of symbols corresponding to keywords to be hidden the org buffer. | 4241 | "List of symbols corresponding to keywords to be hidden in the Org buffer. |
| 4242 | For example, a value \\='(title) for this list will make the document's title | 4242 | For example, a value \\='(title) for this list makes the document's title |
| 4243 | appear in the buffer without the initial #+TITLE: keyword." | 4243 | appear in the buffer without the initial \"#+TITLE:\" part." |
| 4244 | :group 'org-appearance | 4244 | :group 'org-appearance |
| 4245 | :version "24.1" | 4245 | :version "24.1" |
| 4246 | :type '(set (const :tag "#+AUTHOR" author) | 4246 | :type '(set (const :tag "#+AUTHOR" author) |
| @@ -4903,6 +4903,18 @@ Support for group tags is controlled by the option | |||
| 4903 | (message "Groups tags support has been turned %s" | 4903 | (message "Groups tags support has been turned %s" |
| 4904 | (if org-group-tags "on" "off"))) | 4904 | (if org-group-tags "on" "off"))) |
| 4905 | 4905 | ||
| 4906 | (defun org-tag-add-to-alist (alist1 alist2) | ||
| 4907 | "Append ALIST1 elements to ALIST2 if they are not there yet." | ||
| 4908 | (cond | ||
| 4909 | ((null alist2) alist1) | ||
| 4910 | ((null alist1) alist2) | ||
| 4911 | (t (let ((alist2-cars (mapcar (lambda (x) (car-safe x)) alist2)) | ||
| 4912 | to-add) | ||
| 4913 | (dolist (i alist1) | ||
| 4914 | (unless (member (car-safe i) alist2-cars) | ||
| 4915 | (push i to-add))) | ||
| 4916 | (append to-add alist2))))) | ||
| 4917 | |||
| 4906 | (defun org-set-regexps-and-options (&optional tags-only) | 4918 | (defun org-set-regexps-and-options (&optional tags-only) |
| 4907 | "Precompute regular expressions used in the current buffer. | 4919 | "Precompute regular expressions used in the current buffer. |
| 4908 | When optional argument TAGS-ONLY is non-nil, only compute tags | 4920 | When optional argument TAGS-ONLY is non-nil, only compute tags |
| @@ -4931,10 +4943,11 @@ related expressions." | |||
| 4931 | (mapcar #'org-add-prop-inherited | 4943 | (mapcar #'org-add-prop-inherited |
| 4932 | (cdr (assq 'filetags alist)))) | 4944 | (cdr (assq 'filetags alist)))) |
| 4933 | (setq org-current-tag-alist | 4945 | (setq org-current-tag-alist |
| 4934 | (append org-tag-persistent-alist | 4946 | (org-tag-add-to-alist |
| 4935 | (let ((tags (cdr (assq 'tags alist)))) | 4947 | org-tag-persistent-alist |
| 4936 | (if tags (org-tag-string-to-alist tags) | 4948 | (let ((tags (cdr (assq 'tags alist)))) |
| 4937 | org-tag-alist)))) | 4949 | (if tags (org-tag-string-to-alist tags) |
| 4950 | org-tag-alist)))) | ||
| 4938 | (setq org-tag-groups-alist | 4951 | (setq org-tag-groups-alist |
| 4939 | (org-tag-alist-to-groups org-current-tag-alist)) | 4952 | (org-tag-alist-to-groups org-current-tag-alist)) |
| 4940 | (unless tags-only | 4953 | (unless tags-only |
| @@ -5249,7 +5262,7 @@ a string, summarizing TAGS, as a list of strings." | |||
| 5249 | (`(,(or :endgroup :endgrouptag)) | 5262 | (`(,(or :endgroup :endgrouptag)) |
| 5250 | (when (eq group-status 'append) | 5263 | (when (eq group-status 'append) |
| 5251 | (push (nreverse current-group) groups)) | 5264 | (push (nreverse current-group) groups)) |
| 5252 | (setq group-status nil)) | 5265 | (setq group-status nil current-group nil)) |
| 5253 | (`(:grouptags) (setq group-status 'append)) | 5266 | (`(:grouptags) (setq group-status 'append)) |
| 5254 | ((and `(,tag . ,_) (guard group-status)) | 5267 | ((and `(,tag . ,_) (guard group-status)) |
| 5255 | (if (eq group-status 'append) (push tag current-group) | 5268 | (if (eq group-status 'append) (push tag current-group) |
| @@ -6052,17 +6065,21 @@ by a #." | |||
| 6052 | 6065 | ||
| 6053 | (defun org-fontify-macros (limit) | 6066 | (defun org-fontify-macros (limit) |
| 6054 | "Fontify macros." | 6067 | "Fontify macros." |
| 6055 | (when (re-search-forward "\\({{{\\).+?\\(}}}\\)" limit t) | 6068 | (when (re-search-forward "{{{\\([a-zA-Z][-a-zA-Z0-9_]*\\)" limit t) |
| 6056 | (add-text-properties | 6069 | (let ((begin (match-beginning 0)) |
| 6057 | (match-beginning 0) (match-end 0) | 6070 | (opening-end (match-beginning 1))) |
| 6058 | '(font-lock-fontified t face org-macro)) | 6071 | (when (and (re-search-forward "\n[ \t]*\n\\|\\(}}}\\)" limit t) |
| 6059 | (when org-hide-macro-markers | 6072 | (match-string 1)) |
| 6060 | (add-text-properties (match-end 2) (match-beginning 2) | 6073 | (let ((end (match-end 1)) |
| 6061 | '(invisible t)) | 6074 | (closing-start (match-beginning 1))) |
| 6062 | (add-text-properties (match-beginning 1) (match-end 1) | 6075 | (add-text-properties |
| 6063 | '(invisible t))) | 6076 | begin end |
| 6064 | (org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0)) | 6077 | '(font-lock-multiline t font-lock-fontified t face org-macro)) |
| 6065 | t)) | 6078 | (org-remove-flyspell-overlays-in begin end) |
| 6079 | (when org-hide-macro-markers | ||
| 6080 | (add-text-properties begin opening-end '(invisible t)) | ||
| 6081 | (add-text-properties closing-start end '(invisible t))) | ||
| 6082 | t))))) | ||
| 6066 | 6083 | ||
| 6067 | (defun org-activate-footnote-links (limit) | 6084 | (defun org-activate-footnote-links (limit) |
| 6068 | "Add text properties for footnotes." | 6085 | "Add text properties for footnotes." |
| @@ -8459,7 +8476,7 @@ This is a short-hand for marking the subtree and then cutting it." | |||
| 8459 | (org-copy-subtree n 'cut)) | 8476 | (org-copy-subtree n 'cut)) |
| 8460 | 8477 | ||
| 8461 | (defun org-copy-subtree (&optional n cut force-store-markers nosubtrees) | 8478 | (defun org-copy-subtree (&optional n cut force-store-markers nosubtrees) |
| 8462 | "Copy the current subtree it in the clipboard. | 8479 | "Copy the current subtree into the clipboard. |
| 8463 | With prefix arg N, copy this many sequential subtrees. | 8480 | With prefix arg N, copy this many sequential subtrees. |
| 8464 | This is a short-hand for marking the subtree and then copying it. | 8481 | This is a short-hand for marking the subtree and then copying it. |
| 8465 | If CUT is non-nil, actually cut the subtree. | 8482 | If CUT is non-nil, actually cut the subtree. |
| @@ -8532,7 +8549,6 @@ When REMOVE is non-nil, remove the subtree from the clipboard." | |||
| 8532 | (org-with-limited-levels | 8549 | (org-with-limited-levels |
| 8533 | (let* ((visp (not (org-invisible-p))) | 8550 | (let* ((visp (not (org-invisible-p))) |
| 8534 | (txt tree) | 8551 | (txt tree) |
| 8535 | (^re_ "\\(\\*+\\)[ \t]*") | ||
| 8536 | (old-level (if (string-match org-outline-regexp-bol txt) | 8552 | (old-level (if (string-match org-outline-regexp-bol txt) |
| 8537 | (- (match-end 0) (match-beginning 0) 1) | 8553 | (- (match-end 0) (match-beginning 0) 1) |
| 8538 | -1)) | 8554 | -1)) |
| @@ -8549,7 +8565,7 @@ When REMOVE is non-nil, remove the subtree from the clipboard." | |||
| 8549 | (condition-case nil | 8565 | (condition-case nil |
| 8550 | (progn | 8566 | (progn |
| 8551 | (outline-previous-visible-heading 1) | 8567 | (outline-previous-visible-heading 1) |
| 8552 | (if (looking-at ^re_) | 8568 | (if (looking-at org-outline-regexp-bol) |
| 8553 | (- (match-end 0) (match-beginning 0) 1) | 8569 | (- (match-end 0) (match-beginning 0) 1) |
| 8554 | 1)) | 8570 | 1)) |
| 8555 | (error 1)))) | 8571 | (error 1)))) |
| @@ -8558,7 +8574,7 @@ When REMOVE is non-nil, remove the subtree from the clipboard." | |||
| 8558 | (progn | 8574 | (progn |
| 8559 | (or (looking-at org-outline-regexp) | 8575 | (or (looking-at org-outline-regexp) |
| 8560 | (outline-next-visible-heading 1)) | 8576 | (outline-next-visible-heading 1)) |
| 8561 | (if (looking-at ^re_) | 8577 | (if (looking-at org-outline-regexp-bol) |
| 8562 | (- (match-end 0) (match-beginning 0) 1) | 8578 | (- (match-end 0) (match-beginning 0) 1) |
| 8563 | 1)) | 8579 | 1)) |
| 8564 | (error 1)))) | 8580 | (error 1)))) |
| @@ -9680,7 +9696,8 @@ active region." | |||
| 9680 | (cdr (assoc-string | 9696 | (cdr (assoc-string |
| 9681 | (completing-read | 9697 | (completing-read |
| 9682 | "Which function for creating the link? " | 9698 | "Which function for creating the link? " |
| 9683 | (mapcar #'car results-alist) nil t name) | 9699 | (mapcar #'car results-alist) |
| 9700 | nil t (symbol-name name)) | ||
| 9684 | results-alist))) | 9701 | results-alist))) |
| 9685 | t)))) | 9702 | t)))) |
| 9686 | (setq link (plist-get org-store-link-plist :link)) | 9703 | (setq link (plist-get org-store-link-plist :link)) |
| @@ -14124,7 +14141,7 @@ headlines matching this string." | |||
| 14124 | 'org-todo-regexp org-todo-regexp | 14141 | 'org-todo-regexp org-todo-regexp |
| 14125 | 'org-complex-heading-regexp org-complex-heading-regexp | 14142 | 'org-complex-heading-regexp org-complex-heading-regexp |
| 14126 | 'help-echo | 14143 | 'help-echo |
| 14127 | (format "mouse-2 or RET jump to org file %s" | 14144 | (format "mouse-2 or RET jump to Org file %S" |
| 14128 | (abbreviate-file-name | 14145 | (abbreviate-file-name |
| 14129 | (or (buffer-file-name (buffer-base-buffer)) | 14146 | (or (buffer-file-name (buffer-base-buffer)) |
| 14130 | (buffer-name (buffer-base-buffer))))))) | 14147 | (buffer-name (buffer-base-buffer))))))) |
| @@ -14320,10 +14337,12 @@ instead of the agenda files." | |||
| 14320 | (mapcar | 14337 | (mapcar |
| 14321 | (lambda (file) | 14338 | (lambda (file) |
| 14322 | (set-buffer (find-file-noselect file)) | 14339 | (set-buffer (find-file-noselect file)) |
| 14323 | (mapcar (lambda (x) | 14340 | (org-tag-add-to-alist |
| 14324 | (and (stringp (car-safe x)) | 14341 | (org-get-buffer-tags) |
| 14325 | (list (car-safe x)))) | 14342 | (mapcar (lambda (x) |
| 14326 | (or org-current-tag-alist (org-get-buffer-tags)))) | 14343 | (and (stringp (car-safe x)) |
| 14344 | (list (car-safe x)))) | ||
| 14345 | org-current-tag-alist))) | ||
| 14327 | (if (car-safe files) files | 14346 | (if (car-safe files) files |
| 14328 | (org-agenda-files)))))))) | 14347 | (org-agenda-files)))))))) |
| 14329 | 14348 | ||
| @@ -14350,9 +14369,9 @@ See also `org-scan-tags'." | |||
| 14350 | ;; Get a new match request, with completion against the global | 14369 | ;; Get a new match request, with completion against the global |
| 14351 | ;; tags table and the local tags in current buffer. | 14370 | ;; tags table and the local tags in current buffer. |
| 14352 | (let ((org-last-tags-completion-table | 14371 | (let ((org-last-tags-completion-table |
| 14353 | (org-uniquify | 14372 | (org-tag-add-to-alist |
| 14354 | (delq nil (append (org-get-buffer-tags) | 14373 | (org-get-buffer-tags) |
| 14355 | (org-global-tags-completion-table)))))) | 14374 | (org-global-tags-completion-table)))) |
| 14356 | (setq match | 14375 | (setq match |
| 14357 | (completing-read | 14376 | (completing-read |
| 14358 | "Match: " | 14377 | "Match: " |
| @@ -14534,7 +14553,7 @@ When DOWNCASE is non-nil, expand downcased TAGS." | |||
| 14534 | (tag (match-string 2 return-match)) | 14553 | (tag (match-string 2 return-match)) |
| 14535 | (tag (if downcased (downcase tag) tag))) | 14554 | (tag (if downcased (downcase tag) tag))) |
| 14536 | (unless (or (get-text-property 0 'grouptag (match-string 2 return-match)) | 14555 | (unless (or (get-text-property 0 'grouptag (match-string 2 return-match)) |
| 14537 | (member tag work-already-expanded)) | 14556 | (member tag tags-already-expanded)) |
| 14538 | (setq tags-in-group (assoc tag taggroups)) | 14557 | (setq tags-in-group (assoc tag taggroups)) |
| 14539 | (push tag work-already-expanded) | 14558 | (push tag work-already-expanded) |
| 14540 | ;; Recursively expand each tag in the group, if the tag hasn't | 14559 | ;; Recursively expand each tag in the group, if the tag hasn't |
| @@ -14802,36 +14821,28 @@ Assume point is on a headline." | |||
| 14802 | (org-set-tags arg just-align)))) | 14821 | (org-set-tags arg just-align)))) |
| 14803 | 14822 | ||
| 14804 | (defun org-set-tags-to (data) | 14823 | (defun org-set-tags-to (data) |
| 14805 | "Set the tags of the current entry to DATA, replacing the current tags. | 14824 | "Set the tags of the current entry to DATA, replacing current tags. |
| 14806 | DATA may be a tags string like :aa:bb:cc:, or a list of tags. | 14825 | DATA may be a tags string like \":aa:bb:cc:\", or a list of tags. |
| 14807 | If DATA is nil or the empty string, any tags will be removed." | 14826 | If DATA is nil or the empty string, all tags are removed." |
| 14808 | (interactive "sTags: ") | 14827 | (interactive "sTags: ") |
| 14809 | (setq data | 14828 | (let ((data |
| 14810 | (cond | 14829 | (pcase (if (stringp data) (org-trim data) data) |
| 14811 | ((eq data nil) "") | 14830 | ((or `nil "") nil) |
| 14812 | ((equal data "") "") | 14831 | ((pred listp) (format ":%s:" (mapconcat #'identity data ":"))) |
| 14813 | ((stringp data) | 14832 | ((pred stringp) |
| 14814 | (concat ":" (mapconcat 'identity (org-split-string data ":+") ":") | 14833 | (format ":%s:" |
| 14815 | ":")) | 14834 | (mapconcat #'identity (org-split-string data ":+") ":"))) |
| 14816 | ((listp data) | 14835 | (_ (error "Invalid tag specification: %S" data))))) |
| 14817 | (concat ":" (mapconcat 'identity data ":") ":")))) | 14836 | (org-with-wide-buffer |
| 14818 | (when data | 14837 | (org-back-to-heading t) |
| 14819 | (save-excursion | 14838 | (let ((case-fold-search nil)) (looking-at org-complex-heading-regexp)) |
| 14820 | (org-back-to-heading t) | 14839 | (when (or (match-end 5) data) |
| 14821 | (when (let ((case-fold-search nil)) | 14840 | (goto-char (or (match-beginning 5) (line-end-position))) |
| 14822 | (looking-at org-complex-heading-regexp)) | 14841 | (skip-chars-backward " \t") |
| 14823 | (if (match-end 5) | 14842 | (delete-region (point) (line-end-position)) |
| 14824 | (progn | 14843 | (when data |
| 14825 | (goto-char (match-beginning 5)) | 14844 | (insert " " data) |
| 14826 | (insert data) | 14845 | (org-set-tags nil 'align)))))) |
| 14827 | (delete-region (point) (point-at-eol)) | ||
| 14828 | (org-set-tags nil 'align)) | ||
| 14829 | (goto-char (point-at-eol)) | ||
| 14830 | (insert " " data) | ||
| 14831 | (org-set-tags nil 'align))) | ||
| 14832 | (beginning-of-line 1) | ||
| 14833 | (when (looking-at ".*?\\([ \t]+\\)$") | ||
| 14834 | (delete-region (match-beginning 1) (match-end 1)))))) | ||
| 14835 | 14846 | ||
| 14836 | (defun org-align-all-tags () | 14847 | (defun org-align-all-tags () |
| 14837 | "Align the tags in all headings." | 14848 | "Align the tags in all headings." |
| @@ -14874,27 +14885,16 @@ When JUST-ALIGN is non-nil, only align tags." | |||
| 14874 | (if just-align current | 14885 | (if just-align current |
| 14875 | ;; Get a new set of tags from the user. | 14886 | ;; Get a new set of tags from the user. |
| 14876 | (save-excursion | 14887 | (save-excursion |
| 14877 | (let* ((seen) | 14888 | (let* ((table |
| 14878 | (table | ||
| 14879 | (setq | 14889 | (setq |
| 14880 | org-last-tags-completion-table | 14890 | org-last-tags-completion-table |
| 14881 | ;; Uniquify tags in alists, yet preserve | 14891 | (org-tag-add-to-alist |
| 14882 | ;; structure (i.e., keywords). | 14892 | (and |
| 14883 | (delq nil | 14893 | org-complete-tags-always-offer-all-agenda-tags |
| 14884 | (mapcar | 14894 | (org-global-tags-completion-table |
| 14885 | (lambda (pair) | 14895 | (org-agenda-files))) |
| 14886 | (let ((head (car pair))) | 14896 | (or org-current-tag-alist |
| 14887 | (cond ((symbolp head) pair) | 14897 | (org-get-buffer-tags))))) |
| 14888 | ((member head seen) nil) | ||
| 14889 | (t (push head seen) | ||
| 14890 | pair)))) | ||
| 14891 | (append | ||
| 14892 | (or org-current-tag-alist | ||
| 14893 | (org-get-buffer-tags)) | ||
| 14894 | (and | ||
| 14895 | org-complete-tags-always-offer-all-agenda-tags | ||
| 14896 | (org-global-tags-completion-table | ||
| 14897 | (org-agenda-files)))))))) | ||
| 14898 | (current-tags (org-split-string current ":")) | 14898 | (current-tags (org-split-string current ":")) |
| 14899 | (inherited-tags | 14899 | (inherited-tags |
| 14900 | (nreverse (nthcdr (length current-tags) | 14900 | (nreverse (nthcdr (length current-tags) |
| @@ -14973,9 +14973,9 @@ This works in the agenda, and also in an Org buffer." | |||
| 14973 | (list (region-beginning) (region-end) | 14973 | (list (region-beginning) (region-end) |
| 14974 | (let ((org-last-tags-completion-table | 14974 | (let ((org-last-tags-completion-table |
| 14975 | (if (derived-mode-p 'org-mode) | 14975 | (if (derived-mode-p 'org-mode) |
| 14976 | (org-uniquify | 14976 | (org-tag-add-to-alist |
| 14977 | (delq nil (append (org-get-buffer-tags) | 14977 | (org-get-buffer-tags) |
| 14978 | (org-global-tags-completion-table)))) | 14978 | (org-global-tags-completion-table)) |
| 14979 | (org-global-tags-completion-table)))) | 14979 | (org-global-tags-completion-table)))) |
| 14980 | (completing-read | 14980 | (completing-read |
| 14981 | "Tag: " 'org-tags-completion-function nil nil nil | 14981 | "Tag: " 'org-tags-completion-function nil nil nil |
| @@ -16510,7 +16510,7 @@ a priority cookie and tags in the standard locations." | |||
| 16510 | (move-marker (make-marker) (match-beginning 0)))))))) | 16510 | (move-marker (make-marker) (match-beginning 0)))))))) |
| 16511 | 16511 | ||
| 16512 | (defun org-find-exact-heading-in-directory (heading &optional dir) | 16512 | (defun org-find-exact-heading-in-directory (heading &optional dir) |
| 16513 | "Find Org node headline HEADING in all .org files in directory DIR. | 16513 | "Find Org node headline HEADING in all \".org\" files in directory DIR. |
| 16514 | When the target headline is found, return a marker to this location." | 16514 | When the target headline is found, return a marker to this location." |
| 16515 | (let ((files (directory-files (or dir default-directory) | 16515 | (let ((files (directory-files (or dir default-directory) |
| 16516 | t "\\`[^.#].*\\.org\\'")) | 16516 | t "\\`[^.#].*\\.org\\'")) |
| @@ -16633,10 +16633,18 @@ non-nil." | |||
| 16633 | 16633 | ||
| 16634 | (defun org-time-stamp-inactive (&optional arg) | 16634 | (defun org-time-stamp-inactive (&optional arg) |
| 16635 | "Insert an inactive time stamp. | 16635 | "Insert an inactive time stamp. |
| 16636 | |||
| 16636 | An inactive time stamp is enclosed in square brackets instead of angle | 16637 | An inactive time stamp is enclosed in square brackets instead of angle |
| 16637 | brackets. It is inactive in the sense that it does not trigger agenda entries, | 16638 | brackets. It is inactive in the sense that it does not trigger agenda entries, |
| 16638 | does not link to the calendar and cannot be changed with the S-cursor keys. | 16639 | does not link to the calendar and cannot be changed with the S-cursor keys. |
| 16639 | So these are more for recording a certain time/date." | 16640 | So these are more for recording a certain time/date. |
| 16641 | |||
| 16642 | If the user specifies a time like HH:MM or if this command is called with | ||
| 16643 | at least one prefix argument, the time stamp contains the date and the time. | ||
| 16644 | Otherwise, only the date is included. | ||
| 16645 | |||
| 16646 | When called with two universal prefix arguments, insert an active time stamp | ||
| 16647 | with the current time without prompting the user." | ||
| 16640 | (interactive "P") | 16648 | (interactive "P") |
| 16641 | (org-time-stamp arg 'inactive)) | 16649 | (org-time-stamp arg 'inactive)) |
| 16642 | 16650 | ||
| @@ -18230,7 +18238,7 @@ Prompt for confirmation when there are unsaved changes. | |||
| 18230 | Be sure you know what you are doing before letting this function | 18238 | Be sure you know what you are doing before letting this function |
| 18231 | overwrite your changes. | 18239 | overwrite your changes. |
| 18232 | 18240 | ||
| 18233 | This function is useful in a setup where one tracks org files | 18241 | This function is useful in a setup where one tracks Org files |
| 18234 | with a version control system, to revert on one machine after pulling | 18242 | with a version control system, to revert on one machine after pulling |
| 18235 | changes from another. I believe the procedure must be like this: | 18243 | changes from another. I believe the procedure must be like this: |
| 18236 | 18244 | ||
| @@ -18552,9 +18560,9 @@ When a buffer is unmodified, it is just killed. When modified, it is saved | |||
| 18552 | (setq org-todo-keyword-alist-for-agenda | 18560 | (setq org-todo-keyword-alist-for-agenda |
| 18553 | (append org-todo-keyword-alist-for-agenda org-todo-key-alist)) | 18561 | (append org-todo-keyword-alist-for-agenda org-todo-key-alist)) |
| 18554 | (setq org-tag-alist-for-agenda | 18562 | (setq org-tag-alist-for-agenda |
| 18555 | (org-uniquify | 18563 | (org-tag-add-to-alist |
| 18556 | (append org-tag-alist-for-agenda | 18564 | org-tag-alist-for-agenda |
| 18557 | org-current-tag-alist))) | 18565 | org-current-tag-alist)) |
| 18558 | ;; Merge current file's tag groups into global | 18566 | ;; Merge current file's tag groups into global |
| 18559 | ;; `org-tag-groups-alist-for-agenda'. | 18567 | ;; `org-tag-groups-alist-for-agenda'. |
| 18560 | (when org-group-tags | 18568 | (when org-group-tags |
| @@ -20988,9 +20996,12 @@ Use `\\[org-edit-special]' to edit table.el tables")) | |||
| 20988 | "Abort storing current note, or call `outline-show-branches'." | 20996 | "Abort storing current note, or call `outline-show-branches'." |
| 20989 | (interactive) | 20997 | (interactive) |
| 20990 | (if (not org-finish-function) | 20998 | (if (not org-finish-function) |
| 20991 | (progn | 20999 | (save-excursion |
| 20992 | (outline-hide-subtree) | 21000 | (save-restriction |
| 20993 | (call-interactively 'outline-show-branches)) | 21001 | (org-narrow-to-subtree) |
| 21002 | (org-flag-subtree t) | ||
| 21003 | (call-interactively 'outline-show-branches) | ||
| 21004 | (org-hide-archived-subtrees (point-min) (point-max)))) | ||
| 20994 | (let ((org-note-abort t)) | 21005 | (let ((org-note-abort t)) |
| 20995 | (funcall org-finish-function)))) | 21006 | (funcall org-finish-function)))) |
| 20996 | 21007 | ||
| @@ -21104,7 +21115,13 @@ object (e.g., within a comment). In these case, you need to use | |||
| 21104 | (delete-and-extract-region (point) (line-end-position)))) | 21115 | (delete-and-extract-region (point) (line-end-position)))) |
| 21105 | (newline-and-indent) | 21116 | (newline-and-indent) |
| 21106 | (save-excursion (insert trailing-data)))) | 21117 | (save-excursion (insert trailing-data)))) |
| 21107 | (t (if indent (newline-and-indent) (newline)))))) | 21118 | (t |
| 21119 | ;; Do not auto-fill when point is in an Org property drawer. | ||
| 21120 | (let ((auto-fill-function (and (not (org-at-property-p)) | ||
| 21121 | auto-fill-function))) | ||
| 21122 | (if indent | ||
| 21123 | (newline-and-indent) | ||
| 21124 | (newline))))))) | ||
| 21108 | 21125 | ||
| 21109 | (defun org-return-indent () | 21126 | (defun org-return-indent () |
| 21110 | "Goto next table row or insert a newline and indent. | 21127 | "Goto next table row or insert a newline and indent. |
| @@ -21573,7 +21590,7 @@ such private information before sending the email.") | |||
| 21573 | "Remember to cover the basics, that is, what you expected to happen and | 21590 | "Remember to cover the basics, that is, what you expected to happen and |
| 21574 | what in fact did happen. You don't know how to make a good report? See | 21591 | what in fact did happen. You don't know how to make a good report? See |
| 21575 | 21592 | ||
| 21576 | http://orgmode.org/manual/Feedback.html#Feedback | 21593 | https://orgmode.org/manual/Feedback.html#Feedback |
| 21577 | 21594 | ||
| 21578 | Your bug report will be posted to the Org mailing list. | 21595 | Your bug report will be posted to the Org mailing list. |
| 21579 | ------------------------------------------------------------------------") | 21596 | ------------------------------------------------------------------------") |
| @@ -21613,7 +21630,7 @@ Your bug report will be posted to the Org mailing list. | |||
| 21613 | 21630 | ||
| 21614 | ;;;###autoload | 21631 | ;;;###autoload |
| 21615 | (defun org-reload (&optional uncompiled) | 21632 | (defun org-reload (&optional uncompiled) |
| 21616 | "Reload all org lisp files. | 21633 | "Reload all Org Lisp files. |
| 21617 | With prefix arg UNCOMPILED, load the uncompiled versions." | 21634 | With prefix arg UNCOMPILED, load the uncompiled versions." |
| 21618 | (interactive "P") | 21635 | (interactive "P") |
| 21619 | (require 'loadhist) | 21636 | (require 'loadhist) |
diff --git a/lisp/org/ox-html.el b/lisp/org/ox-html.el index 83f6479bd4a..39f7d83e14a 100644 --- a/lisp/org/ox-html.el +++ b/lisp/org/ox-html.el | |||
| @@ -465,7 +465,7 @@ customize `org-html-head-include-default-style'.") | |||
| 465 | ;;;; Handle infojs | 465 | ;;;; Handle infojs |
| 466 | 466 | ||
| 467 | (defvar org-html-infojs-opts-table | 467 | (defvar org-html-infojs-opts-table |
| 468 | '((path PATH "http://orgmode.org/org-info.js") | 468 | '((path PATH "https://orgmode.org/org-info.js") |
| 469 | (view VIEW "info") | 469 | (view VIEW "info") |
| 470 | (toc TOC :with-toc) | 470 | (toc TOC :with-toc) |
| 471 | (ftoc FIXED_TOC "0") | 471 | (ftoc FIXED_TOC "0") |
| @@ -1324,7 +1324,7 @@ like that: \"%%\"." | |||
| 1324 | :type 'string) | 1324 | :type 'string) |
| 1325 | 1325 | ||
| 1326 | (defcustom org-html-creator-string | 1326 | (defcustom org-html-creator-string |
| 1327 | (format "<a href=\"https://www.gnu.org/software/emacs/\">Emacs</a> %s (<a href=\"http://orgmode.org\">Org</a> mode %s)" | 1327 | (format "<a href=\"https://www.gnu.org/software/emacs/\">Emacs</a> %s (<a href=\"https://orgmode.org\">Org</a> mode %s)" |
| 1328 | emacs-version | 1328 | emacs-version |
| 1329 | (if (fboundp 'org-version) (org-version) "unknown version")) | 1329 | (if (fboundp 'org-version) (org-version) "unknown version")) |
| 1330 | "Information about the creator of the HTML document. | 1330 | "Information about the creator of the HTML document. |
| @@ -1452,13 +1452,13 @@ done, timestamp, timestamp-kwd, tag, target. | |||
| 1452 | For example, a valid value would be: | 1452 | For example, a valid value would be: |
| 1453 | 1453 | ||
| 1454 | <style type=\"text/css\"> | 1454 | <style type=\"text/css\"> |
| 1455 | <![CDATA[ | 1455 | /*<![CDATA[*/ |
| 1456 | p { font-weight: normal; color: gray; } | 1456 | p { font-weight: normal; color: gray; } |
| 1457 | h1 { color: black; } | 1457 | h1 { color: black; } |
| 1458 | .title { text-align: center; } | 1458 | .title { text-align: center; } |
| 1459 | .todo, .timestamp-kwd { color: red; } | 1459 | .todo, .timestamp-kwd { color: red; } |
| 1460 | .done { color: green; } | 1460 | .done { color: green; } |
| 1461 | ]]> | 1461 | /*]]>*/ |
| 1462 | </style> | 1462 | </style> |
| 1463 | 1463 | ||
| 1464 | If you want to refer to an external style, use something like | 1464 | If you want to refer to an external style, use something like |
diff --git a/lisp/org/ox-icalendar.el b/lisp/org/ox-icalendar.el index a87970eb3fd..7d7c8500472 100644 --- a/lisp/org/ox-icalendar.el +++ b/lisp/org/ox-icalendar.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Nicolas Goaziou <n dot goaziou at gmail dot com> | 6 | ;; Nicolas Goaziou <n dot goaziou at gmail dot com> |
| 7 | ;; Keywords: outlines, hypermedia, calendar, wp | 7 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: https://orgmode.org |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
diff --git a/lisp/org/ox-latex.el b/lisp/org/ox-latex.el index c32aa298047..5aaaf991fde 100644 --- a/lisp/org/ox-latex.el +++ b/lisp/org/ox-latex.el | |||
| @@ -920,15 +920,14 @@ using customize, or with | |||
| 920 | (add-to-list \\='org-latex-packages-alist \\='(\"newfloat\" \"minted\")) | 920 | (add-to-list \\='org-latex-packages-alist \\='(\"newfloat\" \"minted\")) |
| 921 | 921 | ||
| 922 | In addition, it is necessary to install pygments | 922 | In addition, it is necessary to install pygments |
| 923 | \(http://pygments.org), and to configure the variable | 923 | \(URL `http://pygments.org>'), and to configure the variable |
| 924 | `org-latex-pdf-process' so that the -shell-escape option is | 924 | `org-latex-pdf-process' so that the -shell-escape option is |
| 925 | passed to pdflatex. | 925 | passed to pdflatex. |
| 926 | 926 | ||
| 927 | The minted choice has possible repercussions on the preview of | 927 | The minted choice has possible repercussions on the preview of |
| 928 | latex fragments (see `org-preview-latex-fragment'). If you run | 928 | latex fragments (see `org-preview-latex-fragment'). If you run |
| 929 | into previewing problems, please consult | 929 | into previewing problems, please consult |
| 930 | 930 | URL `https://orgmode.org/worg/org-tutorials/org-latex-preview.html'." | |
| 931 | http://orgmode.org/worg/org-tutorials/org-latex-preview.html" | ||
| 932 | :group 'org-export-latex | 931 | :group 'org-export-latex |
| 933 | :type '(choice | 932 | :type '(choice |
| 934 | (const :tag "Use listings" t) | 933 | (const :tag "Use listings" t) |
| @@ -1719,7 +1718,7 @@ holding export options." | |||
| 1719 | ;; Table of contents. | 1718 | ;; Table of contents. |
| 1720 | (let ((depth (plist-get info :with-toc))) | 1719 | (let ((depth (plist-get info :with-toc))) |
| 1721 | (when depth | 1720 | (when depth |
| 1722 | (concat (when (wholenump depth) | 1721 | (concat (when (integerp depth) |
| 1723 | (format "\\setcounter{tocdepth}{%d}\n" depth)) | 1722 | (format "\\setcounter{tocdepth}{%d}\n" depth)) |
| 1724 | (plist-get info :latex-toc-command)))) | 1723 | (plist-get info :latex-toc-command)))) |
| 1725 | ;; Document's body. | 1724 | ;; Document's body. |
diff --git a/lisp/org/ox-odt.el b/lisp/org/ox-odt.el index cdee568fc81..a1145a9821c 100644 --- a/lisp/org/ox-odt.el +++ b/lisp/org/ox-odt.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Jambunathan K <kjambunathan at gmail dot com> | 5 | ;; Author: Jambunathan K <kjambunathan at gmail dot com> |
| 6 | ;; Keywords: outlines, hypermedia, calendar, wp | 6 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 7 | ;; Homepage: http://orgmode.org | 7 | ;; Homepage: https://orgmode.org |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/org/ox-publish.el b/lisp/org/ox-publish.el index 5deb7c54e71..8901dba34cf 100644 --- a/lisp/org/ox-publish.el +++ b/lisp/org/ox-publish.el | |||
| @@ -405,11 +405,9 @@ definition." | |||
| 405 | (defun org-publish--expand-file-name (file project) | 405 | (defun org-publish--expand-file-name (file project) |
| 406 | "Return full file name for FILE in PROJECT. | 406 | "Return full file name for FILE in PROJECT. |
| 407 | When FILE is a relative file name, it is expanded according to | 407 | When FILE is a relative file name, it is expanded according to |
| 408 | project base directory. Always return the true name of the file, | 408 | project base directory." |
| 409 | ignoring symlinks." | 409 | (if (file-name-absolute-p file) file |
| 410 | (file-truename | 410 | (expand-file-name file (org-publish-property :base-directory project)))) |
| 411 | (if (file-name-absolute-p file) file | ||
| 412 | (expand-file-name file (org-publish-property :base-directory project))))) | ||
| 413 | 411 | ||
| 414 | (defun org-publish-expand-projects (projects-alist) | 412 | (defun org-publish-expand-projects (projects-alist) |
| 415 | "Expand projects in PROJECTS-ALIST. | 413 | "Expand projects in PROJECTS-ALIST. |
| @@ -436,10 +434,32 @@ This splices all the components into the list." | |||
| 436 | (match (if (eq extension 'any) "" | 434 | (match (if (eq extension 'any) "" |
| 437 | (format "^[^\\.].*\\.\\(%s\\)$" extension))) | 435 | (format "^[^\\.].*\\.\\(%s\\)$" extension))) |
| 438 | (base-files | 436 | (base-files |
| 439 | (cl-remove-if #'file-directory-p | 437 | (cond ((not (file-exists-p base-dir)) nil) |
| 440 | (if (org-publish-property :recursive project) | 438 | ((not (org-publish-property :recursive project)) |
| 441 | (directory-files-recursively base-dir match) | 439 | (cl-remove-if #'file-directory-p |
| 442 | (directory-files base-dir t match t))))) | 440 | (directory-files base-dir t match t))) |
| 441 | (t | ||
| 442 | ;; Find all files recursively. Unlike to | ||
| 443 | ;; `directory-files-recursively', we follow symlinks | ||
| 444 | ;; to other directories. | ||
| 445 | (letrec ((files nil) | ||
| 446 | (walk-tree | ||
| 447 | (lambda (dir depth) | ||
| 448 | (when (> depth 100) | ||
| 449 | (error "Apparent cycle of symbolic links for %S" | ||
| 450 | base-dir)) | ||
| 451 | (dolist (f (file-name-all-completions "" dir)) | ||
| 452 | (pcase f | ||
| 453 | ((or "./" "../") nil) | ||
| 454 | ((pred directory-name-p) | ||
| 455 | (funcall walk-tree | ||
| 456 | (expand-file-name f dir) | ||
| 457 | (1+ depth))) | ||
| 458 | ((pred (string-match match)) | ||
| 459 | (push (expand-file-name f dir) files)) | ||
| 460 | (_ nil))) | ||
| 461 | files))) | ||
| 462 | (funcall walk-tree base-dir 0)))))) | ||
| 443 | (org-uniquify | 463 | (org-uniquify |
| 444 | (append | 464 | (append |
| 445 | ;; Files from BASE-DIR. Apply exclusion filter before adding | 465 | ;; Files from BASE-DIR. Apply exclusion filter before adding |
| @@ -468,13 +488,13 @@ This splices all the components into the list." | |||
| 468 | "Return a project that FILENAME belongs to. | 488 | "Return a project that FILENAME belongs to. |
| 469 | When UP is non-nil, return a meta-project (i.e., with a :components part) | 489 | When UP is non-nil, return a meta-project (i.e., with a :components part) |
| 470 | publishing FILENAME." | 490 | publishing FILENAME." |
| 471 | (let* ((filename (file-truename filename)) | 491 | (let* ((filename (expand-file-name filename)) |
| 472 | (project | 492 | (project |
| 473 | (cl-some | 493 | (cl-some |
| 474 | (lambda (p) | 494 | (lambda (p) |
| 475 | ;; Ignore meta-projects. | 495 | ;; Ignore meta-projects. |
| 476 | (unless (org-publish-property :components p) | 496 | (unless (org-publish-property :components p) |
| 477 | (let ((base (file-truename | 497 | (let ((base (expand-file-name |
| 478 | (org-publish-property :base-directory p)))) | 498 | (org-publish-property :base-directory p)))) |
| 479 | (cond | 499 | (cond |
| 480 | ;; Check if FILENAME is explicitly included in one | 500 | ;; Check if FILENAME is explicitly included in one |
| @@ -499,9 +519,7 @@ publishing FILENAME." | |||
| 499 | ;; Check if FILENAME belong to project's base | 519 | ;; Check if FILENAME belong to project's base |
| 500 | ;; directory, or some of its sub-directories | 520 | ;; directory, or some of its sub-directories |
| 501 | ;; if :recursive in non-nil. | 521 | ;; if :recursive in non-nil. |
| 502 | ((org-publish-property :recursive p) | 522 | ((member filename (org-publish-get-base-files p)) p) |
| 503 | (and (file-in-directory-p filename base) p)) | ||
| 504 | ((file-equal-p base (file-name-directory filename)) p) | ||
| 505 | (t nil))))) | 523 | (t nil))))) |
| 506 | org-publish-project-alist))) | 524 | org-publish-project-alist))) |
| 507 | (cond | 525 | (cond |
| @@ -1260,25 +1278,21 @@ the file including them will be republished as well." | |||
| 1260 | (with-current-buffer buf | 1278 | (with-current-buffer buf |
| 1261 | (goto-char (point-min)) | 1279 | (goto-char (point-min)) |
| 1262 | (while (re-search-forward "^[ \t]*#\\+INCLUDE:" nil t) | 1280 | (while (re-search-forward "^[ \t]*#\\+INCLUDE:" nil t) |
| 1263 | (let* ((element (org-element-at-point)) | 1281 | (let ((element (org-element-at-point))) |
| 1264 | (included-file | 1282 | (when (eq 'keyword (org-element-type element)) |
| 1265 | (and (eq (org-element-type element) 'keyword) | 1283 | (let* ((value (org-element-property :value element)) |
| 1266 | (let ((value (org-element-property :value element))) | 1284 | (filename |
| 1267 | (and value | 1285 | (and (string-match "\\`\\(\".+?\"\\|\\S-+\\)" value) |
| 1268 | (string-match | 1286 | (let ((m (org-unbracket-string |
| 1269 | "\\`\\(\".+?\"\\|\\S-+\\)\\(?:\\s-+\\|$\\)" | 1287 | "\"" "\"" (match-string 1 value)))) |
| 1270 | value) | 1288 | ;; Ignore search suffix. |
| 1271 | (let ((m (match-string 1 value))) | 1289 | (if (string-match "::.*?\\'" m) |
| 1272 | (org-unbracket-string | 1290 | (substring m 0 (match-beginning 0)) |
| 1273 | "\"" "\"" | 1291 | m))))) |
| 1274 | ;; Ignore search suffix. | 1292 | (when filename |
| 1275 | (if (string-match "::.*?\"?\\'" m) | 1293 | (push (org-publish-cache-ctime-of-src |
| 1276 | (substring m 0 (match-beginning 0)) | 1294 | (expand-file-name filename)) |
| 1277 | m)))))))) | 1295 | included-files-ctime))))))) |
| 1278 | (when included-file | ||
| 1279 | (push (org-publish-cache-ctime-of-src | ||
| 1280 | (expand-file-name included-file)) | ||
| 1281 | included-files-ctime))))) | ||
| 1282 | (unless visiting (kill-buffer buf))))) | 1296 | (unless visiting (kill-buffer buf))))) |
| 1283 | (or (null pstamp) | 1297 | (or (null pstamp) |
| 1284 | (let ((ctime (org-publish-cache-ctime-of-src filename))) | 1298 | (let ((ctime (org-publish-cache-ctime-of-src filename))) |
diff --git a/lisp/org/ox.el b/lisp/org/ox.el index 7bdac4f290d..ea7d1dc81f0 100644 --- a/lisp/org/ox.el +++ b/lisp/org/ox.el | |||
| @@ -66,7 +66,7 @@ | |||
| 66 | ;; Eventually, a dispatcher (`org-export-dispatch') is provided in the | 66 | ;; Eventually, a dispatcher (`org-export-dispatch') is provided in the |
| 67 | ;; last one. | 67 | ;; last one. |
| 68 | ;; | 68 | ;; |
| 69 | ;; See <http://orgmode.org/worg/dev/org-export-reference.html> for | 69 | ;; See <https://orgmode.org/worg/dev/org-export-reference.html> for |
| 70 | ;; more information. | 70 | ;; more information. |
| 71 | 71 | ||
| 72 | ;;; Code: | 72 | ;;; Code: |
| @@ -714,12 +714,15 @@ frequently in plain text." | |||
| 714 | (defcustom org-export-with-toc t | 714 | (defcustom org-export-with-toc t |
| 715 | "Non-nil means create a table of contents in exported files. | 715 | "Non-nil means create a table of contents in exported files. |
| 716 | 716 | ||
| 717 | The TOC contains headlines with levels up | 717 | The table of contents contains headlines with levels up to |
| 718 | to`org-export-headline-levels'. When an integer, include levels | 718 | `org-export-headline-levels'. |
| 719 | up to N in the toc, this may then be different from | 719 | |
| 720 | `org-export-headline-levels', but it will not be allowed to be | 720 | When this variable is set to an integer N, include levels up to |
| 721 | larger than the number of headline levels. When nil, no table of | 721 | N in the table of contents. Although it may then be different |
| 722 | contents is made. | 722 | from `org-export-headline-levels', it is cannot be larger than |
| 723 | the number of headline levels. | ||
| 724 | |||
| 725 | When nil, no table of contents is created. | ||
| 723 | 726 | ||
| 724 | This option can also be set with the OPTIONS keyword, | 727 | This option can also be set with the OPTIONS keyword, |
| 725 | e.g. \"toc:nil\" or \"toc:3\"." | 728 | e.g. \"toc:nil\" or \"toc:3\"." |
| @@ -728,8 +731,9 @@ e.g. \"toc:nil\" or \"toc:3\"." | |||
| 728 | (const :tag "No Table of Contents" nil) | 731 | (const :tag "No Table of Contents" nil) |
| 729 | (const :tag "Full Table of Contents" t) | 732 | (const :tag "Full Table of Contents" t) |
| 730 | (integer :tag "TOC to level")) | 733 | (integer :tag "TOC to level")) |
| 731 | :safe (lambda (x) (or (booleanp x) | 734 | :safe (lambda (x) |
| 732 | (integerp x)))) | 735 | (or (booleanp x) |
| 736 | (integerp x)))) | ||
| 733 | 737 | ||
| 734 | (defcustom org-export-with-tables t | 738 | (defcustom org-export-with-tables t |
| 735 | "Non-nil means export tables. | 739 | "Non-nil means export tables. |
| @@ -1777,7 +1781,8 @@ for a footnotes section." | |||
| 1777 | "List headlines and inlinetasks with a select tag in their tree. | 1781 | "List headlines and inlinetasks with a select tag in their tree. |
| 1778 | DATA is parsed data as returned by `org-element-parse-buffer'. | 1782 | DATA is parsed data as returned by `org-element-parse-buffer'. |
| 1779 | INFO is a plist holding export options." | 1783 | INFO is a plist holding export options." |
| 1780 | (let ((select (plist-get info :select-tags))) | 1784 | (let ((select (cl-mapcan (lambda (tag) (org-tags-expand tag t)) |
| 1785 | (plist-get info :select-tags)))) | ||
| 1781 | (if (cl-some (lambda (tag) (member tag select)) (plist-get info :filetags)) | 1786 | (if (cl-some (lambda (tag) (member tag select)) (plist-get info :filetags)) |
| 1782 | ;; If FILETAGS contains a select tag, every headline or | 1787 | ;; If FILETAGS contains a select tag, every headline or |
| 1783 | ;; inlinetask is returned. | 1788 | ;; inlinetask is returned. |
| @@ -1811,11 +1816,13 @@ INFO is a plist holding export options." | |||
| 1811 | (funcall walk-data data nil) | 1816 | (funcall walk-data data nil) |
| 1812 | selected-trees)))) | 1817 | selected-trees)))) |
| 1813 | 1818 | ||
| 1814 | (defun org-export--skip-p (datum options selected) | 1819 | (defun org-export--skip-p (datum options selected excluded) |
| 1815 | "Non-nil when element or object DATUM should be skipped during export. | 1820 | "Non-nil when element or object DATUM should be skipped during export. |
| 1816 | OPTIONS is the plist holding export options. SELECTED, when | 1821 | OPTIONS is the plist holding export options. SELECTED, when |
| 1817 | non-nil, is a list of headlines or inlinetasks belonging to | 1822 | non-nil, is a list of headlines or inlinetasks belonging to |
| 1818 | a tree with a select tag." | 1823 | a tree with a select tag. EXCLUDED is a list of tags, as |
| 1824 | strings. Any headline or inlinetask marked with one of those is | ||
| 1825 | not exported." | ||
| 1819 | (cl-case (org-element-type datum) | 1826 | (cl-case (org-element-type datum) |
| 1820 | ((comment comment-block) | 1827 | ((comment comment-block) |
| 1821 | ;; Skip all comments and comment blocks. Make to keep maximum | 1828 | ;; Skip all comments and comment blocks. Make to keep maximum |
| @@ -1854,8 +1861,7 @@ a tree with a select tag." | |||
| 1854 | (and (eq (org-element-type datum) 'inlinetask) | 1861 | (and (eq (org-element-type datum) 'inlinetask) |
| 1855 | (not (plist-get options :with-inlinetasks))) | 1862 | (not (plist-get options :with-inlinetasks))) |
| 1856 | ;; Ignore subtrees with an exclude tag. | 1863 | ;; Ignore subtrees with an exclude tag. |
| 1857 | (cl-loop for k in (plist-get options :exclude-tags) | 1864 | (cl-some (lambda (tag) (member tag excluded)) tags) |
| 1858 | thereis (member k tags)) | ||
| 1859 | ;; When a select tag is present in the buffer, ignore any tree | 1865 | ;; When a select tag is present in the buffer, ignore any tree |
| 1860 | ;; without it. | 1866 | ;; without it. |
| 1861 | (and selected (not (memq datum selected))) | 1867 | (and selected (not (memq datum selected))) |
| @@ -2709,6 +2715,9 @@ from tree." | |||
| 2709 | (letrec ((ignore nil) | 2715 | (letrec ((ignore nil) |
| 2710 | ;; First find trees containing a select tag, if any. | 2716 | ;; First find trees containing a select tag, if any. |
| 2711 | (selected (org-export--selected-trees data info)) | 2717 | (selected (org-export--selected-trees data info)) |
| 2718 | ;; List tags that prevent export of headlines. | ||
| 2719 | (excluded (cl-mapcan (lambda (tag) (org-tags-expand tag t)) | ||
| 2720 | (plist-get info :exclude-tags))) | ||
| 2712 | (walk-data | 2721 | (walk-data |
| 2713 | (lambda (data) | 2722 | (lambda (data) |
| 2714 | ;; Prune non-exportable elements and objects from tree. | 2723 | ;; Prune non-exportable elements and objects from tree. |
| @@ -2717,7 +2726,7 @@ from tree." | |||
| 2717 | ;; accessed during export. | 2726 | ;; accessed during export. |
| 2718 | (when data | 2727 | (when data |
| 2719 | (let ((type (org-element-type data))) | 2728 | (let ((type (org-element-type data))) |
| 2720 | (if (org-export--skip-p data info selected) | 2729 | (if (org-export--skip-p data info selected excluded) |
| 2721 | (if (memq type '(table-cell table-row)) (push data ignore) | 2730 | (if (memq type '(table-cell table-row)) (push data ignore) |
| 2722 | (org-element-extract-element data)) | 2731 | (org-element-extract-element data)) |
| 2723 | (if (and (eq type 'headline) | 2732 | (if (and (eq type 'headline) |
| @@ -4264,7 +4273,7 @@ A search cell follows the pattern (TYPE . SEARCH) where | |||
| 4264 | - target's or radio-target's name as a list of strings if | 4273 | - target's or radio-target's name as a list of strings if |
| 4265 | TYPE is `target'. | 4274 | TYPE is `target'. |
| 4266 | 4275 | ||
| 4267 | - NAME affiliated keyword is TYPE is `other'. | 4276 | - NAME affiliated keyword if TYPE is `other'. |
| 4268 | 4277 | ||
| 4269 | A search cell is the internal representation of a fuzzy link. It | 4278 | A search cell is the internal representation of a fuzzy link. It |
| 4270 | ignores white spaces and statistics cookies, if applicable." | 4279 | ignores white spaces and statistics cookies, if applicable." |