GNU bug report logs - #64998
29.1; `emoji-search' (C-x 8 e s) command can not be repeated using `repeat' (C-x z)

Previous Next

Package: emacs;

Reported by: Fadi Moukayed <smfadi <at> gmail.com>

Date: Tue, 1 Aug 2023 17:56:01 UTC

Severity: normal

Found in version 29.1

To reply to this bug, email your comments to 64998 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#64998; Package emacs. (Tue, 01 Aug 2023 17:56:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Fadi Moukayed <smfadi <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 01 Aug 2023 17:56:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Fadi Moukayed <smfadi <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.1; `emoji-search' (C-x 8 e s) command can not be repeated using
 `repeat' (C-x z)
Date: Tue, 1 Aug 2023 18:11:56 +0200
Hi all,

While playing with some of the new Emoji commands in Emacs 29.1, I
realized that some of them (esp. those involving interactive prompts)
are not repeatable via C-x z.

Steps to reproduce

1. Start Emacs using `emacs -Q'
2. Type C-x 8 e s and enter:

  up arrow

3. Observe that an "up arrow" emoji was inserted at point
4. Type C-x z

Expected behavior:

The last command is repeated, resulting in an additional "up arrow"
emoji being inserted at point.

Observed behavior:

No "up arrow" emoji is inserted.

The following messages are written on the *Messages* buffer:

Repeating command minibuffer-complete-and-exit
No match

---

In GNU Emacs 29.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.20,
 cairo version 1.16.0) of 2023-08-01 built on lcy02-amd64-041
Repository revision: 6f8b65544c43e04bfc91d6a97eb41f68835d6370
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12013000
System Description: Ubuntu 20.04.6 LTS

Configured using:
 'configure --prefix=/snap/emacs/current/usr --with-x-toolkit=gtk3
 --without-xaw3d --with-modules --with-cairo --with-native-compilation
 --with-xinput2 --with-tree-sitter --with-json
 'CFLAGS=-isystem/build/emacs/parts/emacs/install/usr/include
 -isystem/build/emacs/parts/emacs/install/usr/include/x86_64-linux-gnu
 -isystem/build/emacs/stage/usr/include -O2'
 'CPPFLAGS=-isystem/build/emacs/parts/emacs/install/usr/include
 -isystem/build/emacs/parts/emacs/install/usr/include/x86_64-linux-gnu
 -isystem/build/emacs/stage/usr/include'
 'LDFLAGS=-L/build/emacs/parts/emacs/install/lib
 -L/build/emacs/parts/emacs/install/usr/lib
 -L/build/emacs/parts/emacs/install/lib/x86_64-linux-gnu
 -L/build/emacs/parts/emacs/install/usr/lib/x86_64-linux-gnu
 -L/build/emacs/stage/usr/lib''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3
THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER X11 XDBE XIM XINPUT2 XPM
GTK3 ZLIB

Important settings:
  value of $LANG: de_DE.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: ERC

Minor modes in effect:
  erc-notifications-mode: t
  erc-track-mode: t
  erc-track-minor-mode: t
  erc-ring-mode: t
  erc-netsplit-mode: t
  erc-menu-mode: t
  erc-match-mode: t
  erc-list-mode: t
  erc-pcomplete-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-autojoin-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-keep-place-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  erc-networks-mode: t
  delete-selection-mode: t
  recentf-mode: t
  global-whitespace-mode: t
  global-goto-address-mode: t
  goto-address-mode: t
  fido-vertical-mode: t
  icomplete-vertical-mode: t
  icomplete-mode: t
  fido-mode: t
  desktop-save-mode: t
  cua-mode: t
  windmove-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  column-number-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort emacsbug misearch multi-isearch mail-extr shortdoc help-fns
