X-Git-Url: https://git.donarmstrong.com/?p=org-ref.git;a=blobdiff_plain;f=doi-utils.org;h=e0ab22b1cd315e1601fbb1baba4c4651a227880e;hp=900d12b217dc0d121d081cf52ffbe251b2959672;hb=181d000ee93496a7dca80cf64a28afba2b70e43c;hpb=b65c5766ee17ae233a630fa77255bf63b2c80758 diff --git a/doi-utils.org b/doi-utils.org index 900d12b..e0ab22b 100644 --- a/doi-utils.org +++ b/doi-utils.org @@ -487,7 +487,7 @@ Next, we need to define the different bibtex types. Each type has a bibtex type #+BEGIN_SRC emacs-lisp :tangle doi-utils.el :results none (setq doi-utils-bibtex-type-generators nil) -(defun concat-prepare (lst &optional acc) +(defun doi-utils-concat-prepare (lst &optional acc) "Given a list `lst' of strings and other expressions, which are intented to passed to `concat', concat any subsequent strings, minimising the number of arguments being passed to `concat' @@ -495,10 +495,9 @@ without changing the results." (cond ((null lst) (nreverse acc)) ((and (stringp (car lst)) (stringp (car acc))) - (concat-prepare (cdr lst) (cons (concat (car acc) (car lst)) + (doi-utils-concat-prepare (cdr lst) (cons (concat (car acc) (car lst)) (cdr acc)))) - (t (concat-prepare (cdr lst) (cons (car lst) acc))))) - + (t (doi-utils-concat-prepare (cdr lst) (cons (car lst) acc))))) (defmacro doi-utils-def-bibtex-type (name matching-types &rest fields) "Define a BibTeX type identified by (symbol) `name' with @@ -516,7 +515,7 @@ when the `:type' parameter in the JSON metadata is contained in (error "unknown bibtex field type %s" field)))) fields) (concat - ,@(concat-prepare + ,@(doi-utils-concat-prepare (-flatten (list (concat "@" (symbol-name name) "{,\n") ;; there seems to be some bug with mapcan,