diff --git a/lisp/org-element.el b/lisp/org-element.el index 074564e4e..28339c1b8 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -435,31 +435,25 @@ still has an entry since one of its properties (`:title') does.") "Alist between element types and locations of secondary values.") (defconst org-element--pair-round-table - (let ((table (make-syntax-table))) + (let ((table (make-char-table 'syntax-table '(2)))) (modify-syntax-entry ?\( "()" table) (modify-syntax-entry ?\) ")(" table) - (dolist (char '(?\{ ?\} ?\[ ?\] ?\< ?\>) table) - (modify-syntax-entry char " " table))) - "Table used internally to pair only round brackets. -Other brackets are treated as spaces.") + table) + "Table used internally to pair only round brackets.") (defconst org-element--pair-square-table - (let ((table (make-syntax-table))) + (let ((table (make-char-table 'syntax-table '(2)))) (modify-syntax-entry ?\[ "(]" table) (modify-syntax-entry ?\] ")[" table) - (dolist (char '(?\{ ?\} ?\( ?\) ?\< ?\>) table) - (modify-syntax-entry char " " table))) - "Table used internally to pair only square brackets. -Other brackets are treated as spaces.") + table) + "Table used internally to pair only square brackets.") (defconst org-element--pair-curly-table - (let ((table (make-syntax-table))) + (let ((table (make-char-table 'syntax-table '(2)))) (modify-syntax-entry ?\{ "(}" table) (modify-syntax-entry ?\} "){" table) - (dolist (char '(?\[ ?\] ?\( ?\) ?\< ?\>) table) - (modify-syntax-entry char " " table))) - "Table used internally to pair only curly brackets. -Other brackets are treated as spaces.") + table) + "Table used internally to pair only curly brackets.") (defun org-element--parse-paired-brackets (char) "Parse paired brackets at point. diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el index c78ea7c54..8c6fccb60 100644 --- a/testing/lisp/test-org-element.el +++ b/testing/lisp/test-org-element.el @@ -1161,6 +1161,15 @@ Some other text (org-test-with-temp-text "Text[fn::def]" (org-element-map (org-element-parse-buffer) 'footnote-reference 'identity))) + ;; Parse inline references with syntax loaded characters. + (should + (eq 'footnote-reference + (org-test-with-temp-text "Text[fn::(def]" + (org-element-type (org-element-context))))) + (should + (eq 'footnote-reference + (org-test-with-temp-text "Text[fn::\"def]" + (org-element-type (org-element-context))))) ;; Parse nested footnotes. (should (= 2