aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2025-11-13 17:16:21 -0600
committerCraig Jennings <c@cjennings.net>2025-11-13 17:16:21 -0600
commit49f192009d9be9702f1d92d820a872aebe20d1ff (patch)
tree68c5ad3429963b0a46738183eed923e9201613b8
parentbe2f11f7b02c5474c03e8574bf66d4033721284c (diff)
downloadorg-drill-49f192009d9be9702f1d92d820a872aebe20d1ff.tar.gz
org-drill-49f192009d9be9702f1d92d820a872aebe20d1ff.zip
fix: improve error handling for empty property blocks in cloze processing
Previously used (or (cdr (org-get-property-block)) (point)) which could return invalid position if no property block exists. Now properly positions after heading and metadata using org-end-of-meta-data when property block is missing. Affects: - org-drill-present-multicloze-hide-n (line 2267) - org-drill-present-multicloze-hide-nth (line 2345)
-rw-r--r--org-drill.el22
1 files changed, 18 insertions, 4 deletions
diff --git a/org-drill.el b/org-drill.el
index 1ac5f8a..392b73b 100644
--- a/org-drill.el
+++ b/org-drill.el
@@ -2264,8 +2264,15 @@ items if FORCE-SHOW-FIRST or FORCE-SHOW-LAST is non-nil)."
(org-drill-with-hidden-cloze-hints
(let ((item-end nil)
(match-count 0)
- (body-start (or (cdr (org-get-property-block))
- (point))))
+ (body-start (let ((prop-block (org-get-property-block)))
+ (if prop-block
+ (cdr prop-block)
+ (save-excursion
+ (org-back-to-heading t)
+ (if (fboundp 'org-end-of-meta-data-and-drawers)
+ (org-end-of-meta-data-and-drawers)
+ (org-end-of-meta-data t))
+ (point))))))
(if (and force-hide-first force-show-first)
(error "FORCE-HIDE-FIRST and FORCE-SHOW-FIRST are mutually exclusive"))
(org-drill-hide-all-subheadings-except nil)
@@ -2335,8 +2342,15 @@ the second to last, etc."
(org-drill-with-hidden-cloze-hints
(let ((item-end nil)
(match-count 0)
- (body-start (or (cdr (org-get-property-block))
- (point)))
+ (body-start (let ((prop-block (org-get-property-block)))
+ (if prop-block
+ (cdr prop-block)
+ (save-excursion
+ (org-back-to-heading t)
+ (if (fboundp 'org-end-of-meta-data-and-drawers)
+ (org-end-of-meta-data-and-drawers)
+ (org-end-of-meta-data t))
+ (point)))))
(cnt 0))
(org-drill-hide-all-subheadings-except nil)
(save-excursion