changeset 104626:caa79498564a

* subr.el (default-mode-line-format, default-header-line-format) (default-line-spacing, default-abbrev-mode, default-ctl-arrow) (default-direction-reversed, default-truncate-lines) (default-left-margin, default-tab-width, default-case-fold-search) (default-left-margin-width, default-right-margin-width) (default-left-fringe-width, default-right-fringe-width) (default-fringes-outside-margins, default-scroll-bar-width) (default-vertical-scroll-bar, default-indicate-empty-lines) (default-indicate-buffer-boundaries, default-fringe-indicator-alist) (default-fringe-cursor-alist, default-scroll-up-aggressively) (default-scroll-down-aggressively, default-fill-column) (default-cursor-type, default-buffer-file-type) (default-cursor-in-non-selected-windows) (default-buffer-file-coding-system, default-major-mode) (default-enable-multibyte-characters): Mark as obsolete. * cus-start.el (default-major-mode): Customize `major-mode' instead. (enable-multibyte-characters): Not customizable any more.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 27 Aug 2009 04:24:00 +0000
parents 97ec4e51e2eb
children af7c656cbfc9
files doc/emacs/buffers.texi doc/emacs/display.texi doc/emacs/major.texi doc/emacs/mule.texi doc/emacs/search.texi doc/lispintro/emacs-lisp-intro.texi doc/lispref/abbrevs.texi doc/lispref/buffers.texi doc/lispref/display.texi doc/lispref/loading.texi doc/lispref/modes.texi doc/lispref/nonascii.texi doc/lispref/processes.texi doc/lispref/searching.texi doc/lispref/text.texi doc/lispref/windows.texi doc/misc/faq.texi etc/NEWS lisp/ChangeLog lisp/cus-start.el lisp/subr.el
diffstat 21 files changed, 137 insertions(+), 170 deletions(-) [+]
line wrap: on
line diff
--- a/doc/emacs/buffers.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/emacs/buffers.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -117,8 +117,8 @@
 
   One reason to create a new buffer is to use it for making temporary
 notes.  If you try to save it, Emacs asks for the file name to use.
-The variable @code{default-major-mode} determines the new buffer's
-major mode; the default value is Fundamental mode.  @xref{Major
+The default value of the variable @code{major-mode} determines the new
+buffer's major mode; the default value is Fundamental mode.  @xref{Major
 Modes}.
 
 @kindex C-x @key{LEFT}
--- a/doc/emacs/display.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/emacs/display.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -822,11 +822,6 @@
 the left fringe, but no arrow bitmaps, use @code{((top .  left)
 (bottom . left))}.
 
-@vindex default-indicate-buffer-boundaries
-  The value of the variable @code{default-indicate-buffer-boundaries}
-is the default value for @code{indicate-buffer-boundaries} in buffers
-that do not override it.
-
 @node Useless Whitespace
 @section Useless Whitespace
 
--- a/doc/emacs/major.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/emacs/major.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -196,13 +196,12 @@
 @code{magic-fallback-mode-alist} contains forms that check for image
 files, HTML/XML/SGML files, and Postscript files.
 
-@vindex default-major-mode
   When you visit a file that does not specify a major mode to use, or
-when you create a new buffer with @kbd{C-x b}, the variable
-@code{default-major-mode} specifies which major mode to use.  Normally
+when you create a new buffer with @kbd{C-x b}, the default value of
+the variable @code{major-mode} specifies which major mode to use.  Normally
 its value is the symbol @code{fundamental-mode}, which specifies
-Fundamental mode.  If @code{default-major-mode} is @code{nil}, the
-major mode is taken from the previously current buffer.
+Fundamental mode.  If the default value of @code{major-mode} is @code{nil},
+the major mode is taken from the previously current buffer.
 
 @findex normal-mode
   If you change the major mode of a buffer, you can go back to the major
--- a/doc/emacs/mule.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/emacs/mule.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -269,14 +269,10 @@
 auto mode selection.
 
 @vindex enable-multibyte-characters
-@vindex default-enable-multibyte-characters
 @cindex environment variables, and non-@acronym{ASCII} characters
   To turn off multibyte character support by default, start Emacs with
 the @samp{--unibyte} option (@pxref{Initial Options}), or set the
-environment variable @env{EMACS_UNIBYTE}.  You can also customize
-@code{enable-multibyte-characters} or, equivalently, directly set the
-variable @code{default-enable-multibyte-characters} to @code{nil} in
-your init file to have basically the same effect as @samp{--unibyte}.
+environment variable @env{EMACS_UNIBYTE}.
 With @samp{--unibyte}, multibyte strings are not created during
 initialization from the values of environment variables,
 @file{/etc/passwd} entries etc., even if those contain
@@ -307,12 +303,8 @@
 @xref{Mode Line}, for more details about this.
 
 @findex toggle-enable-multibyte-characters
-  To convert a unibyte session to a multibyte session, set
-@code{default-enable-multibyte-characters} to @code{t}.  Buffers which
-were created in the unibyte session before you turn on multibyte
-support will stay unibyte.  You can turn on multibyte support in a
-specific buffer by invoking the command
-@code{toggle-enable-multibyte-characters} in that buffer.
+You can turn on multibyte support in a specific buffer by invoking the
+command @code{toggle-enable-multibyte-characters} in that buffer.
 
 @node Language Environments
 @section Language Environments
@@ -1058,12 +1050,11 @@
   An easy way to visit a file with no conversion is with the @kbd{M-x
 find-file-literally} command.  @xref{Visiting}.
 
-@vindex default-buffer-file-coding-system
-  The variable @code{default-buffer-file-coding-system} specifies the
-choice of coding system to use when you create a new file.  It applies
-when you find a new file, and when you create a buffer and then save it
-in a file.  Selecting a language environment typically sets this
-variable to a good choice of default coding system for that language
+  The default value of the variable @code{buffer-file-coding-system}
+specifies the choice of coding system to use when you create a new file.
+It applies when you find a new file, and when you create a buffer and
+then save it in a file.  Selecting a language environment typically sets
+this variable to a good choice of default coding system for that language
 environment.
 
 @kindex C-x RET r
--- a/doc/emacs/search.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/emacs/search.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -949,15 +949,13 @@
 search.
 
 @vindex case-fold-search
-@vindex default-case-fold-search
   If you set the variable @code{case-fold-search} to @code{nil}, then
 all letters must match exactly, including case.  This is a per-buffer
-variable; altering the variable affects only the current buffer, but
-there is a default value in @code{default-case-fold-search} that you
-can also set.  @xref{Locals}.  This variable applies to nonincremental
-searches also, including those performed by the replace commands
-(@pxref{Replace}) and the minibuffer history matching commands
-(@pxref{Minibuffer History}).
+variable; altering the variable normally affects only the current buffer,
+unless you change its default value.  @xref{Locals}.
+This variable applies to nonincremental searches also, including those
+performed by the replace commands (@pxref{Replace}) and the minibuffer
+history matching commands (@pxref{Minibuffer History}).
 
   Several related variables control case-sensitivity of searching and
 matching for specific commands or activities.  For instance,
--- a/doc/lispintro/emacs-lisp-intro.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/lispintro/emacs-lisp-intro.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -17393,21 +17393,21 @@
 
 @cindex Text Mode turned on
 @smallexample
-(setq default-major-mode 'text-mode)
+(setq major-mode 'text-mode)
 @end smallexample
 
 @noindent
 This line is a short, but complete Emacs Lisp expression.
 
 We are already familiar with @code{setq}.  It sets the following variable,
-@code{default-major-mode}, to the subsequent value, which is
-@code{text-mode}.  The single quote mark before @code{text-mode} tells
-Emacs to deal directly with the @code{text-mode} variable, not with
-whatever it might stand for.  @xref{set & setq, , Setting the Value of
-a Variable}, for a reminder of how @code{setq} works.  The main point
-is that there is no difference between the procedure you use to set
-a value in your @file{.emacs} file and the procedure you use anywhere
-else in Emacs.
+@code{major-mode}, to the subsequent value, which is @code{text-mode}.
+The single quote mark before @code{text-mode} tells Emacs to deal directly
+with the @code{text-mode} symbol, not with whatever it might stand for.
+@xref{set & setq, , Setting the Value of a Variable},
+for a reminder of how @code{setq} works.
+The main point is that there is no difference between the procedure you
+use to set a value in your @file{.emacs} file and the procedure you use
+anywhere else in Emacs.
 
 @need 800
 Here is the next line:
--- a/doc/lispref/abbrevs.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/lispref/abbrevs.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -72,11 +72,6 @@
 This variable automatically becomes buffer-local when set in any fashion.
 @end defopt
 
-@defvar default-abbrev-mode
-This is the value of @code{abbrev-mode} for buffers that do not
-override it.  It is the same as @code{(default-value 'abbrev-mode)}.
-@end defvar
-
 @node Abbrev Tables, Defining Abbrevs, Abbrev Mode, Abbrevs
 @section Abbrev Tables
 
--- a/doc/lispref/buffers.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/lispref/buffers.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -936,8 +936,8 @@
 @end example
 
 The major mode for a newly created buffer is set to Fundamental mode.
-(The variable @code{default-major-mode} is handled at a higher level;
-see @ref{Auto Major Mode}.)  If the name begins with a space, the
+(The default value of the variable @code{major-mode} is handled at a higher
+level; see @ref{Auto Major Mode}.)  If the name begins with a space, the
 buffer initially disables undo information recording (@pxref{Undo}).
 @end defun
 
@@ -966,8 +966,8 @@
 @end group
 @end example
 
-The major mode for the new buffer is set to Fundamental mode.  The
-variable @code{default-major-mode} is handled at a higher level.
+The major mode for the new buffer is set to Fundamental mode.  The default
+value of the variable @code{major-mode} is handled at a higher level.
 @xref{Auto Major Mode}.
 
 See the related function @code{generate-new-buffer-name} in @ref{Buffer
--- a/doc/lispref/display.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/lispref/display.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -175,11 +175,6 @@
 entire frame width).
 @end defopt
 
-@defopt default-truncate-lines
-This variable is the default value for @code{truncate-lines}, for
-buffers that do not have buffer-local values for it.
-@end defopt
-
 @defopt truncate-partial-width-windows
 This variable controls line truncation in @dfn{partial-width} windows.
 A partial-width window is one that does not occupy the entire frame
@@ -1768,8 +1763,8 @@
 @vindex default-line-spacing
   On graphical terminals, you can specify the line spacing for all
 lines in a frame, using the @code{line-spacing} frame parameter
-(@pxref{Layout Parameters}).  However, if the variable
-@code{default-line-spacing} is non-@code{nil}, it overrides the
+(@pxref{Layout Parameters}).  However, if the default value of
+@code{line-spacing} is non-@code{nil}, it overrides the
 frame's @code{line-spacing} parameter.  An integer value specifies the
 number of pixels put below lines.  A floating point number specifies
 the spacing relative to the frame's default line height.
@@ -3260,11 +3255,6 @@
 fringe, and no arrow bitmaps, use @code{((top .  left) (bottom . left))}.
 @end defopt
 
-@defvar default-indicate-buffer-boundaries
-The value of this variable is the default value for
-@code{indicate-buffer-boundaries} in buffers that do not override it.
-@end defvar
-
 @defvar fringe-indicator-alist
 This buffer-local variable specifies the mapping from logical fringe
 indicators to the actual bitmaps displayed in the window fringes.
@@ -3308,17 +3298,12 @@
 
 When @code{fringe-indicator-alist} has a buffer-local value, and there
 is no bitmap defined for a logical indicator, or the bitmap is
-@code{t}, the corresponding value from the (non-local)
-@code{default-fringe-indicator-alist} is used.
+@code{t}, the corresponding value from the default value of
+@code{fringe-indicator-alist} is used.
 
 To completely hide a specific indicator, set the bitmap to @code{nil}.
 @end defvar
 
-@defvar default-fringe-indicator-alist
-The value of this variable is the default value for
-@code{fringe-indicator-alist} in buffers that do not override it.
-@end defvar
-
 Standard fringe bitmaps for indicators:
 @example
 left-arrow right-arrow up-arrow down-arrow
@@ -3371,12 +3356,7 @@
 
 When @code{fringe-cursor-alist} has a buffer-local value, and there is
 no bitmap defined for a cursor type, the corresponding value from the
-(non-local) @code{default-fringes-indicator-alist} is used.
-@end defvar
-
-@defvar default-fringes-cursor-alist
-The value of this variable is the default value for
-@code{fringe-cursor-alist} in buffers that do not override it.
+default value of @code{fringes-indicator-alist} is used.
 @end defvar
 
 Standard bitmaps for displaying the cursor in right fringe:
@@ -5545,12 +5525,6 @@
 displayed as a backslash followed by three octal digits: @samp{\001}.
 @end defopt
 
-@c Following may have overfull hbox.
-@defvar default-ctl-arrow
-The value of this variable is the default value for @code{ctl-arrow} in
-buffers that do not override it.  @xref{Default Value}.
-@end defvar
-
 @defopt tab-width
 The value of this buffer-local variable is the spacing between tab
 stops used for displaying tab characters in Emacs buffers.  The value
--- a/doc/lispref/loading.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/lispref/loading.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -376,10 +376,7 @@
   The reason Emacs is designed this way is so that Lisp programs give
 predictable results, regardless of how Emacs was started.  In addition,
 this enables programs that depend on using multibyte text to work even
-in a unibyte Emacs.  Of course, such programs should be designed to
-notice whether the user prefers unibyte or multibyte text, by checking
-@code{default-enable-multibyte-characters}, and convert representations
-appropriately.
+in a unibyte Emacs.
 
   In most Emacs Lisp programs, the fact that non-@acronym{ASCII} strings are
 multibyte strings should not be noticeable, since inserting them in
--- a/doc/lispref/modes.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/lispref/modes.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -484,8 +484,8 @@
 
 @noindent
 This tells Emacs that new buffers created while the current buffer is
-in Funny mode should not inherit Funny mode, in case
-@code{default-major-mode} is @code{nil}.  Modes such as Dired, Rmail,
+in Funny mode should not inherit Funny mode, in case the default value
+of @code{major-mode} is @code{nil}.  Modes such as Dired, Rmail,
 and Buffer List use this feature.
 
 The @code{define-derived-mode} macro automatically marks the derived
@@ -559,7 +559,8 @@
 specifies a major mode, that mode overrides any mode chosen by
 @code{set-auto-mode}.  If neither @code{set-auto-mode} nor
 @code{hack-local-variables} specify a major mode, the buffer stays in
-the major mode determined by @code{default-major-mode} (see below).
+the major mode determined by the default value of @code{major-mode}
+(see below).
 
 @cindex file mode specification error
 @code{normal-mode} uses @code{condition-case} around the call to the
@@ -588,11 +589,13 @@
 have set.
 @end defun
 
-@defopt default-major-mode
-This variable holds the default major mode for new buffers.  The
-standard value is @code{fundamental-mode}.
-
-If the value of @code{default-major-mode} is @code{nil}, Emacs uses
+@defopt major-mode
+The buffer-local value of this variable holds the major mode
+currently active.  The default value of this variable holds the
+default major mode for new buffers.  The standard default value is
+@code{fundamental-mode}.
+
+If the default value of @code{major-mode} is @code{nil}, Emacs uses
 the (previously) current buffer's major mode as the default major mode
 of a new buffer.  However, if that major mode symbol has a @code{mode-class}
 property with value @code{special}, then it is not used for new buffers;
@@ -602,8 +605,8 @@
 @end defopt
 
 @defun set-buffer-major-mode buffer
-This function sets the major mode of @var{buffer} to the value of
-@code{default-major-mode}; if that variable is @code{nil}, it uses the
+This function sets the major mode of @var{buffer} to the default value of
+@code{major-mode}; if that is @code{nil}, it uses the
 current buffer's major mode (if that is suitable).  As an exception,
 if @var{buffer}'s name is @samp{*scratch*}, it sets the mode to
 @code{initial-major-mode}.
@@ -1897,16 +1900,8 @@
 included in the mode line from @code{mode-line-format}.
 @end defvar
 
-  The variable @code{default-mode-line-format} is where
-@code{mode-line-format} usually gets its value:
-
-@defvar default-mode-line-format
-This variable holds the default @code{mode-line-format} for buffers
-that do not override it.  This is the same as @code{(default-value
-'mode-line-format)}.
-
 Here is a simplified version of the default value of
-@code{default-mode-line-format}.  The real default value also
+@code{mode-line-format}.  The real default value also
 specifies addition of text properties.
 
 @example
@@ -2103,13 +2098,6 @@
 This variable, local in every buffer, specifies how to display the
 header line, for windows displaying the buffer.  The format of the value
 is the same as for @code{mode-line-format} (@pxref{Mode Line Data}).
-@end defvar
-
-@defvar default-header-line-format
-This variable holds the default @code{header-line-format} for buffers
-that do not override it.  This is the same as @code{(default-value
-'header-line-format)}.
-
 It is normally @code{nil}, so that ordinary buffers have no header line.
 @end defvar
 
--- a/doc/lispref/nonascii.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/lispref/nonascii.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -102,19 +102,10 @@
 
 You cannot set this variable directly; instead, use the function
 @code{set-buffer-multibyte} to change a buffer's representation.
-@end defopt
-
-@defvar default-enable-multibyte-characters
-This variable's value is entirely equivalent to @code{(default-value
-'enable-multibyte-characters)}, and setting this variable changes that
-default value.  Setting the local binding of
-@code{enable-multibyte-characters} in a specific buffer is not allowed,
-but changing the default value is supported, and it is a reasonable
-thing to do, because it has no effect on existing buffers.
 
 The @samp{--unibyte} command line option does its job by setting the
 default value to @code{nil} early in startup.
-@end defvar
+@end defopt
 
 @defun position-bytes position
 Buffer positions are measured in character units.  This function
@@ -1052,7 +1043,7 @@
 eol conversion is set to match it (e.g., DOS-style CRLF format will
 imply @code{dos} eol conversion).  For encoding, the eol conversion is
 taken from the appropriate default coding system (e.g.,
-@code{default-buffer-file-coding-system} for
+default value of @code{buffer-file-coding-system} for
 @code{buffer-file-coding-system}), or from the default eol conversion
 appropriate for the underlying platform.
 @end defun
@@ -1212,8 +1203,8 @@
 also be a list of coding systems; then the function tries each of them
 one by one.  After trying all of them, it next tries the current
 buffer's value of @code{buffer-file-coding-system} (if it is not
-@code{undecided}), then the value of
-@code{default-buffer-file-coding-system} and finally the user's most
+@code{undecided}), then the default value of
+@code{buffer-file-coding-system} and finally the user's most
 preferred coding system, which the user can set using the command
 @code{prefer-coding-system} (@pxref{Recognize Coding,, Recognizing
 Coding Systems, emacs, The GNU Emacs Manual}).
@@ -1758,6 +1749,13 @@
 
 Normally this variable is set by visiting a file; it is set to
 @code{nil} if the file was visited without any actual conversion.
+
+Its default value is used to decide how to handle files for which
+@code{file-name-buffer-file-type-alist} says nothing about the type:
+If the default value is non-@code{nil}, then these files are treated as
+binary: the coding system @code{no-conversion} is used.  Otherwise,
+nothing special is done for them---the coding system is deduced solely
+from the file contents, in the usual Emacs fashion.
 @end defvar
 
 @defopt file-name-buffer-file-type-alist
@@ -1774,17 +1772,7 @@
 is used.
 
 If no element in this alist matches a given file name, then
-@code{default-buffer-file-type} says how to treat the file.
-@end defopt
-
-@defopt default-buffer-file-type
-This variable says how to handle files for which
-@code{file-name-buffer-file-type-alist} says nothing about the type.
-
-If this variable is non-@code{nil}, then these files are treated as
-binary: the coding system @code{no-conversion} is used.  Otherwise,
-nothing special is done for them---the coding system is deduced solely
-from the file contents, in the usual Emacs fashion.
+the default value of @code{buffer-file-type} says how to treat the file.
 @end defopt
 
 @node Input Methods
--- a/doc/lispref/processes.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/lispref/processes.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -2157,12 +2157,6 @@
 @item :filter @var{filter}
 Initialize the process filter to @var{filter}.
 
-@item :filter-multibyte @var{bool}
-If @var{bool} is non-@code{nil}, strings given to the process filter
-are multibyte, otherwise they are unibyte.  If you don't specify this
-keyword at all, the default is that the strings are multibyte if
-@code{default-enable-multibyte-characters} is non-@code{nil}.
-
 @item :sentinel @var{sentinel}
 Initialize the process sentinel to @var{sentinel}.
 
--- a/doc/lispref/searching.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/lispref/searching.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -187,9 +187,8 @@
 @code{case-fold-search} to @code{nil}.  Then all letters must match
 exactly, including case.  This is a buffer-local variable; altering the
 variable affects only the current buffer.  (@xref{Intro to
-Buffer-Local}.)  Alternatively, you may change the value of
-@code{default-case-fold-search}, which is the default value of
-@code{case-fold-search} for buffers that do not override it.
+Buffer-Local}.)  Alternatively, you may change the default value of
+@code{case-fold-search}.
 
   Note that the user-level incremental search feature handles case
 distinctions differently.  When the search string contains only lower
@@ -204,12 +203,6 @@
 they do ignore case.
 @end defopt
 
-@defvar default-case-fold-search
-The value of this variable is the default value for
-@code{case-fold-search} in buffers that do not override it.  This is the
-same as @code{(default-value 'case-fold-search)}.
-@end defvar
-
 @defopt case-replace
 This variable determines whether the higher level replacement
 functions should preserve case.  If the variable is @code{nil}, that
--- a/doc/lispref/text.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/lispref/text.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -1629,16 +1629,10 @@
 read, you should set @code{fill-column} to no more than 70.  Otherwise
 the line will be too long for people to read comfortably, and this can
 make the text seem clumsy.
+
+The default value for @code{fill-column} is 70.
 @end defopt
 
-@defvar default-fill-column
-The value of this variable is the default value for @code{fill-column} in
-buffers that do not override it.  This is the same as
-@code{(default-value 'fill-column)}.
-
-The default value for @code{default-fill-column} is 70.
-@end defvar
-
 @deffn Command set-left-margin from to margin
 This sets the @code{left-margin} property on the text from @var{from} to
 @var{to} to the value @var{margin}.  If Auto Fill mode is enabled, this
--- a/doc/lispref/windows.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/lispref/windows.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -791,7 +791,7 @@
 buffer using @code{other-buffer}.  If @var{buffer-or-name} is a string
 that does not identify an existing buffer, then a new buffer by that
 name is created.  The major mode for the new buffer is set according to
-the variable @code{default-major-mode}; see @ref{Auto Major Mode}.
+the variable @code{major-mode}; see @ref{Auto Major Mode}.
 
 When the selected window is the minibuffer window or is strongly
 dedicated to its buffer (@pxref{Dedicated Windows}), this function calls
@@ -837,7 +837,7 @@
 buffer, but you don't specify which.  If @var{buffer-or-name} is a
 string that does not name an existing buffer, a buffer by that name is
 created.  The major mode for the new buffer is set according to the
-variable @code{default-major-mode}.  @xref{Auto Major Mode}.
+variable @code{major-mode}.  @xref{Auto Major Mode}.
 
 If either of the variables @code{display-buffer-reuse-frames} or
 @code{pop-up-frames} is non-@code{nil}, @code{pop-to-buffer} looks for a
--- a/doc/misc/faq.texi	Thu Aug 27 01:50:12 2009 +0000
+++ b/doc/misc/faq.texi	Thu Aug 27 04:24:00 2009 +0000
@@ -2154,14 +2154,13 @@
 @section How do I change Emacs's idea of the @key{TAB} character's length?
 @cindex Tab length
 @cindex Length of tab character
-@cindex @code{default-tab-width}
-
-Set the variable @code{default-tab-width}.  For example, to set
+
+Set the default value of the variable @code{tab-width}.  For example, to set
 @key{TAB} stops every 10 characters, insert the following in your
 @file{.emacs} file:
 
 @lisp
-(setq default-tab-width 10)
+(setq-default tab-width 10)
 @end lisp
 
 Do not confuse variable @code{tab-width} with variable
--- a/etc/NEWS	Thu Aug 27 01:50:12 2009 +0000
+++ b/etc/NEWS	Thu Aug 27 04:24:00 2009 +0000
@@ -180,6 +180,9 @@
 
 * Lisp changes in Emacs 23.2
 
+** All the default-FOO variables that hold the default value of the FOO
+variable, are now declared obsolete.
+
 ** read-key is a function halfway between read-event and read-key-sequence.
 It reads a single key, but obeys input and escape sequence decoding.
 ** start-process-shell-command start-file-process-shell-command only
--- a/lisp/ChangeLog	Thu Aug 27 01:50:12 2009 +0000
+++ b/lisp/ChangeLog	Thu Aug 27 04:24:00 2009 +0000
@@ -1,3 +1,24 @@
+2009-08-27  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* cus-start.el (default-major-mode): Customize `major-mode' instead.
+	(enable-multibyte-characters): Not customizable any more.
+
+	* subr.el (default-mode-line-format, default-header-line-format)
+	(default-line-spacing, default-abbrev-mode, default-ctl-arrow)
+	(default-direction-reversed, default-truncate-lines)
+	(default-left-margin, default-tab-width, default-case-fold-search)
+	(default-left-margin-width, default-right-margin-width)
+	(default-left-fringe-width, default-right-fringe-width)
+	(default-fringes-outside-margins, default-scroll-bar-width)
+	(default-vertical-scroll-bar, default-indicate-empty-lines)
+	(default-indicate-buffer-boundaries, default-fringe-indicator-alist)
+	(default-fringe-cursor-alist, default-scroll-up-aggressively)
+	(default-scroll-down-aggressively, default-fill-column)
+	(default-cursor-type, default-buffer-file-type)
+	(default-cursor-in-non-selected-windows)
+	(default-buffer-file-coding-system, default-major-mode)
+	(default-enable-multibyte-characters): Mark as obsolete.
+
 2009-08-27  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	* vc-cvs.el (vc-cvs-update-changelog): Fix typo.
