Subject: bug#34416: closed (Re: bug#34416: 26.1; Some characters repeated in keyboard macro with quail chinese-py input method enabled)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 10 Feb 2019 18:23:02 +0000

Your bug report

#34416: 26.1; Some characters repeated in keyboard macro with quail chinese-py input method enabled

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
34416: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=34416
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#34416: 26.1; Some characters repeated in keyboard macro with quail chinese-py input method enabled
From: Eli Zaretskii <[email-masked]>
To: "whatacold ." <[email-masked]>
Cc: [email-masked]
Date: Sun, 10 Feb 2019 20:21:46 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: "whatacold ." <[email-masked]>
> Date: Sun, 10 Feb 2019 17:13:11 +0800
> 
> 1. Start a fresh emacs by 'emacs -Q' in terminal
> 2. Enable chinese-py input method of quail by eval'ing below snippet:
> 
>     (setq default-input-method "chinese-py")
>     (toggle-input-method)
> 
> 3. Start defining keyboard macro by hitting 'F3'
> 4. Input Chinese '你好' by typing 'ni1hao1' in the '*scratch*' buffer,
>     and end keyboard macro by 'F4'
> 5. Replay keyboard macro by 'F4', it will get '嗯你h好', which is *not*
>     exactly the same.

Thanks, this is bug #32108, which is already fixed on the master
branch of the Emacs Git repository.

Subject: 26.1; Some characters repeated in keyboard macro with quail chinese-py input method enabled
From: "whatacold ." <[email-masked]>
To: [email-masked]
Date: Sun, 10 Feb 2019 17:13:11 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

1. Start a fresh emacs by 'emacs -Q' in terminal
2. Enable chinese-py input method of quail by eval'ing below snippet:

    (setq default-input-method "chinese-py")
    (toggle-input-method)

3. Start defining keyboard macro by hitting 'F3'
4. Input Chinese '你好' by typing 'ni1hao1' in the '*scratch*' buffer,
    and end keyboard macro by 'F4'
5. Replay keyboard macro by 'F4', it will get '嗯你h好', which is *not*
    exactly the same.
6. 'M-x kmacro-edit-macro' shows that some characters('n' and 'h') are
repeated:
    ;; Keyboard Macro Editor.  Press C-c C-c to finish; press C-x k RET to
cancel.
    ;; Original keys: nni1hhao1

    Command: last-kbd-macro
    Key: none

    Macro:

    nni1hhao1 ;; self-insert-command * 9

7. My guess is that it's due to put back the key into
'unread-command-events' in the function 'quail-start-translation', i.e.:
    (if key
        (setq unread-command-events (cons key unread-command-events)))

In GNU Emacs 26.1 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.22.30)
 of 2018-06-26 built on buildhw-10.phx2.fedoraproject.org
Windowing system distributor 'Fedora Project', version 11.0.11906000
System Description: Fedora release 28 (Twenty Eight)

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Loading quail/PY...done

Configured using:
 'configure --build=x86_64-redhat-linux-gnu
 --host=x86_64-redhat-linux-gnu --program-prefix=
 --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
 --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
 --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
 --libexecdir=/usr/libexec --localstatedir=/var
 --sharedstatedir=/var/lib --mandir=/usr/share/man
 --infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-png
 --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3
 --with-gpm=no --with-xwidgets --with-modules
 build_alias=x86_64-redhat-linux-gnu host_alias=x86_64-redhat-linux-gnu
 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g -pipe -Wall -Werror=format-security
 -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions
 -fstack-protector-strong -grecord-gcc-switches
 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'
 LDFLAGS=-Wl,-z,relro
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS NOTIFY ACL
LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES THREADS XWIDGETS LCMS2

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

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny seq byte-opt gv
bytecomp byte-compile cconv dired dired-loaddefs format-spec rfc822 mml
mml-sec password-cache epa derived epg epg-config gnus-util rmail
rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils quail help-mode easymenu cl-loaddefs
cl-lib elec-pair time-date mule-util tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type 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 elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic 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 charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting xwidget-internal move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 99183 11721)
 (symbols 48 20740 1)
 (miscs 40 58 129)
 (strings 32 36203 1462)
 (string-bytes 1 794714)
 (vectors 16 15442)
 (vector-slots 8 509842 12640)
 (floats 8 49 201)
 (intervals 56 296 7)
 (buffers 992 12))