Subject: bug#5189: closed (Re: bug#5189: BibTeX mode problems: non-existent directories, faulty regexp-opt)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 10 Jul 2011 01:32:03 +0000

Your bug report

#5189: BibTeX mode problems:  non-existent directories, faulty regexp-opt

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 [email-masked].

-- 
5189: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=5189
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#5189: BibTeX mode problems: non-existent directories, faulty regexp-opt
From: Glenn Morris <[email-masked]>
To: [email-masked]
Date: Sat, 09 Jul 2011 21:31:52 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

This bug is being closed because it could not be reproduced and there
was no response to a request for more information.
If you reply with the requested information it can be reopened.

You can view the whole report at http://debbugs.gnu.org/BUGNUMBER

"Roland Winkler" wrote:

> I cannot reproduce this. For me, regexp-opt does give "shy group"
> constructs \(?: ... \) that work fine with subexpression numbers
> like bibtex-type-in-head. Can you give a more specific test case
> based on emacs --no-init-file that gives you incorrect behavior?
> It appears to me that you might load some code that redefines
> regexp-opt before loading bibtex-mode.
>
> Also the subject line of your report mentions "non-existent
> directories". Can you be more specific?

Subject: BibTeX mode problems: non-existent directories, faulty regexp-opt
From: Michael Ernst <[email-masked]>
To: Roland Winkler <[email-masked]>
Cc: bug-gnu-emacs <[email-masked]>
Date: Fri, 11 Dec 2009 22:40:14 -0800 (PST)

bibtex.el uses regexp-opt, which introduces new capturing parentheses that
throw off variables like bibtex-type-in-head, which is a regexp
subexpression number.  (Really, regexp-opt should be rewritten to only use
non-capturing parentheses!)

The below patch corrects the problem.

                    -Michael Ernst

My patches are against:
  GNU Emacs 23.1.1 (i486-pc-linux-gnu, GTK+ Version 2.18.3) of 2009-11-10 on vernadsky, modified by Debian
but the problem also exists in the Emacs CVS repository.

ChangeLog entry:

2009-12-11  Michael Ernst  <[email-masked]>

	* bibtex.el (bibtex-entry-type): Remove regexp-opt, which throws
	off regexp subexpression numbering.

diff -u /home/mernst/emacs/fixes/bibtex.el-orig /home/mernst/emacs/fixes/bibtex.el
--- /home/mernst/emacs/fixes/bibtex.el-orig	2009-12-11 22:13:59.000000000 -0800
+++ /home/mernst/emacs/fixes/bibtex.el	2009-12-11 22:15:28.000000000 -0800
@@ -1219,7 +1219,7 @@
 
 (defvar bibtex-entry-type
   (concat "@[ \t]*\\(?:"
-          (regexp-opt (mapcar 'car bibtex-entry-field-alist)) "\\)")
+          (mapconcat 'car bibtex-entry-field-alist "\\|") "\\)")
   "Regexp matching the type of a BibTeX entry.")
 
 (defvar bibtex-entry-head