]> code.delx.au - gnu-emacs/blobdiff - lisp/talk.el
* files.el (hack-one-local-variable): If the mode function is for
[gnu-emacs] / lisp / talk.el
index eb3d9d3d9a55c5237f5ebeb3ec1b5630a7eea89d..691f127addd6f4aa9acad3980e827cd0dbbd5121 100644 (file)
@@ -1,7 +1,7 @@
 ;;; talk.el --- allow several users to talk to each other through Emacs
 
 ;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005,
-;;   2006, 2007, 2008 Free Software Foundation, Inc.
+;;   2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: comm, frames
@@ -50,26 +50,19 @@ Each element has the form (DISPLAY FRAME BUFFER).")
   (interactive)
   (let ((type (frame-live-p (selected-frame)))
        (display (frame-terminal (selected-frame))))
-    (cond
-     ((eq type t)
-      (talk-add-display (selected-frame)))
-     ((eq type 'x)
-      (talk-add-display (frame-terminal (selected-frame))))
-     (t
-      (error "Unknown frame type"))))
+    (if (or (eq type t) (eq type 'x))
+       (talk-add-display 
+        (terminal-name (frame-terminal (selected-frame))))
+      (error "Unknown frame type")))
   (talk-update-buffers))
 
-(defun talk-add-display (frame)
-  (let* ((display (if (frame-live-p frame)
-                     (frame-terminal frame)
-                   frame))
-        (elt (assoc display talk-display-alist))
-        (name (concat "*talk-" (terminal-name display) "*"))
-        buffer)
-    (unless (frame-live-p frame)
-      (setq frame (make-frame-on-display display (list (cons 'name name)))))
+(defun talk-add-display (display)
+  (let* ((elt (assoc display talk-display-alist))
+        (name (concat "*talk-" display "*"))
+        frame buffer)
     (if (and elt (frame-live-p (nth 1 elt)))
-       (setq frame (nth 1 elt)))
+       (setq frame (nth 1 elt))
+      (setq frame (make-frame-on-display display (list (cons 'name name)))))
     (if (not (and elt (buffer-name (get-buffer (setq buffer (nth 2 elt))))))
        (setq buffer (get-buffer-create name)))
     (add-to-list 'delete-frame-functions 'talk-handle-delete-frame)