]> git.eshelyaron.com Git - emacs.git/commitdiff
network-connection-mode is derived from comint-mode
authorPeter Breton <pbreton@attbi.com>
Thu, 30 Mar 2000 10:20:29 +0000 (10:20 +0000)
committerPeter Breton <pbreton@attbi.com>
Thu, 30 Mar 2000 10:20:29 +0000 (10:20 +0000)
Added network-connection-mode-setup function
Save host and port/service information in local variables

lisp/net/net-utils.el

index f03d321e868ad4a0be9237b893f5bc04af4e48c1..480a6163a2ea7160355ef2e59d344a5a00108c5f 100644 (file)
@@ -218,6 +218,10 @@ These options can be used to limit how many ICMP packets are emitted."
   :type  'regexp
   )
 
+;; Internal variables
+(defvar network-connection-service nil)
+(defvar network-connection-host    nil)
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Nslookup goodies
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -816,6 +820,29 @@ from SEARCH-STRING.  With argument, prompt for whois server."
 ;;; General Network connection
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
+;; Using a derived mode gives us keymaps, hooks, etc.
+(define-derived-mode 
+  network-connection-mode comint-mode "Network-Connection"
+  "Major mode for interacting with the network-connection program."
+  )
+
+(defun network-connection-mode-setup (host service)
+  (let ((network-abbrev-table
+        (or 
+         (assoc service network-connection-service-abbrev-alist)
+        (and (rassoc service network-connection-service-alist)
+             (assoc 
+              (elt (rassoc service network-connection-service-alist) 0)
+              network-connection-service-abbrev-alist)))))
+    (make-local-variable 'network-connection-host)
+    (setq network-connection-host host)
+    (make-local-variable 'network-connection-service) 
+    (setq network-connection-service service)
+    (and network-abbrev-table
+        (setq local-abbrev-table (cdr network-abbrev-table))
+        (abbrev-mode t)
+        )))
+
 ;;;###autoload
 (defun network-connection-to-service (host service)
   "Open a network connection to SERVICE on HOST."
@@ -842,15 +869,19 @@ from SEARCH-STRING.  With argument, prompt for whois server."
 (defun network-service-connection (host service)
   "Open a network connection to SERVICE on HOST."
   (require 'comint)
-  (let (
+  (let* (
        (process-name (concat "Network Connection [" host " " service "]"))
        (portnum (string-to-number service))
+       (buf (get-buffer-create (concat "*" process-name "*")))
        )
     (or (zerop portnum) (setq service portnum))
     (make-comint 
      process-name
      (cons host service))
-    (pop-to-buffer (get-buffer (concat "*" process-name "*")))
+    (set-buffer buf)
+    (network-connection-mode)
+    (network-connection-mode-setup host service)
+    (pop-to-buffer buf)
     ))
 
 (provide 'net-utils)