forked from mirrors/org-mode
Allow coderef on otherwise empty lines
* lisp/org-src.el (org-src-coderef-regexp): Update regexp. * lisp/ox.el (org-export-resolve-coderef): Use function above. Reported-by: D M German <dmg@turingmachine.org> <http://permalink.gmane.org/gmane.emacs.orgmode/110656>
This commit is contained in:
parent
c797cc0f87
commit
3c64f06617
|
@ -765,7 +765,7 @@ white spaces. Match group 2 contains the same string without any
|
|||
surrounding space. Match group 3 contains the label.
|
||||
|
||||
A coderef format regexp can only match at the end of a line."
|
||||
(format "\\S-\\([ \t]*\\(%s\\)[ \t]*\\)$"
|
||||
(format "\\([ \t]*\\(%s\\)[ \t]*\\)$"
|
||||
(replace-regexp-in-string
|
||||
"%s"
|
||||
(if label (regexp-quote label) "\\([-a-zA-Z0-9_][-a-zA-Z0-9_ ]*\\)")
|
||||
|
|
15
lisp/ox.el
15
lisp/ox.el
|
@ -4171,18 +4171,15 @@ error if no block contains REF."
|
|||
(lambda (el)
|
||||
(with-temp-buffer
|
||||
(insert (org-trim (org-element-property :value el)))
|
||||
(let* ((label-fmt (regexp-quote
|
||||
(or (org-element-property :label-fmt el)
|
||||
org-coderef-label-format)))
|
||||
(ref-re
|
||||
(format "^.*?\\S-.*?\\([ \t]*\\(%s\\)\\)[ \t]*$"
|
||||
(format label-fmt ref))))
|
||||
(let* ((label-fmt (or (org-element-property :label-fmt el)
|
||||
org-coderef-label-format))
|
||||
(ref-re (org-src-coderef-regexp label-fmt ref)))
|
||||
;; Element containing REF is found. Resolve it to
|
||||
;; either a label or a line number, as needed.
|
||||
(when (re-search-backward ref-re nil t)
|
||||
(cond
|
||||
((org-element-property :use-labels el) ref)
|
||||
(t (+ (or (org-export-get-loc el info) 0) (line-number-at-pos))))))))
|
||||
(if (org-element-property :use-labels el) ref
|
||||
(+ (or (org-export-get-loc el info) 0)
|
||||
(line-number-at-pos)))))))
|
||||
info 'first-match)
|
||||
(signal 'org-link-broken (list ref))))
|
||||
|
||||
|
|
Loading…
Reference in New Issue