Subject: Re: bug#13837: 24.2; Make it possible to turn whitespace-mode only when there are no existing problems

From: Stefan Monnier <[email-masked]>
Date: Mon, 27 Jan 2014 10:00:30 -0500

>> But it's not obviously safe to me.  Two non-obvious parts are:
>> - the removal of "(add-to-list 'whitespace-style (car option))".
> The removal looks wrong to me too: without that code, the force argument
> has no effect.  On the other hand, the way it's implemented also seems
> wrong, as it permanently changes whitespace-style.

Agreed on both aspects.

>> - the change from has-bogus to bogus-list, where bogus-list will
>> (initially) only be nil if whitespace-report-list is nil.
> As far as I can see, has-bogus was set whenever an element was added to
> bogus-list.

The way I read the code bogus-list is a list of booleans (either nil or
t), returned by `mapcar', so it has as many elements as
whitespace-report-list.  IOW an element was/is added to bogus-list
regardless if a test succeeds/fails.

> 1. I would like to refactor the description of whitespace problems in
> whitespace-report-region to move those which are the same regardless of the
> value of indent-tabs-mode into a separate list.

Fine.

> 2. Since we're no longer going for getting this into 24.4, can we fold your
> "artificial" whitespace--report-report-region back into
> whitespace-report-region, which both simplifies the end result slightly,
> and avoids the question of whether the new function should be moved down
> into "internal functions"?

Of course,

        Stefan