radix-tree repeat emoji-labels emoji multisession sqlite transient
edmacro kmacro erc-status-sidebar network-stream nsm
erc-desktop-notifications notifications erc-track erc-ring erc-netsplit
erc-menu erc-match erc-list erc-pcomplete erc-button erc-fill erc-stamp
erc-join erc-goodies erc pp erc-backend erc-networks erc-common
erc-compat erc-loaddefs display-line-numbers org-element org-persist
org-id org-refile avl-tree generator oc-basic ol-eww eww xdg url-queue
mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu
mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill
kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus
xml gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time gnus-spec
gnus-int gnus-range message sendmail yank-media puny rfc822 mml mml-sec
epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils
mailheader gnus-win gnus nnheader gnus-util text-property-search
mail-utils range mm-util mail-prsvr ol-docview doc-view filenotify
jka-compr image-mode exif dired dired-loaddefs ol-bibtex bibtex iso8601
ol-bbdb ol-w3m ol-doi org-link-doi org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-src ob-comint org-pcomplete pcomplete
comint ansi-osc ansi-color ring org-list org-footnote org-faces
org-entities time-date noutline outline ob-emacs-lisp ob-core ob-eval
org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs
find-func cal-menu calendar cal-loaddefs org-version org-compat org-macs
format-spec disp-table leuven-dark-theme delsel recentf tree-widget
wid-edit whitespace goto-addr thingatpt icomplete desktop frameset
cua-base cus-load finder-inf package browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source eieio eieio-core password-cache json map byte-opt url-vars
windmove site-start comp comp-cstr warnings icons subr-x rx cl-seq
cl-macs gv cl-extra help-mode cl-loaddefs cl-lib bytecomp byte-compile
rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty
make-network-process native-compile emacs)

Memory information:
((conses 16 896769 75559)
 (symbols 48 48547 2)
 (strings 32 254351 9676)
 (string-bytes 1 6281684)
 (vectors 16 79728)
 (vector-slots 8 1881101 282511)
 (floats 8 478 901)
 (intervals 56 34260 3208)
 (buffers 984 22))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#64998; Package emacs. (Tue, 01 Aug 2023 18:09:02 GMT) Full text and rfc822 format available.

Message #8 received at 64998 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Fadi Moukayed <smfadi <at> gmail.com>, Jonas Bernoulli <jonas <at> bernoul.li>
Cc: 64998 <at> debbugs.gnu.org
Subject: Re: bug#64998: 29.1;
 `emoji-search' (C-x 8 e s) command can not be repeated using `repeat'
 (C-x z)
Date: Tue, 01 Aug 2023 21:08:13 +0300
> From: Fadi Moukayed <smfadi <at> gmail.com>
> Date: Tue, 1 Aug 2023 18:11:56 +0200
> 
> While playing with some of the new Emoji commands in Emacs 29.1, I
> realized that some of them (esp. those involving interactive prompts)
> are not repeatable via C-x z.
> 
> Steps to reproduce
> 
> 1. Start Emacs using `emacs -Q'
> 2. Type C-x 8 e s and enter:
> 
>   up arrow
> 
> 3. Observe that an "up arrow" emoji was inserted at point
> 4. Type C-x z
> 
> Expected behavior:
> 
> The last command is repeated, resulting in an additional "up arrow"
> emoji being inserted at point.
> 
> Observed behavior:
> 
> No "up arrow" emoji is inserted.
> 
> The following messages are written on the *Messages* buffer:
> 
> Repeating command minibuffer-complete-and-exit
> No match

That command is implemented on top of transient.el, and I'm not sure
transient supports "C-x z" repetition.  Jonas, can you comment on
this, please?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#64998; Package emacs. (Sat, 12 Aug 2023 06:45:02 GMT) Full text and rfc822 format available.

Message #11 received at 64998 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: jonas <at> bernoul.li
Cc: smfadi <at> gmail.com, 64998 <at> debbugs.gnu.org
Subject: Re: bug#64998: 29.1;
 `emoji-search' (C-x 8 e s) command can not be repeated using `repeat'
 (C-x z)
Date: Sat, 12 Aug 2023 09:44:26 +0300
Ping!

