From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Cameron Desautels Newsgroups: gmane.emacs.bugs Subject: bug#16046: Bug with Regexp Containing only a Character Class with a Caret (PATCH) Date: Thu, 5 Dec 2013 13:26:58 -0600 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=485b3970d1ee5f41ca04ecce83a2 X-Trace: ger.gmane.org 1386271694 8650 80.91.229.3 (5 Dec 2013 19:28:14 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 5 Dec 2013 19:28:14 +0000 (UTC) To: 16046@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Dec 05 20:28:19 2013 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Voeav-0006Gi-V4 for geb-bug-gnu-emacs@m.gmane.org; Thu, 05 Dec 2013 20:28:18 +0100 Original-Received: from localhost ([::1]:55369 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Voeav-0001EI-Cs for geb-bug-gnu-emacs@m.gmane.org; Thu, 05 Dec 2013 14:28:17 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:34099) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Voeam-0001E2-Fl for bug-gnu-emacs@gnu.org; Thu, 05 Dec 2013 14:28:14 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Voeag-0007Om-F6 for bug-gnu-emacs@gnu.org; Thu, 05 Dec 2013 14:28:08 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:46349) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Voeag-0007Od-Ac for bug-gnu-emacs@gnu.org; Thu, 05 Dec 2013 14:28:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1Voeaf-0004nZ-NV for bug-gnu-emacs@gnu.org; Thu, 05 Dec 2013 14:28:01 -0500 X-Loop: help-debbugs@gnu.org In-Reply-To: Resent-From: Cameron Desautels Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 05 Dec 2013 19:28:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16046 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 16046-submit@debbugs.gnu.org id=B16046.138627162218373 (code B ref 16046); Thu, 05 Dec 2013 19:28:01 +0000 Original-Received: (at 16046) by debbugs.gnu.org; 5 Dec 2013 19:27:02 +0000 Original-Received: from localhost ([127.0.0.1]:60368 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VoeZh-0004mB-SC for submit@debbugs.gnu.org; Thu, 05 Dec 2013 14:27:02 -0500 Original-Received: from mail-bk0-f46.google.com ([209.85.214.46]:35873) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VoeZf-0004lr-DT for 16046@debbugs.gnu.org; Thu, 05 Dec 2013 14:26:59 -0500 Original-Received: by mail-bk0-f46.google.com with SMTP id u15so7295664bkz.19 for <16046@debbugs.gnu.org>; Thu, 05 Dec 2013 11:26:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=rUHWEyQVRepKhe52l0Zv9j1rkSadXOX9HyamtCsSq2M=; b=zm83jhgDc+qgGhHKJMxbLMyITmzvXLV9HJ8CXBVatpcdM3KTt1IpA29rKktxcLY4eX RLgd/ZX4qFg/pVv5hHQXRsgrRMZtLzLdSpFTXAcAnSGNsBqFiwfqoy951zwSVn8EyLQi yGNFeuXBxXG2WU/Y9BKrfdhsHiAjDccLDxRnlQjBKqISiOT2eHir8mznr+S2bepW1ptk nWWc6p8HxX/0D0il8NC4Ed/TpgATB3ToOotiPNUE/sughp/SIpPKB7tzHibN+HAL1yUR BqKw5+Kb9lkdfxG+Chw5zm+Q7wiJORDqYgB6tcsIcbfJux85gTF/9nZc5fG6nvduLlTE cyQQ== X-Received: by 10.204.227.14 with SMTP id iy14mr12738bkb.161.1386271618302; Thu, 05 Dec 2013 11:26:58 -0800 (PST) Original-Received: by 10.205.26.197 with HTTP; Thu, 5 Dec 2013 11:26:58 -0800 (PST) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:81464 Archived-At: --485b3970d1ee5f41ca04ecce83a2 Content-Type: text/plain; charset=ISO-8859-1 After further experimentation, I suspect that "[^]" is simply not a valid regular expression. For instance, grep(1) gives the following behavior: $ echo "^" | grep "[^]" grep: brackets ([ ]) not balanced This suggests that the broken behavior is within `regexp-opt-charset`. I've attached a patch for that function. Here are some test cases which reveal the behavior of the unpatched and patched versions of the function (the only difference is the handling of the "[^]" case): ;; Pre-patch (regexp-opt-charset (list ?^)) ; "[^]" (regexp-opt-charset (list ?^ ?a)) ; "[a^]" (regexp-opt-charset (list ?^ ?-)) ; "[-^]" (regexp-opt-charset (list ?^ ?\])) ; "[]^]" (regexp-opt-charset (list ?^ ?- ?\])) ; "[]^-]" ;; Post-patch (regexp-opt-charset (list ?^)) ; "\\^" (regexp-opt-charset (list ?^ ?a)) ; "[a^]" (regexp-opt-charset (list ?^ ?-)) ; "[-^]" (regexp-opt-charset (list ?^ ?\])) ; "[]^]" (regexp-opt-charset (list ?^ ?- ?\])) ; "[]^-]" -- Cameron Desautels --485b3970d1ee5f41ca04ecce83a2 Content-Type: text/plain; charset=US-ASCII; name="regexp-opt.el.diff" Content-Disposition: attachment; filename="regexp-opt.el.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_houebhuj0 KioqIHJlZ2V4cC1vcHQuZWwub3JpZwlUaHUgRGVjICA1IDExOjE3OjE5IDIwMTMKLS0tIHJlZ2V4 cC1vcHQuZWwJVGh1IERlYyAgNSAxMToxOTozMSAyMDEzCioqKioqKioqKioqKioqKiBDSEFSUyBz aG91bGQgYmUgYSBsaXN0IG9mIGNoYXJhY3RlcnMuIgoqKiogMjg1LDI5MSAqKioqCiAgICAgIDs7 CiAgICAgIDs7IE1ha2Ugc3VyZSBhIGNhcmV0IGlzIG5vdCBmaXJzdCBhbmQgYSBkYXNoIGlzIGZp cnN0IG9yIGxhc3QuCiAgICAgIChpZiAoYW5kIChzdHJpbmctZXF1YWwgY2hhcnNldCAiIikgKHN0 cmluZy1lcXVhbCBicmFja2V0ICIiKSkKISAJKGNvbmNhdCAiWyIgZGFzaCBjYXJldCAiXSIpCiAg ICAgICAgKGNvbmNhdCAiWyIgYnJhY2tldCBjaGFyc2V0IGNhcmV0IGRhc2ggIl0iKSkpKQogIAog IChwcm92aWRlICdyZWdleHAtb3B0KQotLS0gMjg1LDI5MyAtLS0tCiAgICAgIDs7CiAgICAgIDs7 IE1ha2Ugc3VyZSBhIGNhcmV0IGlzIG5vdCBmaXJzdCBhbmQgYSBkYXNoIGlzIGZpcnN0IG9yIGxh c3QuCiAgICAgIChpZiAoYW5kIChzdHJpbmctZXF1YWwgY2hhcnNldCAiIikgKHN0cmluZy1lcXVh bCBicmFja2V0ICIiKSkKISAJKGlmIChzdHJpbmctZXF1YWwgZGFzaCAiIikKISAgICAgICAgICAg ICAiXFxeIiAgICAgICAgICAgICAgICAgICAgICAgOyBbXl0gaXMgbm90IGEgdmFsaWQgcmVnZXhw CiEgICAgICAgICAgIChjb25jYXQgIlsiIGRhc2ggY2FyZXQgIl0iKSkKICAgICAgICAoY29uY2F0 ICJbIiBicmFja2V0IGNoYXJzZXQgY2FyZXQgZGFzaCAiXSIpKSkpCiAgCiAgKHByb3ZpZGUgJ3Jl Z2V4cC1vcHQpCg== --485b3970d1ee5f41ca04ecce83a2--