GNU bug report logs - #73951
29.4; 'what-cursor-position' reports SPC instead of TAB in term-mode

Previous Next

Package: emacs;

Reported by: toomas <at> rosin.ee

Date: Tue, 22 Oct 2024 16:43:01 UTC

Severity: normal

Found in version 29.4

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

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 73951 in the body.
You can then email your comments to 73951 AT debbugs.gnu.org in the normal way.

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#73951; Package emacs. (Tue, 22 Oct 2024 16:43:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to toomas <at> rosin.ee:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 22 Oct 2024 16:43:01 GMT) Full text and rfc822 format available.

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

From: toomas <at> rosin.ee
To: bug-gnu-emacs <at> gnu.org
Subject: 29.4; 'what-cursor-position' reports SPC instead of TAB in term-mode
Date: Tue, 22 Oct 2024 19:35:42 +0300
How to reproduce on my system:

Start: emacs -Q
Type: M-x term RET
On Emacs prompt "Run program: /bin/bash", type: RET
The *terminal* buffer appears.
On Bash prompt, type: echo 'a TAB b' RET
Bash prints: "a	b" (a TAB b), and displays new prompt.
Type: <up> <left> <left> <left>
(The cursor is now on the tab character between a and b.)
Type: C-x =

I expect Emacs to report "Char: TAB" (etc.), but instead it responds with "Char: SPC" (etc.)

This can be really confusing when a command containing tab characters behaves unexpectedly and I want to check if I typed it right.


In GNU Emacs 29.4 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.41)
 of 2024-09-28 built on localhost
Windowing system distributor 'The X.Org Foundation', version 11.0.12101013
System Description: Gentoo Linux

Configured using:
 'configure --prefix=/usr --build=x86_64-pc-linux-gnu
 --host=x86_64-pc-linux-gnu --mandir=/usr/share/man
 --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc
 --localstatedir=/var/lib --datarootdir=/usr/share
 --disable-silent-rules --docdir=/usr/share/doc/emacs-29.4
 --htmldir=/usr/share/doc/emacs-29.4/html --libdir=/usr/lib64
 --program-suffix=-emacs-29 --includedir=/usr/include/emacs-29
 --infodir=/usr/share/info/emacs-29 --localstatedir=/var
 --enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp
 --without-compress-install --without-hesiod --without-pop
 --with-file-notification=inotify --with-pdumper --disable-acl
 --without-dbus --with-modules --without-gameuser --with-libgmp
 --without-gpm --without-native-compilation --with-json
 --without-kerberos --without-kerberos5 --without-lcms2 --with-xml2
 --without-mailutils --without-selinux --without-sqlite3 --with-gnutls
 --without-libsystemd --with-threads --without-tree-sitter
 --without-wide-int --with-sound=no --with-zlib --with-x --without-pgtk
 --without-ns --without-gconf --without-gsettings
 --with-toolkit-scroll-bars --with-xpm --with-xft --without-cairo
 --without-harfbuzz --without-libotf --without-m17n-flt
 --with-x-toolkit=gtk3 --without-xwidgets --without-gif --with-jpeg
 --with-png --without-rsvg --without-tiff --with-webp
 --without-imagemagick --with-dumping=pdumper 'CFLAGS=-march=native -O2
 -pipe -frecord-gcc-switches -g -fno-fast-math -ffp-contract=off'
 CPPFLAGS= 'LDFLAGS=-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs
 -Wl,--defsym=__gentoo_check_ldflags__=0''

Configured features:
FREETYPE GLIB GMP GNUTLS JPEG JSON LIBXML2 MODULES NOTIFY INOTIFY
PDUMPER PNG SECCOMP THREADS TOOLKIT_SCROLL_BARS WEBP X11 XDBE XFT XIM
XINPUT2 XPM GTK3 ZLIB

Important settings:
  value of $LANG: C.UTF8
  locale-coding-system: utf-8-unix

Major mode: Shell-script

Minor modes in effect:
  pyvenv-mode: t
  windmove-mode: t
  display-time-mode: t
  shell-dirtrack-mode: t
  desktop-save-mode: t
  auto-insert-mode: t
  override-global-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
  window-divider-mode: t
  column-number-mode: t
  line-number-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/toomas/Asjad/melogurmaania/init hides /home/toomas/Asjad/emacs/init
