emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-26 bb396a3: Update Org to v9.1.6


From: pank
Subject: [Emacs-diffs] emacs-26 bb396a3: Update Org to v9.1.6
Date: Mon, 22 Jan 2018 10:04:10 -0500 (EST)

branch: emacs-26
commit bb396a369c93e57b033844003c7ceab61d61aa08
Author: Rasmus <address@hidden>
Commit: Rasmus <address@hidden>

    Update Org to v9.1.6
    
    Please note this is a bugfix release. See etc/ORG-NEWS for details.
---
 doc/misc/org.texi          |  4 +--
 etc/NEWS                   |  2 +-
 etc/refcards/orgcard.tex   |  4 +--
 lisp/org/ob-core.el        | 22 +++++++-----
 lisp/org/ob-exp.el         |  8 +++--
 lisp/org/ob-gnuplot.el     |  7 +++-
 lisp/org/ob-haskell.el     |  9 +++++
 lisp/org/ob-picolisp.el    |  6 ++--
 lisp/org/ob-python.el      | 36 +++++++++++++------
 lisp/org/ob-ref.el         | 21 +++++------
 lisp/org/ob-scheme.el      |  1 +
 lisp/org/ob-stan.el        |  9 ++---
 lisp/org/org-agenda.el     | 46 ++++++++++++------------
 lisp/org/org-archive.el    |  2 +-
 lisp/org/org-capture.el    | 14 +++++---
 lisp/org/org-clock.el      |  3 +-
 lisp/org/org-compat.el     |  4 +--
 lisp/org/org-duration.el   |  6 ++--
 lisp/org/org-footnote.el   |  2 +-
 lisp/org/org-inlinetask.el | 36 +++++++++++--------
 lisp/org/org-pcomplete.el  |  5 ---
 lisp/org/org-table.el      | 35 ++++++++++++------
 lisp/org/org-version.el    |  6 ++--
 lisp/org/org-w3m.el        |  4 +--
 lisp/org/org.el            | 89 ++++++++++++++++++++++++++--------------------
 lisp/org/ox-beamer.el      |  8 ++---
 lisp/org/ox-latex.el       | 15 ++++----
 lisp/org/ox-md.el          |  5 +--
 lisp/org/ox-odt.el         |  7 ++--
 lisp/org/ox-publish.el     |  4 +--
 lisp/org/ox.el             |  4 ++-
 31 files changed, 247 insertions(+), 177 deletions(-)

diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index a252db4..37a9648 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -4,8 +4,8 @@
 @settitle The Org Manual
 @include docstyle.texi
 
address@hidden VERSION 9.1.4
address@hidden DATE 2017-09-17
address@hidden VERSION 9.1.6
address@hidden DATE 2018-01-03
 
 @c Version and Contact Info
 @set MAINTAINERSITE @uref{http://orgmode.org,maintainers web page}
diff --git a/etc/NEWS b/etc/NEWS
index b4c489c..46762d6 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -635,7 +635,7 @@ state to take effect (making a frame visible, for example).
 * Changes in Specialized Modes and Packages in Emacs 26.1
 
 ---
-** Emacs 26.1 comes with Org v9.1.4.
+** Emacs 26.1 comes with Org v9.1.6.
 See the file ORG-NEWS for user-visible changes in Org.
 
 ---
diff --git a/etc/refcards/orgcard.tex b/etc/refcards/orgcard.tex
index 0b9c976..1affe54 100644
--- a/etc/refcards/orgcard.tex
+++ b/etc/refcards/orgcard.tex
@@ -1,6 +1,6 @@
 % Reference Card for Org Mode
-\def\orgversionnumber{9.1.4}
-\def\versionyear{2017}          % latest update
+\def\orgversionnumber{9.1.6}
+\def\versionyear{2018}          % latest update
 \input emacsver.tex
 
 %**start of header
diff --git a/lisp/org/ob-core.el b/lisp/org/ob-core.el
index 8a17ee4..5f378b2 100644
--- a/lisp/org/ob-core.el
+++ b/lisp/org/ob-core.el
@@ -74,7 +74,6 @@
 (declare-function org-mark-ring-push "org" (&optional pos buffer))
 (declare-function org-narrow-to-subtree "org" ())
 (declare-function org-next-block "org" (arg &optional backward block-regexp))
-(declare-function org-number-sequence "org-compat" (from &optional to inc))
 (declare-function org-open-at-point "org" (&optional in-emacs 
reference-buffer))
 (declare-function org-outline-overlay-data "org" (&optional use-markers))
 (declare-function org-previous-block "org" (arg &optional block-regexp))
@@ -82,7 +81,7 @@
 (declare-function org-reverse-string "org" (string))
 (declare-function org-set-outline-overlay-data "org" (data))
 (declare-function org-show-context "org" (&optional key))
-(declare-function org-src-coderef-format "org-src" (element))
+(declare-function org-src-coderef-format "org-src" (&optional element))
 (declare-function org-src-coderef-regexp "org-src" (fmt &optional label))
 (declare-function org-table-align "org-table" ())
 (declare-function org-table-end "org-table" (&optional table-type))
@@ -2476,7 +2475,7 @@ in the buffer."
             (point))))))
 
 (defun org-babel-result-to-file (result &optional description)
-  "Convert RESULT into an `org-mode' link with optional DESCRIPTION.
+  "Convert RESULT into an Org link with optional DESCRIPTION.
 If the `default-directory' is different from the containing
 file's directory then expand relative links."
   (when (stringp result)
@@ -2761,22 +2760,27 @@ block but are passed literally to the 
\"example-block\"."
                       (if org-babel-use-quick-and-dirty-noweb-expansion
                           (while (re-search-forward rx nil t)
                             (let* ((i (org-babel-get-src-block-info 'light))
-                                   (body (org-babel-expand-noweb-references i))
+                                   (body (if (org-babel-noweb-p (nth 2 i) 
:eval)
+                                            (org-babel-expand-noweb-references 
i)
+                                          (nth 1 i)))
                                    (sep (or (cdr (assq :noweb-sep (nth 2 i)))
                                             "\n"))
                                    (full (if comment
                                              (let ((cs 
(org-babel-tangle-comment-links i)))
-                                                (concat (funcall c-wrap (car 
cs)) "\n"
-                                                        body "\n"
-                                                        (funcall c-wrap (cadr 
cs))))
+                                              (concat (funcall c-wrap (car 
cs)) "\n"
+                                                      body "\n"
+                                                      (funcall c-wrap (cadr 
cs))))
                                            body)))
                               (setq expansion (cons sep (cons full 
expansion)))))
                         (org-babel-map-src-blocks nil
-                         (let ((i (org-babel-get-src-block-info 'light)))
+                         (let ((i (let ((org-babel-current-src-block-location 
(point)))
+                                    (org-babel-get-src-block-info 'light))))
                             (when (equal (or (cdr (assq :noweb-ref (nth 2 i)))
                                              (nth 4 i))
                                          source-name)
-                              (let* ((body (org-babel-expand-noweb-references 
i))
+                              (let* ((body (if (org-babel-noweb-p (nth 2 i) 
:eval)
+                                              
(org-babel-expand-noweb-references i)
+                                            (nth 1 i)))
                                      (sep (or (cdr (assq :noweb-sep (nth 2 i)))
                                               "\n"))
                                      (full (if comment
diff --git a/lisp/org/ob-exp.el b/lisp/org/ob-exp.el
index c474b1e..d2c32fa 100644
--- a/lisp/org/ob-exp.el
+++ b/lisp/org/ob-exp.el
@@ -58,9 +58,13 @@ returned is the value of the last form in BODY.  Assume that
 point is at the beginning of the Babel block."
   (declare (indent 1) (debug body))
   `(let ((source (get-text-property (point) 'org-reference)))
-     (with-current-buffer org-babel-exp-reference-buffer
+     ;; Source blocks created during export process (e.g., by other
+     ;; source blocks) are not referenced.  In this case, do not move
+     ;; point at all.
+     (with-current-buffer (if source org-babel-exp-reference-buffer
+                           (current-buffer))
        (org-with-wide-buffer
-       (goto-char source)
+       (when source (goto-char source))
        ,@body))))
 
 (defun org-babel-exp-src-block ()
diff --git a/lisp/org/ob-gnuplot.el b/lisp/org/ob-gnuplot.el
index 1acce50..674627b 100644
--- a/lisp/org/ob-gnuplot.el
+++ b/lisp/org/ob-gnuplot.el
@@ -116,6 +116,8 @@ code."
            (timefmt (cdr (assq :timefmt params)))
            (time-ind (or (cdr (assq :timeind params))
                          (when timefmt 1)))
+          (directory (and (buffer-file-name)
+                          (file-name-directory (buffer-file-name))))
           (add-to-body (lambda (text) (setq body (concat text "\n" body)))))
       ;; append header argument settings to body
       (when title (funcall add-to-body (format "set title '%s'" title)))
@@ -161,7 +163,10 @@ code."
                          (format "\\$%s" (car pair)) (cdr pair) body)))
            vars)
       (when prologue (funcall add-to-body prologue))
