unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Gregory Heytings <gregory@heytings.org>
Cc: monnier@iro.umontreal.ca, harven@free.fr, 48042@debbugs.gnu.org
Subject: bug#48042: 26.3; Macros don't work with french-postfix input method
Date: Sat, 15 May 2021 13:21:04 +0300	[thread overview]
Message-ID: <834kf4xppr.fsf@gnu.org> (raw)
In-Reply-To: <fc7ab3243a261083d2e0@heytings.org> (message from Gregory Heytings on Sat, 15 May 2021 09:46:02 +0000)

> Date: Sat, 15 May 2021 09:46:02 +0000
> From: Gregory Heytings <gregory@heytings.org>
> cc: Eli Zaretskii <eliz@gnu.org>, harven@free.fr, 48042@debbugs.gnu.org
> 
> Here is an updated patch, which uses the '(no-record . EVENT)' approach, 
> and whose changes are therefore limited to quail.el.

Thanks.

To tell you the truth, I'm a bit worried that you inhibit recording
everywhere in quail.el, which seems to contradict my analysis from
back when I made the inhibit--record-char.  How many different input
methods did you try with macros and "C-h l" to make sure this change
indeed causes Emacs to record each produced character just once, and
nothing is either omitted or recorded more than once?  Did you try
some CJK input methods, for example, which offer several alternatives
for each key sequence the user typed?

Other than this main issue, this LGTM, modulo some minor comments
below.

> +(defun quail-add-unread-command-events (key &optional reset)
> +  "Add KEY to `unread-command-events'.

This summary line should mention that the function arranges for the
events not to be recorded, and perhaps also explain in the rest of the
doc string (or in a comment) why is that needed here.

> +When KEY is a character, it is prepended to `unread-command-events' as a
> +cons with a no-record car.
> +When KEY is a vector, its elements are prepended to `unread-command-events'
> +as conses with a no-record car.

The last sentence above is not clear enough, IMO; I originally
interpreted it incorrectly.  I would suggest to reword:

  If KEY is a vector of events, the events are prepended
  to `unread-command-events', after converting each event
  to a cons cell of the form (no-record . EVENT).

> +When RESET is non-nil, the events in `unread-command-events' are first
> +discarded."

I'm not sure we need this as part of the function: it makes the
function more complicated for no good reason.  Why not reset
unread-command-events "by hand" in the one place where that is needed?
Or maybe even explicitly use (no-record . 7) in that one place, and
then you can avoid calling this function, since that one place does
something very different from the rest.

Please also make a single changeset out of this one and the one where
you remove inhibit--record-char; see there for more comments.  I see
no need to separate them into two commits.





  reply	other threads:[~2021-05-15 10:21 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-26 18:05 bug#48042: 26.3; Macros don't work with french-postfix input method harven
2021-04-26 18:22 ` Eli Zaretskii
2021-04-28 18:24 ` harven
2021-05-14  9:29 ` Gregory Heytings
2021-05-14  9:55   ` Basil L. Contovounesios
2021-05-14 10:03     ` Gregory Heytings
2021-05-14 11:09   ` Eli Zaretskii
2021-05-14 13:38     ` Gregory Heytings
2021-05-14 13:54       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-05-14 14:08         ` Gregory Heytings
2021-05-14 14:12           ` Eli Zaretskii
2021-05-14 14:04       ` Eli Zaretskii
2021-05-14 14:16         ` Gregory Heytings
2021-05-14 14:36           ` Eli Zaretskii
2021-05-14 15:00             ` Gregory Heytings
2021-05-14 15:11               ` Eli Zaretskii
2021-05-14 15:51             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-05-14 15:59               ` Eli Zaretskii
2021-05-14 17:07               ` Gregory Heytings
2021-05-14 17:13                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-05-15  9:46                   ` Gregory Heytings
2021-05-15 10:21                     ` Eli Zaretskii [this message]
2021-05-15 18:47                       ` Gregory Heytings
2021-05-15 18:52                         ` Eli Zaretskii
2021-05-15 20:17                           ` Gregory Heytings
2021-05-29  8:20                             ` Eli Zaretskii

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=834kf4xppr.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=48042@debbugs.gnu.org \
    --cc=gregory@heytings.org \
    --cc=harven@free.fr \
    --cc=monnier@iro.umontreal.ca \
    /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).