[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#19281: 11.86; environment update fails when environment name contain
From: |
Tassilo Horn |
Subject: |
bug#19281: 11.86; environment update fails when environment name contains \ |
Date: |
Wed, 10 Dec 2014 08:38:04 +0100 |
User-agent: |
Gnus/5.130012 (Ma Gnus v0.12) Emacs/25.0.50 (gnu/linux) |
Mosè Giordano <address@hidden> writes:
Hi!
> 2014-12-09 10:34 GMT+01:00 Tassilo Horn <address@hidden>:
>>> Or matching everything between the opening and the closing brace
>>> (allowing at least one level of braces)?
>>
>> Either that, or we could also rely on syntax tables. I.e., since
>> `LaTeX-find-matching-end' already brings us to the end of the
>> environment name,
>>
>> (let ((end (point)))
>> (forward-char)
>> (backward-sexp)
>> (forward-char)
>> (buffer-substring-no-properties (point) end))
>>
>> gives us the environment name.
>
> Good idea, except that `LaTeX-find-matching-end' fails to find the
> closing brace of \end when the environment name is a macro with
> arguments.
Ah, indeed. During my testing it always stopped at
\end{\whatever{foo}|} with | being point, so I assumed that's where it's
supposed to stop, i.e., right after the environment name, not right
after the environment.
I guess it's better to also test the simple cases, not only the complex
ones. ;-)
> The attached patch should fix this problem.
> `LaTeX-environment-name-regexp' needs to be a function because if it
> were a variable it would always keep the original value, also in
> buffers with different values for `TeX-grop' and `TeX-grcl' (or not?).
Correct. Well, it could also be a variable that's initialized in
`LaTeX-common-initialization' or so after a call to
`hack-local-variables' to apply file local variables first. But IMO
it's better to have it as a function.
> Probably `LaTeX-modify-environment' can be simplified following your
> suggestion,
On a second thought, the syntax-table approach will fail in case the
environment name is something unbalanced like \foo[{] which is unlikely
but possible. So better stick to the regexp-search.
> the patch sketches an idea how to fix `LaTeX-find-matching-end', but
> can be improved.
Looks good to me.
Bye,
Tassilo