From ee4cf1e79a1dfe1b32402825447ca039ee240fee Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Sat, 11 Jun 2016 19:51:10 +0200 Subject: [PATCH] Improve debbugs-gnu-search * packages/debbugs/debbugs-gnu.el (debbugs-gnu-search): Use `author' for phrase based search, `status' for attribute-based search. Fix allowed values for `status' search. * packages/debbugs/debbugs.el (debbugs-search-est): Fix docstring. Quote keys with apostroph in order to handle "@" properly in Debbugs::SOAP Perl module. Make sharper test for `submitter' and `@author'. --- packages/debbugs/debbugs-gnu.el | 16 ++++++++++------ packages/debbugs/debbugs.el | 15 +++++++-------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/packages/debbugs/debbugs-gnu.el b/packages/debbugs/debbugs-gnu.el index dd1fe3346..6cf8f3487 100644 --- a/packages/debbugs/debbugs-gnu.el +++ b/packages/debbugs/debbugs-gnu.el @@ -379,10 +379,11 @@ marked as \"client-side filter\"." (setq key (completing-read "Enter attribute: " (if phrase - '("severity" "package" "tags" "submitter" "date" - "subject" "status") - '("severity" "package" "archive" "src" "tag" + '("severity" "package" "tags" + "author" "date" "subject") + '("severity" "package" "archive" "src" "status" "tag" "owner" "submitter" "maint" "correspondent" + ;; Client-side queries. "date" "log_modified" "last_modified" "found_date" "fixed_date" "unarchived" "subject" "done" "forwarded" "msgid" "summary")) @@ -413,16 +414,19 @@ marked as \"client-side filter\"." (add-to-list 'debbugs-gnu-current-query (cons (intern key) val1)))) - ((member key '("owner" "submitter" "maint" "correspondent")) + ((member + key '("author" "owner" "submitter" "maint" "correspondent")) (setq val1 (read-string "Enter email address: ")) (when (not (zerop (length val1))) (add-to-list - 'debbugs-gnu-current-query (cons (intern key) val1)))) + 'debbugs-gnu-current-query + (cons (intern (if (equal key "author") "@author" key)) val1)))) ((equal key "status") (setq val1 - (completing-read "Enter status: " '("done" "forwarded" "open"))) + (completing-read + "Enter status: " '("pending" "forwarded" "fixed" "done"))) (when (not (zerop (length val1))) (add-to-list 'debbugs-gnu-current-query (cons (intern key) val1)))) diff --git a/packages/debbugs/debbugs.el b/packages/debbugs/debbugs.el index 422a775e5..8efeddbe2 100644 --- a/packages/debbugs/debbugs.el +++ b/packages/debbugs/debbugs.el @@ -565,17 +565,15 @@ The following conditions are possible: ATTRIBUTE is one of the following keywords: - :status -- Status of bug. Valid values are \"done\", - \"forwarded\" and \"open\". - :subject, :@title -- The subject of a message or the title of the bug, a string. :date, :@cdate -- The submission or modification dates of a message, a number. - :submitter, :@author -- The email address of the submitter of a - bug or the author of a message belonging to this bug, a string. + :@author -- The email address of the author of a message + belonging to this bug, a string. It may be different than + the email of the person submitting the bug. The special email address \"me\" is used as pattern, replaced with `user-mail-address'. @@ -699,7 +697,7 @@ Examples: (setq kw (pop elt)) (unless (keywordp kw) (error "Wrong keyword: %s" kw)) - (setq key (substring (symbol-name kw) 1)) + (setq key (format "'%s'" (substring (symbol-name kw) 1))) (cl-case kw ;; Phrase condition. (:phrase @@ -724,8 +722,9 @@ Examples: ;; Attribute condition. ((:submitter :@author) - ;; It shouldn't happen in a phrase condition. - (if phrase-cond + ;; It shouldn't happen. + (if (or (and (eq kw :submitter) phrase-cond) + (and (eq kw :@author) attr-cond)) (error "Wrong keyword: %s" kw)) (if (not (stringp (car elt))) (setq vec (vconcat vec (list key ""))) -- 2.39.2