Source

erc / erc-button.el

Diff from to

erc-button.el

         (define-key map (kbd "<button2>") 'erc-button-click-button)
       (define-key map (kbd "<mouse-2>") 'erc-button-click-button))
     (define-key map (kbd "TAB") 'erc-button-next)
+    (define-key map (kbd "<backtab>") 'erc-button-previous)
     (set-keymap-parent map erc-mode-map)
     map)
   "Local keymap for ERC buttons.")
         (error "No next button"))
       t)))
 
+(defun erc-button-previous ()
+  "Go to the previous button in this buffer."
+  (interactive)
+  (let ((here (point)))
+    (when (< here (erc-beg-of-input-line))
+      (while (and (get-text-property here 'erc-callback)
+                  (not (= here (point-min))))
+        (setq here (1- here)))
+      (while (and (not (get-text-property here 'erc-callback))
+                  (not (= here (point-min))))
+        (setq here (1- here)))
+      (if (> here (point-min))
+          (goto-char here)
+        (error "No previous button"))
+      t)))
+
 (defun erc-browse-emacswiki (thing)
   "Browse to thing in the emacs-wiki."
   (browse-url (concat erc-emacswiki-url thing)))