Undo the last change.
[riece] / lisp / riece-server.el
index ff6ca63..39c1610 100644 (file)
@@ -171,12 +171,12 @@ the `riece-server-keyword-map' variable."
          (when (<= riece-send-size riece-max-send-size)
            (process-send-string process string)
            (setq riece-last-send-time (current-time)))))
-      (if riece-send-queue
-         (riece-run-at-time riece-send-delay nil
-                            (lambda (process)
-                              (if (process-buffer process)
-                                  (riece-flush-send-queue process)))
-                            process)))))
+      (unless (riece-queue-empty riece-send-queue)
+       (riece-run-at-time riece-send-delay nil
+                          (lambda (process)
+                            (if (riece-server-process-opened process)
+                                (riece-flush-send-queue process)))
+                          process)))))
 
 (defun riece-process-send-string (process string)
   (with-current-buffer (process-buffer process)
@@ -266,6 +266,8 @@ the `riece-server-keyword-map' variable."
     (erase-buffer)))
 
 (defun riece-close-server-process (process)
+  (with-current-buffer (process-buffer process)
+    (run-hooks 'riece-after-close-hook))
   (kill-buffer (process-buffer process))
   (setq riece-server-process-alist
        (delq (rassq process riece-server-process-alist)
@@ -286,6 +288,15 @@ the `riece-server-keyword-map' variable."
              (throw 'found t))
          (setq alist (cdr alist)))))))
 
+(defun riece-server-properties (server-name)
+  "Return a list of properties associated with SERVER-NAME."
+  (if (equal server-name "")
+      riece-server
+    (let ((entry (assoc server-name riece-server-alist)))
+      (unless entry
+       (error "No such server"))
+      (cdr entry))))
+
 (provide 'riece-server)
 
 ;;; riece-server.el ends here