/usr/share/emacs/site-lisp/bind-key/bind-key hides /usr/share/emacs/site-lisp/use-package/bind-key
/usr/share/emacs/site-lisp/transient/transient hides /usr/share/emacs/29.4/lisp/transient
/usr/share/emacs/site-lisp/use-package/use-package-core hides /usr/share/emacs/29.4/lisp/use-package/use-package-core
/usr/share/emacs/site-lisp/use-package/use-package-bind-key hides /usr/share/emacs/29.4/lisp/use-package/use-package-bind-key
/usr/share/emacs/site-lisp/use-package/use-package-delight hides /usr/share/emacs/29.4/lisp/use-package/use-package-delight
/usr/share/emacs/site-lisp/use-package/use-package hides /usr/share/emacs/29.4/lisp/use-package/use-package
/usr/share/emacs/site-lisp/use-package/use-package-lint hides /usr/share/emacs/29.4/lisp/use-package/use-package-lint
/usr/share/emacs/site-lisp/bind-key/bind-key hides /usr/share/emacs/29.4/lisp/use-package/bind-key
/usr/share/emacs/site-lisp/use-package/use-package-ensure hides /usr/share/emacs/29.4/lisp/use-package/use-package-ensure
/usr/share/emacs/site-lisp/use-package/use-package-ensure-system-package hides /usr/share/emacs/29.4/lisp/use-package/use-package-ensure-system-package
/usr/share/emacs/site-lisp/use-package/use-package-jump hides /usr/share/emacs/29.4/lisp/use-package/use-package-jump
/usr/share/emacs/site-lisp/use-package/use-package-diminish hides /usr/share/emacs/29.4/lisp/use-package/use-package-diminish
/usr/share/emacs/site-lisp/org-mode/org-colview hides /usr/share/emacs/29.4/lisp/org/org-colview
/usr/share/emacs/site-lisp/org-mode/ob-octave hides /usr/share/emacs/29.4/lisp/org/ob-octave
/usr/share/emacs/site-lisp/org-mode/ob-python hides /usr/share/emacs/29.4/lisp/org/ob-python
/usr/share/emacs/site-lisp/org-mode/org-loaddefs hides /usr/share/emacs/29.4/lisp/org/org-loaddefs
/usr/share/emacs/site-lisp/org-mode/ob-emacs-lisp hides /usr/share/emacs/29.4/lisp/org/ob-emacs-lisp
/usr/share/emacs/site-lisp/org-mode/org-duration hides /usr/share/emacs/29.4/lisp/org/org-duration
/usr/share/emacs/site-lisp/org-mode/org-element hides /usr/share/emacs/29.4/lisp/org/org-element
/usr/share/emacs/site-lisp/org-mode/ob-maxima hides /usr/share/emacs/29.4/lisp/org/ob-maxima
/usr/share/emacs/site-lisp/org-mode/ob-org hides /usr/share/emacs/29.4/lisp/org/ob-org
/usr/share/emacs/site-lisp/org-mode/ol-w3m hides /usr/share/emacs/29.4/lisp/org/ol-w3m
/usr/share/emacs/site-lisp/org-mode/org-macro hides /usr/share/emacs/29.4/lisp/org/org-macro
/usr/share/emacs/site-lisp/org-mode/org-crypt hides /usr/share/emacs/29.4/lisp/org/org-crypt
/usr/share/emacs/site-lisp/org-mode/ob-processing hides /usr/share/emacs/29.4/lisp/org/ob-processing
/usr/share/emacs/site-lisp/org-mode/ol-rmail hides /usr/share/emacs/29.4/lisp/org/ol-rmail
/usr/share/emacs/site-lisp/org-mode/org-feed hides /usr/share/emacs/29.4/lisp/org/org-feed
/usr/share/emacs/site-lisp/org-mode/org-timer hides /usr/share/emacs/29.4/lisp/org/org-timer
/usr/share/emacs/site-lisp/org-mode/ob-matlab hides /usr/share/emacs/29.4/lisp/org/ob-matlab
/usr/share/emacs/site-lisp/org-mode/org-num hides /usr/share/emacs/29.4/lisp/org/org-num
/usr/share/emacs/site-lisp/org-mode/org-lint hides /usr/share/emacs/29.4/lisp/org/org-lint
/usr/share/emacs/site-lisp/org-mode/ob-screen hides /usr/share/emacs/29.4/lisp/org/ob-screen
/usr/share/emacs/site-lisp/org-mode/ox-texinfo hides /usr/share/emacs/29.4/lisp/org/ox-texinfo
/usr/share/emacs/site-lisp/org-mode/org-habit hides /usr/share/emacs/29.4/lisp/org/org-habit
/usr/share/emacs/site-lisp/org-mode/org-list hides /usr/share/emacs/29.4/lisp/org/org-list
/usr/share/emacs/site-lisp/org-mode/ol-gnus hides /usr/share/emacs/29.4/lisp/org/ol-gnus
/usr/share/emacs/site-lisp/org-mode/org-fold-core hides /usr/share/emacs/29.4/lisp/org/org-fold-core
/usr/share/emacs/site-lisp/org-mode/ob-sass hides /usr/share/emacs/29.4/lisp/org/ob-sass
/usr/share/emacs/site-lisp/org-mode/ob-clojure hides /usr/share/emacs/29.4/lisp/org/ob-clojure
/usr/share/emacs/site-lisp/org-mode/ob-tangle hides /usr/share/emacs/29.4/lisp/org/ob-tangle
/usr/share/emacs/site-lisp/org-mode/ox-icalendar hides /usr/share/emacs/29.4/lisp/org/ox-icalendar
/usr/share/emacs/site-lisp/org-mode/ob-latex hides /usr/share/emacs/29.4/lisp/org/ob-latex
/usr/share/emacs/site-lisp/org-mode/ob-sql hides /usr/share/emacs/29.4/lisp/org/ob-sql
/usr/share/emacs/site-lisp/org-mode/ob-julia hides /usr/share/emacs/29.4/lisp/org/ob-julia
/usr/share/emacs/site-lisp/org-mode/org-fold hides /usr/share/emacs/29.4/lisp/org/org-fold
/usr/share/emacs/site-lisp/org-mode/org-macs hides /usr/share/emacs/29.4/lisp/org/org-macs
/usr/share/emacs/site-lisp/org-mode/ol-man hides /usr/share/emacs/29.4/lisp/org/ol-man
/usr/share/emacs/site-lisp/org-mode/ob-plantuml hides /usr/share/emacs/29.4/lisp/org/ob-plantuml
/usr/share/emacs/site-lisp/org-mode/ob-calc hides /usr/share/emacs/29.4/lisp/org/ob-calc
/usr/share/emacs/site-lisp/org-mode/ol hides /usr/share/emacs/29.4/lisp/org/ol
/usr/share/emacs/site-lisp/org-mode/ob-groovy hides /usr/share/emacs/29.4/lisp/org/ob-groovy
/usr/share/emacs/site-lisp/org-mode/org hides /usr/share/emacs/29.4/lisp/org/org
/usr/share/emacs/site-lisp/org-mode/ol-info hides /usr/share/emacs/29.4/lisp/org/ol-info
/usr/share/emacs/site-lisp/org-mode/ob-shell hides /usr/share/emacs/29.4/lisp/org/ob-shell
/usr/share/emacs/site-lisp/org-mode/ox-odt hides /usr/share/emacs/29.4/lisp/org/ox-odt
/usr/share/emacs/site-lisp/org-mode/ob-ditaa hides /usr/share/emacs/29.4/lisp/org/ob-ditaa
/usr/share/emacs/site-lisp/org-mode/ob-js hides /usr/share/emacs/29.4/lisp/org/ob-js
/usr/share/emacs/site-lisp/org-mode/ob-eshell hides /usr/share/emacs/29.4/lisp/org/ob-eshell
/usr/share/emacs/site-lisp/org-mode/ox-man hides /usr/share/emacs/29.4/lisp/org/ox-man
/usr/share/emacs/site-lisp/org-mode/ol-eww hides /usr/share/emacs/29.4/lisp/org/ol-eww
/usr/share/emacs/site-lisp/org-mode/ox-ascii hides /usr/share/emacs/29.4/lisp/org/ox-ascii
/usr/share/emacs/site-lisp/org-mode/oc-csl hides /usr/share/emacs/29.4/lisp/org/oc-csl
/usr/share/emacs/site-lisp/org-mode/ob-comint hides /usr/share/emacs/29.4/lisp/org/ob-comint
/usr/share/emacs/site-lisp/org-mode/org-persist hides /usr/share/emacs/29.4/lisp/org/org-persist
/usr/share/emacs/site-lisp/org-mode/org-faces hides /usr/share/emacs/29.4/lisp/org/org-faces
/usr/share/emacs/site-lisp/org-mode/ox-org hides /usr/share/emacs/29.4/lisp/org/ox-org
/usr/share/emacs/site-lisp/org-mode/ob-sqlite hides /usr/share/emacs/29.4/lisp/org/ob-sqlite
/usr/share/emacs/site-lisp/org-mode/org-capture hides /usr/share/emacs/29.4/lisp/org/org-capture
/usr/share/emacs/site-lisp/org-mode/org-mobile hides /usr/share/emacs/29.4/lisp/org/org-mobile
/usr/share/emacs/site-lisp/org-mode/ob-forth hides /usr/share/emacs/29.4/lisp/org/ob-forth
/usr/share/emacs/site-lisp/org-mode/org-plot hides /usr/share/emacs/29.4/lisp/org/org-plot
/usr/share/emacs/site-lisp/org-mode/ob-lilypond hides /usr/share/emacs/29.4/lisp/org/ob-lilypond
/usr/share/emacs/site-lisp/org-mode/org-ctags hides /usr/share/emacs/29.4/lisp/org/org-ctags
/usr/share/emacs/site-lisp/org-mode/ol-mhe hides /usr/share/emacs/29.4/lisp/org/ol-mhe
/usr/share/emacs/site-lisp/org-mode/ol-eshell hides /usr/share/emacs/29.4/lisp/org/ol-eshell
/usr/share/emacs/site-lisp/org-mode/ob-scheme hides /usr/share/emacs/29.4/lisp/org/ob-scheme
/usr/share/emacs/site-lisp/org-mode/ob-ocaml hides /usr/share/emacs/29.4/lisp/org/ob-ocaml
/usr/share/emacs/site-lisp/org-mode/ob-lua hides /usr/share/emacs/29.4/lisp/org/ob-lua
/usr/share/emacs/site-lisp/org-mode/org-attach hides /usr/share/emacs/29.4/lisp/org/org-attach
/usr/share/emacs/site-lisp/org-mode/org-footnote hides /usr/share/emacs/29.4/lisp/org/org-footnote
/usr/share/emacs/site-lisp/org-mode/ob-fortran hides /usr/share/emacs/29.4/lisp/org/ob-fortran
/usr/share/emacs/site-lisp/org-mode/ob-perl hides /usr/share/emacs/29.4/lisp/org/ob-perl
/usr/share/emacs/site-lisp/org-mode/ob-awk hides /usr/share/emacs/29.4/lisp/org/ob-awk
/usr/share/emacs/site-lisp/org-mode/oc-natbib hides /usr/share/emacs/29.4/lisp/org/oc-natbib
/usr/share/emacs/site-lisp/org-mode/ob-exp hides /usr/share/emacs/29.4/lisp/org/ob-exp
/usr/share/emacs/site-lisp/org-mode/ob-dot hides /usr/share/emacs/29.4/lisp/org/ob-dot
/usr/share/emacs/site-lisp/org-mode/ob-eval hides /usr/share/emacs/29.4/lisp/org/ob-eval
/usr/share/emacs/site-lisp/org-mode/ob-haskell hides /usr/share/emacs/29.4/lisp/org/ob-haskell
/usr/share/emacs/site-lisp/org-mode/ob-gnuplot hides /usr/share/emacs/29.4/lisp/org/ob-gnuplot
/usr/share/emacs/site-lisp/org-mode/ox-publish hides /usr/share/emacs/29.4/lisp/org/ox-publish
/usr/share/emacs/site-lisp/org-mode/org-indent hides /usr/share/emacs/29.4/lisp/org/org-indent
/usr/share/emacs/site-lisp/org-mode/org-refile hides /usr/share/emacs/29.4/lisp/org/org-refile
/usr/share/emacs/site-lisp/org-mode/ox-html hides /usr/share/emacs/29.4/lisp/org/ox-html
/usr/share/emacs/site-lisp/org-mode/ob-ruby hides /usr/share/emacs/29.4/lisp/org/ob-ruby
/usr/share/emacs/site-lisp/org-mode/ob-makefile hides /usr/share/emacs/29.4/lisp/org/ob-makefile
/usr/share/emacs/site-lisp/org-mode/ob-css hides /usr/share/emacs/29.4/lisp/org/ob-css
/usr/share/emacs/site-lisp/org-mode/org-keys hides /usr/share/emacs/29.4/lisp/org/org-keys
/usr/share/emacs/site-lisp/org-mode/ob-lob hides /usr/share/emacs/29.4/lisp/org/ob-lob
/usr/share/emacs/site-lisp/org-mode/org-entities hides /usr/share/emacs/29.4/lisp/org/org-entities
/usr/share/emacs/site-lisp/org-mode/org-agenda hides /usr/share/emacs/29.4/lisp/org/org-agenda
/usr/share/emacs/site-lisp/org-mode/org-table hides /usr/share/emacs/29.4/lisp/org/org-table
/usr/share/emacs/site-lisp/org-mode/org-tempo hides /usr/share/emacs/29.4/lisp/org/org-tempo
/usr/share/emacs/site-lisp/org-mode/ob-C hides /usr/share/emacs/29.4/lisp/org/ob-C
/usr/share/emacs/site-lisp/org-mode/ox-beamer hides /usr/share/emacs/29.4/lisp/org/ox-beamer
/usr/share/emacs/site-lisp/org-mode/org-datetree hides /usr/share/emacs/29.4/lisp/org/org-datetree
/usr/share/emacs/site-lisp/org-mode/ob-core hides /usr/share/emacs/29.4/lisp/org/ob-core
/usr/share/emacs/site-lisp/org-mode/org-src hides /usr/share/emacs/29.4/lisp/org/org-src
/usr/share/emacs/site-lisp/org-mode/ob-R hides /usr/share/emacs/29.4/lisp/org/ob-R
/usr/share/emacs/site-lisp/org-mode/org-id hides /usr/share/emacs/29.4/lisp/org/org-id
/usr/share/emacs/site-lisp/org-mode/org-protocol hides /usr/share/emacs/29.4/lisp/org/org-protocol
/usr/share/emacs/site-lisp/org-mode/ol-bbdb hides /usr/share/emacs/29.4/lisp/org/ol-bbdb
/usr/share/emacs/site-lisp/org-mode/org-clock hides /usr/share/emacs/29.4/lisp/org/org-clock
/usr/share/emacs/site-lisp/org-mode/org-goto hides /usr/share/emacs/29.4/lisp/org/org-goto
/usr/share/emacs/site-lisp/org-mode/oc-basic hides /usr/share/emacs/29.4/lisp/org/oc-basic
/usr/share/emacs/site-lisp/org-mode/ol-doi hides /usr/share/emacs/29.4/lisp/org/ol-doi
/usr/share/emacs/site-lisp/org-mode/ol-bibtex hides /usr/share/emacs/29.4/lisp/org/ol-bibtex
/usr/share/emacs/site-lisp/org-mode/ox-latex hides /usr/share/emacs/29.4/lisp/org/ox-latex
/usr/share/emacs/site-lisp/org-mode/ob-lisp hides /usr/share/emacs/29.4/lisp/org/ob-lisp
/usr/share/emacs/site-lisp/org-mode/org-cycle hides /usr/share/emacs/29.4/lisp/org/org-cycle
/usr/share/emacs/site-lisp/org-mode/ox-md hides /usr/share/emacs/29.4/lisp/org/ox-md
/usr/share/emacs/site-lisp/org-mode/ob-table hides /usr/share/emacs/29.4/lisp/org/ob-table
/usr/share/emacs/site-lisp/org-mode/oc-biblatex hides /usr/share/emacs/29.4/lisp/org/oc-biblatex
/usr/share/emacs/site-lisp/org-mode/ob-sed hides /usr/share/emacs/29.4/lisp/org/ob-sed
/usr/share/emacs/site-lisp/org-mode/ob-java hides /usr/share/emacs/29.4/lisp/org/ob-java
/usr/share/emacs/site-lisp/org-mode/ox hides /usr/share/emacs/29.4/lisp/org/ox
/usr/share/emacs/site-lisp/org-mode/org-inlinetask hides /usr/share/emacs/29.4/lisp/org/org-inlinetask
/usr/share/emacs/site-lisp/org-mode/oc-bibtex hides /usr/share/emacs/29.4/lisp/org/oc-bibtex
/usr/share/emacs/site-lisp/org-mode/org-version hides /usr/share/emacs/29.4/lisp/org/org-version
/usr/share/emacs/site-lisp/org-mode/org-pcomplete hides /usr/share/emacs/29.4/lisp/org/org-pcomplete
/usr/share/emacs/site-lisp/org-mode/oc hides /usr/share/emacs/29.4/lisp/org/oc
/usr/share/emacs/site-lisp/org-mode/ob hides /usr/share/emacs/29.4/lisp/org/ob
/usr/share/emacs/site-lisp/org-mode/org-mouse hides /usr/share/emacs/29.4/lisp/org/org-mouse
/usr/share/emacs/site-lisp/org-mode/ol-docview hides /usr/share/emacs/29.4/lisp/org/ol-docview
/usr/share/emacs/site-lisp/org-mode/org-attach-git hides /usr/share/emacs/29.4/lisp/org/org-attach-git
/usr/share/emacs/site-lisp/org-mode/org-archive hides /usr/share/emacs/29.4/lisp/org/org-archive
/usr/share/emacs/site-lisp/org-mode/ox-koma-letter hides /usr/share/emacs/29.4/lisp/org/ox-koma-letter
/usr/share/emacs/site-lisp/org-mode/ol-irc hides /usr/share/emacs/29.4/lisp/org/ol-irc
/usr/share/emacs/site-lisp/org-mode/org-compat hides /usr/share/emacs/29.4/lisp/org/org-compat
/usr/share/emacs/site-lisp/org-mode/ob-ref hides /usr/share/emacs/29.4/lisp/org/ob-ref

