From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms12.migadu.com with LMTPS id yGxTNqYfg2Q2ZAEATFOONw (envelope-from ) for ; Fri, 09 Jun 2023 14:48:38 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id QBQgNqYfg2RrhAEAauVa8A (envelope-from ) for ; Fri, 09 Jun 2023 14:48:38 +0200 Received: from mail1.fsfe.org (mail1.fsfe.org [217.69.89.151]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id A363218720 for ; Fri, 9 Jun 2023 14:48:35 +0200 (CEST) From: jlicht@fsfe.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fsfe.org; s=2021100501; t=1686314914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=UERg3+W8JvmIMJBnkmgMq7xmdZnXaN+bQjPlxcejGkw=; b=lqUQY2YTNu6ecXY5DD5pz/s1BaS+60gfQfuz1XepV0qIJy7psB5mv7yWj6qHUHtAAKRall Z+Ue6/gJMPZce0XmYJ1s3y+ZTNkGGCK//1fUDhKMNvRA298NXrC7ARt8SQqr5VAh6MgJD9 g+QHNUSyAOfHUIwNUk4T1kOBXY77NIQ= To: piem@inbox.kyleam.com Cc: Jelle Licht Subject: [PATCH v2 5/5] Add basic integration for debbugs. Date: Fri, 9 Jun 2023 14:48:29 +0200 Message-Id: <20230609124829.29629-6-jlicht@fsfe.org> In-Reply-To: <20230609124829.29629-1-jlicht@fsfe.org> References: <20230608165926.12586-1-jlicht@fsfe.org> <20230609124829.29629-1-jlicht@fsfe.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Migadu-Country: DE X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=kyleam.com; s=key1; t=1686314918; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=UERg3+W8JvmIMJBnkmgMq7xmdZnXaN+bQjPlxcejGkw=; b=wkYxhGE243wSIm/MbuK2wEH8M0oLVYuZEtBAMf+IDBtAb77wqEqkCeHc5AiUC1g5xv0Jmt kyqsKO9992va9GnYZD3QcmFKyqwYokUnp+R/0AGgsL+oy2ESnn69PH7mV/UMECeIHTUFDo t0CcA0kw+PSIayNPuCw4lSuxm2fFsbNMwJKQRm8GcmAsMRV3UMLrYDVAZenUAqDfatUJbw H968gk+z4TsD/tI5weQWjTcBgLgeLatZO8QnUwLfQ8rPguER94suMWNmB0NoN+u08xAL4F yK/Np9+zh5ZGTcPijhpp/ah9DHqdk+X8D0jta+ayENGaySp0bMw5WczIw2K2Vg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=fsfe.org header.s=2021100501 header.b=lqUQY2YT; dmarc=pass (policy=none) header.from=fsfe.org; spf=pass (aspmx1.migadu.com: domain of jlicht@fsfe.org designates 217.69.89.151 as permitted sender) smtp.mailfrom=jlicht@fsfe.org ARC-Seal: i=1; s=key1; d=kyleam.com; t=1686314918; a=rsa-sha256; cv=none; b=Gjhq/8645eiHivCNpcq42YMSK3vyFttytlfpX18VV6FdCpsvrmVZ/cuHw/zd2os/ulYk3d gSRLn9+uRcehGIRfuRse+0MHrC172m6Rp6j9X0MJl9yuirLXJ0O3NrbiWZay2QAYDqlnlG R4JgLEEKb0aKsq6kL/Rb9Zr4TAdZWAbkXqb/F3ZQq6ZrTjKkkAPJZZe6SlYooRJ7yhYPuc JuxIVSREtVF6pyv8eSHVLcmjT74mv0i9+Kj2m5bSO0yqvQXmyG/VO7tg62gkp5roInfUnU BnwsYfc8NG+LQQWM1zxqxP+qhAaZi8tH4GlfighR8actCrbFAeNMY1dWmVFkBA== X-Migadu-Scanner: scn1.migadu.com X-Migadu-Spam-Score: -6.18 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=fsfe.org header.s=2021100501 header.b=lqUQY2YT; dmarc=pass (policy=none) header.from=fsfe.org; spf=pass (aspmx1.migadu.com: domain of jlicht@fsfe.org designates 217.69.89.151 as permitted sender) smtp.mailfrom=jlicht@fsfe.org X-Migadu-Queue-Id: A363218720 X-Spam-Score: -6.18 X-TUID: 3y4TOP8mBmlz From: Jelle Licht --- piem-debbugs.el | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 piem-debbugs.el diff --git a/piem-debbugs.el b/piem-debbugs.el new file mode 100644 index 0000000..8757ddd --- /dev/null +++ b/piem-debbugs.el @@ -0,0 +1,66 @@ +;;; piem-debbugs.el --- debbugs.el integration for piem -*- lexical-binding: t; -*- + +;; Copyright all piem contributors + +;; Author: Kyle Meyer +;; Keywords: vc, tools +;; Package-Requires: ((emacs "26.3")) + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; This library provides a minor mode, `piem-debbugs-mode', that modifies +;; `piem' variables to teach functions like `piem-inbox' how to +;; extract information from debbugs buffers. + +;;; Code: + +(require 'debbugs) +(require 'piem) + +(defgroup piem-debbugs nil + "debbugs integration for piem." + :group 'piem) + +(defun piem-debbugs-get-inbox () + "Return inbox name from a debbugs buffer." + (when (derived-mode-p 'debbugs-gnu-mode) + (when-let ((gnu-package (alist-get 'package debbugs-gnu-local-query))) + (piem-inbox-by-gnu-package-match gnu-package)))) + +(defun piem-debbugs-get-mid () + "Return the message ID of a debbugs buffer." + (when (derived-mode-p 'debbugs-gnu-mode) + (let ((msgid (alist-get 'msgid (debbugs-gnu-current-status)))) + (when (stringp msgid) + (string-trim msgid "<" ">"))))) + +;;;###autoload +(define-minor-mode piem-debbugs-mode + "Toggle debbugs support for piem. +With a prefix argument ARG, enable piem-debbugs mode if ARG is +positive, and disable it otherwise. If called from Lisp, enable +the mode if ARG is omitted or nil." + :global t + :init-value nil + (if piem-debbugs-mode + (progn + (add-hook 'piem-get-inbox-functions #'piem-debbugs-get-inbox) + (add-hook 'piem-get-mid-functions #'piem-debbugs-get-mid)) + (remove-hook 'piem-get-inbox-functions #'piem-debbugs-get-inbox) + (remove-hook 'piem-get-mid-functions #'piem-debbugs-get-mid))) + +;;; piem-debbugs.el ends here +(provide 'piem-debbugs) -- 2.40.1