* riece.el (riece-submit-bug-report): Insert content of riece-debug-buffer.
[riece] / lisp / riece.el
index a7d8c92..5b0105f 100644 (file)
@@ -58,7 +58,9 @@
     (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.")
@@ -184,7 +186,8 @@ If optional argument SAFE is nil, overwrite previous definitions."
     "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
@@ -275,6 +278,9 @@ If optional argument CONFIRM is non-nil, ask which IRC server to connect."
   (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))
@@ -337,15 +343,15 @@ If optional argument CONFIRM is non-nil, ask which IRC server to connect."
     (while (> (buffer-size) riece-max-buffer-size)
       (let* ((inhibit-read-only t)
             buffer-read-only
-            (start (point))
-            (end (progn (beginning-of-line
-                         (1+ riece-shrink-buffer-remove-lines))
-                        (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
@@ -370,6 +376,8 @@ If optional argument CONFIRM is non-nil, ask which IRC server to connect."
        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))
 
@@ -615,6 +623,10 @@ are familiar with the debugger, to get a lisp back-trace.")
                        (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")