diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-05 05:29:05 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-05 05:29:05 -0500 |
| commit | 718775cdf2baf7b6a2ed09edaa07d5684d47c4a9 (patch) | |
| tree | c82a1a923ba003877df676370515bfc724e20f12 /org-drill.el | |
| parent | fd658b166a8dcf716c82cca28f370990a9df83af (diff) | |
| download | org-drill-718775cdf2baf7b6a2ed09edaa07d5684d47c4a9.tar.gz org-drill-718775cdf2baf7b6a2ed09edaa07d5684d47c4a9.zip | |
fix: keep cloze regex within a single line (upstream #38)
The inner match was [[:cntrl:][:graph:][:space:]]+?, which silently
includes newline. A stray [ could match all the way to a ]
several lines later, covering org headings in between with the
visible-cloze face. Reporter saw lines 4 and 5 of test.org lose
their org-level-N face and use default instead.
Switched the inner class to [^\n]+?. Clozes now stay within a
single line, which matches the design intent and stops the face
bleed. Three new tests cover the regression.
Diffstat (limited to 'org-drill.el')
| -rw-r--r-- | org-drill.el | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/org-drill.el b/org-drill.el index 6885791..b628695 100644 --- a/org-drill.el +++ b/org-drill.el @@ -231,10 +231,17 @@ Mature items are due for review, but are not new." "Delimiter in cloze expression for hints.") (defun org-drill--compute-cloze-regexp () - "Return a regexp that detects clozes." + "Return a regexp that detects clozes. + +The inner match is constrained to non-newline characters so a cloze +stays within one line. An older version used +`[[:cntrl:][:graph:][:space:]]' which silently included newline, +letting a stray `[' match all the way to a `]' several lines later +and bleeding the cloze face onto intervening org headings (upstream +issue #38)." (concat "\\(" (regexp-quote org-drill-left-cloze-delimiter) - "[[:cntrl:][:graph:][:space:]]+?\\)\\(\\|" + "[^\n]+?\\)\\(\\|" (regexp-quote org-drill-hint-separator) ".+?\\)\\(" (regexp-quote org-drill-right-cloze-delimiter) |
