Commit 2059927b authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(Init Examples): Clean up text about conditionals.

parent e81c51f0
......@@ -2313,42 +2313,37 @@ Enable the use of the command @code{narrow-to-region} without confirmation.
@end example
@item
Adjusting the configuration to various contexts.
Adjusting the configuration to various platforms and Emacs versions.
In most of the cases, people want their Emacs to behave the same on
all their machines, so their configuration should be the same, no
matter whether it's GNU/Linux or not, under X11 or on a tty, with one
version of Emacs or another, ...
What can happen, tho, is that depending on the circumstance some
features may or may not be available. In that case just prepend each
such customization with a little test that ensures that the feature
can be used. The best tests are usually checking that the feature is
available, rather than checking what kind of environment is
being used.
Users typically want Emacs to behave the same on all systems, so the
same init file is right for all platforms. However, sometimes it
happens that a function you use for customizing Emacs is not available
on some platforms or in older Emacs versions. To deal with that
situation, put the customization inside a conditional that tests whether
the function or facility is available, like this:
@example
(if (fboundp 'blinking-cursor-mode)
(blinking-cursor-mode 0))
@end example
(if (fboundp 'blink-cursor-mode)
(blink-cursor-mode 0))
@example
(if (boundp 'coding-category-utf-8)
(set-coding-priority '(coding-category-utf-8)))
(set-coding-priority '(coding-category-utf-8)))
@end example
@noindent
You can also simply disregard the errors that occur if the
function is not defined.
@example
(require 'cl) ; To define `ignore-errors'.
(ignore-errors (set-face-background 'region "grey75"))
(condition case ()
(set-face-background 'region "grey75")
(error nil))
@end example
Note also that a @code{setq} on a variable which does not exist is
generally harmless, so those usually do not need to be made
conditional on any kind of test.
A @code{setq} on a variable which does not exist is generally
harmless, so those do not need a conditional.
@end itemize
@node Terminal Init
@subsection Terminal-specific Initialization
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment