GNU bug report logs - #44466
27.1; quail input fails at read-only boundary

Previous Next

Package: emacs;

Reported by: dick <dick.r.chiang <at> gmail.com>

Date: Thu, 5 Nov 2020 13:49:01 UTC

Severity: normal

Found in version 27.1

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: dick <dick.r.chiang <at> gmail.com>
Subject: bug#44466: closed (Re: bug#44466: 27.1; quail input fails at
 read-only boundary)
Date: Sat, 14 Nov 2020 13:23:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#44466: 27.1; quail input fails at read-only boundary

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 44466 <at> debbugs.gnu.org.

-- 
44466: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=44466
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Eli Zaretskii <eliz <at> gnu.org>
To: lg.zevlg <at> gmail.com
Cc: 44466-done <at> debbugs.gnu.org, dick.r.chiang <at> gmail.com
Subject: Re: bug#44466: 27.1; quail input fails at read-only boundary
Date: Sat, 14 Nov 2020 15:22:15 +0200
> From: lg.zevlg <at> gmail.com
> Date: Sun, 8 Nov 2020 23:50:54 +0400
> Cc: dick.r.chiang <at> gmail.com, 44466 <at> debbugs.gnu.org
> 
> 
> > 8 нояб. 2020 г., в 20:18, Eli Zaretskii <eliz <at> gnu.org> написал(а):
> > 
> > 
> >> 
> >> From: lg.zevlg <at> gmail.com
> >> Date: Sun, 8 Nov 2020 20:07:46 +0400
> >> Cc: dick.r.chiang <at> gmail.com, 44466 <at> debbugs.gnu.org
> >> 
> >>> Any reason why pressing a key on a button should disregard the active
> >>> input method?  What if the button needs the user to type the character
> >>> which the input method would produce?  AFAIU, the patch we installed a
> >>> year ago makes this impossible.
> >> 
> >> The reason is the same as for read-only buffers, making single char bindings work. For example if you change input method in image-mode and press “q” key this will kill buffer, because correct command is executed.
> > 
> > If this is a feature, it should be documented somewhere.  Is it?
> 
> I guess so, this feature was in Emacs for years. Usually people marks whole buffer as read-only and then mark special places to inhibit read-only, so quail translation inhibits for read-only parts and does the translation in writable parts. In telega.el project we do opposit - insert read-only parts in writable buffer and expect quail translation not to apply in that read-only parts of the buffer. We might change this behaviour, so patch to quail could be reverted, however I think it is better to fix this in quail, to reflect the logic in internal checks for region writability

Thanks, I've now fixed this on the emacs-27 branch.

[Message part 3 (message/rfc822, inline)]
From: dick <dick.r.chiang <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 27.1; quail input fails at read-only boundary
Date: Thu, 05 Nov 2020 08:48:08 -0500
Run this:

emacs-27.1 -Q -nw --eval "(progn \
        (switch-to-buffer \"*scratch*\") \
        (erase-buffer) \
        (save-excursion (insert (propertize \"\n\" 'read-only t))) \
        (set-input-method \"russian-computer\" t))"

Now type "a".  Note it is incorrect.  We want cyrillic, not latin.

Exit emacs.  Run this:

emacs-26.3 -Q -nw --eval "(progn \
        (switch-to-buffer \"*scratch*\") \
        (erase-buffer) \
        (save-excursion (insert (propertize \"\n\" 'read-only t))) \
        (set-input-method \"russian-computer\" t))"

Now type "a".  Note it is correct.



In GNU Emacs 27.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
 of 2020-09-20 built on dick
Repository revision: dff02e85245dfbbeea7d57dc1a753a9ba24616d5
Repository branch: gnus-dev-27
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Ubuntu 18.04.4 LTS

Recent messages:
Wrote /tmp/foo
Mark activated
Mark deactivated
Mark set
Quit [2 times]
Mark set
Quit
Mark set [2 times]
Saving file /tmp/foo...
Wrote /tmp/foo

Configured using:
 'configure --prefix=/home/dick/.local --with-rsvg=yes --with-xml2=yes
 PKG_CONFIG_PATH=/home/dick/.local/lib/pkgconfig'

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND DBUS GSETTINGS GLIB NOTIFY INOTIFY LIBSELINUX
GNUTLS LIBXML2 FREETYPE HARFBUZZ XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE
XIM MODULES THREADS JSON PDUMPER GMP

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Shell-script

