X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=inline;f=org-ref.el;h=9f02da885ecc678a09fdd4fd2b0d10c122fe3ca8;hb=95898732eda8a114e1aa5a06940293a1e00ce2ae;hp=46dfbe2c05dbb2f4b105d175d112ebcd94947805;hpb=0dbc1db6e2fedffc4725c6cd8680fa8f08098d67;p=org-ref.git
diff --git a/org-ref.el b/org-ref.el
index 46dfbe2..9f02da8 100644
--- a/org-ref.el
+++ b/org-ref.el
@@ -328,12 +328,12 @@ You will see a message in the minibuffer when on a cite, ref or label link."
":\\([a-zA-Z0-9-_:\\./]*,?\\)*"))
-(setq org-ref-label-re
- "label:\\([a-zA-Z0-9-_:]*,?\\)*")
+(defvar org-ref-label-re
+ "label:\\([a-zA-Z0-9-_:]*,?\\)*")
-(setq org-ref-ref-re
- "\\(eq\\)?ref:\\([a-zA-Z0-9-_:]*,?\\)*")
+(defvar org-ref-ref-re
+ "\\(eq\\)?ref:\\([a-zA-Z0-9-_:]*,?\\)*")
(defface org-ref-cite-face
@@ -507,6 +507,7 @@ Format according to the type in `org-ref-bibliography-entry-format'."
(with-temp-buffer
(insert-file-contents file)
+ (bibtex-set-dialect (parsebib-find-bibtex-dialect) t)
(bibtex-search-entry key nil 0)
(setq bibtex-entry (bibtex-parse-entry))
;; downcase field names so they work in the format-citation code
@@ -581,6 +582,7 @@ Format according to the type in `org-ref-bibliography-entry-format'."
(with-temp-buffer
(insert-file-contents file)
+ (bibtex-set-dialect (parsebib-find-bibtex-dialect) t)
(bibtex-search-entry key nil 0)
(setq entry (bibtex-parse-entry))
(format "** %s - %s
@@ -653,26 +655,27 @@ Format according to the type in `org-ref-bibliography-entry-format'."
(split-string
(org-element-property :path object) ","))
- ;; now if we have comma separated bibliographies
- ;; we find the one clicked on. we want to
- ;; search forward to next comma from point
- (save-excursion
- (if (search-forward "," link-string-end 1 1)
- ;; we found a match
- (setq key-end (- (match-end 0) 1))
- ;; no comma found so take the point
- (setq key-end (point))))
- ;; and backward to previous comma from point
- (save-excursion
- (if (search-backward "," link-string-beginning 1 1)
- ;; we found a match
- (setq key-beginning (+ (match-beginning 0) 1))
- (setq key-beginning (point)))) ; no match found
+ (let (key-beginning key-end)
+ ;; now if we have comma separated bibliographies
+ ;; we find the one clicked on. we want to
+ ;; search forward to next comma from point
+ (save-excursion
+ (if (search-forward "," link-string-end 1 1)
+ ;; we found a match
+ (setq key-end (- (match-end 0) 1))
+ ;; no comma found so take the point
+ (setq key-end (point))))
+ ;; and backward to previous comma from point
+ (save-excursion
+ (if (search-backward "," link-string-beginning 1 1)
+ ;; we found a match
+ (setq key-beginning (+ (match-beginning 0) 1))
+ (setq key-beginning (point)))) ; no match found
;; save the key we clicked on.
- (setq bibfile (org-ref-strip-string
- (buffer-substring key-beginning key-end)))
- ;; open file on click
- (find-file bibfile)))
+ (setq bibfile (org-ref-strip-string
+ (buffer-substring key-beginning key-end)))
+ ;; open file on click
+ (find-file bibfile))))
;; formatting code
(lambda (keyword desc format)
@@ -719,21 +722,22 @@ Format according to the type in `org-ref-bibliography-entry-format'."
(set (make-local-variable 'reftex-default-bibliography)
(split-string (org-element-property :path object) ","))
- ;; now if we have comma separated bibliographies
- ;; we find the one clicked on. we want to
- ;; search forward to next comma from point
- (save-excursion
- (if (search-forward "," link-string-end 1 1)
- (setq key-end (- (match-end 0) 1)) ; we found a match
- (setq key-end (point)))) ; no comma found so take the point
- ;; and backward to previous comma from point
- (save-excursion
- (if (search-backward "," link-string-beginning 1 1)
- (setq key-beginning (+ (match-beginning 0) 1)) ; we found a match
- (setq key-beginning (point)))) ; no match found
- ;; save the key we clicked on.
- (setq bibfile (org-ref-strip-string (buffer-substring key-beginning key-end)))
- (find-file bibfile))) ; open file on click
+ (let (key-beginning key-end)
+ ;; now if we have comma separated bibliographies
+ ;; we find the one clicked on. we want to
+ ;; search forward to next comma from point
+ (save-excursion
+ (if (search-forward "," link-string-end 1 1)
+ (setq key-end (- (match-end 0) 1)) ; we found a match
+ (setq key-end (point)))) ; no comma found so take the point
+ ;; and backward to previous comma from point
+ (save-excursion
+ (if (search-backward "," link-string-beginning 1 1)
+ (setq key-beginning (+ (match-beginning 0) 1)) ; we found a match
+ (setq key-beginning (point)))) ; no match found
+ ;; save the key we clicked on.
+ (setq bibfile (org-ref-strip-string (buffer-substring key-beginning key-end)))
+ (find-file bibfile)))) ; open file on click
;; formatting code
(lambda (keyword desc format)
@@ -825,21 +829,22 @@ ARG does nothing."
(set (make-local-variable 'reftex-default-addbibresource)
(split-string (org-element-property :path object) ","))
- ;; now if we have comma separated bibliographies
- ;; we find the one clicked on. we want to
- ;; search forward to next comma from point
- (save-excursion
- (if (search-forward "," link-string-end 1 1)
- (setq key-end (- (match-end 0) 1)) ; we found a match
- (setq key-end (point)))) ; no comma found so take the point
- ;; and backward to previous comma from point
- (save-excursion
- (if (search-backward "," link-string-beginning 1 1)
- (setq key-beginning (+ (match-beginning 0) 1)) ; we found a match
- (setq key-beginning (point)))) ; no match found
- ;; save the key we clicked on.
- (setq bibfile (org-ref-strip-string (buffer-substring key-beginning key-end)))
- (find-file bibfile))) ; open file on click
+ (let (key-beginning key-end)
+ ;; now if we have comma separated bibliographies
+ ;; we find the one clicked on. we want to
+ ;; search forward to next comma from point
+ (save-excursion
+ (if (search-forward "," link-string-end 1 1)
+ (setq key-end (- (match-end 0) 1)) ; we found a match
+ (setq key-end (point)))) ; no comma found so take the point
+ ;; and backward to previous comma from point
+ (save-excursion
+ (if (search-backward "," link-string-beginning 1 1)
+ (setq key-beginning (+ (match-beginning 0) 1)) ; we found a match
+ (setq key-beginning (point)))) ; no match found
+ ;; save the key we clicked on.
+ (setq bibfile (org-ref-strip-string (buffer-substring key-beginning key-end)))
+ (find-file bibfile)))) ; open file on click
;; formatting code
(lambda (keyword desc format)
@@ -969,7 +974,7 @@ ARG does nothing."
(org-ref-count-labels label))))
(lambda (keyword desc format)
(cond
- ((eq format 'html) (format "()" path))
+ ((eq format 'html) (format "()" keyword))
((eq format 'latex)
(format "\\label{%s}" keyword)))))
@@ -1048,7 +1053,7 @@ ARG does nothing."
;formatting
(lambda (keyword desc format)
(cond
- ((eq format 'html) (format "(%s)" path))
+ ((eq format 'html) (format "%s" keyword keyword))
((eq format 'latex)
(format "\\ref{%s}" keyword)))))
@@ -1419,28 +1424,30 @@ keyword we clicked on. We also strip the text properties."
;; this means no description in the link
(progn
;; we need the link path start and end
- (save-excursion
- (goto-char (org-element-property :begin object))
- (search-forward link-string nil nil 1)
- (setq link-string-beginning (match-beginning 0))
- (setq link-string-end (match-end 0)))
+ (let (link-string-beginning link-string-end)
+ (save-excursion
+ (goto-char (org-element-property :begin object))
+ (search-forward link-string nil nil 1)
+ (setq link-string-beginning (match-beginning 0))
+ (setq link-string-end (match-end 0)))
- ;; The key is the text between commas, or the link boundaries
- (save-excursion
- (if (search-forward "," link-string-end t 1)
- (setq key-end (- (match-end 0) 1)) ; we found a match
- (setq key-end link-string-end))) ; no comma found so take the end
- ;; and backward to previous comma from point which defines the start character
- (save-excursion
- (if (search-backward "," link-string-beginning 1 1)
- (setq key-beginning (+ (match-beginning 0) 1)) ; we found a match
- (setq key-beginning link-string-beginning))) ; no match found
- ;; save the key we clicked on.
- (setq bibtex-key
- (org-ref-strip-string
- (buffer-substring key-beginning key-end)))
- (set-text-properties 0 (length bibtex-key) nil bibtex-key)
- bibtex-key)
+ (let (key-beginning key-end)
+ ;; The key is the text between commas, or the link boundaries
+ (save-excursion
+ (if (search-forward "," link-string-end t 1)
+ (setq key-end (- (match-end 0) 1)) ; we found a match
+ (setq key-end link-string-end))) ; no comma found so take the end
+ ;; and backward to previous comma from point which defines the start character
+ (save-excursion
+ (if (search-backward "," link-string-beginning 1 1)
+ (setq key-beginning (+ (match-beginning 0) 1)) ; we found a match
+ (setq key-beginning link-string-beginning))) ; no match found
+ ;; save the key we clicked on.
+ (let ((bibtex-key
+ (org-ref-strip-string
+ (buffer-substring key-beginning key-end))))
+ (set-text-properties 0 (length bibtex-key) nil bibtex-key)
+ bibtex-key))))
;; link with description. assume only one key
link-string)))
@@ -1534,6 +1541,7 @@ falling back to what the user has set in `org-ref-default-bibliography'"
(save-excursion
(with-temp-buffer
(insert-file-contents bibfile)
+ (bibtex-set-dialect (parsebib-find-bibtex-dialect) t)
(bibtex-search-entry key)
;; I like this better than bibtex-url which does not always find
;; the urls
@@ -1560,6 +1568,7 @@ falling back to what the user has set in `org-ref-default-bibliography'"
(save-excursion
(with-temp-buffer
(insert-file-contents bibfile)
+ (bibtex-set-dialect (parsebib-find-bibtex-dialect) t)
(bibtex-search-entry key)
(org-ref-open-bibtex-notes)))))
@@ -1574,6 +1583,7 @@ falling back to what the user has set in `org-ref-default-bibliography'"
(message "%s" (progn
(with-temp-buffer
(insert-file-contents bibfile)
+ (bibtex-set-dialect (parsebib-find-bibtex-dialect) t)
(bibtex-search-entry key)
(org-ref-bib-citation))))))
@@ -1646,6 +1656,7 @@ Prompt for NEW-FILE includes bib files in `org-ref-default-bibliography', and bi
(save-excursion
(with-temp-buffer
(insert-file-contents bibfile)
+ (bibtex-set-dialect (parsebib-find-bibtex-dialect) t)
(bibtex-search-entry key)
(setq doi (bibtex-autokey-get-field "doi"))
;; in case doi is a url, remove the url part.
@@ -1703,11 +1714,13 @@ get a lot of options. LINK-STRING is used by the link function."
(url (save-excursion
(with-temp-buffer
(insert-file-contents bibfile)
+ (bibtex-set-dialect (parsebib-find-bibtex-dialect) t)
(bibtex-search-entry key)
(bibtex-autokey-get-field "url"))))
(doi (save-excursion
(with-temp-buffer
(insert-file-contents bibfile)
+ (bibtex-set-dialect (parsebib-find-bibtex-dialect) t)
(bibtex-search-entry key)
;; I like this better than bibtex-url which does not always find
;; the urls
@@ -1784,6 +1797,7 @@ get a lot of options. LINK-STRING is used by the link function."
(save-excursion
(with-temp-buffer
(insert-file-contents bibfile)
+ (bibtex-set-dialect (parsebib-find-bibtex-dialect) t)
(bibtex-search-entry key)
(org-ref-bib-citation))))
"\n"
@@ -2088,7 +2102,7 @@ arg (ALTERNATIVE-CITE) to get a menu of citation types."
(defun org-ref-bib-citation ()
"From a bibtex entry, create and return a simple citation string.
This assumes you are in an article."
-
+ (bibtex-set-dialect nil t)
(bibtex-beginning-of-entry)
(let* ((cb (current-buffer))
(bibtex-expand-strings t)
@@ -2735,6 +2749,7 @@ Shows bad citations, ref links and labels"
(bibfile (cdr results)))
(with-temp-buffer
(insert-file-contents bibfile)
+ (bibtex-set-dialect (parsebib-find-bibtex-dialect) t)
(bibtex-search-entry key nil 0)
(prog1 (reftex-get-bib-field "year" (bibtex-parse-entry t))
))))
@@ -2926,26 +2941,27 @@ Shows bad citations, ref links and labels"
(when (> link-string-beginning (point))
(goto-char link-string-beginning))
- ;; now if we have comma separated bibliographies
- ;; we find the one clicked on. we want to
- ;; search forward to next comma from point
- (save-excursion
- (if (search-forward "," link-string-end 1 1)
- (setq key-end (- (match-end 0) 1)) ; we found a match
- (setq key-end (point)))) ; no comma found so take the point
+ (let (key-beginning key-end)
+ ;; now if we have comma separated bibliographies
+ ;; we find the one clicked on. we want to
+ ;; search forward to next comma from point
+ (save-excursion
+ (if (search-forward "," link-string-end 1 1)
+ (setq key-end (- (match-end 0) 1)) ; we found a match
+ (setq key-end (point)))) ; no comma found so take the point
- ;; and backward to previous comma from point
- (save-excursion
- (if (search-backward "," link-string-beginning 1 1)
- (setq key-beginning (+ (match-beginning 0) 1)) ; we found a match
- (setq key-beginning (point)))) ; no match found
- ;; save the key we clicked on.
- (setq bibfile
- (org-ref-strip-string
- (buffer-substring key-beginning key-end)))
- (if (file-exists-p bibfile)
- (message "%s exists." bibfile)
- (message "!!! %s NOT FOUND !!!" bibfile))))))))))
+ ;; and backward to previous comma from point
+ (save-excursion
+ (if (search-backward "," link-string-beginning 1 1)
+ (setq key-beginning (+ (match-beginning 0) 1)) ; we found a match
+ (setq key-beginning (point)))) ; no match found
+ ;; save the key we clicked on.
+ (setq bibfile
+ (org-ref-strip-string
+ (buffer-substring key-beginning key-end)))
+ (if (file-exists-p bibfile)
+ (message "%s exists." bibfile)
+ (message "!!! %s NOT FOUND !!!" bibfile)))))))))))
;; ** aliases
(defalias 'oro 'org-ref-open-citation-at-point)
@@ -3221,6 +3237,7 @@ With two prefix args, insert a label link."
(save-excursion
(with-temp-buffer
(insert-file-contents bibfile)
+ (bibtex-set-dialect (parsebib-find-bibtex-dialect) t)
(bibtex-search-entry key)
(org-ref-bib-citation)))
"!!! No entry found !!!" )))
@@ -3236,11 +3253,13 @@ Checks for pdf and doi, and add appropriate functions."
(url (save-excursion
(with-temp-buffer
(insert-file-contents bibfile)
+ (bibtex-set-dialect (parsebib-find-bibtex-dialect) t)
(bibtex-search-entry key)
(bibtex-autokey-get-field "url"))))
(doi (save-excursion
(with-temp-buffer
(insert-file-contents bibfile)
+ (bibtex-set-dialect (parsebib-find-bibtex-dialect) t)
(bibtex-search-entry key)
;; I like this better than bibtex-url which does not always find
;; the urls