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. ...)) ...)