From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg via Users list for the GNU Emacs text editor Newsgroups: gmane.emacs.help Subject: Re: A strange issue with buffer-undo-list Date: Thu, 25 Feb 2021 06:28:43 +0100 Message-ID: <874ki090ms.fsf@zoho.eu> References: <87o8gbqs28.fsf@mbork.pl> <8735xm2t3p.fsf@web.de> <87r1l4n2w8.fsf@mbork.pl> Reply-To: Emanuel Berg Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30885"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:yEs2LdzipUqcCEv+JljSNtotyxE= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Thu Feb 25 06:29:17 2021 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lF9DA-0007vp-Hp for geh-help-gnu-emacs@m.gmane-mx.org; Thu, 25 Feb 2021 06:29:16 +0100 Original-Received: from localhost ([::1]:33554 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lF9D9-0005kK-KP for geh-help-gnu-emacs@m.gmane-mx.org; Thu, 25 Feb 2021 00:29:15 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:56072) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lF9Cp-0005ja-3I for help-gnu-emacs@gnu.org; Thu, 25 Feb 2021 00:28:56 -0500 Original-Received: from ciao.gmane.io ([116.202.254.214]:46298) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lF9Cm-0003VD-6u for help-gnu-emacs@gnu.org; Thu, 25 Feb 2021 00:28:54 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1lF9Ck-0007Qu-Bg for help-gnu-emacs@gnu.org; Thu, 25 Feb 2021 06:28:50 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -15 X-Spam_score: -1.6 X-Spam_bar: - X-Spam_report: (-1.6 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:128241 Archived-At: Marcin Borkowski wrote: >>> Is there a way to get the "state" of the change group to >>> only cancel it if it was not finished? >> >> I think yes, it's called `atomic-change-group' - see how >> that macro is implemented. > > Ah, that's simple and clever. Thank you. > > Still, these "change groups" seem a strange feature to me - > they are hardly ever used in Emacs itself, right? Maybe people just don't understand the docstring: Like ‘progn’ but perform BODY as an atomic change group. This means that if BODY exits abnormally, all of its changes to the current buffer are undone. This works regardless of whether undo is enabled in the buffer. This mechanism is transparent to ordinary use of undo; if undo is enabled in the buffer and BODY succeeds, the user can undo the change normally. How about: 1. Do BODY 2. On error: redo all But if they are to drop buzzwords, isn't this a transaction? Maybe that's something else... -- underground experts united http://user.it.uu.se/~embe8573 https://dataswamp.org/~incal