From: Stefan Monnier <monnier@IRO.UMontreal.CA>
To: Stephen Berman <stephen.berman@gmx.net>
Cc: paul@tilk.co, 19102@debbugs.gnu.org
Subject: bug#19102: 24.4; outline-move-subtree-up/down error at last and second-last subtree
Date: Tue, 25 Nov 2014 21:43:02 -0500 [thread overview]
Message-ID: <jwvppcalmla.fsf-monnier+emacsbugs@gnu.org> (raw)
In-Reply-To: <8761easv3s.fsf@rosalinde.fritz.box> (Stephen Berman's message of "Wed, 19 Nov 2014 23:07:03 +0100")
> + (maybe-forward-char (lambda ()
> + (and (eobp) (not (bolp)) (newline))
> + (and (eolp) (not (bolp)) (forward-char 1))))
If we add a newline, we know don't want to do a `forward-char'. So:
(if (and (eobp) (not (bolp))) (newline)
(and (eolp) (not (bolp)) (forward-char 1)))))
Also, I don't understand the (not (bolp)) test in the second line: the
code it replaces only tested (= (char-after) ?\n). So I think it'd be
better to use:
(if (and (eobp) (not (bolp))) (newline)
(if (eq (char-after) ?\n) (forward-char 1)))))
And to be closer to the original code, I'd swap the two tests. And I'd
use `insert' rather than `newline' since I don't want to run abbrev
expansions and things like that.
(if (eq (char-after) ?\n) (forward-char 1)
(if (and (eobp) (not (bolp))) (insert "\n")))))
> + (empty-last-line (save-excursion
> + (goto-char (point-max))
> + (and (bolp) (eolp))))
At point-max, we know that (eolp) is non-nil, so you can just write
(empty-last-line (save-excursion
(goto-char (point-max))
(bolp))))
> - (error "Cannot move past superior level")))
> + (with-demoted-errors "%s"
> + (message "Cannot move past superior level"))))
This is wrong. Did you mean maybe to replace `error' with
`user-error' instead, maybe?
> + ;; If we added a newline to move forward, delete it.
> + (save-excursion
> + (goto-char (point-max))
> + (when (and (bolp) (eolp) (not empty-last-line))
> + (delete-char -1)))))
Let's not bother. There's no harm in adding a missing final newline
when we modify such a line-oriented file.
Stefan
next prev parent reply other threads:[~2014-11-26 2:43 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-19 8:29 bug#19102: 24.4; outline-move-subtree-up/down error at last and second-last subtree Paul Rankin
2014-11-19 13:17 ` Stephen Berman
2014-11-19 15:54 ` Eli Zaretskii
2014-11-19 17:09 ` Stephen Berman
2014-11-19 18:56 ` Eli Zaretskii
2014-11-19 20:14 ` Stephen Berman
2014-11-19 20:32 ` Eli Zaretskii
2014-11-19 22:07 ` Stephen Berman
2014-11-20 6:46 ` Paul Rankin
2014-11-20 10:08 ` Stephen Berman
2014-11-20 13:26 ` Paul Rankin
2014-11-20 16:21 ` Eli Zaretskii
2014-11-21 10:32 ` Stephen Berman
2014-11-21 10:42 ` Eli Zaretskii
2014-11-21 17:31 ` Stephen Berman
2014-11-21 19:56 ` Eli Zaretskii
2014-11-21 20:04 ` Stephen Berman
2014-11-22 3:49 ` Paul Rankin
2014-11-22 16:32 ` Stefan Monnier
2014-11-22 16:45 ` Eli Zaretskii
2014-11-22 22:20 ` Stephen Berman
2014-11-24 4:07 ` Stefan Monnier
2014-11-25 21:58 ` Stephen Berman
2014-11-26 2:34 ` Paul Rankin
2014-11-26 13:38 ` Stephen Berman
2014-11-20 7:22 ` Paul Rankin
2014-11-20 10:09 ` Stephen Berman
2014-11-20 13:43 ` Paul Rankin
2014-11-21 10:33 ` Stephen Berman
2014-11-26 2:43 ` Stefan Monnier [this message]
2014-11-26 13:38 ` Stephen Berman
2014-11-26 15:54 ` Stefan Monnier
2014-11-26 19:04 ` Stephen Berman
2014-11-26 22:11 ` Stefan Monnier
2014-11-26 22:25 ` Stephen Berman
2014-11-27 2:18 ` Stefan Monnier
2014-11-27 10:12 ` Stephen Berman
2014-11-27 17:15 ` Stefan Monnier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jwvppcalmla.fsf-monnier+emacsbugs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=19102@debbugs.gnu.org \
--cc=paul@tilk.co \
--cc=stephen.berman@gmx.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.