Features:
(shadow sort mail-extr emacsbug message yank-media rfc822 mml mml-sec
epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums two-column cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine repeat wdired novice rect tabify cl-print
misearch multi-isearch mule-util conf-mode dired-aux sql view autorevert
vc-git vc-dispatcher company-oddmuse company-keywords company-etags
company-gtags company-dabbrev-code company-dabbrev company-files
company-clang company-template company-cmake company-bbdb yasnippet
highlight-indentation flymake-proc flymake company-capf company mh-e
mh-buffers mh-loaddefs ox-pandoc warnings ht ox-org ox-odt rng-loc
rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns
nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table ox-ascii
ox-publish ox org-attach ledger-mode ledger-check ledger-texi
ledger-test ledger-sort ledger-report ledger-reconcile ledger-occur
ledger-fonts ledger-fontify ledger-state ledger-complete ledger-schedule
ledger-init ledger-xact ledger-post ledger-exec ledger-navigate
ledger-context ledger-commodities ledger-regex helpful cc-langs cc-vars
cc-defs imenu trace info-look f help-fns radix-tree elisp-refs dash elpy
advice 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 s elpy-refactor diff-mode ido hideshow files-x etags
fileloop xref cus-edit cus-load windmove time term disp-table shell
ehelp t-mouse python project compat compat-30 pcase grep compile
org-tempo org-agenda org-element org-persist org-id org-element-ast
inline avl-tree generator org-refile org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-pcomplete pcomplete org-list org-footnote
org-faces org-entities noutline outline icons ob-emacs-lisp org-table ol
org-loaddefs cal-menu calendar cal-loaddefs tempo org-src sh-script rx
smie treesit executable org-keys oc ob-comint comint ansi-osc ansi-color
ring ob-core org-cycle org-fold org-fold-core org-compat ob-eval
org-version org-macs format-spec edmacro kmacro eww xdg url-queue
thingatpt shr pixel-fill kinsoku url-file svg xml dom browse-url url
url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util url-parse auth-source eieio
eieio-core password-cache json map byte-opt url-vars mailcap puny mm-url
gnus nnheader gnus-util time-date subr-x mail-utils range wid-edit
mm-util mail-prsvr mule-cmds quail info face-remap generic edebug debug
backtrace find-func doc-view filenotify jka-compr image-mode exif dired
dired-loaddefs desktop frameset dabbrev bookmark text-property-search pp
autoinsert cl-macs gv cl-extra help-mode cl-seq use-package
use-package-ensure use-package-delight use-package-diminish diminish
use-package-bind-key bind-key easy-mmode use-package-core cl-loaddefs
cl-lib bytecomp byte-compile site-gentoo 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 inotify dynamic-setting
font-render-setting move-toolbar gtk x-toolkit xinput2 x multi-tty
make-network-process emacs)

