emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: enhancement to M-x telnet


From: Kim F. Storm
Subject: Re: enhancement to M-x telnet
Date: 16 Apr 2004 15:35:02 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50

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 <address@hidden> http://www.cua.dk





reply via email to

[Prev in Thread] Current Thread [Next in Thread]