Minor modes in effect:
  pyvenv-mode: t
  sh-electric-here-document-mode: t
  show-paren-mode: t
  global-magit-file-mode: t
  magit-auto-revert-mode: t
  global-git-commit-mode: t
  async-bytecomp-package-mode: t
  flx-ido-mode: t
  projectile-mode: t
  ido-everywhere: t
  override-global-mode: t
  shell-dirtrack-mode: t
  beacon-mode: t
  global-hl-line-mode: t
  winner-mode: t
  cl-old-struct-compat-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  mouse-wheel-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
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/dick/ESS/lisp/obsolete/ess-swv hides /home/dick/ESS/lisp/ess-swv
/home/dick/ESS/lisp/obsolete/ess-rutils hides /home/dick/ESS/lisp/ess-rutils
/home/dick/ESS/lisp/obsolete/ess-noweb hides /home/dick/ESS/lisp/ess-noweb
/home/dick/ESS/lisp/obsolete/mouseme hides /home/dick/ESS/lisp/mouseme
/home/dick/ESS/lisp/obsolete/ess-mouse hides /home/dick/ESS/lisp/ess-mouse
/home/dick/ESS/lisp/obsolete/ess-noweb-mode hides /home/dick/ESS/lisp/ess-noweb-mode
/home/dick/ESS/lisp/obsolete/make-regexp hides /home/dick/ESS/lisp/make-regexp
/home/dick/ESS/lisp/obsolete/ess-r-a hides /home/dick/ESS/lisp/ess-r-a
/home/dick/ESS/lisp/obsolete/ess-noweb-font-lock-mode hides /home/dick/ESS/lisp/ess-noweb-font-lock-mode
/home/dick/gomacro-mode/gomacro-mode hides /home/dick/.emacs.d/elpa/gomacro-mode-20200326.1103/gomacro-mode
/home/dick/ESS/lisp/julia-mode-latexsubs hides /home/dick/.emacs.d/elpa/julia-mode-20200717.1915/julia-mode-latexsubs
/home/dick/ESS/lisp/julia-mode hides /home/dick/.emacs.d/elpa/julia-mode-20200717.1915/julia-mode
/home/dick/.emacs.d/elpa/hydra-20170924.2259/lv hides /home/dick/.emacs.d/elpa/lv-20191106.1238/lv
/home/dick/melpa-stats/melpa-stats hides /home/dick/.emacs.d/elpa/melpa-stats-20190720.1833/melpa-stats
/home/dick/.emacs.d/elpa/async-20200113.1745/async-autoloads hides /home/dick/.local/share/emacs/site-lisp/emacs-async/async-autoloads
/home/dick/.emacs.d/elpa/async-20200113.1745/async-bytecomp hides /home/dick/.local/share/emacs/site-lisp/emacs-async/async-bytecomp
/home/dick/.emacs.d/elpa/async-20200113.1745/smtpmail-async hides /home/dick/.local/share/emacs/site-lisp/emacs-async/smtpmail-async
/home/dick/.emacs.d/elpa/async-20200113.1745/dired-async hides /home/dick/.local/share/emacs/site-lisp/emacs-async/dired-async
/home/dick/.emacs.d/elpa/async-20200113.1745/async hides /home/dick/.local/share/emacs/site-lisp/emacs-async/async
/home/dick/.emacs.d/elpa/async-20200113.1745/async-pkg hides /home/dick/.local/share/emacs/site-lisp/emacs-async/async-pkg
/home/dick/.emacs.d/lisp/json hides /home/dick/.local/share/emacs/27.1/lisp/json
/home/dick/.emacs.d/elpa/map-2.1/map hides /home/dick/.local/share/emacs/27.1/lisp/emacs-lisp/map

