Subject: bug#19206: 25.0.50; CC Mode tracks wrong source files

From: Sebastian Wiesner <[email-masked]>
Date: Fri, 28 Nov 2014 23:37:49 +0100

> Am 28.11.2014 um 23:25 schrieb Alan Mackenzie <[email-masked]>:
> 
> Hello, Sebastian.
> In article <[email-masked]> you wrote:
>> CC Mode tracks wrong source files when a CC Mode derived mode is
>> installed non-interactively.
> 
> The rest of your post describes your detective work to track down the
> problem, which is brilliant.  But you haven't said what the problem itself
> is, at least not in high level terms.
> 
> What does the file look like which does the non-interactive installation,
> when do you see an error, and what is this error message?

The “file” that does the non-interactive installation is Cask from https://github.com/cask/cask/.  

I use Cask to install packages into per-project directories, and to run ERT test suites for Emacs Lisp in these “per-project” package environments.

The error occurs when a test case tries to enable D Mode.  It's a standard load file error, pointing to the main script of Cask.

This seems all rather irrelevant to me, though.  The sample code demonstrates the issue quite clearly.

>> I did not try to find the culprit.  The CC Mode code is convoluted
>> beyond my understanding.
> 
> The mechanism for the c-lang-defvar's may appear complicated, but it this
> concentration of the complexity in a single place that enables the simple,
> tabular definition of language dependent constants, even (especially) in
> derived modes.

Well, if you say.  I'm curious, though, what this system would enable me to do, that an ordinary `require' could not?

Greetings,
Sebastian