> Cc: 64998 <at> debbugs.gnu.org
> Date: Tue, 01 Aug 2023 21:08:13 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
> 
> > From: Fadi Moukayed <smfadi <at> gmail.com>
> > Date: Tue, 1 Aug 2023 18:11:56 +0200
> > 
> > While playing with some of the new Emoji commands in Emacs 29.1, I
> > realized that some of them (esp. those involving interactive prompts)
> > are not repeatable via C-x z.
> > 
> > Steps to reproduce
> > 
> > 1. Start Emacs using `emacs -Q'
> > 2. Type C-x 8 e s and enter:
> > 
> >   up arrow
> > 
> > 3. Observe that an "up arrow" emoji was inserted at point
> > 4. Type C-x z
> > 
> > Expected behavior:
> > 
> > The last command is repeated, resulting in an additional "up arrow"
> > emoji being inserted at point.
> > 
> > Observed behavior:
> > 
> > No "up arrow" emoji is inserted.
> > 
> > The following messages are written on the *Messages* buffer:
> > 
> > Repeating command minibuffer-complete-and-exit
> > No match
> 
> That command is implemented on top of transient.el, and I'm not sure
> transient supports "C-x z" repetition.  Jonas, can you comment on
> this, please?
> 
> 
> 
> 




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#64998; Package emacs. (Sat, 12 Aug 2023 21:45:02 GMT) Full text and rfc822 format available.

Message #14 received at 64998 <at> debbugs.gnu.org (full text, mbox):

From: Jonas Bernoulli <jonas <at> bernoul.li>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: smfadi <at> gmail.com, 64998 <at> debbugs.gnu.org
Subject: Re: bug#64998: 29.1; `emoji-search' (C-x 8 e s) command can not be
 repeated using `repeat' (C-x z)
Date: Sat, 12 Aug 2023 23:44:11 +0200
> Ping!

I'll try to have a look soon.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#64998; Package emacs. (Sat, 02 Sep 2023 18:43:02 GMT) Full text and rfc822 format available.

Message #17 received at 64998 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Jonas Bernoulli <jonas <at> bernoul.li>
Cc: smfadi <at> gmail.com, 64998 <at> debbugs.gnu.org
Subject: Re: bug#64998: 29.1; `emoji-search' (C-x 8 e s) command can not be
 repeated using `repeat' (C-x z)
Date: Sat, 02 Sep 2023 21:42:16 +0300
> From: Jonas Bernoulli <jonas <at> bernoul.li>
> Cc: smfadi <at> gmail.com, 64998 <at> debbugs.gnu.org
> Date: Sat, 12 Aug 2023 23:44:11 +0200
> 
> > Ping!
> 
> I'll try to have a look soon.

Any progress with this?

TIA




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#64998; Package emacs. (Sun, 03 Sep 2023 17:19:02 GMT) Full text and rfc822 format available.

Message #20 received at 64998 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Jonas Bernoulli <jonas <at> bernoul.li>
Cc: smfadi <at> gmail.com, 64998 <at> debbugs.gnu.org
Subject: Re: bug#64998: 29.1; `emoji-search' (C-x 8 e s) command can not be
 repeated using `repeat' (C-x z)
Date: Sun, 03 Sep 2023 19:22:15 +0300
> From: Jonas Bernoulli <jonas <at> bernoul.li>
> Cc: 64998 <at> debbugs.gnu.org
> Date: Sun, 03 Sep 2023 18:17:21 +0200
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> >> From: Fadi Moukayed <smfadi <at> gmail.com>
> 
> >> Observed behavior:
> >> 
> >> No "up arrow" emoji is inserted.
> >> 
> >> The following messages are written on the *Messages* buffer:
> >> 
> >> Repeating command minibuffer-complete-and-exit
> >> No match
> >
> > That command is implemented on top of transient.el, and I'm not sure
> > transient supports "C-x z" repetition.  Jonas, can you comment on
> > this, please?
> 
> Support implemented in 502e7c9a9b34c74b1b99f9e2f13a75f03dabba18 (and
> a little follow up commit to fix a last minute hiccup).

Thanks!

I see you installed this on master.  I would like to fix this on the
emacs-29 branch instead, since these commands are new in Emacs 29.  Do
you think it's okay to cherry-pick your two commits to emacs-29?  I'm
asking because AFAIR you made some changes in transient.el on master,
and I'm not sure whether the fixes you made today need those changes
to work.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#64998; Package emacs. (Sun, 03 Sep 2023 17:37:02 GMT) Full text and rfc822 format available.

Message #23 received at 64998 <at> debbugs.gnu.org (full text, mbox):

From: Jonas Bernoulli <jonas <at> bernoul.li>
To: Eli Zaretskii <eliz <at> gnu.org>, Fadi Moukayed <smfadi <at> gmail.com>
Cc: 64998 <at> debbugs.gnu.org
Subject: Re: bug#64998: 29.1; `emoji-search' (C-x 8 e s) command can not be
 repeated using `repeat' (C-x z)
Date: Sun, 03 Sep 2023 18:17:21 +0200
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Fadi Moukayed <smfadi <at> gmail.com>

>> Observed behavior:
>> 
>> No "up arrow" emoji is inserted.
>> 
>> The following messages are written on the *Messages* buffer:
>> 
>> Repeating command minibuffer-complete-and-exit
>> No match
>
> That command is implemented on top of transient.el, and I'm not sure
> transient supports "C-x z" repetition.  Jonas, can you comment on
> this, please?

Support implemented in 502e7c9a9b34c74b1b99f9e2f13a75f03dabba18 (and
a little follow up commit to fix a last minute hiccup).

There is nothing in Transient that would prevent commands from being
repeated using `repeat' or `repeat-complex-command', but of course
commands still have to follow the usual rules for making them
repeatable.

