> Shouldn't it be something like this? > > + :type '(choice (repeat (symbol :tag "Major mode")) boolean) > + :version "31.1" > + :group 'windows) > > Otherwise it would give a warning due type. Right. >> + (let (kill-from-mode) >> + (with-current-buffer (window-buffer (window-normalize-window window)) >> + ;; Run the hook from the buffer implied to get any buffer-local >> + ;; values. >> + (run-hooks 'quit-window-hook) >> + >> + (setq kill-from-mode >> + (or (eq quit-window-kill-buffer-modes t) >> + (and (listp quit-window-kill-buffer-modes) >> + (derived-mode-p quit-window-kill-buffer-modes))))) > > Wouldn't it be more convenient to put this into the let varlist? It would be more convenient ... > + (let ((kill-from-mode > + (or (eq quit-window-kill-buffer-modes t) > + (and (listp quit-window-kill-buffer-modes) > + (derived-mode-p quit-window-kill-buffer-modes))))) > > > ... or is there something i'm missing? ... but 'derived-mode-p' says to "Return non-nil if the current major mode is derived from one of MODES. so I have to make the buffer current first via 'with-current-buffer' and only then I can call 'derived-mode-p'. martin