unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#51877: 27.2; term: error in process filter
@ 2021-11-15 19:10 Christopher Howard
  2021-11-15 19:14 ` Christopher Howard
  2021-11-15 19:19 ` Eli Zaretskii
  0 siblings, 2 replies; 18+ messages in thread
From: Christopher Howard @ 2021-11-15 19:10 UTC (permalink / raw)
  To: 51877

Conditions: Computer with a /dev/ttyUSB0 character source which
generates
garbage output characters in the form of a long list of \371 bytes. In
my case, was connected via sterm to an ESP8266 microcontroller.

1) M-x term (leave it in char mode)
2) sterm -n /dev/ttyUSB0 -s 115200
3) cause the garbage output to be generated
4) while the cursor is still at the end of the garbage line, try to
type
in a normal character.

The character will get sent to sterm, but the echoed back character
will
not appear in the emacs terminal, and an error will appear containing
the character (see below).

Pressing enter to begin a new line will clear the error.

Perhaps this error could be duplicated by those not having my
microcontroller setup, but filling a file with some \371 or other
garbage characters, and cat'ing that file into the emacs terminal. The
issue is that garbage characters somehow confuses the process filter,
whatever that is.


In GNU Emacs 27.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.24,
cairo version 1.16.0)
Windowing system distributor 'The X.Org Foundation', version
11.0.12011000
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Quit
error in process filter: term-emulate-terminal: Args out of range: "F",
0, -11
error in process filter: Args out of range: "F", 0, -11
error in process filter: term-emulate-terminal: Args out of range:
"^[x", 0, -11
error in process filter: Args out of range: "^[x", 0, -11
Quit [2 times]
Making completion list... [2 times]

Configured using:
 'configure
 CONFIG_SHELL=/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-
5.0.16/bin/bash
 SHELL=/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-
5.0.16/bin/bash
 --prefix=/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-27.2
 --enable-fast-install --with-modules --with-cairo
 --disable-build-details'

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

Important settings:
  value of $EMACSLOADPATH: /home/christopher/.guix-
profile/share/emacs/site-
lisp:/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Term

Minor modes in effect:
  tooltip-mode: t
  global-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:
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-agenda hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-agenda
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ol-bbdb hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ol-bbdb
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-lisp hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-lisp
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-haskell hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-haskell
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-attach hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-attach
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-dot hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-dot
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-scheme hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-scheme
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ol-irc hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ol-irc
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-emacs-lisp hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-emacs-lisp
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-processing hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-processing
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-ocaml hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-ocaml
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-sql hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-sql
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-id hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-id
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-refile hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-refile
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-ctags hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-ctags
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-lilypond hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-lilypond
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-core hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-core
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-comint hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-comint
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-awk hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-awk
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-element hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-element
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-plantuml hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-plantuml
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-R hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-R
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-js hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-js
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-mobile hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-mobile
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-entities hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-entities
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ol-eshell hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ol-eshell
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ol-w3m hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ol-w3m
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-archive hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-archive
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ox-org hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ox-org
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-faces hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-faces
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-lua hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-lua
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-maxima hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-maxima
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-css hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-css
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-python hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-python
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-C hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-C
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-tempo hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-tempo
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-keys hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-keys
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ol-mhe hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ol-mhe
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-fortran hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-fortran
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-lint hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-lint
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ox-html hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ox-html
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-attach-git hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-attach-git
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-indent hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-indent
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ox-beamer hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ox-beamer
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-java hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-java
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-macs hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-macs
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-pcomplete hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-pcomplete
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-clock hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-clock
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-screen hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-screen
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-num hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-num
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-list hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-list
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ol hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ol
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ox-man hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ox-man
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-ditaa hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-ditaa
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-makefile hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-makefile
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ol-eww hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ol-eww
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-timer hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-timer
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-table hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-table
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ox-latex hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ox-latex
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-perl hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-perl
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ox-ascii hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ox-ascii
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-mouse hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-mouse
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-goto hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-goto
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-inlinetask hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-inlinetask
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-matlab hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-matlab
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ox-texinfo hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ox-texinfo
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ol-gnus hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ol-gnus
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-capture hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-capture
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-forth hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-forth
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-crypt hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-crypt
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-octave hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-octave
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ol-bibtex hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ol-bibtex
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ox-publish hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ox-publish
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-sed hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-sed
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-src hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-src
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-duration hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-duration
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-feed hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-feed
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-sass hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-sass
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-plot hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-plot
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-exp hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-exp
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-latex hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-latex
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-eval hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-eval
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-colview hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-colview
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ox-icalendar hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ox-icalendar
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-version hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-version
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ol-rmail hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ol-rmail
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-calc hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-calc
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-clojure hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-clojure
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-datetree hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-datetree
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-sqlite hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-sqlite
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-lob hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-lob
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-ref hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-ref
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-footnote hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-footnote
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ox-md hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ox-md
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-tangle hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-tangle
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-compat hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-compat
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ox hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ox
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-org hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-org
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-gnuplot hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-gnuplot
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ol-info hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ol-info
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-loaddefs hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-loaddefs
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-shell hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-shell
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-protocol hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-protocol
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-macro hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-macro
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-habit hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-habit
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ol-docview hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ol-docview
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-ruby hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-ruby
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ox-odt hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ox-odt
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-groovy hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-groovy
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/org-table hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/org-table
/gnu/store/qhqhlclxnqsxazs88wrmqz2vi5abcgm0-emacs-org-
9.5/share/emacs/site-lisp/org-9.5/ob-eshell hides
/gnu/store/ymvcv4shwva26r3k9mxh5d38hsbrygpb-emacs-
27.2/share/emacs/27.2/lisp/org/ob-eshell

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml mml-sec password-cache epa derived epg epg-
config
gnus-util rmail rmail-loaddefs text-property-search time-date subr-x
seq
byte-opt gv bytecomp byte-compile cconv mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs cl-lib
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils term
disp-table easymenu comint ansi-color ehelp ring 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 cairo move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 50626 7205)
 (symbols 48 6693 1)
 (strings 32 17512 1398)
 (string-bytes 1 618078)
 (vectors 16 10663)
 (vector-slots 8 138277 11008)
 (floats 8 20 39)
 (intervals 56 352 7)
 (buffers 1000 13))
-- 
Christopher Howard
Gemini capsule: gemini://gem.librehacker.com
Web viewer: https://portal.mozz.us/gemini/gem.librehacker.com








^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2021-11-15 19:10 bug#51877: 27.2; term: error in process filter Christopher Howard
@ 2021-11-15 19:14 ` Christopher Howard
  2021-11-15 19:19 ` Eli Zaretskii
  1 sibling, 0 replies; 18+ messages in thread
