bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#3424: marked as done (align-regexp: Infinite loop with default regex


From: Emacs bug Tracking System
Subject: bug#3424: marked as done (align-regexp: Infinite loop with default regexp)
Date: Sun, 14 Jun 2009 05:55:06 +0000

Your message dated Sun, 14 Jun 2009 08:52:52 +0300
with message-id <87ljnv5pl7.fsf@iki.fi>
and subject line Re: align-regexp: Infinite loop with default regexp
has caused the Emacs bug report #3424,
regarding align-regexp: Infinite loop with default regexp
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@emacsbugs.donarmstrong.com
immediately.)


-- 
3424: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=3424
Emacs Bug Tracking System
Contact owner@emacsbugs.donarmstrong.com with problems
--- Begin Message --- Subject: align-regexp: Infinite loop with default regexp Date: Sat, 30 May 2009 20:37:44 +0300 User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux)
The align-regexp command enters infinite loop when it is used with the
default regexp and with REPEAT argument. It's seems to be because the
regexp \s-* matches also zero-length strings.

Steps to reproduce:

 1. Put the following line to the *scratch* buffer:

        foo bar

 2. Put the line inside a region

 3. Type command:

        C-u M-x align-regexp RET \(\s-*\) RET 1 RET 1 RET y

 4. Loop infinitely.


I suggest changing the default regexp to \(\s-+\), like the attached
patch illustrates.

diff --git i/lisp/align.el w/lisp/align.el
index 0917e7d..ea36302 100644
--- i/lisp/align.el
+++ w/lisp/align.el
@@ -933,7 +933,7 @@ region, call `align-regexp' and type in that regular 
expression."
     (list (region-beginning) (region-end))
     (if current-prefix-arg
        (list (read-string "Complex align using regexp: "
-                          "\\(\\s-*\\)")
+                          "\\(\\s-+\\)")
              (string-to-number
               (read-string
                "Parenthesis group to modify (justify if negative): " "1"))
@@ -941,7 +941,7 @@ region, call `align-regexp' and type in that regular 
expression."
               (read-string "Amount of spacing (or column if negative): "
                            (number-to-string align-default-spacing)))
              (y-or-n-p "Repeat throughout line? "))
-      (list (concat "\\(\\s-*\\)"
+      (list (concat "\\(\\s-+\\)"
                    (read-string "Align regexp: "))
            1 align-default-spacing nil))))
   (let ((rule

--- End Message ---
--- Begin Message --- Subject: Re: align-regexp: Infinite loop with default regexp Date: Sun, 14 Jun 2009 08:52:52 +0300 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.94 (gnu/linux)
On 2009-05-30 20:37 (+0300), Teemu Likonen wrote:

> The align-regexp command enters infinite loop when it is used with the
> default regexp and with REPEAT argument. It's seems to be because the
> regexp \s-* matches also zero-length strings.

I have misunderstood the behaviour of the regexp. The default space
group \s-* is about the spaces to modify before some other matching
regexp. It's a bit unexpected to me but I originally reported about
infinite loop which is indeed fixed in Emacs 23. So let's close this
bug.

--- End Message ---

reply via email to

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