Subject: bug#40119: [PATCH] Make compilation-mode regexp matching case-sensitive

From: Mattias Engdegård <[email-masked]>
Date: Wed, 18 Mar 2020 23:05:25 +0100

18 mars 2020 kl. 20.29 skrev Eli Zaretskii <[email-masked]>:

> What I meant is that some of
> the rules were written _knowing_ that the match is case-insensitive,
> and will fail to match if that is changed.  I don't think there's
> anyone around here that can claim detailed knowledge of every rule and
> the compiler(s) that use them, so we have no one to ask whether this
> danger is real or imaginary.

Thank you for clarifying! All the tests pass after the change, and etc/compilation.txt is rendered almost identically. There is only one difference: the example for 'watcom' did not actually match that rule, but rule 'edg-1' (which comes earlier in the list) instead. With case-fold-search set to nil, the 'watcom' example is matched by its rule and not by edg-1.

In other words, it is unlikely that the existing rules in compile.el expect case-insensitive matching of the output for which they are written. Conversely, there is already evidence that case-insensitive matching causes the wrong rule to be used.

Of course we cannot exclude that rules are used with compilers other than for which the patterns were designed. The correct way to handle this should be to add a suitable rule, not to change how all rules match. Nevertheless, I added a user switch to turn case-insensitivity back on again for those who prefer it that way.

Revised patch follows.