]> code.delx.au - gnu-emacs/blobdiff - lisp/net/rcirc.el
Update copyright year to 2015
[gnu-emacs] / lisp / net / rcirc.el
index 41cc0022fec6de2fbd241d1f6706431eb4200867..74d03f59f3dac97a4d7850698b9c3bf455a29a04 100644 (file)
@@ -1,6 +1,6 @@
 ;;; rcirc.el --- default, simple IRC client          -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2005-2014 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2015 Free Software Foundation, Inc.
 
 ;; Author: Ryan Yeske <rcyeske@gmail.com>
 ;; Maintainers: Ryan Yeske <rcyeske@gmail.com>,
@@ -145,11 +145,13 @@ for connections using SSL/TLS."
 
 (defcustom rcirc-fill-column nil
   "Column beyond which automatic line-wrapping should happen.
-If nil, use value of `fill-column'.  If 'frame-width, use the
-maximum frame width."
-  :type '(choice (const :tag "Value of `fill-column'")
-                (const :tag "Full frame width" frame-width)
-                (integer :tag "Number of columns"))
+If nil, use value of `fill-column'.
+If a function (e.g., `frame-text-width' or `window-text-width'),
+call it to compute the number of columns."
+  :risky t                              ; can get funcalled
+  :type '(choice (const :tag "Value of `fill-column'" nil)
+                (integer :tag "Number of columns")
+                (function :tag "Function returning the number of columns"))
   :group 'rcirc)
 
 (defcustom rcirc-fill-prefix nil
@@ -597,10 +599,10 @@ If ARG is non-nil, instead prompt for connection parameters."
   `(with-current-buffer rcirc-server-buffer
      ,@body))
 
-(defun rcirc-float-time ()
+(defalias 'rcirc-float-time
   (if (featurep 'xemacs)
-      (time-to-seconds (current-time))
-    (float-time)))
+      'time-to-seconds
+    'float-time))
 
 (defun rcirc-prompt-for-encryption (server-plist)
   "Prompt the user for the encryption method to use.
@@ -661,7 +663,7 @@ Functions are called with PROCESS and SENTINEL arguments.")
 (defcustom rcirc-reconnect-delay 0
   "The minimum interval in seconds between reconnect attempts.
 When 0, do not auto-reconnect."
-  :version "24.5"
+  :version "25.1"
   :type 'integer
   :group 'rcirc)
 
@@ -679,7 +681,8 @@ When 0, do not auto-reconnect."
                       (format "%s: %s (%S)"
                               (process-name process)
                               sentinel
-                              (process-status process)) (not rcirc-target))
+                              (process-status process))
+                       (not rcirc-target))
          (rcirc-disconnect-buffer)))
       (when (and (string= sentinel "deleted")
                  (< 0 rcirc-reconnect-delay))
@@ -802,11 +805,11 @@ Function is called with PROCESS, COMMAND, SENDER, ARGS and LINE.")
 (defun rcirc-buffer-process (&optional buffer)
   "Return the process associated with channel BUFFER.
 With no argument or nil as argument, use the current buffer."
-  (let ((buffer (or buffer (if (buffer-live-p rcirc-server-buffer)
-                              rcirc-server-buffer
-                            (error "Server buffer deleted")))))
-    (or (with-current-buffer buffer rcirc-process)
-       rcirc-process)))
+  (let ((buffer (or buffer (and (buffer-live-p rcirc-server-buffer)
+                               rcirc-server-buffer))))
+    (if buffer
+        (with-current-buffer buffer rcirc-process)
+      rcirc-process)))
 
 (defun rcirc-server-name (process)
   "Return PROCESS server name, given by the 001 response."
@@ -1903,7 +1906,9 @@ Uninteresting lines are those whose responses are listed in
        (message "Rcirc-Omit mode enabled"))
     (remove-from-invisibility-spec '(rcirc-omit . nil))
     (message "Rcirc-Omit mode disabled"))
-    (recenter (when (> (point) rcirc-prompt-start-marker) -1)))
+  (dolist (window (get-buffer-window-list (current-buffer)))
+    (with-selected-window window
+      (recenter (when (> (point) rcirc-prompt-start-marker) -1)))))
 
 (defun rcirc-switch-to-server-buffer ()
   "Switch to the server buffer associated with current channel buffer."
@@ -2530,11 +2535,10 @@ If ARG is given, opens the URL in a new browser window."
     (let ((fill-prefix
           (or rcirc-fill-prefix
               (make-string (- (point) (line-beginning-position)) ?\s)))
-         (fill-column (- (cond ((eq rcirc-fill-column 'frame-width)
-                                (1- (frame-width)))
-                               (rcirc-fill-column
-                                rcirc-fill-column)
-                               (t fill-column))
+         (fill-column (- (cond ((null rcirc-fill-column) fill-column)
+                                ((functionp rcirc-fill-column)
+                                (funcall rcirc-fill-column))
+                               (t rcirc-fill-column))
                          ;; make sure ... doesn't cause line wrapping
                          3)))
       (fill-region (point) (point-max) nil t))))