* bug#28687: 25.2; Error using term-handle-ansi-terminal-messages
@ 2017-10-03 15:19 Live System User
2017-10-12 2:33 ` Noam Postavsky
0 siblings, 1 reply; 4+ messages in thread
From: Live System User @ 2017-10-03 15:19 UTC (permalink / raw)
To: 28687
Hi,
When trying to use `term-handle-ansi-terminal-messages`
as a template, a new command code is defined:
((= command-code ?e)
(save-excursion
(find-file-other-window argument))
It gets invoked when string "\033AnSiTe" is sent, similar
to this:
echo -e "\033AnSiTe" test
as well as with an alias defined for the process via
`term-send-raw-string`:
(term-send-raw-string (format "
alias e=\'echo -e \"\\033AnSiTe\"\'
")
and invoked as:
e test
Most of the time thi works.
When it doesn't work as expected, one of the followig
3 errors sometimes occurs:
1. I get the error:
if: Symbol’s value as variable is void:
term-pending-delete-marker
Debugger entered--Lisp error: (void-variable term-pending-delete-marker)
term-emulate-terminal(#<process test> "\nAnSiTe test\nAnSiTu liveuser\nAnSiTc /home/liveuser\nAnSiTh localhost.localdomain\n")
2. The trailing "^M" of the argument gets swallowed up (omitted)
before being passed to `term-handle-ansi-terminal-messages`,
presumably by the function `term-send-raw-string`.
3. I get the error:
term-send-raw-string: Not enough arguments for format string
Thanks.
In GNU Emacs 25.2.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.20.10)
of 2017-05-02 built on buildvm-17.phx2.fedoraproject.org
Windowing system distributor 'Fedora Project', version 11.0.11803000
Configured using:
'configure --build=x86_64-redhat-linux-gnu
--host=x86_64-redhat-linux-gnu --program-prefix=
--disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
--bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
--datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
--libexecdir=/usr/libexec --localstatedir=/var
--sharedstatedir=/var/lib --mandir=/usr/share/man
--infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-png
--with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3
--with-gpm=no --with-xwidgets --with-modules
build_alias=x86_64-redhat-linux-gnu host_alias=x86_64-redhat-linux-gnu
'CFLAGS=-DMAIL_USE_LOCKF -O2 -g -pipe -Wall -Werror=format-security
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong
--param=ssp-buffer-size=4 -grecord-gcc-switches
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic'
LDFLAGS=-Wl,-z,relro
PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GCONF GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES XWIDGETS
Important settings:
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: @im=ibus
locale-coding-system: utf-8-unix
Major mode: Buffer Menu
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
buffer-read-only: t
line-number-mode: t
transient-mark-mode: t
Recent messages:
<mouse-6> is undefined
delete-backward-char: Text is read-only [2 times]
Quit [2 times]
Are you sure you want to quit reading news? (y or n) y
Saving /home/liveuser/.newsrc...done
Saving /home/liveuser/.newsrc.eld...
Saving file /home/liveuser/.newsrc.eld...
Wrote /home/liveuser/.newsrc.eld
Saving /home/liveuser/.newsrc.eld...done
Making completion list... [2 times]
Load-path shadows:
None found.
Features:
(shadow emacsbug sendmail shr-color color shr dom subr-x browse-url
debug nnagent nnml pp gnus-dup sort gnus-cite smiley ansi-color
mail-extr qp gnus-async gnus-bcklg gnus-ml disp-table cursor-sensor
nndraft nnmh nndoc mm-archive jka-compr timezone url-http url-gw
url-cache url-auth url-handlers utf-7 rfc2104 nnfolder network-stream
nsm starttls gnus-agent gnus-srvr gnus-score score-mode nnvirtual
gnus-msg nntp gnus-cache epa-file epa derived nnreddit mm-url url
url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util url-parse auth-source cl-seq eieio eieio-core
cl-macs url-vars json map seq byte-opt bytecomp byte-compile cl-extra
cconv gnus-art mm-uu mml2015 mm-view mml-smime smime dig mailcap cl gv
sieve sieve-mode sieve-manage nnir gnus-sum gnus-group gnus-undo
gnus-start gnus-cloud nnimap nnmail mail-source tls gnutls utf7 netrc
parse-time gnus-spec gnus-int gnus-range message dired format-spec
rfc822 mml mml-sec password-cache epg epg-config mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev
gmm-utils mailheader gnus-win gnus gnus-ems wid-edit nnoo nnheader
gnus-util mm-util help-fns help-mode easymenu cl-loaddefs pcase cl-lib
mail-prsvr mail-utils time-date mule-util tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core frame 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 charscript case-table epa-hook jka-cmpr-hook help
simple abbrev minibuffer 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
dbusbind inotify dynamic-setting system-font-setting font-render-setting
xwidget-internal move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)
Memory information:
((conses 16 236083 122162)
(symbols 48 63122 319)
(miscs 40 182 536)
(strings 32 90731 96695)
(string-bytes 1 2749359)
(vectors 16 27592)
(vector-slots 8 878323 106766)
(floats 8 585 1448)
(intervals 56 4719 696)
(buffers 976 77)
(heap 1024 61833 580652))
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#28687: 25.2; Error using term-handle-ansi-terminal-messages
2017-10-03 15:19 bug#28687: 25.2; Error using term-handle-ansi-terminal-messages Live System User
@ 2017-10-12 2:33 ` Noam Postavsky
2017-10-16 8:01 ` Live System User
0 siblings, 1 reply; 4+ messages in thread
From: Noam Postavsky @ 2017-10-12 2:33 UTC (permalink / raw)
To: Live System User; +Cc: 28687
tags 28687 + unreproducible moreinfo
quit
Live System User <nyc4bos@aol.com> writes:
> When trying to use `term-handle-ansi-terminal-messages`
> as a template, a new command code is defined:
Do you mean you have defined some new function? Please post a complete
example, not just fragments.
> Most of the time thi works.
>
> When it doesn't work as expected,
How often does it fail?
> 1. I get the error:
>
> if: Symbol’s value as variable is void:
> term-pending-delete-marker
>
> Debugger entered--Lisp error: (void-variable term-pending-delete-marker)
> term-emulate-terminal(#<process test> "\nAnSiTe test\nAnSiTu liveuser\nAnSiTc /home/liveuser\nAnSiTh localhost.localdomain\n")
>
Seems like you might be running in the wrong buffer.
term-pending-delete-marker is only defined buffer-locally.
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#28687: 25.2; Error using term-handle-ansi-terminal-messages
2017-10-12 2:33 ` Noam Postavsky
@ 2017-10-16 8:01 ` Live System User
2017-10-16 23:49 ` Noam Postavsky
0 siblings, 1 reply; 4+ messages in thread
From: Live System User @ 2017-10-16 8:01 UTC (permalink / raw)
To: Noam Postavsky; +Cc: 28687
[-- Attachment #1: Type: text/plain, Size: 482 bytes --]
Noam Postavsky <npostavs@users.sourceforge.net> writes:
> tags 28687 + unreproducible moreinfo
> quit
>
> Live System User <nyc4bos@aol.com> writes:
>
>> When trying to use `term-handle-ansi-terminal-messages`
>> as a template, a new command code is defined:
>
> Do you mean you have defined some new function? Please post a complete
> example, not just fragments.
No: I justed added those lines to the existing
`term-handle-ansi-terminal-messages`function:
[-- Attachment #2: term-handle-ansi-terminal-messages addition --]
[-- Type: text/plain, Size: 2128 bytes --]
(defun term-handle-ansi-terminal-messages (message)
;; Is there a command here?
(while (string-match "\eAnSiT.+\n" message)
;; Extract the command code and the argument.
(let* ((start (match-beginning 0))
(command-code (aref message (+ start 6)))
(argument
(save-match-data
(substring message
(+ start 8)
(string-match "\r?\n" message
(+ start 8)))))
ignore)
;; Delete this command from MESSAGE.
(setq message (replace-match "" t t message))
;; If we recognize the type of command, set the appropriate variable.
(cond ((= command-code ?c)
(setq term-ansi-at-dir argument))
((= command-code ?h)
(setq term-ansi-at-host argument))
((= command-code ?u)
(setq term-ansi-at-user argument))
((= command-code ?e)
(save-excursion
(find-file-other-window argument))
;; Otherwise ignore this one.
(t
(setq ignore t)))
;; Update default-directory based on the changes this command made.
(if ignore
nil
(setq default-directory
(file-name-as-directory
(if (and (string= term-ansi-at-host (system-name))
(string= term-ansi-at-user (user-real-login-name)))
(expand-file-name term-ansi-at-dir)
(if (string= term-ansi-at-user (user-real-login-name))
(concat "/" term-ansi-at-host ":" term-ansi-at-dir)
(concat "/" term-ansi-at-user "@" term-ansi-at-host ":"
term-ansi-at-dir)))))
;; I'm not sure this is necessary,
;; but it's best to be on the safe side.
(if (string= term-ansi-at-host (system-name))
(progn
(setq ange-ftp-default-user term-ansi-at-save-user)
(setq ange-ftp-default-password term-ansi-at-save-pwd)
(setq ange-ftp-generate-anonymous-password term-ansi-at-save-anon))
(setq term-ansi-at-save-user ange-ftp-default-user)
(setq term-ansi-at-save-pwd ange-ftp-default-password)
(setq term-ansi-at-save-anon ange-ftp-generate-anonymous-password)
(setq ange-ftp-default-user nil)
(setq ange-ftp-default-password nil)
(setq ange-ftp-generate-anonymous-password nil)))))
message)
[-- Attachment #3: Type: text/plain, Size: 1019 bytes --]
>
>> Most of the time thi works.
>>
>> When it doesn't work as expected,
>
> How often does it fail?
Enough to notice buy no enough to notice a pattern.
>
>> 1. I get the error:
>>
>> if: Symbol’s value as variable is void:
>> term-pending-delete-marker
>>
>> Debugger entered--Lisp error: (void-variable term-pending-delete-marker)
>> term-emulate-terminal(#<process test> "\nAnSiTe test\nAnSiTu liveuser\nAnSiTc /home/liveuser\nAnSiTh localhost.localdomain\n")
>>
>
> Seems like you might be running in the wrong buffer.
> term-pending-delete-marker is only defined buffer-locally.
Since I use `find-file-other-window`, i.e. another buffer,
why don't I get that error every time that ANSI code is
processed instead of only occasionally?
When does `term-pending-delete-marker`kick in?
Shouldn't it only be a factor as I am typing chacaters and/or
interacting with the ansi-term?
Thanks.
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#28687: 25.2; Error using term-handle-ansi-terminal-messages
2017-10-16 8:01 ` Live System User
@ 2017-10-16 23:49 ` Noam Postavsky
0 siblings, 0 replies; 4+ messages in thread
From: Noam Postavsky @ 2017-10-16 23:49 UTC (permalink / raw)
To: Live System User; +Cc: 28687
Live System User <nyc4bos@aol.com> writes:
> Noam Postavsky <npostavs@users.sourceforge.net> writes:
>
>> Do you mean you have defined some new function? Please post a complete
>> example, not just fragments.
>
> No: I justed added those lines to the existing
> `term-handle-ansi-terminal-messages`function:
>
> (defun term-handle-ansi-terminal-messages (message)
[...]
> ((= command-code ?e)
> (save-excursion
> (find-file-other-window argument))
You have a missing paren here, is that a typo introduced when posting,
or is that what you ran?
And could you elaborate on the steps you take after that? You said
something about an alias, but I couldn't tell if it's relevant or not.
>>
>>> Most of the time thi works.
>>>
>>> When it doesn't work as expected,
>>
>> How often does it fail?
>
> Enough to notice buy no enough to notice a pattern.
So how many times do I do "it" until I should expect to see a failure?
10? 100? 1000?
And what is "it" exactly?
>>> Debugger entered--Lisp error: (void-variable term-pending-delete-marker)
>>> term-emulate-terminal(#<process test> "\nAnSiTe test\nAnSiTu liveuser\nAnSiTc /home/liveuser\nAnSiTh localhost.localdomain\n")
>>>
>>
>> Seems like you might be running in the wrong buffer.
>> term-pending-delete-marker is only defined buffer-locally.
>
> Since I use `find-file-other-window`, i.e. another buffer,
> why don't I get that error every time that ANSI code is
> processed instead of only occasionally?
>
> When does `term-pending-delete-marker`kick in?
>
> Shouldn't it only be a factor as I am typing chacaters and/or
> interacting with the ansi-term?
It's referenced in term-emulate-terminal which is a process filter, so
it could be significant during output too.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-10-16 23:49 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-03 15:19 bug#28687: 25.2; Error using term-handle-ansi-terminal-messages Live System User
2017-10-12 2:33 ` Noam Postavsky
2017-10-16 8:01 ` Live System User
2017-10-16 23:49 ` Noam Postavsky
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.