Browse Source

org-element: Parse malformed clock lines as paragraphs

* lisp/org-element.el (org-element-clock-line-re): Update the regexp
matching the actual required clock line structure.
(org-element--set-regexps): Use `org-element-clock-line-re'.

Link: https://orgmode.org/list/87h7571bpb.fsf@localhost
Ihor Radchenko 2 years ago
parent
commit
e305755b1a
1 changed files with 10 additions and 2 deletions
  1. 10 2
      lisp/org-element.el

+ 10 - 2
lisp/org-element.el

@@ -126,7 +126,15 @@ Key is located in match group 1.")
 Style, if any, is located in match group 1.")
 
 (defconst org-element-clock-line-re
-  (rx line-start (0+ (or ?\t ?\s)) "CLOCK:")
+  (rx line-start (0+ (or ?\t ?\s))
+      "CLOCK: "
+      (regexp org-ts-regexp-inactive)
+      (opt "--"
+           (regexp org-ts-regexp-inactive)
+           (1+ (or ?\t ?\s)) "=>" (1+ (or ?\t ?\s))
+           (1+ digit) ":" digit digit)
+      (0+ (or ?\t ?\s))
+      line-end)
   "Regexp matching a clock line.")
 
 (defconst org-element-comment-string "COMMENT"
@@ -219,7 +227,7 @@ specially in `org-element--object-lex'.")
 		;; LaTeX environments.
 		"\\\\begin{\\([A-Za-z0-9*]+\\)}" "\\|"
 		;; Clock lines.
-		"CLOCK:" "\\|"
+		org-element-clock-line-re "\\|"
 		;; Lists.
 		(let ((term (pcase org-plain-list-ordered-item-terminator
 			      (?\) ")") (?. "\\.") (_ "[.)]")))