* read a reply from the terminal
@ 2007-07-14 2:42 Dan Nicolaescu
2007-07-14 10:39 ` Eli Zaretskii
` (2 more replies)
0 siblings, 3 replies; 22+ messages in thread
From: Dan Nicolaescu @ 2007-07-14 2:42 UTC (permalink / raw)
To: emacs-devel
I trying to do: (send-string-to-terminal "\e[>0c") and read the string
that the terminal sends back. Can this be done reliably in elisp?
The reason I want this is because I want to enable
"modifyOtherString" at runtime in term/xterm.el (it can be done by
sending an escape sequence to the terminal).
But not all terminals that set TERM to xterm support
modifyOtherString. By querying the terminal I can find out if it is
indeed an xterm and send the escape sequence to enable
modifyOtherString.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-14 2:42 read a reply from the terminal Dan Nicolaescu
@ 2007-07-14 10:39 ` Eli Zaretskii
2007-07-15 13:49 ` Johan Bockgård
2007-07-14 19:37 ` Stefan Monnier
2007-07-14 22:16 ` Johan Bockgård
2 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2007-07-14 10:39 UTC (permalink / raw)
To: Dan Nicolaescu; +Cc: emacs-devel
> From: Dan Nicolaescu <dann@ics.uci.edu>
> Date: Fri, 13 Jul 2007 19:42:51 -0700
>
> I trying to do: (send-string-to-terminal "\e[>0c") and read the string
> that the terminal sends back. Can this be done reliably in elisp?
If you know exactly how many bytes will the response include, I think
insert-file-contents should fit the bill. Doesn't it?
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-14 2:42 read a reply from the terminal Dan Nicolaescu
2007-07-14 10:39 ` Eli Zaretskii
@ 2007-07-14 19:37 ` Stefan Monnier
2007-07-15 0:34 ` Dan Nicolaescu
2007-07-14 22:16 ` Johan Bockgård
2 siblings, 1 reply; 22+ messages in thread
From: Stefan Monnier @ 2007-07-14 19:37 UTC (permalink / raw)
To: Dan Nicolaescu; +Cc: emacs-devel
> I trying to do: (send-string-to-terminal "\e[>0c") and read the string
> that the terminal sends back. Can this be done reliably in elisp?
Something like
(let ((coding-system-for-read 'binary))
(read-event ...))
should give you what you want,
Stefan
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-14 2:42 read a reply from the terminal Dan Nicolaescu
2007-07-14 10:39 ` Eli Zaretskii
2007-07-14 19:37 ` Stefan Monnier
@ 2007-07-14 22:16 ` Johan Bockgård
2007-07-14 22:35 ` Eli Zaretskii
2 siblings, 1 reply; 22+ messages in thread
From: Johan Bockgård @ 2007-07-14 22:16 UTC (permalink / raw)
To: emacs-devel
Is there a way to make Emacs always interpret ^G as a normal
character?
Here's an illustration of the problem:
emacs -nw -Q
In *scratch*, press C-j after
(read-key-sequence "Paste: ")
Assuming that the X selection contains the characters `a b c ^G 1 2
3', a <middle-click> produces
"^G"
123
"abc" are lost.
(The same thing happens with responses to send-string-to-terminal.)
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-14 22:16 ` Johan Bockgård
@ 2007-07-14 22:35 ` Eli Zaretskii
2007-07-15 0:24 ` Johan Bockgård
0 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2007-07-14 22:35 UTC (permalink / raw)
To: Johan Bockgård; +Cc: emacs-devel
> From: bojohan+news@dd.chalmers.se (Johan =?utf-8?Q?Bockg=C3=A5rd?=)
> Date: Sun, 15 Jul 2007 00:16:00 +0200
>
>
> Is there a way to make Emacs always interpret ^G as a normal
> character?
Does it help to use set-input-mode?
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-14 22:35 ` Eli Zaretskii
@ 2007-07-15 0:24 ` Johan Bockgård
0 siblings, 0 replies; 22+ messages in thread
From: Johan Bockgård @ 2007-07-15 0:24 UTC (permalink / raw)
To: emacs-devel
Eli Zaretskii <eliz@gnu.org> writes:
>> From: bojohan+news@dd.chalmers.se (Johan =?utf-8?Q?Bockg=C3=A5rd?=)
>> Date: Sun, 15 Jul 2007 00:16:00 +0200
>>
>>
>> Is there a way to make Emacs always interpret ^G as a normal
>> character?
>
> Does it help to use set-input-mode?
Yes. Thanks a lot.
--
Johan Bockgård
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-14 19:37 ` Stefan Monnier
@ 2007-07-15 0:34 ` Dan Nicolaescu
2007-07-15 1:33 ` Stefan Monnier
` (2 more replies)
0 siblings, 3 replies; 22+ messages in thread
From: Dan Nicolaescu @ 2007-07-15 0:34 UTC (permalink / raw)
To: Stefan Monnier; +Cc: emacs-devel
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> > I trying to do: (send-string-to-terminal "\e[>0c") and read the string
> > that the terminal sends back. Can this be done reliably in elisp?
>
> Something like
>
> (let ((coding-system-for-read 'binary))
> (read-event ...))
>
> should give you what you want,
Thanks, that seems to do it.
Here's a patch. It works for me correctly for all the terminals that I
tried it on.
Any objection to putting this in?
*** xterm.el 13 Jun 2007 16:19:48 -0700 1.39
--- xterm.el 14 Jul 2007 17:06:05 -0700
***************
*** 400,406 ****
;; Do it!
(xterm-register-default-colors)
;; This recomputes all the default faces given the colors we've just set up.
! (tty-set-up-initial-frame-faces)))
;; Set up colors, for those versions of xterm that support it.
(defvar xterm-standard-colors
--- 400,436 ----
;; Do it!
(xterm-register-default-colors)
;; This recomputes all the default faces given the colors we've just set up.
! (tty-set-up-initial-frame-faces)
!
! ;; Try to turn on the modifyOtherKeys feature on modern xterms.
! ;; When it is turned on much more key bindings work: things like
! ;; C-. C-, etc.
! ;; To do that we need to find out if the current terminal supports
! ;; modifyOtherKeys. At this time only xterm does.
! (let ((coding-system-for-read 'binary)
! (chr nil)
! (str nil))
! ;; Try to find out the type of terminal by sending a "Secondary
! ;; Device Attributes (DA)" query.
! (send-string-to-terminal "\e[>0c")
!
! ;; The reply should be of the form: \e [ > NUMBER1 ; NUMBER2 ; NUMBER3 c
! (when (equal (read-event) ?\e)
! (when (equal (read-event) 91)
! (while (not (equal (setq chr (read-event)) ?c))
! (setq str (concat str (string chr))))
! (when (string-match ">[0-9]+;\\([0-9]+\\);[0-9]+" str)
! ;; NUMBER2 is the xterm version number, look for something
! ;; greater than 216, the version when modifyOtherKeys was
! ;; introduced.
! (when (>= (string-to-number
! (substring str (match-beginning 1) (match-end 1))) 216)
! ;; Make sure that the modifyOtherKeys state is restored when
! ;; suspending, resuming and exiting.
! (add-hook 'suspend-hook 'xterm-turn-off-modifyOtherKeys)
! (add-hook 'suspend-resume-hook 'xterm-turn-on-modifyOtherKeys)
! (add-hook 'kill-emacs-hook 'xterm-turn-off-modifyOtherKeys)
! (xterm-turn-on-modifyOtherKeys))))))))
;; Set up colors, for those versions of xterm that support it.
(defvar xterm-standard-colors
***************
*** 518,522 ****
--- 548,560 ----
;; right colors, so clear them.
(clear-face-cache)))
+ (defun xterm-turn-on-modifyOtherKeys ()
+ "Turn on the modifyOtherKeys feature of xterm."
+ (send-string-to-terminal "\e[>4;1m"))
+
+ (defun xterm-turn-off-modifyOtherKeys ()
+ "Turn off the modifyOtherKeys feature of xterm."
+ (send-string-to-terminal "\e[>4m"))
+
;; arch-tag: 12e7ebdd-1e6c-4b25-b0f9-35ace25e855a
;;; xterm.el ends here
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-15 0:34 ` Dan Nicolaescu
@ 2007-07-15 1:33 ` Stefan Monnier
2007-07-15 8:18 ` Andreas Schwab
2007-07-15 22:53 ` Richard Stallman
2 siblings, 0 replies; 22+ messages in thread
From: Stefan Monnier @ 2007-07-15 1:33 UTC (permalink / raw)
To: Dan Nicolaescu; +Cc: emacs-devel
> ! (when (equal (read-event) 91)
^^
?\[
-- Stefan
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-15 0:34 ` Dan Nicolaescu
2007-07-15 1:33 ` Stefan Monnier
@ 2007-07-15 8:18 ` Andreas Schwab
2007-07-15 15:30 ` Dan Nicolaescu
2007-07-15 22:53 ` Richard Stallman
2 siblings, 1 reply; 22+ messages in thread
From: Andreas Schwab @ 2007-07-15 8:18 UTC (permalink / raw)
To: Dan Nicolaescu; +Cc: Stefan Monnier, emacs-devel
Dan Nicolaescu <dann@ics.uci.edu> writes:
> ! ;; Try to find out the type of terminal by sending a "Secondary
> ! ;; Device Attributes (DA)" query.
> ! (send-string-to-terminal "\e[>0c")
> !
> ! ;; The reply should be of the form: \e [ > NUMBER1 ; NUMBER2 ; NUMBER3 c
> ! (when (equal (read-event) ?\e)
> ! (when (equal (read-event) 91)
> ! (while (not (equal (setq chr (read-event)) ?c))
> ! (setq str (concat str (string chr))))
What if the terminal is ignoring the query, or there is some other
communication problem, wouldn't that mean that read-event would hang
here? IMHO the calls should use the timeout feature.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-14 10:39 ` Eli Zaretskii
@ 2007-07-15 13:49 ` Johan Bockgård
2007-07-15 17:19 ` Eli Zaretskii
0 siblings, 1 reply; 22+ messages in thread
From: Johan Bockgård @ 2007-07-15 13:49 UTC (permalink / raw)
To: emacs-devel
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Dan Nicolaescu <dann@ics.uci.edu>
>> Date: Fri, 13 Jul 2007 19:42:51 -0700
>>
>> I trying to do: (send-string-to-terminal "\e[>0c") and read the string
>> that the terminal sends back. Can this be done reliably in elisp?
>
> If you know exactly how many bytes will the response include, I think
> insert-file-contents should fit the bill. Doesn't it?
How?
--
Johan Bockgård
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-15 8:18 ` Andreas Schwab
@ 2007-07-15 15:30 ` Dan Nicolaescu
2007-07-15 17:30 ` Eli Zaretskii
0 siblings, 1 reply; 22+ messages in thread
From: Dan Nicolaescu @ 2007-07-15 15:30 UTC (permalink / raw)
To: Andreas Schwab; +Cc: Stefan Monnier, emacs-devel
Andreas Schwab <schwab@suse.de> writes:
> Dan Nicolaescu <dann@ics.uci.edu> writes:
>
> > ! ;; Try to find out the type of terminal by sending a "Secondary
> > ! ;; Device Attributes (DA)" query.
> > ! (send-string-to-terminal "\e[>0c")
> > !
> > ! ;; The reply should be of the form: \e [ > NUMBER1 ; NUMBER2 ; NUMBER3 c
> > ! (when (equal (read-event) ?\e)
>
> > ! (when (equal (read-event) 91)
> > ! (while (not (equal (setq chr (read-event)) ?c))
> > ! (setq str (concat str (string chr))))
>
> What if the terminal is ignoring the query, or there is some other
> communication problem, wouldn't that mean that read-event would hang
> here? IMHO the calls should use the timeout feature.
Good point. What is a good value for the timeout?
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-15 13:49 ` Johan Bockgård
@ 2007-07-15 17:19 ` Eli Zaretskii
2007-07-15 22:04 ` Johan Bockgård
0 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2007-07-15 17:19 UTC (permalink / raw)
To: Johan Bockgård; +Cc: emacs-devel
> From: bojohan+news@dd.chalmers.se (Johan =?utf-8?Q?Bockg=C3=A5rd?=)
> Date: Sun, 15 Jul 2007 15:49:01 +0200
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> >> From: Dan Nicolaescu <dann@ics.uci.edu>
> >> Date: Fri, 13 Jul 2007 19:42:51 -0700
> >>
> >> I trying to do: (send-string-to-terminal "\e[>0c") and read the string
> >> that the terminal sends back. Can this be done reliably in elisp?
> >
> > If you know exactly how many bytes will the response include, I think
> > insert-file-contents should fit the bill. Doesn't it?
>
> How?
How what? Sorry, I really don't understand the question.
In any case, Stefan suggested a different solution which Dan decided
to use.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-15 15:30 ` Dan Nicolaescu
@ 2007-07-15 17:30 ` Eli Zaretskii
2007-07-15 20:42 ` Dan Nicolaescu
0 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2007-07-15 17:30 UTC (permalink / raw)
To: Dan Nicolaescu; +Cc: schwab, emacs-devel
> From: Dan Nicolaescu <dann@ics.uci.edu>
> Date: Sun, 15 Jul 2007 08:30:00 -0700
> Cc: Stefan Monnier <monnier@iro.umontreal.ca>, emacs-devel@gnu.org
>
> Andreas Schwab <schwab@suse.de> writes:
>
> > Dan Nicolaescu <dann@ics.uci.edu> writes:
> >
> > > ! ;; Try to find out the type of terminal by sending a "Secondary
> > > ! ;; Device Attributes (DA)" query.
> > > ! (send-string-to-terminal "\e[>0c")
> > > !
> > > ! ;; The reply should be of the form: \e [ > NUMBER1 ; NUMBER2 ; NUMBER3 c
> > > ! (when (equal (read-event) ?\e)
> >
> > > ! (when (equal (read-event) 91)
> > > ! (while (not (equal (setq chr (read-event)) ?c))
> > > ! (setq str (concat str (string chr))))
> >
> > What if the terminal is ignoring the query, or there is some other
> > communication problem, wouldn't that mean that read-event would hang
> > here? IMHO the calls should use the timeout feature.
>
> Good point.
I thought about the same problem as Andreas, but didn't ask the
question since you told that you've tested the code on many terminals,
and I assumed those terminals included at least one that didn't
support this command. If that's not so, I suggest to test the new
code (with timeout) on such a terminal, as well as on those which do
support the command.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-15 17:30 ` Eli Zaretskii
@ 2007-07-15 20:42 ` Dan Nicolaescu
2007-08-03 21:54 ` Davis Herring
0 siblings, 1 reply; 22+ messages in thread
From: Dan Nicolaescu @ 2007-07-15 20:42 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: schwab, emacs-devel
Eli Zaretskii <eliz@gnu.org> writes:
> > From: Dan Nicolaescu <dann@ics.uci.edu>
> > Date: Sun, 15 Jul 2007 08:30:00 -0700
> > Cc: Stefan Monnier <monnier@iro.umontreal.ca>, emacs-devel@gnu.org
> >
> > Andreas Schwab <schwab@suse.de> writes:
> >
> > > Dan Nicolaescu <dann@ics.uci.edu> writes:
> > >
> > > > ! ;; Try to find out the type of terminal by sending a "Secondary
> > > > ! ;; Device Attributes (DA)" query.
> > > > ! (send-string-to-terminal "\e[>0c")
> > > > !
> > > > ! ;; The reply should be of the form: \e [ > NUMBER1 ; NUMBER2 ; NUMBER3 c
> > > > ! (when (equal (read-event) ?\e)
> > >
> > > > ! (when (equal (read-event) 91)
> > > > ! (while (not (equal (setq chr (read-event)) ?c))
> > > > ! (setq str (concat str (string chr))))
> > >
> > > What if the terminal is ignoring the query, or there is some other
> > > communication problem, wouldn't that mean that read-event would hang
> > > here? IMHO the calls should use the timeout feature.
> >
> > Good point.
>
> I thought about the same problem as Andreas, but didn't ask the
> question since you told that you've tested the code on many terminals,
> and I assumed those terminals included at least one that didn't
> support this command. If that's not so, I suggest to test the new
> code (with timeout) on such a terminal, as well as on those which do
> support the command.
I have now tested the code using a timeout of 0.1 on xterm, rxvt,
gnome-terminal, konsole, putty, and a very old xterm (from an old
Solaris). It works fine for all of them. All these terminals support
the "\e[>0c" query.
I also tested it on a Linux console, that does not support the query.
It works fine everywhere.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-15 17:19 ` Eli Zaretskii
@ 2007-07-15 22:04 ` Johan Bockgård
2007-07-16 3:11 ` Eli Zaretskii
0 siblings, 1 reply; 22+ messages in thread
From: Johan Bockgård @ 2007-07-15 22:04 UTC (permalink / raw)
To: emacs-devel
Eli Zaretskii <eliz@gnu.org> writes:
> How what? Sorry, I really don't understand the question.
How can insert-file-contents be used to read a reply from the terminal
(if you know how many bytes it contains). It sounded like you had a
solution in mind.
--
Johan Bockgård
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-15 0:34 ` Dan Nicolaescu
2007-07-15 1:33 ` Stefan Monnier
2007-07-15 8:18 ` Andreas Schwab
@ 2007-07-15 22:53 ` Richard Stallman
2007-07-16 0:56 ` Dan Nicolaescu
2 siblings, 1 reply; 22+ messages in thread
From: Richard Stallman @ 2007-07-15 22:53 UTC (permalink / raw)
To: Dan Nicolaescu; +Cc: monnier, emacs-devel
! ;; Try to find out the type of terminal by sending a "Secondary
! ;; Device Attributes (DA)" query.
! (send-string-to-terminal "\e[>0c")
!
! ;; The reply should be of the form: \e [ > NUMBER1 ; NUMBER2 ; NUMBER3 c
! (when (equal (read-event) ?\e)
! (when (equal (read-event) 91)
Is there any danger that some terminal programs won't implement
that query, and that these read-event calls will hang?
Perhaps the best thing to do is install the patch
and see if anyone complains.
+ (defun xterm-turn-on-modifyOtherKeys ()
Please rename that to xterm-turn-on-modify-other-keys.
Likewise the following function.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-15 22:53 ` Richard Stallman
@ 2007-07-16 0:56 ` Dan Nicolaescu
0 siblings, 0 replies; 22+ messages in thread
From: Dan Nicolaescu @ 2007-07-16 0:56 UTC (permalink / raw)
To: rms; +Cc: monnier, emacs-devel
Richard Stallman <rms@gnu.org> writes:
> ! ;; Try to find out the type of terminal by sending a "Secondary
> ! ;; Device Attributes (DA)" query.
> ! (send-string-to-terminal "\e[>0c")
> !
> ! ;; The reply should be of the form: \e [ > NUMBER1 ; NUMBER2 ; NUMBER3 c
> ! (when (equal (read-event) ?\e)
> ! (when (equal (read-event) 91)
>
> Is there any danger that some terminal programs won't implement
> that query, and that these read-event calls will hang?
It's not impossible, someone can implement a terminal emulator that
does not support this type of query and still set TERM to xterm. Most
applications won't care.. To be safe adding a timeout to the
read-event call seems to be the right thing to do.
> Perhaps the best thing to do is install the patch
> and see if anyone complains.
I'll do that.
> + (defun xterm-turn-on-modifyOtherKeys ()
>
> Please rename that to xterm-turn-on-modify-other-keys.
> Likewise the following function.
Sure.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-15 22:04 ` Johan Bockgård
@ 2007-07-16 3:11 ` Eli Zaretskii
2007-07-16 19:46 ` Johan Bockgård
0 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2007-07-16 3:11 UTC (permalink / raw)
To: Johan Bockgård; +Cc: emacs-devel
> From: bojohan+news@dd.chalmers.se (Johan =?utf-8?Q?Bockg=C3=A5rd?=)
> Date: Mon, 16 Jul 2007 00:04:43 +0200
>
> How can insert-file-contents be used to read a reply from the terminal
> (if you know how many bytes it contains). It sounded like you had a
> solution in mind.
The terminal can be addressed by name (its device driver name,
something like "/dev/tty1"), right? If so, you can read from that
device as if it were a file. insert-file-contents is a way to read
from files, and it supports reading a certain number of bytes.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-16 3:11 ` Eli Zaretskii
@ 2007-07-16 19:46 ` Johan Bockgård
0 siblings, 0 replies; 22+ messages in thread
From: Johan Bockgård @ 2007-07-16 19:46 UTC (permalink / raw)
To: emacs-devel
Eli Zaretskii <eliz@gnu.org> writes:
> The terminal can be addressed by name (its device driver name,
> something like "/dev/tty1"), right? If so, you can read from that
> device as if it were a file. insert-file-contents is a way to read
> from files, and it supports reading a certain number of bytes.
Ok. But it does not support reading a specified number of bytes when
the file is non-regular. (It would be useful if it could.)
if (!S_ISREG (st.st_mode))
{
not_regular = 1;
[...]
if (! NILP (replace) || ! NILP (beg) || ! NILP (end))
xsignal2 (Qfile_error,
build_string ("not a regular file"), orig_filename);
}
The manual says
It is possible to read a special file (such as a FIFO or an I/O
device) with `insert-file-contents', as long as REPLACE and VISIT
are `nil'.
It should be added that BEG and END have to be nil as well, or someone
might want to improve the code.
--
Johan Bockgård
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-07-15 20:42 ` Dan Nicolaescu
@ 2007-08-03 21:54 ` Davis Herring
2007-08-03 22:23 ` Dan Nicolaescu
0 siblings, 1 reply; 22+ messages in thread
From: Davis Herring @ 2007-08-03 21:54 UTC (permalink / raw)
To: Dan Nicolaescu; +Cc: schwab, Eli Zaretskii, emacs-devel
> I have now tested the code using a timeout of 0.1 on xterm, rxvt,
> gnome-terminal, konsole, putty, and a very old xterm (from an old
> Solaris). It works fine for all of them. All these terminals support
> the "\e[>0c" query.
> I also tested it on a Linux console, that does not support the query.
Sorry to bring this up so much later, but is a timeout of 0.1 always
appropriate? Is there ever a circumstance where a remote host would need
to provide the information, or is it always trapped by a local terminal
driver in such a case?
Davis
--
This product is sold by volume, not by mass. If it appears too dense or
too sparse, it is because mass-energy conversion has occurred during
shipping.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-08-03 21:54 ` Davis Herring
@ 2007-08-03 22:23 ` Dan Nicolaescu
2007-08-04 1:00 ` Stefan Monnier
0 siblings, 1 reply; 22+ messages in thread
From: Dan Nicolaescu @ 2007-08-03 22:23 UTC (permalink / raw)
To: herring; +Cc: schwab, Eli Zaretskii, emacs-devel
"Davis Herring" <herring@lanl.gov> writes:
> > I have now tested the code using a timeout of 0.1 on xterm, rxvt,
> > gnome-terminal, konsole, putty, and a very old xterm (from an old
> > Solaris). It works fine for all of them. All these terminals support
> > the "\e[>0c" query.
> > I also tested it on a Linux console, that does not support the query.
>
> Sorry to bring this up so much later, but is a timeout of 0.1 always
> appropriate? Is there ever a circumstance where a remote host would need
> to provide the information, or is it always trapped by a local terminal
> driver in such a case?
The terminal emulator replies.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: read a reply from the terminal
2007-08-03 22:23 ` Dan Nicolaescu
@ 2007-08-04 1:00 ` Stefan Monnier
0 siblings, 0 replies; 22+ messages in thread
From: Stefan Monnier @ 2007-08-04 1:00 UTC (permalink / raw)
To: Dan Nicolaescu; +Cc: schwab, Eli Zaretskii, emacs-devel
>> > I have now tested the code using a timeout of 0.1 on xterm, rxvt,
>> > gnome-terminal, konsole, putty, and a very old xterm (from an old
>> > Solaris). It works fine for all of them. All these terminals support
>> > the "\e[>0c" query.
>> > I also tested it on a Linux console, that does not support the query.
>>
>> Sorry to bring this up so much later, but is a timeout of 0.1 always
>> appropriate? Is there ever a circumstance where a remote host would need
>> to provide the information, or is it always trapped by a local terminal
>> driver in such a case?
> The terminal emulator replies.
But if you're running Emacs remotely via an ssh shell, then there's
a network between Emacs and the terminal emulator. E.g. in the case of
PuTTY, or in my case (xterm -e ssh <host>).
Stefan
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2007-08-04 1:00 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-14 2:42 read a reply from the terminal Dan Nicolaescu
2007-07-14 10:39 ` Eli Zaretskii
2007-07-15 13:49 ` Johan Bockgård
2007-07-15 17:19 ` Eli Zaretskii
2007-07-15 22:04 ` Johan Bockgård
2007-07-16 3:11 ` Eli Zaretskii
2007-07-16 19:46 ` Johan Bockgård
2007-07-14 19:37 ` Stefan Monnier
2007-07-15 0:34 ` Dan Nicolaescu
2007-07-15 1:33 ` Stefan Monnier
2007-07-15 8:18 ` Andreas Schwab
2007-07-15 15:30 ` Dan Nicolaescu
2007-07-15 17:30 ` Eli Zaretskii
2007-07-15 20:42 ` Dan Nicolaescu
2007-08-03 21:54 ` Davis Herring
2007-08-03 22:23 ` Dan Nicolaescu
2007-08-04 1:00 ` Stefan Monnier
2007-07-15 22:53 ` Richard Stallman
2007-07-16 0:56 ` Dan Nicolaescu
2007-07-14 22:16 ` Johan Bockgård
2007-07-14 22:35 ` Eli Zaretskii
2007-07-15 0:24 ` Johan Bockgård
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.