Memory information:
((conses 16 790036 74199)
 (symbols 48 47659 0)
 (strings 32 150178 6217)
 (string-bytes 1 4797419)
 (vectors 16 82113)
 (vector-slots 8 1601611 135056)
 (floats 8 335 1128)
 (intervals 56 71042 956)
 (buffers 976 133))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#73951; Package emacs. (Tue, 22 Oct 2024 17:42:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: toomas <at> rosin.ee
Cc: 73951 <at> debbugs.gnu.org
Subject: Re: bug#73951: 29.4;
 'what-cursor-position' reports SPC instead of TAB in term-mode
Date: Tue, 22 Oct 2024 20:40:57 +0300
> From: toomas <at> rosin.ee
> Date: Tue, 22 Oct 2024 19:35:42 +0300
> 
> 
> How to reproduce on my system:
> 
> Start: emacs -Q
> Type: M-x term RET
> On Emacs prompt "Run program: /bin/bash", type: RET
> The *terminal* buffer appears.
> On Bash prompt, type: echo 'a TAB b' RET
> Bash prints: "a	b" (a TAB b), and displays new prompt.

I cannot reproduce this because when I press TAB, I get a bell,
i.e. TAB is not printed.  Which is consistent with what TAB produces
outside Emacs, when I type it at Bash prompt: Bash attempts to perform
completion on what I typed.

