discussion and development of piem
 help / color / mirror / code / Atom feed
From: jlicht@fsfe.org
To: piem@inbox.kyleam.com
Cc: Jelle Licht <jlicht@fsfe.org>
Subject: [PATCH v3 2/5] gnus: Skip adding mboxrd from-line when not needed
Date: Sat, 10 Jun 2023 11:58:55 +0200	[thread overview]
Message-ID: <20230610095858.26982-3-jlicht@fsfe.org> (raw)
In-Reply-To: <20230610095858.26982-1-jlicht@fsfe.org>

From: Jelle Licht <jlicht@fsfe.org>

When using Gnus over NNTP, `gnus-summary-display-article' shows a
plain message, but when debbugs.el visits an issue message with Gnus,
it's already in mbox format.

Link: https://inbox.kyleam.com/piem/87cz2dun0y.fsf@kyleam.com
---
 piem-gnus.el | 36 ++++++++++++++++++++++++++----------
 1 file changed, 26 insertions(+), 10 deletions(-)

diff --git a/piem-gnus.el b/piem-gnus.el
index 4011fa2..7120512 100644
--- a/piem-gnus.el
+++ b/piem-gnus.el
@@ -56,6 +56,21 @@
             (match-string 1 mid)
           mid)))))
 
+(defun piem-gnus--from-line (buffer)
+  "Split a buffer into from-line and the rest of the message.
+
+Returns a cons of the first line of BUFFER, if it is an mboxrd
+from-line (or nil if none), and the remaining lines of BUFFER."
+  (with-current-buffer buffer
+    (let ((start (point-min))
+          (end (point-max)))
+      (goto-char start)
+      (let* ((eol (line-end-position))
+             (line (buffer-substring-no-properties start eol)))
+        (if (string-match-p "^From " line)
+            (cons line (buffer-substring-no-properties (+ eol 1) end))
+          (cons nil (buffer-substring-no-properties start end)))))))
+
 (defun piem-gnus-mid-to-thread (mid)
   (when (and (derived-mode-p 'gnus-summary-mode)
              (string-equal (substring
@@ -75,16 +90,17 @@
             gnus-break-pages)
         (mapc (lambda (article)
                 (gnus-summary-display-article article)
-                (push (format
-                       "From mboxrd@z Thu Jan  1 00:00:00 1970\n%s\n"
-                       (replace-regexp-in-string ; From-munge
-                        "^>*From "
-                        ">\\&"
-                        (with-current-buffer gnus-article-buffer
-                          (buffer-substring-no-properties
-                           (point-min)
-                           (point-max)))))
-                      messages))
+                (let ((from-line-cons
+                       (piem-gnus--from-line gnus-article-buffer)))
+                  (push (format
+                         "%s\n%s\n"
+                         (or (car from-line-cons)
+                             "From mboxrd@z Thu Jan  1 00:00:00 1970")
+                         (replace-regexp-in-string
+                          "^>*From "
+                          ">\\&"
+                          (cdr from-line-cons)))
+                        messages)))
               articles)
         (lambda ()
           (insert (apply #'concat (nreverse messages))))))))
-- 
2.40.1


  parent reply	other threads:[~2023-06-10  9:59 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-08 16:59 [PATCH 1/2] piem: Add :gnu-package keyword to piem-inboxes jlicht
2023-06-08 16:59 ` [PATCH 2/2] gnus: Skip adding mboxrd from-line when not needed jlicht
2023-06-09 12:48 ` [PATCH v2 0/5] New piem-debbugs integration jlicht
2023-06-09 12:48   ` [PATCH v2 1/5] piem: Add :gnu-package keyword to piem-inboxes jlicht
2023-06-10  4:52     ` Kyle Meyer
2023-06-10 10:02       ` Jelle Licht
2023-06-09 12:48   ` [PATCH v2 2/5] gnus: Skip adding mboxrd from-line when not needed jlicht
2023-06-10  4:55     ` Kyle Meyer
2023-06-10 10:07       ` Jelle Licht
2023-06-09 12:48   ` [PATCH v2 3/5] piem: Add piem-inbox-by-gnu-package-match jlicht
2023-06-10  4:57     ` Kyle Meyer
2023-06-10 10:08       ` Jelle Licht
2023-06-09 12:48   ` [PATCH v2 4/5] gnus: Add support for matching inbox by X-GNU-PR-PACKAGE header jlicht
2023-06-10  4:58     ` Kyle Meyer
2023-06-10 10:08       ` Jelle Licht
2023-06-09 12:48   ` [PATCH v2 5/5] Add basic integration for debbugs jlicht
2023-06-10  4:59     ` Kyle Meyer
2023-06-10 10:11       ` Jelle Licht
2023-06-10  5:00   ` [PATCH v2 0/5] New piem-debbugs integration Kyle Meyer
2023-06-10  9:58 ` [PATCH v3 " jlicht
2023-06-10  9:58   ` [PATCH v3 1/5] piem: Add :gnu-package keyword to piem-inboxes jlicht
2023-06-10  9:58   ` jlicht [this message]
2023-06-10  9:58   ` [PATCH v3 3/5] piem: Add piem-inbox-by-gnu-package-match jlicht
2023-06-10 23:17     ` Kyle Meyer
2023-06-10  9:58   ` [PATCH v3 4/5] piem-inbox-by-header-match: Fallback to matching via :gnu-package jlicht
2023-06-10  9:58   ` [PATCH v3 5/5] Add basic integration for debbugs jlicht
2023-06-10 23:16   ` [PATCH v3 0/5] New piem-debbugs integration Kyle Meyer
2023-06-10 23:46     ` Jelle Licht
2023-06-11  0:55       ` Kyle Meyer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://git.kyleam.com/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230610095858.26982-3-jlicht@fsfe.org \
    --to=jlicht@fsfe.org \
    --cc=piem@inbox.kyleam.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.kyleam.com/piem/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).