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
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (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)]
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.