@code{(@t{"\\.c\\'"} . c-mode)}, and it is responsible for selecting C
mode for files whose names end in @file{.c}. (Note that @samp{\\} is
needed in Lisp syntax to include a @samp{\} in the string, which must
-be used to suppress the special meaning of @samp{.} in regexps.) If the
-element has the form @code{(@var{regexp} @var{mode-function}
+be used to suppress the special meaning of @samp{.} in regexps.) If
+the element has the form @code{(@var{regexp} @var{mode-function}
@var{flag})} and @var{flag} is non-@code{nil}, then after calling
-@var{mode-function}, the suffix that matched @var{regexp} is discarded
-and the list is searched again for another match.
+@var{mode-function}, Emacs discards the suffix that matched
+@var{regexp} and searches the list again for another match.
- You can specify which major mode should be used for editing a certain
-file by a special sort of text in the first nonblank line of the file. The
+ You can specify the major mode to use for editing a certain file by
+special text in the first nonblank line of the file. The
mode name should appear in this line both preceded and followed by
@samp{-*-}. Other text may appear on the line as well. For example,
@vindex change-major-mode-with-file-name
The commands @kbd{C-x C-w} and @code{set-visited-file-name} change to
a new major mode if the new file name implies a mode (@pxref{Saving}).
+(@kbd{C-x C-s} does this too, if the buffer wasn't visiting a file.)
However, this does not happen if the buffer contents specify a major
mode, and certain ``special'' major modes do not allow the mode to
change. You can turn off this mode-changing feature by setting