GNU bug report logs -
#17373
24.3.50; match data is incorrect if there are too many groups
Previous Next
Full log
View this message in rfc822 format
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.