diff options
author | Kim F. Storm <storm@cua.dk> | 2004-04-21 21:42:06 +0000 |
---|---|---|
committer | Kim F. Storm <storm@cua.dk> | 2004-04-21 21:42:06 +0000 |
commit | 8fb5d2f1d901a7793797c82f27c74d561664c1db (patch) | |
tree | b41ac5f204287c25d639e3fc1e3a97b1652c2681 /lisp | |
parent | d88beab585b2c1b0c4b1f624780d228da92b0114 (diff) | |
download | emacs-8fb5d2f1d901a7793797c82f27c74d561664c1db.tar.gz |
(telnet): Add optional port arg.
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/net/telnet.el | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/lisp/net/telnet.el b/lisp/net/telnet.el index dac6f228cd6..d42c4335daa 100644 --- a/lisp/net/telnet.el +++ b/lisp/net/telnet.el @@ -197,18 +197,28 @@ rejecting one login and prompting again for a username and password.") ;;;###autoload (add-hook 'same-window-regexps "\\*telnet-.*\\*\\(\\|<[0-9]+>\\)") ;;;###autoload -(defun telnet (host) +(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 "sOpen connection to host: ") + (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)) - (name (concat telnet-program "-" (comint-arguments host 0 nil) )) + (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,7 +231,9 @@ Normally input is edited in Emacs and sent a line at a time." ;; 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")) + (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)))) |