[Top][All Lists]

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

Re: term.el (term-emulate-terminal)

From: Harry Kuiper
Subject: Re: term.el (term-emulate-terminal)
Date: 13 Apr 2002 22:31:19 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Daiki Ueno <address@hidden> writes:

> Could you do M-: (setq debug-on-quit t) before entering term-mode,
> type M-g, and send me the contents of the buffer named *Backtrace*? 
> I'll take a look at them and suppose that I can help you.

When term hangs it is impossible to get out of it.  Even typing C-g
twice does not work.  I can only kill Emacs from the commandline in an
xterm.  When I restart Emacs and try M-x recover-session there's a
save file alright but Emacs says there is nothing to recover from it.
Once Emacs hangs it starts to consume memory at a rate of 50 MB in 30
seconds or so.

I noticed one strange thing.  The shell prompt is printed twice when I
just press enter without entering a command.  The term.el version that
does not cause problems does not do this.

I tried to reproduce your original problem using the script:

cd $HOME
exec /bin/sh "$@" 

But it seems to work OK for me.  No problems.

Just to make sure we are talking about the same code, below is a diff
of the broken version (term.el.broken) against my version that seems
to work (term.el):

cd /usr/local/share/emacs/21.2/lisp/
diff -u /usr/local/share/emacs/21.2/lisp/term.el.broken 
--- /usr/local/share/emacs/21.2/lisp/term.el.broken     Sun Feb  3 12:56:52 2002
+++ /usr/local/share/emacs/21.2/lisp/term.el    Sat Apr 13 14:58:06 2002
@@ -2830,11 +2830,11 @@
                           ((eq char ?\^G)
                            (beep t)) ; Bell
                           ((eq char ?\032)
-                           (let ((end (string-match "\r?$" str i)))
+                           (let ((end (string-match "\n" str i)))
                              (if end
                                  (progn (funcall term-command-hook
-                                                 (substring str (1+ i) end))
-                                        (setq i (match-end 0)))
+                                                 (substring str (1+ i) (1- 
+                                        (setq i end))
                                (setq term-terminal-parameter
                                      (substring str i))
                                (setq term-terminal-state 4)

Anything else I can do to help?

Harry Kuiper                 address@hidden
Haarlem, The Netherlands

reply via email to

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