From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Abrahamsen Subject: Re: org-fill-paragraph leaves point at end of table Date: Mon, 25 Feb 2013 18:12:16 +0800 Message-ID: <87sj4kog73.fsf@ericabrahamsen.net> References: <87vc9hxfen.fsf@ericabrahamsen.net> <87hal0u5bi.fsf@gmail.com> <24BE6F65-CD8B-4964-AA13-DB61F21F402D@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([208.118.235.92]:51738) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U9uxi-0001vm-RO for emacs-orgmode@gnu.org; Mon, 25 Feb 2013 05:07:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U9uxh-0000XT-Cq for emacs-orgmode@gnu.org; Mon, 25 Feb 2013 05:07:10 -0500 Received: from plane.gmane.org ([80.91.229.3]:46654) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U9uxh-0000XI-68 for emacs-orgmode@gnu.org; Mon, 25 Feb 2013 05:07:09 -0500 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1U9uxu-00083H-4O for emacs-orgmode@gnu.org; Mon, 25 Feb 2013 11:07:22 +0100 Received: from 114.250.113.48 ([114.250.113.48]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 25 Feb 2013 11:07:22 +0100 Received: from eric by 114.250.113.48 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 25 Feb 2013 11:07:22 +0100 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Carsten Dominik writes: > On 25 feb. 2013, at 10:10, Nicolas Goaziou wrote: > >> Hello, >> >> Eric Abrahamsen 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. > > I do not expect problems, because you now fall back onto > org-table-align without any save-excursion around it, AFAICS. > org-table-align remembers line number and table row number and > restores them, so this should work. And sure enough, it does! Sorry for all the table-related stuff. I'm in one of those moments where you throw caution to the wind and entrust a time-sensitive company project to areas of git-master Orgmode you've never used before. Likely very stupid, but it's too late to turn back now. Thanks! E