emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/org-mime 1a57b9c926: support more quote title style


From: ELPA Syncer
Subject: [nongnu] elpa/org-mime 1a57b9c926: support more quote title style
Date: Wed, 18 May 2022 09:58:31 -0400 (EDT)

branch: elpa/org-mime
commit 1a57b9c926e8b23b93c8c376a6d37d34fc949285
Author: Chen Bin <chenbin.sh@gmail.com>
Commit: Chen Bin <chenbin.sh@gmail.com>

    support more quote title style
---
 org-mime.el            | 24 ++++++++++++++++++------
 test/org-mime-tests.el |  8 ++++++++
 2 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/org-mime.el b/org-mime.el
index 9c91bfaf1f..332b428b77 100644
--- a/org-mime.el
+++ b/org-mime.el
@@ -171,11 +171,12 @@ Default (nil) selects the original org file."
   :group 'org-mime
   :type 'string)
 
-(defcustom org-mime-mail-quoted-separator
-  "^>>>>>[^>=]+==\\([^=\r\n]+\\)"
-  "Below this separator is mostly quoted mail."
+(defcustom org-mime-mail-quoted-separators
+  '("^>>>>>[^>=]+==\\([^=\r\n]+\\)$"
+    "^\\(On [^\r\n]+ wrote:\\)$")
+  "Possible separators.  Below the separator is mostly quoted mail."
   :group 'org-mime
-  :type 'string)
+  :type '(repeat string))
 
 (defvar org-mime-export-options '(:with-latex dvipng)
   "Default export options which may override org buffer/subtree options.
@@ -499,9 +500,20 @@ CURRENT-FILE is used to calculate full path of images."
       (list :secure-tags (nreverse secure-tags)
             :part-tags (nreverse part-tags)))))
 
+(defun org-mime-find-quoted-separator (content)
+  "Find correct separator to extract quoted mail from CONTENT."
+  (let ((rlt (cl-find-if (lambda (p)
+                          (string-match p content))
+                        org-mime-mail-quoted-separators)))
+    (when org-mime-debug
+      (message "org-mime-find-quoted-separator called => %s" rlt))
+    rlt))
+
 (defun org-mime-extract-my-reply (content)
   "Extract my reply from CONTENT (no quoted content)."
-  (let* ((arr (split-string content org-mime-mail-quoted-separator))
+  (let* ((quoted-separator (org-mime-find-quoted-separator content))
+         (arr (if quoted-separator (split-string content quoted-separator)
+                (list content)))
          rlt)
 
     ;; extract reply
@@ -509,7 +521,7 @@ CURRENT-FILE is used to calculate full path of images."
 
     ;; extract quoted mail
     (when (> (length arr) 1)
-      (when (string-match org-mime-mail-quoted-separator content)
+      (when (and quoted-separator (string-match quoted-separator content) )
         (setq rlt (plist-put rlt
                              'REPLY-QUOTED-TITLE
                              (string-trim (match-string 1 content)))))
diff --git a/test/org-mime-tests.el b/test/org-mime-tests.el
index ed27f80a20..ee74224055 100644
--- a/test/org-mime-tests.el
+++ b/test/org-mime-tests.el
@@ -304,4 +304,12 @@
     (org-mime-revert-to-plain-text-mail)
     (should (string= (string-trim (buffer-string))
                      "--text follows this line--\ntest\nhello"))))
+
+(ert-deftest test-org-mime-reply-quoted-separator ()
+  (should (not (org-mime-find-quoted-separator "No pattern")))
+  (should (string= (org-mime-find-quoted-separator ">>>>> \"chen\" == chen bin 
<chenbin@email.com> writes:")
+                   "^>>>>>[^>=]+==\\([^=\r\n]+\\)$"))
+  (should (string= (org-mime-find-quoted-separator "On Sat, May 14 2022 at 
23:30 -07, Chen Bin <notifications@github.com> wrote:")
+                    "^\\(On [^\r\n]+ wrote:\\)$")))
+
 (ert-run-tests-batch-and-exit)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]