From: Christopher Howard @ 2021-11-15 19:14 UTC (permalink / raw)
  To: 51877

I simply wanted to add that the garbage character was \377, not \371,
in case that makes a difference.






^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2021-11-15 19:10 bug#51877: 27.2; term: error in process filter Christopher Howard
  2021-11-15 19:14 ` Christopher Howard
@ 2021-11-15 19:19 ` Eli Zaretskii
  2021-11-15 19:33   ` Christopher Howard
  2021-11-15 22:36   ` Christopher Howard
  1 sibling, 2 replies; 18+ messages in thread
From: Eli Zaretskii @ 2021-11-15 19:19 UTC (permalink / raw)
  To: Christopher Howard; +Cc: 51877

> From: Christopher Howard <christopher@librehacker.com>
> Date: Mon, 15 Nov 2021 10:10:38 -0900
> 
> Conditions: Computer with a /dev/ttyUSB0 character source which
> generates
> garbage output characters in the form of a long list of \371 bytes. In
> my case, was connected via sterm to an ESP8266 microcontroller.
> 
> 1) M-x term (leave it in char mode)
> 2) sterm -n /dev/ttyUSB0 -s 115200
> 3) cause the garbage output to be generated
> 4) while the cursor is still at the end of the garbage line, try to
> type
> in a normal character.
> 
> The character will get sent to sterm, but the echoed back character
> will
> not appear in the emacs terminal, and an error will appear containing
> the character (see below).
> 
> Pressing enter to begin a new line will clear the error.
> 
> Perhaps this error could be duplicated by those not having my
> microcontroller setup, but filling a file with some \371 or other
> garbage characters, and cat'ing that file into the emacs terminal. The
> issue is that garbage characters somehow confuses the process filter,
> whatever that is.

What is the value of process-coding-system in this case?  If a process
generates binary garbage, its output should be decoded as raw-text,
whereas the Emacs defaults are set for a program which sends
human-readable text.  So Emacs tries to decode your garbage as if it
were UTF-8, and chokes.

IOW, I think this is a cockpit error.





^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2021-11-15 19:19 ` Eli Zaretskii
@ 2021-11-15 19:33   ` Christopher Howard
  2021-11-15 22:36   ` Christopher Howard
  1 sibling, 0 replies; 18+ messages in thread
From: Christopher Howard @ 2021-11-15 19:33 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 51877

Thank you, I used `set-terminal-coding-system' to set it to raw mode,
and the error went away.

I am used to Gnome-terminal, where garbage unicode is outputted as the
unicode replacement character (0xfffd, the diamond with the question
mark) and there are no other errors reported, or disruptions in the
output. I am not sure what is best for Emacs, but I should think that
at least some kind of exception handling or better error message would
be appropriate.






^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2021-11-15 19:19 ` Eli Zaretskii
  2021-11-15 19:33   ` Christopher Howard
@ 2021-11-15 22:36   ` Christopher Howard
  2021-11-16  3:23     ` Eli Zaretskii
  1 sibling, 1 reply; 18+ messages in thread
From: Christopher Howard @ 2021-11-15 22:36 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 51877

With further testing, I see that setting the terminal encoding to raw-
text does not always fix the problem - often I still get the error.






^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2021-11-15 22:36   ` Christopher Howard
@ 2021-11-16  3:23     ` Eli Zaretskii
  2022-01-15 13:12       ` Lars Ingebrigtsen
  0 siblings, 1 reply; 18+ messages in thread
From: Eli Zaretskii @ 2021-11-16  3:23 UTC (permalink / raw)
  To: Christopher Howard; +Cc: 51877

> From: Christopher Howard <christopher@librehacker.com>
> Cc: 51877@debbugs.gnu.org
> Date: Mon, 15 Nov 2021 13:36:52 -0900
> 
> With further testing, I see that setting the terminal encoding to raw-
> text does not always fix the problem - often I still get the error.

Then please set debug-on-error to a non-nil value and post the
backtrace from such errors.

Thanks.





^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2021-11-16  3:23     ` Eli Zaretskii
@ 2022-01-15 13:12       ` Lars Ingebrigtsen
  2022-01-16  6:14         ` Christopher Howard
  2022-01-17 19:30         ` Christopher Howard
  0 siblings, 2 replies; 18+ messages in thread
From: Lars Ingebrigtsen @ 2022-01-15 13:12 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Christopher Howard, 51877

Eli Zaretskii <eliz@gnu.org> writes:

>> With further testing, I see that setting the terminal encoding to raw-
>> text does not always fix the problem - often I still get the error.
>
> Then please set debug-on-error to a non-nil value and post the
> backtrace from such errors.

This was two months ago -- Christopher, have you tried this?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2022-01-15 13:12       ` Lars Ingebrigtsen
@ 2022-01-16  6:14         ` Christopher Howard
  2022-01-17 19:30         ` Christopher Howard
  1 sibling, 0 replies; 18+ messages in thread
From: Christopher Howard @ 2022-01-16  6:14 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 51877

I can't remember now, to be honest, but can try it on Monday.





^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2022-01-15 13:12       ` Lars Ingebrigtsen
  2022-01-16  6:14         ` Christopher Howard
@ 2022-01-17 19:30         ` Christopher Howard
  2022-01-20  9:39           ` Lars Ingebrigtsen
  1 sibling, 1 reply; 18+ messages in thread
From: Christopher Howard @ 2022-01-17 19:30 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 51877

Here is the debugger output:

```
Debugger entered--Lisp error: (args-out-of-range "l \3\220\33\22no\4\216s$" 0 -52)
  substring("l \3\220\33\22no\4\216s$" 0 -52)
  term-emulate-terminal(#<process terminal> "l\0l\234\276\217\2\214#\3\342n\4\f\f\204\fd\344\f#|\217\202\237\354\22\223r\222#\204\fc\204\373on\276\0$no\334\342\344\4b\34p...")
```

This is with the encoding set to raw-text and with the terminal set to char mode.





