GNU bug report logs -
#17373
24.3.50; match data is incorrect if there are too many groups
Previous Next
Full log
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Hi,
The following reports 2. Replace 255 by 254, and it'll report 512 as expected
#+BEGIN_SRC emacs-lisp
(with-temp-buffer
(insert "bar")
(when
(re-search-backward
(concat
(mapconcat (lambda (x) (format "\\(%s\\)" x)) (make-list 255 "foo") "\\|")
"\\|"
"\\(bar\\)")
nil t)
(length (match-data))))
#+END_SRC
Regexps with many groups is the kind of thing is used in AUCTeX, in
TeX-auto-parse-region. What auctex does in that function is construct a
big regexp out of a list of smaller ones (each small one is made into a
group) ; then when the big regexp matches it then tries to find out
which of the smaller regexps actually matched by checking which group is
non-nil.
In GNU Emacs 24.3.50.7 (i686-pc-linux-gnu, GTK+ Version 2.24.20)
of 2014-04-10 on LDLC-portable
Windowing system distributor `The X.Org Foundation', version 11.0.11405000
System Description: Ubuntu 13.10
Configured using:
`configure 'CFLAGS=-g3 -O2''
Important settings:
value of $LANG: fr_BE.UTF-8
locale-coding-system: utf-8-unix
--
Nico.
This bug report was last modified 9 years and 10 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.