GNU bug report logs - #16079
`ruby-forward-string' chokes on caret delimiters (PATCH)

Previous Next

Package: emacs;

Reported by: Cameron Desautels <camdez <at> gmail.com>

Date: Fri, 6 Dec 2013 17:34:02 UTC

Severity: normal

Tags: patch

Done: Dmitry Gutov <dgutov <at> yandex.ru>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#16079: closed (`ruby-forward-string' chokes on caret
 delimiters (PATCH))
Date: Mon, 09 Dec 2013 03:47:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Mon, 09 Dec 2013 05:46:17 +0200
with message-id <871u1mhek6.fsf <at> yandex.ru>
and subject line Re: bug#16079: `ruby-forward-string' chokes on caret delimiters (PATCH)
has caused the debbugs.gnu.org bug report #16079,
regarding `ruby-forward-string' chokes on caret delimiters (PATCH)
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
16079: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16079
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Cameron Desautels <camdez <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: `ruby-forward-string' chokes on caret delimiters (PATCH)
Date: Fri, 6 Dec 2013 11:33:21 -0600
[Message part 3 (text/plain, inline)]
`ruby-forward-string' is a function used to skip past strings in Ruby
mode. Ruby supports using any non-alpha character following a "%" to
delimit a string.  All of the following are valid Ruby syntax:

    - %[foo bar]
    - %/foo bar/
    - %%foo bar%
    - %^foo bar^

Currently ruby-mode can handle all of these except the last one, which
yields the following:

    #     Debugger entered--Lisp error: (invalid-regexp "Unmatched [ or [^")

The root of the problem is the construction of the following invalid
regexp: "[^]" (which is an incomplete negated character class).

This bug manifests itself by breaking `ruby-parse-region' in any
buffer containing a caret-delimited string.  This breaks indentation,
movement commands, and even keeps Emacs from building an Imenu.

I've attached a patch which resolves the issue.  Note that this patch
builds on the test suite for `ruby-forward-string' that I included in
issue #16078.
--
Cameron Desautels <camdez <at> gmail.com>
[fix-ruby-forward-string.diff (text/plain, attachment)]
[Message part 5 (message/rfc822, inline)]
From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Cameron Desautels <camdez <at> gmail.com>
Cc: 16079-done <at> debbugs.gnu.org
Subject: Re: bug#16079: `ruby-forward-string' chokes on caret delimiters
 (PATCH)
Date: Mon, 09 Dec 2013 05:46:17 +0200
Cameron Desautels <camdez <at> gmail.com> writes:

> This bug manifests itself by breaking `ruby-parse-region' in any
> buffer containing a caret-delimited string.  This breaks indentation,
> movement commands, and even keeps Emacs from building an Imenu.

Thanks, I've applied the fix.

> I've attached a patch which resolves the issue.  Note that this patch
> builds on the test suite for `ruby-forward-string' that I included in
> issue #16078.

The tests are not included so far, let's continue discussing them in
#16078. Closing this one.


This bug report was last modified 11 years and 164 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.