From d0999c2df59eb5fc38176a89504a6deb764746f8 Mon Sep 17 00:00:00 2001
From: Arthur Gleckler <edu/mit/csail/zurich/arthur>
Date: Thu, 3 Oct 1991 17:47:59 +0000
Subject: [PATCH] Make telnet accept port number after hostname.

---
 v7/src/edwin/telnet.scm | 42 +++++++++++++++++++++++++++++++----------
 1 file changed, 32 insertions(+), 10 deletions(-)

diff --git a/v7/src/edwin/telnet.scm b/v7/src/edwin/telnet.scm
index 51eb910d2..d4e6beb71 100644
--- a/v7/src/edwin/telnet.scm
+++ b/v7/src/edwin/telnet.scm
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/telnet.scm,v 1.2 1991/10/02 09:18:48 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/telnet.scm,v 1.3 1991/10/03 17:47:59 arthur Exp $
 
 Copyright (c) 1991 Massachusetts Institute of Technology
 
@@ -74,18 +74,40 @@ and telnet-mode-hook, in that order."
 
 (define-command telnet
   "Run telnet in a buffer.
-With a prefix argument, it unconditionally creates a new telnet connection."
+With a prefix argument, it unconditionally creates a new telnet connection.
+If port number is typed after hostname (separated by a space), use it instead
+of the default."
   "sTelnet to Host\nP"
   (lambda (host #!optional arg)
-    (select-buffer
-     (make-comint (ref-mode-object telnet)
-		  (let ((default (string-append host "-telnet")))
-		    (if (or (default-object? arg)
-			    (not arg))
+    (let ((default
+	    (let ((default (string-append host "-telnet")))
+	      (if (or (default-object? arg)
+		      (not arg))
+		  default
+		  (list default)))))
+      (select-buffer
+       (if (re-match-string-forward
+	    (re-compile-pattern "\\([^ ]+\\) \\([^ ]+\\)" false)
+	    true
+	    false
+	    host)
+	   (let ((host* (substring host
+				   (re-match-start-index 1)
+				   (re-match-end-index 1))))
+	     (let ((port (substring host
+				    (re-match-start-index 2)
+				    (re-match-end-index 2))))
+	       (if (exact-nonnegative-integer? (string->number port))
+		   (make-comint (ref-mode-object telnet)
+				default
+				"telnet"
+				host*
+				port)
+		   (editor-error "Port must be a positive integer"))))
+	   (make-comint (ref-mode-object telnet)
 			default
-			(list default)))
-		  "telnet"
-		  host))))
+			"telnet"
+			host))))))
 
 (define-command telnet-send-input
   "Send input to telnet process.
-- 
2.25.1