From ac6ac76e3ae5ca96607ac7eba4a3ccf146fc8815 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sat, 16 Oct 2021 14:01:34 -0400 Subject: [PATCH] Update to Org 9.5-57-g9bc3a2 --- etc/ORG-NEWS | 9 +++++++++ lisp/org/oc-basic.el | 1 - lisp/org/oc-biblatex.el | 4 ++-- lisp/org/oc-csl.el | 21 ++++++++++++--------- lisp/org/oc.el | 36 +++++++++++++++++++++--------------- lisp/org/org-version.el | 2 +- lisp/org/org.el | 1 + 7 files changed, 46 insertions(+), 28 deletions(-) diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index cbb0d38a2ad..5e7813ca7fb 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -98,6 +98,15 @@ latest stable version of Org should be compatible with Emacs 28.x, See [[https://orgmode.org/worg/org-maintenance.html#emacs-compatibility][this note on Worg]] and [[git::519947e508e081e71bf67db99e27b1c171ba4dfe][this commit]]. +*** The keybinding for ~org-table-blank-field~ has been removed + +If you prefer to keep the keybinding, you can add it back to +~org-mode-map~ like so: + +#+begin_src emacs-lisp +(define-key org-mode-map (kbd "C-c SPC") #'org-table-blank-field) +#+end_src + ** New features *** New citation engine diff --git a/lisp/org/oc-basic.el b/lisp/org/oc-basic.el index 98242f3b841..c51c7d301e4 100644 --- a/lisp/org/oc-basic.el +++ b/lisp/org/oc-basic.el @@ -69,7 +69,6 @@ (require 'bibtex) (require 'json) (require 'oc) -(require 'org) (require 'seq) (declare-function org-open-at-point "org" (&optional arg)) diff --git a/lisp/org/oc-biblatex.el b/lisp/org/oc-biblatex.el index daf56e792a6..e985963816a 100644 --- a/lisp/org/oc-biblatex.el +++ b/lisp/org/oc-biblatex.el @@ -213,8 +213,8 @@ PROPS is the local properties of the bibliography, as a property list." (defun org-cite-biblatex-export-citation (citation style _ info) "Export CITATION object. -STYLE is the citation style, as a string or nil. INFO is the export state, as -a property list." +STYLE is the citation style, as a pair of either strings or nil. +INFO is the export state, as a property list." (apply #'org-cite-biblatex--command citation info (pcase style diff --git a/lisp/org/oc-csl.el b/lisp/org/oc-csl.el index 3d138807592..94de97e33a1 100644 --- a/lisp/org/oc-csl.el +++ b/lisp/org/oc-csl.el @@ -248,11 +248,11 @@ If nil then the Chicago author-date style is used as a fallback.") ("paras." . "paragraph") ("¶" . "paragraph") ("¶¶" . "paragraph") - ("§" . "paragraph") - ("§§" . "paragraph") ("part" . "part") ("pt." . "part") ("pts." . "part") + ("§" . "section") + ("§§" . "section") ("section" . "section") ("sec." . "section") ("secs." . "section") @@ -270,11 +270,12 @@ If nil then the Chicago author-date style is used as a fallback.") (defconst org-cite-csl--label-regexp ;; Prior to Emacs-27.1 argument of `regexp' form must be a string literal. ;; It is the reason why `rx' is avoided here. - (rx-to-string `(seq word-start - (regexp ,(regexp-opt (mapcar #'car org-cite-csl--label-alist) t)) - (0+ digit) - (or word-start line-end (any ?\s ?\t))) - t) + (rx-to-string + `(seq (or line-start space) + (regexp ,(regexp-opt (mapcar #'car org-cite-csl--label-alist) t)) + (0+ digit) + (or word-end line-end space " ")) + t) "Regexp matching a label in a citation reference suffix. Label is in match group 1.") @@ -371,7 +372,7 @@ or raise an error if the variable is unset." ((and (guard org-cite-csl-styles-dir) file) (expand-file-name file org-cite-csl-styles-dir)) (other - (user-error "Cannot handle relative style file name" other)))) + (user-error "Cannot handle relative style file name: %S" other)))) (defun org-cite-csl--locale-getter () "Return a locale getter. @@ -425,7 +426,9 @@ The result is a association list. Keys are: `id', `prefix',`suffix', ((re-search-forward org-cite-csl--label-regexp nil t) (setq location-start (match-beginning 0)) (setq label (cdr (assoc (match-string 1) org-cite-csl--label-alist))) - (setq locator-start (match-end 1))) + (goto-char (match-end 1)) + (skip-chars-forward "[:space:] ") + (setq locator-start (point))) ((re-search-forward (rx digit) nil t) (setq location-start (match-beginning 0)) (setq label "page") diff --git a/lisp/org/oc.el b/lisp/org/oc.el index 2f741768f88..dcda8d7d084 100644 --- a/lisp/org/oc.el +++ b/lisp/org/oc.el @@ -789,6 +789,20 @@ Citations are ordered by appearance in the document, when following footnotes. INFO is the export communication channel, as a property list." (or (plist-get info :citations) (letrec ((cites nil) + (tree (plist-get info :parse-tree)) + (find-definition + ;; Find definition for standard reference LABEL. At + ;; this point, it is impossible to rely on + ;; `org-export-get-footnote-definition' because the + ;; function caches results that could contain + ;; un-processed citation objects. So we use + ;; a simplified version of the function above. + (lambda (label) + (org-element-map tree 'footnote-definition + (lambda (d) + (and (equal label (org-element-property :label d)) + (or (org-element-contents d) ""))) + info t))) (search-cites (lambda (data) (org-element-map data '(citation footnote-reference) @@ -798,22 +812,13 @@ INFO is the export communication channel, as a property list." ;; Do not force entering inline definitions, since ;; `org-element-map' is going to enter it anyway. ((guard (eq 'inline (org-element-property :type datum)))) - ;; Find definition for current standard - ;; footnote reference. Unlike to - ;; `org-export-get-footnote-definition', do - ;; not cache results as they would contain - ;; un-processed citation objects. + ;; Walk footnote definition. (_ (let ((label (org-element-property :label datum))) - (funcall - search-cites - (org-element-map data 'footnote-definition - (lambda (d) - (and - (equal label (org-element-property :label d)) - (or (org-element-contents d) ""))))))))) + (funcall search-cites + (funcall find-definition label)))))) info nil 'footnote-definition t)))) - (funcall search-cites (plist-get info :parse-tree)) + (funcall search-cites tree) (let ((result (nreverse cites))) (plist-put info :citations result) result)))) @@ -1593,8 +1598,9 @@ The generated function inserts or edit a citation at point. More specifically, (concat "/" style) "")) "") - (mapconcat (lambda (k) (concat "@" k)) keys ";")))))))) + (mapconcat (lambda (k) (concat "@" k)) keys "; ")))))))) +;;;###autoload (defun org-cite-insert (arg) "Insert a citation at point. Insertion is done according to the processor set in `org-cite-insert-processor'. @@ -1603,7 +1609,7 @@ ARG is the prefix argument received when calling interactively the function." (let ((name org-cite-insert-processor)) (cond ((null name) - (user-error "No processor set to follow citations")) + (user-error "No processor set to insert citations")) ((not (org-cite--get-processor name)) (user-error "Unknown processor %S" name)) ((not (org-cite-processor-has-capability-p name 'insert)) diff --git a/lisp/org/org-version.el b/lisp/org/org-version.el index 9948008774d..4464459695f 100644 --- a/lisp/org/org-version.el +++ b/lisp/org/org-version.el @@ -11,7 +11,7 @@ Inserted by installing Org mode or when a release is made." (defun org-git-version () "The Git version of Org mode. Inserted by installing Org or when a release is made." - (let ((org-git-version "release_9.5-46-gb71474")) + (let ((org-git-version "release_9.5-57-g9bc3a2")) org-git-version)) (provide 'org-version) diff --git a/lisp/org/org.el b/lisp/org/org.el index c2a37e6cdd1..83b3d79cb17 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el @@ -95,6 +95,7 @@ (require 'org-keys) (require 'ol) (require 'oc) +(require 'oc-basic) (require 'org-table) ;; `org-outline-regexp' ought to be a defconst but is let-bound in -- 2.39.2