* riece.el: Add autoload setting for derived-mode-class.
authorDaiki Ueno <ueno@unixuser.org>
Fri, 24 Oct 2003 02:17:04 +0000 (02:17 +0000)
committerDaiki Ueno <ueno@unixuser.org>
Fri, 24 Oct 2003 02:17:04 +0000 (02:17 +0000)
(riece-shrink-buffer-idle-timer): New variable.
(riece): Set idle timer to shrink channel buffers.
(riece-shrink-buffer): New function.

* riece-xemacs.el (riece-overlays-in): New function.
(riece-delete-overlay): New alias.
(riece-kill-all-overlays): New function.

* riece-server.el (riece-quit-server-process): Don't set timer if
riece-quit-timeout is nil.

* riece-options.el (riece-quit-timeout): Change custom type.
(riece-shrink-buffer-idle-time-delay): New user option.
(riece-max-buffer-size): New user option.

* riece-icon.el (riece-icon-add-image-region) [XEmacs]: Delete
extents if already exists.

* riece-emacs.el (riece-overlays-in): New alias.
(riece-delete-overlay): New alias.
(riece-kill-all-overlays): New function.
(riece-run-with-idle-timer): New alias.
(riece-cancel-timer): New alias.

* riece-display.el (riece-update-user-list-buffer): Kill all
overlays in buffer.
(riece-update-channel-list-buffer): Ditto.

* riece-commands.el (riece-command-set-operators): Reset group.
(riece-command-set-speakers): Ditto.

lisp/riece-commands.el
lisp/riece-display.el
lisp/riece-emacs.el
lisp/riece-icon.el
lisp/riece-options.el
lisp/riece-server.el
lisp/riece-xemacs.el
lisp/riece.el

index 039543d..6bc20a9 100644 (file)
@@ -294,16 +294,17 @@ the layout to the selected layout-name."
     (while users
       (setq group (cons (car users) group)
            users (cdr users))
-      (if (or (= (length group) 3)
-             (null users))
-         (riece-send-string
-          (format "MODE %s %c%s %s\r\n"
-                  (riece-identity-prefix riece-current-channel)
-                  (if current-prefix-arg
-                      ?-
-                    ?+)
-                  (make-string (length group) ?o)
-                  (mapconcat #'identity group " ")))))))
+      (when (or (= (length group) 3)
+               (null users))
+       (riece-send-string
+        (format "MODE %s %c%s %s\r\n"
+                (riece-identity-prefix riece-current-channel)
+                (if current-prefix-arg
+                    ?-
+                  ?+)
+                (make-string (length group) ?o)
+                (mapconcat #'identity group " ")))
+       (setq group nil)))))
 
 (defun riece-command-set-speakers (users &optional arg)
   (interactive
@@ -326,16 +327,17 @@ the layout to the selected layout-name."
     (while users
       (setq group (cons (car users) group)
            users (cdr users))
-      (if (or (= (length group) 3)
-             (null users))
-         (riece-send-string
-          (format "MODE %s %c%s %s\r\n"
-                  (riece-identity-prefix riece-current-channel)
-                  (if current-prefix-arg
-                      ?-
-                    ?+)
-                  (make-string (length group) ?v)
-                  (mapconcat #'identity group " ")))))))
+      (when (or (= (length group) 3)
+               (null users))
+       (riece-send-string
+        (format "MODE %s %c%s %s\r\n"
+                (riece-identity-prefix riece-current-channel)
+                (if current-prefix-arg
+                    ?-
+                  ?+)
+                (make-string (length group) ?v)
+                (mapconcat #'identity group " ")))
+       (setq group nil)))))
 
 (defun riece-command-send-message (message notice)
   "Send MESSAGE to the current channel."
index dcb834e..f675e99 100644 (file)
@@ -59,6 +59,7 @@ Local to the buffer in `riece-buffer-list'.")
               (inhibit-read-only t)
               buffer-read-only)
          (erase-buffer)
+         (riece-kill-all-overlays)
          (while users
            (insert (if (memq ?o (cdr (car users)))
                        "@"
@@ -81,6 +82,7 @@ Local to the buffer in `riece-buffer-list'.")
          (index 1)
          (channels riece-current-channels))
       (erase-buffer)
+      (riece-kill-all-overlays)
       (while channels
        (if (car channels)
            (insert (riece-format-channel-list-line
index a22ecac..00759b7 100644 (file)
 (defalias 'riece-overlay-put 'overlay-put)
 (defalias 'riece-overlay-start 'overlay-start)
 (defalias 'riece-overlay-buffer 'overlay-buffer)
+(defalias 'riece-overlays-in 'overlays-in)
+(defalias 'riece-delete-overlay 'delete-overlay)
+
+(defun riece-kill-all-overlays ()
+  "Delete all overlays in the current buffer."
+  (let* ((overlay-lists (overlay-lists))
+         (buffer-read-only nil)
+         (overlays (delq nil (nconc (car overlay-lists) (cdr overlay-lists)))))
+    (while overlays
+      (delete-overlay (car overlays))
+      (setq overlays (cdr overlays)))))
 
 (defalias 'riece-run-at-time 'run-at-time)
+(defalias 'riece-run-with-idle-timer 'run-with-idle-timer)
+(defalias 'riece-cancel-timer 'cancel-timer)
 
 (provide 'riece-emacs)
 
index 0e067f9..65a3de4 100644 (file)
@@ -203,6 +203,12 @@ static char * a_xpm[] = {
 (eval-and-compile
   (if (featurep 'xemacs)
       (defun riece-icon-add-image-region (image start end)
+       (map-extents
+        (lambda (extent ignore)
+          (if (or (extent-property extent 'riece-icon-user-list-extent)
+                  (extent-property extent 'riece-icon-user-list-annotation))
+              (delete-extent extent)))
+        (current-buffer) start end)
        (let ((extent (make-extent start end))
              (annotation (make-annotation image end 'text)))
          (set-extent-property extent 'end-open t)
@@ -212,7 +218,7 @@ static char * a_xpm[] = {
          (set-extent-property annotation
                               'riece-icon-user-list-extent extent)
          (set-extent-property extent
-                              'riece-icon-user-list-extent annotation)))
+                              'riece-icon-user-list-annotation annotation)))
     (defun riece-icon-add-image-region (image start end)
       (let ((inhibit-read-only