^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2022-01-17 19:30         ` Christopher Howard
@ 2022-01-20  9:39           ` Lars Ingebrigtsen
  2022-01-20 17:39             ` Christopher Howard
  0 siblings, 1 reply; 18+ messages in thread
From: Lars Ingebrigtsen @ 2022-01-20  9:39 UTC (permalink / raw)
  To: Christopher Howard; +Cc: 51877

Christopher Howard <christopher@librehacker.com> writes:

> Here is the debugger output:
>
> ```
> Debugger entered--Lisp error: (args-out-of-range "l
> \3\220\33\22no\4\216s$" 0 -52)
>   substring("l \3\220\33\22no\4\216s$" 0 -52)
>   term-emulate-terminal(#<process terminal>
> "l\0l\234\276\217\2\214#\3\342n\4\f\f\204\fd\344\f#|\217\202\237\354\22\223r\222#\204\fc\204\373on\276\0$no\334\342\344\4b\34p...")
> ```
>
> This is with the encoding set to raw-text and with the terminal set to
> char mode.

Thanks.  There have been a number of fixes in this function to handle
ANSI sequences and the like since Emacs 27.2, and it's possible that
this has been fixed as a result, too.  Would it be possible for you to
build the development version of Emacs and check whether this problem is
still present there?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2022-01-20  9:39           ` Lars Ingebrigtsen
@ 2022-01-20 17:39             ` Christopher Howard
  2022-01-20 17:46               ` Lars Ingebrigtsen
  2022-01-20 17:54               ` Eli Zaretskii
  0 siblings, 2 replies; 18+ messages in thread
From: Christopher Howard @ 2022-01-20 17:39 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 51877

The package emacs-next-28.0.50-0.2ea3466 is available in my current checkout of Guix. I seem to get the same results:

```
Debugger entered--Lisp error: (args-out-of-range "$ \2\220\22\33nN\4\216" 0 -42)
  term-emulate-terminal(#<process terminal> "l\0l\234\236|\0\214l\340|\2\f\f\f\204\4l\354\4#|\216\203\3\344\22\262\337|\33b\204\fb\214\362oo\337lNo\234\343\344\f#\34p...")
```

Is that new enough?





^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2022-01-20 17:39             ` Christopher Howard
@ 2022-01-20 17:46               ` Lars Ingebrigtsen
  2022-01-20 17:54               ` Eli Zaretskii
  1 sibling, 0 replies; 18+ messages in thread
From: Lars Ingebrigtsen @ 2022-01-20 17:46 UTC (permalink / raw)
  To: Christopher Howard; +Cc: 51877

Christopher Howard <christopher@librehacker.com> writes:

> The package emacs-next-28.0.50-0.2ea3466 is available in my current
> checkout of Guix. I seem to get the same results:
>
> ```
> Debugger entered--Lisp error: (args-out-of-range "$ \2\220\22\33nN\4\216" 0 -42)
>   term-emulate-terminal(#<process terminal>
> "l\0l\234\236|\0\214l\340|\2\f\f\f\204\4l\354\4#|\216\203\3\344\22\262\337|\33b\204\fb\214\362oo\337lNo\234\343\344\f#\34p...")
> ```
>
> Is that new enough?

Yes, thanks for checking -- then this means that those ANSI-related
fixed in that function didn't fix this issue.  I'll try to reproduce
myself...

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2022-01-20 17:39             ` Christopher Howard
  2022-01-20 17:46               ` Lars Ingebrigtsen
@ 2022-01-20 17:54               ` Eli Zaretskii
  2022-01-20 19:06                 ` Christopher Howard
  1 sibling, 1 reply; 18+ messages in thread
From: Eli Zaretskii @ 2022-01-20 17:54 UTC (permalink / raw)
  To: Christopher Howard; +Cc: larsi, 51877

> Date: Thu, 20 Jan 2022 08:39:47 -0900
> From: Christopher Howard <christopher@librehacker.com>
> Cc: Eli Zaretskii <eliz@gnu.org>, 51877@debbugs.gnu.org
> 
> The package emacs-next-28.0.50-0.2ea3466 is available in my current checkout of Guix. I seem to get the same results:
> 
> ```
> Debugger entered--Lisp error: (args-out-of-range "$ \2\220\22\33nN\4\216" 0 -42)
>   term-emulate-terminal(#<process terminal> "l\0l\234\236|\0\214l\340|\2\f\f\f\204\4l\354\4#|\216\203\3\344\22\262\337|\33b\204\fb\214\362oo\337lNo\234\343\344\f#\34p...")
> ```
> 
> Is that new enough?

No, that is from 1.5 years ago.

Can you tell how you set the encoding to raw-text?  I see that the
process filter function which barfs use locale-coding-system to decode
the process output -- did you change that to use 'raw-text' by
modifying the code of term.el?  If not, what did you do?





^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2022-01-20 17:54               ` Eli Zaretskii
@ 2022-01-20 19:06                 ` Christopher Howard
  2022-01-20 20:02                   ` Eli Zaretskii
  0 siblings, 1 reply; 18+ messages in thread
From: Christopher Howard @ 2022-01-20 19:06 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: larsi, 51877

switch temporarily to line mode (using the mouse menu)
M-x set-terminal-coding-system raw-text





^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2022-01-20 19:06                 ` Christopher Howard
@ 2022-01-20 20:02                   ` Eli Zaretskii
  2022-01-20 22:01                     ` Christopher Howard
  0 siblings, 1 reply; 18+ messages in thread
From: Eli Zaretskii @ 2022-01-20 20:02 UTC (permalink / raw)
  To: Christopher Howard; +Cc: larsi, 51877

> X-Spam-Status: No, score=-1.9 tagged_above=-10 required=5
> 	tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no
> Date: Thu, 20 Jan 2022 10:06:04 -0900
> From: Christopher Howard <christopher@librehacker.com>
> Cc: larsi@gnus.org, 51877@debbugs.gnu.org
> 
> switch temporarily to line mode (using the mouse menu)
> M-x set-terminal-coding-system raw-text

I don't think this would help.  Can you manually modify the function
term-emulate-terminal to use 'raw-text instead of
locale-coding-system, and then re-run the scenario in which you get
these problems?





^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2022-01-20 20:02                   ` Eli Zaretskii
@ 2022-01-20 22:01                     ` Christopher Howard
  2022-01-21  8:04                       ` Eli Zaretskii
  0 siblings, 1 reply; 18+ messages in thread
From: Christopher Howard @ 2022-01-20 22:01 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: larsi, 51877

On Thu, Jan 20, 2022 at 10:02:10PM +0200, Eli Zaretskii wrote:
> I don't think this would help.  Can you manually modify the function
> term-emulate-terminal to use 'raw-text instead of
> locale-coding-system, and then re-run the scenario in which you get
> these problems?

This seems to generate the same result, except with more elaborate debugger output:

```
Debugger entered--Lisp error: (args-out-of-range "l \3\220\0332Nn\f\217" 0 -48)
  substring("l \3\220\0332Nn\f\217" 0 -48)
  (insert (substring decoded-substring 0 (- term-width old-column)))
  (while (> (+ (length decoded-substring) old-column) term-width) (insert (substring decoded-substring 0 (- term-width old-column))) (delete-region (point) (line-end-position)) (term-down 1 t) (term-move-columns (- (term-current-column))) (add-text-properties (1- (point)) (point) '(term-line-wrap t rear-nonsticky t)) (setq decoded-substring (substring decoded-substring (- term-width old-column))) (setq old-column 0))
  (if term-suppress-hard-newline nil (while (> (+ (length decoded-substring) old-column) term-width) (insert (substring decoded-substring 0 (- term-width old-column))) (delete-region (point) (line-end-position)) (term-down 1 t) (term-move-columns (- (term-current-column))) (add-text-properties (1- (point)) (point) '(term-line-wrap t rear-nonsticky t)) (setq decoded-substring (substring decoded-substring (- term-width old-column))) (setq old-column 0)))
  (let ((old-column (term-horizontal-column)) (old-point (point)) columns) (if term-suppress-hard-newline nil (while (> (+ (length decoded-substring) old-column) term-width) (insert (substring decoded-substring 0 (- term-width old-column))) (delete-region (point) (line-end-position)) (term-down 1 t) (term-move-columns (- (term-current-column))) (add-text-properties (1- (point)) (point) '(term-line-wrap t rear-nonsticky t)) (setq decoded-substring (substring decoded-substring (- term-width old-column))) (setq old-column 0))) (insert decoded-substring) (setq term-current-column (current-column) columns (- term-current-column old-column)) (if (not (or (eobp) term-insert-mode)) (progn (let ((pos (point))) (term-move-columns columns) (delete-region pos (point)) (setq term-current-column nil)))) (if term-insert-mode (progn (let ((pos (point))) (end-of-line) (if (> (current-column) term-width) (progn (delete-region (- ... ...) (point)))) (goto-char pos)))) (put-text-property old-point (point) 'font-lock-face term-current-face))
  (progn (if term-do-line-wrapping (progn (term-down 1 t) (term-move-to-column 0) (setq term-do-line-wrapping nil))) (setq decoded-substring (decode-coding-string (substring str i funny) 'raw-text t)) (if (= funny str-length) (progn (let ((partial 0) (count (length decoded-substring))) (while (and (< partial count) (eq (char-charset ...) 'eight-bit)) (setq partial (1+ partial))) (if (> count partial 0) (progn (setq term-terminal-undecoded-bytes (substring decoded-substring ...)) (setq decoded-substring (substring decoded-substring 0 ...)) (setq str-length (- str-length partial)) (setq funny (- funny partial))))))) (let ((old-column (term-horizontal-column)) (old-point (point)) columns) (if term-suppress-hard-newline nil (while (> (+ (length decoded-substring) old-column) term-width) (insert (substring decoded-substring 0 (- term-width old-column))) (delete-region (point) (line-end-position)) (term-down 1 t) (term-move-columns (- (term-current-column))) (add-text-properties (1- (point)) (point) '(term-line-wrap t rear-nonsticky t)) (setq decoded-substring (substring decoded-substring (- term-width old-column))) (setq old-column 0))) (insert decoded-substring) (setq term-current-column (current-column) columns (- term-current-column old-column)) (if (not (or (eobp) term-insert-mode)) (progn (let ((pos (point))) (term-move-columns columns) (delete-region pos (point)) (setq term-current-column nil)))) (if term-insert-mode (progn (let ((pos (point))) (end-of-line) (if (> (current-column) term-width) (progn (delete-region ... ...))) (goto-char pos)))) (put-text-property old-point (point) 'font-lock-face term-current-face)) (if (eq (term-current-column) term-width) (progn (term-move-columns -1) (setq term-do-line-wrapping (point)))) (setq term-current-column nil) (setq i funny))
  (if (> funny i) (progn (if term-do-line-wrapping (progn (term-down 1 t) (term-move-to-column 0) (setq term-do-line-wrapping nil))) (setq decoded-substring (decode-coding-string (substring str i funny) 'raw-text t)) (if (= funny str-length) (progn (let ((partial 0) (count (length decoded-substring))) (while (and (< partial count) (eq ... ...)) (setq partial (1+ partial))) (if (> count partial 0) (progn (setq term-terminal-undecoded-bytes ...) (setq decoded-substring ...) (setq str-length ...) (setq funny ...)))))) (let ((old-column (term-horizontal-column)) (old-point (point)) columns) (if term-suppress-hard-newline nil (while (> (+ (length decoded-substring) old-column) term-width) (insert (substring decoded-substring 0 (- term-width old-column))) (delete-region (point) (line-end-position)) (term-down 1 t) (term-move-columns (- (term-current-column))) (add-text-properties (1- (point)) (point) '(term-line-wrap t rear-nonsticky t)) (setq decoded-substring (substring decoded-substring (- term-width old-column))) (setq old-column 0))) (insert decoded-substring) (setq term-current-column (current-column) columns (- term-current-column old-column)) (if (not (or (eobp) term-insert-mode)) (progn (let ((pos ...)) (term-move-columns columns) (delete-region pos (point)) (setq term-current-column nil)))) (if term-insert-mode (progn (let ((pos ...)) (end-of-line) (if (> ... term-width) (progn ...)) (goto-char pos)))) (put-text-property old-point (point) 'font-lock-face term-current-face)) (if (eq (term-current-column) term-width) (progn (term-move-columns -1) (setq term-do-line-wrapping (point)))) (setq term-current-column nil) (setq i funny)))
  (let ((ctl-params (and funny (match-string 1 str))) (ctl-params-end (and funny (match-end 1))) (ctl-end (if funny (match-end 0) (setq funny (string-match term-control-seq-prefix-regexp str i)) (if funny (setq term-terminal-undecoded-bytes (substring str funny)) (setq funny str-length)) (1+ str-length)))) (if (> funny i) (progn (if term-do-line-wrapping (progn (term-down 1 t) (term-move-to-column 0) (setq term-do-line-wrapping nil))) (setq decoded-substring (decode-coding-string (substring str i funny) 'raw-text t)) (if (= funny str-length) (progn (let ((partial 0) (count ...)) (while (and ... ...) (setq partial ...)) (if (> count partial 0) (progn ... ... ... ...))))) (let ((old-column (term-horizontal-column)) (old-point (point)) columns) (if term-suppress-hard-newline nil (while (> (+ ... old-column) term-width) (insert (substring decoded-substring 0 ...)) (delete-region (point) (line-end-position)) (term-down 1 t) (term-move-columns (- ...)) (add-text-properties (1- ...) (point) '...) (setq decoded-substring (substring decoded-substring ...)) (setq old-column 0))) (insert decoded-substring) (setq term-current-column (current-column) columns (- term-current-column old-column)) (if (not (or (eobp) term-insert-mode)) (progn (let (...) (term-move-columns columns) (delete-region pos ...) (setq term-current-column nil)))) (if term-insert-mode (progn (let (...) (end-of-line) (if ... ...) (goto-char pos)))) (put-text-property old-point (point) 'font-lock-face term-current-face)) (if (eq (term-current-column) term-width) (progn (term-move-columns -1) (setq term-do-line-wrapping (point)))) (setq term-current-column nil) (setq i funny))) (let* ((val (and (<= ctl-end str-length) (aref str i)))) (cond ((eql val 9) (let ((col (term-current-column))) (term-move-to-column (min (1- term-width) (+ col 8 ...))))) ((eql val 13) (funcall term-vertical-motion 0) (setq term-current-column term-start-line-column)) ((eql val 10) (if (and term-kill-echo-list (term-check-kill-echo-list)) nil (term-down 1 t))) ((eql val 8) (term-move-columns -1)) ((eql val 7) (beep t)) ((eql val 26) (funcall term-command-function (decode-coding-string (substring str (1+ i) (- ctl-end ...)) locale-coding-system t))) ((eql val 27) (let* ((val (aref str ...))) (cond ((eql val 91) (if ... ...)) ((eql val 68) (term-handle-deferred-scroll) (term-down 1 t)) ((eql val 77) (if ... ... ...)) ((eql val 55) (term-handle-deferred-scroll) (setq term-saved-cursor ...)) ((eql val 56) (if term-saved-cursor ...)) ((eql val 99) (term-reset-terminal)) ((eql val 65) (term-handle-ansi-terminal-messages ...)) (t nil)))) ((memql val '(nil 15 14 0)) nil) (t (let ((x0 val)) (error "No clause matching `%S'" x0))))) (if (eq term-do-line-wrapping (point)) nil (setq term-do-line-wrapping nil)) (if term-pager-old-local-map (progn (if (> (% (current-column) term-width) 0) (setq term-terminal-undecoded-bytes (substring str i)) (if (= 0 i) (setq term-terminal-undecoded-bytes (concat "\15" (substring str i))) (setq term-terminal-undecoded-bytes (substring str (1- i))) (aset term-terminal-undecoded-bytes 0 13)) (goto-char (point-max))) (make-local-variable 'term-pager-old-filter) (setq term-pager-old-filter (process-filter proc)) (set-process-filter proc term-pager-filter) (setq i str-length)) (setq i ctl-end)))
  (while (< i str-length) (setq funny (string-match term-control-seq-regexp str i)) (let ((ctl-params (and funny (match-string 1 str))) (ctl-params-end (and funny (match-end 1))) (ctl-end (if funny (match-end 0) (setq funny (string-match term-control-seq-prefix-regexp str i)) (if funny (setq term-terminal-undecoded-bytes (substring str funny)) (setq funny str-length)) (1+ str-length)))) (if (> funny i) (progn (if term-do-line-wrapping (progn (term-down 1 t) (term-move-to-column 0) (setq term-do-line-wrapping nil))) (setq decoded-substring (decode-coding-string (substring str i funny) 'raw-text t)) (if (= funny str-length) (progn (let (... ...) (while ... ...) (if ... ...)))) (let ((old-column (term-horizontal-column)) (old-point (point)) columns) (if term-suppress-hard-newline nil (while (> ... term-width) (insert ...) (delete-region ... ...) (term-down 1 t) (term-move-columns ...) (add-text-properties ... ... ...) (setq decoded-substring ...) (setq old-column 0))) (insert decoded-substring) (setq term-current-column (current-column) columns (- term-current-column old-column)) (if (not (or ... term-insert-mode)) (progn (let ... ... ... ...))) (if term-insert-mode (progn (let ... ... ... ...))) (put-text-property old-point (point) 'font-lock-face term-current-face)) (if (eq (term-current-column) term-width) (progn (term-move-columns -1) (setq term-do-line-wrapping (point)))) (setq term-current-column nil) (setq i funny))) (let* ((val (and (<= ctl-end str-length) (aref str i)))) (cond ((eql val 9) (let ((col ...)) (term-move-to-column (min ... ...)))) ((eql val 13) (funcall term-vertical-motion 0) (setq term-current-column term-start-line-column)) ((eql val 10) (if (and term-kill-echo-list (term-check-kill-echo-list)) nil (term-down 1 t))) ((eql val 8) (term-move-columns -1)) ((eql val 7) (beep t)) ((eql val 26) (funcall term-command-function (decode-coding-string (substring str ... ...) locale-coding-system t))) ((eql val 27) (let* ((val ...)) (cond (... ...) (... ... ...) (... ...) (... ... ...) (... ...) (... ...) (... ...) (t nil)))) ((memql val '(nil 15 14 0)) nil) (t (let ((x0 val)) (error "No clause matching `%S'" x0))))) (if (eq term-do-line-wrapping (point)) nil (setq term-do-line-wrapping nil)) (if term-pager-old-local-map (progn (if (> (% (current-column) term-width) 0) (setq term-terminal-undecoded-bytes (substring str i)) (if (= 0 i) (setq term-terminal-undecoded-bytes (concat "\15" ...)) (setq term-terminal-undecoded-bytes (substring str ...)) (aset term-terminal-undecoded-bytes 0 13)) (goto-char (point-max))) (make-local-variable 'term-pager-old-filter) (setq term-pager-old-filter (process-filter proc)) (set-process-filter proc term-pager-filter) (setq i str-length)) (setq i ctl-end))))
  (save-restriction (if (and (> (point-max) (process-mark proc)) (not (eq (current-local-map) term-raw-map))) (progn (narrow-to-region (point-min) (process-mark proc)))) (if term-log-buffer (progn (princ str term-log-buffer))) (if term-terminal-undecoded-bytes (progn (setq str (concat term-terminal-undecoded-bytes str)) (setq str-length (length str)) (setq term-terminal-undecoded-bytes nil))) (while (< i str-length) (setq funny (string-match term-control-seq-regexp str i)) (let ((ctl-params (and funny (match-string 1 str))) (ctl-params-end (and funny (match-end 1))) (ctl-end (if funny (match-end 0) (setq funny (string-match term-control-seq-prefix-regexp str i)) (if funny (setq term-terminal-undecoded-bytes ...) (setq funny str-length)) (1+ str-length)))) (if (> funny i) (progn (if term-do-line-wrapping (progn (term-down 1 t) (term-move-to-column 0) (setq term-do-line-wrapping nil))) (setq decoded-substring (decode-coding-string (substring str i funny) 'raw-text t)) (if (= funny str-length) (progn (let ... ... ...))) (let ((old-column ...) (old-point ...) columns) (if term-suppress-hard-newline nil (while ... ... ... ... ... ... ... ...)) (insert decoded-substring) (setq term-current-column (current-column) columns (- term-current-column old-column)) (if (not ...) (progn ...)) (if term-insert-mode (progn ...)) (put-text-property old-point (point) 'font-lock-face term-current-face)) (if (eq (term-current-column) term-width) (progn (term-move-columns -1) (setq term-do-line-wrapping ...))) (setq term-current-column nil) (setq i funny))) (let* ((val (and (<= ctl-end str-length) (aref str i)))) (cond ((eql val 9) (let (...) (term-move-to-column ...))) ((eql val 13) (funcall term-vertical-motion 0) (setq term-current-column term-start-line-column)) ((eql val 10) (if (and term-kill-echo-list ...) nil (term-down 1 t))) ((eql val 8) (term-move-columns -1)) ((eql val 7) (beep t)) ((eql val 26) (funcall term-command-function (decode-coding-string ... locale-coding-system t))) ((eql val 27) (let* (...) (cond ... ... ... ... ... ... ... ...))) ((memql val '...) nil) (t (let (...) (error "No clause matching `%S'" x0))))) (if (eq term-do-line-wrapping (point)) nil (setq term-do-line-wrapping nil)) (if term-pager-old-local-map (progn (if (> (% ... term-width) 0) (setq term-terminal-undecoded-bytes (substring str i)) (if (= 0 i) (setq term-terminal-undecoded-bytes ...) (setq term-terminal-undecoded-bytes ...) (aset term-terminal-undecoded-bytes 0 13)) (goto-char (point-max))) (make-local-variable 'term-pager-old-filter) (setq term-pager-old-filter (process-filter proc)) (set-process-filter proc term-pager-filter) (setq i str-length)) (setq i ctl-end)))))
  (progn (if (marker-buffer term-pending-delete-marker) (progn (delete-region term-pending-delete-marker (process-mark proc)) (set-marker term-pending-delete-marker nil))) (if (/= (point) (process-mark proc)) (progn (setq save-point (point-marker)))) (setq term-vertical-motion (if (eq (window-buffer) (current-buffer)) 'vertical-motion 'term-buffer-vertical-motion)) (setq save-marker (copy-marker (process-mark proc))) (goto-char (process-mark proc)) (save-restriction (if (and (> (point-max) (process-mark proc)) (not (eq (current-local-map) term-raw-map))) (progn (narrow-to-region (point-min) (process-mark proc)))) (if term-log-buffer (progn (princ str term-log-buffer))) (if term-terminal-undecoded-bytes (progn (setq str (concat term-terminal-undecoded-bytes str)) (setq str-length (length str)) (setq term-terminal-undecoded-bytes nil))) (while (< i str-length) (setq funny (string-match term-control-seq-regexp str i)) (let ((ctl-params (and funny (match-string 1 str))) (ctl-params-end (and funny (match-end 1))) (ctl-end (if funny (match-end 0) (setq funny ...) (if funny ... ...) (1+ str-length)))) (if (> funny i) (progn (if term-do-line-wrapping (progn ... ... ...)) (setq decoded-substring (decode-coding-string ... ... t)) (if (= funny str-length) (progn ...)) (let (... ... columns) (if term-suppress-hard-newline nil ...) (insert decoded-substring) (setq term-current-column ... columns ...) (if ... ...) (if term-insert-mode ...) (put-text-property old-point ... ... term-current-face)) (if (eq ... term-width) (progn ... ...)) (setq term-current-column nil) (setq i funny))) (let* ((val (and ... ...))) (cond ((eql val 9) (let ... ...)) ((eql val 13) (funcall term-vertical-motion 0) (setq term-current-column term-start-line-column)) ((eql val 10) (if ... nil ...)) ((eql val 8) (term-move-columns -1)) ((eql val 7) (beep t)) ((eql val 26) (funcall term-command-function ...)) ((eql val 27) (let* ... ...)) ((memql val ...) nil) (t (let ... ...)))) (if (eq term-do-line-wrapping (point)) nil (setq term-do-line-wrapping nil)) (if term-pager-old-local-map (progn (if (> ... 0) (setq term-terminal-undecoded-bytes ...) (if ... ... ... ...) (goto-char ...)) (make-local-variable 'term-pager-old-filter) (setq term-pager-old-filter (process-filter proc)) (set-process-filter proc term-pager-filter) (setq i str-length)) (setq i ctl-end))))) (if (>= (term-current-row) term-height) (progn (term-handle-deferred-scroll))) (set-marker (process-mark proc) (point)) (if (stringp decoded-substring) (progn (term-watch-for-password-prompt decoded-substring))) (if save-point (progn (goto-char save-point) (set-marker save-point nil))) (if (and term-pending-frame (eq (window-buffer selected) (current-buffer))) (progn (term-display-line (car term-pending-frame) (cdr term-pending-frame)) (setq term-pending-frame nil))) (setq win selected) (while (window-minibuffer-p win) (setq win (next-window win nil t))) (setq last-win win) (while (progn (setq win (next-window win nil t)) (if (eq (window-buffer win) (process-buffer proc)) (progn (let ((scroll term-scroll-to-bottom-on-output)) (select-window win) (if (or ... ... ... ... ...) (progn ... ... ... ...)) (if (and term-scroll-show-maximum-output ...) (progn ...))))) (not (eq win last-win)))) (if (> term-buffer-maximum-size 0) (progn (save-excursion (goto-char (process-mark (get-buffer-process (current-buffer)))) (forward-line (- term-buffer-maximum-size)) (beginning-of-line) (delete-region (point-min) (point))))) (set-marker save-marker nil))
  (unwind-protect (progn (if (marker-buffer term-pending-delete-marker) (progn (delete-region term-pending-delete-marker (process-mark proc)) (set-marker term-pending-delete-marker nil))) (if (/= (point) (process-mark proc)) (progn (setq save-point (point-marker)))) (setq term-vertical-motion (if (eq (window-buffer) (current-buffer)) 'vertical-motion 'term-buffer-vertical-motion)) (setq save-marker (copy-marker (process-mark proc))) (goto-char (process-mark proc)) (save-restriction (if (and (> (point-max) (process-mark proc)) (not (eq (current-local-map) term-raw-map))) (progn (narrow-to-region (point-min) (process-mark proc)))) (if term-log-buffer (progn (princ str term-log-buffer))) (if term-terminal-undecoded-bytes (progn (setq str (concat term-terminal-undecoded-bytes str)) (setq str-length (length str)) (setq term-terminal-undecoded-bytes nil))) (while (< i str-length) (setq funny (string-match term-control-seq-regexp str i)) (let ((ctl-params (and funny ...)) (ctl-params-end (and funny ...)) (ctl-end (if funny ... ... ... ...))) (if (> funny i) (progn (if term-do-line-wrapping ...) (setq decoded-substring ...) (if ... ...) (let ... ... ... ... ... ... ...) (if ... ...) (setq term-current-column nil) (setq i funny))) (let* ((val ...)) (cond (... ...) (... ... ...) (... ...) (... ...) (... ...) (... ...) (... ...) (... nil) (t ...))) (if (eq term-do-line-wrapping (point)) nil (setq term-do-line-wrapping nil)) (if term-pager-old-local-map (progn (if ... ... ... ...) (make-local-variable ...) (setq term-pager-old-filter ...) (set-process-filter proc term-pager-filter) (setq i str-length)) (setq i ctl-end))))) (if (>= (term-current-row) term-height) (progn (term-handle-deferred-scroll))) (set-marker (process-mark proc) (point)) (if (stringp decoded-substring) (progn (term-watch-for-password-prompt decoded-substring))) (if save-point (progn (goto-char save-point) (set-marker save-point nil))) (if (and term-pending-frame (eq (window-buffer selected) (current-buffer))) (progn (term-display-line (car term-pending-frame) (cdr term-pending-frame)) (setq term-pending-frame nil))) (setq win selected) (while (window-minibuffer-p win) (setq win (next-window win nil t))) (setq last-win win) (while (progn (setq win (next-window win nil t)) (if (eq (window-buffer win) (process-buffer proc)) (progn (let (...) (select-window win) (if ... ...) (if ... ...)))) (not (eq win last-win)))) (if (> term-buffer-maximum-size 0) (progn (save-excursion (goto-char (process-mark (get-buffer-process ...))) (forward-line (- term-buffer-maximum-size)) (beginning-of-line) (delete-region (point-min) (point))))) (set-marker save-marker nil)) (internal--after-save-selected-window save-selected-window--state))
  (save-current-buffer (unwind-protect (progn (if (marker-buffer term-pending-delete-marker) (progn (delete-region term-pending-delete-marker (process-mark proc)) (set-marker term-pending-delete-marker nil))) (if (/= (point) (process-mark proc)) (progn (setq save-point (point-marker)))) (setq term-vertical-motion (if (eq (window-buffer) (current-buffer)) 'vertical-motion 'term-buffer-vertical-motion)) (setq save-marker (copy-marker (process-mark proc))) (goto-char (process-mark proc)) (save-restriction (if (and (> (point-max) (process-mark proc)) (not (eq ... term-raw-map))) (progn (narrow-to-region (point-min) (process-mark proc)))) (if term-log-buffer (progn (princ str term-log-buffer))) (if term-terminal-undecoded-bytes (progn (setq str (concat term-terminal-undecoded-bytes str)) (setq str-length (length str)) (setq term-terminal-undecoded-bytes nil))) (while (< i str-length) (setq funny (string-match term-control-seq-regexp str i)) (let ((ctl-params ...) (ctl-params-end ...) (ctl-end ...)) (if (> funny i) (progn ... ... ... ... ... ... ...)) (let* (...) (cond ... ... ... ... ... ... ... ... ...)) (if (eq term-do-line-wrapping ...) nil (setq term-do-line-wrapping nil)) (if term-pager-old-local-map (progn ... ... ... ... ...) (setq i ctl-end))))) (if (>= (term-current-row) term-height) (progn (term-handle-deferred-scroll))) (set-marker (process-mark proc) (point)) (if (stringp decoded-substring) (progn (term-watch-for-password-prompt decoded-substring))) (if save-point (progn (goto-char save-point) (set-marker save-point nil))) (if (and term-pending-frame (eq (window-buffer selected) (current-buffer))) (progn (term-display-line (car term-pending-frame) (cdr term-pending-frame)) (setq term-pending-frame nil))) (setq win selected) (while (window-minibuffer-p win) (setq win (next-window win nil t))) (setq last-win win) (while (progn (setq win (next-window win nil t)) (if (eq (window-buffer win) (process-buffer proc)) (progn (let ... ... ... ...))) (not (eq win last-win)))) (if (> term-buffer-maximum-size 0) (progn (save-excursion (goto-char (process-mark ...)) (forward-line (- term-buffer-maximum-size)) (beginning-of-line) (delete-region (point-min) (point))))) (set-marker save-marker nil)) (internal--after-save-selected-window save-selected-window--state)))
  (let ((save-selected-window--state (internal--before-save-selected-window))) (save-current-buffer (unwind-protect (progn (if (marker-buffer term-pending-delete-marker) (progn (delete-region term-pending-delete-marker (process-mark proc)) (set-marker term-pending-delete-marker nil))) (if (/= (point) (process-mark proc)) (progn (setq save-point (point-marker)))) (setq term-vertical-motion (if (eq (window-buffer) (current-buffer)) 'vertical-motion 'term-buffer-vertical-motion)) (setq save-marker (copy-marker (process-mark proc))) (goto-char (process-mark proc)) (save-restriction (if (and (> ... ...) (not ...)) (progn (narrow-to-region ... ...))) (if term-log-buffer (progn (princ str term-log-buffer))) (if term-terminal-undecoded-bytes (progn (setq str ...) (setq str-length ...) (setq term-terminal-undecoded-bytes nil))) (while (< i str-length) (setq funny (string-match term-control-seq-regexp str i)) (let (... ... ...) (if ... ...) (let* ... ...) (if ... nil ...) (if term-pager-old-local-map ... ...)))) (if (>= (term-current-row) term-height) (progn (term-handle-deferred-scroll))) (set-marker (process-mark proc) (point)) (if (stringp decoded-substring) (progn (term-watch-for-password-prompt decoded-substring))) (if save-point (progn (goto-char save-point) (set-marker save-point nil))) (if (and term-pending-frame (eq (window-buffer selected) (current-buffer))) (progn (term-display-line (car term-pending-frame) (cdr term-pending-frame)) (setq term-pending-frame nil))) (setq win selected) (while (window-minibuffer-p win) (setq win (next-window win nil t))) (setq last-win win) (while (progn (setq win (next-window win nil t)) (if (eq ... ...) (progn ...)) (not (eq win last-win)))) (if (> term-buffer-maximum-size 0) (progn (save-excursion (goto-char ...) (forward-line ...) (beginning-of-line) (delete-region ... ...)))) (set-marker save-marker nil)) (internal--after-save-selected-window save-selected-window--state))))
  (let* ((i 0) funny decoded-substring save-point save-marker win (inhibit-read-only t) (buffer-undo-list t) (selected (selected-window)) last-win (str-length (length str))) (let ((save-selected-window--state (internal--before-save-selected-window))) (save-current-buffer (unwind-protect (progn (if (marker-buffer term-pending-delete-marker) (progn (delete-region term-pending-delete-marker ...) (set-marker term-pending-delete-marker nil))) (if (/= (point) (process-mark proc)) (progn (setq save-point ...))) (setq term-vertical-motion (if (eq ... ...) 'vertical-motion 'term-buffer-vertical-motion)) (setq save-marker (copy-marker (process-mark proc))) (goto-char (process-mark proc)) (save-restriction (if (and ... ...) (progn ...)) (if term-log-buffer (progn ...)) (if term-terminal-undecoded-bytes (progn ... ... ...)) (while (< i str-length) (setq funny ...) (let ... ... ... ... ...))) (if (>= (term-current-row) term-height) (progn (term-handle-deferred-scroll))) (set-marker (process-mark proc) (point)) (if (stringp decoded-substring) (progn (term-watch-for-password-prompt decoded-substring))) (if save-point (progn (goto-char save-point) (set-marker save-point nil))) (if (and term-pending-frame (eq ... ...)) (progn (term-display-line ... ...) (setq term-pending-frame nil))) (setq win selected) (while (window-minibuffer-p win) (setq win (next-window win nil t))) (setq last-win win) (while (progn (setq win ...) (if ... ...) (not ...))) (if (> term-buffer-maximum-size 0) (progn (save-excursion ... ... ... ...))) (set-marker save-marker nil)) (internal--after-save-selected-window save-selected-window--state)))))
  (save-current-buffer (set-buffer (process-buffer proc)) (let* ((i 0) funny decoded-substring save-point save-marker win (inhibit-read-only t) (buffer-undo-list t) (selected (selected-window)) last-win (str-length (length str))) (let ((save-selected-window--state (internal--before-save-selected-window))) (save-current-buffer (unwind-protect (progn (if (marker-buffer term-pending-delete-marker) (progn ... ...)) (if (/= ... ...) (progn ...)) (setq term-vertical-motion (if ... ... ...)) (setq save-marker (copy-marker ...)) (goto-char (process-mark proc)) (save-restriction (if ... ...) (if term-log-buffer ...) (if term-terminal-undecoded-bytes ...) (while ... ... ...)) (if (>= ... term-height) (progn ...)) (set-marker (process-mark proc) (point)) (if (stringp decoded-substring) (progn ...)) (if save-point (progn ... ...)) (if (and term-pending-frame ...) (progn ... ...)) (setq win selected) (while (window-minibuffer-p win) (setq win ...)) (setq last-win win) (while (progn ... ... ...)) (if (> term-buffer-maximum-size 0) (progn ...)) (set-marker save-marker nil)) (internal--after-save-selected-window save-selected-window--state))))) (if (get-buffer-window (current-buffer)) (progn (redisplay))))
  term-emulate-terminal(#<process terminal> "l\0$\334\236\217\2\214#\2\342n\4\4\f\204\4l\344\fc|\216\203\3\344\23\333r\223B\204\fc\204\373oN\276\0lNn\234\343\354\fc\34p...")
```





^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2022-01-20 22:01                     ` Christopher Howard
@ 2022-01-21  8:04                       ` Eli Zaretskii
  2022-02-19 12:58                         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 18+ messages in thread
From: Eli Zaretskii @ 2022-01-21  8:04 UTC (permalink / raw)
  To: Christopher Howard; +Cc: larsi, 51877

> Date: Thu, 20 Jan 2022 13:01:12 -0900
> From: Christopher Howard <christopher@librehacker.com>
> Cc: larsi@gnus.org, 51877@debbugs.gnu.org
> 
> On Thu, Jan 20, 2022 at 10:02:10PM +0200, Eli Zaretskii wrote:
> > I don't think this would help.  Can you manually modify the function
> > term-emulate-terminal to use 'raw-text instead of
> > locale-coding-system, and then re-run the scenario in which you get
> > these problems?
> 
> This seems to generate the same result, except with more elaborate debugger output:
> 
> ```
> Debugger entered--Lisp error: (args-out-of-range "l \3\220\0332Nn\f\217" 0 -48)
>   substring("l \3\220\0332Nn\f\217" 0 -48)
>   (insert (substring decoded-substring 0 (- term-width old-column)))
>   (while (> (+ (length decoded-substring) old-column) term-width) (insert (substring decoded-substring 0 (- term-width old-column))) (delete-region (point) (line-end-position)) (term-down 1 t) (term-move-columns (- (term-current-column))) (add-text-properties (1- (point)) (point) '(term-line-wrap t rear-nonsticky t)) (setq decoded-substring (substring decoded-substring (- term-width old-column))) (setq old-column 0))

Ouch!  This code evidently assumes that every character takes just one
column on display, because it uses column counts as indices into
strings.  That assumption obviously breaks with binary garbage, where
many bytes are displayed as octal escapes, which take no less than 4
columns.

So my conclusion is that this can never work, unless this central
assumption of term.el is removed, and the code redesigned and
reimplemented not to depend on column counts.

IOW, i its current shape, term.el is utterly incapable of supporting
display of raw bytes.

Sorry.





^ permalink raw reply	[flat|nested] 18+ messages in thread

* bug#51877: 27.2; term: error in process filter
  2022-01-21  8:04                       ` Eli Zaretskii
@ 2022-02-19 12:58                         ` Lars Ingebrigtsen
  0 siblings, 0 replies; 18+ messages in thread
From: Lars Ingebrigtsen @ 2022-02-19 12:58 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Christopher Howard, 51877

Eli Zaretskii <eliz@gnu.org> writes:

> So my conclusion is that this can never work, unless this central
> assumption of term.el is removed, and the code redesigned and
> reimplemented not to depend on column counts.
>
> IOW, i its current shape, term.el is utterly incapable of supporting
> display of raw bytes.

Skimming this thread, there doesn't really seem to be anything realistic
that we can do on the Emacs side here, so I'm closing this bug report.
If progress can be made, please respond to the debbugs address and we'll
reopen.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2022-02-19 12:58 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-11-15 19:10 bug#51877: 27.2; term: error in process filter Christopher Howard
2021-11-15 19:14 ` Christopher Howard
2021-11-15 19:19 ` Eli Zaretskii
2021-11-15 19:33   ` Christopher Howard
2021-11-15 22:36   ` Christopher Howard
2021-11-16  3:23     ` Eli Zaretskii
2022-01-15 13:12       ` Lars Ingebrigtsen
2022-01-16  6:14         ` Christopher Howard
2022-01-17 19:30         ` Christopher Howard
2022-01-20  9:39           ` Lars Ingebrigtsen
2022-01-20 17:39             ` Christopher Howard
2022-01-20 17:46               ` Lars Ingebrigtsen
2022-01-20 17:54               ` Eli Zaretskii
2022-01-20 19:06                 ` Christopher Howard
2022-01-20 20:02                   ` Eli Zaretskii
2022-01-20 22:01                     ` Christopher Howard
2022-01-21  8:04                       ` Eli Zaretskii
2022-02-19 12:58                         ` Lars Ingebrigtsen

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).