Package: emacs;
Reported by: Christopher Howard <christopher <at> librehacker.com>
Date: Mon, 15 Nov 2021 19:11:02 UTC
Severity: normal
Tags: moreinfo
Found in version 27.2
Done: Lars Ingebrigtsen <larsi <at> gnus.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 51877 in the body.
You can then email your comments to 51877 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
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Mon, 15 Nov 2021 19:11:02 GMT) Full text and rfc822 format available.Christopher Howard <christopher <at> librehacker.com>
:bug-gnu-emacs <at> gnu.org
.
(Mon, 15 Nov 2021 19:11:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Christopher Howard <christopher <at> librehacker.com> To: bug-gnu-emacs <at> gnu.org Subject: 27.2; term: error in process filter 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. 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
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Mon, 15 Nov 2021 19:15:02 GMT) Full text and rfc822 format available.Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Christopher Howard <christopher <at> librehacker.com> To: bug-gnu-emacs <at> gnu.org Subject: Re: 27.2; term: error in process filter Date: Mon, 15 Nov 2021 10:14:04 -0900
I simply wanted to add that the garbage character was \377, not \371, in case that makes a difference.
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Mon, 15 Nov 2021 19:21:01 GMT) Full text and rfc822 format available.Message #11 received at 51877 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Christopher Howard <christopher <at> librehacker.com> Cc: 51877 <at> debbugs.gnu.org Subject: Re: bug#51877: 27.2; term: error in process filter Date: Mon, 15 Nov 2021 21:19:54 +0200
> From: Christopher Howard <christopher <at> 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.
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Mon, 15 Nov 2021 19:34:01 GMT) Full text and rfc822 format available.Message #14 received at 51877 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Howard <christopher <at> librehacker.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 51877 <at> debbugs.gnu.org Subject: Re: bug#51877: 27.2; term: error in process filter Date: Mon, 15 Nov 2021 10:33:07 -0900
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.
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Mon, 15 Nov 2021 22:38:01 GMT) Full text and rfc822 format available.Message #17 received at 51877 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Howard <christopher <at> librehacker.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 51877 <at> debbugs.gnu.org Subject: Re: bug#51877: 27.2; term: error in process filter 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.
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Tue, 16 Nov 2021 03:25:02 GMT) Full text and rfc822 format available.Message #20 received at 51877 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Christopher Howard <christopher <at> librehacker.com> Cc: 51877 <at> debbugs.gnu.org Subject: Re: bug#51877: 27.2; term: error in process filter Date: Tue, 16 Nov 2021 05:23:56 +0200
> From: Christopher Howard <christopher <at> librehacker.com> > Cc: 51877 <at> 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.
Stefan Kangas <stefan <at> marxist.se>
to control <at> debbugs.gnu.org
.
(Fri, 03 Dec 2021 01:28:02 GMT) Full text and rfc822 format available.bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Sat, 15 Jan 2022 13:13:02 GMT) Full text and rfc822 format available.Message #25 received at 51877 <at> debbugs.gnu.org (full text, mbox):
From: Lars Ingebrigtsen <larsi <at> gnus.org> To: Eli Zaretskii <eliz <at> gnu.org> Cc: Christopher Howard <christopher <at> librehacker.com>, 51877 <at> debbugs.gnu.org Subject: Re: bug#51877: 27.2; term: error in process filter Date: Sat, 15 Jan 2022 14:12:11 +0100
Eli Zaretskii <eliz <at> 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
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Sun, 16 Jan 2022 06:15:02 GMT) Full text and rfc822 format available.Message #28 received at 51877 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Howard <christopher <at> librehacker.com> To: Lars Ingebrigtsen <larsi <at> gnus.org> Cc: Eli Zaretskii <eliz <at> gnu.org>, 51877 <at> debbugs.gnu.org Subject: Re: bug#51877: 27.2; term: error in process filter Date: Sat, 15 Jan 2022 21:14:01 -0900
I can't remember now, to be honest, but can try it on Monday.
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Mon, 17 Jan 2022 19:31:02 GMT) Full text and rfc822 format available.Message #31 received at 51877 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Howard <christopher <at> librehacker.com> To: Lars Ingebrigtsen <larsi <at> gnus.org> Cc: Eli Zaretskii <eliz <at> gnu.org>, 51877 <at> debbugs.gnu.org Subject: Re: bug#51877: 27.2; term: error in process filter Date: Mon, 17 Jan 2022 10:30:32 -0900
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.
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Thu, 20 Jan 2022 09:41:01 GMT) Full text and rfc822 format available.Message #34 received at 51877 <at> debbugs.gnu.org (full text, mbox):
From: Lars Ingebrigtsen <larsi <at> gnus.org> To: Christopher Howard <christopher <at> librehacker.com> Cc: Eli Zaretskii <eliz <at> gnu.org>, 51877 <at> debbugs.gnu.org Subject: Re: bug#51877: 27.2; term: error in process filter Date: Thu, 20 Jan 2022 10:39:59 +0100
Christopher Howard <christopher <at> 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
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Thu, 20 Jan 2022 17:41:01 GMT) Full text and rfc822 format available.Message #37 received at 51877 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Howard <christopher <at> librehacker.com> To: Lars Ingebrigtsen <larsi <at> gnus.org> Cc: Eli Zaretskii <eliz <at> gnu.org>, 51877 <at> debbugs.gnu.org Subject: Re: bug#51877: 27.2; term: error in process filter Date: Thu, 20 Jan 2022 08:39:47 -0900
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?
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Thu, 20 Jan 2022 17:47:01 GMT) Full text and rfc822 format available.Message #40 received at 51877 <at> debbugs.gnu.org (full text, mbox):
From: Lars Ingebrigtsen <larsi <at> gnus.org> To: Christopher Howard <christopher <at> librehacker.com> Cc: Eli Zaretskii <eliz <at> gnu.org>, 51877 <at> debbugs.gnu.org Subject: Re: bug#51877: 27.2; term: error in process filter Date: Thu, 20 Jan 2022 18:46:12 +0100
Christopher Howard <christopher <at> 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
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Thu, 20 Jan 2022 17:55:02 GMT) Full text and rfc822 format available.Message #43 received at 51877 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Christopher Howard <christopher <at> librehacker.com> Cc: larsi <at> gnus.org, 51877 <at> debbugs.gnu.org Subject: Re: bug#51877: 27.2; term: error in process filter Date: Thu, 20 Jan 2022 19:54:46 +0200
> Date: Thu, 20 Jan 2022 08:39:47 -0900 > From: Christopher Howard <christopher <at> librehacker.com> > Cc: Eli Zaretskii <eliz <at> gnu.org>, 51877 <at> 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?
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Thu, 20 Jan 2022 19:07:02 GMT) Full text and rfc822 format available.Message #46 received at 51877 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Howard <christopher <at> librehacker.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: larsi <at> gnus.org, 51877 <at> debbugs.gnu.org Subject: Re: bug#51877: 27.2; term: error in process filter Date: Thu, 20 Jan 2022 10:06:04 -0900
switch temporarily to line mode (using the mouse menu) M-x set-terminal-coding-system raw-text
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Thu, 20 Jan 2022 20:03:02 GMT) Full text and rfc822 format available.Message #49 received at 51877 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Christopher Howard <christopher <at> librehacker.com> Cc: larsi <at> gnus.org, 51877 <at> debbugs.gnu.org Subject: Re: bug#51877: 27.2; term: error in process filter Date: Thu, 20 Jan 2022 22:02:10 +0200
> 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 <at> librehacker.com> > Cc: larsi <at> gnus.org, 51877 <at> 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?
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Thu, 20 Jan 2022 22:02:02 GMT) Full text and rfc822 format available.Message #52 received at 51877 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Howard <christopher <at> librehacker.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: larsi <at> gnus.org, 51877 <at> debbugs.gnu.org Subject: Re: bug#51877: 27.2; term: error in process filter Date: Thu, 20 Jan 2022 13:01:12 -0900
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...") ```
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Fri, 21 Jan 2022 08:05:01 GMT) Full text and rfc822 format available.Message #55 received at 51877 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Christopher Howard <christopher <at> librehacker.com> Cc: larsi <at> gnus.org, 51877 <at> debbugs.gnu.org Subject: Re: bug#51877: 27.2; term: error in process filter Date: Fri, 21 Jan 2022 10:04:12 +0200
> Date: Thu, 20 Jan 2022 13:01:12 -0900 > From: Christopher Howard <christopher <at> librehacker.com> > Cc: larsi <at> gnus.org, 51877 <at> 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.
bug-gnu-emacs <at> gnu.org
:bug#51877
; Package emacs
.
(Sat, 19 Feb 2022 12:59:01 GMT) Full text and rfc822 format available.Message #58 received at 51877 <at> debbugs.gnu.org (full text, mbox):
From: Lars Ingebrigtsen <larsi <at> gnus.org> To: Eli Zaretskii <eliz <at> gnu.org> Cc: Christopher Howard <christopher <at> librehacker.com>, 51877 <at> debbugs.gnu.org Subject: Re: bug#51877: 27.2; term: error in process filter Date: Sat, 19 Feb 2022 13:58:38 +0100
Eli Zaretskii <eliz <at> 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
Lars Ingebrigtsen <larsi <at> gnus.org>
to control <at> debbugs.gnu.org
.
(Sat, 19 Feb 2022 12:59:02 GMT) Full text and rfc822 format available.Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Sun, 20 Mar 2022 11:24:06 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.