0
0
Fork 1
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-08-25 16:32:51 +00:00

oc-basic.el: Fix wrong type for the editors field when parsing JSON.

* lisp/oc-basic.el (org-cite-basic--parse-json): Make sure
`org-cite-basic--parse-json' produces a string for the editors field.
The function `org-cite-basic--get-author' expects a string for both the
"authors" field and the "editors" field.
The conversion to string was only done for the "authors" field in
`org-cite-basic--parse-json'. This patch fixes the issue by applying the
transformation to both "authors" and "editors".

This points to a more general issue where `org-cite-basic--get-field' is
expected to return nil or a string, but calls
`org-cite-basic--get-entry' that may return an association list.

TINYCHANGE
This commit is contained in:
hugcis 2022-12-20 17:15:20 +01:00 committed by Ihor Radchenko
parent 7f2f73c414
commit 318807013c
No known key found for this signature in database
GPG key ID: 6470762A7DA11D8B

View file

@ -162,17 +162,17 @@ Return a hash table with citation references as keys and fields alist as values.
(puthash (cdr (assq 'id item))
(mapcar (pcase-lambda (`(,field . ,value))
(pcase field
('author
;; Author is an array of objects, each
;; of them designing a person. These
;; objects may contain multiple
;; properties, but for this basic
;; processor, we'll focus on `given' and
;; `family'.
((or 'author 'editors)
;; Author and editors are arrays of
;; objects, each of them designing a
;; person. These objects may contain
;; multiple properties, but for this
;; basic processor, we'll focus on
;; `given' and `family'.
;;
;; For compatibility with BibTeX, add
;; "and" between authors.
(cons 'author
;; "and" between authors and editors.
(cons field
(mapconcat
(lambda (alist)
(concat (alist-get 'family alist)