Package: dpkg-dev-el
Version: 24.11-1
Severity: wishlist
Tags: patch

While editing debian/changelog (or any other file) which contains lines like:

    Bug#NNNNNN  or simply #NNNNNN

The natural action is to use number at current point. Attached patch adds
the support.

2005-08-26  Jari Aalto  <jari aalto A T cante net>

        * debian-bts-control.el:
        - It is now possible to put point at "Bug#NNNN" e.g. in
          debian/changelog and program pick up it as default number.
        (top level): Added '(require 'cl)
        (debian-bts-bug-number-at-point): New function.
        (debian-bts-control-prompt): Code structure slightly redesigned.
        Removed extra `cond' and used `if'. New OPTIONAL ARG: the
        bug number can be passed from calling function.
        (debian-bts-control): Use `debian-bts-bug-number-at-point' to
        set `number-default'.

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.12-1-686
Locale: LANG=C, LC_CTYPE=C (charmap=ISO-8859-1) (ignored: LC_ALL set to en_US)

Versions of packages dpkg-dev-el depends on:
ii  debian-el                     24.11-1    Emacs helpers specific to Debian u
ii  emacs21 [emacsen]             21.4a-1    The GNU Emacs editor
ii  xemacs21-mule [emacsen]       21.4.17-2  highly customizable text editor --

Versions of packages dpkg-dev-el recommends:
ii  wget                          1.10.1-1   retrieves files from the web

-- no debconf information
--- debian-bts-control.el       2005/08/26 04:49:15     1.1
+++ debian-bts-control.el       2005/08/26 05:18:34     1.2
@@ -50,7 +50,9 @@
 
 ;;; Code:
 
+(eval-when-compile '(require 'cl))
 (require 'debian-bug)
+(autoload 'word-at-point "thingatpt")
 
 (defgroup debian-bts-control nil
   "Create messages for Debian BTS control interface"
@@ -236,18 +238,26 @@
     ("tags") ("close") ("package") ("owner") ("noowner"))
   "List of available commands at [EMAIL PROTECTED]")
 
-(defun debian-bts-control-prompt (prompt)
+(defun debian-bts-bug-number-at-point ()
+  "Read #NNNNNN from current point."
+  (let ((item (word-at-point)))
+    (if (and item
+            (string-match "^[0-9]+[0-9]$" item))
+       item)))
+
+(defun debian-bts-control-prompt (prompt &optional number)
   "Prompt for bug number using sensible default if found."
+  (let ((default-number number))
+    (unless default-number
   (save-excursion
     (goto-char (point-min))
-    (let ((default-number
-            (cond ((re-search-forward "\\([0-9]+\\)@bugs.debian.org"
+       (if (re-search-forward "\\([0-9]+\\)@bugs.debian.org"
                                       (mail-header-end) t)
-                   (match-string-no-properties 1)))))
+           (setq default-number (match-string-no-properties 1)))))
       (if default-number
           (read-string (format "%s [%s]: " prompt default-number)
                        nil nil default-number)
-        (read-string (format "%s: " prompt))))))
+      (read-string (format "%s: " prompt)))))
 
 ;;;###autoload
 (defun debian-bts-control (action &optional arg)
@@ -262,7 +272,7 @@
   (interactive (list (completing-read "Command: "
                                       debian-bts-control-alist nil nil)
                      current-prefix-arg))
-  (let ((number-default))
+  (let ((number-default (debian-bts-bug-number-at-point)))
     (cond
      ((or arg
           (and (car (memq t (mapcar '(lambda (item) (eq item major-mode))
@@ -333,7 +343,8 @@
 "
                         "Package to reassign to: "))
              (bug-number (debian-bts-control-prompt
-                          (concat verbose "Bug number")))
+                          (concat verbose "Bug number") 
+                         number-default))
              (package (completing-read
                        (concat verbose "Package to reassign to: ")
                        (debian-bug-fill-packages-obarray) nil nil)))
@@ -359,7 +370,8 @@
 "
                         ""))
              (bug-number (debian-bts-control-prompt
-                          (concat verbose "Bug number")))
+                          (concat verbose "Bug number")
+                         number-default))
              (originator (read-string
                         (concat verbose "Originator-address (optional): "))))
         (insert (format "reopen %s %s\n" bug-number originator))))
