Function: url-open-telnet
url-open-telnet is a byte-compiled function defined in url-gw.el.gz.
Signature
(url-open-telnet NAME BUFFER HOST SERVICE)
Source Code
;; Defined in /usr/src/emacs/lisp/url/url-gw.el.gz
;; Stolen from red gnus nntp.el
(defun url-open-telnet (name buffer host service)
(if (not (stringp service))
(setq service (int-to-string service)))
(with-current-buffer (get-buffer-create buffer)
(erase-buffer)
(let ((proc (start-process name buffer "telnet" "-8"))
(case-fold-search t))
(when (memq (process-status proc) '(open run))
(process-send-string proc "set escape \^X\n")
(process-send-string proc (concat
"open " url-gateway-telnet-host "\n"))
(url-wait-for-string url-gateway-telnet-login-prompt proc)
(process-send-string
proc (concat
(or url-gateway-telnet-user-name
(setq url-gateway-telnet-user-name (read-string "login: ")))
"\n"))
(url-wait-for-string url-gateway-telnet-password-prompt proc)
(process-send-string
proc (concat
(or url-gateway-telnet-password
(setq url-gateway-telnet-password
(read-passwd "Password: ")))
"\n"))
(erase-buffer)
(url-wait-for-string url-gateway-prompt-pattern proc)
(process-send-string
proc (concat (mapconcat 'identity
(append url-gateway-telnet-parameters
(list host service)) " ") "\n"))
(url-wait-for-string "^\r*Escape character.*\n+" proc)
(delete-region (point-min) (match-end 0))
(process-send-string proc "\^]\n")
(url-wait-for-string "^telnet" proc)
(process-send-string proc "mode character\n")
(accept-process-output proc 1)
(sit-for 1)
(goto-char (point-min))
(forward-line 1)
(delete-region (point) (point-max)))
proc)))