+2008-10-15 Eli Zaretskii <eliz@gnu.org>
+
+ * modes.texi (Major Mode Conventions, Mode Line Variables):
+ `mode-name' need not be a string. xref to "Mode Line Data" for
+ details, and to "Emulating Mode Line" for computing a string
+ value.
+
2008-10-14 Eli Zaretskii <eliz@gnu.org>
* processes.texi (System Processes): New section.
@item
The major mode command should set the variable @code{mode-name} to the
-``pretty'' name of the mode, as a string. This string appears in the
-mode line.
+``pretty'' name of the mode, usually a string (but see @ref{Mode Line
+Data}, for other possible forms). The name of the mode appears
+in the mode line.
@item
@cindex functions in modes
@defvar mode-name
This buffer-local variable holds the ``pretty'' name of the current
-buffer's major mode. Each major mode should set this variable so that the
-mode name will appear in the mode line.
+buffer's major mode. Each major mode should set this variable so that
+the mode name will appear in the mode line. The value does not have
+to be a string, but can use any of the data types valid in a mode-line
+construct (@pxref{Mode Line Data}). To compute the string that will
+identify the mode name in the mode line, use @code{format-mode-line}
+(@pxref{Emulating Mode Line}).
@end defvar
@defvar mode-line-process
`byte-compile-warning-enabled-p', `byte-compile-disable-warning', and
`byte-compile-enable-warning.'
++++
** `mode-name' is no longer guaranteed to be a string.
Use `(format-mode-line mode-name)' to ensure a string value.