tildify.el: Fix matched group indexes in end-regex building
authorMichal Nazarewicz <mina86@mina86.com>
Thu, 5 Jun 2014 14:39:18 +0000 (16:39 +0200)
committerMichal Nazarewicz <mina86@mina86.com>
Thu, 5 Jun 2014 14:39:18 +0000 (16:39 +0200)
commit9342feecdd92b769b1f45a6feea8ad34985c5049
tree5be0d974eccfc0bb98effbe6735cb29271f13d69
parentaf9a3b28c0ca250ed245bd54c8737792916fe4c6
tildify.el: Fix matched group indexes in end-regex building

* lisp/textmodes/tildifi.el (tildify-find-env): When looking for
a start of an ignore-environment, the regex is built by
concatenating regexes of all the environments configured in
`tildify-ignored-environments-alist'.  So for example, the following
list could be used to match TeX's \verb and \verb* commands:

    (("\\\\verb\\(.\\)" . (1))
     ("\\\\verb\\*\\(.\\)" . (1)))

This would result in the following regex being used to find the start
of any of the variants of the \verb command:

    \\\\verb\\(.\\)\\|\\\\verb\\*\\(.\\)

But now, if “\\\\verb\\*\\(.\\)” matches, the first capture group
won't match anything, and thus (match-string 1) will be nil, which
will cause building of the end-matching regex to fail.

Fix this by using capture groups from the time when the opening
regexes are matched individually.

* tests/automated/tildify-tests.el (tildify-test-find-env-group-index-bug):
New test validating fix to the above bug.
lisp/ChangeLog
lisp/textmodes/tildify.el
test/ChangeLog
test/automated/tildify-tests.el