From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: dkcombs@panix.com (David Combs) Newsgroups: gmane.emacs.help Subject: Re: Macro aborts even though regexp instance exists - Serious Bug Date: Fri, 30 Nov 2012 21:57:50 +0000 (UTC) Organization: Public Access Networks Corp. Message-ID: References: <08df09b8-18cc-4d23-9f2e-b1187f4cfdec__5446.52010216868$1350938726$gmane$org@g8g2000yqp.googlegroups.com> NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1354312814 7466 80.91.229.3 (30 Nov 2012 22:00:14 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 30 Nov 2012 22:00:14 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Nov 30 23:00:27 2012 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TeYdG-0002cF-Ei for geh-help-gnu-emacs@m.gmane.org; Fri, 30 Nov 2012 23:00:26 +0100 Original-Received: from localhost ([::1]:52083 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TeYd1-0006dd-Qx for geh-help-gnu-emacs@m.gmane.org; Fri, 30 Nov 2012 17:00:11 -0500 Original-Path: usenet.stanford.edu!panix!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 75 Original-NNTP-Posting-Host: panix2.panix.com Original-X-Trace: reader1.panix.com 1354312670 8696 166.84.1.2 (30 Nov 2012 21:57:50 GMT) Original-X-Complaints-To: abuse@panix.com Original-NNTP-Posting-Date: Fri, 30 Nov 2012 21:57:50 +0000 (UTC) X-Newsreader: trn 4.0-test76 (Apr 2, 2001) Original-Xref: usenet.stanford.edu gnu.emacs.help:195658 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 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-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:87979 Archived-At: In article , Kevin Rodgers wrote: >On 10/22/12 2:40 PM, Swami Tota Ram Shankar wrote: >> Hi emacs users, >> >> I write a simple macro which works, however, it fails in a particular >> case. >> >> C-s >> M-r >> >> to get into isearch-forward-regexp >> >> and give a regexp like >> >> ONE\|TWO >> >> It works for every TWO and ONE as long as there is a ONE ahead of TWO. >> In the last instance, no ONE exists after TWO and it fails. >> >> \|<=> OR or disjunction. >> >> Any solutions? >> >> This is such a fundamental issue that I think its a bug. When the C-s >> M-r is used outside the macro definition, the cursor gladly returns >> to the original position when OR is entered and proceeds forward from >> there, but perhaps, the macro aborts. > >It is not a bug: when ONE fails to match the buffer, C-s (which is designed >for interactive use, obviously) signals an error, which terminates the macro >execution. > >That's because there is no way for C-s to know that you _might_ type \|TWO >after ONE. > >So the solution is to make sure that the regexp is not complete after ONE: >C-s \(ONE\|TWO\) > >> I guess, this can lead to a lot of confusion and time wastage, if the >> user is unaware of this and most likely to neglect it because its >> contrary to normal usage. > >Yes, there is a lot of confusion and wasted time when a user is not aware >of how to use a program. > >> I include more newsgroups because of the seriousness of this bug. > >Whatever :-) > >-- >Kevin Rodgers >Denver, Colorado, USA > > (1) THANKS FOR THAT HINT/WARNING/INFO! (2) "when a user is not aware of how to use a program": I don't know that this thread really falls under that. Although your solution and especially the reason for it "obvious" -- but only once you've seen it. It's actually a little subtle. AND I believe it's so important (and easy to get wrong) that it should be added to the emacs manual (in macros) AND to any much-used cheat-sheets -- plus the wiki, of course. Perhaps you (as one of the real gurus around here) could write a paragraph and example and ask the developers to put it into the right places. Thanks again for the pointer! David