From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dan Nicolaescu Newsgroups: gmane.emacs.devel Subject: Re: read a reply from the terminal Date: Sun, 15 Jul 2007 13:42:29 -0700 Message-ID: <200707152042.l6FKgT31009360@oogie-boogie.ics.uci.edu> References: <200707140242.l6E2gpBC015778@oogie-boogie.ics.uci.edu> <200707150034.l6F0YYxT013883@oogie-boogie.ics.uci.edu> <200707151530.l6FFU15h003138@oogie-boogie.ics.uci.edu> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1184532263 5807 80.91.229.12 (15 Jul 2007 20:44:23 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sun, 15 Jul 2007 20:44:23 +0000 (UTC) Cc: schwab@suse.de, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jul 15 22:44:22 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1IAAwz-0006Pd-TL for ged-emacs-devel@m.gmane.org; Sun, 15 Jul 2007 22:44:18 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IAAwz-0005cW-Dx for ged-emacs-devel@m.gmane.org; Sun, 15 Jul 2007 16:44:17 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IAAww-0005Zu-4X for emacs-devel@gnu.org; Sun, 15 Jul 2007 16:44:14 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IAAwu-0005WU-GS for emacs-devel@gnu.org; Sun, 15 Jul 2007 16:44:13 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IAAwu-0005W7-CW for emacs-devel@gnu.org; Sun, 15 Jul 2007 16:44:12 -0400 Original-Received: from oogie-boogie.ics.uci.edu ([128.195.1.41]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IAAwt-0002M3-6R; Sun, 15 Jul 2007 16:44:11 -0400 Original-Received: from mothra.ics.uci.edu (mothra.ics.uci.edu [128.195.6.93]) by oogie-boogie.ics.uci.edu (8.13.6/8.13.6) with ESMTP id l6FKgT31009360; Sun, 15 Jul 2007 13:42:29 -0700 (PDT) In-Reply-To: (Eli Zaretskii's message of "Sun\, 15 Jul 2007 20\:30\:30 +0300") Original-Lines: 41 X-ICS-MailScanner: Found to be clean X-ICS-MailScanner-SpamCheck: not spam, SpamAssassin (score=-1.44, required 5, autolearn=disabled, ALL_TRUSTED -1.44) X-ICS-MailScanner-From: dann@mothra.ics.uci.edu X-detected-kernel: Solaris 9 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:74842 Archived-At: Eli Zaretskii writes: > > From: Dan Nicolaescu > > Date: Sun, 15 Jul 2007 08:30:00 -0700 > > Cc: Stefan Monnier , emacs-devel@gnu.org > > > > Andreas Schwab writes: > > > > > Dan Nicolaescu 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.