(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.
(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
(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."
(inhibit-read-only t)
buffer-read-only)
(erase-buffer)
+ (riece-kill-all-overlays)
(while users
(insert (if (memq ?o (cdr (car users)))
"@"
(index 1)
(channels riece-current-channels))
(erase-buffer)
+ (riece-kill-all-overlays)
(while channels
(if (car channels)
(insert (riece-format-channel-list-line
(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)
(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)
(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