So I guess your recipe is missing something, or maybe your Bash init
file customizes Bash in some way.

If someone can reproduce this, please tell if I'm missing something
here.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#73951; Package emacs. (Wed, 23 Oct 2024 14:01:02 GMT) Full text and rfc822 format available.

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

From: Toomas Rosin <toomas <at> rosin.ee>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 73951 <at> debbugs.gnu.org
Subject: Re: bug#73951: 29.4;
 'what-cursor-position' reports SPC instead of TAB in term-mode
Date: Wed, 23 Oct 2024 17:00:08 +0300
Eli Zaretskii <eliz <at> gnu.org> wrote:

> > Start: emacs -Q
> > Type: M-x term RET
> > On Emacs prompt "Run program: /bin/bash", type: RET
> > The *terminal* buffer appears.
> > On Bash prompt, type: echo 'a TAB b' RET

Sorry, I forgot C-v: i.e., type: echo 'a C-v TAB b' RET

> > Bash prints: "a	b" (a TAB b), and displays new prompt.
>
> I cannot reproduce this because when I press TAB, I get a bell,
> i.e. TAB is not printed.  Which is consistent with what TAB produces
> outside Emacs, when I type it at Bash prompt: Bash attempts to perform
> completion on what I typed.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#73951; Package emacs. (Wed, 23 Oct 2024 17:48:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Toomas Rosin <toomas <at> rosin.ee>
Cc: 73951 <at> debbugs.gnu.org
Subject: Re: bug#73951: 29.4;
 'what-cursor-position' reports SPC instead of TAB in term-mode
