From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: no-spam@cua.dk (Kim F. Storm) Newsgroups: gmane.emacs.devel Subject: Re: enhancement to M-x telnet Date: 16 Apr 2004 15:35:02 +0200 Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: References: <87d66870uf.fsf@lexx.delysid.org> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1082116784 17334 80.91.224.253 (16 Apr 2004 11:59:44 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 16 Apr 2004 11:59:44 +0000 (UTC) Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Fri Apr 16 13:59:35 2004 Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1BES0N-00079I-00 for ; Fri, 16 Apr 2004 13:59:35 +0200 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.35 #1 (Debian)) id 1BES0M-0004jL-00 for ; Fri, 16 Apr 2004 13:59:34 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.30) id 1BERxE-0003lL-VC for emacs-devel@quimby.gnus.org; Fri, 16 Apr 2004 07:56:20 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.30) id 1BERm1-0001Tl-3x for emacs-devel@gnu.org; Fri, 16 Apr 2004 07:44:45 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.30) id 1BERdE-0007ez-7L for emacs-devel@gnu.org; Fri, 16 Apr 2004 07:36:12 -0400 Original-Received: from [212.88.64.25] (helo=mail-relay.sonofon.dk) by monty-python.gnu.org with smtp (Exim 4.30) id 1BERcw-0007eU-UN for emacs-devel@gnu.org; Fri, 16 Apr 2004 07:35:23 -0400 Original-Received: (qmail 44515 invoked from network); 16 Apr 2004 11:35:21 -0000 Original-Received: from unknown (HELO kfs-l.imdomain.dk.cua.dk) (213.83.150.2) by 0 with SMTP; 16 Apr 2004 11:35:21 -0000 Original-To: emacs-devel@gnu.org In-Reply-To: <87d66870uf.fsf@lexx.delysid.org> Original-Lines: 80 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:21750 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:21750 Thanks to all for your suggestions. Here is an new implementation, using a numeric prefix as port number, and C-u prefix to request function to prompt for port number. *** telnet.el 17 Feb 2004 00:19:18 +0100 1.7 --- telnet.el 16 Apr 2004 15:31:25 +0200 *************** *** 197,214 **** ;;;###autoload (add-hook 'same-window-regexps "\\*telnet-.*\\*\\(\\|<[0-9]+>\\)") ;;;###autoload ! (defun telnet (host) "Open a network login connection to host named HOST (a string). Communication with HOST is recorded in a buffer `*PROGRAM-HOST*' where PROGRAM is the telnet program being used. This program is controlled by the contents of the global variable `telnet-host-properties', falling back on the value of the global variable `telnet-program'. Normally input is edited in Emacs and sent a line at a time." ! (interactive "sOpen connection to host: ") (let* ((comint-delimiter-argument-list '(?\ ?\t)) (properties (cdr (assoc host telnet-host-properties))) (telnet-program (if properties (car properties) telnet-program)) ! (name (concat telnet-program "-" (comint-arguments host 0 nil) )) (buffer (get-buffer (concat "*" name "*"))) (telnet-options (if (cdr properties) (cons "-l" (cdr properties)))) process) --- 197,224 ---- ;;;###autoload (add-hook 'same-window-regexps "\\*telnet-.*\\*\\(\\|<[0-9]+>\\)") ;;;###autoload ! (defun telnet (host &optional port) "Open a network login connection to host named HOST (a string). + Optional arg PORT specifies alternative port to connect to. + Interactively, use \\[universal-argument] prefix to be prompted for port number. + Communication with HOST is recorded in a buffer `*PROGRAM-HOST*' where PROGRAM is the telnet program being used. This program is controlled by the contents of the global variable `telnet-host-properties', falling back on the value of the global variable `telnet-program'. Normally input is edited in Emacs and sent a line at a time." ! (interactive (list (read-string "Open connection to host: ") ! (cond ! ((null current-prefix-arg) nil) ! ((consp current-prefix-arg) (read-string "Port: ")) ! (t (prefix-numeric-value current-prefix-arg))))) ! (if (and port (numberp port)) ! (setq port (int-to-string port))) (let* ((comint-delimiter-argument-list '(?\ ?\t)) (properties (cdr (assoc host telnet-host-properties))) (telnet-program (if properties (car properties) telnet-program)) ! (hname (if port (concat host ":" port) host)) ! (name (concat telnet-program "-" (comint-arguments hname 0 nil) )) (buffer (get-buffer (concat "*" name "*"))) (telnet-options (if (cdr properties) (cons "-l" (cdr properties)))) process) *************** *** 221,227 **** ;; Don't send the `open' cmd till telnet is ready for it. (accept-process-output process) (erase-buffer) ! (send-string process (concat "open " host "\n")) (telnet-mode) (setq comint-input-sender 'telnet-simple-send) (setq telnet-count telnet-initial-count)))) --- 231,239 ---- ;; Don't send the `open' cmd till telnet is ready for it. (accept-process-output process) (erase-buffer) ! (send-string process (concat "open " host ! (if port " " "") (or port "") ! "\n")) (telnet-mode) (setq comint-input-sender 'telnet-simple-send) (setq telnet-count telnet-initial-count)))) -- Kim F. Storm http://www.cua.dk