+(unless (or liece-inhibit-startup-message
+ (eq 'stream (device-type)))
+ (liece-xemacs-splash))
+
+;;; @ unread mark
+;;;
+(defun liece-xemacs-unread-mark (chnl)
+ (if liece-display-unread-mark
+ (with-current-buffer liece-channel-list-buffer
+ (let* ((buffer-read-only nil)
+ (file (liece-locate-icon-file liece-xemacs-unread-icon))
+ (glyph
+ (make-glyph
+ (nconc (if (and (featurep 'xpm) file)
+ (list (vector 'xpm :file file)))
+ (list (vector 'string
+ :data liece-channel-unread-character)))))
+ ext)
+ (goto-char (point-min))
+ (when (re-search-forward (concat "^ ?[0-9]+: " chnl "$") nil t)
+ (goto-char (match-end 0))
+ (insert " ")
+ (setq ext (make-extent (match-end 0) (1+ (match-end 0))))
+ (set-extent-end-glyph ext glyph))))))
+
+(defun liece-xemacs-read-mark (chnl)
+ (if liece-display-unread-mark
+ (with-current-buffer liece-channel-list-buffer
+ (let ((buffer-read-only nil))
+ (goto-char (point-min))
+ (when (re-search-forward (concat "^ ?[0-9]+: " chnl " $") nil t)
+ (goto-char (1- (match-end 0)))
+ (delete-char 1))))))
+
+(defun liece-xemacs-redisplay-unread-mark ()
+ (if liece-display-unread-mark
+ (dolist (chnl liece-channel-unread-list)
+ (liece-xemacs-unread-mark chnl))))