Date: Wed, 23 Oct 2024 20:47:17 +0300
> From: Toomas Rosin <toomas <at> rosin.ee>
> cc: 73951 <at> debbugs.gnu.org
> Comments: In-reply-to Eli Zaretskii <eliz <at> gnu.org>
>    message dated "Tue, 22 Oct 2024 20:40:57 +0300."
> Date: Wed, 23 Oct 2024 17:00:08 +0300
> 
> Eli Zaretskii <eliz <at> gnu.org> wrote:
> 
> > > Start: emacs -Q
> > > Type: M-x term RET
> > > On Emacs prompt "Run program: /bin/bash", type: RET
> > > The *terminal* buffer appears.
> > > On Bash prompt, type: echo 'a TAB b' RET
> 
> Sorry, I forgot C-v: i.e., type: echo 'a C-v TAB b' RET

OK, so why is it a problem that Emacs uses SPC character to emulate a
TAB?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#73951; Package emacs. (Sun, 03 Nov 2024 15:51:02 GMT) Full text and rfc822 format available.

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

From: Toomas Rosin <toomas <at> rosin.ee>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 73951 <at> debbugs.gnu.org
Subject: Re: bug#73951: 29.4;
 'what-cursor-position' reports SPC instead of TAB in term-mode
Date: Sun, 03 Nov 2024 17:50:37 +0200
Eli Zaretskii <eliz <at> gnu.org> wrote:

