From: Chong Yidong <cyd@gnu.org>
To: 23632@debbugs.gnu.org
Subject: bug#23632: 25.1.50; Gratuitous undo boundary in latex-insert-block
Date: Fri, 27 May 2016 23:11:21 +0800 [thread overview]
Message-ID: <87lh2vo7s6.fsf@gmail.com> (raw)
In GNU Emacs 25.1.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.18.9)
1. emacs -Q foo.tex
2. C-c C-o RET
The buffer now contains an `enumerate' skeleton:
\begin{enumerate}
\item
\end{enumerate}
3. C-/
After this undo command, the buffer now contains
\begin{
Expected behavior: C-/ should undo the entire effects of C-c C-o, so
the buffer should contain nothing at all. You shouldn't need another
C-/ to get rid of the "\begin{".
This happens because latex-insert-block uses skeleton-insert, in which
the "interactor" specified for reading a string is lazily invoked only
when the string appears in the skeleton. Hence, the "\begin{" is
inserted into the buffer first, and then completing-read is called to
ask for the LaTeX block name. The completing-read adds an undo
boundary, in the midst of the changes by latex-insert-block.
The attached patch, which gets rid of the undo boundary, seems to fix
this:
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -1539,7 +1539,8 @@ 'tex-latex-block
(define-skeleton latex-insert-block
"Create a matching pair of lines \\begin{NAME} and \\end{NAME} at point.
Puts point on a blank line between them."
- (let ((choice (completing-read (format "LaTeX block name [%s]: "
+ (let* ((buffer-undo-list t) ; Don't add an undo boundary
+ (choice (completing-read (format "LaTeX block name [%s]: "
latex-block-default)
(latex-complete-envnames)
nil nil nil nil latex-block-default)))
next reply other threads:[~2016-05-27 15:11 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-27 15:11 Chong Yidong [this message]
2016-05-28 8:22 ` bug#23632: 25.1.50; Gratuitous undo boundary in latex-insert-block Chong Yidong
2016-05-29 21:51 ` Phillip Lord
2016-05-31 21:42 ` Phillip Lord
2016-06-01 13:15 ` Stefan Monnier
2016-06-02 20:08 ` Phillip Lord
2016-06-03 13:00 ` Stefan Monnier
2016-06-03 16:13 ` Phillip Lord
2016-06-03 17:00 ` Stefan Monnier
2016-06-03 22:18 ` Phillip Lord
2016-06-04 3:05 ` Stefan Monnier
2016-06-04 8:51 ` Phillip Lord
2016-06-04 16:49 ` Stefan Monnier
2016-06-04 17:17 ` Phillip Lord
2016-06-04 18:41 ` Stefan Monnier
2016-06-06 14:33 ` Phillip Lord
2016-06-06 15:02 ` Stefan Monnier
2016-06-06 15:36 ` Phillip Lord
2016-06-06 15:26 ` Eli Zaretskii
2016-06-06 15:38 ` Phillip Lord
2016-06-06 16:22 ` Eli Zaretskii
2016-06-07 11:20 ` Phillip Lord
2016-06-07 15:09 ` Eli Zaretskii
2016-06-03 2:58 ` Chong Yidong
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87lh2vo7s6.fsf@gmail.com \
--to=cyd@gnu.org \
--cc=23632@debbugs.gnu.org \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).