From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: insert-last-message Date: Fri, 01 Mar 2019 23:20:38 +0100 Message-ID: <861s3qqls9.fsf@zoho.eu> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="1900"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Mar 01 23:21:29 2019 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gzqX2-0000Kj-Ab for geh-help-gnu-emacs@m.gmane.org; Fri, 01 Mar 2019 23:21:28 +0100 Original-Received: from localhost ([127.0.0.1]:45147 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gzqX1-0003B0-7b for geh-help-gnu-emacs@m.gmane.org; Fri, 01 Mar 2019 17:21:27 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:48243) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gzqWh-000398-CH for help-gnu-emacs@gnu.org; Fri, 01 Mar 2019 17:21:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gzqWg-0005f8-5Y for help-gnu-emacs@gnu.org; Fri, 01 Mar 2019 17:21:07 -0500 Original-Received: from [195.159.176.226] (port=53970 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gzqWe-0005Nr-Vg for help-gnu-emacs@gnu.org; Fri, 01 Mar 2019 17:21:06 -0500 Original-Received: from list by blaine.gmane.org with local (Exim 4.89) (envelope-from ) id 1gzqWK-0017bI-R9 for help-gnu-emacs@gnu.org; Fri, 01 Mar 2019 23:20:44 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never Cancel-Lock: sha1:xGHwfMjSmTTxdStGSHcvytoyr28= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 195.159.176.226 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:119551 Archived-At: I just wrote this: (defun insert-last-message () (interactive) (insert (with-current-buffer (messages-buffer) (let ((end (goto-char (point-max))) (start (re-search-backward "^[[:space:]]*[[:graph:]]+")) ) (buffer-substring start end) )))) (defalias 'ilm #'insert-last-message) Again, this is another example of something that seems to work, but it doesn't look good, and I'm pretty sure it won't work in all cases (e.g., multiline messages, possibly also messages with wierd chars etc). What I would like to have, and what I think would be the sound solution, is to have a data structure, a stack list, with the most recent messages. One could have a variable to specify the desired length of that list. Every message would then go into that list, and be accessed LIFO. After that, one could easily even do prefix args to access/output/insert not the last, but the second last message, or any message stored, if one can keep track of them that is :) Also, one could have a "blacklist" with uninteresting messages, that would never enter the list. Perhaps even a regexp blacklist, if that wouldn't be too slow (?). And when all of it still fails, one could still use the *Messages* buffer and get whatever one wants! Is this a difficult thing to do? Source: http://user.it.uu.se/~embe8573/emacs-init/my-misc.el -- underground experts united http://user.it.uu.se/~embe8573