diff options
| author | Craig Jennings <c@cjennings.net> | 2025-11-13 17:16:21 -0600 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2025-11-13 17:16:21 -0600 |
| commit | 49f192009d9be9702f1d92d820a872aebe20d1ff (patch) | |
| tree | 68c5ad3429963b0a46738183eed923e9201613b8 | |
| parent | be2f11f7b02c5474c03e8574bf66d4033721284c (diff) | |
| download | org-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.el | 22 |
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 |
