- (interactive "P")
- (let ((new-flag (if (null arg)
- (not glasses-mode)
- (> (prefix-numeric-value arg) 0))))
- (unless (eq new-flag glasses-mode)
- (save-excursion
- (save-restriction
- (widen)
- ;; We erase the all overlays anyway, to avoid dual sight in some
- ;; circumstances
- (glasses-make-unreadable (point-min) (point-max))
- (if new-flag
- (progn
- (glasses-make-readable (point-min) (point-max))
- (make-local-hook 'after-change-functions)
- (add-hook 'after-change-functions 'glasses-change nil t)
- (add-hook 'local-write-file-hooks
- 'glasses-convert-to-unreadable nil t))
- (remove-hook 'after-change-functions 'glasses-change t)
- (remove-hook 'local-write-file-hooks
- 'glasses-convert-to-unreadable t))))
- (setq glasses-mode new-flag))))
+ nil " o^o" nil
+ (save-excursion
+ (save-restriction
+ (widen)
+ ;; We erase all the overlays anyway, to avoid dual sight in some
+ ;; circumstances
+ (glasses-make-unreadable (point-min) (point-max))
+ (if glasses-mode
+ (progn
+ (jit-lock-register 'glasses-change)
+ (add-hook 'local-write-file-hooks
+ 'glasses-convert-to-unreadable nil t))
+ (jit-lock-unregister 'glasses-change)
+ (remove-hook 'local-write-file-hooks
+ 'glasses-convert-to-unreadable t)))))