-      (when epilogue (setq body (concat body "\n" epilogue))))
+      (when epilogue (setq body (concat body "\n" epilogue)))
+      ;; Setting the directory needs to be done first so that
+      ;; subsequent 'output' directive goes to the right place.
+      (when directory (funcall add-to-body (format "cd '%s'" directory))))
     body))
 
 (defun org-babel-execute:gnuplot (body params)
diff --git a/lisp/org/ob-haskell.el b/lisp/org/ob-haskell.el
index 301c683..b19ee6d 100644
--- a/lisp/org/ob-haskell.el
+++ b/lisp/org/ob-haskell.el
@@ -59,14 +59,23 @@
 
 (defvar org-babel-haskell-eoe "\"org-babel-haskell-eoe\"")
 
+(defvar haskell-prompt-regexp)
+
 (defun org-babel-execute:haskell (body params)
   "Execute a block of Haskell code."
+  (require 'inf-haskell)
+  (add-hook 'inferior-haskell-hook
+            (lambda ()
+              (setq-local comint-prompt-regexp
+                          (concat haskell-prompt-regexp "\\|^λ?> "))))
   (let* ((session (cdr (assq :session params)))
          (result-type (cdr (assq :result-type params)))
          (full-body (org-babel-expand-body:generic
                     body params
                     (org-babel-variable-assignments:haskell params)))
          (session (org-babel-haskell-initiate-session session params))
+        (comint-preoutput-filter-functions
+              (cons 'ansi-color-filter-apply 
comint-preoutput-filter-functions))
          (raw (org-babel-comint-with-output
                  (session org-babel-haskell-eoe t full-body)
                 (insert (org-trim full-body))
diff --git a/lisp/org/ob-picolisp.el b/lisp/org/ob-picolisp.el
index 0d44c98..b6dc898 100644
--- a/lisp/org/ob-picolisp.el
+++ b/lisp/org/ob-picolisp.el
@@ -39,9 +39,9 @@
 ;; directory).
 
 ;; Although it might seem more natural to use Emacs Lisp for most
-;; Lisp-based programming tasks inside Org-Mode, an Emacs library
-;; written in Emacs Lisp, PicoLisp has at least two outstanding
-;; features that make it a valuable addition to Org-Babel:
+;; Lisp-based programming tasks inside Org, an Emacs library written
+;; in Emacs Lisp, PicoLisp has at least two outstanding features that
+;; make it a valuable addition to Org Babel:
 
 ;; PicoLisp _is_ an object-oriented database with a Prolog-based query
 ;; language implemented in PicoLisp (Pilog). Database objects are
diff --git a/lisp/org/ob-python.el b/lisp/org/ob-python.el
index 3ea050f..951e4d2 100644
--- a/lisp/org/ob-python.el
+++ b/lisp/org/ob-python.el
@@ -239,6 +239,15 @@ def main():
 
 open('%s', 'w').write( pprint.pformat(main()) )")
 
+(defconst org-babel-python--exec-tmpfile
+  (concat
+   "__org_babel_python_fname = '%s'; "
+   "__org_babel_python_fh = open(__org_babel_python_fname); "
+   "exec(compile("
+   "__org_babel_python_fh.read(), __org_babel_python_fname, 'exec'"
+   ")); "
+   "__org_babel_python_fh.close()"))
+
 (defun org-babel-python-evaluate
   (session body &optional result-type result-params preamble)
   "Evaluate BODY as Python code."
@@ -306,16 +315,23 @@ last statement in BODY, as elisp."
          (results
           (pcase result-type
             (`output
-             (mapconcat
-              #'org-trim
-              (butlast
-               (org-babel-comint-with-output
-                   (session org-babel-python-eoe-indicator t body)
-                 (funcall input-body body)
-                 (funcall send-wait) (funcall send-wait)
-                 (insert org-babel-python-eoe-indicator)
-                 (funcall send-wait))
-               2) "\n"))
+            (let ((body (if (string-match-p ".\n+." body) ; Multiline
+                            (let ((tmp-src-file (org-babel-temp-file
+                                                 "python-")))
+                              (with-temp-file tmp-src-file (insert body))
+                              (format org-babel-python--exec-tmpfile
+                                      tmp-src-file))
+                          body)))
+              (mapconcat
+               #'org-trim
+               (butlast
+                (org-babel-comint-with-output
+                    (session org-babel-python-eoe-indicator t body)
+                  (funcall input-body body)
+                  (funcall send-wait) (funcall send-wait)
+                  (insert org-babel-python-eoe-indicator)
+                  (funcall send-wait))
+                2) "\n")))
             (`value
              (let ((tmp-file (org-babel-temp-file "python-")))
                (org-babel-comint-with-output
diff --git a/lisp/org/ob-ref.el b/lisp/org/ob-ref.el
index de30a76..872f7f9 100644
--- a/lisp/org/ob-ref.el
+++ b/lisp/org/ob-ref.el
@@ -65,24 +65,21 @@
 (declare-function org-show-context "org" (&optional key))
 (declare-function org-trim "org" (s &optional keep-lead))
 
-(defvar org-babel-ref-split-regexp
-  "[ \f\t\n\r\v]*\\(.+?\\)[ \f\t\n\r\v]*=[ \f\t\n\r\v]*\\(.+\\)[ \f\t\n\r\v]*")
-
 (defvar org-babel-update-intermediate nil
   "Update the in-buffer results of code blocks executed to resolve 
references.")
 
 (defun org-babel-ref-parse (assignment)
   "Parse a variable ASSIGNMENT in a header argument.
+
 If the right hand side of the assignment has a literal value
-return that value, otherwise interpret as a reference to an
-external resource and find its value using
-`org-babel-ref-resolve'.  Return a list with two elements.  The
-first element of the list will be the name of the variable, and
-the second will be an emacs-lisp representation of the value of
-the variable."
-  (when (string-match org-babel-ref-split-regexp assignment)
-    (let ((var (match-string 1 assignment))
-         (ref (match-string 2 assignment)))
+return that value, otherwise interpret it as a reference to an
+external resource and find its value using `org-babel-ref-resolve'.
+
+Return a list with two elements: the name of the variable, and an
+Emacs Lisp representation of the value of the variable."
+  (when (string-match "\\(.+?\\)=" assignment)
+    (let ((var (org-trim (match-string 1 assignment)))
+         (ref (org-trim (substring assignment (match-end 0)))))
       (cons (intern var)
            (let ((out (save-excursion
                         (when org-babel-current-src-block-location
diff --git a/lisp/org/ob-scheme.el b/lisp/org/ob-scheme.el
index 029569e..cc78b57 100644
--- a/lisp/org/ob-scheme.el
+++ b/lisp/org/ob-scheme.el
@@ -40,6 +40,7 @@
 ;;; Code:
 (require 'ob)
 (require 'geiser nil t)
+(require 'geiser-impl nil t)
 (defvar geiser-repl--repl)             ; Defined in geiser-repl.el
 (defvar geiser-impl--implementation)   ; Defined in geiser-impl.el
 (defvar geiser-default-implementation) ; Defined in geiser-impl.el
diff --git a/lisp/org/ob-stan.el b/lisp/org/ob-stan.el
index 38cda4c..6fa9fe5 100644
--- a/lisp/org/ob-stan.el
+++ b/lisp/org/ob-stan.el
@@ -49,11 +49,12 @@
 
 (defcustom org-babel-stan-cmdstan-directory nil
   "CmdStan source directory.
-'make' will be called from this directory to compile the Stan
-block.  When nil, executing Stan blocks dumps the content to a
-plain text file."
+Call \"make\" from this directory to compile the Stan block.
+When nil, executing Stan blocks dumps the content to a file."
   :group 'org-babel
-  :type 'string)
+  :type '(choice
+         (directory :tag "Compilation directory")
+         (const :tag "Dump to a file" nil)))
 
 (defvar org-babel-default-header-args:stan
   '((:results . "file")))
diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el
index 9f8d294..9aaec33 100644
--- a/lisp/org/org-agenda.el
+++ b/lisp/org/org-agenda.el
@@ -395,35 +395,35 @@ the daily/weekly agenda, see `org-agenda-skip-function'.")
                                   (choice
                                    :tag "Condition type"
                                    (list :tag "Regexp matches" :inline t
-                                         (const :format "" 'regexp)
+                                         (const :format "" regexp)
                                          (regexp))
                                    (list :tag "Regexp does not match" :inline t
-                                         (const :format "" 'notregexp)
+                                         (const :format "" notregexp)
                                          (regexp))
                                    (list :tag "TODO state is" :inline t
-                                         (const 'todo)
+                                         (const todo)
                                          (choice
-                                          (const :tag "Any not-done state" 
'todo)
-                                          (const :tag "Any done state" 'done)
-                                          (const :tag "Any state" 'any)
+                                          (const :tag "Any not-done state" 
todo)
+                                          (const :tag "Any done state" done)
+                                          (const :tag "Any state" any)
                                           (list :tag "Keyword list"
                                                 (const :format "" quote)
                                                 (repeat (string :tag 
"Keyword")))))
                                    (list :tag "TODO state is not" :inline t
-                                         (const 'nottodo)
+                                         (const nottodo)
                                          (choice
-                                          (const :tag "Any not-done state" 
'todo)
-                                          (const :tag "Any done state" 'done)
-                                          (const :tag "Any state" 'any)
+                                          (const :tag "Any not-done state" 
todo)
+                                          (const :tag "Any done state" done)
+                                          (const :tag "Any state" any)
                                           (list :tag "Keyword list"
                                                 (const :format "" quote)
                                                 (repeat (string :tag 
"Keyword")))))
-                                   (const :tag "scheduled" 'scheduled)
-                                   (const :tag "not scheduled" 'notscheduled)
-                                   (const :tag "deadline" 'deadline)
-                                   (const :tag "no deadline" 'notdeadline)
-                                   (const :tag "timestamp" 'timestamp)
-                                   (const :tag "no timestamp" 
'nottimestamp))))))
+                                   (const :tag "scheduled" scheduled)
+                                   (const :tag "not scheduled" notscheduled)
+                                   (const :tag "deadline" deadline)
+                                   (const :tag "no deadline" notdeadline)
+                                   (const :tag "timestamp" timestamp)
+                                   (const :tag "no timestamp" 
nottimestamp))))))
                   (list :tag "Non-standard skipping condition"
                         :value (org-agenda-skip-function)
                         (const org-agenda-skip-function)
@@ -3563,7 +3563,7 @@ removed from the entry content.  Currently only 
`planning' is allowed here."
     txt))
 
 (defun org-check-for-org-mode ()
-  "Make sure current buffer is in org-mode.  Error if not."
+  "Make sure current buffer is in Org mode.  Error if not."
   (or (derived-mode-p 'org-mode)
       (error "Cannot execute Org agenda command on buffer in %s"
             major-mode)))
@@ -4509,7 +4509,7 @@ is active."
          (with-current-buffer buffer
            (with-syntax-table (org-search-syntax-table)
              (unless (derived-mode-p 'org-mode)
-               (error "Agenda file %s is not in `org-mode'" file))
+               (error "Agenda file %s is not in Org mode" file))
              (let ((case-fold-search t))
                (save-excursion
                  (save-restriction
@@ -4774,7 +4774,7 @@ The prefix arg TODO-ONLY limits the search to TODO 
entries."
                    rtnall (append rtnall rtn))
            (with-current-buffer buffer
              (unless (derived-mode-p 'org-mode)
-               (error "Agenda file %s is not in `org-mode'" file))
+               (error "Agenda file %s is not in Org mode" file))
              (save-excursion
                (save-restriction
                  (if (eq buffer org-agenda-restrict)
@@ -5067,9 +5067,9 @@ of what a project is and how to check if it stuck, 
customize the variable
 
 (defun org-agenda-cleanup-fancy-diary ()
   "Remove unwanted stuff in buffer created by `fancy-diary-display'.
-This gets rid of the date, the underline under the date, and
-the dummy entry installed by `org-mode' to ensure non-empty diary for each
-date.  It also removes lines that contain only whitespace."
+This gets rid of the date, the underline under the date, and the
+dummy entry installed by Org mode to ensure non-empty diary for
+each date.  It also removes lines that contain only whitespace."
   (goto-char (point-min))
   (if (looking-at ".*?:[ \t]*")
       (progn
@@ -5214,7 +5214,7 @@ the documentation of `org-diary'."
        (list (format "ORG-AGENDA-ERROR: No such org-file %s" file))
       (with-current-buffer buffer
        (unless (derived-mode-p 'org-mode)
-         (error "Agenda file %s is not in `org-mode'" file))
+         (error "Agenda file %s is not in Org mode" file))
        (setq org-agenda-buffer (or org-agenda-buffer buffer))
        (setf org-agenda-current-date date)
        (save-excursion
diff --git a/lisp/org/org-archive.el b/lisp/org/org-archive.el
index a781134..755de7f 100644
--- a/lisp/org/org-archive.el
+++ b/lisp/org/org-archive.el
@@ -429,7 +429,7 @@ Archiving time is retained in the ARCHIVE_TIME node 
property."
        (looking-at org-outline-regexp)
        (setq leader (match-string 0)
              level (funcall outline-level))
-       (setq pos (point))
+       (setq pos (point-marker))
        (condition-case nil
            (outline-up-heading 1 t)
          (error (setq e (point-max)) (goto-char (point-min))))
diff --git a/lisp/org/org-capture.el b/lisp/org/org-capture.el
index 24fc0a6..cb1741f 100644
--- a/lisp/org/org-capture.el
+++ b/lisp/org/org-capture.el
@@ -927,18 +927,24 @@ Store them in the capture property list."
           (_ (error "Cannot find target ID \"%s\"" id))))
        (`(file+headline ,path ,headline)
         (set-buffer (org-capture-target-buffer path))
+        ;; Org expects the target file to be in Org mode, otherwise
+        ;; it throws an error.  However, the default notes files
+        ;; should work out of the box.  In this case, we switch it to
+        ;; Org mode.
         (unless (derived-mode-p 'org-mode)
-          (error "Target buffer \"%s\" for file+headline not in Org mode"
-                 (current-buffer)))
+          (org-display-warning
+           (format "Capture requirement: switching buffer %S to Org mode"
+                   (current-buffer)))
+          (org-mode))
         (org-capture-put-target-region-and-position)
         (widen)
         (goto-char (point-min))
         (if (re-search-forward (format org-complex-heading-regexp-format
                                        (regexp-quote headline))
                                nil t)
-            (goto-char (line-beginning-position))
+            (beginning-of-line)
           (goto-char (point-max))
-          (or (bolp) (insert "\n"))
+          (unless (bolp) (insert "\n"))
           (insert "* " headline "\n")
           (beginning-of-line 0)))
        (`(file+olp ,path . ,outline-path)
diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el
index fd076de..9bc1f0c 100644
--- a/lisp/org/org-clock.el
+++ b/lisp/org/org-clock.el
@@ -1456,8 +1456,7 @@ The time is always returned as UTC."
             (day (nth 3 dt)))
        (if (< hour org-extend-today-until) (setf (nth 3 dt) (1- day)))
        (setf (nth 2 dt) org-extend-today-until)
-       (setq dt (append (list 0 0) (nthcdr 2 dt) '(t)))
-       (apply #'encode-time dt)))
+       (apply #'encode-time (append (list 0 0) (nthcdr 2 dt)))))
      ((or (equal cmt "all")
          (and (or (not cmt) (equal cmt "auto"))
               (not lr)))
diff --git a/lisp/org/org-compat.el b/lisp/org/org-compat.el
index 138e14e..f32fcd1 100644
--- a/lisp/org/org-compat.el
+++ b/lisp/org/org-compat.el
@@ -32,12 +32,12 @@
 (require 'cl-lib)
 (require 'org-macs)
 
-(declare-function org-at-table.el-p "org" (&optional table-type))
+(declare-function org-at-table.el-p "org" ())
 (declare-function org-element-at-point "org-element" ())
 (declare-function org-element-type "org-element" (element))
 (declare-function org-end-of-subtree "org" (&optional invisible-ok to-heading))
 (declare-function org-link-set-parameters "org" (type &rest rest))
-(declare-function org-table-end (&optional table-type))
+(declare-function org-table-end "org-table" (&optional table-type))
 (declare-function outline-next-heading "outline" ())
 (declare-function table--at-cell-p "table" (position &optional object 
at-column))
 
diff --git a/lisp/org/org-duration.el b/lisp/org/org-duration.el
index 356a034..1c962ba 100644
--- a/lisp/org/org-duration.el
+++ b/lisp/org/org-duration.el
@@ -51,7 +51,7 @@
 
 (require 'cl-lib)
 (require 'org-macs)
-(declare-function org-trim "org-trim" (s &optional keep-lead))
+(declare-function org-trim "org" (s &optional keep-lead))
 
 
 ;;; Public variables
@@ -99,8 +99,8 @@ sure to call the following command:
   :set (lambda (var val) (set-default var val) (org-duration-set-regexps))
   :initialize 'custom-initialize-changed
   :type '(choice
-         (const :tag "H:MM" 'h:mm)
-         (const :tag "H:MM:SS" 'h:mm:ss)
+         (const :tag "H:MM" h:mm)
+         (const :tag "H:MM:SS" h:mm:ss)
          (alist :key-type (string :tag "Unit")
                 :value-type (number :tag "Modifier"))))
 
diff --git a/lisp/org/org-footnote.el b/lisp/org/org-footnote.el
index f9d8055..4d3f154 100644
--- a/lisp/org/org-footnote.el
+++ b/lisp/org/org-footnote.el
@@ -45,7 +45,7 @@
 (declare-function org-element-property "org-element" (property element))
 (declare-function org-element-type "org-element" (element))
 (declare-function org-end-of-subtree "org"  (&optional invisible-ok 
to-heading))
-(declare-function org-fill-paragraph "org" (&optional justify))
+(declare-function org-fill-paragraph "org" (&optional justify region))
 (declare-function org-in-block-p "org" (names))
 (declare-function org-in-regexp "org" (re &optional nlines visually))
 (declare-function org-in-verbatim-emphasis "org" ())
diff --git a/lisp/org/org-inlinetask.el b/lisp/org/org-inlinetask.el
index 5b65fab..1825b88 100644
--- a/lisp/org/org-inlinetask.el
+++ b/lisp/org/org-inlinetask.el
@@ -182,24 +182,28 @@ The number of levels is controlled by 
`org-inlinetask-min-level'."
 
 (defun org-inlinetask-goto-end ()
   "Go to the end of the inline task at point.
-Return point."
+    Return point."
   (save-match-data
     (beginning-of-line)
     (let* ((case-fold-search t)
-          (inlinetask-re (org-inlinetask-outline-regexp))
-          (task-end-re (concat inlinetask-re "END[ \t]*$")))
+           (inlinetask-re (org-inlinetask-outline-regexp))
+           (task-end-re (concat inlinetask-re "END[ \t]*$")))
       (cond
-       ((looking-at task-end-re))
-       ((looking-at inlinetask-re)
-       (forward-line)
-       (cond
-        ((looking-at task-end-re))
-        ((looking-at inlinetask-re))
-        ((org-inlinetask-in-task-p)
-         (re-search-forward inlinetask-re nil t))))
-       (t (re-search-forward inlinetask-re nil t)))
-      (end-of-line)
-      (point))))
+       ((looking-at-p task-end-re)
+        (forward-line))
+       ((looking-at-p inlinetask-re)
+        (forward-line)
+        (cond
+         ((looking-at-p task-end-re) (forward-line))
+         ((looking-at-p inlinetask-re))
+         ((org-inlinetask-in-task-p)
+          (re-search-forward inlinetask-re nil t)
+          (forward-line))
+         (t nil)))
+       (t
+        (re-search-forward inlinetask-re nil t)
+        (forward-line)))))
+  (point))
 
 (defun org-inlinetask-get-task-level ()
   "Get the level of the inline task around.
@@ -330,7 +334,9 @@ This function is meant to be used in `org-cycle-hook'."
           (org-inlinetask-goto-end)))))
     (`children
      (save-excursion
-       (while (and (outline-next-heading) (org-inlinetask-at-task-p))
+       (while
+          (or (org-inlinetask-at-task-p)
+              (and (outline-next-heading) (org-inlinetask-at-task-p)))
         (org-inlinetask-toggle-visibility)
         (org-inlinetask-goto-end))))))
 
diff --git a/lisp/org/org-pcomplete.el b/lisp/org/org-pcomplete.el
index f0c0793..a7cc09d 100644
--- a/lisp/org/org-pcomplete.el
+++ b/lisp/org/org-pcomplete.el
@@ -41,11 +41,6 @@
 
 ;;;; Customization variables
 
-(defgroup org-complete nil
-  "Outline-based notes management and organizer."
-  :tag "Org"
-  :group 'org)
-
 (defvar org-drawer-regexp)
 (defvar org-property-re)
 (defvar org-current-tag-alist)
diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el
index 0ba7165..3932671 100644
--- a/lisp/org/org-table.el
+++ b/lisp/org/org-table.el
@@ -644,17 +644,30 @@ nil      When nil, the command tries to be smart and 
figure out the
       (org-table-align))))
 
 ;;;###autoload
-(defun org-table-import (file arg)
+(defun org-table-import (file separator)
   "Import FILE as a table.
-The file is assumed to be tab-separated.  Such files can be produced by most
-spreadsheet and database applications.  If no tabs (at least one per line)
-are found, lines will be split on whitespace into fields."
+
+The command tries to be smart and figure out the separator in the
+following way:
+
+  - when each line contains a TAB, assume TAB-separated material
+  - when each line contains a comma, assume CSV material
+  - else, assume one or more SPACE characters as separator.
+
+When non-nil, SEPARATOR specifies the field separator in the
+lines.  It can have the following values:
+
+(4)     Use the comma as a field separator
+(16)    Use a TAB as field separator
+(64)    Prompt for a regular expression as field separator
+integer When a number, use that many spaces, or a TAB, as field separator
+regexp  When a regular expression, use it to match the separator."
   (interactive "f\nP")
-  (or (bolp) (newline))
+  (unless (bolp) (insert "\n"))
   (let ((beg (point))
        (pm (point-max)))
     (insert-file-contents file)
-    (org-table-convert-region beg (+ (point) (- (point-max) pm)) arg)))
+    (org-table-convert-region beg (+ (point) (- (point-max) pm)) separator)))
 
 
 ;;;###autoload
@@ -1166,7 +1179,7 @@ to a number.  In the case of a timestamp, increment by 
days."
                              (- (org-time-string-to-absolute txt)
                                 (org-time-string-to-absolute txt-up)))
                             ((string-match org-ts-regexp3 txt) 1)
-                            ((string-match 
"\\([-+]\\)?[0-9]+\\(?:\.[0-9]+\\)?" txt-up)
+                            ((string-match 
"\\([-+]\\)?\\(?:[0-9]+\\)?\\(?:\.[0-9]+\\)?" txt-up)
                              (- (string-to-number txt)
                                 (string-to-number (match-string 0 txt-up))))
                             (t 1)))
@@ -4311,14 +4324,14 @@ FACE, when non-nil, for the highlight."
 
 ;;;###autoload
 (define-minor-mode orgtbl-mode
-  "The `org-mode' table editor as a minor mode for use in other modes."
+  "The Org mode table editor as a minor mode for use in other modes."
   :lighter " OrgTbl" :keymap orgtbl-mode-map
   (org-load-modules-maybe)
   (cond
    ((derived-mode-p 'org-mode)
-    ;; Exit without error, in case some hook functions calls this
-    ;; by accident in org-mode.
-    (message "Orgtbl-mode is not useful in org-mode, command ignored"))
+    ;; Exit without error, in case some hook functions calls this by
+    ;; accident in Org mode.
+    (message "Orgtbl mode is not useful in Org mode, command ignored"))
    (orgtbl-mode
     (and (orgtbl-setup) (defun orgtbl-setup () nil)) ;; FIXME: Yuck!?!
     ;; Make sure we are first in minor-mode-map-alist
diff --git a/lisp/org/org-version.el b/lisp/org/org-version.el
index 749cbe0..8ec120e 100644
--- a/lisp/org/org-version.el
+++ b/lisp/org/org-version.el
@@ -5,13 +5,13 @@
 (defun org-release ()
   "The release version of Org.
 Inserted by installing Org mode or when a release is made."
-   (let ((org-release "9.1.4"))
+   (let ((org-release "9.1.6"))
      org-release))
 ;;;###autoload
 (defun org-git-version ()
-  "The Git version of org-mode.
+  "The Git version of Org mode.
 Inserted by installing Org or when a release is made."
-   (let ((org-git-version "release_9.1.4-44-gfe7310"))
+   (let ((org-git-version "release_9.1.6-50-g96b33f"))
      org-git-version))
 
 (provide 'org-version)
diff --git a/lisp/org/org-w3m.el b/lisp/org/org-w3m.el
index a3ca478..706619c 100644
--- a/lisp/org/org-w3m.el
+++ b/lisp/org/org-w3m.el
@@ -57,7 +57,7 @@
      :description (or w3m-current-title w3m-current-url))))
 
 (defun org-w3m-copy-for-org-mode ()
-  "Copy current buffer content or active region with `org-mode' style links.
+  "Copy current buffer content or active region with Org style links.
 This will encode `link-title' and `link-location' with
 `org-make-link-string', and insert the transformed test into the kill ring,
 so that it can be yanked into an Org  buffer with links working correctly."
@@ -94,7 +94,7 @@ so that it can be yanked into an Org  buffer with links 
working correctly."
               ;; get link title at current point.
               (setq link-title (buffer-substring (point)
                                                  (org-w3m-get-anchor-end)))
-              ;; concat `org-mode' style url to `return-content'.
+              ;; concat Org style url to `return-content'.
               (setq return-content (concat return-content
                                            (org-make-link-string
                                             link-location link-title))))
diff --git a/lisp/org/org.el b/lisp/org/org.el
index 173003d..5272061 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -749,7 +749,7 @@ For export specific modules, see also 
`org-export-backends'."
        (const :tag "C  panel:             Simple routines for us with bad 
memory" org-panel)
        (const :tag "C  registry:          A registry for Org links" 
org-registry)
        (const :tag "C  screen:            Visit screen sessions through Org 
links" org-screen)
-       (const :tag "C  secretary:         Team management with org-mode" 
org-secretary)
+       (const :tag "C  secretary:         Team management with Org" 
org-secretary)
        (const :tag "C  sqlinsert:         Convert Org tables to SQL 
insertions" orgtbl-sqlinsert)
        (const :tag "C  toc:               Table of contents for Org buffer" 
org-toc)
        (const :tag "C  track:             Keep up with Org mode development" 
org-track)
@@ -1710,7 +1710,7 @@ doesn't specify any upper case character."
   :type '(choice
          (const :tag "Case-sensitive" nil)
          (const :tag "Case-insensitive" t)
-         (const :tag "Case-insensitive for lower case searches only" 'smart)))
+         (const :tag "Case-insensitive for lower case searches only" smart)))
 
 (defcustom org-occur-hook '(org-first-headline-recenter)
   "Hook that is run after `org-occur' has constructed a sparse tree.
@@ -4167,7 +4167,10 @@ A string will be inserted as-is in the header of the 
document."
           (list :tag "options/package pair"
                 (string :tag "options")
                 (string :tag "package")
-                (boolean :tag "Snippet"))
+                (boolean :tag "Snippet")
+                (choice
+                 (const :tag "For all compilers" nil)
+                 (repeat :tag "Allowed compiler" string)))
           (string :tag "A line of LaTeX"))))
 
 (defcustom org-latex-packages-alist nil
@@ -4870,7 +4873,7 @@ After a match, the following groups carry important 
information:
     ("beamer" org-startup-with-beamer-mode t)
     ("entitiespretty" org-pretty-entities t)
     ("entitiesplain" org-pretty-entities nil))
-  "Variable associated with STARTUP options for org-mode.
+  "Variable associated with STARTUP options for Org.
 Each element is a list of three items: the startup options (as written
 in the #+STARTUP line), the corresponding variable, and the value to set
 this variable to if the option is found.  An optional forth element PUSH
@@ -5934,7 +5937,7 @@ by a #."
 (defun org-fontify-meta-lines-and-blocks (limit)
   (condition-case nil
       (org-fontify-meta-lines-and-blocks-1 limit)
-    (error (message "org-mode fontification error in %S at %d"
+    (error (message "Org mode fontification error in %S at %d"
                    (current-buffer)
                    (line-number-at-pos)))))
 
@@ -6925,6 +6928,7 @@ If POS is nil, use `point' instead."
          (org-list-set-item-visibility (point-at-bol) struct 'children)
        (org-show-entry)
        (org-with-limited-levels (org-show-children))
+       (org-show-set-visibility 'canonical)
        ;; FIXME: This slows down the func way too much.
        ;; How keep drawers hidden in subtree anyway?
        ;; (when (memq 'org-cycle-hide-drawers org-cycle-hook)
@@ -7019,20 +7023,22 @@ With a numeric prefix, show all headlines up to that 
level."
         (save-excursion
           (org-back-to-heading t)
           (outline-hide-subtree)
-          (org-reveal)
-          (cond
-           ((equal state "folded")
-            (outline-hide-subtree))
-           ((equal state "children")
-            (org-show-hidden-entry)
-            (org-show-children))
-           ((equal state "content")
-            (save-excursion
-              (save-restriction
-                (org-narrow-to-subtree)
-                (org-content))))
-           ((member state '("all" "showall"))
-            (outline-show-subtree)))))))
+          (org-reveal))
+        (cond
+         ((equal state "folded")
+          (outline-hide-subtree)
+          (org-end-of-subtree t t))
+         ((equal state "children")
+          (org-show-hidden-entry)
+          (org-show-children))
+         ((equal state "content")
+          (save-excursion
+            (save-restriction
+              (org-narrow-to-subtree)
+              (org-content)))
+          (org-end-of-subtree t t))
+         ((member state '("all" "showall"))
+          (outline-show-subtree))))))
    (unless no-cleanup
      (org-cycle-hide-archived-subtrees 'all)
      (org-cycle-hide-drawers 'all)
@@ -7181,11 +7187,12 @@ are at least `org-cycle-separator-lines' empty lines 
before the headline."
   "Return `org-agenda-files' list, plus all open Org files.
 This is useful for operations that need to scan all of a user's
 open and agenda-wise Org files."
-  (let ((files (mapcar 'expand-file-name (org-agenda-files))))
+  (let ((files (mapcar #'expand-file-name (org-agenda-files))))
     (dolist (buf (buffer-list))
       (with-current-buffer buf
        (when (and (derived-mode-p 'org-mode) (buffer-file-name))
-         (cl-pushnew (expand-file-name (buffer-file-name)) files))))
+         (cl-pushnew (expand-file-name (buffer-file-name)) files
+                     :test #'equal))))
     files))
 
 (defsubst org-entry-beginning-position ()
@@ -9949,20 +9956,24 @@ according to FMT (default from 
`org-email-link-description-format')."
                                    (reverse slines))) "\n")))))
     (mapconcat #'identity (split-string s) " ")))
 
+(defconst org-link-escape-chars
+  ;;%20 %5B %5D %25
+  '(?\s ?\[ ?\] ?%)
+  "List of characters that should be escaped in a link when stored to Org.
+This is the list that is used for internal purposes.")
+
 (defun org-make-link-string (link &optional description)
   "Make a link with brackets, consisting of LINK and DESCRIPTION."
   (unless (org-string-nw-p link) (error "Empty link"))
   (let ((uri (cond ((string-match org-link-types-re link)
                    (concat (match-string 1 link)
                            (org-link-escape (substring link (match-end 1)))))
-                  ;; For readability, url-encode internal links only
-                  ;; when absolutely needed (i.e, when they contain
-                  ;; square brackets).  File links however, are
-                  ;; encoded since, e.g., spaces are significant.
                   ((or (file-name-absolute-p link)
-                       (string-match-p "\\`\\.\\.?/\\|[][]" link))
+                       (string-match-p "\\`\\.\\.?/" link))
                    (org-link-escape link))
-                  (t link)))
+                  ;; For readability, do not encode space characters
+                  ;; in fuzzy links.
+                  (t (org-link-escape link (remq ?\s org-link-escape-chars)))))
        (description
         (and (org-string-nw-p description)
              ;; Remove brackets from description, as they are fatal.
@@ -9973,12 +9984,6 @@ according to FMT (default from 
`org-email-link-description-format')."
            uri
            (if description (format "[%s]" description) ""))))
 
-(defconst org-link-escape-chars
-  ;;%20 %5B %5D %25
-  '(?\s ?\[ ?\] ?%)
-  "List of characters that should be escaped in a link when stored to Org.
-This is the list that is used for internal purposes.")
-
 (defun org-link-escape (text &optional table merge)
   "Return percent escaped representation of TEXT.
 TEXT is a string with the text to escape.
@@ -10280,11 +10285,19 @@ Use TAB to complete link prefixes, then RET for 
type-specific completion support
            ;; We are linking to this same file, with a search option
            (setq link search)))))
 
-    ;; Check if we can/should use a relative path.  If yes, simplify the link
+    ;; Check if we can/should use a relative path.  If yes, simplify
+    ;; the link.
     (let ((case-fold-search nil))
       (when (string-match "\\`\\(file\\|docview\\):" link)
        (let* ((type (match-string-no-properties 0 link))
-              (path (substring-no-properties link (match-end 0)))
+              (path-start (match-end 0))
+              (search (and (string-match "::\\(.*\\)\\'" link)
+                           (match-string 1 link)))
+              (path
+               (if search
+                   (substring-no-properties
+                    link path-start (match-beginning 0))
+                 (substring-no-properties link (match-end 0))))
               (origpath path))
          (cond
           ((or (eq org-link-file-path-type 'absolute)
@@ -10305,7 +10318,7 @@ Use TAB to complete link prefixes, then RET for 
type-specific completion support
                  (setq path (substring (expand-file-name path)
                                        (match-end 0)))
                (setq path (abbreviate-file-name (expand-file-name path)))))))
-         (setq link (concat type path))
+         (setq link (concat type path (and search (concat "::" search))))
          (when (equal desc origpath)
            (setq desc path)))))
 
@@ -12185,7 +12198,7 @@ There are two templates for each key, the first uses 
the original Org syntax,
 the second uses Emacs Muse-like syntax tags.  These Muse-like tags become
 the default when the /org-mtags.el/ module has been loaded.  See also the
 variable `org-mtags-prefer-muse-templates'."
-  :group 'org-completion
+  :group 'org-edit-structure
   :type '(repeat
          (list
           (string :tag "Key")
@@ -12377,7 +12390,7 @@ When called through ELisp, arg is also interpreted in 
the following way:
          (or (looking-at (concat " +" org-todo-regexp "\\( +\\|[ \t]*$\\)"))
              (looking-at "\\(?: *\\|[ \t]*$\\)"))
          (let* ((match-data (match-data))
-                (startpos (point-at-bol))
+                (startpos (copy-marker (line-beginning-position)))
                 (logging (save-match-data (org-entry-get nil "LOGGING" t t)))
                 (org-log-done org-log-done)
                 (org-log-repeat org-log-repeat)
diff --git a/lisp/org/ox-beamer.el b/lisp/org/ox-beamer.el
index e17087b..15b78dc 100644
--- a/lisp/org/ox-beamer.el
+++ b/lisp/org/ox-beamer.el
@@ -174,11 +174,11 @@ through `org-beamer-environments-extra' variable.")
     ("quotation"      "q" "\\begin{quotation}%a %% %h"    "\\end{quotation}")
     ("quote"          "Q" "\\begin{quote}%a %% %h"        "\\end{quote}")
     ("structureenv"   "s" "\\begin{structureenv}%a %% %h" 
"\\end{structureenv}")
-    ("theorem"        "t" "\\begin{theorem}%a%U"          "\\end{theorem}")
-    ("definition"     "d" "\\begin{definition}%a%U"       "\\end{definition}")
-    ("example"        "e" "\\begin{example}%a%U"          "\\end{example}")
+    ("theorem"        "t" "\\begin{theorem}%a[%h]"        "\\end{theorem}")
+    ("definition"     "d" "\\begin{definition}%a[%h]"     "\\end{definition}")
+    ("example"        "e" "\\begin{example}%a[%h]"        "\\end{example}")
     ("exampleblock"   "E" "\\begin{exampleblock}%a{%h}"   
"\\end{exampleblock}")
-    ("proof"          "p" "\\begin{proof}%a%U"            "\\end{proof}")
+    ("proof"          "p" "\\begin{proof}%a[%h]"          "\\end{proof}")
     ("beamercolorbox" "o" "\\begin{beamercolorbox}%o{%h}" 
"\\end{beamercolorbox}"))
   "Environments triggered by properties in Beamer export.
 These are the defaults - for user definitions, see
diff --git a/lisp/org/ox-latex.el b/lisp/org/ox-latex.el
index 2dce7bc..a656e06 100644
--- a/lisp/org/ox-latex.el
+++ b/lisp/org/ox-latex.el
@@ -2180,19 +2180,16 @@ contextual information."
                         (nth (1- level) '("i" "ii" "iii" "iv"))
                         (1- count)))))
         (checkbox (cl-case (org-element-property :checkbox item)
-                    (on "$\\boxtimes$ ")
-                    (off "$\\square$ ")
-                    (trans "$\\boxminus$ ")))
+                    (on "$\\boxtimes$")
+                    (off "$\\square$")
+                    (trans "$\\boxminus$")))
         (tag (let ((tag (org-element-property :tag item)))
-               ;; Check-boxes must belong to the tag.
-               (and tag (format "[{%s}] "
-                                (concat checkbox
-                                        (org-export-data tag info)))))))
+               (and tag (org-export-data tag info)))))
     (concat counter
            "\\item"
            (cond
-            (tag)
-            (checkbox (concat " " checkbox))
+            ((and checkbox tag) (format "[{%s %s}] " checkbox tag))
+            ((or checkbox tag) (format "[{%s}] " (or checkbox tag)))
             ;; Without a tag or a check-box, if CONTENTS starts with
             ;; an opening square bracket, add "\relax" to "\item",
             ;; unless the brackets comes from an initial export
diff --git a/lisp/org/ox-md.el b/lisp/org/ox-md.el
index a90a29f..c4da8fc 100644
--- a/lisp/org/ox-md.el
+++ b/lisp/org/ox-md.el
@@ -500,14 +500,15 @@ TEXT is the string to transcode.  INFO is a plist holding
 contextual information."
   (when (plist-get info :with-smart-quotes)
     (setq text (org-export-activate-smart-quotes text :html info)))
+  ;; The below series of replacements in `text' is order sensitive.
+  ;; Protect `, *, _, and \
+  (setq text (replace-regexp-in-string "[`*_\\]" "\\\\\\&" text))
   ;; Protect ambiguous #.  This will protect # at the beginning of
   ;; a line, but not at the beginning of a paragraph.  See
   ;; `org-md-paragraph'.
   (setq text (replace-regexp-in-string "\n#" "\n\\\\#" text))
   ;; Protect ambiguous !
   (setq text (replace-regexp-in-string "\\(!\\)\\[" "\\\\!" text nil nil 1))
-  ;; Protect `, *, _ and \
-  (setq text (replace-regexp-in-string "[`*_\\]" "\\\\\\&" text))
   ;; Handle special strings, if required.
   (when (plist-get info :with-special-strings)
     (setq text (org-html-convert-special-strings text)))
diff --git a/lisp/org/ox-odt.el b/lisp/org/ox-odt.el
index a7f8e04..e0c5166 100644
--- a/lisp/org/ox-odt.el
+++ b/lisp/org/ox-odt.el
@@ -721,16 +721,17 @@ nil            Ignore math snippets.
                imagemagick to convert pdf files to png files.
 `mathjax'      Do MathJax preprocessing and arrange for MathJax.js to
                be loaded.
-t              Synonym for `mathjax'."
+
+Any other symbol is a synonym for `mathjax'."
   :group 'org-export-odt
   :version "24.4"
   :package-version '(Org . "8.0")
   :type '(choice
          (const :tag "Do not process math in any way" nil)
+         (const :tag "Leave math verbatim" verbatim)
          (const :tag "Use dvipng to make images" dvipng)
          (const :tag "Use imagemagick to make images" imagemagick)
-         (const :tag "Use MathJax to display math" mathjax)
-         (const :tag "Leave math verbatim" verbatim)))
+         (other :tag "Use MathJax to display math" mathjax)))
 
 
 ;;;; Links
diff --git a/lisp/org/ox-publish.el b/lisp/org/ox-publish.el
index 15c9e94..5deb7c5 100644
--- a/lisp/org/ox-publish.el
+++ b/lisp/org/ox-publish.el
@@ -57,10 +57,10 @@ Every function in this hook will be called with two 
arguments:
 the name of the original file and the name of the file
 produced.")
 
-(defgroup org-publish nil
+(defgroup org-export-publish nil
   "Options for publishing a set of files."
   :tag "Org Publishing"
-  :group 'org)
+  :group 'org-export)
 
 (defcustom org-publish-project-alist nil
   "Association list to control publishing behavior.
diff --git a/lisp/org/ox.el b/lisp/org/ox.el
index 1b52f39..7bdac4f 100644
--- a/lisp/org/ox.el
+++ b/lisp/org/ox.el
@@ -3699,7 +3699,9 @@ the communication channel used for export, as a plist."
                    :translate-alist all-transcoders
                    :exported-data (make-hash-table :test #'eq :size 401)))))
        ;; `:internal-references' are shared across back-ends.
-       (prog1 (funcall transcoder data contents new-info)
+       (prog1 (if (eq type 'plain-text)
+                  (funcall transcoder data new-info)
+                (funcall transcoder data contents new-info))
          (plist-put info :internal-references
                     (plist-get new-info :internal-references)))))))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]