Features:
(shadow sort flyspell ispell footnote mail-extr gnus-msg gnus-art mm-uu
mml2015 mm-view mml-smime smime dig emacsbug sendmail texinfo apropos
descr-text quail tabify rect company-oddmuse company-keywords company-etags
company-gtags company-dabbrev-code company-dabbrev company-files company-cmake
company-xcode company-eclim company-css company-nxml company-bbdb company-go
company-template company-c-headers cl-print debug backtrace mm-archive
timezone es-mode yasnippet-snippets yasnippet company-capf elpy elpy-rpc
pyvenv eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module
esh-groups esh-util elpy-shell elpy-profile elpy-django elpy-refactor
ein-markdown-mode poly-rst rst mule-util org-element avl-tree ol-eww ol-rmail
ol-mhe ol-irc ol-info ol-gnus nnir gnus-sum gnus-group gnus-undo gnus-start
gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int
gnus-range gnus-win ol-docview doc-view image-mode exif ol-bibtex bibtex
ol-bbdb ol-w3m org-tempo tempo org org-macro org-footnote org-pcomplete
org-list org-faces org-entities org-version ob-jupyter jupyter-org-extensions
jupyter-org-client jupyter-repl jupyter-kernel-manager jupyter-channel
jupyter-widget-client simple-httpd jupyter-client jupyter-comm-layer
jupyter-messages hmac-def jupyter-mime shr svg dom jupyter-kernelspec
jupyter-env jupyter-base ob-emacs-lisp ob-ein ob ob-tangle org-src ob-ref
ob-lob ob-table ob-exp ob-comint ob-core ob-eval org-table ol org-keys
org-compat org-macs org-loaddefs cal-menu calendar cal-loaddefs ein-ipynb-mode
js ein-process ein-jupyter exec-path-from-shell ein-dev ein-notebook python
tramp-sh tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat
parse-time iso8601 ls-lisp ein-python-send ein-traceback ein-shared-output
ein-pytools ein-pager view ein-completer ein-notification ein-scratchsheet
ein-worksheet poly-ein display-line-numbers polymode poly-lock polymode-base
polymode-weave polymode-export polymode-compat polymode-methods polymode-core
polymode-classes eieio-custom eieio-base ein-kill-ring ein-cell
ein-output-area ein-kernelinfo ein-kernel ein-ipdb ein-events ein-websocket
websocket bindat ein-file ein-node ewoc ein-notebooklist eieio-opt speedbar
sb-image ezimage dframe ein-contents-api ein-query ein-log ein-classes
ein-core request ein-utils deferred ein help-fns radix-tree ein-gat
bug-reference magit-extras face-remap pulse google-c-style cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ag
vc-svn find-dired ivy delsel colir color ivy-overlay dumb-jump f s flycheck
find-func jka-compr let-alist go-eldoc gomacro-mode go-mode find-file ffap
network-stream url-http url-gw nsm url-cache url-auth misearch multi-isearch
sh-script executable paredit-ext paredit dired-x inf-ruby ruby-mode smie
melpa-stats ht dash-functional anaphora a pp sx key-combo company
haskell-interactive-mode haskell-presentation-mode haskell-process
haskell-session haskell-compile haskell-mode haskell-cabal haskell-utils
haskell-font-lock haskell-indentation haskell-string haskell-sort-imports
haskell-lexeme rx haskell-align-imports haskell-complete-module
haskell-ghc-support etags fileloop generator dabbrev haskell-customize hydra
lv use-package-ensure paren magit-patch-changelog magit-patch magit-submodule
magit-obsolete magit-popup magit-blame magit-stash magit-reflog magit-bisect
magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit
magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch
magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply
magit-wip magit-log which-func imenu magit-diff smerge-mode diff diff-mode
magit-core magit-autorevert autorevert filenotify magit-margin magit-transient
magit-process magit-mode git-commit transient magit-git magit-section
magit-utils crm log-edit message rmc dired dired-loaddefs rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader pcvs-util add-log with-editor async-bytecomp async pcase server
dash flx-ido flx solarized-theme solarized-definitions projectile ibuf-ext
ibuffer ibuffer-loaddefs grep gnus nnheader gnus-util rmail rmail-loaddefs
rfc2047 rfc2045 ietf-drums text-property-search time-date mail-utils mm-util
mail-prsvr google-translate-default-ui google-translate-core-ui ido
google-translate-core google-translate-tk google-translate-backend
use-package-bind-key bind-key auto-complete popup cus-edit cus-start cus-load
wid-edit ess-r-mode ess-r-flymake flymake-proc flymake warnings thingatpt
ess-r-xref xref ess-trns ess-r-package shell pcomplete ess-r-completion
ess-roxy ess-r-syntax ess-rd noutline outline easy-mmode hideshow ess-s-lang
ess-help ess-mode ess-inf project format-spec ess-tracebug ess ess-utils
ess-custom compile comint ansi-color emms-player-mplayer emms-player-simple
emms emms-compat twittering-mode epa derived epg epg-config tls gnutls puny
url url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util mailcap advice xml cl fzf cl-extra help-mode
use-package-core beacon hl-line winner ring finder-inf howdoyou-autoloads
json-reformat-autoloads json-snatcher-autoloads edmacro kmacro
sml-mode-autoloads tornado-template-mode-autoloads info package easymenu
browse-url url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv
bytecomp byte-compile cconv cl-loaddefs cl-lib 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 tab-bar
menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core term/tty-colors frame minibuffer 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 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 threads
dbusbind inotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 1083062 111029)
 (symbols 48 74547 1)
 (strings 32 291004 12083)
 (string-bytes 1 8642226)
 (vectors 16 114291)
 (vector-slots 8 2908784 288750)
 (floats 8 733 985)
 (intervals 56 57324 1194)
 (buffers 1000 97))



This bug report was last modified 4 years and 245 days ago.

Previous Next


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