Doc fixes for view-mode and special major-modes

Ref: http://debbugs.gnu.org/10650

* doc/lispref/modes.texi (Major Mode Conventions):
Mention the strange (IMO) relationship between View mode and special modes.

* lisp/view.el (view-buffer, view-buffer-other-window)
(view-buffer-other-frame): Doc fixes re special mode-class.
This commit is contained in:
Glenn Morris 2012-03-15 21:40:20 -04:00
parent 0835f01e98
commit da98623081
4 changed files with 27 additions and 3 deletions

View file

@ -1,3 +1,8 @@
2012-03-16 Glenn Morris <rgm@gnu.org>
* modes.texi (Major Mode Conventions): Mention the strange
relationship between View mode and special modes. (Bug#10650)
2012-03-11 Chong Yidong <cyd@gnu.org>
* windows.texi (Window Configurations): save-window-excursion is

View file

@ -525,6 +525,10 @@ mode when creating new buffers (@pxref{Auto Major Mode}), but with such
@code{special} modes, Fundamental mode is used instead. Modes such as
Dired, Rmail, and Buffer List use this feature.
The function @code{view-buffer} does not enable View mode in buffers
whose mode-class is special, because such modes usually provide their
own View-like bindings.
The @code{define-derived-mode} macro automatically marks the derived
mode as special if the parent mode is special. Special mode is a
convenient parent for such modes to inherit from; @xref{Basic Major

View file

@ -1,5 +1,8 @@
2012-03-16 Glenn Morris <rgm@gnu.org>
* view.el (view-buffer, view-buffer-other-window)
(view-buffer-other-frame): Doc fixes re special mode-class.
* subr.el (eval-after-load): If named feature is provided not from
a file, run after-load forms. (Bug#10946)

View file

@ -309,7 +309,11 @@ this argument instead of explicitly setting `view-exit-action'.
Do not set EXIT-ACTION to `kill-buffer' when BUFFER visits a
file: Users may suspend viewing in order to modify the buffer.
Exiting View mode will then discard the user's edits. Setting
EXIT-ACTION to `kill-buffer-if-not-modified' avoids this."
EXIT-ACTION to `kill-buffer-if-not-modified' avoids this.
This function does not enable View mode if the buffer's major-mode
has a `special' mode-class, because such modes usually have their
own View-like bindings."
(interactive "bView buffer: ")
(switch-to-buffer buffer)
(if (eq (get major-mode 'mode-class) 'special)
@ -331,7 +335,11 @@ Optional argument NOT-RETURN is ignored.
Optional argument EXIT-ACTION is either nil or a function with buffer as
argument. This function is called when finished viewing buffer. Use
this argument instead of explicitly setting `view-exit-action'."
this argument instead of explicitly setting `view-exit-action'.
This function does not enable View mode if the buffer's major-mode
has a `special' mode-class, because such modes usually have their
own View-like bindings."
(interactive "bIn other window view buffer:\nP")
(let ((pop-up-windows t))
(pop-to-buffer buffer t))
@ -354,7 +362,11 @@ Optional argument NOT-RETURN is ignored.
Optional argument EXIT-ACTION is either nil or a function with buffer as
argument. This function is called when finished viewing buffer. Use
this argument instead of explicitly setting `view-exit-action'."
this argument instead of explicitly setting `view-exit-action'.
This function does not enable View mode if the buffer's major-mode
has a `special' mode-class, because such modes usually have their
own View-like bindings."
(interactive "bView buffer in other frame: \nP")
(let ((pop-up-frames t))
(pop-to-buffer buffer t))