GNU bug report logs -
#16079
`ruby-forward-string' chokes on caret delimiters (PATCH)
Previous Next
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
[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)]
[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)]
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.