emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 6cea3233a12: Align term-mode control character handling


From: Daniel Colascione
Subject: master 6cea3233a12: Align term-mode control character handling
Date: Sat, 11 Jan 2025 17:36:58 -0500 (EST)

branch: master
commit 6cea3233a12f3964c46bffb0b6215e9c8cd92962
Author: Daniel Colascione <dancol@dancol.org>
Commit: Daniel Colascione <dancol@dancol.org>

    Align term-mode control character handling
    
    Terminal emulators generally ignore exotic ASCII control
    characters like SOH and STX. Make term-mode do the same.
    
    * lisp/term.el (term-emulate-terminal): ignore ASCII control
    characters like other terminal emulators do
---
 lisp/term.el | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/lisp/term.el b/lisp/term.el
index b343e395eca..2258da8fe37 100644
--- a/lisp/term.el
+++ b/lisp/term.el
@@ -3015,8 +3015,8 @@ See `term-prompt-regexp'."
 
 (defconst term-control-seq-regexp
   (concat
-   ;; A control character,
-   "\\(?:[\r\n\000\007\t\b\016\017]\\|"
+   ;; A control character not matched in a longer sequence below,
+   "\\(?:[\x00-\x19\x1C-\x1F\r\n\t\b]\\|"
    ;; some Emacs specific control sequences, implemented by
    ;; `term-command-hook',
    "\032[^\n]+\n\\|"
@@ -3271,8 +3271,9 @@ See `term-prompt-regexp'."
                      (?A ;; An \eAnSiT sequence (Emacs specific).
                       (term-handle-ansi-terminal-messages
                        (substring str i ctl-end)))))
-                  ;; Ignore NUL, Shift Out, Shift In.
-                  ((or ?\0 #xE #xF 'nil) nil))
+                  ;; Ignore any control character not already recognized.
+                  ((or 'nil
+                       (and (pred characterp) (pred (lambda (c) (<= c 
?\x1F))))) nil))
                 ;; Leave line-wrapping state if point was moved.
                 (unless (eq term-do-line-wrapping (point))
                   (setq term-do-line-wrapping nil))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]