From 49f192009d9be9702f1d92d820a872aebe20d1ff Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Thu, 13 Nov 2025 17:16:21 -0600 Subject: 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) --- org-drill.el | 22 ++++++++++++++++++---- 1 file 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 -- cgit v1.2.3