tags 463053 patch thanks Thanks for this package!
(defun debian-bug-build-bug-menu (package) "Build a menu listing the bugs for PACKAGE." (setq debian-bug-alist nil debian-bug-open-alist nil) (let ((debian-bug-tmp-buffer (get-buffer-create "*debian-bug-tmp-buffer*")) (bug-alist) (bug-open-alist) (bugs-are-open-flag t) (is-changelog-mode (and (equal major-mode 'debian-changelog-mode) (boundp 'debian-changelog-close-bug-takes-arg)))) (save-excursion (set-buffer debian-bug-tmp-buffer) (insert "(setq debian-bug-easymenu-list\n'(\"Bugs\"\n") (insert "[\"* Regenerate list *\" (debian-bug-build-bug-this-menu) t] \"--\" [\"Browse\" (list (setq debian-bug-menu-action 'browse)) :style radio :selected (equal debian-bug-menu-action 'browse)] [\"Read as a File\" (list (setq debian-bug-menu-action 'readfile)) :style radio :selected (equal debian-bug-menu-action 'readfile)] [\"Read as Email\" (list (setq debian-bug-menu-action 'email)) :style radio :selected (equal debian-bug-menu-action 'email)]\n") (if is-changelog-mode (insert " [\"Close Bug\" (list (setq debian-bug-menu-action 'close)) :style radio :selected (equal debian-bug-menu-action 'close)]\n")) (insert " \"-\"\n") (with-temp-buffer (message "Fetching bug list...") (call-process "wget" nil '(t t) nil "--quiet" "-O" "-" (concat "http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=" package)) (message "Fetching bug list...done") (goto-char (point-min)) (while (re-search-forward "\\(<H2.*</a>\\(.+\\)</H2>\\)\\|\\(<a href=\"\\(bugreport.cgi\\?bug=\\([0-9]+\\)\\)\">\\(.+: \\(.+\\)\\)</a>\\)" nil t) (let ((type (match-string 2)) ;;(URL (match-string 4)) (bugnumber (match-string 5)) (description (match-string 6)) (shortdescription (match-string 7))) (cond (type (setq bugs-are-open-flag (not (string-match "resolved" type))) (save-excursion (set-buffer debian-bug-tmp-buffer) (insert "\"-\"\n\"" type "\"\n"))) (t (setq bug-alist (cons (list bugnumber description) bug-alist)) (when bugs-are-open-flag (when (and (re-search-forward "Reported by: <a href=\"pkgreport.cgi\\?submitter=[^\"]+\">" nil t) (or (looking-at ""\\(.*\\)" <") (looking-at "\\(.*\\) <") (looking-at "\\(.*\\)<"))) (setq shortdescription (concat "Bug fix: \"" shortdescription "\", thanks to " (debian-bug-rfc2047-decode-string (match-string 1)) " " (debian-bug--rris "%s" bugnumber (if (boundp 'debian-changelog-close-bug-statement) debian-changelog-close-bug-statement "(Closes: #%s)"))))) (setq bug-open-alist (cons (list bugnumber shortdescription) bug-open-alist))) (save-excursion (set-buffer debian-bug-tmp-buffer) (insert "[\"" (if (< 60 (length description)) (substring description 0 60) description) "\" (debian-bug-menu-action \"" bugnumber "\")" " :active " (if bugs-are-open-flag "t" "(not (eq debian-bug-menu-action 'close))") "]\n"))))))) (set-buffer debian-bug-tmp-buffer) ;Make sure we're here (insert "))") (when (debian-bug-menusplit-p nil) (goto-char (point-min)) ;; First split on bug severities (when (and (re-search-forward "^\"-" nil t) (re-search-forward "^\"" nil t)) (when (search-forward " to upstream software authors" (save-excursion (progn (end-of-line)(point))) t) (replace-match " upstream")) (beginning-of-line) (insert "(") (while (and (re-search-forward "^\"-" nil t) (re-search-forward "^\"" nil t)) (when (search-forward " to upstream software authors" (save-excursion (progn (end-of-line)(point))) t) (replace-match " upstream")) (beginning-of-line) (insert ")(")) (goto-char (point-max)) (insert ")") ;; Next check for long menus, and split those again (goto-char (point-min)) (while (re-search-forward "^)?(\"" nil t) (forward-char -2) (if (debian-bug-menusplit-p t) (debian-bug-submenusplit) (end-of-line))) )) (eval-buffer debian-bug-tmp-buffer) (kill-buffer nil) ) (setq debian-bug-alist bug-alist) (setq debian-bug-open-alist bug-open-alist) (cond ((equal major-mode 'debian-changelog-mode) (easy-menu-define debian-bug-bugs-menu debian-changelog-mode-map "Debian Bug Mode Bugs Menu" debian-bug-easymenu-list) (cond ((string-match "XEmacs" emacs-version) (easy-menu-remove debian-bug-bugs-menu) (easy-menu-remove debian-changelog-menu) (easy-menu-add debian-bug-bugs-menu) (easy-menu-add debian-changelog-menu)))) (t (easy-menu-define debian-bug-bugs-menu debian-bug-minor-mode-map "Debian Bug Mode Bugs Menu" debian-bug-easymenu-list) (cond ((string-match "XEmacs" emacs-version) (easy-menu-remove debian-bug-bugs-menu) (easy-menu-remove debian-bug-menu) (easy-menu-add debian-bug-bugs-menu) (easy-menu-add debian-bug-menu))))))) -- Camm Maguire [EMAIL PROTECTED] ========================================================================== "The earth is but one country, and mankind its citizens." -- Baha'u'llah -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]