- (if (string-match
- (concat "^\\(" riece-user-regexp "\\) :")
- string)
- (riece-insert-info
- (list riece-dialogue-buffer riece-others-buffer)
- (concat
- (riece-concat-server-name
- (format "%s is away: %s"
- (match-string 1 string)
- (substring string (match-end 0))))
- "\n"))))
+ (if (string-match (concat "^\\(" riece-user-regexp "\\) :") string)
+ (let ((user (match-string 1 string))
+ (message (substring string (match-end 0))))
+ (riece-user-toggle-away user t)
+ (riece-insert-info
+ (list riece-dialogue-buffer riece-others-buffer)
+ (concat
+ (riece-concat-server-name
+ (format "%s is away: %s"
+ (riece-format-identity
+ (riece-make-identity user riece-server-name)
+ t)
+ message))
+ "\n"))))
+ (riece-update-status-indicators)
+ (force-mode-line-update t))
+
+(defun riece-handle-305-message (prefix number name string)
+ (riece-user-toggle-away riece-real-nickname nil)
+ (riece-update-status-indicators)
+ (force-mode-line-update t))
+
+(defun riece-handle-306-message (prefix number name string)
+ (riece-user-toggle-away riece-real-nickname t)
+ (riece-update-status-indicators)
+ (force-mode-line-update t))