> OK, so why is it a problem that Emacs uses SPC character to emulate a
> TAB?

It is confusing when you don't happen to know about it.

I did not know about it before writing the OP.  I had this function definition in a shell script (where "<TAB>" denotes the tab character):

    tawk () { awk -F '<TAB>' -v OFS='<TAB>' "$@"; }  # run awk on tab delimited files

When I yanked this definition from the script to the "*terminal*" buffer and tried to use it, I happened to get unexpected results (which, as it turned out later, were in fact not connected to this definition), and the first thing I suspected was (quite naturally imho) that something was wrong with the tab characters in the definition of the function.  To check the definition, I ran "type tawk" in the *terminal* buffer, switched to line mode (C-c C-j), moved the cursor to the tab chars, ran `what-cursor-position' — and indeed, it told me that there were spaces there instead of tabs!  So I was confirmed in my barking up the wrong tree.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#73951; Package emacs. (Sun, 03 Nov 2024 16:40:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Toomas Rosin <toomas <at> rosin.ee>
Cc: 73951 <at> debbugs.gnu.org
Subject: Re: bug#73951: 29.4;
 'what-cursor-position' reports SPC instead of TAB in term-mode
Date: Sun, 03 Nov 2024 18:39:13 +0200
> From: Toomas Rosin <toomas <at> rosin.ee>
> cc: 73951 <at> debbugs.gnu.org
> Comments: In-reply-to Eli Zaretskii <eliz <at> gnu.org>
>    message dated "Wed, 23 Oct 2024 20:47:17 +0300."
> Date: Sun, 03 Nov 2024 17:50:37 +0200
> 
> Eli Zaretskii <eliz <at> gnu.org> wrote:
> 
> > OK, so why is it a problem that Emacs uses SPC character to emulate a
> > TAB?
> 
> It is confusing when you don't happen to know about it.
> 
> I did not know about it before writing the OP.  I had this function definition in a shell script (where "<TAB>" denotes the tab character):
> 
>     tawk () { awk -F '<TAB>' -v OFS='<TAB>' "$@"; }  # run awk on tab delimited files
> 
> When I yanked this definition from the script to the "*terminal*" buffer and tried to use it, I happened to get unexpected results (which, as it turned out later, were in fact not connected to this definition), and the first thing I suspected was (quite naturally imho) that something was wrong with the tab characters in the definition of the function.  To check the definition, I ran "type tawk" in the *terminal* buffer, switched to line mode (C-c C-j), moved the cursor to the tab chars, ran `what-cursor-position' — and indeed, it told me that there were spaces there instead of tabs!  So I was confirmed in my barking up the wrong tree.