--- a/lisp/cus-start.el	Thu Aug 27 01:50:12 2009 +0000
+++ b/lisp/cus-start.el	Thu Aug 27 04:24:00 2009 +0000
@@ -38,8 +38,7 @@
 	     (garbage-collection-messages alloc boolean)
 	     ;; buffer.c
 	     (mode-line-format mode-line sexp) ;Hard to do right.
-	     (default-major-mode internal function)
-	     (enable-multibyte-characters mule boolean)
+	     (major-mode internal function)
 	     (case-fold-search matching boolean)
 	     (fill-column fill integer)
 	     (left-margin fill integer)
--- a/lisp/subr.el	Thu Aug 27 01:50:12 2009 +0000
+++ b/lisp/subr.el	Thu Aug 27 04:24:00 2009 +0000
@@ -1000,6 +1000,45 @@
 
 ;;;; Obsolescent names for functions.
 
+;; Special "default-FOO" variables which contain the default value of
+;; the "FOO" variable are nasty.  Their implementation is brittle, and
+;; slows down several unrelated variable operations; furthermore, they
+;; can lead to really odd behavior if you decide to make them
+;; buffer-local.
+
+;; Not used at all in Emacs, last time I checked:
+(make-obsolete-variable 'default-mode-line-format 'mode-line-format "23.2")
+(make-obsolete-variable 'default-header-line-format 'header-line-format "23.2")
+(make-obsolete-variable 'default-line-spacing 'line-spacing "23.2")
+(make-obsolete-variable 'default-abbrev-mode 'abbrev-mode "23.2")
+(make-obsolete-variable 'default-ctl-arrow 'ctl-arrow "23.2")
+(make-obsolete-variable 'default-direction-reversed 'direction-reversed "23.2")
+(make-obsolete-variable 'default-truncate-lines 'truncate-lines "23.2")
+(make-obsolete-variable 'default-left-margin 'left-margin "23.2")
+(make-obsolete-variable 'default-tab-width 'tab-width "23.2")
+(make-obsolete-variable 'default-case-fold-search 'case-fold-search "23.2")
+(make-obsolete-variable 'default-left-margin-width 'left-margin-width "23.2")
+(make-obsolete-variable 'default-right-margin-width 'right-margin-width "23.2")
+(make-obsolete-variable 'default-left-fringe-width 'left-fringe-width "23.2")
+(make-obsolete-variable 'default-right-fringe-width 'right-fringe-width "23.2")
+(make-obsolete-variable 'default-fringes-outside-margins 'fringes-outside-margins "23.2")
+(make-obsolete-variable 'default-scroll-bar-width 'scroll-bar-width "23.2")
+(make-obsolete-variable 'default-vertical-scroll-bar 'vertical-scroll-bar "23.2")
+(make-obsolete-variable 'default-indicate-empty-lines 'indicate-empty-lines "23.2")
+(make-obsolete-variable 'default-indicate-buffer-boundaries 'indicate-buffer-boundaries "23.2")
+(make-obsolete-variable 'default-fringe-indicator-alist 'fringe-indicator-alist "23.2")
+(make-obsolete-variable 'default-fringe-cursor-alist 'fringe-cursor-alist "23.2")
+(make-obsolete-variable 'default-scroll-up-aggressively 'scroll-up-aggressively "23.2")
+(make-obsolete-variable 'default-scroll-down-aggressively 'scroll-down-aggressively "23.2")
+(make-obsolete-variable 'default-fill-column 'fill-column "23.2")
+(make-obsolete-variable 'default-cursor-type 'cursor-type "23.2")
+(make-obsolete-variable 'default-buffer-file-type 'buffer-file-type "23.2")
+(make-obsolete-variable 'default-cursor-in-non-selected-windows 'cursor-in-non-selected-windows "23.2")
+(make-obsolete-variable 'default-buffer-file-coding-system 'buffer-file-coding-system "23.2")
+(make-obsolete-variable 'default-major-mode 'major-mode "23.2")
+(make-obsolete-variable 'default-enable-multibyte-characters
+      "use enable-multibyte-characters or set-buffer-multibyte instead" "23.2")
+
 (define-obsolete-function-alias 'window-dot 'window-point "22.1")
 (define-obsolete-function-alias 'set-window-dot 'set-window-point "22.1")
 (define-obsolete-function-alias 'read-input 'read-string "22.1")