- (setq quarter-plane-saved-values nil)
- (dolist (sym quarter-plane-saved-symbols)
- (push (symbol-value sym) quarter-plane-saved-values))
- (setq quarter-plane-saved-values (nreverse quarter-plane-saved-values))
- (setq truncate-lines t)
- (setq show-trailing-whitespace nil))
- (t
- (remove-hook 'before-save-hook 'quarter-plane-delete-whitespace t)
- (dolist (sym quarter-plane-saved-symbols)
- (set sym (pop quarter-plane-saved-values))))))
+ ;; Since quarter-plane-mode is not permanent-local, it should turn itself
+ ;; off cleanly.
+ (add-hook 'change-major-mode-hook (lambda () (quarter-plane-mode -1)) nil t)
+ (dolist (symval '((truncate-lines . t)
+ (show-trailing-whitespace . nil)))
+ (push (cons (car symval) (symbol-value (car symval)))
+ quarter-plane-saved-values)
+ (set (car symval) (cdr symval)))))