On Wed, 2010-07-07 at 17:56 -0400, Dan Mahoney, System Admin wrote: > The manpage states: > > "Existing command line switches will override any settings in the > configuration file." > > What I took from this was that if I specified, say, -d on the command > line, it would override what's in the file. But what this really seems to > mean is that you need to specify ALL options when using the command line.
Uh, funny. First of all, I did not check the spamc code. It's C, not Perl. ;) The first thing that came to mind is, it sure it ambiguous. Does "any" here refer to "any and all that there is"? Not being a native English speaker, with real-life experience of an additional necessary translation step from English to the OPs mother tongue, I myself usually try to disambiguate by adding additional description. So, that would be "override any [corresponding] settings", versus "override any settings, [effectively ignoring the default conf file]". Again, funny. What does it mean? :) Thinking about it, there *are* options that are impossible to revert or overrule. Meaning, once stated in the default spamc.conf file, cannot be reverted otherwise, unless using -F with a bogus, empty file. > Is this by design? With most other programs, it would seem only the > options specified on the command line would be overridden (like -d > 127.0.0.1 in my example above). I understand your confusion. However, I guess in this case, given there are no corresponding "no" prefixed rules to override explicitly set defaults, "any" indeed means "any and all" by design. -- char *t="\10pse\0r\0dtu...@ghno\x4e\xc8\x79\xf4\xab\x51\x8a\x10\xf4\xf4\xc4"; main(){ char h,m=h=*t++,*x=t+2*h,c,i,l=*x,s=0; for (i=0;i<l;i++){ i%8? c<<=1: (c=*++x); c&128 && (s+=h); if (!(h>>=1)||!t[s+h]){ putchar(t[s]);h=m;s=0; }}}