`emoji-search' even for glyphs that have no variants, because it read
from the minibuffer in the function body instead of inside `interactive'.

Same for `emoji-insert-glyph', but that additionally needed a bit of
transient specific work.  Normally such a command would use
`transient-args' to get the arguments from the transient prefix, much
like `current-prefix-args' works, but `emoji-insert-graph' is a bit
different, and we have the previously inserted graph elsewhere, when
the command is repeated (from the multisession-value `emoji--recent').




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#64998; Package emacs. (Sun, 03 Sep 2023 20:58:02 GMT) Full text and rfc822 format available.

Message #26 received at 64998 <at> debbugs.gnu.org (full text, mbox):

From: Jonas Bernoulli <jonas <at> bernoul.li>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: smfadi <at> gmail.com, 64998 <at> debbugs.gnu.org
Subject: Re: bug#64998: 29.1; `emoji-search' (C-x 8 e s) command can not be
 repeated using `repeat' (C-x z)
Date: Sun, 03 Sep 2023 22:57:44 +0200
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Jonas Bernoulli <jonas <at> bernoul.li>

>> Support implemented in 502e7c9a9b34c74b1b99f9e2f13a75f03dabba18 (and
>> a little follow up commit to fix a last minute hiccup).
>
> Thanks!
>
> I see you installed this on master.  I would like to fix this on the
> emacs-29 branch instead, since these commands are new in Emacs 29.  Do
> you think it's okay to cherry-pick your two commits to emacs-29?

Yes, that should be totally safe, even without the changes since the
Transient version in Emacs 29.1.

> I'm
> asking because AFAIR you made some changes in transient.el on master,
> and I'm not sure whether the fixes you made today need those changes
> to work.

I've installed those on emacs-29 as well.  I hope that is okay.  The
changes are mostly bug fixes, with some non-code changes sprinkled in,
though one of the bugfixes also comes with a breaking change.  (But that
was necessary to fix a bug and only has the potential to affect the most
obscure uses of transient.  I had planned to do that before the Emacs
29.1 release, but then that was suddenly there 🤩 *).

Going forward there will also be non-bugfixes again, I guess I'll have
to stop merging into emacs-29, once I get there?  Keeping two "built-in"
versions in sync with the version in my repository is more work, but it
probably won't be that bad.

By the way, my commit that added two variants of transient--wrap-command
for different Emacs releases was a mistake.  I intend to just keep the
respective appropriate version in the emacs-29 and master branches and
use static-if in my repository.  Once I've done that, I'll have to keep
three slightly different versions in sync anyway.

* In honor of my recent work on emoji.el. 😂😂😂😂😂 **
** Thanks to that it is now easy to repeat the same emoji.
   I wonder whether that is a good thing. 😉




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#64998; Package emacs. (Mon, 04 Sep 2023 11:30:02 GMT) Full text and rfc822 format available.

Message #29 received at 64998 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Jonas Bernoulli <jonas <at> bernoul.li>
Cc: smfadi <at> gmail.com, 64998 <at> debbugs.gnu.org
Subject: Re: bug#64998: 29.1; `emoji-search' (C-x 8 e s) command can not be
 repeated using `repeat' (C-x z)
Date: Mon, 04 Sep 2023 14:28:45 +0300
> From: Jonas Bernoulli <jonas <at> bernoul.li>
> Cc: smfadi <at> gmail.com, 64998 <at> debbugs.gnu.org
> Date: Sun, 03 Sep 2023 22:57:44 +0200
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> > I see you installed this on master.  I would like to fix this on the
> > emacs-29 branch instead, since these commands are new in Emacs 29.  Do
> > you think it's okay to cherry-pick your two commits to emacs-29?
> 
> Yes, that should be totally safe, even without the changes since the
> Transient version in Emacs 29.1.

Alas, it doesn't apply without conflicts, and changes some code that
doesn't exist on emacs-29 (emoji-insert-glyph etc.).  emoji.el on
master is quite different from the emacs-29 branch, so I'm afraid the
release branch will need a separate change, marked with "Do not merge
to master" in the commit log.  Is that possible/reasonable?

> Going forward there will also be non-bugfixes again, I guess I'll have
> to stop merging into emacs-29, once I get there?

Probably.

Thanks.




This bug report was last modified 1 year and 289 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.