@@ -378,7 +390,8 @@
 "
                         ""))
              (bug-number (debian-bts-control-prompt
-                          (concat verbose "Bug number")))
+                          (concat verbose "Bug number")
+                         number-default))
              (originator (read-string
                           (concat verbose "Originator-address (optional): "))))
         (insert (format "submitter %s %s\n" bug-number originator))))
@@ -397,7 +410,8 @@
 "
                         ""))
              (bug-number (debian-bts-control-prompt
-                          (concat verbose "Bug number")))
+                          (concat verbose "Bug number")
+                         number-default))
              (address (read-string
                        (concat verbose "address (optional): "))))
         (insert (format "owner %s %s\n" bug-number address))))
@@ -412,7 +426,8 @@
 "
                         ""))
              (bug-number (debian-bts-control-prompt
-                          (concat verbose "Bug number"))))
+                          (concat verbose "Bug number")
+                         number-default)))
         (insert (format "noowner %s\n" bug-number))))
      ((string-equal "forwarded" action)
       (let* ((verbose (if debian-bts-control-verbose-prompts-flag
@@ -426,7 +441,8 @@
 "
                         ""))
              (bug-number (debian-bts-control-prompt
-                          (concat verbose "Bug number")))
+                          (concat verbose "Bug number")
+                         number-default))
              (address (read-string
                        (concat verbose "Forwarded-address: "))))
         (insert (format "forwarded %s %s\n" bug-number address))))
@@ -441,7 +457,8 @@
 "
                         ""))
              (bug-number (debian-bts-control-prompt
-                          (concat verbose "Bug number"))))
+                          (concat verbose "Bug number")
+                         number-default)))
         (insert (format "notforwarded %s\n" bug-number))))
      ((string-equal "retitle" action)
       (let* ((verbose (if debian-bts-control-verbose-prompts-flag
@@ -457,7 +474,8 @@
 "
                         ""))
              (bug-number (debian-bts-control-prompt
-                          (concat verbose "Bug number")))
+                          (concat verbose "Bug number")
+                         number-default))
              (title (read-string
                      (concat verbose "New title: "))))
         (insert (format "retitle %s %s\n" bug-number title))))
@@ -476,7 +494,8 @@
 "
                         ""))
              (bug-number (debian-bts-control-prompt
-                          (concat verbose "Bug number")))
+                          (concat verbose "Bug number")
+                         number-default))
              (severity (completing-read "Severity: " debian-bug-severity-alist
                                         nil t)))
         (insert (format "severity %s %s\n" bug-number severity))))
@@ -498,7 +517,8 @@
 "
                         ""))
              (bug-number (debian-bts-control-prompt
-                          (concat verbose "Bug number")))
+                          (concat verbose "Bug number")
+                         number-default))
              (ids (read-string (concat verbose "New IDs (e.g. -1 -2): "))))
         (insert (format "clone %s %s\n" bug-number ids))))
      ((string-equal "merge" action)
@@ -527,7 +547,8 @@
 "
                         ""))
              (bug-number (debian-bts-control-prompt
-                          (concat verbose "Bug number"))))
+                          (concat verbose "Bug number")
+                         number-default)))
         (insert (format "unmerge %s\n" bug-number))))
      ((string-equal "tags" action)
       (let* ((verbose (if debian-bts-control-verbose-prompts-flag
@@ -547,7 +568,8 @@
 "
                         ""))
              (bug-number (debian-bts-control-prompt
-                          (concat verbose "Bug number")))
+                          (concat verbose "Bug number")
+                         number-default))
              (add (completing-read "+, -, = (default +): "
                                    '(("+") ("-") ("=")) nil t nil nil "+"))
              (tag (completing-read "Tag: " debian-bug-alltags-alist nil t)))
@@ -570,7 +592,8 @@
 "
                             ""))
                  (bug-number (debian-bts-control-prompt
-                              (concat verbose "Bug number"))))
+                              (concat verbose "Bug number")
+                             number-default)))
             (insert (format "close %s\n" bug-number)))))
      )))
 

Reply via email to