(riece-dialogue-buffer "*Dialogue*" riece-dialogue-mode)
(riece-others-buffer "*Others*" riece-others-mode)
(riece-channel-list-buffer "*Channels*" riece-channel-list-mode)
- (riece-user-list-buffer " *Users*" riece-user-list-mode)))
+ (riece-user-list-buffer " *Users*" riece-user-list-mode)
+ (riece-temp-buffer " *Temp*")
+ (riece-debug-buffer " *Debug*")))
(defvar riece-shrink-buffer-idle-timer nil
"Timer object to periodically shrink channel buffers.")
"f" riece-command-finger
"\C-tf" riece-command-toggle-freeze
"\C-to" riece-command-toggle-own-freeze
+ "\C-tO" riece-command-toggle-others-buffer-mode
"\C-tu" riece-command-toggle-user-list-buffer-mode
"\C-tc" riece-command-toggle-channel-buffer-mode
"\C-tC" riece-command-toggle-channel-list-buffer-mode
"r" riece-command-configure-windows
"x" riece-command-copy-region
"t" riece-command-topic
- "w" riece-command-who)
+ "w" riece-command-who
+ "z" riece-command-suspend-resume)
(riece-define-keys riece-command-mode-map
"\r" riece-command-enter-message
(run-hooks 'riece-after-load-startup-hook)
(if (riece-server-opened)
(riece-command-configure-windows)
+ (modify-frame-parameters (selected-frame)
+ (list (cons 'riece-window-configuration
+ (current-window-configuration))))
(unless riece-addons-insinuated
(setq riece-addons (riece-resolve-addons riece-addons))
(let ((pointer riece-addons))
(lambda ()
(let ((buffers riece-buffer-list))
(while buffers
- (if (eq (derived-mode-class
- (with-current-buffer (car buffers)
- major-mode))
- 'riece-dialogue-mode)
- (riece-shrink-buffer (car buffers)))
+ (if (buffer-live-p (car buffers))
+ (if (eq (derived-mode-class
+ (with-current-buffer (car buffers)
+ major-mode))
+ 'riece-dialogue-mode)
+ (riece-shrink-buffer (car buffers)))
+ (delq (car buffers) riece-buffer-list))
(setq buffers (cdr buffers))))))))
(switch-to-buffer riece-command-buffer)
(riece-display-connect-signals)
(while (> (buffer-size) riece-max-buffer-size)
(let* ((inhibit-read-only t)
buffer-read-only
- (start (point))
- (end (progn (beginning-of-line 2) (point)))
- (overlays (riece-overlays-in start end)))
+ (end (progn
+ (goto-char riece-shrink-buffer-remove-chars)
+ (beginning-of-line 2)
+ (point)))
+ (overlays (riece-overlays-in (point-min) end)))
(while overlays
(riece-delete-overlay (car overlays))
(setq overlays (cdr overlays)))
- (delete-region start end)))))
+ (delete-region (point-min) end)))))
(defun riece-exit ()
(if riece-save-variables-are-dirty
riece-operator-indicator "-"
riece-channel-status-indicator "-"
riece-freeze-indicator "-")
+ (modify-frame-parameters (selected-frame)
+ (list (list 'riece-window-configuration)))
(delete-other-windows)
(run-hooks 'riece-exit-hook))
(funcall (nth 2 (car alist))))
(setq alist (cdr alist))))))
-(defun riece-submit-bug-report (&optional recent-keys)
+(defvar reporter-prompt-for-summary-p)
+(defun riece-submit-bug-report (&optional recent-messages recent-keys)
"Submit via mail a bug report on Riece."
;; This strange form ensures that (recent-keys) is the value before
;; the bug subject string is read.
- (interactive (list (recent-keys)))
+ (interactive (list (riece-recent-messages 20) (recent-keys)))
+ (message "Querying server version...")
+ (let ((pointer riece-server-process-alist)
+ nickname)
+ (while pointer
+ (when (riece-server-process-opened (cdr (car pointer)))
+ (process-send-string (cdr (car pointer)) "VERSION\r\n")
+ (if (setq nickname
+ (with-current-buffer (process-buffer (cdr (car pointer)))
+ riece-real-nickname))
+ (process-send-string
+ (cdr (car pointer))
+ (format "PRIVMSG %s :\1VERSION\1\r\n" nickname))))
+ (setq pointer (cdr pointer))))
+ (sit-for 3)
+ (message "Querying server version...done")
(require 'reporter)
(let ((reporter-prompt-for-summary-p t))
- (when (y-or-n-p "Do you want to submit a report on Riece? ")
- (reporter-submit-bug-report
- "liece@unixuser.org"
- (riece-version)
- '(riece-debug)
- nil
- nil
- "This bug report will be sent to the Riece Development Team,
+ (unless riece-debug
+ (error "Please turn on riece-debug and restart Riece."))
+ (reporter-submit-bug-report
+ "liece@unixuser.org"
+ (riece-version)
+ '(riece-debug)
+ nil
+ nil
+ "This bug report will be sent to the Riece Development Team,
not to your local site managers!!
Please write in Japanese or English, because the Riece maintainers do
any lisp back-traces that you may have.
\(setq stack-trace-on-error t\), or \(setq debug-on-error t\) if you
are familiar with the debugger, to get a lisp back-trace.")
- (save-excursion
- (goto-char (point-max))
- (insert
- "\nAdd-on state:\n"
- "------------\n"
- (save-window-excursion
- (save-excursion
- (riece-command-list-addons)
- (search-forward "\n\n")
- (buffer-substring (point-min) (point)))))
- (when riece-debug
- (insert "Recent messages from servers:\n"
- "--------------------------")
- (let ((pointer riece-server-process-alist))
- (while pointer
- (insert "\n- \"" (car (car pointer)) "\", \n"
- (format "%S" (if (equal (car (car pointer)) "")
- riece-server
- (cdr (assoc (car (car pointer))
- riece-server-alist))))
- "\n"
- (if (process-live-p (cdr (car pointer)))
- (save-excursion
- (set-buffer (process-buffer (cdr (car pointer))))
- (goto-char (point-max))
- (beginning-of-line -20)
- (buffer-substring (point) (point-max)))
- "(closed server)"))
- (setq pointer (cdr pointer)))))
- ;; Insert recent keystrokes.
- (insert "\n\n"
- "Recent keystrokes:\n-----------------\n\n")
- (let ((before-keys (point)))
+ (delete-other-windows)
+ (save-excursion
+ (goto-char (point-max))
+ (insert
+ "\nAdd-on state:\n"
+ "------------\n"
+ (save-window-excursion
+ (save-excursion
+ (riece-command-list-addons)
+ (search-forward "\n\n")
+ (buffer-substring (point-min) (point)))))
+ (insert "Recent messages from servers:\n"
+ "--------------------------")
+ (let ((pointer riece-server-process-alist))
+ (while pointer
+ (insert "\n- \"" (car (car pointer)) "\", \n"
+ (format "%S" (if (equal (car (car pointer)) "")
+ riece-server
+ (cdr (assoc (car (car pointer))
+ riece-server-alist))))
+ "\n"
+ (if (riece-server-process-opened (cdr (car pointer)))
+ (save-excursion
+ (set-buffer (process-buffer (cdr (car pointer))))
+ (goto-char (point-max))
+ (beginning-of-line -60)
+ (buffer-substring (point) (point-max)))
+ "(closed server)"))
+ (setq pointer (cdr pointer))))
+ (insert "\n\nRecent debug messages:\n"
+ "-----------------------------------\n"
+ (with-current-buffer riece-debug-buffer
+ (buffer-string)))
+ ;; Insert recent keystrokes.
+ (insert "\n\nRecent keystrokes:\n"
+ "-----------------\n\n")
+ (let ((before-keys (point)))
(insert (key-description recent-keys))
(save-restriction
(narrow-to-region before-keys (point))
(while (progn (move-to-column 50) (not (eobp)))
(search-forward " " nil t)
(insert "\n"))))
- ;; Insert recent minibuffer messages.
- (insert "\nRecent messages (most recent first):\n"
- "-----------------------------------\n")
- (let ((standard-output (current-buffer)))
- (print-recent-messages 20)
- (insert "\n"))))))
+ ;; Insert recent minibuffer messages.
+ (insert "\n\nRecent messages (most recent first):\n"
+ "-----------------------------------\n"
+ recent-messages))))
(provide 'riece)