Did you try setting indent-tabs-mode to a non-nil value?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#73951; Package emacs. (Mon, 04 Nov 2024 19:38:01 GMT) Full text and rfc822 format available.

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

From: Toomas Rosin <toomas <at> rosin.ee>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 73951 <at> debbugs.gnu.org
Subject: Re: bug#73951: 29.4;
 'what-cursor-position' reports SPC instead of TAB in term-mode
Date: Mon, 04 Nov 2024 21:37:26 +0200
Eli Zaretskii <eliz <at> gnu.org> wrote:

> Did you try setting indent-tabs-mode to a non-nil value?

How could I not have thought of this!  But yes, when I set `indent-tabs-mode' to `t' *before* pasting the function definition, and then run "type tawk" in terminal buffer and move point in line mode onto the tab character, `C-x =' says correctly that point is on TAB.

I had `indent-tabs-mode' set to `nil' globally in my init.el; now I see that it is a good idea to leave `indent-tabs-mode' to `t' in terminal mode.

I have no more questions.  Thank you.

T.




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Mon, 04 Nov 2024 19:53:01 GMT) Full text and rfc822 format available.

Notification sent to toomas <at> rosin.ee:
bug acknowledged by developer. (Mon, 04 Nov 2024 19:53:02 GMT) Full text and rfc822 format available.

Message #28 received at 73951-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Toomas Rosin <toomas <at> rosin.ee>
Cc: 73951-done <at> debbugs.gnu.org
Subject: Re: bug#73951: 29.4;
 'what-cursor-position' reports SPC instead of TAB in term-mode
Date: Mon, 04 Nov 2024 21:52:36 +0200
> From: Toomas Rosin <toomas <at> rosin.ee>
> cc: 73951 <at> debbugs.gnu.org
> Comments: In-reply-to Eli Zaretskii <eliz <at> gnu.org>
>    message dated "Sun, 03 Nov 2024 18:39:13 +0200."
> Date: Mon, 04 Nov 2024 21:37:26 +0200
> 
> Eli Zaretskii <eliz <at> gnu.org> wrote:
> 
> > Did you try setting indent-tabs-mode to a non-nil value?
> 
> How could I not have thought of this!  But yes, when I set `indent-tabs-mode' to `t' *before* pasting the function definition, and then run "type tawk" in terminal buffer and move point in line mode onto the tab character, `C-x =' says correctly that point is on TAB.
> 
> I had `indent-tabs-mode' set to `nil' globally in my init.el; now I see that it is a good idea to leave `indent-tabs-mode' to `t' in terminal mode.

"M-x term" intentionally resets indent-tabs-mode to nil, with this
comment:

    ;; we do not want indent to sneak in any tabs

So if setting indent-tabs-mode non-nil suits you better, try to be on
the lookout for whatever problems the above comment might hint at; I
don't really understand what it wants to say (but then I don't use
"M-x term").

> I have no more questions.  Thank you.

Thanks, I will therefore close this bug.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 03 Dec 2024 12:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 200 days ago.

Previous Next


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