From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 6832 invoked from network); 4 Sep 2022 02:05:05 -0000 Received: from lists.gnu.org (209.51.188.17) by inbox.vuxu.org with ESMTPUTF8; 4 Sep 2022 02:05:05 -0000 Received: from localhost ([::1]:49466 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oUf0R-0008BB-L3 for ml@inbox.vuxu.org; Sat, 03 Sep 2022 22:05:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56508) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oUf0I-00086Q-Gf for info-gnus-english@gnu.org; Sat, 03 Sep 2022 22:04:54 -0400 Received: from ciao.gmane.io ([116.202.254.214]:56048) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oUf0H-0003DI-0X for info-gnus-english@gnu.org; Sat, 03 Sep 2022 22:04:54 -0400 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1oUf0D-0000xu-B5 for info-gnus-english@gnu.org; Sun, 04 Sep 2022 04:04:49 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: info-gnus-english@gnu.org To: info-gnus-english@gnu.org From: Emanuel Berg Subject: Re: Strip signature on reply without standard separator Date: Sun, 04 Sep 2022 04:04:42 +0200 Message-ID: <87czcb6gjp.fsf@dataswamp.org> References: <87y1vykpl2.fsf@icloud.com> <87zggbz3ho.fsf@icloud.com> <87bksaz837.fsf@icloud.com> <87a67ul62m.fsf@dataswamp.org> <87mtbufg7e.fsf@icloud.com> <875yii2oru.fsf@dataswamp.org> <875yih6n25.fsf_-_@icloud.com> <878rnaw3tw.fsf_-_@icloud.com> <87mtbgarre.fsf@icloud.com> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cancel-Lock: sha1:iO5Ne5zkaWpGV1sqSIf04c1q85M= Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=gegu-info-gnus-english@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: info-gnus-english@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Announcements and discussions for GNUS, the GNU Emacs Usenet newsreader \(in English\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: info-gnus-english-bounces+ml=inbox.vuxu.org@gnu.org Sender: "info-gnus-english" Satoshi Yoshida wrote: > Add to .emacs > > (autoload 'mu-cite-original "mu-cite" nil t) > (setq message-cite-function #'mu-cite-original) > > Add to .gnus.el > > (setq mu-cite-prefix-format '("> ")) > (setq mu-cite-cited-prefix-regexp "\\(^[^[:blank:]\n<>]+>+[[:blank:]]*\ > \\)") > (setq mu-cite-top-format '(from " writes:\n\n")) > (add-hook 'mu-cite-post-cite-hook > (lambda () > (save-excursion > (goto-char (point-min)) > (replace-regexp "^\n-- \n\\(.*\n\\)*" "") > (goto-char (point-min)) > (replace-regexp "^\\([^[:blank:]\n<>]+>.*\\)" "> \\1") > (goto-char (point-min)) > (replace-regexp "^\\([^\n>].+\n\n\\)\\(>[[:blank:]]+\n\ > \\)+" "\\1") > (goto-char (point-min)) > (replace-regexp "^> >" ">>") > (goto-char (point-min)) > (replace-regexp "^> -- .*\n\\(>.*\n\\)*" "") > (goto-char (point-min)) > (replace-regexp "^\\(>[[:blank:]]+\n\\)+> \\(best\ > \\( regards\\| wishes\\)?\\|cheers\\|\\(good\\)?bye\\|good luck\ > \\|\\(kind \\|warm\\(est\\)? \\)?regards\\|respectfully\\|\ > \\(yours \\)?sincerely\\( yours\\)?\\|thank you\\( very much\\)?\ > \\|\\(many \\)?thanks\\( in advance\\| very much\\)?\ > \\),[[:blank:]]*\n\\(>.*\n\\)*" "") > (goto-char (point-min)) > (replace-regexp "^\\(>[[:blank:]]+\n\\)+> [[:blank:]]*\ > \\(-+[[:blank:]]*\\)?[[:alpha:]]+[[:blank:]]*\n\\(>[[:blank:]]+\n\ > \\)*\\'" "") > (goto-char (point-min)) > (replace-regexp "^\\(>[>[:blank:]]+\n\\)+\\'" "") > (ignore-errors > (goto-char (point-max)) > (insert-file-contents "~/.signature") > (insert "\n-- \n")) > (goto-line 1) > (delete-blank-lines) > (set-window-start () 1)))) For modular, idiomatic Elisp the TODO list would be: 1. Split into functions with names that explain what they do. 2. Instead of `replace-regexp', use (while (re-search-forward RE nil t) (replace-match STR) ) See the docstrings for those three functions. -- underground experts united https://dataswamp.org/~incal