Dear maintainers, I’ve run into an issue with Org tables in Emacs 29 since it updated Org to 9.6. While I think it is a very similar issue to [0] and thus probably not Org’s problem, I nevertheless would like to at least record this for others.
This issue only manifests together with stripe-table-mode from [1]. With that active, C-o (i. e., #'org-open-line) fails with some “argument out of range” error. Steps to reproduce: --- wget https://melpa.org/packages/stripe-buffer-20141208.1508.el cat << EOF > x.org | | | # | EOF emacs -Q -l stripe-buffer-20141208.1508.el --file x.org M-x stripe-table-mode RET C-n # point should now be at the beginning of the 2nd line C-o # Result: org-table-insert-row: Args out of range: 7, 12 --- >From a user point of view, this was broken by Org 9.6, but as outlined above, the issue may as well be with stripe-buffer. In any case, I `git bisect`ed Org and found that this happens since commit fa7530c7b (Rename old function call to use org-fold). The following patch to stripe-buffer partially solves the issue: C-o no longer fails, but in the table that I found the issue in, C-o and everything that causes formulas to be (re-)calculated still takes very long if and only if stripe-table-mode is enabled. --- diff --git a/stripe-buffer.el b/stripe-buffer.el index 5a185db..e9a1b57 100644 --- a/stripe-buffer.el +++ b/stripe-buffer.el @@ -189,13 +189,13 @@ Used by `stripe-table-mode' Only the first matching group will be painted." (let (( visible-ranges (sb/buffer-visible-regions-compressed)) ranges) (cl-dolist (vr visible-ranges) - (save-excursion + (save-excursion (save-match-data (goto-char (car vr)) (while (and (<= (point) (cdr vr)) (re-search-forward stripe-in-table-regex (cdr vr) t) (not (invisible-p (match-beginning 0)))) (push (cons (match-beginning 1) (match-end 1)) ranges) - ))) + )))) (sb/compress-ranges ranges))) (defun sb/redraw-all-tables (&rest ignore) --- Whether or not this issue is with Org, I’d appreciate any feedback on this. Thanks, Thomas [0]: https://lists.gnu.org/archive/html/emacs-orgmode/2022-12/msg00000.html [1]: https://github.com/sabof/stripe-buffer Emacs : GNU Emacs 29.0.60 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.35, cairo version 1.17.6) of 2023-01-18 Package: Org mode version 9.6.1 (release_9.6.1 @ /usr/share/emacs/29.0.60/lisp/org/) current state: ============== (setq org-link-elisp-confirm-function 'yes-or-no-p org-bibtex-headline-format-function #[257 "\300%1\236A\207" [:title] 3 "\n\n(fn ENTRY)"] org-export-before-parsing-hook '(org-attach-expand-links) org-cycle-tab-first-hook '(org-babel-hide-result-toggle-maybe org-babel-header-arg-expand) org-archive-hook '(org-attach-archive-delete-maybe) org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-show-empty-lines org-cycle-optimize-window-after-visibility-change org-cycle-display-inline-images) org-link-from-user-regexp "\\<qsx@naboo\\>\\|\\<qsx\\>" org-mode-hook '(#[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-fold-show-all append local] 5] #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-babel-show-result-all append local] 5] org-babel-result-hide-spec org-babel-hide-all-hashes #[0 "\301\211%10\207" [imenu-create-index-function org-imenu-get-tree] 2] turn-on-auto-fill) org-babel-load-languages '((emacs-lisp . t) (sqlite . t)) org-confirm-shell-link-function 'yes-or-no-p outline-isearch-open-invisible-function 'outline-isearch-open-invisible org-agenda-before-write-hook '(org-agenda-add-entry-text) org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer) org-confirm-elisp-link-function 'yes-or-no-p org-speed-command-hook '(org-speed-command-activate org-babel-speed-command-activate) org-fold-core-isearch-open-function 'org-fold-core--isearch-reveal org-tab-first-hook '(org-babel-hide-result-toggle-maybe org-babel-header-arg-expand) org-link-shell-confirm-function 'yes-or-no-p org-babel-pre-tangle-hook '(save-buffer) org-agenda-loop-over-headlines-in-active-region nil org-occur-hook '(org-first-headline-recenter) org-metadown-hook '(org-babel-pop-to-session-maybe) org-link-parameters '(("attachment" :follow org-attach-follow :complete org-attach-complete-link) ("id" :follow org-id-open) ("eww" :follow org-eww-open :store org-eww-store-link) ("rmail" :follow org-rmail-open :store org-rmail-store-link) ("mhe" :follow org-mhe-open :store org-mhe-store-link) ("irc" :follow org-irc-visit :store org-irc-store-link :export org-irc-export) ("info" :follow org-info-open :export org-info-export :store org-info-store-link :insert-description org-info-description-as-command) ("gnus" :follow org-gnus-open :store org-gnus-store-link) ("docview" :follow org-docview-open :export org-docview-export :store org-docview-store-link) ("bibtex" :follow org-bibtex-open :store org-bibtex-store-link) ("bbdb" :follow org-bbdb-open :export org-bbdb-export :complete org-bbdb-complete-link :store org-bbdb-store-link) ("w3m" :store org-w3m-store-link) ("doi" :follow org-link-doi-open :export org-link-doi-export) ("file+sys") ("file+emacs") ("shell" :follow org-link--open-shell) ("news" :follow #[514 "\301\300\302%4Q%2\"\207" ["news" browse-url ":"] 6 "\n\n(fn URL ARG)"]) ("mailto" :follow #[514 "\301\300\302%4Q%2\"\207" ["mailto" browse-url ":"] 6 "\n\n(fn URL ARG)"] ) ("https" :follow #[514 "\301\300\302%4Q%2\"\207" ["https" browse-url ":"] 6 "\n\n(fn URL ARG)"] ) ("http" :follow #[514 "\301\300\302%4Q%2\"\207" ["http" browse-url ":"] 6 "\n\n(fn URL ARG)"]) ("ftp" :follow #[514 "\301\300\302%4Q%2\"\207" ["ftp" browse-url ":"] 6 "\n\n(fn URL ARG)"]) ("help" :follow org-link--open-help :store org-link--store-help) ("file" :complete org-link-complete-file) ("elisp" :follow org-link--open-elisp)) org-metaup-hook '(org-babel-load-in-session-maybe) org-list-allow-alphabetical t )