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: Cameron Desautels <camdez <at> gmail.com>
Subject: bug#16079: closed (Re: bug#16079: `ruby-forward-string' chokes on
 caret delimiters (PATCH))
Date: Mon, 09 Dec 2013 03:47:03 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#16079: `ruby-forward-string' chokes on caret delimiters (PATCH)

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 16079 <at> debbugs.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: 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.

[Message part 3 (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 4 (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 165 days ago.

Previous Next


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