Hello, Eric Abrahamsen <e...@ericabrahamsen.net> writes:
> Calling `org-fill-paragraph' inside a table leaves point at the end of > the table, for reasons that are totally unclear to me. > > I've tested this with up-to-date org and emacs -Q, so I'm hoping it's > reproducible. I edebugged org-fill-paragraph, and it appears to do the > right thing, going from the save-excursion to the cond to the org-table > cond statement, and there calling `org-table-align'. That works > correctly, but stepping forward you come to the end of the enclosing > `save-excursion', and emerging from `save-excursion' puts point at the > end of the table -- precisely what it's not supposed to do! > > I made a minimum sexp to reproduce the relevant bits of > org-fill-paragraph: > > #+BEGIN_SRC emacs-lisp > (save-excursion > (let ((element (org-element-at-point))) > (case (org-element-type element) > (table-row (org-table-align) t)))) > #+END_SRC > > Putting point in a table and eval'ing that also leaves point at the end > of the table. I tried using (call-interactively 'org-table-align) and it > did the same thing. > > I'm baffled, particularly as it doesn't do this for any other element > type. Any clever ideas? M-q after a bit of typing is already stuck in my > fingers, and this bit of strangeness doesn't set the mark, so editing > long tables is a pain... `org-table-align' inserts a whole new table and removes completely the previous one. This confuses `save-excursion' which doesn't recognize any familiar location anymore. I've pushed a fix for it. All filling tests pass, but if you notice anything suspicious, please signal it. Thank you for the report. Regards, -- Nicolas Goaziou