Dmitry Gutov <dgu...@yandex.ru> writes:

> On 08.01.2017 00:20, npost...@users.sourceforge.net wrote:
>> -            (inhibit-modification-hooks t))
>> +            (inhibit-modification-hooks
>> +             (progn (make-local-variable 'inhibit-modification-hooks) t)))
>
> Are we not worried that inhibit-modificaiton-hooks will become
> buffer-local even after control flow leaves this let*?

My feeling is that inhibit-modification-hooks should usually be buffer
local anyway.

> If we are not, why not make inhibit-modification-hooks always
> buffer-local instead?

It would have to be in addition to, because even after doing
(make-variable-buffer-local 'var), (let ((var 'foo))...) still makes a
global binding.  `make-variable-buffer-local' only has effect for
`setq', which I think will hardly ever happen for
`inhibit-modification-hooks'.

Actually, I just grepped for inhibit-modification-hooks and the only
non-let I found is this:

(defun read-passwd (prompt &optional confirm default)
   ...
      (minibuffer-with-setup-hook
          (lambda ()
             ...
             (setq-local inhibit-modification-hooks nil) ;bug#15501.
             ...))
   ...)



Reply via email to