GNU bug report logs - #3808
23.1.50; CC-mode: Impossible to set c-cleanup-list

Previous Next

Package: emacs;

Reported by: "Jan D." <jan.h.d <at> swipnet.se>

Date: Fri, 10 Jul 2009 11:20:04 UTC

Severity: normal

Done: Chong Yidong <cyd <at> stupidchicken.com>

Bug is archived. No further changes may be made.

Full log


Message #20 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Jan Djärv <jan.h.d <at> swipnet.se>
To: Alan Mackenzie <acm <at> muc.de>
Cc: 3808 <at> debbugs.gnu.org, emacs-pretest-bug <at> gnu.org
Subject: Re: bug#3808: 23.1.50; CC-mode: Impossible to set c-cleanup-list
Date: Sun, 12 Jul 2009 12:33:01 +0200

Alan Mackenzie skrev:
> Hi, Jan!
> 
> On Fri, Jul 10, 2009 at 01:14:45PM +0200, Jan D. wrote:
>> I customize c-cleanup-list.  This is then the full contents of my
>> .emacs:
>> (custom-set-variables
>>   ;; custom-set-variables was added by Custom.
>>   ;; If you edit it by hand, you could mess it up, so be careful.
>>   ;; Your init file should contain only one such instance.
>>   ;; If there is more than one, they won't work right.
>>  '(c-cleanup-list (quote (scope-operator space-before-funcall))))
>> (custom-set-faces
>>   ;; custom-set-faces was added by Custom.
>>   ;; If you edit it by hand, you could mess it up, so be careful.
>>   ;; Your init file should contain only one such instance.
>>   ;; If there is more than one, they won't work right.
>>  )
> 
>> I start emacs with --no-site-file, open a .c-file.
> 
> Just done this, in a new userid, having copied your .emacs.  To be sure,
> I tried on a freshly updated CVS Emacs.
> 
>> Check the value of c-cleanup-list:
> 
>> c-cleanup-list is a variable defined in `cc-vars.el'.
>> Its value is (scope-operator)
> 
> I can't reproduce the problem; I get:
> 
>     Its value is
>     (scope-operator space-before-funcall)
> 
> , just as desired.
> 
>> Local in buffer xftfont.c; global value is 
>> (scope-operator space-before-funcall)
> 
> Well, that looks OK.  :-)
> 
> Might it be that there's a local variables section at the end of
> xftfont.c which is overriding c-cleanup-list?
> 

No, but since this is in the emacs source tree, there is a .dir-locals.el
at the root of the source tree, and that comes in effect.  So it is not that 
it doesn't work, it is just this situation (setting c-file-style as a file 
local variable has the same effect).

So what happens is:
c-mode sets style to GNU.
My customization is applied.
.dir-locals.el sets style to GNU, thus erasing my customization.

>> And indeed, space-before-funcall is not in effect.  It seems impossible to
>> set this variable.  I also tried setting c-old-style-variable-behavior to t,
>> but it made no difference.
> 
>> The manual needs to explain how to set variables in a manner that works,
>> an example with lisp to add to .emacs would be nice also.
> 
> "The manual" being the CC Mode manual, of course.  In the appendix
> "Sample .emacs File", there's an example of c-cleanup-list being set in a
> style.  The instructions on how to set "style variables" in general (of
> which c-cleanup-list is one) are on the page "Configuration Basics" and
> its sup-page "Style Variables".
> 
> So I think the information is there, but perhaps it's not easy enough to
> find.  Could you, perhaps, reconstruct how you went about looking for the
> info?  Maybe the manual needs an extra hint or two somewhere.  Thanks!
> 

The situation above, i.e. how to preserve my customization when .dir-locals.el 
or file variables are in effect is not described.

I tried the mode hook, it didn't work either.  Is there a c-set-style hook?

	Jan D.



This bug report was last modified 15 years and 309 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.