Rudolf Adamkovič <salu...@me.com> writes: > Greetings smart people! > > All [[link]]s in my notes perfectly match LEVEL-1 headings, so I figured > that I may as well ask Org to make links for me. So, I replaced all the > ~4000 headings in my notes with radio <<<targets>>>. However, Org now > errors out with "Regular expression too big". > > Does anyone know how to overcome this limitation? Or, perhaps someone > has a patch in works that fixes it? If so, please let me know!
This is C-level error emitted by Emacs' regexp engine. Can you try the attached patch?
>From 53e6c067e4897c5b6c1ac8201e2dbc49baa9e6e8 Mon Sep 17 00:00:00 2001 Message-Id: <53e6c067e4897c5b6c1ac8201e2dbc49baa9e6e8.1671006575.git.yanta...@posteo.net> From: Ihor Radchenko <yanta...@posteo.net> Date: Wed, 14 Dec 2022 11:28:03 +0300 Subject: [PATCH] org-update-radio-target-regexp: Try to get a shorter regexp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * lisp/ol.el (org-update-radio-target-regexp): Use `regexp-opt' to compact the resulting regexp as much as possible. Otherwise, some users hit regexp length limits when the number of radio targets approaches thousands. Reported-by: Rudolf Adamkovič <salu...@me.com> Link: https://orgmode.org/list/m2lenax5m6....@me.com --- lisp/ol.el | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/lisp/ol.el b/lisp/ol.el index 3ae8f8875..51ee028e4 100644 --- a/lisp/ol.el +++ b/lisp/ol.el @@ -2065,13 +2065,11 @@ (defun org-update-radio-target-regexp () (setq org-target-link-regexp (and targets (concat before-re - (mapconcat - (lambda (x) - (replace-regexp-in-string - " +" "\\s-+" (regexp-quote x) t t)) - targets - "\\|") - after-re))) + (replace-regexp-in-string + " +" "\\s-+" + (regexp-opt targets) + nil t) + after-re))) (unless (equal old-regexp org-target-link-regexp) ;; Clean-up cache. (let ((regexp (cond ((not old-regexp) org-target-link-regexp) -- 2.38.1
-- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>