To get the old behavior back and unbind these keys in Dired mode, add
the following to your Init file:
-(with-eval-after-load 'dired
- (keymap-set dired-mode-map "N" nil)
- (keymap-set dired-mode-map "I" nil))
+ (with-eval-after-load 'dired
+ (keymap-set dired-mode-map "N" nil)
+ (keymap-set dired-mode-map "I" nil))
---
*** New command 'dired-do-eww'.
See etc/MACHINES.
-** Portable `alloca' provided.
+** Portable 'alloca' provided.
Emacs can now run on machines that do not and cannot support the library
-subroutine `alloca' in the canonical fashion, using an `alloca' emulation
+subroutine 'alloca' in the canonical fashion, using an 'alloca' emulation
written in C.
** On-line manual.
Thus, the active, current file does not have a version number.
Only the backups have them.
-This feature is controlled by the variable `version-control'. If it
-is `nil', as normally, then numbered backups are made only for files
+This feature is controlled by the variable 'version-control'. If it
+is 'nil', as normally, then numbered backups are made only for files
that already have numbered backups. Backup names with just `~' are
used for files that have no numbered backups.
-If `version-control' is `never', then the backup file's name is
+If 'version-control' is 'never', then the backup file's name is
made with just `~' in any case.
-If `version-control' is not `nil' or `never', numbered backups are
+If 'version-control' is not 'nil' or 'never', numbered backups are
made unconditionally.
To prevent unlimited consumption of disk space, Emacs can delete
old backup versions automatically. Generally Emacs keeps the first
few backups and the latest few backups, deleting any in between.
This happens every time a new backup is made. The two variables that
-control the deletion are `kept-old-versions' and `kept-new-versions'.
+control the deletion are 'kept-old-versions' and 'kept-new-versions'.
Their values are, respectively, the number of oldest backups to keep
and the number of newest ones to keep, each time a new backup is made.
-The value of `kept-new-versions' includes the backup just created.
+The value of 'kept-new-versions' includes the backup just created.
By default, both values are 2.
-If `trim-versions-without-asking' is non-`nil', the excess middle versions
-are deleted without a murmur. If it is `nil', the default, then you
+If 'trim-versions-without-asking' is non-'nil', the excess middle versions
+are deleted without a murmur. If it is 'nil', the default, then you
are asked whether the excess middle versions should really be deleted.
Dired has a new command `.' which marks for deletion all but the latest
-and oldest few of every numeric series of backups. `kept-old-versions'
-controls the number of oldest versions to keep, and `dired-kept-versions'
+and oldest few of every numeric series of backups. 'kept-old-versions'
+controls the number of oldest versions to keep, and 'dired-kept-versions'
controls the number of latest versions to keep. A numeric argument to
the `.' command, if positive, specifies the number of latest versions
-to keep, overriding `dired-kept-versions'. A negative argument specifies
+to keep, overriding 'dired-kept-versions'. A negative argument specifies
the number of oldest versions to keep, using minus the argument to override
-`kept-old-versions'.
+'kept-old-versions'.
** Immediate conflict detection.
The old M-= (copy previous input) command is now C-c C-y.
-** Shell mode recognizes aliases for `pushd', `popd' and `cd'.
+** Shell mode recognizes aliases for 'pushd', 'popd' and 'cd'.
-Shell mode now uses the variable `shell-pushd-regexp' as a
+Shell mode now uses the variable 'shell-pushd-regexp' as a
regular expression to recognize any command name that is
-equivalent to a `pushd' command. By default it is set up
-to recognize just `pushd' itself. If you use aliases for
-`pushd', change the regexp to recognize them as well.
+equivalent to a 'pushd' command. By default it is set up
+to recognize just 'pushd' itself. If you use aliases for
+'pushd', change the regexp to recognize them as well.
-There are also `shell-popd-regexp' to recognize commands
-with the effect of a `popd', and `shell-cd-regexp' to recognize
-commands with the effect of a `cd'.
+There are also 'shell-popd-regexp' to recognize commands
+with the effect of a 'popd', and 'shell-cd-regexp' to recognize
+commands with the effect of a 'cd'.
** "Exit" command in certain modes now C-c C-c.
** Outline mode changes.
Lines that are not heading lines are now called "body" lines.
-The command `hide-text' is renamed to `hide-body'.
+The command 'hide-text' is renamed to 'hide-body'.
The key M-H is renamed to C-c C-h.
The key M-S is renamed to C-c C-s.
The key M-s is renamed to C-c C-i.
The F command (rmail-find) is renamed to M-s (rmail-search).
Various new commands and features exist; see the Emacs manual.
-** Local bindings described first in describe-bindings.
+** Local bindings described first in 'describe-bindings'.
** [...], {...} now balance in Fundamental mode.
There are two new major modes for editing nroff input and TeX input.
See the Emacs manual for full information.
-** New C indentation style variable `c-brace-imaginary-offset'.
+** New C indentation style variable 'c-brace-imaginary-offset'.
-The value of `c-brace-imaginary-offset', normally zero, controls the
+The value of 'c-brace-imaginary-offset', normally zero, controls the
indentation of a statement inside a brace-group where the open-brace
is not the first thing on a line. The value says where the open-brace
is imagined to be, relative to the first nonblank character on the line.
not at the beginning of the line. The most used motion commands are
redefined in Dired to position the cursor this way.
-`n' and `p' are now equivalent in dired to `C-n' and `C-p'.
+'n' and 'p' are now equivalent in dired to 'C-n' and 'C-p'.
If any files to be deleted cannot be deleted, their names are
printed in an error message.
-If the `v' command is invoked on a file which is a directory,
+If the 'v' command is invoked on a file which is a directory,
dired is run on that directory.
-** `visit-tag-table' renamed `visit-tags-table'.
+** 'visit-tag-table' renamed 'visit-tags-table'.
-This is so apropos of `tags' finds everything you need to
+This is so apropos of 'tags' finds everything you need to
know about in connection with Tags.
-** `mh-e' library uses C-c as prefix.
+** 'mh-e' library uses C-c as prefix.
-All the special commands of `mh-rmail' now are placed on a
+All the special commands of 'mh-rmail' now are placed on a
C-c prefix rather than on the C-x prefix. This is for
consistency with other special modes with their own commands.
-** M-$ or `spell-word' checks word before point.
+** M-$ or 'spell-word' checks word before point.
It used to check the word after point.
** Quitting during autoloading no longer causes trouble.
Now, when a file is autoloaded, all function redefinitions
-and `provide' calls are recorded and are undone if you quit
+and 'provide' calls are recorded and are undone if you quit
before the file is finished loading.
As a result, it no longer happens that some of the entry points
which are normally autoloading have been defined already, but the
entire file is not really present to support them.
-** `else' can now be indented correctly in C mode.
+** 'else' can now be indented correctly in C mode.
-TAB in C mode now knows which `if' statement an `else' matches
-up with, and can indent the `else' correctly under the `if',
-even if the `if' contained such things as another `if' statement,
-or a `while' or `for' statement, with no braces around it.
+TAB in C mode now knows which 'if' statement an 'else' matches
+up with, and can indent the 'else' correctly under the 'if',
+even if the 'if' contained such things as another 'if' statement,
+or a 'while' or 'for' statement, with no braces around it.
-** `batch-byte-compile'
+** 'batch-byte-compile'
Runs byte-compile-file on the files specified on the command line.
All the rest of the command line arguments are taken as files to
Each file will be processed even if an error occurred previously.
For example, invoke `emacs -batch -f batch-byte-compile *.el'.
-** `-batch' changes.
+** '-batch' changes.
-`-batch' now implies `-q': no init file is loaded by Emacs when
-`-batch' is used. Also, no `term/TERMTYPE.el' file is loaded. Auto
+'-batch' now implies '-q': no init file is loaded by Emacs when
+'-batch' is used. Also, no `term/TERMTYPE.el' file is loaded. Auto
saving is not done except in buffers in which it is explicitly
requested. Also, many echo-area printouts describing what is going on
are inhibited in batch mode, so that the only output you get is the
One echo-area message that is not suppressed is the one that says
that a file is being loaded. That is because you can prevent this
-message by passing `t' as the third argument to `load'.
+message by passing 't' as the third argument to 'load'.
** Display of search string in incremental search.
** View commands.
The commands C-x ], C-x [, C-x /, C-x j and C-x o are now
-available inside `view-buffer' and `view-file', with their
+available inside 'view-buffer' and 'view-file', with their
normal meanings.
** Full-width windows preferred.
-The ``other-window'' commands prefer other full width windows,
+The 'other-window' commands prefer other full width windows,
and will split only full width windows.
** M-x rename-file can copy if necessary.
** Auto Save Files Deleted.
-The default value of `delete-auto-save-files' is now `t', so that
+The default value of 'delete-auto-save-files' is now 't', so that
when you save a file for real, its auto save file is deleted.
** Rnews changes.
The message is written into those files in Unix mail file format.
The message as sent does not contain any Fcc fields in its header.
You can use any number of Fcc fields, but only one file name in each one.
-The variable `mail-archive-file-name', if non-`nil', can be a string
+The variable 'mail-archive-file-name', if non-'nil', can be a string
which is a file name; an Fcc to that file will be inserted in every
message when you begin to compose it.
A new command C-c q now exists in Mail mode. It fills the
paragraphs of an old message that had been inserted with C-c y.
-When the *mail* buffer is put in Mail mode, text-mode-hook
-is now run in addition to mail-mode-hook. text-mode-hook
+When the *mail* buffer is put in Mail mode, 'text-mode-hook'
+is now run in addition to 'mail-mode-hook'. text-mode-hook
is run first.
-The new variable `mail-header-separator' now specifies the string
+The new variable 'mail-header-separator' now specifies the string
to use on the line that goes between the headers and the message text.
By default it is still "--text follows this line--".
(defun foo-1 (x y z) ...
-** Functions `region-to-string' and `region-around-match' removed.
+** Functions 'region-to-string' and 'region-around-match' removed.
These functions were made for compatibility with Gosling Emacs, but it
turns out to be undesirable to use them in GNU Emacs because they use
the mark. They have been eliminated from Emacs proper, but are
present in mlsupport.el for the sake of converted mocklisp programs.
-If you were using `region-to-string', you should instead use
-`buffer-substring'; then you can pass the bounds as arguments and
+If you were using 'region-to-string', you should instead use
+'buffer-substring'; then you can pass the bounds as arguments and
can avoid setting the mark.
-If you were using `region-around-match', you can use instead
-the two functions `match-beginning' and `match-end'. These give
+If you were using 'region-around-match', you can use instead
+the two functions 'match-beginning' and 'match-end'. These give
you one bound at a time, as a numeric value, without changing
point or the mark.
-** Function `function-type' removed.
+** Function 'function-type' removed.
This just appeared not to be very useful. It can easily be written in
-Lisp if you happen to want it. Just use `symbol-function' to get the
+Lisp if you happen to want it. Just use 'symbol-function' to get the
function definition of a symbol, and look at its data type or its car
if it is a list.
-** Variable `buffer-number' removed.
+** Variable 'buffer-number' removed.
-You can still use the function `buffer-number' to find out
+You can still use the function 'buffer-number' to find out
a buffer's unique number (assigned in order of creation).
-** Variable `executing-macro' renamed `executing-kbd-macro'.
+** Variable 'executing-macro' renamed 'executing-kbd-macro'.
This variable is the currently executing keyboard macro, as
-a string, or `nil' when no keyboard macro is being executed.
+a string, or 'nil' when no keyboard macro is being executed.
** Loading term/$TERM.
in a special subdirectory named term, and have names like
term/vt100.el.
-** `command-history' format changed.
+** 'command-history' format changed.
The elements of this list are now Lisp expressions which can
be evaluated directly to repeat a command.
** Unused editing commands removed.
-The functions `forward-to-word', `backward-to-word',
-`upcase-char', `mark-beginning-of-buffer' and `mark-end-of-buffer'
+The functions 'forward-to-word', 'backward-to-word',
+'upcase-char', 'mark-beginning-of-buffer' and 'mark-end-of-buffer'
have been removed. Their definitions can be found in file
lisp/unused.el if you need them.
** You can now continue after errors and quits.
When the debugger is entered because of a C-g, due to
-a non-`nil' value of `debug-on-quit', the `c' command in the debugger
+a non-'nil' value of 'debug-on-quit', the 'c' command in the debugger
resumes execution of the code that was running when the quit happened.
-Use the `q' command to go ahead and quit.
+Use the 'q' command to go ahead and quit.
The same applies to some kinds of errors, but not all. Errors
-signaled with the Lisp function `signal' can be continued; the `c'
-command causes `signal' to return. The `r' command causes `signal' to
-return the value you specify. The `c' command is equivalent to `r'
-with the value `nil'.
+signaled with the Lisp function 'signal' can be continued; the 'c'
+command causes 'signal' to return. The 'r' command causes 'signal' to
+return the value you specify. The 'c' command is equivalent to 'r'
+with the value 'nil'.
-For a `wrong-type-argument' error, the value returned with the `r'
+For a 'wrong-type-argument' error, the value returned with the 'r'
command is used in place of the invalid argument. If this new value
is not valid, another error occurs.
-Errors signaled with the function `error' cannot be continued.
+Errors signaled with the function 'error' cannot be continued.
If you try to continue, the error just happens again.
-** `dot' renamed `point'.
+** 'dot' renamed 'point'.
-The word `dot' has been replaced with `point' in all
+The word 'dot' has been replaced with 'point' in all
function and variable names, including:
- point, point-min, point-max,
- point-marker, point-min-marker, point-max-marker,
- window-point, set-window-point,
- point-to-register, register-to-point,
- exchange-point-and-mark.
+ 'point', 'point-min', 'point-max',
+ 'point-marker', 'point-min-marker', 'point-max-marker',
+ 'window-point', 'set-window-point',
+ 'point-to-register', 'register-to-point',
+ 'exchange-point-and-mark'.
The old names are still supported, for now.
-** `string-match' records position of end of match.
+** 'string-match' records position of end of match.
-After a successful call to `string-match', `(match-end 0)' will
+After a successful call to 'string-match', `(match-end 0)' will
return the index in the string of the first character after the match.
-Also, `match-begin' and `match-end' with nonzero arguments can be
+Also, 'match-begin' and 'match-end' with nonzero arguments can be
used to find the indices of beginnings and ends of substrings matched
by subpatterns surrounded by parentheses.
-** New function `insert-before-markers'.
+** New function 'insert-before-markers'.
-This function is just like `insert' except in the handling of any
+This function is just like 'insert' except in the handling of any
relocatable markers that are located at the point of insertion.
-With `insert', such markers end up pointing before the inserted text.
-With `insert-before-markers', they end up pointing after the inserted
+With 'insert', such markers end up pointing before the inserted text.
+With 'insert-before-markers', they end up pointing after the inserted
text.
-** New function `copy-alist'.
+** New function 'copy-alist'.
This function takes one argument, a list, and makes a disjoint copy
of the alist structure. The list itself is copied, and each element
remain shared with the original argument.
This is what it takes to get two alists disjoint enough that changes
-in one do not change the result of `assq' on the other.
+in one do not change the result of 'assq' on the other.
-** New function `copy-keymap'.
+** New function 'copy-keymap'.
This function takes a keymap as argument and returns a new keymap
containing initially the same bindings. Rebindings in either one of
them will not alter the bindings in the other.
-** New function `copy-syntax-table'.
+** New function 'copy-syntax-table'.
This function takes a syntax table as argument and returns a new
syntax table containing initially the same syntax settings. Changes
in either one of them will not alter the other.
-** Randomizing the random numbers.
+** Randomizing the 'random' numbers.
`(random t)' causes the random number generator's seed to be set
based on the current time and Emacs's process id.
-** Third argument to `modify-syntax-entry'.
+** Third argument to 'modify-syntax-entry'.
-The optional third argument to `modify-syntax-entry', if specified
+The optional third argument to 'modify-syntax-entry', if specified
should be a syntax table. The modification is made in that syntax table
rather than in the current syntax table.
-** New function `run-hooks'.
+** New function 'run-hooks'.
This function takes any number of symbols as arguments.
It processes the symbols in order. For each symbol which
This is useful in major mode commands.
-** Second arg to `switch-to-buffer'.
+** Second arg to 'switch-to-buffer'.
-If this function is given a non-`nil' second argument, then the
+If this function is given a non-'nil' second argument, then the
selection being done is not recorded on the selection history.
The buffer's position in the history remains unchanged. This
feature is used by the view commands, so that the selection history
after exiting from viewing is the same as it was before.
-** Second arg to `display-buffer' and `pop-to-buffer'.
+** Second arg to 'display-buffer' and 'pop-to-buffer'.
These two functions both accept an optional second argument which
-defaults to `nil'. If the argument is not `nil', it means that
+defaults to 'nil'. If the argument is not 'nil', it means that
another window (not the selected one) must be found or created to
display the specified buffer in, even if it is already shown in
the selected window.
-This feature is used by `switch-to-buffer-other-window'.
+This feature is used by 'switch-to-buffer-other-window'.
-** New variable `completion-ignore-case'.
+** New variable 'completion-ignore-case'.
-If this variable is non-`nil', completion allows strings
+If this variable is non-'nil', completion allows strings
in different cases to be considered matching. The global value
-is `nil'
+is 'nil'
This variable exists for the sake of commands that are completing
an argument in which case is not significant. It is possible
** Major modes related to Text mode call text-mode-hook, then their own hooks.
For example, turning on Outline mode first calls the value of
-`text-mode-hook' as a function, if it exists and is non-`nil',
-and then does likewise for the variable `outline-mode-hook'.
+'text-mode-hook' as a function, if it exists and is non-'nil',
+and then does likewise for the variable 'outline-mode-hook'.
** Defining new command line switches.
You can define a new command line switch in your .emacs file
-by putting elements on the value of `command-switch-alist'.
+by putting elements on the value of 'command-switch-alist'.
Each element of this list should look like
(SWITCHSTRING . FUNCTION)
where SWITCHSTRING is a string containing the switch to be
To implement a switch that uses up one or more following arguments,
use the fact that the remaining command line arguments are kept
-as a list in the variable `command-line-args'. FUNCTION can
+as a list in the variable 'command-line-args'. FUNCTION can
examine this variable, and do
(setq command-line-args (cdr command-line-args)
to "use up" an argument.
-** New variable `load-in-progress'.
+** New variable 'load-in-progress'.
-This variable is non-`nil' when a file of Lisp code is being read
-and executed by `load'.
+This variable is non-'nil' when a file of Lisp code is being read
+and executed by 'load'.
-** New variable `print-length'.
+** New variable 'print-length'.
-The value of this variable is normally `nil'. It may instead be
-a number; in that case, when a list is printed by `prin1' or
-`princ' only that many initial elements are printed; the rest are
+The value of this variable is normally 'nil'. It may instead be
+a number; in that case, when a list is printed by 'prin1' or
+'princ' only that many initial elements are printed; the rest are
replaced by `...'.
-** New variable `find-file-not-found-hook'.
+** New variable 'find-file-not-found-hook'.
-If `find-file' or any of its variants is used on a nonexistent file,
-the value of `find-file-not-found-hook' is called (if it is not `nil')
+If 'find-file' or any of its variants is used on a nonexistent file,
+the value of 'find-file-not-found-hook' is called (if it is not 'nil')
with no arguments, after creating an empty buffer. The file's name
-can be found as the value of `buffer-file-name'.
+can be found as the value of 'buffer-file-name'.
** Processes without buffers.
-In the function `start-process', you can now specify `nil' as
-the process's buffer. You can also set a process's buffer to `nil'
-using `set-process-buffer'.
+In the function 'start-process', you can now specify 'nil' as
+the process's buffer. You can also set a process's buffer to 'nil'
+using 'set-process-buffer'.
The reason you might want to do this is to prevent the process
from being killed because any particular buffer is killed.
filter, and no indication of its being stopped or killed is given
unless it has a sentinel.
-** New function `user-variable-p'. `v' arg prompting changed.
+** New function 'user-variable-p'. 'v' arg prompting changed.
-This function takes a symbol as argument and returns `t' if
+This function takes a symbol as argument and returns 't' if
the symbol is defined as a user option variable. This means
-that it has a `variable-documentation' property whose value is
+that it has a 'variable-documentation' property whose value is
a string starting with `*'.
-Code `v' in an interactive arg reading string now accepts
+Code 'v' in an interactive arg reading string now accepts
user variables only, and completion is limited to the space of
user variables.
-The function `read-variable' also now accepts and completes
+The function 'read-variable' also now accepts and completes
over user variables only.
** CBREAK mode input is the default in Unix 4.3 bsd.
In Berkeley 4.3 Unix, there are sufficient features for Emacs to
work fully correctly using CBREAK mode and not using SIGIO.
Therefore, this mode is the default when running under 4.3.
-This mode corresponds to `nil' as the first argument to
-`set-input-mode'. You can still select either mode by calling
+This mode corresponds to 'nil' as the first argument to
+'set-input-mode'. You can still select either mode by calling
that function.
** Information on memory usage.
-The new variable `data-bytes-used' contains the number
+The new variable 'data-bytes-used' contains the number
of bytes of impure space allocated in Emacs.
-`data-bytes-free' contains the number of additional bytes
+'data-bytes-free' contains the number of additional bytes
Emacs could allocate. Note that space formerly allocated
-and freed again still counts as `used', since it is still
+and freed again still counts as 'used', since it is still
in Emacs's address space.
-** No limit on size of output from `format'.
+** No limit on size of output from 'format'.
-The string output from `format' used to be truncated to
+The string output from 'format' used to be truncated to
100 characters in length. Now it can have any length.
-** New errors `void-variable' and `void-function' replace `void-symbol'.
+** New errors 'void-variable' and 'void-function' replace 'void-symbol'.
This change makes it possible to have error messages that
clearly distinguish undefined variables from undefined functions.
-It also allows `condition-case' to handle one case without the other.
+It also allows 'condition-case' to handle one case without the other.
-** `replace-match' handling of `\'.
+** 'replace-match' handling of `\'.
-In `replace-match', when the replacement is not literal,
+In 'replace-match', when the replacement is not literal,
`\' in the replacement string is always treated as an
escape marker. The only two special `\' constructs
are `\&' and `\DIGIT', so `\' followed by anything other than
a regular expression. It is over and above the level of `\'
escaping that goes on when strings are read in Lisp syntax.
-** New error `invalid-regexp'.
+** New error 'invalid-regexp'.
A regexp search signals this type of error if the argument does
not meet the rules for regexp syntax.
-** `kill-emacs' with argument.
+** 'kill-emacs' with argument.
If the argument is a number, it is returned as the exit status code
of the Emacs process. If the argument is a string, its contents
are stuffed as pending terminal input, to be read by another program
after Emacs is dead.
-** New fifth argument to `subst-char-in-region'.
+** New fifth argument to 'subst-char-in-region'.
-This argument is optional and defaults to `nil'. If it is not `nil',
+This argument is optional and defaults to 'nil'. If it is not 'nil',
then the substitutions made by this function are not recorded
in the Undo mechanism.
Exiting from the debugger kills the `*Backtrace*' buffer, so you will
not try to give commands in it when no longer really in the debugger.
-** New function `switch-to-buffer-other-window'.
+** New function 'switch-to-buffer-other-window'.
This is the new primitive to select a specified buffer (the
argument) in another window. It is not quite the same as
-`pop-to-buffer', because it is guaranteed to create another
+'pop-to-buffer', because it is guaranteed to create another
window (assuming there is room on the screen) so that it can
leave the current window's old buffer displayed as well.
All functions to select a buffer in another window should
do so by calling this new function.
-** New variable `minibuffer-help-form'.
+** New variable 'minibuffer-help-form'.
-At entry to the minibuffer, the variable `help-form' is bound
-to the value of `minibuffer-help-form'.
+At entry to the minibuffer, the variable 'help-form' is bound
+to the value of 'minibuffer-help-form'.
-`help-form' is expected at all times to contain either `nil'
+'help-form' is expected at all times to contain either 'nil'
or an expression to be executed when C-h is typed (overriding
-the definition of C-h as a command). `minibuffer-help-form'
+the definition of C-h as a command). 'minibuffer-help-form'
can be used to provide a different default way of handling
C-h while in the minibuffer.
This construct is normally used on a line by itself, with no blank
lines before or after.
-For example, the documentation string for the function `c-mode' contains
+For example, the documentation string for the function 'c-mode' contains
...
Paragraphs are separated by blank lines only.
Delete converts tabs to spaces as it moves back.
Punctuation characters behave like whitespace in word and
list parsing, but can be distinguished in regexps and in the
-function `char-syntax'. Punctuation syntax is represented by
-a period in `modify-syntax-entry'.
+function 'char-syntax'. Punctuation syntax is represented by
+a period in 'modify-syntax-entry'.
-** `auto-mode-alist' no longer needs entries for backup-file names,
+** 'auto-mode-alist' no longer needs entries for backup-file names,
Backup suffixes of all kinds are now stripped from a file's name
-before searching `auto-mode-alist'.
+before searching 'auto-mode-alist'.
\f
** Incremental search does less redisplay on slow terminals.
-If the terminal baud rate is <= the value of `isearch-slow-speed',
+If the terminal baud rate is <= the value of 'isearch-slow-speed',
incremental searching outside the text on the screen creates
a single-line window and uses that to display the line on which
a match has been found. Exiting or quitting the search restores
the previous window configuration and redisplays the window you
were searching in.
-The initial value of `isearch-slow-speed' is 1200.
+The initial value of 'isearch-slow-speed' is 1200.
This feature is courtesy of crl@purdue.
you can probably understand recursive minibuffers.
This may be overridden by binding the variable
-`enable-recursive-minibuffers' to t.
+'enable-recursive-minibuffers' to t.
** New major mode Emacs-Lisp mode, for editing Lisp code to run in Emacs.
-The mode in which emacs lisp files is edited is now called emacs-lisp-mode
-and is distinct from lisp-mode. The latter is intended for use with
-lisps external to emacs.
+The mode in which emacs lisp files is edited is now called 'emacs-lisp-mode'
+and is distinct from 'lisp-mode'. The latter is intended for use with
+lisps external to Emacs.
The hook which is funcalled (if non-nil) on entry to elisp-mode is now
-called emacs-lisp-mode-hook. A consequence of this changes is that
-.emacs init files which set the value of lisp-mode-hook may need to be
+called 'emacs-lisp-mode-hook'. A consequence of this changes is that
+.emacs init files which set the value of 'lisp-mode-hook' may need to be
changed to use the new names.
** Correct matching of parentheses is checked on insertion.
** M-x command-history-mode
** M-x electric-command-history
-`list-command-history' displays forms from the command history subject
+'list-command-history' displays forms from the command history subject
to user controlled filtering and limit on number of forms. It leaves
-the buffer in `command-history-mode'. M-x command-history-mode
+the buffer in 'command-history-mode'. M-x command-history-mode
recomputes the command history each time it is invoked via
-`list-command-history'. It is like Emacs-Lisp mode except that characters
+'list-command-history'. It is like Emacs-Lisp mode except that characters
don't insert themselves and provision is made for re-evaluating an
-expression from the list. `electric-command-history' pops up a type
+expression from the list. 'electric-command-history' pops up a type
out window with the command history displayed. If the very next
character is Space, the window goes away and the previous window
configuration is restored. Otherwise you can move around in the
history and select an expression for evaluation *inside* the buffer
-which invoked `electric-command-history'. The original window
+which invoked 'electric-command-history'. The original window
configuration is restored on exit unless the command selected changes
it.
commands for killing rectangles and overlaying them are provided. See
the documentation of function edit-picture for more details.
-Calls value of `edit-picture-hook' on entry if non-nil.
+Calls value of 'edit-picture-hook' on entry if non-nil.
** Stupid C-s/C-q `flow control' supported.
Meanwhile, in lisp-mode, the command C-M-x is defined to
send the current defun as input to the `*lisp*' subprocess.
-** Mode line says `Narrow' when buffer is clipped.
+** Mode line says 'Narrow' when buffer is clipped.
-If a buffer has a clipping restriction (made by `narrow-to-region')
-then its mode line contains the word `Narrow' after the major and
+If a buffer has a clipping restriction (made by 'narrow-to-region')
+then its mode line contains the word 'Narrow' after the major and
minor modes.
-** Mode line says `Abbrev' when abbrev mode is on.
+** Mode line says 'Abbrev' when abbrev mode is on.
-** add-change-log-entry takes prefix argument
+** 'add-change-log-entry' takes prefix argument
Giving a prefix argument makes it prompt for login name, full name,
and site name, with defaults. Otherwise the defaults are used
** M-x view-buffer and M-x view-file
view-buffer selects the named buffer, view-file finds the named file; the
-resulting buffer is placed into view-mode (a recursive edit). The normal
+resulting buffer is placed into 'view-mode' (a recursive edit). The normal
emacs commands are not available. Instead a set of special commands is
provided which facilitate moving around in the buffer, searching and
scrolling by screenfuls. Exiting view-mode returns to the buffer in which
the view-file or view-buffer command was given.
Type ? or h when viewing for a complete list of view commands.
-Each calls value of `view-hook' if non-nil on entry.
+Each calls value of 'view-hook' if non-nil on entry.
written by shane@mit-ajax.
** New key commands in dired.
-`v' views (like more) the file on the current line.
+'v' views (like more) the file on the current line.
`#' marks auto-save files for deletion.
`~' marks backup files for deletion.
-`r' renames a file and updates the directory listing if the
+'r' renames a file and updates the directory listing if the
file is renamed to same directory.
-`c' copies a file and updates the directory listing if the file is
+'c' copies a file and updates the directory listing if the file is
copied to the same directory.
-** New function `electric-buffer-list'.
+** New function 'electric-buffer-list'.
This pops up a buffer describing the set of emacs buffers.
Immediately typing space makes the buffer list go away and returns
as those of buffer-menu-mode.
This is a useful thing to bind to c-x c-b in your `.emacs' file if the
-rather non-standard `electric' behavior of the buffer list suits your taste.
+rather non-standard 'electric' behavior of the buffer list suits your taste.
Type C-h after invoking electric-buffer-list for more information.
-Calls value of `electric-buffer-menu-mode-hook' if non-nil on entry.
-Calls value of `after-electric-buffer-menu' on exit (select) if non-nil.
+Calls value of 'electric-buffer-menu-mode-hook' if non-nil on entry.
+Calls value of 'after-electric-buffer-menu' on exit (select) if non-nil.
\f
** Changes in version 16 for mail reading and sending
*** sendmail prefix character is C-c (and not C-z). New command C-c w.
For instance C-c C-c (or C-c C-s) sends mail now rather than C-z C-z.
-C-c w inserts your `signature' (contents of ~/.signature) at the end
+C-c w inserts your 'signature' (contents of ~/.signature) at the end
of mail.
*** New feature in C-c y command in sending mail.
can switch to other buffers and edit them as usual.
C-r in Rmail changes only the handling of the Rmail buffer.
-*** Rmail command `t' toggles header display.
+*** Rmail command 't' toggles header display.
Normally Rmail reformats messages to hide most header fields.
-`t' switches to display of all the header fields of the
+'t' switches to display of all the header fields of the
current message, as long as it remains current.
-Another `t' switches back to the usual display.
+Another 't' switches back to the usual display.
*** Rmail command '>' goes to the last message.
-*** Rmail commands `a' and `k' set message attributes.
-`a' adds an attribute and `k' removes one. You specify
+*** Rmail commands 'a' and 'k' set message attributes.
+'a' adds an attribute and 'k' removes one. You specify
the attribute by name. You can specify either a built-in
flag such as "deleted" or "filed", or a user-defined keyword
(anything not recognized as built-in).
-*** Rmail commands `l' and `L' summarize by attributes.
+*** Rmail commands 'l' and 'L' summarize by attributes.
These commands create a summary with one line per message,
-like `h', but they list only some of the messages. You
-specify which attribute (for `l') or attributes (for `L')
+like 'h', but they list only some of the messages. You
+specify which attribute (for 'l') or attributes (for 'L')
the messages should have.
*** Rmail can parse mmdf mail files.
mh-e is a front end for GNU emacs and the MH mail system. It
provides a friendly and convenient interface to the MH commands.
-To read mail, invoke mh-rmail. This will inc new mail and display the
+To read mail, invoke 'mh-rmail'. This will inc new mail and display the
scan listing on the screen. To see a summary of the mh-e commands,
type ?. Help is available through the usual facilities.
-To send mail, invoke mh-smail.
+To send mail, invoke 'mh-smail'.
mh-e requires a copy of MH.5 that has been compiled with the MHE
compiler switch.
\f
** New hooks and parameters in version 16
-*** New variable `blink-matching-paren-distance'.
+*** New variable 'blink-matching-paren-distance'.
This is the maximum number of characters to search for
an open-paren to match an inserted close-paren.
The matching open-paren is shown and checked if it is found
within this distance.
-`nil' means search all the way to the beginning of the buffer.
+'nil' means search all the way to the beginning of the buffer.
In this case, a warning message is printed if no matching
open-paren is found.
This feature was originally written by shane@mit-ajax.
-*** New variable `find-file-run-dired'
+*** New variable 'find-file-run-dired'
If nil, find-file will report an error if an attempt to visit a
directory is detected; otherwise, it runs dired on that directory.
The default is t.
-*** Variable `dired-listing-switches' holds switches given to `ls' by dired.
+*** Variable 'dired-listing-switches' holds switches given to 'ls' by dired.
-The value should be a string containing `-' followed by letters.
-The letter `l' had better be included and letter 'F' had better be excluded!
+The value should be a string containing '-' followed by letters.
+The letter 'l' had better be included and letter 'F' had better be excluded!
The default is "-al".
This feature was originally written by shane@mit-ajax.
-*** New variable `display-time-day-and-date'.
+*** New variable 'display-time-day-and-date'.
-If this variable is set non-`nil', the function M-x display-time
+If this variable is set non-'nil', the function M-x display-time
displays the day and date, as well as the time.
-*** New parameter `c-continued-statement-indent'.
+*** New parameter 'c-continued-statement-indent'.
This controls the extra indentation given to a line
that continues a C statement started on the previous line.
bar ();
-*** Changed meaning of `c-indent-level'.
+*** Changed meaning of 'c-indent-level'.
-The value of `c-brace-offset' used to be
-subtracted from the value of `c-indent-level' whenever
+The value of 'c-brace-offset' used to be
+subtracted from the value of 'c-indent-level' whenever
that value was used. Now it is not.
-As a result, `c-indent-level' is now the offset of
+As a result, 'c-indent-level' is now the offset of
statements within a block, relative to the line containing
the open-brace that starts the block.
-*** turn-on-auto-fill is useful value for text-mode-hook.
+*** 'turn-on-auto-fill' is useful value for 'text-mode-hook'.
+
+ (setq text-mode-hook 'turn-on-auto-fill)
-(setq text-mode-hook 'turn-on-auto-fill)
is all you have to do to make sure Auto Fill mode is turned
on whenever you enter Text mode.
Instead of printing that function name, the command that runs it is printed.
(M-x is used to construct a command if no shorter one exists.)
-For example, instead of putting `C-n' in a documentation string
-to refer to the C-n command, put in `\[next-line]'. (In practice
+For example, instead of putting 'C-n' in a documentation string
+to refer to the 'next-line' command, put in `\[next-line]'. (In practice
you will need to quote the backslash with another backslash,
due to the syntax for strings in Lisp and C.)
them with `\='. For example, "\\=\\= is the way to quote \\=\\["
will come out as `\= is the way to quote \['.
-The new function `substitute-command-keys' takes a string possibly
+The new function 'substitute-command-keys' takes a string possibly
containing \[...] constructs and replaces those constructs with
the key sequences they currently stand for.
-*** Primitives `find-line-comment' and `find-line-comment-body' flushed.
+*** Primitives 'find-line-comment' and 'find-line-comment-body' flushed.
-Search for the value of `comment-start-skip' if you want to find
+Search for the value of 'comment-start-skip' if you want to find
whether and where a line has a comment.
-*** New function `auto-save-file-name-p'
+*** New function 'auto-save-file-name-p'
-Should return non-`nil' if given a string which is the name of an
+Should return non-'nil' if given a string which is the name of an
auto-save file (sans directory name). If you redefine
-`make-auto-save-file-name', you should redefine this accordingly. By
-default, this function returns `t' for filenames beginning with
+'make-auto-save-file-name', you should redefine this accordingly. By
+default, this function returns 't' for filenames beginning with
character `#'.
-*** The value of `exec-directory' now ends in a slash.
+*** The value of 'exec-directory' now ends in a slash.
This is to be compatible with most directory names in GNU Emacs.
*** Dribble files and termscript files.
-(open-dribble-file FILE) opens a dribble file named FILE. When a
+'open-dribble-file' opens a dribble file. When a
dribble file is open, every character Emacs reads from the terminal is
written to the dribble file.
-(open-termscript FILE) opens a termscript file named FILE. When a
+'open-termscript' opens a termscript file. When a
termscript file is open, all characters sent to the terminal by Emacs
are also written in the termscript file.
*** Undefined function errors versus undefined variable errors.
-Void-symbol errors now say "boundp" if the symbol's value was void
-or "fboundp" if the function definition was void.
+Void-symbol errors now say 'boundp' if the symbol's value was void
+or 'fboundp' if the function definition was void.
-*** New function `bury-buffer'.
+*** New function 'bury-buffer'.
-The new function `bury-buffer' takes one argument, a buffer object,
+The new function 'bury-buffer' takes one argument, a buffer object,
and puts that buffer at the end of the internal list of buffers.
So it is the least preferred candidate for use as the default value
-of C-x b, or for other-buffer to return.
+of C-x b, or for 'other-buffer' to return.
*** Already-displayed buffers have low priority for display.
default in C-x b, buffers already displayed in windows have lower
priority than buffers not currently visible.
-*** `set-window-start' accepts a third argument NOFORCE.
+*** 'set-window-start' accepts a third argument NOFORCE.
This argument, if non-nil, prevents the window's force_start flag
from being set. Setting the force_start flag causes the next
redisplay to insist on starting display at the specified starting
point, even if dot must be moved to get it onto the screen.
-*** New function `send-string-to-terminal'.
+*** New function 'send-string-to-terminal'.
This function takes one argument, a string, and outputs its contents
to the terminal exactly as specified: control characters, escape
The terminal's keypad is now put into command mode, as opposed to
numeric mode, while Emacs is running. This is done by means of the
-termcap `ks' and `ke' strings.
+termcap 'ks' and 'ke' strings.
-*** New function `generate-new-buffer'
+*** New function 'generate-new-buffer'
This function takes a string as an argument NAME and looks for a
creates and returns a buffer called NAME if one did not already exist.
"<2>" etc to NAME until it creates a string which does not name an
existing buffer. A new buffer with that name is the created and returned.
-*** New function `prin1-to-string'
+*** New function 'prin1-to-string'
This function takes one argument, a lisp object, and returns a string
-containing that object's printed representation, such as `prin1'
+containing that object's printed representation, such as 'prin1'
would output.
-*** New function `read-from-minibuffer'
+*** New function 'read-from-minibuffer'
Lets you supply a prompt, initial-contents, a keymap, and specify
whether the result should be interpreted as a string or a lisp object.
-Old functions `read-minibuffer', `eval-minibuffer', `read-string' all
+Old functions 'read-minibuffer', 'eval-minibuffer', 'read-string' all
take second optional string argument which is initial contents of
minibuffer.
*** minibuffer variable names changed (names of keymaps)
-minibuf-local-map -> minibuffer-local-map
-minibuf-local-ns-map -> minibuffer-local-ns-map
-minibuf-local-completion-map -> minibuffer-local-completion-map
-minibuf-local-must-match-map -> minibuffer-local-must-match-map
+'minibuf-local-map' -> 'minibuffer-local-map'
+'minibuf-local-ns-map' -> 'minibuffer-local-ns-map'
+'minibuf-local-completion-map' -> 'minibuffer-local-completion-map'
+'minibuf-local-must-match-map' -> 'minibuffer-local-must-match-map'
\f
** Changes in version 16 affecting configuring and building Emacs
*** Configuration switch VT100_INVERSE eliminated.
You can control the use of inverse video on any terminal by setting
-the variable `inverse-video', or by changing the termcap entry. If
-you like, set `inverse-video' in your `.emacs' file based on
+the variable 'inverse-video', or by changing the termcap entry. If
+you like, set 'inverse-video' in your `.emacs' file based on
examination of (getenv "TERM").
-*** New switch `-batch' makes Emacs run noninteractively.
+*** New switch '-batch' makes Emacs run noninteractively.
-If the switch `-batch' is used, Emacs treats its standard output
+If the switch '-batch' is used, Emacs treats its standard output
and input like ordinary files (even if they are a terminal).
It does not display buffers or windows; the only output to standard output
is what would appear as messages in the echo area, and each
The terminal modes are not changed, so that C-z and C-c retain
their normal Unix meanings. Emacs does still read commands from
-the terminal, but the idea of `-batch' is that you use it with
+the terminal, but the idea of '-batch' is that you use it with
other command line arguments that tell Emacs a complete task to perform,
-including killing itself. `-kill' used as the last argument is a good
+including killing itself. '-kill' used as the last argument is a good
way to accomplish this.
-The Lisp variable `noninteractive' is now defined, to be `nil'
-except when `-batch' has been specified.
+The Lisp variable 'noninteractive' is now defined, to be 'nil'
+except when '-batch' has been specified.
*** Emacs can be built with output redirected to a file.
Note that lisp code converted from Mocklisp code will not necessarily
run as fast as code specifically written for GNU Emacs, nor will it use
the many features of GNU Emacs which are not present in Gosling's emacs.
- (In particular, the byte-compiler (m-x byte-compile-file) knows little
+ (In particular, the byte-compiler (M-x byte-compile-file) knows little
about compilation of code directly converted from mocklisp.)
It is envisaged that old mocklisp code will be incrementally converted
to GNU lisp code, with M-x convert-mocklisp-buffer being the first
specify the tag table file name initially, or to switch
to a new tag table.
-** If truncate-partial-width-windows is non-nil (as it initially is),
+** If 'truncate-partial-width-windows' is non-nil (as it initially is),
all windows less than the full screen width (that is,
made by side-by-side splitting) truncate lines rather than continuing
them.
** Emacs now checks for Lisp stack overflow to avoid fatal errors.
- The depth in eval, apply and funcall may not exceed max-lisp-eval-depth.
+ The depth in 'eval', 'apply' and 'funcall' may not exceed
+ 'max-lisp-eval-depth'.
The depth in variable bindings and unwind-protects may not exceed
- max-specpdl-size. If either limit is exceeded, an error occurs.
+ 'max-specpdl-size'. If either limit is exceeded, an error occurs.
You can set the limits to larger values if you wish, but if you make them
too large, you are vulnerable to a fatal error if you invoke
Lisp code that does infinite recursion.
-** New hooks find-file-hook and write-file-hook.
+** New hooks 'find-file-hook' and 'write-file-hook'.
Both of these variables if non-nil should be functions of no arguments.
At the time they are called (current-buffer) will be the buffer being
read or written respectively.
- find-file-hook is called whenever a file is read into its own buffer,
- such as by calling find-file, revert-buffer, etc. It is not called by
- functions such as insert-file which do not read the file into a buffer of
+ 'find-file-hook' is called whenever a file is read into its own buffer,
+ such as by calling 'find-file', 'revert-buffer', etc. It is not called by
+ functions such as 'insert-file' which do not read the file into a buffer of
its own.
- find-file-hook is called after the file has been read in and its
+ 'find-file-hook' is called after the file has been read in and its
local variables (if any) have been processed.
- write-file-hook is called just before writing out a file from a buffer.
+ 'write-file-hook' is called just before writing out a file from a buffer.
-** The initial value of shell-prompt-pattern is now "^[^#$%>]*[#$%>] *"
+** The initial value of 'shell-prompt-pattern' is now "^[^#$%>]*[#$%>] *"
-** If the .emacs file sets inhibit-startup-message to non-nil,
+** If the .emacs file sets 'inhibit-startup-message' to non-nil,
the messages normally printed by Emacs at startup time
are inhibited.
** Facility for run-time conditionalization on the basis of emacs features.
- The new variable features is a list of symbols which represent "features"
+ The new variable 'features' is a list of symbols which represent "features"
of the executing emacs, for use in run-time conditionalization.
- The function featurep of one argument may be used to test for the
+ The function 'featurep' of one argument may be used to test for the
presence of a feature. It is just the same as
- (not (null (memq FEATURE features))) where FEATURE is its argument.
- For example, (if (featurep 'magic-window-hack)
- (transmogrify-window 'vertical)
- (split-window-vertically))
+ (not (null (memq FEATURE features)))
+ where FEATURE is its argument. For example,
+
+ (if (featurep 'magic-window-hack)
+ (transmogrify-window 'vertical)
+ (split-window-vertically))
- The function provide of one argument "announces" that FEATURE is present.
+ The function 'provide' of one argument "announces" that FEATURE is present.
It is much the same as (if (not (featurep FEATURE))
(setq features (cons FEATURE features)))
- The function require with arguments FEATURE and FILE-NAME loads FILE-NAME
+ The function 'require' with arguments FEATURE and FILE-NAME loads FILE-NAME
(which should contain the form (provide FEATURE)) unless FEATURE is present.
It is much the same as (if (not (featurep FEATURE))
(progn (load FILE-NAME)
(if (not featurep FEATURE) (error ...))))
FILE-NAME is optional and defaults to FEATURE.
-** New function load-average.
+** New function 'load-average'.
This returns a list of three integers, which are
the current 1 minute, 5 minute and 15 minute load averages,
** Programmer's note: detecting killed buffers.
Buffers are eliminated by explicitly killing them, using
- the function kill-buffer. This does not eliminate or affect
+ the function 'kill-buffer'. This does not eliminate or affect
the pointers to the buffer which may exist in list structure.
If you have a pointer to a buffer and wish to tell whether
- the buffer has been killed, use the function buffer-name.
+ the buffer has been killed, use the function 'buffer-name'.
It returns nil on a killed buffer, and a string on a live buffer.
** New ways to access the last command input character.
The function last-key-struck, which used to return the last
input character that was read by command input, is eliminated.
Instead, you can find this information as the value of the
- variable last-command-char. (This variable used to be called
+ variable 'last-command-char'. (This variable used to be called
last-key).
- Another new variable, last-input-char, holds the last character
+ Another new variable, 'last-input-char', holds the last character
read from the command input stream regardless of what it was
read for. last-input-char and last-command-char are different
- only inside a command that has called read-char to read input.
+ only inside a command that has called 'read-char' to read input.
** The new switch -kill causes Emacs to exit after processing the
preceding command line arguments. Thus,
user can explain why it is not called mdl-mode.
You must load the library mim-mode explicitly to use this.
-** GNU documentation formatter `texinfo'.
+** GNU documentation formatter 'texinfo'.
- The `texinfo' library defines a format for documentation
+ The 'texinfo' library defines a format for documentation
files which can be passed through Tex to make a printed manual
or passed through texinfo to make an Info file. Texinfo is
documented fully by its own Info file; compare this file
This is not ready for distribution yet, but will appear at
a later time.
-** New function read-from-string (emacs 15.29)
+** New function 'read-from-string' (emacs 15.29)
read-from-string takes three arguments: a string to read from,
and optionally start and end indices which delimit a substring
These messages appear after the text in the minibuffer, and remain
on the screen until a few seconds go by or you type a key.
-** The buffer-read-only flag is implemented.
+** The 'buffer-read-only' flag is implemented.
Setting or binding this per-buffer variable to a non-nil value
makes illegal any operation which would modify the textual content of
the buffer. (Such operations signal a buffer-read-only error)
- The read-only state of a buffer may be altered using toggle-read-only
+ The read-only state of a buffer may be altered using 'toggle-read-only'
(C-x C-q)
The buffers used by Rmail, Dired, Rnews, and Info are now read-only
by default to prevent accidental damage to the information in those
buffers.
-** Functions car-safe and cdr-safe.
+** Functions 'car-safe' and 'cdr-safe'.
These functions are like car and cdr when the argument is a cons.
Given an argument not a cons, car-safe always returns nil, with
no error; the same for cdr-safe.
-** The new function user-real-login-name returns the name corresponding
+** The new function 'user-real-login-name' returns the name corresponding
to the real uid of the Emacs process. This is usually the same
- as what user-login-name returns; however, when Emacs is invoked
- from su, user-real-login-name returns "root" but user-login-name
+ as what 'user-login-name' returns; however, when Emacs is invoked
+ from su, 'user-real-login-name' returns "root" but user-login-name
returns the name of the user who invoked su.
This syntax can be used in strings too. Note, however, that
Meta characters are not meaningful in key sequences being passed
- to define-key or lookup-key; you must use ESC characters (\e)
+ to 'define-key' or 'lookup-key'; you must use ESC characters (\e)
in them instead.
?\C- can be used likewise for control characters. (13.9)
This is a shift key which causes the high bit to be turned on
in all input characters typed while it is held down.
- read-char now returns a value in the range 128-255 if
+ 'read-char' now returns a value in the range 128-255 if
a Meta character is typed. When interpreted as command
input, a Meta character is equivalent to a two character
sequence, the meta prefix character followed by the unmetized
character (Meta-G unmetized is G).
The meta prefix character
- is specified by the value of the variable meta-prefix-char.
+ is specified by the value of the variable 'meta-prefix-char'.
If this character (normally Escape) has been redefined locally
with a non-prefix definition (such as happens in completing
minibuffers) then the local redefinition is suppressed when
explicitly, but not effective if the character comes from
the use of the Meta key.
-** `-' is no longer a completion command in the minibuffer.
+** '-' is no longer a completion command in the minibuffer.
It is an ordinary self-inserting character.
-** The list load-path of directories load to search for Lisp files
+** The list 'load-path' of directories load to search for Lisp files
is now controlled by the EMACSLOADPATH environment variable
[[ Note this was originally EMACS-LOAD-PATH and has been changed
again; sh does not deal properly with hyphens in env variable names]]
** The commands C-c and C-z have been interchanged,
for greater compatibility with normal Unix usage.
- C-z now runs suspend-emacs and C-c runs exit-recursive-edit.
+ C-z now runs suspend-emacs and C-c runs 'exit-recursive-edit'.
-** The value returned by file-name-directory now ends
+** The value returned by 'file-name-directory' now ends
with a slash. (file-name-directory "foo/bar") => "foo/".
This avoids confusing results when dealing with files
in the root directory.
- The value of the per-buffer variable default-directory
+ The value of the per-buffer variable 'default-directory'
is also supposed to have a final slash now.
** There are now variables to control the switches passed to
- `ls' by the C-x C-d command (list-directory).
- list-directory-brief-switches is a string, initially "-CF",
- used for brief listings, and list-directory-verbose-switches
+ 'ls' by the C-x C-d command (list-directory).
+ 'list-directory-brief-switches' is a string, initially "-CF",
+ used for brief listings, and 'list-directory-verbose-switches'
is a string, initially "-l", used for verbose ones.
** For Ann Arbor Ambassador terminals, the termcap "ti" string
to the specified filename BEFORE it tries the filename
without change.
-** rmail now makes the mode line display the total number
+** 'rmail' now makes the mode line display the total number
of messages and the current message number.
The "f" command now means forward a message to another user.
The command to search through all messages for a string is now "F".
** The hyphen character is now equivalent to a Space while
in completing minibuffers. Both mean to complete an additional word.
-** The Lisp function error now takes args like format
+** The Lisp function 'error' now takes args like 'format'
which are used to construct the error message.
** Redisplay will refuse to start its display at the end of the buffer.
It will pick a new place to display from, rather than use that.
-** The value returned by garbage-collect has been changed.
+** The value returned by 'garbage-collect' has been changed.
Its first element is no longer a number but a cons,
whose car is the number of cons cells now in use,
and whose cdr is the number of cons cells that have been
The third element is similar but describes markers.
** The variable buffer-name has been eliminated.
- The function buffer-name still exists. This is to prevent
+ The function 'buffer-name' still exists. This is to prevent
user programs from changing buffer names without going
- through the rename-buffer function.
+ through the 'rename-buffer' function.
\f
Also, a line which consists of the fill prefix followed by
white space separates paragraphs.
-** C-x C-v runs the new function find-alternate-file.
+** C-x C-v runs the new function 'find-alternate-file'.
It finds the specified file, switches to that buffer,
and kills the previous current buffer. (It requires
confirmation if that buffer had changes.) This is
** Meta-g (fill-region) now fills each paragraph in the
region individually. To fill the region as if it were
a single paragraph (for when the paragraph-delimiting mechanism
- does the wrong thing), use fill-region-as-paragraph.
+ does the wrong thing), use 'fill-region-as-paragraph'.
-** Tab in text mode now runs the function tab-to-tab-stop.
- A new mode called indented-text-mode is like text-mode
- except that in it Tab runs the function indent-relative,
+** Tab in text mode now runs the function 'tab-to-tab-stop'.
+ A new mode called 'indented-text-mode' is like 'text-mode'
+ except that in it Tab runs the function 'indent-relative',
which indents the line under the previous line.
If auto fill is enabled while in indented-text-mode,
the new lines that it makes are indented.
-** Functions kill-rectangle and yank-rectangle.
+** Functions 'kill-rectangle' and 'yank-rectangle'.
kill-rectangle deletes the rectangle specified by dot and mark
- (or by two arguments) and saves it in the variable killed-rectangle.
+ (or by two arguments) and saves it in the variable 'killed-rectangle'.
yank-rectangle inserts the rectangle in that variable.
Tab characters in a rectangle being saved are replaced
C-r -- enter a recursive edit, then on exit ask again for a character
C-l -- redisplay screen and ask again."
-** write-kbd-macro and append-kbd-macro are used to save
+** 'write-kbd-macro' and 'append-kbd-macro' are used to save
a kbd macro definition in a file (as Lisp code to
redefine the macro when the file is loaded).
These commands differ in that write-kbd-macro
record the keys which invoke the macro as well as the
macro's definition.
-** The variable global-minor-modes is used to display
+** The variable 'global-minor-modes' is used to display
strings in the mode line of all buffers. It should be
a list of elements that are conses whose cdrs are strings
to be displayed. This complements the variable
- minor-modes, which has the same effect but has a separate
+ 'minor-modes', which has the same effect but has a separate
value in each buffer.
** C-x = describes horizontal scrolling in effect, if any.
This release mostly fixes bugs. There are a few new features:
-** apropos now sorts the symbols before displaying them.
+** 'apropos' now sorts the symbols before displaying them.
Also, it returns a list of the symbols found.
apropos now accepts a second arg PRED which should be a function
If the third argument to apropos is non-nil, apropos does not
display anything; it merely returns the list of symbols found.
- C-h a now runs the new function command-apropos rather than
+ C-h a now runs the new function 'command-apropos' rather than
apropos, and shows only symbols with definitions as commands.
** M-x shell sends the command
as it came from your ESHELL or SHELL environment variable
but with directory name, if any, removed.
-** M-, now runs the command tags-loop-continue, which is used
- to resume a terminated tags-search or tags-query-replace.
+** M-, now runs the command 'tags-loop-continue', which is used
+ to resume a terminated 'tags-search' or 'tags-query-replace'.
\f
so that all buffer names used automatically by Emacs now have *'s.
** Undo information is now stored separately for each buffer.
- The Undo command (C-x u) always applies to the current
- buffer only.
+The Undo command (C-x u) always applies to the current
+buffer only.
C-_ is now a synonym for C-x u.
- (buffer-flush-undo BUFFER) causes undo information not to
- be kept for BUFFER, and frees the space that would have
- been used to hold it. In any case, no undo information is
- kept for buffers whose names start with spaces. (These
- buffers also do not appear in the C-x C-b display.)
+'buffer-flush-undo' causes undo information not to
+be kept for BUFFER, and frees the space that would have
+been used to hold it. In any case, no undo information is
+kept for buffers whose names start with spaces. (These
+buffers also do not appear in the C-x C-b display.)
** Rectangle operations are now implemented.
- C-x r stores the rectangle described by dot and mark
- into a register; it reads the register name from the keyboard.
- C-x g, the command to insert the contents of a register,
- can be used to reinsert the rectangle elsewhere.
+C-x r stores the rectangle described by dot and mark
+into a register; it reads the register name from the keyboard.
+C-x g, the command to insert the contents of a register,
+can be used to reinsert the rectangle elsewhere.
Other rectangle commands include
- open-rectangle:
+ 'open-rectangle':
insert a blank rectangle in the position and size
described by dot and mark, at its corners;
the existing text is pushed to the right.
- clear-rectangle:
+ 'clear-rectangle':
replace the rectangle described by dot and mark
with blanks. The previous text is deleted.
- delete-rectangle:
+ 'delete-rectangle':
delete the text of the specified rectangle,
moving the text beyond it on each line leftward.
** Side-by-side windows are allowed. Use C-x 5 to split the
- current window into two windows side by side.
- C-x } makes the selected window ARG columns wider at the
- expense of the windows at its sides. C-x { makes the selected
- window ARG columns narrower. An argument to C-x 5 specifies
- how many columns to give to the leftmost of the two windows made.
+current window into two windows side by side.
+C-x } makes the selected window ARG columns wider at the
+expense of the windows at its sides. C-x { makes the selected
+window ARG columns narrower. An argument to C-x 5 specifies
+how many columns to give to the leftmost of the two windows made.
- C-x 2 now accepts a numeric argument to specify the number of
- lines to give to the uppermost of the two windows it makes.
+C-x 2 now accepts a numeric argument to specify the number of
+lines to give to the uppermost of the two windows it makes.
** Horizontal scrolling of the lines in a window is now implemented.
- C-x < (scroll-left) scrolls all displayed lines left,
- with the numeric argument (default 1) saying how far to scroll.
- When the window is scrolled left, some amount of the beginning
- of each nonempty line is replaced by an "$".
- C-x > scrolls right. If a window has no text hidden at the left
- margin, it cannot be scrolled any farther right than that.
- When nonzero leftwards scrolling is in effect in a window.
- lines are automatically truncated at the window's right margin
- regardless of the value of the variable truncate-lines in the
- buffer being displayed.
-
-** C-x C-d now uses the default output format of `ls',
- which gives just file names in multiple columns.
- C-u C-x C-d passes the -l switch to `ls'.
+C-x < (scroll-left) scrolls all displayed lines left,
+with the numeric argument (default 1) saying how far to scroll.
+When the window is scrolled left, some amount of the beginning
+of each nonempty line is replaced by an "$".
+C-x > scrolls right. If a window has no text hidden at the left
+margin, it cannot be scrolled any farther right than that.
+When nonzero leftwards scrolling is in effect in a window.
+lines are automatically truncated at the window's right margin
+regardless of the value of the variable 'truncate-lines' in the
+buffer being displayed.
+
+** C-x C-d now uses the default output format of 'ls',
+which gives just file names in multiple columns.
+C-u C-x C-d passes the -l switch to 'ls'.
** C-t at the end of a line now exchanges the two preceding characters.
** The mode line will now say "Def" after the major mode
while a keyboard macro is being defined.
-** The variable fill-prefix is now used by Meta-q.
+** The variable 'fill-prefix' is now used by Meta-q.
Meta-q removes the fill prefix from lines that start with it
before filling, and inserts the fill prefix on each line
after filling.
including the terminating slash, requests the use
of the default file name (usually the visited file's name).
- Set the variable insert-default-directory to nil
+ Set the variable 'insert-default-directory' to nil
to turn off this feature.
** M-x shell now uses the environment variable ESHELL,
** The file of Lisp code Emacs reads on startup is now
called ~/.emacs rather than ~/.emacs_pro.
-** copy-file now gives the copied file the same mode bits
+** 'copy-file' now gives the copied file the same mode bits
as the original file.
** Output from a process inserted into the process's buffer
no longer sets the buffer's mark. Instead it sets a
marker associated with the process to point to the end
of the inserted text. You can access this marker with
- (process-mark PROCESS)
- and then either examine its position with marker-position
- or set its position with set-marker.
+ 'process-mark' and then either examine its position with
+ 'marker-position' or set its position with 'set-marker'.
-** completing-read takes a new optional fifth argument which,
+** 'completing-read' takes a new optional fifth argument which,
if non-nil, should be a string of text to insert into
the minibuffer before reading user commands.
-** The Lisp function elt now exists:
+** The Lisp function 'elt' now exists:
(elt ARRAY N) is like (aref ARRAY N),
(elt LIST N) is like (nth N LIST).
-** rplaca is now a synonym for setcar, and rplacd for setcdr.
- eql is now a synonym for eq; it turns out that the Common Lisp
+** 'rplaca' is now a synonym for 'setcar', and 'rplacd' for 'setcdr'.
+ 'eql' is now a synonym for 'eq'; it turns out that the Common Lisp
distinction between eq and eql is insignificant in Emacs.
- numberp is a new synonym for integerp.
+ 'numberp' is a new synonym for 'integerp'.
-** auto-save has been renamed to auto-save-mode.
+** auto-save has been renamed to 'auto-save-mode'.
** Auto save file names for buffers are now created by the
- function make-auto-save-file-name. This is so you can
+ function 'make-auto-save-file-name'. This is so you can
redefine that function to change the way auto save file names
are chosen.
-** expand-file-name no longer discards a final slash.
+** 'expand-file-name' no longer discards a final slash.
(expand-file-name "foo" "/lose") => "/lose/foo"
(expand-file-name "foo/" "/lose") => "/lose/foo/"
- Also, expand-file-name no longer substitutes $ constructs.
- A new function substitute-in-file-name does this. Reading
- a file name with read-file-name or the `f' or`F' option
- of interactive calling uses substitute-in-file-name
- on the file name that was read and returns the result.
+Also, expand-file-name no longer substitutes $ constructs.
+A new function 'substitute-in-file-name' does this. Reading
+a file name with 'read-file-name' or the 'f' or'F' option
+of 'interactive' calling uses substitute-in-file-name
+on the file name that was read and returns the result.
- All I/O primitives including insert-file-contents and
- delete-file call expand-file-name on the file name supplied.
- This change makes them considerably faster in the usual case.
+All I/O primitives including 'insert-file-contents' and
+'delete-file' call 'expand-file-name' on the file name supplied.
+This change makes them considerably faster in the usual case.
** Interactive calling spec strings allow the new code letter 'D'
- which means to read a directory name. It is like 'f' except
- that the default if the user makes no change in the minibuffer
- is to return the current default directory rather than the
- current visited file name.
+which means to read a directory name. It is like 'f' except
+that the default if the user makes no change in the minibuffer
+is to return the current default directory rather than the
+current visited file name.
\f
* Changes in Emacs 1.5
-** suspend-emacs now accepts an optional argument
- which is a string to be stuffed as terminal input
- to be read by Emacs's superior shell after Emacs exits.
+** 'suspend-emacs' now accepts an optional argument
+which is a string to be stuffed as terminal input
+to be read by Emacs's superior shell after Emacs exits.
A library called ledit exists which uses this feature
to transmit text to a Lisp job running as a sibling of
Emacs.
-** If find-file is given the name of a directory,
+** If 'find-file' is given the name of a directory,
it automatically invokes dired on that directory
rather than reading in the binary data that make up
the actual contents of the directory according to Unix.
** Saving an Emacs buffer now preserves the file modes
of any previously existing file with the same name.
- This works using new Lisp functions file-modes and
- set-file-modes, which can be used to read or set the mode
+ This works using new Lisp functions 'file-modes' and
+ 'set-file-modes', which can be used to read or set the mode
bits of any file.
-** The Lisp function cond now exists, with its traditional meaning.
+** The Lisp function 'cond' now exists, with its traditional meaning.
-** defvar and defconst now permit the documentation string
+** 'defvar' and 'defconst' now permit the documentation string
to be omitted. defvar also permits the initial value
to be omitted; then it acts only as a comment.
* Changes in Emacs 1.4
** Auto-filling now normally indents the new line it creates
- by calling indent-according-to-mode. This function, meanwhile,
+ by calling 'indent-according-to-mode'. This function, meanwhile,
has in Fundamental and Text modes the effect of making the line
- have an indentation of the value of left-margin, a per-buffer variable.
+ have an indentation of the value of 'left-margin', a per-buffer variable.
Tab no longer precisely does indent-according-to-mode;
it does that in all modes that supply their own indentation routine,
an integer.
** The Lisp function 'function' now exists. function is the
- same as quote, except that it serves as a signal to the
+ same as 'quote', except that it serves as a signal to the
Lisp compiler that the argument should be compiled as
a function. Example:
(mapcar (function (lambda (x) (+ x 5))) list)
-** The function set-key has been renamed to global-set-key.
- undefine-key and local-undefine-key has been renamed to
- global-unset-key and local-unset-key.
+** The function set-key has been renamed to 'global-set-key'.
+ 'undefine-key' and 'local-undefine-key' has been renamed to
+ 'global-unset-key' and 'local-unset-key'.
** Emacs now collects input from asynchronous subprocesses
- while waiting in the functions sleep-for and sit-for.
+ while waiting in the functions 'sleep-for' and 'sit-for'.
** Shell mode's Newline command attempts to distinguish subshell
prompts from user input when issued in the middle of the buffer.
It no longer reexecutes from dot to the end of the line;
it reeexecutes the entire line minus any prompt.
The prompt is recognized by searching for the value of
- shell-prompt-pattern, starting from the beginning of the line.
+ 'shell-prompt-pattern', starting from the beginning of the line.
Anything thus skipped is not reexecuted.
\f
* Changes in Emacs 1.3
-** An undo facility exists now. Type C-x u to undo a batch of
+** An undo facility exists now. Type C-x u to 'undo' a batch of
changes (usually one command's changes, but some commands
- such as query-replace divide their changes into multiple
+ such as 'query-replace' divide their changes into multiple
batches. You can repeat C-x u to undo further. As long
as no commands other than C-x u intervene, each one undoes
another batch. A numeric argument to C-x u acts as a repeat
to be in effect when the file is edited. See the file DIFF
in the same directory as this file for full details.
-** A function nth is defined. It means the same thing as in Common Lisp.
+** A function 'nth' is defined. It means the same thing as in Common Lisp.
** The function install-command has been renamed to set-key.
It now takes the key sequence as the first argument
and the definition for it as the second argument.
- Likewise, local-install-command has been renamed to local-set-key.
+ Likewise, local-install-command has been renamed to 'local-set-key'.
\f
** A Lisp single-stepping and debugging facility exists.
To cause the debugger to be entered when an error
- occurs, set the variable debug-on-error non-nil.
+ occurs, set the variable 'debug-on-error' non-nil.
To cause the debugger to be entered whenever function foo
- is called, do (debug-on-entry 'foo). To cancel this,
- do (cancel-debug-on-entry 'foo). debug-on-entry does
+ is called, use 'debug-on-entry'. To cancel this,
+ use 'cancel-debug-on-entry'. debug-on-entry does
not work for primitives (written in C), only functions
written in Lisp. Most standard Emacs commands are in Lisp.
by the argument values unless arguments are still being
calculated. At the beginning of the buffer is a description
of why the debugger was entered: function entry, function exit,
- error, or simply that the user called the function `debug'.
+ error, or simply that the user called the function 'debug'.
- To exit the debugger and return to top level, type `q'.
+ To exit the debugger and return to top level, type 'q'.
In the debugger, you can evaluate Lisp expressions by
- typing `e'. This is equivalent to `M-ESC'.
+ typing 'e'. This is equivalent to 'M-ESC'.
When the debugger is entered due to an error, that is
all you can do. When it is entered due to function entry
(such as, requested by debug-on-entry), you have two
options:
Continue execution and reenter debugger after the
- completion of the function being entered. Type `c'.
+ completion of the function being entered. Type 'c'.
Continue execution but enter the debugger before
- the next subexpression. Type `d'.
+ the next subexpression. Type 'd'.
You will see that some stack frames are marked with *.
This means the debugger will be entered when those
frames exit. You will see the value being returned
in the first line of the backtrace buffer. Your options:
- Continue execution, and return that value. Type `c'.
- Continue execution, and return a specified value. Type `r'.
+ Continue execution, and return that value. Type 'c'.
+ Continue execution, and return a specified value. Type 'r'.
You can mark a frame to enter the debugger on exit
- with the `b' command, or clear such a mark with `u'.
+ with the 'b' command, or clear such a mark with 'u'.
** Lisp macros now exist.
For example, you can write
** The value of a Lisp expression evaluated using M-ESC
is now printed in the minibuffer.
-** M-q now runs fill-paragraph, independent of major mode.
+** M-q now runs 'fill-paragraph', independent of major mode.
** C-h m now prints documentation on the current buffer's
major mode. What it prints is the documentation of the
All editing commands treat hidden outline-mode lines
as part of the preceding visible line.
-** C-x C-z runs save-buffers-kill-emacs
+** C-x C-z runs 'save-buffers-kill-emacs'
offers to save each file buffer, then exits.
-** C-c's function is now called suspend-emacs.
+** C-c's function is now called 'suspend-emacs'.
-** The command C-x m runs mail, which switches to a buffer *mail*
+** The command C-x m runs 'mail', which switches to a buffer *mail*
and lets you compose a message to send. C-x 4 m runs mail in
another window. Type C-z C-s in the mail buffer to send the
message according to what you have entered in the buffer.
You must separate the headers from the message text with
an empty line.
-** You can now dired partial directories (specified with names
+** You can now 'dired' partial directories (specified with names
containing *'s, etc, all processed by the shell). Also, you
can dired more than one directory; dired names the buffer
according to the filespec or directory name. Reinvoking
contains text put there for some other reason, it is cleared
first.
- t is now the top-level value of standard-output.
+ t is now the top-level value of 'standard-output'.
t as an input stream now means "read via the minibuffer".
The minibuffer is used to read a line of input, with editing,
- and this line is then parsed. Any excess not used by `read'
- is ignored; each `read' from t reads fresh input.
- t is now the top-level value of standard-input.
+ and this line is then parsed. Any excess not used by 'read'
+ is ignored; each 'read' from t reads fresh input.
+ t is now the top-level value of 'standard-input'.
*** A marker may be used as an input stream or an output stream.
The effect is to grab input from where the marker points,
and the buffer's mark is set to the end of the inserted output
each time output is inserted.
-*** (pos-visible-in-window-p POS WINDOW)
- returns t if position POS in WINDOW's buffer is in the range
- that is being displayed in WINDOW; nil if it is scrolled
- vertically out of visibility.
+*** New function 'pos-visible-in-window-p'
+
+ (pos-visible-in-window-p POS WINDOW)
+
+returns t if position POS in WINDOW's buffer is in the range
+that is being displayed in WINDOW; nil if it is scrolled
+vertically out of visibility.
- If display in WINDOW is not currently up to date, this function
- calculates carefully whether POS would appear if display were
- done immediately based on the current (window-start WINDOW).
+If display in WINDOW is not currently up to date, this function
+calculates carefully whether POS would appear if display were
+done immediately based on the current 'window-start'.
- POS defaults to (dot), and WINDOW to (selected-window).
+POS defaults to (dot), and WINDOW to (selected-window).
*** Variable buffer-alist replaced by function (buffer-list).
- The actual alist of buffers used internally by Emacs is now
- no longer accessible, to prevent the user from crashing Emacs
- by modifying it. The function buffer-list returns a list
- of all existing buffers. Modifying this list cannot hurt anything
- as a new list is constructed by each call to buffer-list.
+The actual alist of buffers used internally by Emacs is now
+no longer accessible, to prevent the user from crashing Emacs
+by modifying it. The function buffer-list returns a list
+of all existing buffers. Modifying this list cannot hurt anything
+as a new list is constructed by each call to buffer-list.
-*** load now takes an optional third argument NOMSG which, if non-nil,
- prevents load from printing a message when it starts and when
- it is done.
+*** 'load' now takes an optional third argument NOMSG which, if non-nil,
+prevents load from printing a message when it starts and when
+it is done.
-*** byte-recompile-directory is a new function which finds all
+*** 'byte-recompile-directory' is a new function which finds all
the .elc files in a directory, and regenerates each one which
is older than the corresponding .el (Lisp source) file.
yield a file that exists, the last hyphen and what follows it is
stripped. If that doesn't yield a file that exists, the previous
hyphen is stripped, and so on until all hyphens are gone. For
-example, if the terminal type is `aaa-48-foo', Emacs will try first
+example, if the terminal type is 'aaa-48-foo', Emacs will try first
`term/aaa-48-foo.el', then `term/aaa-48.el' and finally `term/aaa.el'.
Underscores now receive the same treatment as hyphens.
-** Texinfo features: @defun, etc. texinfo-show-structure.
-New template commands. texinfo-format-region.
+** Texinfo features: @defun, etc. 'texinfo-show-structure'.
+New template commands. 'texinfo-format-region'.
-** The special "local variable" `eval' is now ignored if you are running
+** The special "local variable" 'eval' is now ignored if you are running
as root.
-** New command `c-macro-expand' shows the result of C macro expansion
+** New command 'c-macro-expand' shows the result of C macro expansion
in the region. It works using the C preprocessor, so its results
are completely accurate.
** New hooks.
-*** `spell-region' now allows you to filter the text before spelling-checking.
-If the value of `spell-filter' is non-nil, it is called, with no arguments,
+*** 'spell-region' now allows you to filter the text before spelling-checking.
+If the value of 'spell-filter' is non-nil, it is called, with no arguments,
looking at a temporary buffer containing a copy of the text to be checked.
It can alter the text freely before the spell program sees it.
-*** The variable `lpr-command' now specifies the command to be used when
+*** The variable 'lpr-command' now specifies the command to be used when
you use the commands to print text (such as M-x print-buffer).
-*** Posting netnews now calls the value of `news-inews-hook' (if not nil)
+*** Posting netnews now calls the value of 'news-inews-hook' (if not nil)
as a function of no arguments before the actual posting.
-*** Rmail now calls the value of `rmail-show-message-hook' (if not nil)
+*** Rmail now calls the value of 'rmail-show-message-hook' (if not nil)
as a function of no arguments, each time a new message is selected.
-*** `kill-emacs' calls the value of `kill-emacs-hook' as a function of no args.
+*** 'kill-emacs' calls the value of 'kill-emacs-hook' as a function of no args.
** New libraries.
See the source code of each library for more information.
** New programming features.
-*** The variable `window-system-version' now contains the version number
+*** The variable 'window-system-version' now contains the version number
of the window system you are using (if appropriate). When using X windows,
its value is either 10 or 11.
*** (interactive "N") uses the prefix argument if any; otherwise, it reads
a number using the minibuffer.
-*** VMS: there are two new functions `vms-system-info' and `shrink-to-icon'.
+*** VMS: there are two new functions 'vms-system-info' and 'shrink-to-icon'.
The former allows you to get many kinds of system status information.
See its self-documentation for full details.
The second is used with the window system: it iconifies the Emacs window.
-*** VMS: the new function `define-logical-name' allows you to create
-job-wide logical names. The old function `define-dcl-symbol' has been
+*** VMS: the new function 'define-logical-name' allows you to create
+job-wide logical names. The old function 'define-dcl-symbol' has been
removed.
where the program is executing.
Special GDB-mode commands include M-s, M-n, M-i, M-u, M-d, and C-c C-f
-which send the GDB commands `step', `next', `stepi', `up', `down'
-and `finish'.
+which send the GDB commands 'step', 'next', 'stepi', 'up', 'down'
+and 'finish'.
In any source file, the commands C-x SPC tells GDB to set a breakpoint
on the current line.
This is a way you can explicitly request not to make a backup.
-** `term-setup-hook' is for users only.
+** 'term-setup-hook' is for users only.
Emacs never uses this variable for internal purposes, so you can freely
set it in your `.emacs' file to make Emacs do something special after
loading any terminal-specific setup file from `lisp/term'.
-** `copy-keymap' now copies recursive submaps.
+** 'copy-keymap' now copies recursive submaps.
** New overlay-arrow feature.
-If you set the variable `overlay-arrow-string' to a string
-and `overlay-arrow-position' to a marker, that string is displayed on
+If you set the variable 'overlay-arrow-string' to a string
+and 'overlay-arrow-position' to a marker, that string is displayed on
the screen at the position of that marker, hiding whatever text would
have appeared there. If that position isn't on the screen, or if
the buffer the marker points into isn't displayed, there is no effect.
** -batch mode can read from the terminal.
-It now works to use `read-char' to do terminal input in a noninteractive
+It now works to use 'read-char' to do terminal input in a noninteractive
Emacs run. End of file causes Emacs to exit.
-** Variables `data-bytes-used' and `data-bytes-free' removed.
+** Variables 'data-bytes-used' and 'data-bytes-free' removed.
These variables cannot really work because the 24-bit range of an
integer in (most ports of) GNU Emacs is not large enough to hold their
\f
* Changes in Emacs 18.45, since version 18.41.
-** C indentation parameter `c-continued-brace-offset'.
+** C indentation parameter 'c-continued-brace-offset'.
This parameter's value is added to the indentation of any
line that is in a continuation context and starts with an open-brace.
for its first letter, then the case pattern of the abbreviation
is carried over to the expansion that replaces it.
-** TeX-mode syntax.
+** 'TeX-mode' syntax.
\ is no longer given "escape character" syntax in TeX mode. It now
has the syntax of an ordinary punctuation character. As a result,
** Mail-mode automatic Reply-To field.
-If the variable `mail-default-reply-to' is non-`nil', then each time
+If the variable 'mail-default-reply-to' is non-'nil', then each time
you start to compose a message, a Reply-To field is inserted with
-its contents taken from the value of `mail-default-reply-to'.
+its contents taken from the value of 'mail-default-reply-to'.
** Where is your .emacs file?
-If you run Emacs under `su', so your real and effective uids are
+If you run Emacs under 'su', so your real and effective uids are
different, Emacs uses the home directory associated with the real uid
(the name you actually logged in under) to find the .emacs file.
** VMS-only function 'define-dcl-symbol'.
This is a new name for the function formerly called
-`define-logical-name'.
+'define-logical-name'.
\f
*** Cursor appears in last line during y-or-n questions.
-Questions that want a `y' or `n' answer now move the cursor
+Questions that want a 'y' or 'n' answer now move the cursor
to the last line, following the question.
** Library loading changes.
-`load' now considers all possible suffixes (`.elc', `.el' and none)
-for each directory in `load-path' before going on to the next directory.
+'load' now considers all possible suffixes (`.elc', `.el' and none)
+for each directory in 'load-path' before going on to the next directory.
It now accepts an optional fourth argument which, if non-nil, says to
use no suffixes; then the file name must be given in full. The search
-of the directories in `load-path' goes on as usual in this case, but
+of the directories in 'load-path' goes on as usual in this case, but
it too can be prevented by passing an absolute file name.
-The value of `load-path' no longer by default includes nil (meaning to
-look in the current default directory). The idea is that `load' should
+The value of 'load-path' no longer by default includes nil (meaning to
+look in the current default directory). The idea is that 'load' should
be used to search the path only for libraries to be found in the standard
places. If you want to override system libraries with your own, place
your own libraries in one special directory and add that directory to the
-front of `load-path'.
+front of 'load-path'.
-The function `load' is no longer a command; that is to say, `M-x load'
+The function 'load' is no longer a command; that is to say, `M-x load'
is no longer allowed. Instead, there are two commands for loading files.
`M-x load-library' is equivalent to the old meaning of `M-x load'.
`M-x load-file' reads a file name with completion and defaulting
** Emulation of other editors.
-*** `edt-emulation-on' starts emulating DEC's EDT editor.
+*** 'edt-emulation-on' starts emulating DEC's EDT editor.
-Do `edt-emulation-off' to return Emacs to normal.
+Do 'edt-emulation-off' to return Emacs to normal.
-*** `vi-mode' and `vip-mode' starts emulating vi.
+*** 'vi-mode' and 'vip-mode' starts emulating vi.
These are two different vi emulations provided by GNU Emacs users.
We are interested in feedback as to which emulation is preferable.
See the documentation and source code for these functions
for more information.
-*** `set-gosmacs-bindings' emulates Gosling Emacs.
+*** 'set-gosmacs-bindings' emulates Gosling Emacs.
This command changes many global bindings to resemble those of
Gosling Emacs. The previous bindings are saved and can be restored using
-`set-gnu-bindings'.
+'set-gnu-bindings'.
** Emulation of a display terminal.
Within Emacs it is now possible to run programs (such as emacs or
supdup) which expect to do output to a visual display terminal.
-See the function `terminal-emulator' for more information.
+See the function 'terminal-emulator' for more information.
** New support for keypads and function keys.
One other change in terminal-specific files: if the value of the TERM
variable contains a hyphen, only the part before the first hyphen is
used in forming the name of the terminal-specific file. Thus, for
-terminal type `aaa-48', the file loaded is now `term/aaa.el' rather
+terminal type 'aaa-48', the file loaded is now `term/aaa.el' rather
than `term/aaa-48.el'.
** New startup command line options.
insert the contents of FILE into the current buffer at that point in
command line processing. This is like using the command M-x insert-file.
-`-funcall', `-load', `-user' and `-no-init-file' are new synonyms for
-`-f', `-l', `-u' and `-q'.
+'-funcall', '-load', '-user' and '-no-init-file' are new synonyms for
+'-f', '-l', '-u' and '-q'.
-`-nw' means don't use a window system. If you are using a terminal
+'-nw' means don't use a window system. If you are using a terminal
emulator on the X window system and you want to run Emacs to work through
the terminal emulator instead of working directly with the window system,
use this switch.
** Buffer-sorting commands.
-Various M-x commands whose names start with `sort-' sort parts of
+Various M-x commands whose names start with 'sort-' sort parts of
the region:
-sort-lines divides the region into lines and sorts them alphabetically.
-sort-pages divides into pages and sorts them alphabetically.
-sort-paragraphs divides into paragraphs and sorts them alphabetically.
-sort-fields divides into lines and sorts them alphabetically
+'sort-lines' divides the region into lines and sorts them alphabetically.
+'sort-pages' divides into pages and sorts them alphabetically.
+'sort-paragraphs'
+ divides into paragraphs and sorts them alphabetically.
+'sort-fields' divides into lines and sorts them alphabetically
according to one field in the line.
The numeric argument specifies which field (counting
from field 1 at the beginning of the line). Fields in a line
are separated by whitespace.
-sort-numeric-fields
+'sort-numeric-fields'
is similar but converts the specified fields to numbers
and sorts them numerically.
-sort-columns divides into lines and sorts them according to the contents
+'sort-columns' divides into lines and sorts them according to the contents
of a specified range of columns.
Refer to the self-documentation of these commands for full usage information.
** Changes in various commands.
-*** `tags-query-replace' and `tags-search' change.
+*** 'tags-query-replace' and 'tags-search' change.
These functions now display the name of the file being searched at the moment.
-*** `occur' output now serves as a menu. `occur-menu' command deleted.
+*** 'occur' output now serves as a menu. 'occur-menu' command deleted.
`M-x occur' now allows you to move quickly to any of the occurrences
-listed. Select the `*Occur*' buffer that contains the output of `occur',
+listed. Select the `*Occur*' buffer that contains the output of 'occur',
move point to the occurrence you want, and type C-c C-c.
This will move point to the same occurrence in the buffer that the
occurrences were found in.
-The command `occur-menu' is thus obsolete, and has been deleted.
+The command 'occur-menu' is thus obsolete, and has been deleted.
One way to get a list of matching lines without line numbers is to
-copy the text to another buffer and use the command `keep-lines'.
+copy the text to another buffer and use the command 'keep-lines'.
*** Incremental search changes.
If you add a `*', `?' or `\|' to an incremental search regexp,
point will back up if that is appropriate. For example, if
-you have searched for `ab' and add a `*', point moves to the
-first match for `ab*', which may be before the match for `ab'
+you have searched for 'ab' and add a `*', point moves to the
+first match for `ab*', which may be before the match for 'ab'
that was previously found.
If an incremental search is failing and you ask to repeat it,
it will start again from the beginning of the buffer (or the end,
if it is a backward search).
-The search-controlling parameters `isearch-slow-speed' and
-`isearch-slow-window-lines' have now been renamed to start with
-`search' instead of `isearch'. Now all the parameters' names start
-with `search'.
+The search-controlling parameters 'isearch-slow-speed' and
+'isearch-slow-window-lines' have now been renamed to start with
+'search' instead of 'isearch'. Now all the parameters' names start
+with 'search'.
-If `search-slow-window-lines' is negative, the slow search window
+If 'search-slow-window-lines' is negative, the slow search window
is put at the top of the screen, and the absolute value or the
negative number specifies the height of it.
*** Changes in saving kbd macros.
-The commands `write-kbd-macro' and `append-kbd-macro' have been
+The commands 'write-kbd-macro' and 'append-kbd-macro' have been
deleted. The way to save a keyboard macro is to use the new command
-`insert-kbd-macro', which inserts Lisp code to define the macro as
+'insert-kbd-macro', which inserts Lisp code to define the macro as
it is currently defined into the buffer before point. Visit a Lisp
file such as your Emacs init file `~/.emacs', insert the macro
definition (perhaps deleting an old definition for the same macro)
The command C-M-x in Lisp mode, which sends the current defun to
an inferior Lisp process, now works by writing the text into a temporary
-file and actually sending only a `load'-form to load the file.
+file and actually sending only a 'load'-form to load the file.
As a result, it avoids the Unix bugs that used to strike when the
text was above a certain length.
With a prefix argument, this command now makes the inferior Lisp buffer
appear on the screen and scrolls it so that the bottom is showing.
-Two variables `inferior-lisp-load-command' and `inferior-lisp-prompt',
+Two variables 'inferior-lisp-load-command' and 'inferior-lisp-prompt',
exist to customize these feature for different Lisp implementations.
*** C-x p now disabled.
is now renamed to belong to the new visited file name.
You can customize the way auto save file names are made by redefining
-the two functions `make-auto-save-file-name' and `auto-save-file-name-p',
+the two functions 'make-auto-save-file-name' and 'auto-save-file-name-p',
both of which are defined in `files.el'.
*** Modifying a buffer whose file is changed on disk is detected instantly.
Emacs can now know about buffers that it should offer to save on exit
even though they are not visiting files. This is done for any buffer
-which has a non-nil local value of `buffer-offer-save'. By default,
+which has a non-nil local value of 'buffer-offer-save'. By default,
Mail mode provides such a local value.
*** Backup file changes.
each time you ask to use it, but previously specified user names and
passwords are remembered automatically.
-*** Dired `g' command.
+*** Dired 'g' command.
-`g' in Dired mode is equivalent to M-x revert-buffer; it causes the
+'g' in Dired mode is equivalent to M-x revert-buffer; it causes the
current contents of the same directory to be read in.
** Changes in major modes.
The old definition did one additional thing: it reindented the line
before the new newline. This has been removed because it made the
command twice as slow. The only time it was really useful was after the
-insertion of an `else', since the fact of starting with `else' may change
+insertion of an 'else', since the fact of starting with 'else' may change
the way that line is indented. Now you will have to type TAB again
-yourself to reindent the `else' properly.
+yourself to reindent the 'else' properly.
-If the variable `c-tab-always-indent' is set to `nil', the TAB command
+If the variable 'c-tab-always-indent' is set to 'nil', the TAB command
in C mode, with no argument, will just insert a tab character if there
is non-whitespace preceding point on the current line. Giving it a
prefix argument will force reindentation of the line (as well as
This mode provides commands for motion and indentation of Fortran code,
plus built-in abbrevs for Fortran keywords. For details, see the manual
-or the on-line documentation of the command `fortran-mode'.
+or the on-line documentation of the command 'fortran-mode'.
*** Scribe mode now exists.
*** Picture mode changes.
-The special picture-mode commands to specify the direction of cursor
+The special 'picture-mode' commands to specify the direction of cursor
motion after insertion have been moved to C-c keys. The commands to
specify diagonal motion were already C-c keys; they are unchanged.
The keys to specify horizontal or vertical motion are now
M-x plain-tex-mode to select the previously existing mode for Plain
TeX. M-x tex-mode attempts to examine the contents of the buffer and
choose between latex-mode and plain-tex-mode accordingly; if the
-buffer is empty or it cannot tell, the variable `TeX-default-mode'
+buffer is empty or it cannot tell, the variable 'TeX-default-mode'
controls the choice. Its value should be the symbol for the mode to
be used.
C-c C-b Move to previous visible heading at the same level.
C-c C-u Move up to previous visible heading at a higher level.
-The variable `outline-regexp' now controls recognition of heading lines.
+The variable 'outline-regexp' now controls recognition of heading lines.
Any line whose beginning matches this regexp is a heading line.
The depth in outline structure is determined by the length of
the string that matches.
*** Rmail C-r command changed to w.
-The Rmail command to edit the current message is now `w'. This change
+The Rmail command to edit the current message is now 'w'. This change
has been made because people frequently type C-r while in Rmail hoping
to do a reverse incremental search. That now works.
standard of 13, and accepts any numeric arg between 1 to 25 and -25 to -1.
The function is bound to C-c C-r in both news-mode and news-reply-mode.
-*** rmail-output command added.
+*** 'rmail-output' command added.
The C-o command has been bound to rmail-output in news-mode.
This allows one to append an article to a file which is in either Unix
or you run the other programs as inferiors of Emacs (such as, using
M-x shell).
-First prepare the existing Emacs process by loading the `server'
+First prepare the existing Emacs process by loading the 'server'
library and executing M-x server-start. (Your .emacs can do this
automatically.)
in place of `.emacs'. This is so that it will take less time to
find `.emacs'. If you want to compile your init file, give it another
name and make `.emacs' a link to the `.elc' file, or make it contain
-a call to `load' to load the `.elc' file.
+a call to 'load' to load the `.elc' file.
-*** `default-profile' renamed to `default', and loaded after `.emacs'.
+*** 'default-profile' renamed to 'default', and loaded after `.emacs'.
-It used to be the case that the file `default-profile' was loaded if
+It used to be the case that the file 'default-profile' was loaded if
and only if `.emacs' was not found.
-Now the name `default-profile' is not used at all. Instead, a library
-named `default' is loaded after the `.emacs' file. `default' is loaded
-whether the `.emacs' file exists or not. However, loading of `default'
-can be prevented if the `.emacs' file sets `inhibit-default-init' to non-nil.
+Now the name 'default-profile' is not used at all. Instead, a library
+named 'default' is loaded after the `.emacs' file. 'default' is loaded
+whether the `.emacs' file exists or not. However, loading of 'default'
+can be prevented if the `.emacs' file sets 'inhibit-default-init' to non-nil.
In fact, you would call the default file `default.el' and probably would
-byte-compile it to speed execution.
+'byte-compile' it to speed execution.
-Note that for most purposes you are better off using a `site-init' library
+Note that for most purposes you are better off using a 'site-init' library
since that will be loaded before the runnable Emacs is dumped. By using
-a `site-init' library, you avoid taking up time each time Emacs is started.
+a 'site-init' library, you avoid taking up time each time Emacs is started.
*** inhibit-command-line has been eliminated.
eliminated because you can get the same effect by setting
command-line-args to nil and setting inhibit-startup-message to t.
-** `apply' is more general.
+** 'apply' is more general.
-`apply' now accepts any number of arguments. The first one is a function;
+'apply' now accepts any number of arguments. The first one is a function;
the rest are individual arguments to pass to that function, except for the
last, which is a list of arguments to pass.
-Previously, `apply' required exactly two arguments. Its old behavior
+Previously, 'apply' required exactly two arguments. Its old behavior
follows as a special case of the new definition.
-** New code-letter for `interactive'.
+** New code-letter for 'interactive'.
(interactive "NFoo: ") is like (interactive "nFoo: ") in reading
a number using the minibuffer to serve as the argument; however,
if a prefix argument was specified, it uses the prefix argument
value as the argument, and does not use the minibuffer at all.
-This is used by the `goto-line' and `goto-char' commands.
+This is used by the 'goto-line' and 'goto-char' commands.
** Semantics of variables.
*** Built-in per-buffer variables improved.
Several built-in variables which in the past had a different value in
-each buffer now behave exactly as if `make-variable-buffer-local' had
+each buffer now behave exactly as if 'make-variable-buffer-local' had
been done to them.
-These variables are `tab-width', `ctl-arrow', `truncate-lines',
-`fill-column', `left-margin', `mode-line-format', `abbrev-mode',
-`overwrite-mode', `case-fold-search', `auto-fill-hook',
-`selective-display', `selective-display-ellipses'.
+These variables are 'tab-width', 'ctl-arrow', 'truncate-lines',
+'fill-column', 'left-margin', 'mode-line-format', 'abbrev-mode',
+'overwrite-mode', 'case-fold-search', 'auto-fill-hook',
+'selective-display', 'selective-display-ellipses'.
To be precise, each variable has a default value which shows through
-in most buffers and can be accessed with `default-value' and set with
-`set-default'. Setting the variable with `setq' makes the variable
+in most buffers and can be accessed with 'default-value' and set with
+'set-default'. Setting the variable with 'setq' makes the variable
local to the current buffer. Changing the default value has retroactive
effect on all buffers in which the variable is not local.
-The variables `default-case-fold-search', etc., are now obsolete.
+The variables 'default-case-fold-search', etc., are now obsolete.
They now refer to the default value of the variable, which is not
quite the same behavior as before, but it should enable old init files
to continue to work.
*** New per-buffer variables.
-The variables `fill-prefix', `comment-column' and `indent-tabs-mode'
-are now per-buffer. They work just like `fill-column', etc.
+The variables 'fill-prefix', 'comment-column' and 'indent-tabs-mode'
+are now per-buffer. They work just like 'fill-column', etc.
-*** New function `setq-default'.
+*** New function 'setq-default'.
-`setq-default' sets the default value of a variable, and uses the
-same syntax that `setq' accepts: the variable name is not evaluated
+'setq-default' sets the default value of a variable, and uses the
+same syntax that 'setq' accepts: the variable name is not evaluated
and need not be quoted.
`(setq-default case-fold-search nil)' would make searches case-sensitive
-in all buffers that do not have local values for `case-fold-search'.
+in all buffers that do not have local values for 'case-fold-search'.
-*** Functions `global-set' and `global-value' deleted.
+*** Functions 'global-set' and 'global-value' deleted.
These functions were never used except by mistake by users expecting
-the functionality of `set-default' and `default-value'.
+the functionality of 'set-default' and 'default-value'.
** Changes in defaulting of major modes.
-When `default-major-mode' is `nil', new buffers are supposed to
+When 'default-major-mode' is 'nil', new buffers are supposed to
get their major mode from the buffer that is current. However,
certain major modes (such as Dired mode, Rmail mode, Rmail Summary mode,
and others) are not reasonable to use in this way.
-Now such modes' names have been given non-`nil' `mode-class' properties.
+Now such modes' names have been given non-'nil' 'mode-class' properties.
If the current buffer's mode has such a property, Fundamental mode is
used as the default for newly created buffers.
-** `where-is-internal' requires additional arguments.
+** 'where-is-internal' requires additional arguments.
This function now accepts three arguments, two of them required:
DEFINITION, the definition to search for; LOCAL-KEYMAP, the keymap
the old behavior of this function, write `(current-local-map)' as
the expression for the second argument.
-The incompatibility is sad, but `nil' is a legitimate value for the
+The incompatibility is sad, but 'nil' is a legitimate value for the
second argument (it means there is no local keymap), so it cannot also
serve as a default meaning to use the current local keymap.
hook. Previously the abbrev itself was deleted but the expansion was
not inserted.
-** Function `scan-buffer' deleted.
+** Function 'scan-buffer' deleted.
-Use `search-forward' or `search-backward' in place of `scan-buffer'.
+Use 'search-forward' or 'search-backward' in place of 'scan-buffer'.
You will have to rearrange the arguments.
** X window interface improvements.
*** New pop-up menu facility.
-The new function `x-popup-menu' pops up a menu (in a X window)
+The new function 'x-popup-menu' pops up a menu (in a X window)
and returns an indication of which selection the user made.
For more information, see its self-documentation.
Would anyone like to interface this to the debugger?
-** `insert-buffer-substring' can insert part of the current buffer.
+** 'insert-buffer-substring' can insert part of the current buffer.
The old restriction that the text being inserted had to come from
a different buffer is now lifted.
When inserting text from the current buffer, the text to be inserted
is determined from the specified bounds before any copying takes place.
-** New function `substitute-key-definition'.
+** New function 'substitute-key-definition'.
This is a new way to replace one command with another command as the
binding of whatever keys may happen to refer to it.
-(substitute-key-definition OLDDEF NEWDEF KEYMAP) looks through KEYMAP
-for keys defined to run OLDDEF, and rebinds those keys to run NEWDEF
-instead.
+ (substitute-key-definition OLDDEF NEWDEF KEYMAP)
-** New function `insert-char'.
+looks through KEYMAP for keys defined to run OLDDEF, and rebinds those keys to
+run NEWDEF instead.
+
+** New function 'insert-char'.
Insert a specified character, a specified number of times.
-** `mark-marker' changed.
+** 'mark-marker' changed.
When there is no mark, this now returns a marker that points
-nowhere, rather than `nil'.
+nowhere, rather than 'nil'.
-** `ding' accepts argument.
+** 'ding' accepts argument.
-When given an argument, the function `ding' does not terminate
-execution of a keyboard macro. Normally, `ding' does terminate
+When given an argument, the function 'ding' does not terminate
+execution of a keyboard macro. Normally, 'ding' does terminate
all macros that are currently executing.
-** New function `minibuffer-depth'.
+** New function 'minibuffer-depth'.
This function returns the current depth in minibuffer activations.
The value is zero when the minibuffer is not in use.
Values greater than one are possible if the user has entered the
minibuffer recursively.
-** New function `documentation-property'.
+** New function 'documentation-property'.
(documentation-property SYMBOL PROPNAME) is like (get SYMBOL PROPNAME),
-except that if the property value is a number `documentation-property'
+except that if the property value is a number 'documentation-property'
will take that number (or its absolute value) as a character position
in the DOC file and return the string found there.
"ESC C-x evaluates the defun containing point."
regardless of the current major mode, because ESC C-x is defined to
-run `eval-defun' in the keymap `emacs-lisp-mode-map'. The effect is
-to show the key for `eval-defun' in Emacs Lisp mode regardless of the
+run 'eval-defun' in the keymap 'emacs-lisp-mode-map'. The effect is
+to show the key for 'eval-defun' in Emacs Lisp mode regardless of the
current major mode.
The `\<...>' construct applies to all `\[...]' constructs that follow it,
** Multiple hooks allowed in certain contexts.
-The old hook variables `find-file-hook', `find-file-not-found-hook' and
-`write-file-hook' have been replaced.
+The old hook variables 'find-file-hook', 'find-file-not-found-hook' and
+'write-file-hook' have been replaced.
-The replacements are `find-file-hooks', `find-file-not-found-hooks'
-and `write-file-hooks'. Each holds a list of functions to be called;
-by default, `nil', for no functions. The functions are called in
+The replacements are 'find-file-hooks', 'find-file-not-found-hooks'
+and 'write-file-hooks'. Each holds a list of functions to be called;
+by default, 'nil', for no functions. The functions are called in
order of appearance in the list.
-In the case of `find-file-hooks', all the functions are executed.
+In the case of 'find-file-hooks', all the functions are executed.
-In the case of `find-file-not-found-hooks', if any of the functions
-returns non-`nil', the rest of the functions are not called.
+In the case of 'find-file-not-found-hooks', if any of the functions
+returns non-'nil', the rest of the functions are not called.
-In the case of `write-file-hooks', if any of the functions returns
-non-`nil', the rest of the functions are not called, and the file is
+In the case of 'write-file-hooks', if any of the functions returns
+non-'nil', the rest of the functions are not called, and the file is
considered to have been written already; so actual writing in the
-usual way is not done. If `write-file-hooks' is local to a buffer,
-it is set to its global value if `set-visited-file-name' is called
+usual way is not done. If 'write-file-hooks' is local to a buffer,
+it is set to its global value if 'set-visited-file-name' is called
(and thus by C-x C-w as well).
-`find-file-not-found-hooks' and `write-file-hooks' can be used
+'find-file-not-found-hooks' and 'write-file-hooks' can be used
together to implement editing of files that are not stored as Unix
files: stored in archives, or inside version control systems, or on
other machines running other operating systems and accessible via ftp.
** New hooks for suspending Emacs.
-Suspending Emacs runs the hook `suspend-hook' before suspending
-and the hook `suspend-resume-hook' if the suspended Emacs is resumed.
+Suspending Emacs runs the hook 'suspend-hook' before suspending
+and the hook 'suspend-resume-hook' if the suspended Emacs is resumed.
Running a hook is done by applying the variable's value to no arguments
-if the variable has a non-`nil' value. If `suspend-hook' returns
-non-`nil', then suspending is inhibited and so is running the
-`suspend-resume-hook'. The non-`nil' value means that the `suspend-hook'
+if the variable has a non-'nil' value. If 'suspend-hook' returns
+non-'nil', then suspending is inhibited and so is running the
+'suspend-resume-hook'. The non-'nil' value means that the 'suspend-hook'
has done whatever suspending is required.
** Disabling commands can print a special message.
-A command is disabled by giving it a non-`nil' `disabled' property.
+A command is disabled by giving it a non-'nil' 'disabled' property.
Now, if this property is a string, it is included in the message
printed when the user tries to run the command.
** Emacs can open TCP connections.
-The function `open-network-stream' opens a TCP connection to
+The function 'open-network-stream' opens a TCP connection to
a specified host and service. Its value is a Lisp object that represents
the connection. The object is a kind of "subprocess", and I/O are
done like I/O to subprocesses.
*** New mode-line control features.
The display of the mode line used to be controlled by a format-string
-that was the value of the variable `mode-line-format'.
+that was the value of the variable 'mode-line-format'.
This variable still exists, but it now allows more general values,
not just strings. Lists, cons cells and symbols are also meaningful.
at most the width specified by the integer.
There is always one mode element to start with, that being the value of
-`mode-line-format', but if this value is a list then it leads to several
+'mode-line-format', but if this value is a list then it leads to several
more mode elements, which can lead to more, and so on.
There is one new %-construct for mode elements that are strings:
`%n' displays ` Narrow' for a buffer that is narrowed.
-The default value of `mode-line-format' refers to several other variables.
-These variables are `mode-name', `mode-line-buffer-identification',
-`mode-line-process', `mode-line-modified', `global-mode-string' and
-`minor-mode-alist'. The first four are local in every buffer in which they
+The default value of 'mode-line-format' refers to several other variables.
+These variables are 'mode-name', 'mode-line-buffer-identification',
+'mode-line-process', 'mode-line-modified', 'global-mode-string' and
+'minor-mode-alist'. The first four are local in every buffer in which they
are changed from the default.
mode-name Name of buffer's major mode. Local in every buffer.
mode-line-buffer-identification
Normally the list ("Emacs: %17b"), it is responsible
for displaying text to indicate what buffer is being shown
- and what kind of editing it is doing. `Emacs' means
+ and what kind of editing it is doing. 'Emacs' means
that a file of characters is being edited. Major modes
such as Info and Dired which edit or view other kinds
of data often change this value. This variables becomes
The idea of these variables is to eliminate the need for major modes
to alter mode-line-format itself.
-*** `window-point' valid for selected window.
+*** 'window-point' valid for selected window.
-The value returned by `window-point' used to be incorrect when its
+The value returned by 'window-point' used to be incorrect when its
argument was the selected window. Now the value is correct.
*** Window configurations may be saved as Lisp objects.
-The function `current-window-configuration' returns a special type of
+The function 'current-window-configuration' returns a special type of
Lisp object that represents the current layout of windows: the
sizes and positions of windows, which buffers appear in them, and
which parts of the buffers appear on the screen.
-The function `set-window-configuration' takes one argument, which must
+The function 'set-window-configuration' takes one argument, which must
be a window configuration object, and restores that configuration.
-*** New hook `temp-output-buffer-show-hook'.
+*** New hook 'temp-output-buffer-show-hook'.
This hook allows you to control how help buffers are displayed.
-Whenever `with-output-to-temp-buffer' has executed its body and wants
-to display the temp buffer, if this variable is bound and non-`nil'
+Whenever 'with-output-to-temp-buffer' has executed its body and wants
+to display the temp buffer, if this variable is bound and non-'nil'
then its value is called with one argument, the temp buffer.
The hook function is solely responsible for displaying the buffer.
The standard manner of display--making the buffer appear in a window--is
used only if there is no hook function.
-*** New function `minibuffer-window'.
+*** New function 'minibuffer-window'.
This function returns the window used (sometimes) for displaying
the minibuffer. It can be used even when the minibuffer is not active.
-*** New feature to `next-window'.
+*** New feature to 'next-window'.
-If the optional second argument is neither `nil' nor `t', the minibuffer
+If the optional second argument is neither 'nil' nor 't', the minibuffer
window is omitted from consideration even when active; if the starting
window was the last non-minibuffer window, the value will be the first
non-minibuffer window.
-*** New variable `minibuffer-scroll-window'.
+*** New variable 'minibuffer-scroll-window'.
-When this variable is non-`nil', the command `scroll-other-window'
+When this variable is non-'nil', the command 'scroll-other-window'
uses it as the window to be scrolled. Displays of completion-lists
set this variable to the window containing the display.
-*** New argument to `sit-for'.
+*** New argument to 'sit-for'.
-A non-nil second argument to `sit-for' means do not redisplay;
+A non-nil second argument to 'sit-for' means do not redisplay;
just wait for the specified time or until input is available.
-*** Deleted function `set-minor-mode'; minor modes must be changed.
+*** Deleted function 'set-minor-mode'; minor modes must be changed.
-The function `set-minor-mode' has been eliminated. The display
+The function 'set-minor-mode' has been eliminated. The display
of minor mode names in the mode line is now controlled by the
-variable `minor-mode-alist'. To specify display of a new minor
+variable 'minor-mode-alist'. To specify display of a new minor
mode, it is sufficient to add an element to this list. Once that
is done, you can turn the mode on and off just by setting a variable,
and the display will show its status automatically.
-*** New variable `cursor-in-echo-area'.
+*** New variable 'cursor-in-echo-area'.
If this variable is non-nil, the screen cursor appears on the
last line of the screen, at the end of the text displayed there.
Binding this variable to t is useful at times when reading single
-characters of input with `read-char'.
+characters of input with 'read-char'.
-*** New per-buffer variable `selective-display-ellipses'.
+*** New per-buffer variable 'selective-display-ellipses'.
If this variable is non-nil, an ellipsis (`...') appears on the screen
at the end of each text line that is followed by invisible text.
on the screen that invisible text is present.
Text is made invisible under the control of the variable
-`selective-display'; this is how Outline mode and C-x $ work.
+'selective-display'; this is how Outline mode and C-x $ work.
-*** New variable `no-redraw-on-reenter'.
+*** New variable 'no-redraw-on-reenter'.
If you set this variable non-nil, Emacs will not clear the screen when
you resume it after suspending it. This is for the sake of terminals
with multiple screens of memory, where the termcap entry has been set
up to switch between screens when Emacs is suspended and resumed.
-*** New argument to `set-screen-height' or `set-screen-width'.
+*** New argument to 'set-screen-height' or 'set-screen-width'.
These functions now take an optional second argument which says
what significance the newly specified height or width has.
** File-related changes.
-*** New parameter `backup-by-copying-when-mismatch'.
+*** New parameter 'backup-by-copying-when-mismatch'.
-If this variable is non-`nil', then when Emacs is about to save a
+If this variable is non-'nil', then when Emacs is about to save a
file, it will create the backup file by copying if that would avoid
changing the file's uid or gid.
-The default value of this variable is `nil', because usually it is
+The default value of this variable is 'nil', because usually it is
useful to have the uid of a file change according to who edited it
-last. I recommend that this variable be left normally `nil' and
+last. I recommend that this variable be left normally 'nil' and
changed with a local variables list in those particular files where
the uid needs to be preserved.
-*** New parameter `file-precious-flag'.
+*** New parameter 'file-precious-flag'.
-If this variable is non-`nil', saving the buffer tries to avoid
+If this variable is non-'nil', saving the buffer tries to avoid
leaving an incomplete file due to disk full or other I/O errors.
It renames the old file before saving. If saving is successful,
the renamed file is deleted; if saving gets an error, the renamed
Backups are always made by copying for such files.
-*** New variable `buffer-offer-save'.
+*** New variable 'buffer-offer-save'.
-If the value of this variable is non-`nil' in a buffer then exiting
+If the value of this variable is non-'nil' in a buffer then exiting
Emacs will offer to save the buffer (if it is modified and nonempty)
even if the buffer is not visiting a file. This variable is
automatically made local to the current buffer whenever it is set.
-*** `rename-file', `copy-file', `add-name-to-file' and `make-symbolic-link'.
+*** 'rename-file', 'copy-file', 'add-name-to-file' and 'make-symbolic-link'.
-The third argument to these functions used to be `t' or `nil'; `t'
+The third argument to these functions used to be 't' or 'nil'; 't'
meaning go ahead even if the specified new file name already has a file,
-and `nil' meaning to get an error.
+and 'nil' meaning to get an error.
Now if the third argument is a number it means to ask the user for
confirmation in this case.
-*** New optional argument to `copy-file'.
+*** New optional argument to 'copy-file'.
-If `copy-file' receives a non-nil fourth argument, it attempts
+If 'copy-file' receives a non-nil fourth argument, it attempts
to give the new copy the same time-of-last-modification that the
original file has.
-*** New function `file-newer-than-file-p'.
+*** New function 'file-newer-than-file-p'.
(file-newer-than-file-p FILE1 FILE2) returns non-nil if FILE1 has been
modified more recently than FILE2. If FILE1 does not exist, the value
This is meant for use when FILE2 depends on FILE1, to see if changes
in FILE1 make it necessary to recompute FILE2 from it.
-*** Changed function `file-exists-p'.
+*** Changed function 'file-exists-p'.
-This function is no longer the same as `file-readable-p'.
-`file-exists-p' can now return t for a file that exists but which
+This function is no longer the same as 'file-readable-p'.
+'file-exists-p' can now return t for a file that exists but which
the fascists won't allow you to read.
-*** New function `file-locked-p'.
+*** New function 'file-locked-p'.
-This function receives a file name as argument and returns `nil'
-if the file is not locked, `t' if locked by this Emacs, or a
+This function receives a file name as argument and returns 'nil'
+if the file is not locked, 't' if locked by this Emacs, or a
string giving the name of the user who has locked it.
-*** New function `file-name-sans-versions'.
+*** New function 'file-name-sans-versions'.
(file-name-sans-versions NAME) returns a substring of NAME, with any
version numbers or other backup suffixes deleted from the end.
`du:[rms]foo.dir'.
There are two new functions for converting between directory names
-and file names. `directory-file-name' takes a directory name and
+and file names. 'directory-file-name' takes a directory name and
returns the name of the file in which that directory's data is stored.
-`file-name-as-directory' takes the name of a file and returns
+'file-name-as-directory' takes the name of a file and returns
the corresponding directory name. These always understand Unix file name
syntax; on VMS, they understand VMS syntax as well.
On VMS, (file-name-as-directory "du:[rms]foo.dir") returns "du:[rms.foo]"
and (directory-file-name "du:[rms.foo]") returns "du:[rms]foo.dir".
-*** Value of `file-attributes' changed.
+*** Value of 'file-attributes' changed.
The function file-attributes returns a list containing many kinds of
information about a file. Now the list has eleven elements.
-The tenth element is `t' if deleting the file and creating another
+The tenth element is 't' if deleting the file and creating another
file of the same name would result in a change in the file's group;
-`nil' if there would be no change. You can also think of this as
+'nil' if there would be no change. You can also think of this as
comparing the file's group with the default group for files created in
the same directory by you.
The eleventh element is the inode number of the file.
-*** VMS-only function `file-name-all-versions'.
+*** VMS-only function 'file-name-all-versions'.
This function returns a list of all the completions, including version
number, of a specified version-number-less file name. This is like
-`file-name-all-completions', except that the latter returns values
+'file-name-all-completions', except that the latter returns values
that do not include version numbers.
-*** VMS-only variable `vms-stmlf-recfm'.
+*** VMS-only variable 'vms-stmlf-recfm'.
On a VMS system, if this variable is non-nil, Emacs will give newly
-created files the record format `stmlf'. This is necessary for files
+created files the record format 'stmlf'. This is necessary for files
that must contain lines of arbitrary length, such as compiled Emacs
Lisp.
This variable has no effect on Unix systems.
-*** `insert-file-contents' on an empty file.
+*** 'insert-file-contents' on an empty file.
This no longer sets the buffer's "modified" flag.
-*** New function (VMS only) `define-logical-name':
+*** New function (VMS only) 'define-logical-name':
(define-logical-name LOGICAL TRANSLATION) defines a VMS logical name
LOGICAL whose translation is TRANSLATION. The new name applies to
the current process only.
-*** Deleted variable `ask-about-buffer-names'.
+*** Deleted variable 'ask-about-buffer-names'.
If you want buffer names for files to be generated in a special way,
-you must redefine `create-file-buffer'.
+you must redefine 'create-file-buffer'.
** Subprocess-related changes.
-*** New function `process-list'.
+*** New function 'process-list'.
This function takes no arguments and returns a list of all
of Emacs's asynchronous subprocesses.
-*** New function `process-exit-status'.
+*** New function 'process-exit-status'.
This function, given a process, process name or buffer as argument,
returns the exit status code or signal number of the process.
If the process has not yet exited or died, this function returns 0.
-*** Process output ignores `buffer-read-only'.
+*** Process output ignores 'buffer-read-only'.
Output from a process will go into the process's buffer even if the
buffer is read only.
*** Specifying environment variables for subprocesses.
-When a subprocess is started with `start-process' or `call-process',
-the value of the variable `process-environment' is taken to
+When a subprocess is started with 'start-process' or 'call-process',
+the value of the variable 'process-environment' is taken to
specify the environment variables to give the subprocess. The
value should be a list of strings, each of the form "VAR=VALUE".
-`process-environment' is initialized when Emacs starts up
+'process-environment' is initialized when Emacs starts up
based on Emacs's environment.
-*** New variable `process-connection-type'.
+*** New variable 'process-connection-type'.
-If this variable is `nil', when a subprocess is created, Emacs uses
+If this variable is 'nil', when a subprocess is created, Emacs uses
a pipe rather than a pty to communicate with it. Normally this
-variable is `t', telling Emacs to use a pty if ptys are supported
+variable is 't', telling Emacs to use a pty if ptys are supported
and one is available.
-*** New function `waiting-for-user-input-p'.
+*** New function 'waiting-for-user-input-p'.
-This function, given a subprocess as argument, returns `t' if that
+This function, given a subprocess as argument, returns 't' if that
subprocess appears to be waiting for input sent from Emacs,
-or `nil' otherwise.
+or 'nil' otherwise.
-*** New hook `shell-set-directory-error-hook'.
+*** New hook 'shell-set-directory-error-hook'.
The value of this variable is called, with no arguments, whenever
Shell mode gets an error trying to keep track of directory-setting
-commands (such as `cd' and `pushd') used in the shell buffer.
+commands (such as 'cd' and 'pushd') used in the shell buffer.
-** New functions `user-uid' and `user-real-uid'.
+** New functions 'user-uid' and 'user-real-uid'.
These functions take no arguments and return, respectively,
the effective uid and the real uid of the Emacs process.
The value in each case is an integer.
-** New variable `print-escape-newlines' controls string printing.
+** New variable 'print-escape-newlines' controls string printing.
-If this variable is non-`nil', then when a Lisp string is printed
-by the Lisp printing function `prin1' or `print', newline characters
+If this variable is non-'nil', then when a Lisp string is printed
+by the Lisp printing function 'prin1' or 'print', newline characters
are printed as `\n' rather than as a literal newline.
-** New function `sysnetunam' on HPUX.
+** New function 'sysnetunam' on HPUX.
This function takes two arguments, a network address PATH and a
-login string LOGIN, and executes the system call `netunam'.
-It returns `t' if the call succeeds, otherwise `nil'.
+login string LOGIN, and executes the system call 'netunam'.
+It returns 't' if the call succeeds, otherwise 'nil'.
\f
News regarding installation:
** Many `s-...' file names changed.
Many `s-...' files have been renamed. All periods in such names,
-except the ones just before the final `h', have been changed to
+except the ones just before the final 'h', have been changed to
hyphens. Thus, `s-bsd4.2.h' has been renamed to `s-bsd4-2.h'.
This is so a Unix distribution can be moved mechanically to VMS.
This may make it easier to port to some machines.
-** Macros `XPNTR' and `XSETPNTR'; flag `DATA_SEG_BITS'.
+** Macros 'XPNTR' and 'XSETPNTR'; flag `DATA_SEG_BITS'.
These macros exclusively are used to unpack a pointer from a Lisp_Object
and to insert a pointer into a Lisp_Object. Redefining them may help
** `SYSTEM_MALLOC' prevents use of GNU `malloc.c'.
-SYSTEM_MALLOC, if defined, means use the system's own `malloc' routines
+SYSTEM_MALLOC, if defined, means use the system's own 'malloc' routines
rather than those that come with Emacs.
Use this only if absolutely necessary, because if it is used you do
** New macros control compiler switches, linker switches and libraries.
The m- and s- files can now control in a modular fashion the precise
-arguments passed to `cc' and `ld'.
+arguments passed to 'cc' and 'ld'.
-LIBS_STANDARD defines the standard C libraries. Default is `-lc'.
-LIBS_DEBUG defines the extra libraries to use when debugging. Default `-lg'.
+LIBS_STANDARD defines the standard C libraries. Default is '-lc'.
+LIBS_DEBUG defines the extra libraries to use when debugging. Default '-lg'.
LIBS_SYSTEM can be defined by the s- file to specify extra libraries.
LIBS_MACHINE can be defined by the m- file to specify extra libraries.
LIBS_TERMCAP defines the libraries for Termcap or Terminfo.
It is defined by default in a complicated fashion but the m- or s- file
can override it.
-LD_SWITCH_SYSTEM can be defined by the s- file to specify extra `ld' switches.
- The default is `-X' on BSD systems except those few that use COFF object files.
-LD_SWITCH_MACHINE can be defined by the m- file to specify extra `ld' switches.
+LD_SWITCH_SYSTEM can be defined by the s- file to specify extra 'ld' switches.
+ The default is '-X' on BSD systems except those few that use COFF object files.
+LD_SWITCH_MACHINE can be defined by the m- file to specify extra 'ld' switches.
-C_DEBUG_SWITCH defines the switches to give `cc' when debugging. Default `-g'.
-C_OPTIMIZE_SWITCH defines the switches to give `cc' to optimize. Default `-O'.
-C_SWITCH_MACHINE can be defined by the m- file to specify extra `cc' switches.
+C_DEBUG_SWITCH defines the switches to give 'cc' when debugging. Default '-g'.
+C_OPTIMIZE_SWITCH defines the switches to give 'cc' to optimize. Default '-O'.
+C_SWITCH_MACHINE can be defined by the m- file to specify extra 'cc' switches.
\f
** Bibtex mode no longer turns on Auto Fill automatically. (No major
mode should do that--it is the user's choice.)
-** The variable normal-auto-fill-function specifies the function to
-use for auto-fill-function, if and when Auto Fill is turned on.
+** The variable 'normal-auto-fill-function' specifies the function to
+use for 'auto-fill-function', if and when Auto Fill is turned on.
Major modes can set this locally to alter how Auto Fill works.
Meta key, it is too easy and painful to activate this feature by
accident.
-** The command apply-macro-to-region-lines repeats the last defined
+** The command 'apply-macro-to-region-lines' repeats the last defined
keyboard macro once for each complete line within the current region.
It does this line by line, by moving point to the beginning of that
line and then executing the macro.
Font Lock can be configured to use Fast Lock mode and Lazy Lock mode (see
below) in a flexible way. Rather than adding the appropriate function to the
-hook font-lock-mode-hook, you can use the new variable font-lock-support-mode
+hook font-lock-mode-hook, you can use the new variable 'font-lock-support-mode'
to control which modes have Fast Lock mode or Lazy Lock mode turned on when
Font Lock mode is enabled.
For example, to use Fast Lock mode when Font Lock mode is turned on, put:
- (setq font-lock-support-mode 'fast-lock-mode)
+ (setq font-lock-support-mode 'fast-lock-mode)
in your ~/.emacs.
To use this package, put in your ~/.emacs:
- (setq font-lock-support-mode 'lazy-lock-mode)
+ (setq font-lock-support-mode 'lazy-lock-mode)
-To control the package behavior, see the documentation for `lazy-lock-mode'.
+To control the package behavior, see the documentation for 'lazy-lock-mode'.
** Changes in BibTeX mode.
*** An nn-like pick-and-read minor mode is available for the summary
buffers.
- (add-hook 'gnus-summary-mode-hook 'gnus-pick-mode)
+ (add-hook 'gnus-summary-mode-hook #'gnus-pick-mode)
*** In binary groups you can use a special binary minor mode:
*** Groups can be grouped in a folding topic hierarchy.
- (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
+ (add-hook 'gnus-group-mode-hook #'gnus-topic-mode)
*** Gnus can re-send and bounce mail.
*** Groups can now have a score, and bubbling based on entry frequency
is possible.
- (add-hook 'gnus-summary-exit-hook 'gnus-summary-bubble-group)
+ (add-hook 'gnus-summary-exit-hook #'gnus-summary-bubble-group)
*** Groups can be process-marked, and commands can be performed on
groups of groups.
*** Groups can be sorted according to many criteria.
- For instance: (setq gnus-group-sort-function 'gnus-group-sort-by-rank)
+ For instance: (setq gnus-group-sort-function #'gnus-group-sort-by-rank)
*** New group parameters have been introduced to set list-address and
expiration times.
*** Article headers can be buttonized.
- (add-hook 'gnus-article-display-hook 'gnus-article-add-buttons-to-head)
+ (add-hook 'gnus-article-display-hook #'gnus-article-add-buttons-to-head)
*** All mail backends support fetching articles by Message-ID.
*** Duplicate mail can now be treated properly. See the
-`nnmail-treat-duplicates' variable.
+'nnmail-treat-duplicates' variable.
*** All summary mode commands are available directly from the article
buffer.
-*** Frames can be part of `gnus-buffer-configuration'.
+*** Frames can be part of 'gnus-buffer-configuration'.
*** Mail can be re-scanned by a daemonic process.
*** A clean copy of the current article is always stored in a separate
buffer to allow easier treatment.
-*** Gnus can suggest where to save articles. See `gnus-split-methods'.
+*** Gnus can suggest where to save articles. See 'gnus-split-methods'.
*** Gnus doesn't have to do as much prompting when saving.
*** Boring headers can be hidden.
- (add-hook 'gnus-article-display-hook 'gnus-article-hide-boring-headers)
+ (add-hook 'gnus-article-display-hook #'gnus-article-hide-boring-headers)
*** Default scoring values can now be set from the menu bar.
** The variable print-length applies to printing vectors and bitvectors,
as well as lists.
-** The new function keymap-parent returns the parent keymap
+** The new function 'keymap-parent' returns the parent keymap
of a given keymap.
-** The new function set-keymap-parent specifies a new parent for a
+** The new function 'set-keymap-parent' specifies a new parent for a
given keymap. The arguments are KEYMAP and PARENT. PARENT must be a
keymap or nil.
which the minibuffer window expands to show as many lines as the
minibuffer contains.
-** `title' frame parameter and resource.
+** 'title' frame parameter and resource.
-The `title' X resource now specifies just the frame title, nothing else.
+The 'title' X resource now specifies just the frame title, nothing else.
It does not affect the name used for looking up other X resources.
-It works by setting the new `title' frame parameter, which likewise
+It works by setting the new 'title' frame parameter, which likewise
affects just the displayed title of the frame.
-The `name' parameter continues to do what it used to do:
+The 'name' parameter continues to do what it used to do:
it specifies the frame name for looking up X resources,
and also serves as the default for the displayed title
-when the `title' parameter is unspecified or nil.
+when the 'title' parameter is unspecified or nil.
** Emacs now uses the X toolkit by default, if you have a new
enough version of X installed (X11R5 or newer).
recover-session.
You can turn off the writing of these files by setting
-auto-save-list-file-name to nil. If you do this, M-x recover-session
+'auto-save-list-file-name' to nil. If you do this, M-x recover-session
will not work.
Some previous Emacs versions failed to delete these files even on
** Changes to Version Control (VC)
-There is a new variable, vc-follow-symlinks. It indicates what to do
+There is a new variable, 'vc-follow-symlinks'. It indicates what to do
when you visit a link to a file that is under version control.
Editing the file through the link bypasses the version control system,
which is dangerous and probably not what you want.
If this variable is t, VC follows the link and visits the real file,
-telling you about it in the echo area. If it is `ask' (the default),
+telling you about it in the echo area. If it is 'ask' (the default),
VC asks for confirmation whether it should follow the link. If nil,
the link is visited and a warning displayed.
of local users plus your aliases. Additionally, if your site provides
a mail directory or a specific host to use for any unrecognized user
name, you can arrange to query that host for completion also. (See the
-documentation of variables `mail-directory-process' and
-`mail-directory-stream'.)
+documentation of variables 'mail-directory-process' and
+'mail-directory-stream'.)
-** A greatly extended sgml-mode offers new features such as (to be configured)
+** A greatly extended 'sgml-mode' offers new features such as (to be configured)
skeletons with completing read for tags and attributes, typing named
characters including optionally all 8bit characters, making tags invisible
with optional alternate display text, skipping and deleting tag(pair)s.
Note: since Emacs' syntax feature cannot limit the special meaning of ', " and
- to inside <>, for some texts the result, especially of font locking, may be
-wrong (see `sgml-specials' if you get wrong results).
+wrong (see 'sgml-specials' if you get wrong results).
-The derived html-mode configures this with tags and attributes more or
+The derived 'html-mode' configures this with tags and attributes more or
less HTML3ish. It also offers optional quick keys like C-c 1 for
-headline or C-c u for unordered list (see `html-quick-keys'). Edit /
+headline or C-c u for unordered list (see 'html-quick-keys'). Edit /
Text Properties / Face or M-g combinations create tags as applicable.
Outline minor mode is supported and level 1 font-locking tries to
fontify tag contents (which only works when they fit on one line, due
to a limitation in font-lock).
-External viewing via browse-url can occur automatically upon saving.
+External viewing via 'browse-url' can occur automatically upon saving.
** M-x imenu-add-to-menubar now adds to the menu bar for the current
buffer only. If you want to put an Imenu item in the menu bar for all
(bibtex-close-entry) after you have inserted or modified it.
The default value of bibtex-maintain-sorted-entries is nil.
-*** Function `show-all' is no longer bound to a key, since C-u C-c C-q
+*** Function 'show-all' is no longer bound to a key, since C-u C-c C-q
does the same job.
*** Entries with quotes inside quote-delimited fields (as `author =
Font Lock mode can be turned on globally, in buffers that support it, by the
new command global-font-lock-mode. You can use the new variable
-font-lock-global-modes to control which modes have Font Lock mode automagically
-turned on. By default, this variable is set so that Font Lock mode is turned
-on globally where the buffer mode supports it.
+'font-lock-global-modes' to control which modes have Font Lock mode
+automagically turned on. By default, this variable is set so that
+Font Lock mode is turned on globally where the buffer mode supports it.
For example, to automagically turn on Font Lock mode where supported, put:
- (global-font-lock-mode t)
+ (global-font-lock-mode t)
in your ~/.emacs.
In Font Lock mode, editing a line automatically refontifies that line only.
However, if your change alters the syntactic context for following lines,
those lines remain incorrectly fontified. To refontify them, use the new
-command M-g M-g (font-lock-fontify-block).
+command M-g M-g ('font-lock-fontify-block').
In certain major modes, M-g M-g refontifies the entire current function.
-(The variable font-lock-mark-block-function controls how to find the
+(The variable 'font-lock-mark-block-function' controls how to find the
current function.) In other major modes, M-g M-g refontifies 16 lines
above and below point.
** Follow mode
-Follow mode is a new minor mode combining windows showing the same
+'follow-mode' is a new minor mode combining windows showing the same
buffer into one tall "virtual window". The windows are typically two
side-by-side windows. Follow mode makes them scroll together as if
they were a unit. To use it, go to a frame with just one window,
normal hooks.
** Simula mode now has a menu containing the most important commands.
-The new command simula-indent-exp is bound to C-M-q.
+The new command 'simula-indent-exp' is bound to C-M-q.
** etags can now handle programs written in Erlang. Files are
recognized by the extensions .erl and .hrl. The tagged lines are
restricted functionality on MS-DOS, now work. The most important ones
are:
-**** Printing (both with `M-x lpr-buffer' and with `ps-print' package)
+**** Printing (both with `M-x lpr-buffer' and with 'ps-print' package)
now works.
-**** `Ediff' works (in a single-frame mode).
+**** 'Ediff' works (in a single-frame mode).
**** `M-x display-time' can be used on MS-DOS (due to the new
implementation of Emacs timers, see below).
-**** `Dired' supports Unix-style shell wildcards.
+**** 'Dired' supports Unix-style shell wildcards.
-**** The `c-macro-expand' command now works as on other platforms.
+**** The 'c-macro-expand' command now works as on other platforms.
**** `M-x recover-session' works.
**** `M-x list-colors-display' displays all the available colors.
-**** The `TPU-EDT' package works.
+**** The 'TPU-EDT' package works.
\f
* Lisp changes in Emacs 19.31.
** Change in system-type and system-configuration values.
-The value of system-type on a Linux-based GNU system is now `lignux',
-not `linux'. This means that some programs which use `system-type'
-need to be changed. The value of `system-configuration' will also
+The value of system-type on a Linux-based GNU system is now 'lignux',
+not 'linux'. This means that some programs which use 'system-type'
+need to be changed. The value of 'system-configuration' will also
be different.
-It is generally recommended to use `system-configuration' rather
-than `system-type'.
+It is generally recommended to use 'system-configuration' rather
+than 'system-type'.
See <https://www.gnu.org/gnu/linux-and-gnu.html> for more about this.
-** The functions shell-command and dired-call-process
+** The functions 'shell-command' and 'dired-call-process'
now run file name handlers for default-directory, if it has them.
** Undoing the deletion of text now restores the positions of markers
no longer use a separate process. Therefore, they now work more
reliably and can be used for shorter time delays.
-The new function run-with-timer is a convenient way to set up a timer
+The new function 'run-with-timer' is a convenient way to set up a timer
to run a specified amount of time after the present. A call looks
like this:
within SECONDS seconds, it returns the answer that the user gave.
Otherwise it gives up after SECONDS seconds, and returns DEFAULT-VALUE.
-** Minor change to `encode-time': you can now pass more than seven
+** Minor change to 'encode-time': you can now pass more than seven
arguments. If you do that, the first six arguments have the usual
meaning, the last argument is interpreted as the time zone, and the
arguments in between are ignored.
-This means that it works to use the list returned by `decode-time' as
-the list of arguments for `encode-time'.
+This means that it works to use the list returned by 'decode-time' as
+the list of arguments for 'encode-time'.
** The default value of load-path now includes the directory
/usr/local/share/emacs/VERSION/site-lisp In addition to
for each operating system. Here is an example of use, from the file
completions.el:
-(defvar save-completions-file-name
- (convert-standard-filename "~/.completions")
- "*The filename to save completions to.")
+ (defvar save-completions-file-name
+ (convert-standard-filename "~/.completions")
+ "*The filename to save completions to.")
This sets the variable save-completions-file-name to a value that
depends on the operating system, because the definition of
** When a process is deleted, this no longer disconnects the process
marker from its buffer position.
-** The variable garbage-collection-messages now controls whether
+** The variable 'garbage-collection-messages' now controls whether
Emacs displays a message at the beginning and end of garbage collection.
The default is nil, meaning there are no messages.
-** The variable debug-ignored-errors specifies certain kinds of errors
+** The variable 'debug-ignored-errors' specifies certain kinds of errors
that should not enter the debugger. Its value is a list of error
condition symbols and/or regular expressions. If the error has any
of the condition symbols listed, or if any of the regular expressions
This variable is initialized to match certain common but uninteresting
errors that happen often during editing.
-** The new function error-message-string converts an error datum
+** The new function 'error-message-string' converts an error datum
into its error message. The error datum is what condition-case
puts into the variable, to describe the error that happened.
** Anything that changes which buffer appears in a given window
now runs the window-scroll-functions for that window.
-** The new function get-buffer-window-list returns a list of windows displaying
-a buffer. The function is called with the buffer (a buffer object or a buffer
-name) and two optional arguments specifying the minibuffer windows and frames
-to search. Therefore this function takes optional args like next-window etc.,
-and not get-buffer-window.
+** The new function 'get-buffer-window-list' returns a list of windows
+displaying a buffer. The function is called with the buffer (a buffer
+object or a buffer name) and two optional arguments specifying the
+minibuffer windows and frames to search.
+Therefore this function takes optional args like 'next-window' etc.,
+and not 'get-buffer-window'.
-** buffer-substring now runs the hook buffer-access-fontify-functions,
+** 'buffer-substring' now runs the hook 'buffer-access-fontify-functions',
calling each function with two arguments--the range of the buffer
-being accessed. buffer-substring-no-properties does not call them.
+being accessed. 'buffer-substring-no-properties' does not call them.
If you use this feature, you should set the variable
-buffer-access-fontified-property to a non-nil symbol, which is a
+'buffer-access-fontified-property' to a non-nil symbol, which is a
property name. Then, if all the characters in the buffer range have a
-non-nil value for that property, the buffer-access-fontify-functions
+non-nil value for that property, the 'buffer-access-fontify-functions'
are not called. When called, these functions should put a non-nil
property on the text that they fontify, so that they won't get called
over and over for the same text.
** Changes in lisp-mnt.el
*** The lisp-mnt package can now recognize file headers that are written
-in the formats used by the `what' command and the RCS `ident' command:
+in the formats used by the 'what' command and the RCS 'ident' command:
;; @(#) HEADER: text
;; $HEADER: text $
** If you type a M-x command that has an equivalent key binding,
the equivalent is shown in the minibuffer before the command executes.
This feature is enabled by default for the sake of beginning users.
-You can turn the feature off by setting suggest-key-bindings to nil.
+You can turn the feature off by setting 'suggest-key-bindings' to nil.
** The menu bar is now visible on text-only terminals. To choose a
command from the menu bar when you have no mouse, type M-`
-(Meta-Backquote) or F10. To turn off menu bar display,
-do (menu-bar-mode -1).
+(Meta-Backquote) or F10. To turn off menu bar display, do:
+
+ (menu-bar-mode -1).
** Whenever you invoke a minibuffer, it appears in the minibuffer
window that the current frame uses.
*** C-mouse-1 now once again provides a menu of buffers to select.
S-mouse-1 is now the way to select a default font for the frame.
-*** There is a new mouse-scroll-min-lines variable to control the
+*** There is a new 'mouse-scroll-min-lines' variable to control the
minimum number of lines scrolled by dragging the mouse outside a
window's edge.
** Filling changes.
-*** If the variable colon-double-space is non-nil, the explicit fill
+*** If the variable 'colon-double-space' is non-nil, the explicit fill
commands put two spaces after a colon.
*** Auto-Fill mode now supports Adaptive Fill mode just as the
-explicit fill commands do. The variable adaptive-fill-regexp
+explicit fill commands do. The variable 'adaptive-fill-regexp'
specifies a regular expression to match text at the beginning of
a line that should be the fill prefix.
be copied to additional lines.
Whether indented lines are paragraph lines depends on the value of the
-variable paragraph-start. Some major modes set this; you can set it
+variable 'paragraph-start'. Some major modes set this; you can set it
by hand or in mode hooks as well. For editing text in which paragraph
first lines are not indented, and which contains paragraphs in which
all lines are indented, you should use Indented Text mode or arrange
for paragraph-start not to match these lines.
*** You can specify more complex ways of choosing a fill prefix
-automatically by setting `adaptive-fill-function'. This function
+automatically by setting 'adaptive-fill-function'. This function
is called with point after the left margin of a line, and it should
return the appropriate fill prefix based on that line.
If it returns nil, that means it sees no fill prefix in that line.
functions have changed names.
**** The summary mode gnus-uu commands have been moved from the `C-c
-C-v' keymap to the `X' keymap.
+C-v' keymap to the 'X' keymap.
**** There can now be several summary buffers active at once.
Variables that are relevant to each summary buffer are buffer-local to
highlighting based not only on what's visible in the buffer, but on
other data structures.
-**** Old packages like `expire-kill' will no longer work.
+**** Old packages like 'expire-kill' will no longer work.
**** `C-c C-l' in the group buffer no longer switches to a different
buffer, but instead lists killed groups in the group buffer.
*** General changes (all backends).
VC directory listings (C-x v d) are now kept up to date when you do a
-vc-next-action (C-x v v) on the marked files. The `g' command updates
-the buffer properly. `=' in a VC dired buffer produces a version
+vc-next-action (C-x v v) on the marked files. The 'g' command updates
+the buffer properly. '=' in a VC dired buffer produces a version
control diff, not an ordinary diff.
*** CVS changes.
If you share RCS subdirs with other users (through symbolic links),
and you always want to work on the latest version, set
-vc-consult-headers to nil and vc-mistrust-permissions to `t'.
+vc-consult-headers to nil and vc-mistrust-permissions to 't'.
Then you see the state of the *latest* version on the mode line, not
that of your working file. When you do a check out, VC overwrites
your working file with the latest version from the master.
*** RCS customization.
-There is a new variable vc-consult-headers. If it is t (the default),
+There is a new variable 'vc-consult-headers'. If it is t (the default),
VC searches for RCS headers in working files (like `$Id$') and
determines the state of the file from them, not from the master file.
This is fast and more reliable when you use branches. (The variable
Calendar mode now has commands to produce fancy printed calendars via
LaTeX. You can ask for a calendar for one or more days, weeks, months
-or years. The commands all start with `t'; see the manual for a list
+or years. The commands all start with 't'; see the manual for a list
of them.
*** New sexp diary entry type
to turn the mode on.
-** The new pc-select package emulates the key bindings for cutting and
+** The new 'pc-select' package emulates the key bindings for cutting and
pasting, and selection of regions, found in Windows, Motif, and the
Macintosh.
-** Help buffers now use a special major mode, Help mode. This mode
-normally turns on View mode; it also provides a hook, help-mode-hook,
+** Help buffers now use a special major mode, 'help-mode'. This mode
+normally turns on View mode; it also provides a hook, 'help-mode-hook',
which you can use for other customization.
** Apropos now uses faces for enhanced legibility. It now describes
For example, to automatically turn on Font Lock mode in the *Help*
buffer, put:
- (add-hook 'help-mode-hook 'turn-on-font-lock)
+ (add-hook 'help-mode-hook #'turn-on-font-lock)
in your ~/.emacs.
For example, a typical keyword item might be:
- ("\\<anchor\\>" (0 anchor-face))
+ ("\\<anchor\\>" (0 anchor-face))
which fontifies each occurrence of the discrete word "anchor" in the value of
the variable anchor-face. However, the highlighting information can be used to
fontify text that is anchored to the word "anchor". For example:
- ("\\<anchor\\>" (0 anchor-face) ("\\=[ ,]*\\(item\\)" nil nil (1 item-face)))
+ ("\\<anchor\\>" (0 anchor-face) ("\\=[ ,]*\\(item\\)" nil nil (1 item-face)))
which fontifies each occurrence of "anchor" as above, but for each occurrence
of "anchor", each occurrence of "item", in any following comma separated list,
lists of mode names and values. For example, to use the above mentioned level
3 decoration for buffers in C/C++ modes, and default decoration otherwise, put:
- (setq font-lock-maximum-decoration '((c-mode . 3) (c++-mode . 3)))
+ (setq font-lock-maximum-decoration '((c-mode . 3) (c++-mode . 3)))
in your ~/.emacs. Maximum buffer size values for individual modes are
specified in the same way with the variable font-lock-maximum-size.
*** Font Lock configuration
The mechanism to provide default settings for Font Lock mode are the variables
-font-lock-defaults and font-lock-maximum-decoration. Typically, you should
+'font-lock-defaults' and 'font-lock-maximum-decoration'. Typically, you should
only need to change the value of font-lock-maximum-decoration. However, to
support Font Lock mode for buffers in modes that currently do not support Font
Lock mode, you should set a buffer local value of font-lock-defaults for that
mode, typically via its mode hook.
These variables are used by Font Lock mode to set the values of the variables
-font-lock-keywords, font-lock-keywords-only, font-lock-syntax-table,
-font-lock-beginning-of-syntax-function and font-lock-keywords-case-fold-search.
+'font-lock-keywords', 'font-lock-keywords-only', 'font-lock-syntax-table',
+'font-lock-beginning-of-syntax-function'
+and 'font-lock-keywords-case-fold-search'.
You need not set these variables directly, and should not set them yourself
since the underlining mechanism may change in future.
archive files (files whose names end with .arc, .lzh, .zip, and .zoo).
** You can automatically update the years in copyright notice by
-means of (add-hook 'write-file-hooks 'copyright-update).
+means of
+
+ (add-hook 'write-file-hooks #'copyright-update).
+
Optionally it can update the GPL version as well.
** Scripts of various languages (Shell, AWK, Perl, makefiles ...) can
be automatically provided with a magic number and be made executable
by their respective modes under control of various user variables.
-The mode must call (executable-set-magic "perl") or
+The mode must call 'executable-set-magic', such as
(executable-set-magic "make" "-f"). The latter for example has no
effect on [Mm]akefile.
command C-c ! executes the region, and optionally beginning of script
as well, by passing them to the shell.
-Cases such as `sh' being a `bash' are now accounted for.
+Cases such as 'sh' being a 'bash' are now accounted for.
Fontification now also does variables, the magic number and all
-builtin commands. Shell script mode no longer mingles `tab-width' and
-indentation style. The variable `sh-tab-width' has been renamed to
-`sh-indentation'. Empty lines are now indented like previous
+builtin commands. Shell script mode no longer mingles 'tab-width' and
+indentation style. The variable 'sh-tab-width' has been renamed to
+'sh-indentation'. Empty lines are now indented like previous
non-empty line, rather than just previous line.
The annoying $ variable prompting has been eliminated. Instead, shell
-script mode uses `comint-dynamic-completion' for commands, variables
+script mode uses 'comint-dynamic-completion' for commands, variables
and filenames.
** Two-column mode now automatically scrolls both buffers together,
** The autoinsert insert facility for prefilling empty files as soon
as they are found has been extended to accommodate skeletons or calling
-functions. See the function auto-insert.
+functions. See the function 'auto-insert'.
** TPU-edt Changes
** etags has now the ability to tag Perl files. They are recognized
either by the .pm and .pl suffixes or by a first line which starts
with `#!' and specifies a Perl interpreter. The tagged lines are
-those beginning with the `sub' keyword.
+those beginning with the 'sub' keyword.
New suffixes recognized are .hpp for C++; .f90 for Fortran; .bib,
.ltx, .TeX for TeX (.bbl, .dtx removed); .ml for Lisp; .prolog for
keyboard-translate-table
case-table
-The function `char-table-subtype' returns the subtype of a char-table.
+The function 'char-table-subtype' returns the subtype of a char-table.
You cannot alter the subtype of an existing char-table.
A char-table has an element for each character code. It also has some
"extra slots". The number of extra slots depends on the subtype and
their use depends on the subtype. (Each subtype symbol has a
-`char-table-extra-slots' property that says how many extra slots to
-make.) Use (char-table-extra-slot TABLE N) to access extra slot N and
-(set-char-table-extra-slot TABLE N VALUE) to store VALUE in slot N.
+'char-table-extra-slots' property that says how many extra slots to
+make.) Use 'char-table-extra-slot' to access extra slots and
+'set-char-table-extra-slot' to store a value in a slot.
A char-table T can have a parent, which should be another char-table
P. If you look for the value in T for character C, and the table T
actually holds nil, P's element for character C is used instead.
-The functions `char-table-parent' and `set-char-table-parent'
+The functions 'char-table-parent' and 'set-char-table-parent'
let you read or set the parent of a char-table.
To scan all the values in a char-table, do not try to loop through all
possible character codes. That would work for now, but will not work
-in the future. Instead, call map-char-table. (map-char-table
+in the future. Instead, call 'map-char-table'. (map-char-table
FUNCTION TABLE) calls FUNCTION once for each character or character
set that has a distinct value in TABLE. FUNCTION gets two arguments,
RANGE and VALUE. RANGE specifies a range of TABLE that has one
Currently, RANGE is always a vector containing a single character
and it refers to that character alone. In the future, other kinds
of ranges will occur. You can set the value for a given range
-with (set-char-table-range TABLE RANGE VALUE) and examine the value
-for a range with (char-table-range TABLE RANGE).
+with 'set-char-table-range' and examine the value
+for a range with 'char-table-range'.
*** Syntax tables are now represented as char-tables.
All syntax tables other than the standard syntax table
normally have the standard syntax table as their parent.
-Their subtype is `syntax-table'.
+Their subtype is 'syntax-table'.
*** Display tables are now represented as char-tables.
-Their subtype is `display-table'.
+Their subtype is 'display-table'.
*** Case tables are now represented as char-tables.
-Their subtype is `case-table'.
+Their subtype is 'case-table'.
*** The value of keyboard-translate-table may now be a char-table
instead of a string. Normally the char-tables used for this purpose
-have the subtype `keyboard-translate-table', but that is not required.
+have the subtype 'keyboard-translate-table', but that is not required.
*** A new data type called a bool-vector is a vector of values
that are either t or nil. To create one, do
text is inserted at the place where the marker points. This is called
the "insertion type" of the marker.
-To set the insertion type, do (set-marker-insertion-type MARKER TYPE).
+To set the insertion type, use 'set-marker-insertion-type'.
If TYPE is t, it means the marker advances when text is inserted. If
TYPE is nil, it means the marker does not advance. (In Emacs 19.29,
markers did not advance.)
-The function marker-insertion-type reports the insertion type of a
-given marker. The function copy-marker takes a second argument TYPE
+The function 'marker-insertion-type' reports the insertion type of a
+given marker. The function 'copy-marker' takes a second argument TYPE
which specifies the insertion type of the new copied marker.
** When you create an overlay, you can specify the insertion type of
the beginning and of the end. To do this, you can use two new
-arguments to make-overlay: front-advance and rear-advance.
+arguments to 'make-overlay': front-advance and rear-advance.
-** The new function overlays-in returns a list of the overlays that
+** The new function 'overlays-in' returns a list of the overlays that
overlap a specified range of the buffer. The returned list includes
empty overlays at the beginning of this range, as well as within the
range.
-** The new hook window-scroll-functions is run when a window has been
+** The new hook 'window-scroll-functions' is run when a window has been
scrolled. The functions in this list are called just before
redisplay, after the new window-start has been computed. Each function
is called with two arguments--the window that has been scrolled, and its
This hook is useful for on-the-fly fontification and other features
that affect how the redisplayed text will look when it is displayed.
-The window-end value of the window is not valid when these functions
+The 'window-end' value of the window is not valid when these functions
are called. The computation of window-end is byproduct of actual
redisplay of the window contents, which means it has not yet happened
when the hook is run. Computing window-end specially in advance for
The hook functions can determine where the text on the window will end
by calling vertical-motion starting with the window-start position.
-** The new hook redisplay-end-trigger-functions is run whenever
+** The new hook 'redisplay-end-trigger-functions' is run whenever
redisplay in window uses text that extends past a specified end
trigger position. You set the end trigger position with the function
-set-window-redisplay-end-trigger. The functions are called with two
+'set-window-redisplay-end-trigger'. The functions are called with two
arguments: the window, and the end trigger position. Storing nil for
the end trigger position turns off the feature, and the trigger value
is automatically reset to nil just after the hook is run.
-You can use the function window-redisplay-end-trigger to read a
+You can use the function 'window-redisplay-end-trigger' to read a
window's current end trigger value.
-** The new function insert-file-contents-literally inserts the
+** The new function 'insert-file-contents-literally' inserts the
contents of a file without any character set translation or decoding.
-** The new function safe-length computes the length of a list.
+** The new function 'safe-length' computes the length of a list.
It never gets an error--it treats any non-list like nil.
If given a circular list, it returns an upper bound for the number
of elements before the circularity.
matching `foo \(ba*r\)' calling replace-match with 1 as SUBEXP means
to replace just the text that matched `\(ba*r\)'.
-** The new keymap special-event-map defines bindings for certain
+** The new keymap 'special-event-map' defines bindings for certain
events that should be handled at a very low level--as soon as they
-are read. The read-event function processes these events itself,
+are read. The 'read-event' function processes these events itself,
and never returns them.
Events that are handled in this way do not echo, they are never
grouped into key sequences, and they never appear in the value of
-last-command-event or (this-command-keys). They do not discard a
-numeric argument, they cannot be unread with unread-command-events,
+'last-command-event' or (this-command-keys). They do not discard a
+numeric argument, they cannot be unread with 'unread-command-events',
they may not appear in a keyboard macro, and they are not recorded
in a keyboard macro while you are defining one.
-These events do, however, appear in last-input-event immediately after
+These events do, however, appear in 'last-input-event' immediately after
they are read, and this is the way for the event's definition to find
the actual event.
arguments; for example, day 0 means the day preceding the given month.
Also, the ZONE argument can now be a TZ-style string.
-** command-execute and call-interactively now accept an optional third
+** 'command-execute' and 'call-interactively' now accept an optional third
argument KEYS. If specified and non-nil, this specifies the key
sequence containing the events that were used to invoke the command.
as some that did not exist in the menu bar menus before.
** Emacs can now display on more than one X display at the same time.
-Use the command make-frame-on-display to create a frame, specifying
+Use the command 'make-frame-on-display' to create a frame, specifying
which display to use.
** M-x talk-connect sets up a multi-user talk connection
or 134,217,727.
** When you start Emacs, you can now specify option names in
-long GNU form (starting with `--') and you can abbreviate the names.
+long GNU form (starting with '--') and you can abbreviate the names.
You can now specify the options in any order.
The previous requirements about the order of options
You can make incremental search deactivate the mark once again with
this expression.
- (add-hook 'isearch-mode-hook 'deactivate-mark)
+ (add-hook 'isearch-mode-hook #'deactivate-mark)
** C-delete now deletes a word backwards. This is for compatibility
with some editors in the PC world. (This key is not available on
(global-set-key "\e\e" 'eval-expression)
** The f1 function key is now equivalent to the help key. This is
-done with key-translation-map; delete the binding for f1 in that map
+done with 'key-translation-map'; delete the binding for f1 in that map
if you want to use f1 for something else.
** Mouse-3, in the simplest case, still sets the region. But now, it
*** All fill functions now indent every line to the left-margin. If
there is also a fill-prefix, that goes after the margin indentation.
-*** Open-line and newline also make sure that the lines they create
+*** 'open-line' and 'newline' also make sure that the lines they create
are indented to the left margin.
*** It also allows you to set the "justification" of the region:
whether it should be centered, flush right, and so forth. The fill
-functions (including auto-fill-mode) will maintain the justification
+functions (including 'auto-fill-mode') will maintain the justification
and indentation that you request.
-*** The new function `list-colors-display' shows you what colors are
+*** The new function 'list-colors-display' shows you what colors are
available. This is also accessible from the C-mouse-2 menu.
** You can now save and load files including their faces and other
character.
** Echo area messages are now logged in the "*Messages*" buffer. The
-size of this buffer is limited to message-log-max lines.
+size of this buffer is limited to 'message-log-max' lines.
** RET in various special modes for read-only buffers that contain
lists of items now selects the item point is on. These modes include
(In Info, RET follows the reference near point; in completion list
buffers, RET chooses the completion around point.)
-** set-background-color now updates the modeline face in a special
+** 'set-background-color' now updates the modeline face in a special
way. If that face was previously set up to be reverse video, the
reverse of the default face, then set-background-color updates it so
that it remains the reverse of the default face.
-** The functions raise-frame and lower-frame are now commands.
+** The functions 'raise-frame' and 'lower-frame' are now commands.
When used interactively, they apply to the selected frame.
** M-x buffer-menu now displays the buffer list in the selected window.
alter the variable if it already has a non-void value.
** In completion list buffers, the left and right arrow keys run the
-new commands previous-completion and next-completion. They move one
+new commands 'previous-completion' and 'next-completion'. They move one
completion at a time.
-** While doing completion in the minibuffer, the `prior' or `pageup'
+** While doing completion in the minibuffer, the 'prior' or 'pageup'
key switches to the completion list window.
** When you exit the minibuffer with empty contents, the empty string
is not put in the minibuffer history.
-** The default buffer for insert-buffer is now the "first" buffer
+** The default buffer for 'insert-buffer' is now the "first" buffer
other than the current one. If you have more than one window, this
is a buffer visible in another window. (Usually it is the buffer
that C-M-v would scroll.)
gomoku-human-plays is on C-c C-p, gomoku-human-resigns is on C-c C-r,
and gomoku-emacs-plays is on C-c C-e.
-*** In the Outline mode defined in allout.el,
-outline-rebullet-current-heading is now on C-c *.
+*** In the Outline mode defined in 'allout',
+'outline-rebullet-current-heading' is now on C-c *.
** M-s in Info now searches through the nodes of the Info file,
just like s. The alias M-s was added so that you can use the same
** M-x compare-windows now pushes mark in both windows before
it starts moving point.
-** There are two new commands in Dired, A (dired-do-search)
-and Q (dired-do-query-replace). These are similar to tags-search and
+** There are two new commands in Dired, A ('dired-do-search')
+and Q ('dired-do-query-replace'). These are similar to tags-search and
tags-query-replace, but instead of searching the list of files that
appears in a tags table, they search all the files marked in Dired.
** Changes to dabbrev.
-A new function, `dabbrev-completion' (bound to M-C-/), expands the
+A new function, 'dabbrev-completion' (bound to M-C-/), expands the
unique part of an abbreviation.
Dabbrev now looks for expansions in other buffers, looks for symbols
*** Bookmarks can have annotations; type "C-h m" after doing
"M-x list-bookmarks", for more information on annotations.
-*** The bookmark-jump popup menu function is now `bookmark-menu-jump', for
+*** The 'bookmark-jump' popup menu function is now 'bookmark-menu-jump', for
those who bind it to a mouse click.
*** The default bookmarks file name is now "~/.emacs.bmk". If you
variable symbols. Also ++ and -- which mean 2* positive and negative
c-basic-offset respectively.
-*** New variable, c-recognize-knr-p, which controls whether K&R C
+*** New variable, 'c-recognize-knr-p', which controls whether K&R C
constructs will be recognized. Trying to recognize K&R constructs is a
time hog so if you're programming strictly in ANSI C, set this
variable to nil (it should already be nil in c++-mode).
-*** New variable, c-hanging-comment-ender-p for controlling
+*** New variable, 'c-hanging-comment-ender-p' for controlling
c-fill-paragraph's behavior.
*** New syntactic symbol: statement-case-open. This is assigned to lines
containing an open brace just after a case/default label.
-*** New variable, c-progress-interval, which controls minibuffer update
+*** New variable, 'c-progress-interval', which controls minibuffer update
message displays during long re-indentation. This is a new feature
which prints percentage complete messages at specified intervals.
** icomplete.el now works more like a minor mode. Use M-x icomplete-mode
to turn it on and off.
-Icomplete now supports an `icomplete-minibuffer-setup-hook', which is
+Icomplete now supports an 'icomplete-minibuffer-setup-hook', which is
run on minibuffer setup whenever icompletion will be occurring. This
hook can be used to customize interoperation of icomplete with other
minibuffer-specific packages, eg rsz-mini. See the doc string for
** Ediff change.
-Use ediff-revision instead of vc-ediff. It also replaces rcs-ediff,
+Use 'ediff-revision' instead of 'vc-ediff'. It also replaces rcs-ediff,
for those who use that; if you want to use a version control package
other than vc.el, you must set the variable
-ediff-version-control-package to specify which package.
+'ediff-version-control-package' to specify which package.
** VC now supports branches with RCS.
** VC now supports CVS as well as RCS and SCCS.
Since there are no locks in CVS, some things behave slightly
-different when the backend is CVS. When vc-next-action is invoked
+different when the backend is CVS. When 'vc-next-action' is invoked
in a directory handled by CVS, it does the following:
If the file is not already registered, this registers it for version
If vc-next-action changes the repository file, it asks you
whether to merge in the changes into your working copy.
-vc-directory, when started in a CVS file hierarchy, reports
+'vc-directory', when started in a CVS file hierarchy, reports
all files that are modified (and thus need to be committed).
(When the backend is RCS or SCCS vc-directory reports all
locked files).
(setq vc-master-templates (delq 'vc-find-cvs-master vc-master-templates))
-or by setting vc-handle-cvs to nil.
+or by setting 'vc-handle-cvs' to nil.
This may be desirable if you run a non-standard version of CVS, or
if CVS was compiled with FORCE_USE_EDITOR or (possibly)
like the command comint-strip-ctrl-m, this can be run automatically
during process output by doing this:
-(add-hook 'comint-output-filter-functions
- 'comint-truncate-buffer)
+ (add-hook 'comint-output-filter-functions
+ #'comint-truncate-buffer)
** Telnet mode buffer name changed.
entire man page is indented, the indentation is removed.
The user option names that used to end in -p now end in -flag. The
-new names are: Man-reuse-okay-flag, Man-downcase-section-letters-flag,
-Man-circular-pages-flag. The Man-notify user option has been renamed to
-Man-notify-method and accepts one more value, `pushy', that just
+new names are: 'Man-reuse-okay-flag', 'Man-downcase-section-letters-flag',
+'Man-circular-pages-flag'. The 'Man-notify' user option has been renamed to
+'Man-notify-method' and accepts one more value, 'pushy', that just
switches the current buffer to the manpage buffer, without switching
frames nor changing your windows configuration.
-A new user option Man-fontify-manpage-flag disables fontification
+A new user option 'Man-fontify-manpage-flag' disables fontification
(thus speeding up man) when set to nil. Default is to fontify if a
-window system is used. Two new user options Man-overstrike-face
-(default 'bold) and Man-underline-face (default 'underline) can be set
+window system is used. Two new user options 'Man-overstrike-face'
+(default 'bold) and 'Man-underline-face' (default 'underline) can be set
to the preferred faces to be used for the words that man overstrikes
and underlines. Useful for those who like colored man pages.
-Two new interactive functions are provided: Man-cleanup-manpage and
-Man-fontify-manpage. Both can be used on a buffer that contains the
+Two new interactive functions are provided: 'Man-cleanup-manpage' and
+'Man-fontify-manpage'. Both can be used on a buffer that contains the
output of a `rsh host man manpage' command, or the output of an
`nroff -man -Tman manpage' command to make them readable.
Man-cleanup-manpage is faster, but does not fontify.
-** The new function modify-face makes it easy to specify
+** The new function 'modify-face' makes it easy to specify
all the attributes of a face, all at once.
** Faces now support background stippling.
-Use the command set-face-stipple to specify the stipple-pattern for a
-face. Use face-stipple to access the specified stipple pattern. The
+Use the command 'set-face-stipple' to specify the stipple-pattern for a
+face. Use 'face-stipple' to access the specified stipple pattern. The
existing face functions now handle the stipple pattern when
appropriate.
*** Fontification
-Two new default faces are provided; `font-lock-variable-name-face' and
-`font-lock-reference-face'. The face `font-lock-doc-string-face' has
+Two new default faces are provided; 'font-lock-variable-name-face' and
+'font-lock-reference-face'. The face 'font-lock-doc-string-face' has
been removed since it is the same as the existing
-`font-lock-string-face'. Where appropriate, fontification
+'font-lock-string-face'. Where appropriate, fontification
automatically uses these new faces.
-Fontification via commands `font-lock-mode' and
-`font-lock-fontify-buffer' is now cleanly interruptible (i.e., with
+Fontification via commands 'font-lock-mode' and
+'font-lock-fontify-buffer' is now cleanly interruptible (i.e., with
C-g). If you interrupt during the fontification process, the buffer
remains in its previous modified state and all highlighting is removed
from the buffer.
more. Other modes are faster/more extensive/more discriminatory, or a
combination of these.
-To enable Font Lock mode, add the new function `turn-on-font-lock' in
+To enable Font Lock mode, add the new function 'turn-on-font-lock' in
one of the following ways:
- (add-hook 'c-mode-hook 'turn-on-font-lock)
+ (add-hook 'c-mode-hook #'turn-on-font-lock)
Or for any visited file with:
- (add-hook 'find-file-hooks 'turn-on-font-lock)
+ (add-hook 'find-file-hooks #'turn-on-font-lock)
*** Supports color and grayscale displays
bold, italic and underline, and display type and background mode) can
be controlled either from Emacs Lisp or X resources.
-See the new variables `font-lock-display-type' and
-`font-lock-face-attributes'.
+See the new variables 'font-lock-display-type' and
+'font-lock-face-attributes'.
*** Supports more modes
The following modes are directly supported:
-ada-mode, asm-mode, bibtex-mode, c++-c-mode, c++-mode, c-mode,
-change-log-mode, compilation-mode, dired-mode, emacs-lisp-mode,
-fortran-mode, latex-mode, lisp-mode, mail-mode, makefile-mode,
-outline-mode, pascal-mode, perl-mode, plain-tex-mode, rmail-mode,
-rmail-summary-mode, scheme-mode, shell-mode, slitex-mode, tex-mode,
-texinfo-mode.
+'ada-mode', 'asm-mode', 'bibtex-mode', 'c++-c-mode', 'c++-mode', 'c-mode',
+'change-log-mode', 'compilation-mode', 'dired-mode', 'emacs-lisp-mode',
+'fortran-mode', 'latex-mode', 'lisp-mode', 'mail-mode', 'makefile-mode',
+'outline-mode', 'pascal-mode', 'perl-mode', 'plain-tex-mode', 'rmail-mode',
+'rmail-summary-mode', 'scheme-mode', 'shell-mode', 'slitex-mode', 'tex-mode',
+'texinfo-mode'.
-See the new variables `font-lock-defaults-alist' and
-`font-lock-defaults'.
+See the new variables 'font-lock-defaults-alist' and
+'font-lock-defaults'.
Some modes support different levels of fontification. You can choose
to use the minimum or maximum available decoration by changing the
-value of the new variable `font-lock-maximum-decoration'.
+value of the new variable 'font-lock-maximum-decoration'.
Programmers are urged to make available to the community their own
keywords for modes not yet supported. See font-lock.el for
To use this package, put in your `~/.emacs':
- (add-hook 'font-lock-mode-hook 'turn-on-fast-lock)
+ (add-hook 'font-lock-mode-hook #'turn-on-fast-lock)
-To control the use of caches, see the documentation for `fast-lock-mode'.
+To control the use of caches, see the documentation for 'fast-lock-mode'.
-** You can tell pop-to-buffer to display certain buffers in the selected
+** You can tell 'pop-to-buffer' to display certain buffers in the selected
window rather than finding some other window to display them in.
There are two variables you can use to specify these buffers.
-same-window-buffer-names holds a list of buffer names; if a buffer's
+'same-window-buffer-names' holds a list of buffer names; if a buffer's
name appears in this list, pop-to-buffer puts it in the selected window.
-same-window-regexps holds a list of regexps--if any one of them
+'same-window-regexps' holds a list of regexps--if any one of them
matches a buffer's name, then pop-to-buffer puts that buffer in the
selected window.
and others. By removing elements from these variables, you can ask
Emacs to display those buffers in separate windows.
-** The special-display-buffer-names and special-display-regexps lists
+** The 'special-display-buffer-names' and 'special-display-regexps' lists
have been generalized. An element may now be a list. The car of the list
is the buffer name or regular expression for matching buffer names.
arguments are ARGS.
** If the environment variable REPLYTO is set, its value is the default
-for mail-default-reply-to.
+for 'mail-default-reply-to'.
** When you send a message in Emacs, if you specify an Rmail file with
the Fcc: header field, Emacs converts the message to Rmail format
before writing it. Thus, the file never contains anything but Rmail
format messages.
-** The new variable mail-from-style controls whether the From: header
+** The new variable 'mail-from-style' controls whether the From: header
should include the sender's full name, and if so, which format to use.
-** The new variable mail-personal-alias-file specifies the name of the
+** The new variable 'mail-personal-alias-file' specifies the name of the
user's personal aliases. This defaults to the file ~/.mailrc.
mailabbrev.el used to have its own variable for this purpose
(mail-abbrev-mailrc-file). That variable is no longer used.
*** Braces are supported as field delimiters in addition to quotes.
BibTeX entries may have brace-delimited and quote-delimited fields
intermixed. The delimiters generated for new entries are specified by
-the variables bibtex-field-left-delimiter and
-bibtex-field-right-delimiter on a buffer-local basis. Those variables
+the variables 'bibtex-field-left-delimiter' and
+'bibtex-field-right-delimiter' on a buffer-local basis. Those variables
default to braces, since it is easier to put quote accented characters
(as the german umlauts) into a brace-delimited entry.
-*** The function bibtex-clean-entry can now be invoked with a prefix
+*** The function 'bibtex-clean-entry' can now be invoked with a prefix
argument. In this case, a label is automatically generated from
various fields in the record. If bibtex-clean-entry is invoked on a
record without label, a label is also generated automatically.
-Various variables (all beginning with `bibtex-autokey-') control the
-creation of that key. The variable bibtex-autokey-edit-before-use
+Various variables (all beginning with 'bibtex-autokey-') control the
+creation of that key. The variable 'bibtex-autokey-edit-before-use'
determines, if the user is allowed to edit auto-generated reference
keys before they are used.
-*** A New function bibtex-complete-string completes strings with
+*** A New function 'bibtex-complete-string' completes strings with
respect to the strings defined in this buffer and a set of predefined
strings (initialized to the string macros defined in the standard
BibTeX style files) in the same way in which ispell-complete-word
works with respect to words in a dictionary. Candidates for
bibtex-complete-string are initialized from variable
-bibtex-predefined-strings and by parsing the files found in
-bibtex-string-files for @String definitions.
+'bibtex-predefined-strings' and by parsing the files found in
+'bibtex-string-files' for @String definitions.
*** Every reference/field pair has now attached a comment which
appears in the echo area when this field is edited. These comments
should provide useful hints for BibTeX usage, especially for BibTeX
-beginners. New variable bibtex-help-message determines if these help
+beginners. New variable 'bibtex-help-message' determines if these help
messages are to appear in the minibuffer when moving to a text entry.
*** Inscriptions of menu bar changed from "Entry Types" to
*** Default value for variables bibtex-maintain-sorted-entries and
bibtex-sort-ignore-string-entries is now t.
-*** All interactive functions are renamed to begin with `bibtex-'.
+*** All interactive functions are renamed to begin with 'bibtex-'.
*** Keybindings with \C-c\C-e entry changed for unification. Often
used reference types are now on control-modified keys, mediocre used
automatically enable X support if X is installed on your machine.)
** If you use the site-init.el file to set the variable
-mail-host-address to a string in the dumped Emacs, that string becomes
-the default host address for initializing user-mail-address.
+'mail-host-address' to a string in the dumped Emacs, that string becomes
+the default host address for initializing 'user-mail-address'.
It is used instead of the value of (system-name).
\f
The old syntax is still accepted.
-*** The new function rassoc is like assoc, except that it compares the
+*** The new function 'rassoc' is like 'assoc', except that it compares the
key against the cdr of each alist element, where assoc would compare
it against the car of each alist element.
-*** The new function unintern deletes a symbol from an obarray. The
+*** The new function 'unintern' deletes a symbol from an obarray. The
first argument can be the symbol to delete, or a string giving its
name. The second argument specifies the obarray (nil means the
current default obarray).
in the obarray matching the specified string, unintern does nothing
and returns nil. If it does delete a symbol, it returns t.
-*** You can specify an alternative read function for use by load and
-eval-region by binding the variable load-read-function to some other
+*** You can specify an alternative read function for use by 'load' and
+'eval-region' by binding the variable 'load-read-function' to some other
function. This function should accept one argument just like read.
If load-read-function is nil, load and eval-region use ordinary read.
-*** The new function `type-of' takes any object as argument, and
-returns a symbol identifying the type of that object--one of `symbol',
-`integer', `float', `string', `cons', `vector', `marker', `overlay',
-`window', `buffer', `subr', `compiled-function',
-`window-configuration', `process'.
+*** The new function 'type-of' takes any object as argument, and
+returns a symbol identifying the type of that object--one of 'symbol',
+'integer', 'float', 'string', 'cons', 'vector', 'marker', 'overlay',
+'window', 'buffer', 'subr', 'compiled-function',
+'window-configuration', 'process'.
-*** When you use eval-after-load for a file that is already loaded, it
+*** When you use 'eval-after-load' for a file that is already loaded, it
executes the FORM right away. As before, if the file is not yet
loaded, it arranges to execute FORM if and when the file is loaded
later. The result is: if you have called eval-after-load for a file,
You would not want to use this in a file you edit by hand, but it is
useful for commenting out parts of machine-generated files.
-*** Two new functions, `plist-get' and `plist-put',
+*** Two new functions, 'plist-get' and 'plist-put',
allow you to modify and retrieve values from lists formatted as property-lists.
-They work like `get' and `put', but operate on any list.
-`plist-put' returns the modified property-list; you must store it
+They work like 'get' and 'put', but operate on any list.
+'plist-put' returns the modified property-list; you must store it
back where you got it.
-*** The new function add-to-list is called with two elements,
+*** The new function 'add-to-list' is called with two elements,
a variable that holds a list and a new element.
It adds the element to the list unless it is already present.
-It compares elements using `equal'. Here is an example:
+It compares elements using 'equal'. Here is an example:
-(setq foo '(a b)) => (a b)
+ (setq foo '(a b)) => (a b)
-(add-to-list 'foo 'c) => (c a b)
+ (add-to-list 'foo 'c) => (c a b)
-(add-to-list 'foo 'b) => (c a b)
+ (add-to-list 'foo 'b) => (c a b)
-foo => (c a b)
+ foo => (c a b)
** Changes in compilation.
definitions into core. Instead it creates references to the compiled
file, and brings each function's definition into core the first time
you call that function, or when you force it with the new function
-`fetch-bytecode'.
+'fetch-bytecode'.
Using the lazy loading feature has a few consequences:
will get nonsense results.
To enable the lazy loading feature, set up a non-nil file local
-variable binding for the variable `byte-compile-dynamic' in the Lisp
+variable binding for the variable 'byte-compile-dynamic' in the Lisp
source file. For example, put this on the first line:
-*-byte-compile-dynamic: t;-*-
given user in a given session.
To turn off the basic feature of referring to the file for doc
-strings, set byte-compile-dynamic-docstrings to nil. You can do this
+strings, set 'byte-compile-dynamic-docstrings' to nil. You can do this
globally, or for one source file by adding this to the first line:
-*-byte-compile-dynamic-docstrings: nil;-*-
** Strings
-*** Do not pass integer arguments to `concat' (or `vconcat' or
-`append'). We are phasing out the old unrecommended support for
+*** Do not pass integer arguments to 'concat' (or 'vconcat' or
+'append'). We are phasing out the old unrecommended support for
integers as arguments to these functions, in preparation for treating
numbers as single characters in a future release. To concatenate
-numbers in string form, use `number-to-string' first, or rewrite the
-call to use `format' instead of `concat'.
+numbers in string form, use 'number-to-string' first, or rewrite the
+call to use 'format' instead of 'concat'.
-*** The new function match-string returns the string of text matched at
+*** The new function 'match-string' returns the string of text matched at
the given parenthesized expression by the last regexp search, or nil
-if there was no match. If the last match was by `string-match' on a
+if there was no match. If the last match was by 'string-match' on a
string, the string must be given. Therefore, this function can be
-used in place of `buffer-substring' and `substring', when using
-`match-beginning' and `match-end' to find match positions.
+used in place of 'buffer-substring' and 'substring', when using
+'match-beginning' and 'match-end' to find match positions.
(match-string N) or (match-string N STRING)
replace-match returns a newly created string which is the same as
STRING except for the matched portion.
-*** The new function buffer-substring-no-properties
-is like buffer-substring except that the string it returns
+*** The new function 'buffer-substring-no-properties'
+is like 'buffer-substring' except that the string it returns
has no text properties.
-*** The function `equal' now considers two strings to be different
+*** The function 'equal' now considers two strings to be different
if they don't have the same text properties.
** Completion
*** Local hook variables.
There is now a clean way to give a hook variable a buffer-local value.
-Call the function `make-local-hook' to do this.
+Call the function 'make-local-hook' to do this.
Once a hook variable is buffer-local, you can add hooks to it either
globally or locally. run-hooks runs the local hook functions
Local hooks use t as an element of the (local) value of the hook
variable as a flag meaning to use the global value also.
-*** The new function local-variable-p tells you whether a particular
+*** The new function 'local-variable-p' tells you whether a particular
variable is buffer-local in the current buffer or a specified buffer.
** Editing Facilities
-*** The function copy-region-as-kill no longer sets this-command;
+*** The function 'copy-region-as-kill' no longer sets this-command;
as a result, a following kill command will not normally append
to the text saved by copy-region-as-kill.
The reason for this change is to get higher speed.
There are new functions you can use if you really want to search or
-match with Posix behavior: posix-search-forward,
-posix-search-backward, posix-looking-at, and posix-string-match. Call
-these just like re-search-forward, re-search-backward, looking-at, and
-string-match.
+match with Posix behavior: 'posix-search-forward',
+'posix-search-backward', 'posix-looking-at', and 'posix-string-match'.
+Call these just like 're-search-forward', 're-search-backward',
+'looking-at', and 'string-match'.
** Files
-*** The new variable `format-alist' defines file formats,
+*** The new variable 'format-alist' defines file formats,
which are ways of translating between the data in a file and things
(text, text-properties, and possibly other information) in a buffer.
-`format-alist' has one element for each format. Each element is a
+'format-alist' has one element for each format. Each element is a
list like this:
(NAME DOC-STRING REGEXP FROM-FN TO-FN MODIFY MODE-FN)
containing the name of the format, a documentation string, a regular
longer matches REGEXP, or else it will get called again.
TO-FN is called to encode a region into that format; it is also passed BEGIN
and END, and either returns a list of annotations as in
- `write-region-annotate-functions', or modifies the region and returns
+ 'write-region-annotate-functions', or modifies the region and returns
the new end position.
MODIFY, if non-nil, means the TO-FN modifies the region. If nil, TO-FN may
not make any changes and should return a list of annotations.
-`insert-file-contents' checks the beginning of the file that it is
+'insert-file-contents' checks the beginning of the file that it is
inserting to see if it matches one of the regexps. If so, then it
calls the decoding function, and then looks for another match. When
visiting a file, it also calls the mode function, and sets the
-variable `buffer-file-format' to the list of formats that the file
+variable 'buffer-file-format' to the list of formats that the file
used.
-`write-region' calls the encoding functions for each format in
-`buffer-file-format' before it writes the file. To save a file in a
-different format, either set `buffer-file-format' to a different
-value, or call the new function `format-write-file'.
+'write-region' calls the encoding functions for each format in
+'buffer-file-format' before it writes the file. To save a file in a
+different format, either set 'buffer-file-format' to a different
+value, or call the new function 'format-write-file'.
Since some encoding functions may be slow, you can request that
auto-save use a format different from the buffer's default by setting
-the variable `auto-save-file-format' to the desired format. This will
+the variable 'auto-save-file-format' to the desired format. This will
determine the format of all auto-save files.
-*** The new function file-ownership-preserved-p tells you whether
+*** The new function 'file-ownership-preserved-p' tells you whether
deleting a file and recreating it would keep the file's owner
unchanged.
-*** The new function file-regular-p returns t if a file
+*** The new function 'file-regular-p' returns t if a file
is a "regular" file (not a directory, symlink, named pipe,
terminal, or other I/O device).
-*** The new function file-name-sans-extension discards the extension
+*** The new function 'file-name-sans-extension' discards the extension
of a file name. You call it with a file name, and returns a string
lacking the extension.
-*** The variable path-separator is a string which says which
+*** The variable 'path-separator' is a string which says which
character separates directories in a search path. It is ":"
for Unix and GNU systems, ";" for MSDOG and Windows NT.
is equivalent to the event type symbol C-M-newline, and (meta ?d)
is equivalent to the character ?\M-d.
-*** The function event-convert-list converts a list such as
+*** The function 'event-convert-list' converts a list such as
(meta ?d) into the corresponding event type (a symbol or integer).
-*** In an interactive spec, `k' means to read a key sequence. In this
+*** In an interactive spec, 'k' means to read a key sequence. In this
key sequence, upper case characters and shifted function keys which
have no bindings are converted to lower case if that makes them
defined.
-The new interactive code `K' reads a key sequence similarly, but does
-not convert the last event. `K' is useful for reading a key sequence
+The new interactive code 'K' reads a key sequence similarly, but does
+not convert the last event. 'K' is useful for reading a key sequence
to be given a binding.
-*** The variable overriding-local-map now has no effect on the menu bar
-display unless overriding-local-map-menu-flag is non-nil. This is why
+*** The variable 'overriding-local-map' now has no effect on the menu bar
+display unless 'overriding-local-map-menu-flag' is non-nil. This is why
incremental search no longer temporarily changes the menu bars.
Note that overriding-local-map does still affect the execution of key
programs that use overriding-local-map normally exit and "put back"
any event such as menu-bar that they do not handle specially.
-*** The new variable `overriding-terminal-local-map' is like
-overriding-local-map, but is specific to a single terminal.
+*** The new variable 'overriding-terminal-local-map' is like
+'overriding-local-map', but is specific to a single terminal.
-*** delete-frame events.
+*** 'delete-frame' events.
When you use the X window manager's "delete window" command, this now
generates a delete-frame event. The standard definition of this event
Emacs when the last visible or iconified frame is deleted. You can
rebind the event to some other command if you wish.
-*** Two new types of events, iconify-frame and make-frame-visible,
+*** Two new types of events, 'iconify-frame' and 'make-frame-visible',
indicate that the user iconified or deiconified a frame with the
window manager. Since the window manager has already done the work,
the default definition for both event types in Emacs is to do nothing.
words, all the screens of a single X server). The value in effect, at
any given time, is the one that belongs to the terminal of the
selected frame. The terminal-local variables are
-default-minibuffer-frame, system-key-alist, defining-kbd-macro, and
-last-kbd-macro. There is no way for Lisp programs to create others.
+'default-minibuffer-frame', 'system-key-alist', 'defining-kbd-macro', and
+'last-kbd-macro'. There is no way for Lisp programs to create others.
The terminal-local variables cannot be buffer-local.
-*** When you create an X frame, for the `top' and `left' frame
+*** When you create an X frame, for the 'top' and 'left' frame
parameters, you can now use values of the form (+ N) or (- N), where N
is an integer. (+ N) means N pixels to the right of the left edge of
the screen and (- N) means N pixels to the left of the right edge. In
both cases, N may be zero (exactly at the edge) or negative (putting
the window partly off the screen).
-The function x-parse-geometry can return values of these forms
+The function 'x-parse-geometry' can return values of these forms
for certain inputs.
-*** The variable menu-bar-file-menu has been renamed to
-menu-bar-files-menu to match the actual item that appears in the menu.
+*** The variable 'menu-bar-file-menu' has been renamed to
+'menu-bar-files-menu' to match the actual item that appears in the menu.
(All the other such variable names do match.)
-*** The new function active-minibuffer-window returns the minibuffer window
+*** The new function 'active-minibuffer-window' returns the minibuffer window
currently active, or nil if none is now active.
-*** In the functions next-window, previous-window, next-frame,
-previous-frame, get-buffer-window, get-lru-window, get-largest-window
-and delete-windows-on, if you specify 0 for the last argument,
+*** In the functions 'next-window', 'previous-window', 'next-frame',
+'previous-frame', 'get-buffer-window', 'get-lru-window', 'get-largest-window'
+and 'delete-windows-on', if you specify 0 for the last argument,
it means to consider all visible and iconified frames.
-*** When you set a frame's cursor type with modify-frame-parameters,
+*** When you set a frame's cursor type with 'modify-frame-parameters',
you can now specify (bar . INTEGER) as the cursor type. This stands
for a bar cursor of width INTEGER.
-*** The new function facep returns t if its argument is a face name
+*** The new function 'facep' returns t if its argument is a face name
(or if it is a vector such as is used internally by the Lisp code
to represent a face).
*** Each frame can now have a buffer-predicate function,
-which is the `buffer-predicate' frame parameter.
-When `other-buffer' looks for an alternative buffer, it considers
+which is the 'buffer-predicate' frame parameter.
+When 'other-buffer' looks for an alternative buffer, it considers
only the buffers that fit the selected frame's buffer predicate (if it
has one). This is useful for applications that make their own frames.
*** When you create an X frame, you can now specify the frame parameter
-`display'. This says which display to put the frame on. The value
+'display'. This says which display to put the frame on. The value
should be a display name--a string of the form
"HOST:DPYNUMBER.SCREENNUMBER".
selected frame.
To close the connection to an X display, use the function
-x-close-connection. Specify which display with a display name. You
+'x-close-connection'. Specify which display with a display name. You
cannot close the connection if Emacs still has frames open on that
display.
-x-display-list returns a list indicating which displays Emacs has
+'x-display-list' returns a list indicating which displays Emacs has
connections to. Its elements are display names (strings).
*** The icon-type frame parameter may now be a file name.
for that frame.
*** The title of an Emacs frame, displayed by most window managers, is
-set from frame-title-format or icon-title-format. These have the same
-structure as mode-line-format.
+set from 'frame-title-format' or 'icon-title-format'. These have the same
+structure as 'mode-line-format'.
-*** x-display-grayscale-p is a new function that returns non-nil if
+*** 'x-display-grayscale-p' is a new function that returns non-nil if
your X server can display shades of gray. Currently it returns
non-nil for color displays (because they can display shades of gray);
we may change it in the next version to return nil for color displays.
-*** The frame parameter scroll-bar-width specifies the width of the
+*** The frame parameter 'scroll-bar-width' specifies the width of the
scrollbar in pixels.
** Buffers
-*** Creating a buffer with get-buffer-create does not obey
-default-major-mode. That variable is now handled in a separate
-function, set-buffer-major-mode. get-buffer-create and generate-new-buffer
-always leave the newly created buffer in Fundamental mode.
+*** Creating a buffer with 'get-buffer-create' does not obey
+'default-major-mode'. That variable is now handled in a separate
+function, 'set-buffer-major-mode'. 'get-buffer-create' and
+'generate-new-buffer' always leave the newly created buffer
+in Fundamental mode.
-Creating a new buffer by visiting a file or with switch-to-buffer,
-pop-to-buffer, and similar functions does call set-buffer-major-mode
-to select the default major mode specified with default-major-mode.
+Creating a new buffer by visiting a file or with 'switch-to-buffer',
+'pop-to-buffer', and similar functions does call 'set-buffer-major-mode'
+to select the default major mode specified with 'default-major-mode'.
*** You can now create an "indirect buffer". An indirect buffer shares
its text, including text properties, with another buffer (the "base
cannot itself be visiting a file (though its base buffer can be).
The base buffer cannot itself be indirect.
-Use (make-indirect-buffer BASE-BUFFER NAME) to make an indirect buffer
-named NAME whose base is BASE-BUFFER. If BASE-BUFFER is an indirect
-buffer, its base buffer is used as the base for the new buffer.
+Use 'make-indirect-buffer' to make an indirect buffer.
+If the base buffer is an indirect buffer, its base buffer is used as
+the base for the new buffer.
You can make an indirect buffer current, or switch to it in a window,
just as you would a non-indirect buffer.
-The function buffer-base-buffer, given an indirect buffer, returns its
+The function 'buffer-base-buffer', given an indirect buffer, returns its
base buffer. It returns nil when given an ordinary buffer (not
indirect).
-The library `noutline' has versions of Outline mode and Outline minor
+The library 'noutline' has versions of Outline mode and Outline minor
mode which let you display different parts of the outline in different
indirect buffers.
** Subprocesses
-*** The functions call-process and call-process-region now allow
+*** The functions 'call-process' and 'call-process-region' now allow
you to direct error message output from the subprocess into a
separate destination, instead of mixing it with ordinary output.
To do this, specify for the third argument, BUFFER, a list of the form
** Text properties
-*** You can now specify which values of the `invisible' property
+*** You can now specify which values of the 'invisible' property
make text invisible in a given buffer. The variable
-`buffer-invisibility-spec', which is always local in all buffers,
+'buffer-invisibility-spec', which is always local in all buffers,
controls this.
-If its value is t, then any non-nil `invisible' property makes
+If its value is t, then any non-nil 'invisible' property makes
a character invisible.
If its value is a list, then a character is invisible if its
-`invisible' property value appears as a member of the list, or if it
+'invisible' property value appears as a member of the list, or if it
appears as the car of a member of the list.
-When the `invisible' property value appears as the car of a member of
-the `buffer-invisibility-spec' list, then the cdr of that member has
+When the 'invisible' property value appears as the car of a member of
+the 'buffer-invisibility-spec' list, then the cdr of that member has
an effect. If it is non-nil, then an ellipsis appears in place of the
character. (This happens only for the *last* invisible character in a
series of consecutive invisible characters, and only at the end of a
line.)
-If a character's `invisible' property is a list, then Emacs checks each
-element of the list against `buffer-invisibility-spec'. If any element
+If a character's 'invisible' property is a list, then Emacs checks each
+element of the list against 'buffer-invisibility-spec'. If any element
matches, the character is invisible.
-*** The command `list-text-properties-at' shows what text properties
+*** The command 'list-text-properties-at' shows what text properties
are in effect at point.
*** Frame objects now exist in Emacs even on systems that don't support
X Windows. You can create multiple frames, and switch between them
-using select-frame. The selected frame is actually displayed on your
+using 'select-frame'. The selected frame is actually displayed on your
terminal; other frames are not displayed at all. The selected frame
-number appears in the mode line after `Emacs', except for frame 1.
+number appears in the mode line after 'Emacs', except for frame 1.
Switching frames on ASCII terminals is therefore more or less
equivalent to switching between different window configurations.
-*** The new variable window-size-change-functions holds a list of
+*** The new variable 'window-size-change-functions' holds a list of
functions to be called if window sizes change (or if windows are
created or deleted). The functions are called once for each frame on
which changes have occurred, with the frame as the sole argument.
This means the function must accept either four or five arguments.
*** You can set defaults for text-properties with the new variable
-`default-text-properties'. Its value is a property list; the values
+'default-text-properties'. Its value is a property list; the values
specified there are used whenever a character (or its category) does
not specify a value.
-*** The `face' property of a character or an overlay can now be a list
+*** The 'face' property of a character or an overlay can now be a list
of face names. Formerly it had to be just one face name.
-*** Changes in handling the `intangible' text property.
+*** Changes in handling the 'intangible' text property.
-**** If inhibit-point-motion-hooks is non-nil, then `intangible' properties
+**** If inhibit-point-motion-hooks is non-nil, then 'intangible' properties
are ignored.
**** Moving to just before a stretch of intangible text
*** Overlay changes.
-**** The new function previous-overlay-change returns the position of
+**** The new function 'previous-overlay-change' returns the position of
the previous overlay start or end, before a specified position. This
-is the backwards-moving counterpart of next-overlay-change.
+is the backwards-moving counterpart of 'next-overlay-change'.
-**** overlay-get now supports category properties on an overlay
-the same way get-text-property supports them as text properties.
+**** 'overlay-get' now supports category properties on an overlay
+the same way 'get-text-property' supports them as text properties.
Specifically, if an overlay does not have the property PROP that you
-ask for, but it does have a `category' property which is a symbol,
+ask for, but it does have a 'category' property which is a symbol,
then that symbol's PROP property is used.
-**** If an overlay has a non-nil `evaporate' property, it will be
+**** If an overlay has a non-nil 'evaporate' property, it will be
deleted if it ever becomes empty (i.e., when it spans no characters).
-**** If an overlay has a `before-string' and/or `after-string' property,
+**** If an overlay has a 'before-string' and/or 'after-string' property,
these strings are displayed at the overlay's endpoints.
** Filling
-*** The new variable fill-paragraph-function provides a way for major
+*** The new variable 'fill-paragraph-function' provides a way for major
modes to override the filling of paragraphs. If this is non-nil,
fill-paragraph calls it as a function, passing along its sole
argument. If the function returns non-nil, fill-paragraph assumes it
*** Text filling and justification changes:
-**** The new variable use-hard-newlines can be used to make a
+**** The new variable 'use-hard-newlines' can be used to make a
distinction between "hard" and "soft" newlines; the fill functions
will then never remove a newline that was manually inserted. Hard
-newlines are marked with a non-nil `hard' text-property.
+newlines are marked with a non-nil 'hard' text-property.
-**** The fill-column and left-margin can now be modified by text-properties.
+**** The 'fill-column' and 'left-margin' can now be modified by text-properties.
Most lisp programs should use the new functions (current-fill-column) and
(current-left-margin), which return the proper values to use for the
current line.
**** There are new functions for dealing with margins:
-***** Set-left-margin and set-right-margin (set the value for a region
+***** 'set-left-margin' and 'set-right-margin' (set the value for a region
and re-fill). These functions take three arguments: two to specify
a region, and the desired margin value.
-***** Increase-left-margin, decrease-left-margin, increase-right-margin, and
-decrease-right-margin (change settings relative to current values, and
+***** 'increase-left-margin', 'decrease-left-margin', 'increase-right-margin',
+and 'decrease-right-margin' (change settings relative to current values, and
re-fill).
-***** move-to-left-margin moves point there, optionally adding
+***** 'move-to-left-margin' moves point there, optionally adding
indentation or changing tabs to spaces in order to make that possible.
-beginning-of-line-text also moves past the fill-prefix and any
+'beginning-of-line-text' also moves past the 'fill-prefix' and any
indentation added to center or right-justify a line, to the beginning
of the text that the user actually typed.
-***** delete-to-left-margin removes any left-margin indentation, but
+***** 'delete-to-left-margin' removes any left-margin indentation, but
does not change the property.
-**** The paragraph-movement functions look for the paragraph-start and
-paragraph-separate regexps at the current left margin, not at the
+**** The paragraph-movement functions look for the 'paragraph-start' and
+'paragraph-separate' regexps at the current left margin, not at the
beginning of the line. This means that those regexps should NOT use ^
to anchor the search. However, for backwards compatibility, a ^ at
the beginning of the regexp will be ignored, so most packages won't break.
-**** justify-current-line is now capable of doing left, center, or
+**** 'justify-current-line' is now capable of doing left, center, or
right justification as well as full justification.
**** The fill functions can do any kind of justification based on the new
-`justification' text-property and `default-justification' variable,
+'justification' text-property and 'default-justification' variable,
or arguments to the functions. They also have a new option which
defeats the normal removal of extra whitespace.
-**** The new function `current-justification' returns the kind of
+**** The new function 'current-justification' returns the kind of
justification used for the current line. The new function
-`set-justification' can be used to change it, including re-justifying
+'set-justification' can be used to change it, including re-justifying
the text of the region according to the new value.
-**** Filling and auto-fill are disabled if justification is `none'.
+**** Filling and auto-fill are disabled if justification is 'none'.
-**** The auto-fill-function is now called regardless of whether
+**** The 'auto-fill-function' is now called regardless of whether
the fill-column has been exceeded; the function can determine on its
own whether filling (or justification) is necessary.
** Processes
-*** process-tty-name is a new function that returns the name of the
+*** 'process-tty-name' is a new function that returns the name of the
terminal that the process itself reads and writes on (not the name of
the pty that Emacs uses to talk with that terminal).
*** Errors in process filters and sentinels are now normally caught
automatically, so that they don't abort other Lisp programs.
-Setting debug-on-error non-nil turns off this feature; then errors in
+Setting 'debug-on-error' non-nil turns off this feature; then errors in
filters and sentinels are not caught. As a result, they can invoke
the debugger, under the control of debug-on-error.
** Display
-*** The variable message-log-max controls how messages are logged in the
+*** The variable 'message-log-max' controls how messages are logged in the
"*Messages*" buffer. An integer value means to keep that many lines;
t means to log with no limit; nil means disable message logging. Lisp
-code that calls `message' excessively (e.g. isearch.el) should probably
+code that calls 'message' excessively (e.g. isearch.el) should probably
bind this variable to nil.
*** Display tables now have a new element, at index 261, specifying the
less visual separation between two side-by-side windows displaying
related information.
-*** The new mode-line-format spec %c displays the current column number.
+*** The new 'mode-line-format' spec %c displays the current column number.
-*** The new variable blink-matching-delay specifies how long to keep
+*** The new variable 'blink-matching-delay' specifies how long to keep
the cursor at the matching open-paren, after you insert a close-paren.
This is useful mainly on systems which can wait for a fraction of a
second--you can then specify fractional values such as 0.5.
*** Faster processing of buffers with long lines
-The new variable cache-long-line-scans determines whether Emacs
+The new variable 'cache-long-line-scans' determines whether Emacs
should use caches to handle long lines more quickly. This variable is
buffer-local, in all buffers.
Normally, the line-motion functions work by scanning the buffer for
-newlines. Columnar operations (like `move-to-column' and
-`compute-motion') also work by scanning the buffer, summing character
+newlines. Columnar operations (like 'move-to-column' and
+'compute-motion') also work by scanning the buffer, summing character
widths as they go. This works well for ordinary text, but if the
buffer's lines are very long (say, more than 500 characters), these
motion functions will take longer to execute. Emacs may also take
** System Interface
-*** The function user-login-name now accepts an optional
+*** The function 'user-login-name' now accepts an optional
argument uid. If the argument is non-nil, user-login-name
returns the login name for that user id.
-*** system-name, user-name, user-full-name and user-real-name are now
-variables as well as functions. The variables hold the same values
-that the functions would return. The new variable multiple-frames
+*** 'system-name', 'user-name', 'user-full-name' and 'user-real-name' are
+now variables as well as functions. The variables hold the same values
+that the functions would return. The new variable 'multiple-frames'
is non-nil if at least two non-minibuffer frames are visible. These
-variables may be useful in constructing the value of frame-title-format
-or icon-title-format.
+variables may be useful in constructing the value of 'frame-title-format'
+or 'icon-title-format'.
*** Changes in time-conversion functions.
-**** The new function format-time-string takes a format string and a
+**** The new function 'format-time-string' takes a format string and a
time value. It converts the time to a string, according to the format
specified. You can specify what kind of conversion to use with
%-specifications.
-**** The new function decode-time converts a time value into a list of
+**** The new function 'decode-time' converts a time value into a list of
specific items of information: the year, month, day of week, day of
month, hour, minute and second. (A time value is a list of two or
three integers.)
-**** The new function encode-time converts specific items of time
+**** The new function 'encode-time' converts specific items of time
information--the second, minute, hour, day, month, year, and time
zone--into a time value.
** For a read-only buffer that is also modified, the mode line now displays
%* instead of %%.
-** M-prior (scroll-other-window-down) is a new command that works like
+** M-prior ('scroll-other-window-down') is a new command that works like
M-next (and C-M-v) but scrolls in the opposite direction.
M-home moves to the beginning of the buffer, in the other window.
** Setting rmail-highlighted-headers to nil entirely turns off
highlighting in Rmail. However, if your motivation for doing this is
that the highlighted text doesn't look good on your display, it might
-be better to change the appearance of the `highlight' face. Once
+be better to change the appearance of the 'highlight' face. Once
you've done that, you may find Rmail highlighting is useful.
** In the calendar, mouse-2 is now used only for commands that apply to a date.
for asking for a list of the subcommands of C-c C-v.
** You can now specify "who you are" for various Emacs packages by
-setting just one variable, user-mail-address. This currently applies
+setting just one variable, 'user-mail-address'. This currently applies
to posting news with GNUS and to making change log entries. It may
apply to additional Emacs features in the future.
\f
* Lisp-Level Changes in Emacs 19.26:
-** The function insert-char now takes an optional third argument
+** The function 'insert-char' now takes an optional third argument
which, if non-nil, says the inserted characters should inherit sticky
text properties from the surrounding text.
-** The `diary' library has been renamed to `diary-lib'. If you refer
+** The 'diary' library has been renamed to 'diary-lib'. If you refer
to this library in your Lisp code, you must update the references.
** Sending text to a subprocess can read input from subprocesses if it
It displays * for a modified buffer and - for an unmodified buffer,
regardless of read-only status.
-** You can now use `underline' in the color list of a face.
+** You can now use 'underline' in the color list of a face.
It serves as a last resort, and says to underline the face
(if previous color list elements can't be used).
-** The new function x-color-values returns the list of color values
+** The new function 'x-color-values' returns the list of color values
for a given color name (a string). The list contains three integers
which give the amounts of red, green and blue in the color: (R G B).
-** In run-at-time, 0 as the repeat interval means "don't repeat".
+** In 'run-at-time', 0 as the repeat interval means "don't repeat".
-** The variable trim-versions-without-asking has been renamed to
-delete-old-versions.
+** The variable 'trim-versions-without-asking' has been renamed to
+'delete-old-versions'.
-** The new function other-window-for-scrolling returns the choice of
+** The new function 'other-window-for-scrolling' returns the choice of
other window for C-M-v to scroll.
-** Note that the function fceiling was mistakenly documented as fceil before.
+** Note that the function 'fceiling' was mistakenly documented as 'fceil' before.
\f
* Changes in cc-mode.el in Emacs 19.26:
Note that the custom indent function c-adaptive-block-open has been
removed as obsolete.
-** You can now specify the `hanginess' of closing braces. See
+** You can now specify the 'hanginess' of closing braces. See
c-hanging-braces-alist.
** Recognizes try and catch blocks in C++. They are given the
cc-mode.el.
** internal defun c-indent-via-language-element has been renamed
- c-indent-line for compatibility with c-mode.el and awk-mode.
+ c-indent-line for compatibility with c-mode.el and 'awk-mode'.
-** new buffer-local variable c-comment-start-regexp for (potential)
+** new buffer-local variable 'c-comment-start-regexp' for (potential)
flexibility in adding new modes based on cc-mode.el
* Changes in Emacs 19.25
The variable x-cross-pointer-shape (which didn't really exist) has
-been renamed to x-sensitive-text-pointer-shape, and now does exist.
+been renamed to 'x-sensitive-text-pointer-shape', and now does exist.
\f
** In a completion list buffer, the command RET now chooses the completion
that is around or next to point.
-** If you specify the foreground color for the `mode-line' face, and
+** If you specify the foreground color for the 'mode-line' face, and
mode-line-inverse-video is non-nil, then the default background color
is the usual foreground color.
** C-x r d now runs the command delete-rectangle.
-** The new command imenu shows you a menu of interesting places in the
+** The new command 'imenu' shows you a menu of interesting places in the
current buffer and lets you select one; then it moves point there.
The definition of interesting places depends on the major mode, but
typically this includes function definitions and such. Normally,
** You can make certain chosen buffers, that normally appear in a
separate window, appear in special frames of their own. To do this,
-set special-display-buffer-names to a list of buffer names; any buffer
+set 'special-display-buffer-names' to a list of buffer names; any buffer
whose name is in that list automatically gets a special frame when it
is to be displayed in another window.
A good value to try is ("*compilation*" "*grep*" "*TeX Shell*").
-More generally, you can set special-display-regexps to a list of regular
+More generally, you can set 'special-display-regexps' to a list of regular
expressions; then each buffer whose name matches any of those regular
expressions gets its own frame.
-The variable special-display-frame-alist specifies the frame
+The variable 'special-display-frame-alist' specifies the frame
parameters for these frames. It has a default value, so you don't
need to set it.
-** If you set sentence-end-double-space to nil, the fill commands
+** If you set 'sentence-end-double-space' to nil, the fill commands
expect just one space at the end of a sentence. (If you want the
sentence commands to accept single spaces, you must modify the regexp
-sentence-end also.)
+'sentence-end' also.)
** You can suppress the startup echo area message by adding text like
this to your .emacs file:
-(setq inhibit-startup-echo-area-message "YOUR-LOGIN-NAME")
+ (setq inhibit-startup-echo-area-message "YOUR-LOGIN-NAME")
Simply setting inhibit-startup-echo-area-message to your login name is
not sufficient to inhibit the message; Emacs explicitly checks whether
** Outline minor mode now uses C-c C-o as a prefix instead of just C-c.
-** In Outline mode, hide-subtree is now C-c C-d. (It was C-c C-h; but
+** In Outline mode, 'hide-subtree' is now C-c C-d. (It was C-c C-h; but
that is now a conventional way to ask for help about C-c commands.)
** There are two additional commands in Outline mode.
point, rather than the word that point is within.
*** Comint mode file name completion ignores those files that end with a
-string in the new variable comint-completion-fignore. This variable's
+string in the new variable 'comint-completion-fignore'. This variable's
default value is nil.
*** Shell mode uses the variable shell-completion-fignore to set
comint-completion-fignore. The default value is nil, but some
people prefer ("~" "#" "%").
-*** The function `comint-watch-for-password-prompt' can be used to
+*** The function 'comint-watch-for-password-prompt' can be used to
suppress echoing when a subprocess asks for a password. To use it,
do this:
-(add-hook 'comint-output-filter-functions
- 'comint-watch-for-password-prompt)
+ (add-hook 'comint-output-filter-functions
+ #'comint-watch-for-password-prompt)
*** You can use M-x shell-strip-ctrl-m to strip ^M characters from
process output.
** Rmail no longer gets new mail automatically when you visit an Rmail
file specified by name--not even if it is your primary Rmail file. To
-get new mail, type `g'. This feature is an advantage because you now
+get new mail, type 'g'. This feature is an advantage because you now
have a choice of whether to get new mail. (This change actually
occurred in an earlier version, but wasn't listed here then, since it
made the code do what the documentation already said.)
** Rmail now highlights certain fields automatically, when you use X
-windows. The variable rmail-highlighted-headers controls which
+windows. The variable 'rmail-highlighted-headers' controls which
fields.
-** If you set rmail-summary-window-size to an integer, Rmail uses
+** If you set 'rmail-summary-window-size' to an integer, Rmail uses
a window that many lines high for the summary buffer.
-** rmail-input-menu is a new command that visits an Rmail file letting
-you choose which file with a mouse menu. rmail-output-menu is
+** 'rmail-input-menu' is a new command that visits an Rmail file letting
+you choose which file with a mouse menu. 'rmail-output-menu' is
similar; it outputs the current message, using a mouse menu to choose
which Rmail file. These commands use the variables
-rmail-secondary-file-directory and rmail-secondary-file-regexp.
+'rmail-secondary-file-directory' and 'rmail-secondary-file-regexp'.
** The mh-e package has been changed substantially.
See the file ./MH-E-NEWS for details.
when clicked elsewhere in the calendar window.
You can set up colored/shaded highlighting of holidays, diary entry
-dates, and today's date, by setting calendar-holiday-marker,
-diary-entry-marker, and calendar-today-marker to a face instead of a
+dates, and today's date, by setting 'calendar-holiday-marker',
+'diary-entry-marker', and 'calendar-today-marker' to a face instead of a
character. Using a special face is now the default if you are using a
window system.
features.
*** The appt alarm window stays for the full duration of
-appt-display-duration. It no longer disappears when you start typing
+'appt-display-duration'. It no longer disappears when you start typing
text.
*** You can change the way the appointment window is created/deleted by
-setting the variables appt-disp-window-function and
-appt-delete-window-function.
+setting the variables 'appt-disp-window-function' and
+'appt-delete-window-function'.
For instance, these variables can be set to functions that display
appointments in pop-up frames, which are lowered or iconified after
-appt-display-duration seconds.
+'appt-display-duration' seconds.
** desktop.el can now save a list of buffer-local variables,
and saves more global ones.
*** Edebug specifications may now contain body, &define, name, arg or
arglist, def-body, and def-form, to support definitions.
-*** edebug-all-defuns is renamed to edebug-all-defs.
-def-edebug-form-spec is replaced by def-edebug-form whose arguments
+*** edebug-all-defuns is renamed to 'edebug-all-defs'.
+def-edebug-form-spec is replaced by 'def-edebug-form' whose arguments
are unevaluated. The old names are still available for now.
*** Frequency counts and coverage data may be displayed for functions being
*** A new "next" mode stops only after expression evaluation.
-*** A new command, top-level-nonstop, does not even stop for unwind-protect,
+*** A new command, 'top-level-nonstop', does not even stop for 'unwind-protect',
as top-level would.
\f
* Changes in CC mode in Emacs 19.23.
-`cc-mode' provides ANSI C, K&R C, and ARM C++ language editing. It
+'cc-mode' provides ANSI C, K&R C, and ARM C++ language editing. It
represents the merge of c++-mode.el and c-mode.el. cc-mode provides a
new, more flexible indentation engine so that indentation
customization is more intuitive. There are two steps to calculating
then based on this content it applies user defined offsets and adds
this offset to the indentation of some previous line.
-The syntactic analysis determines if the line describes a `statement',
-`substatement', `class-open', `member-init-intro', etc. These are
+The syntactic analysis determines if the line describes a 'statement',
+'substatement', 'class-open', 'member-init-intro', etc. These are
described in detail with C-h v c-offsets-alist. You can change the
offsets interactively with C-c C-o (c-set-offsets), or
programmatically in your c-mode-common-hook, which is run both by
you could add the following to your .emacs file:
-(defun my-c-mode-common-hook ()
- (c-set-offset 'case-label 2)
- (c-set-offset 'statement-case-intro 2))
-(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
+ (defun my-c-mode-common-hook ()
+ (c-set-offset 'case-label 2)
+ (c-set-offset 'statement-case-intro 2))
+ (add-hook 'c-mode-common-hook #'my-c-mode-common-hook)
** New variables:
-c-offsets-alist contains an association list of syntactic symbols and
+'c-offsets-alist' contains an association list of syntactic symbols and
their relative offsets. Do a "C-h v c-offsets-alist" to get a list of
all syntactic symbols currently defined, and their meanings. You
should not change this variable directly; use the supplied interface
-commands c-set-offset and c-set-style.
+commands 'c-set-offset' and 'c-set-style'.
-c-mode-common-hook is run by both c-mode and c++-mode during their
+'c-mode-common-hook' is run by both 'c-mode' and 'c++-mode' during their
common initializations. You should put any customizations that are
the same for both C and C++ into this hook.
-The variable c-strict-semantics-p is used mainly for debugging. When
+The variable 'c-strict-semantics-p' is used mainly for debugging. When
non-nil, CC mode signals an error if it returns a syntactic symbol
that can't be found in c-offsets-alist.
If you want CC mode to echo the syntactic analysis for a particular
-line when you hit the TAB key, set c-echo-semantic-information-p to
+line when you hit the TAB key, set 'c-echo-semantic-information-p' to
non-nil.
-c-basic-offset controls the standard amount of offset for a level of
+'c-basic-offset' controls the standard amount of offset for a level of
indentation. You can set a syntactic symbol's offset to + or - as a
short-hand for positive or negative c-basic-offset.
-c-comment-only-line-offset lets you control indentation given to lines
+'c-comment-only-line-offset' lets you control indentation given to lines
which contain only a comment, in the case of C++ line style comments,
or the introduction to a C block comment. Comment-only lines at
column zero can be anchored there independent of the indentation given
to other comment-only lines.
-c-block-comments-indent-p controls the style of C block comment
+'c-block-comments-indent-p' controls the style of C block comment
re-indentation. If you put leading stars in front of comment
continuation lines, you should set this variable to nil.
-c-cleanup-list is a list describing certain C and C++ constructs to be
+'c-cleanup-list' is a list describing certain C and C++ constructs to be
"cleaned up" as they are typed, but only when the auto-newline feature
is turned on. In C++, make sure this variable contains at least
'scope-operator so that double colons will not be separated by a
newline.
-Colons (`:') and braces (`{` and `}') are special in C and C++. For
+Colons (':') and braces (`{` and `}') are special in C and C++. For
certain constructs, you may like them to hang on the right edge of the
code, or you may like them to start a new line of code. You can use
-the two variables c-hanging-braces-alist and c-hanging-colons-alist
+the two variables 'c-hanging-braces-alist' and 'c-hanging-colons-alist'
to control whether newlines are placed before and/or after colons and
braces when certain C and C++ constructs are entered. For example,
you can control whether the colon that introduces a C++ member
initialization list hangs on the right edge, starts a new line, or has
no newlines either before or after it.
-c-special-indent-hook is run after a line is indented by CC mode. You
+'c-special-indent-hook' is run after a line is indented by CC mode. You
can perform any custom indentations here.
-c-delete-function is the function that is called when a single
+'c-delete-function' is the function that is called when a single
character is deleted with the c-electric-delete command (DEL).
-c-electric-pound-behavior describes what happens when you enter the
+'c-electric-pound-behavior' describes what happens when you enter the
`#' that introduces a cpp macro.
-If c-tab-always-indent is neither t nor nil, then TAB inserts a tab
+If 'c-tab-always-indent' is neither t nor nil, then TAB inserts a tab
when within strings, comments, and cpp directives, but it reindents
the line unconditionally.
-c-inhibit-startup-warnings-p inhibits warnings about any old
+'c-inhibit-startup-warnings-p' inhibits warnings about any old
version of Emacs you might be running, which could be incompatible
with cc-mode.
\f
* Lisp programming changes in Emacs 19.23.
-** To pop up a dialog box, call x-popup-dialog.
+** To pop up a dialog box, call 'x-popup-dialog'.
It takes two arguments, POSITION and CONTENTS.
POSITION specifies which frame to place the dialog box over;
real dialog box; so instead it displays a pop-up menu in the center
of the frame.
-** y-or-n-p, yes-or-no-p and map-y-or-n-p now use menus or dialog boxes
+** 'y-or-n-p', 'yes-or-no-p' and 'map-y-or-n-p' now use menus or dialog boxes
to ask their question(s) if the command that is running was reached by
a mouse event.
If you want to control which way these functions work, bind the
-variable last-nonmenu-event around the call. These functions use the
+variable 'last-nonmenu-event' around the call. These functions use the
keyboard if that variable holds a keyboard event (actually, any
non-list); they use the mouse if that variable holds a mouse event
(actually, any list).
a text property. It specifies a face to use when the mouse is in the
range of text for which the property is specified.
-** When text has a non-nil `intangible' property, you cannot move point
+** When text has a non-nil 'intangible' property, you cannot move point
within it or right before it. If you try, point actually moves to the
-end of the intangible text. Note that this means that backward-char
+end of the intangible text. Note that this means that 'backward-char'
is a no-op when there is an intangible character to the left of point.
-** minibuffer-exit-hook is a new normal hook that is run when you
+** 'minibuffer-exit-hook' is a new normal hook that is run when you
exit the minibuffer.
-** The variable x-cross-pointer-shape specifies the cursor shape to use
+** The variable 'x-cross-pointer-shape' specifies the cursor shape to use
when the mouse is over text that has a mouse-face property.
-** The new variable interpreter-mode-alist specifies major modes to use
+** The new variable 'interpreter-mode-alist' specifies major modes to use
for shell scripts that specify a command interpreter. Its elements
look like (INTERPRETER . MODE); for example, ("perl" . perl-mode) is
one element present by default. This feature applies only when the
file name doesn't indicate which mode to use.
** If you use a minibuffer-only frame, set the variable
-minibuffer-auto-raise to t, and entering the minibuffer will then
+'minibuffer-auto-raise' to t, and entering the minibuffer will then
raise the minibuffer frame.
-** If pop-up-frames is t, display-buffer now looks for an existing
+** If 'pop-up-frames' is t, display-buffer now looks for an existing
window in any visible frame, showing the specified buffer, and uses
such a window in preference to making a new frame.
-** In the functions next-window, previous-window, next-frame,
-previous-frame, get-buffer-window, get-lru-window, get-largest-window
-and delete-windows-on, if you specify `visible' for the last argument,
+** In the functions 'next-window', 'previous-window', 'next-frame',
+'previous-frame', 'get-buffer-window', 'get-lru-window', 'get-largest-window'
+and 'delete-windows-on', if you specify 'visible' for the last argument,
it means to consider all visible frames.
** Mouse events now give the X and Y coordinates in pixels, rather than
in characters. You can convert these values to characters by dividing by
the values of (frame-char-width) and (frame-char-height).
-** The new functions mouse-pixel-position and set-mouse-pixel-position
+** The new functions 'mouse-pixel-position' and 'set-mouse-pixel-position'
read and set the mouse position in units of pixels. The existing
-functions mouse-position and set-mouse-position continue to work with
+functions 'mouse-position' and 'set-mouse-position' continue to work with
units of characters.
-** The new function compute-motion is useful for computing the width
+** The new function 'compute-motion' is useful for computing the width
of certain text when it is displayed.
-** The function vertical-motion now takes an option second argument WINDOW
+** The function 'vertical-motion' now takes an option second argument WINDOW
which says which window to use for the display calculations.
vertical-motion always operates on the current buffer.
Then vertical-motion uses the width, hscroll and display-table of
the specified window, but still scans the current buffer.
-** An error no longer sets last-command to t; the value of last-command
+** An error no longer sets 'last-command' to t; the value of last-command
does reflect the previous command (the one that got an error).
If you do not want a particular command to be recognized as the
** If you specify an explicit title for a new frame when you create it,
the title is used as the resource name when looking up X resources to
control the shape of that frame. If you don't specify the frame title,
-the value of x-resource-name is used, as before.
+the value of 'x-resource-name' is used, as before.
** The frame parameter user-position, if non-nil, says that the user
has specified the frame position. Emacs reports this to the window
manager, to tell it not to override the position that the user
specified.
-** Major modes can now set change-major-mode-hook to arrange for state
+** Major modes can now set 'change-major-mode-hook' to arrange for state
to be cleaned up when the user switches to a new major mode. The function
-kill-all-local-variables runs this hook. For best results, make the hook a
+'kill-all-local-variables' runs this hook. For best results, make the hook a
buffer-local variable so that it will disappear after doing its job and will
not interfere with the subsequent major mode.
-** The new variable overriding-local-map, if non-nil, specifies a keymap
+** The new variable 'overriding-local-map', if non-nil, specifies a keymap
that overrides the current local map, all minor mode keymaps, and all
text property keymaps. Incremental search uses this feature to override
all other keymaps temporarily.
automatically creates and updates the sublist when appropriate; you
need never set these up yourself.
-lookup-key, key-binding, and similar functions return just COMMAND,
+'lookup-key', 'key-binding', and similar functions return just COMMAND,
not the whole binding.
To precompute this information for a given keymap, you can do
If you pass the value of overriding-local-map as KEYMAP, where-is-internal
searches in exactly the same was as command execution does.
-** Use the macro define-derived-mode to define a new major mode that
+** Use the macro 'define-derived-mode' to define a new major mode that
inherits the definition of another major mode. Here's how to define a
command named hypertext-mode that inherits from the command text-mode:
to the name of the new mode.
** A syntax table can now inherit the data for some characters from
-standard-syntax-table, while specifying other characters itself.
+'standard-syntax-table', while specifying other characters itself.
Syntax code 13 means "inherit this character from the standard syntax
-table." In modify-syntax-entry, the character `@' represents this code.
+table." In 'modify-syntax-entry', the character `@' represents this code.
-The function `make-syntax-table' now creates a syntax table which
+The function 'make-syntax-table' now creates a syntax table which
inherits all letters and control characters (0 to 31 and 128 to 255)
from the standard syntax table, while copying the other characters
from the standard syntax table. Most syntax tables in Emacs are set
Just changing the standard syntax for these characters affects all
major modes.
-** The new function transpose-regions swaps two regions of the buffer.
+** The new function 'transpose-regions' swaps two regions of the buffer.
It preserves the markers in those two regions, so that they stay with
the surrounding text as it is swapped.
-** revert-buffer now runs before-revert-hook at the beginning and
-after-revert-hook at the end. These can be used by minor modes
+** 'revert-buffer' now runs 'before-revert-hook' at the beginning and
+'after-revert-hook' at the end. These can be used by minor modes
that need to clean up state variables.
-** The new function get-char-property is like get-text-property, but
+** The new function 'get-char-property' is like 'get-text-property', but
checks for overlays with properties as well as for text properties.
It checks for overlays first, in order of descending priority, and
text properties last.
as buffers and strings. If you specify a window, then only overlays
active on that window are considered.
-** Overlays can have the `invisible' property.
+** Overlays can have the 'invisible' property.
-** The function insert-file-contents now takes an optional fifth
+** The function 'insert-file-contents' now takes an optional fifth
argument called REPLACE. If this is t, it means to replace the
contents of the buffer (actually, just the accessible portion)
with the contents of the file.
because (1) it preserves some marker positions and (2) it puts less
data in the undo list.
-** The variable inhibit-first-line-modes-regexps specifies classes of
+** The variable 'inhibit-first-line-modes-regexps' specifies classes of
file names for which -*- on the first line should not be looked for.
-** The variables before-change-functions and after-change-functions
+** The variables 'before-change-functions' and 'after-change-functions'
hold lists of functions to call before and after a change in the
buffer's text. They work much like before-change-function and
after-change-function, except that they hold a list of functions
instead of just one.
-These variables will eventually make before-change-function and
-after-change-function obsolete.
+These variables will eventually make 'before-change-function' and
+'after-change-function' obsolete.
-** The variable kill-buffer-query-functions holds a list of functions
+** The variable 'kill-buffer-query-functions' holds a list of functions
to be called with no arguments when a buffer is about to be killed.
(That buffer is the current buffer when the function is called.)
If any of the functions returns nil, the buffer is not killed
(and the remaining functions in the list are not called).
-** The variable kill-emacs-query-functions holds a list of functions
+** The variable 'kill-emacs-query-functions' holds a list of functions
to be called with no arguments when you ask to exit Emacs.
If any of the functions returns nil, the exit is canceled
(and the remaining functions in the list are not called).
-** The argument for buffer-disable-undo is now optional,
-like the argument for buffer-enable-undo.
+** The argument for 'buffer-disable-undo' is now optional,
+like the argument for 'buffer-enable-undo'.
-** The new variable system-configuration holds the canonical three-part
+** The new variable 'system-configuration' holds the canonical three-part
GNU configuration name for which Emacs was built.
-** The function system-name now tries harder to return a fully qualified
+** The function 'system-name' now tries harder to return a fully qualified
domain name.
-** The variable emacs-major-version holds the major version number
+** The variable 'emacs-major-version' holds the major version number
of Emacs. (Currently 19.)
-** The variable emacs-minor-version holds the minor version number
+** The variable 'emacs-minor-version' holds the minor version number
of Emacs. (Currently 23.)
-** The default value of comint-input-autoexpand is now nil.
+** The default value of 'comint-input-autoexpand' is now nil.
However, Shell mode sets it from the value of shell-input-autoexpand,
-whose default value is `history'.
+whose default value is 'history'.
-** The new function set-process-window-size specifies the terminal window
+** The new function 'set-process-window-size' specifies the terminal window
size for a subprocess. On some systems it sends the subprocess a signal
to let it know that the size has changed.
** %P is a new way to display a percentage in the mode line. It
displays the percentage of the buffer text that is above the *bottom*
of the window (which includes the text visible, in the window as well
-as the text above the top). It displays `Top' as well as the
+as the text above the top). It displays 'Top' as well as the
percentage if the top of the buffer is visible on screen.
** %+ in the mode line specs displays `*' if the buffer is modified,
-and otherwise `-'. It never displays `%', as `%*' would do; whether the
+and otherwise '-'. It never displays `%', as `%*' would do; whether the
buffer is read-only has no effect on %+.
-** The new functions ffloor, fceiling, fround and ftruncate take a
+** The new functions 'ffloor', 'fceiling', 'fround' and 'ftruncate' take a
floating point argument and return a floating point result whose value
is a nearby integer. ffloor returns the nearest integer below; fceiling,
the nearest integer above; ftruncate, the nearest integer in the
direction towards zero; fround, the nearest integer.
-** Setting `print-escape-newlines' to a non-nil value now also makes
+** Setting 'print-escape-newlines' to a non-nil value now also makes
formfeeds print as ``\f''.
-** auto-mode-alist now has a new feature. If an element has the form
+** 'auto-mode-alist' now has a new feature. If an element has the form
(REGEXP FUNCTION t), and REGEXP matches the file name, then after calling
FUNCTION, Emacs deletes the part of the file name that matched REGEXP
and then searches auto-mode-alist again for a new match.
.gz can uncompress the file and then put the uncompressed file in the
proper mode according to the name sans .gz.
-** The new function emacs-pid returns the process ID number of Emacs.
+** The new function 'emacs-pid' returns the process ID number of Emacs.
-** user-login-name now consistently checks the LOGNAME environment
-variable before USER. user-original-login-name is obsolete, since it
+** 'user-login-name' now consistently checks the LOGNAME environment
+variable before USER. 'user-original-login-name' is obsolete, since it
provides the same functionality. To ignore the environment variables,
use user-real-login-name.
** There is a more general way of handling the system-specific X
-keysyms. Set the variable system-key-alist to an alist containing
+keysyms. Set the variable 'system-key-alist' to an alist containing
elements of the form (CODE . SYMBOL), where CODE is the numeric keysym
code minus the "vendor specific" bit, and symbol is the name for the
function key.
-** You can use the variable command-line-functions to set up functions
+** You can use the variable 'command-line-functions' to set up functions
to process unrecognized command line arguments. The variable's value
should be a list of functions of no arguments. The functions are
called successively until one of them returns non-nil.
-Each function should access the free variables argi (the current
-argument) and command-line-args-left (the remaining arguments). The
+Each function should access the free variables 'argi' (the current
+argument) and 'command-line-args-left' (the remaining arguments). The
function should return non-nil only if it recognizes and processes the
argument in argi. If it does so, it may consume following arguments
as well by removing them from command-line-args-left.
** There's a new way for a magic file name handler to run a primitive
and inhibit handling of the file name. Here is how to do it:
-(let ((inhibit-file-name-handlers
- (cons 'ange-ftp-file-handler
- (and (eq inhibit-file-name-operation operation)
- inhibit-file-name-handlers)))
- (inhibit-file-name-operation operation))
- (apply this-operation args))
+ (let ((inhibit-file-name-handlers
+ (cons 'ange-ftp-file-handler
+ (and (eq inhibit-file-name-operation operation)
+ inhibit-file-name-handlers)))
+ (inhibit-file-name-operation operation))
+ (apply this-operation args))
-The function find-file-name-handler now takes two arguments. The
+The function 'find-file-name-handler' now takes two arguments. The
second argument is OPERATION, the operation for which the handler is
being sought.
the right thing without receiving the proper value for its second
argument.
-** The variable completion-regexp-list affects the completion
-primitives try-completion and all-completions. They consider
+** The variable 'completion-regexp-list' affects the completion
+primitives 'try-completion' and 'all-completions'. They consider
only the possible completions that match each regexp in the list.
-** Case conversion in the function replace-match has been changed.
+** Case conversion in the function 'replace-match' has been changed.
The old behavior was this: if any word in the old text was
capitalized, replace-match capitalized each word of the replacement
** You can now specify a case table with CANON non-nil and EQV nil.
Then the EQV part of the case table is deduced from CANON.
-** The new function minibuffer-prompt takes no arguments and returns
+** The new function 'minibuffer-prompt' takes no arguments and returns
the current minibuffer prompt string.
-The new function minibuffer-prompt-width takes no arguments and
+The new function 'minibuffer-prompt-width' takes no arguments and
returns the display width of the minibuffer prompt string.
-** The new function frame-first-window returns the window at the
+** The new function 'frame-first-window' returns the window at the
upper left corner of a given frame.
-** wholenump is a new alias for natnump.
+** 'wholenump' is a new alias for 'natnump'.
-** The variable installation-directory, if non-@code{nil}, names a
-directory within which to look for the `lib-src' and `etc'
+** The variable 'installation-directory', if non-@code{nil}, names a
+directory within which to look for the 'lib-src' and 'etc'
subdirectories. This is non-nil when Emacs can't find those
directories in their standard installed locations, but can find them
near where the Emacs executable was found.
-** invocation-name and invocation-directory are now variables as well
+** 'invocation-name' and 'invocation-directory' are now variables as well
as functions. The variable values are the same values that the
functions return: the Emacs program name sans directories, and the
directory it was found in. (invocation-directory may be nil, if Emacs
** The mouse click M-mouse-2 now inserts the current secondary
selection (from Emacs or any other X client) where you click.
It does not move point.
-This command is called mouse-yank-secondary.
+This command is called 'mouse-yank-secondary'.
-mouse-kill-secondary no longer has a key binding by default.
+'mouse-kill-secondary' no longer has a key binding by default.
Clicking M-mouse-3 (mouse-secondary-save-then-kill) twice
may be a convenient enough way of killing the secondary selection.
Or perhaps there should be a keyboard binding for killing the
** New packages:
-*** `icomplete' provides character-by-character information
+*** 'icomplete' provides character-by-character information
about what you could complete if you type TAB.
-*** `avoid' moves the mouse away from point so that it doesn't hide
+*** 'avoid' moves the mouse away from point so that it doesn't hide
your typing.
-*** `shadowfile' helps you update files that are supposed to be stored
+*** 'shadowfile' helps you update files that are supposed to be stored
identically in different places (perhaps on different machines).
** C-h p now knows about four additional keywords: data, faces, mouse,
** Display of buffers with text properties is much faster now.
-** The feature previously announced whereby `insert' does not inherit
+** The feature previously announced whereby 'insert' does not inherit
text properties from surrounding text was not fully implemented
-before; but now it is. use `insert-and-inherit' if you wish to
+before; but now it is. use 'insert-and-inherit' if you wish to
inherit sticky properties from the surrounding text.
-** The functions next-property-change, previous-property-change,
-next-single-property-change, and previous-single-property-change
+** The functions 'next-property-change', 'previous-property-change',
+'next-single-property-change', and 'previous-single-property-change'
now take one additional optional argument LIMIT that is a position at
which to stop scanning. If scan ends without finding the property
change sought, these functions return the specified limit.
To define case-conversion for these characters for ISO 8859/1,
load the library iso-syntax. (This is not new.)
-** M-TAB in Text mode now runs the command ispell-complete-word
+** M-TAB in Text mode now runs the command 'ispell-complete-word'
which performs completion using the spelling dictionary.
The spelling correction submenu now includes this command
** In incremental search, you can use M-y to yank the most recent kill
into the search string.
-** The new function ispell-message checks the spelling of a message
+** The new function 'ispell-message' checks the spelling of a message
you are about to send or post. It ignores text cited from other
messages.
the user option variable adaptive-fill-mode have its intended effect.
** Local variable specifications in files for variables whose names end
-in `-hook' and `-function' are now controlled by the variable
-`enable-local-eval', just like the `eval' variable.
+in '-hook' and '-function' are now controlled by the variable
+'enable-local-eval', just like the 'eval' variable.
** C-x r j (jump-to-register) when restoring a frame configuration now
makes all unwanted frames (existing frames not mentioned in the
C-x r j.
** You can customize the calendar to display weeks beginning on
-Monday: set the variable `calendar-week-start-day' to 1.
+Monday: set the variable 'calendar-week-start-day' to 1.
** Rmail changes.
Input behavior is configurable. Variables control whether some windows
showing the buffer scroll to the bottom before insertion. These are
-`comint-scroll-to-bottom-on-input' and `before-change-function'. By default,
+'comint-scroll-to-bottom-on-input' and 'before-change-function'. By default,
insertion causes the selected window to scroll to the bottom before insertion
occurs.
window individually if point was already at the end of the buffer in
that window.
-If `comint-scroll-show-maximum-output' is non-nil (which is the
+If 'comint-scroll-show-maximum-output' is non-nil (which is the
default), then scrolling due to arrival of output tries to place the
last line of text at the bottom line of the window, so as to show as
much useful text as possible. (This mimics the scrolling behavior of
many terminals.)
-By setting `comint-scroll-to-bottom-on-output', you can opt for having
+By setting 'comint-scroll-to-bottom-on-output', you can opt for having
point jump to the end of the buffer whenever output arrives--no matter
-where in the buffer point was before. If the value is `this', point
-jumps in the selected window. If the value is `all', point jumps in
-each window that shows the comint buffer. If the value is `other',
+where in the buffer point was before. If the value is 'this', point
+jumps in the selected window. If the value is 'all', point jumps in
+each window that shows the comint buffer. If the value is 'other',
point jumps in all nonselected windows that show the current buffer.
The default value is nil, which means point does not jump to the end.
Input history insertion is configurable. A variable controls whether only the
first instance of successive identical inputs is stored in the input history.
-This is `comint-input-ignoredups'.
+This is 'comint-input-ignoredups'.
Completion (bound to TAB) is now more general. Depending on context,
completion now operates on the input history, on command names, or (as
before) on filenames.
Filename completion is configurable. Variables control whether
-file/directory suffix characters are added (`comint-completion-addsuffix'),
+file/directory suffix characters are added ('comint-completion-addsuffix'),
whether shortest completion is acceptable when no further unambiguous
-completion is possible (`comint-completion-recexact'), and the timing of
-completion candidate listing (`comint-completion-autolist').
+completion is possible ('comint-completion-recexact'), and the timing of
+completion candidate listing ('comint-completion-autolist').
Comint mode now provides history expansion. Insert input using `!'
and `^', in the same syntax that typical shells use; then type TAB.
History references in the input may be expanded before insertion into
the input ring, or on input to the interpreter (and therefore
-visibly). The variable `comint-input-autoexpand' specifies which.
+visibly). The variable 'comint-input-autoexpand' specifies which.
You can make the SPC key perform history expansion by binding
-SPC to the command `comint-magic-space'.
+SPC to the command 'comint-magic-space'.
-The command `comint-dynamic-complete-variable' does variable name
+The command 'comint-dynamic-complete-variable' does variable name
completion using the environment variables as set within Emacs. The
variables controlling filename completion apply to variable name
completion too. This command is normally available through the menu
TAB now completes commands, as well as file names and expand history.
Commands are searched for along the path that Emacs has on startup.
-C-c C-f now moves forward a command (`shell-forward-command') and
-C-c C-b now moves backward a command (`shell-backward-command').
+C-c C-f now moves forward a command ('shell-forward-command') and
+C-c C-b now moves backward a command ('shell-backward-command').
Command completion is configurable. The variables controlling
filename completion in comint mode apply, together with a variable
controlling whether to restrict possible completions to only files
-that are executable (`shell-command-execonly').
+that are executable ('shell-command-execonly').
The input history is initialized from the file name given in the
-variable `shell-input-ring-file-name'--normally `.history' in your
+variable 'shell-input-ring-file-name'--normally `.history' in your
home directory.
Directory tracking is more robust. It can cope with command sequences
and forked commands, and can detect the failure of directory changing
commands in most circumstances. It's still not infallible, of course.
-You can now configure the behavior of `pushd'. Variables control
-whether `pushd' behaves like `cd' if no argument is given
-(`shell-pushd-tohome'), pop rather than rotate with a numeric argument
-(`shell-pushd-dextract'), and only add directories to the directory
-stack if they are not already on it (`shell-pushd-dunique'). The
+You can now configure the behavior of 'pushd'. Variables control
+whether 'pushd' behaves like 'cd' if no argument is given
+('shell-pushd-tohome'), pop rather than rotate with a numeric argument
+('shell-pushd-dextract'), and only add directories to the directory
+stack if they are not already on it ('shell-pushd-dunique'). The
configuration you choose should match the underlying shell, of course.
\f
* Emacs Lisp programming changes in Emacs 19.20.
-** A new function `remove-hook' is now used to remove a hook that you might
-have added with `add-hook'.
+** A new function 'remove-hook' is now used to remove a hook that you might
+have added with 'add-hook'.
-** There is now a Lisp pretty-printer in the library `pp'.
+** There is now a Lisp pretty-printer in the library 'pp'.
** The partial Common Lisp support has been entirely reimplemented.
-** When you insert text using `insert', `insert-before-markers' or
-`insert-buffer-substring', text properties are no longer inherited
+** When you insert text using 'insert', 'insert-before-markers' or
+'insert-buffer-substring', text properties are no longer inherited
from the surrounding text.
When you want to inherit text properties, use the new functions
-`insert-and-inherit' or `insert-before-markers-and-inherit'.
+'insert-and-inherit' or 'insert-before-markers-and-inherit'.
The self-inserting character command does do inheritance.
** Frame creation hooks.
-The function make-frame now runs the normal hooks
-before-make-frame-hook and after-make-frame-hook.
+The function 'make-frame' now runs the normal hooks
+'before-make-frame-hook' and 'after-make-frame-hook'.
-** You can now use function-key-map to make a key an alias for other
+** You can now use 'function-key-map' to make a key an alias for other
key sequences that can vary depending on circumstances. To do this,
give the key a definition in function-key-map which is a function
rather than a specific expansion key sequence.
the event that follows. For example, here's how to define C-c h to
turn the character that follows into a hyper character:
-(define-key function-key-map "\C-ch" 'hyperify)
+ (define-key function-key-map "\C-ch" 'hyperify)
-(defun hyperify (prompt)
- (let ((e (read-event)))
- (vector (if (numberp e)
- (logior (ash 1 20) e)
- (if (memq 'hyper (event-modifiers e))
- e
- (add-event-modifier "H-" e))))))
+ (defun hyperify (prompt)
+ (let ((e (read-event)))
+ (vector (if (numberp e)
+ (logior (ash 1 20) e)
+ (if (memq 'hyper (event-modifiers e))
+ e
+ (add-event-modifier "H-" e))))))
-(defun add-event-modifier (string e)
- (let ((symbol (if (symbolp e) e (car e))))
- (setq symbol (intern (concat string (symbol-name symbol))))
- (if (symbolp e)
- symbol
- (cons symbol (cdr e)))))
+ (defun add-event-modifier (string e)
+ (let ((symbol (if (symbolp e) e (car e))))
+ (setq symbol (intern (concat string (symbol-name symbol))))
+ (if (symbolp e)
+ symbol
+ (cons symbol (cdr e)))))
The character translation function gets one argument, which is the
prompt that was specified in read-key-sequence--or nil if the key
save text properties in files, and read text properties from files.
You can program any file format you like.
-The variable `write-region-annotation-functions' should contain a list
-of functions to be run by `write-region' to encode text properties in
+The variable 'write-region-annotation-functions' should contain a list
+of functions to be run by 'write-region' to encode text properties in
some fashion as annotations to the text that is written.
Each function in the list is called with two arguments: the start and
Each list returned by one of these functions must be already sorted in
increasing order by POSITION. If there is more than one function,
-`write-region' merges the lists destructively into one sorted list.
+'write-region' merges the lists destructively into one sorted list.
-When `write-region' actually writes the text from the buffer to the
+When 'write-region' actually writes the text from the buffer to the
file, it intermixes the specified annotations at the corresponding
positions. All this takes place without modifying the buffer.
-The variable `after-insert-file-functions' should contain a list of
+The variable 'after-insert-file-functions' should contain a list of
functions to be run each time a file's contents have been inserted into
a buffer. Each function receives one argument, the length of the
inserted text; point indicates the start of that text. The function
These functions should always return with point at the beginning of
the inserted text.
-The intended use of `after-insert-file-functions' is for converting
+The intended use of 'after-insert-file-functions' is for converting
some sort of textual annotations into actual text properties. But many
other uses may be possible.
** Comint output hook.
-There is now a hook, comint-output-filter-hook, that is run-hooks'ed by the
-output filter, comint-output-filter. This is useful for scrolling (see
+There is now a hook, 'comint-output-filter-hook', that is run by the
+output filter, 'comint-output-filter'. This is useful for scrolling (see
below), but also things like processing output for specific text, output
highlighting, etc.
So that such output processing may be done efficiently, there is a new
-variable, comint-last-output-start, that records the position of the start of
+variable, 'comint-last-output-start', that records the position of the start of
the last output inserted into the buffer (effectively the previous value
of process-mark). Output processing functions should process the text
-between comint-last-output-start (or perhaps the beginning of the line that
+between 'comint-last-output-start' (or perhaps the beginning of the line that
the position lies on) and process-mark.
** Comint scrolling.
The input following point is not deleted when moving around the input history
(with M-p etc.). Emacs maintainers may not like this. However, I feel this
-is a useful feature. The simple remedy is to put end-of-line in before
-delete-region in comint-previous-matching-input.
+is a useful feature. The simple remedy is to put 'end-of-line' in before
+'delete-region' in 'comint-previous-matching-input'.
The input history retrieval commands still wrap-around the input ring, unlike
Emacs command history.
** Another simpler package saveplace.el records your position in each
file when you kill its buffer (or kill Emacs), and jumps to the same
position when you visit the file again (even in another Emacs
-session). Use `toggle-save-place' to turn on place-saving in a given file;
+session). Use 'toggle-save-place' to turn on place-saving in a given file;
use (setq-default save-place t) to turn it on for all files.
** In Outline mode, you can now customize how to compute the level of a
-heading line. Set `outline-level' to a function of no arguments which
+heading line. Set 'outline-level' to a function of no arguments which
returns the level, assuming point is at the beginning of a heading
line.
** You can now specify the prefix key to use for Outline minor mode.
-(The default is C-c.) Set the variable outline-minor-mode-prefix to
+(The default is C-c.) Set the variable 'outline-minor-mode-prefix' to
the key sequence you want to use (as a string or vector).
** In Bibtex mode, C-c e has been changed to C-c C-b. This is because
C-c followed by a letter is reserved for users.
-** The `mod' function is no longer an alias for `%', but is a separate function
-that yields a result with the same sign as the divisor. `floor' now takes an
+** The 'mod' function is no longer an alias for `%', but is a separate function
+that yields a result with the same sign as the divisor. 'floor' now takes an
optional second argument, which divides the first argument before the floor is
taken.
command history.
** If the directory containing the Emacs executable has a sibling named
-`lisp', that `lisp' directory is added to the end of `load-path'
+'lisp', that 'lisp' directory is added to the end of 'load-path'
(provided you don't override the normal value with the EMACSLOADPATH
environment variable). This feature may make it easier to move
an installed Emacs from place to place.
the variable calendar-holidays for details of the new, improved
format.
-The hook `diary-display-hook' has been split into two:
+The hook 'diary-display-hook' has been split into two:
diary-display-hook which should be used ONLY for the display and
-`diary-hook' which should be used for appointment notification. If
+'diary-hook' which should be used for appointment notification. If
diary-display-hook is nil (the default), simple-diary-display is
used. This allows the diary hooks to be correctly set with add-hook.
are not defined convert to the corresponding double event; if that is
also not defined, it may convert further.
-** The new function event-click-count returns the number of clicks,
+** The new function 'event-click-count' returns the number of clicks,
from an event which is a list. It is 1 for an ordinary click, drag,
or button-down event, 2 for a double event, and 3 or more for a triple
event.
-** The new function previous-frame is like next-frame, but moves
+** The new function 'previous-frame' is like 'next-frame', but moves
around through the set of existing frames in the opposite order.
-** The post-command-hook now runs even after commands that get an error
+** The 'post-command-hook' now runs even after commands that get an error
and return to top level. As a consequence of the same change, this
hook also runs before Emacs reads the first command. That might sound
-paradoxical, as if this hook were the same as the pre-command-hook.
+paradoxical, as if this hook were the same as the 'pre-command-hook'.
Actually, they are not similar; the latter runs before *execution* of
a command, but after it has been read.
** You can turn off the text property hooks that run when point moves
-to certain places in the buffer, by binding inhibit-point-motion-hooks
+to certain places in the buffer, by binding 'inhibit-point-motion-hooks'
to a non-nil value.
** Inserting a string with no text properties into the buffer normally
dominates. Otherwise, the following character's property value is
used if it is front-sticky for that property.
-** If you give a character a non-nil `invisible' text property, the
+** If you give a character a non-nil 'invisible' text property, the
character does not appear on the screen. This works much like
selective display.
** In Info, when you go to a node, it runs the normal hook
Info-selection-hook.
-** You can use the new function `invocation-directory' to get the name
+** You can use the new function 'invocation-directory' to get the name
of the directory containing the Emacs executable that was run.
-** Entry to the minibuffer runs the normal hook minibuffer-setup-hook.
+** Entry to the minibuffer runs the normal hook 'minibuffer-setup-hook'.
-** The new function minibuffer-window-active-p takes one argument, a
+** The new function 'minibuffer-window-active-p' takes one argument, a
minibuffer window, and returns t if the window is currently active.
you can select a completion by clicking mouse button 2
on that completion.
-** Use the command `list-faces-display' to display a list of
+** Use the command 'list-faces-display' to display a list of
all the currently defined faces, showing what they look like.
** Menu bar items from local maps now come after the usual items.
** The key binding C-x a C-h has been eliminated.
This is because it got in the way of the general feature of typing
C-h after a prefix character. If you want to run
-inverse-add-global-abbrev, you can use C-x a - or C-x a i g instead.
+'inverse-add-global-abbrev', you can use C-x a - or C-x a i g instead.
-** If you set the variable `rmail-mail-new-frame' to a non-nil value,
+** If you set the variable 'rmail-mail-new-frame' to a non-nil value,
all the Rmail commands to send mail make a new frame to do it in.
When you send the message, or use the menu bar command not to send it,
that frame is deleted.
inbox file format otherwise. C-o and o are different only when you
specify a new file.
-** The function `copy-face' now takes an optional fourth argument
+** The function 'copy-face' now takes an optional fourth argument
NEW-FRAME. If you specify this, it copies the definition of face
OLD-FACE on frame FRAME to face NEW-NAME on frame NEW-FRAME.
** A local map can now cancel out one of the global map's menu items.
-Just define that subcommand of the menu item with `undefined'
-as the definition. For example, this cancels out the `Buffers' item
+Just define that subcommand of the menu item with 'undefined'
+as the definition. For example, this cancels out the 'Buffers' item
for the current major mode:
(local-set-key [menu-bar buffer] 'undefined)
** To put global items at the end of the menu bar, use the new variable
-`menu-bar-final-items'. It should be a list of symbols--event types
+'menu-bar-final-items'. It should be a list of symbols--event types
bound in the menu bar. The menu bar items for these symbols are
moved to the end.
-** The list returned by `buffer-local-variables' now contains cons-cell
+** The list returned by 'buffer-local-variables' now contains cons-cell
elements of the form (SYMBOL . VALUE) only for buffer-local variables
that have values. For unbound buffer-local variables, the variable
name (symbol) appears directly as an element of the list.
-** The `modification-hooks' property of a character no longer affects
+** The 'modification-hooks' property of a character no longer affects
insertion; it runs only for deletion and modification of the character.
-To detect insertion, use `insert-in-front-hooks' and
-`insert-behind-hooks' properties. The former runs when text is
+To detect insertion, use 'insert-in-front-hooks' and
+'insert-behind-hooks' properties. The former runs when text is
inserted immediately preceding the character that has the property;
the latter runs when text is inserted immediately following the
character.
** Buffer modification now runs hooks belonging to overlays as well as
hooks belonging to characters. If an overlay has a
-`modification-hooks' property, it applies to any change to text in the
+'modification-hooks' property, it applies to any change to text in the
overlay, and any insertion within the overlay. If the overlay has a
-`insert-in-front-hooks' property, it runs for insertion at the
+'insert-in-front-hooks' property, it runs for insertion at the
beginning boundary of the overlay. If the overlay has an
-`insert-behind-hooks' property, it runs for insertion at the end
+'insert-behind-hooks' property, it runs for insertion at the end
boundary of the overlay.
The values of these properties should be lists of functions. Each
followed by the bounds of the range being modified.
** The new `-name NAME' option directs Emacs to search for its X
-resources using the name `NAME', and sets the title of the initial
+resources using the name 'NAME', and sets the title of the initial
frame. This argument was added for consistency with other X clients.
** The new `-xrm DATABASE' option tells Emacs to treat the string
The paths in the variables XFILESEARCHPATH, XUSERFILESEARCHPATH, and
XAPPLRESDIR may contain %-escapes (like the control strings passed to
-the Emacs lisp `format' function or C printf function), which Emacs expands.
+the Emacs lisp 'format' function or C printf function), which Emacs expands.
%N is replaced by the string "Emacs" wherever it occurs.
%T is replaced by "app-defaults" wherever it occurs.
This feature was added for consistency with other X applications.
-** The new function `text-property-any' scans the region of text from
-START to END to see if any character's property PROP is `eq' to
+** The new function 'text-property-any' scans the region of text from
+START to END to see if any character's property PROP is 'eq' to
VALUE. If so, it returns the position of the first such character.
Otherwise, it returns nil.
The optional fifth argument, OBJECT, specifies the string or buffer to
be examined.
-** The new function `text-property-not-all' scans the region of text from
-START to END to see if any character's property PROP is not `eq' to
+** The new function 'text-property-not-all' scans the region of text from
+START to END to see if any character's property PROP is not 'eq' to
VALUE. If so, it returns the position of the first such character.
Otherwise, it returns nil.
The optional fifth argument, OBJECT, specifies the string or buffer to
be examined.
-** The function `delete-windows-on' now takes an optional second
+** The function 'delete-windows-on' now takes an optional second
argument FRAME, which specifies which frames it should affect.
- + If FRAME is nil or omitted, then `delete-windows-on' deletes windows
+ + If FRAME is nil or omitted, then 'delete-windows-on' deletes windows
showing BUFFER (its first argument) on all frames.
- + If FRAME is t, then `delete-windows-on' only deletes windows on the
+ + If FRAME is t, then 'delete-windows-on' only deletes windows on the
selected frame; other frames are unaffected.
- + If FRAME is a frame, then `delete-windows-on' only deletes windows on
+ + If FRAME is a frame, then 'delete-windows-on' only deletes windows on
the given frame; other frames are unaffected.
the window at a steady rate until you either move the mouse back into
the window or release the button.
-** RET now exits `query-replace' and `query-replace-regexp'; this makes it
+** RET now exits 'query-replace' and 'query-replace-regexp'; this makes it
more consistent with the incremental search facility, which uses RET
to end the search.
** In C mode, C-c C-u now runs c-up-conditional.
C-c C-n and C-c C-p now run new commands that move forward
-and back over balanced sets of C conditionals (c-forward-conditional
-and c-backward-conditional).
+and back over balanced sets of C conditionals ('c-forward-conditional'
+and 'c-backward-conditional').
** The Edit entry in the menu bar has a new alternative:
"Choose Next Paste". It gives you a menu showing the various
strings in the kill ring; click on one to select it as the text
to be yanked ("pasted") the next time you yank.
-** If you enable Transient Mark mode and set `mark-even-if-inactive' to
+** If you enable Transient Mark mode and set 'mark-even-if-inactive' to
non-nil, then the region is highlighted in a transient fashion just as
normally in Transient Mark mode, but the mark really remains active
all the time; commands that use the region can be used even if the
that start with that prefix.
** The VC package now searches for version control commands in the
-directories named by the variable `vc-path'; its value should be a
+directories named by the variable 'vc-path'; its value should be a
list of strings.
** If you are visiting a file that has locks registered under RCS,
VC now displays each lock's owner and version number in the mode line
-after the string `RCS'. If there are no locks, VC displays the head
+after the string 'RCS'. If there are no locks, VC displays the head
version number.
-** When using X, if you load the `paren' library, Emacs automatically
+** When using X, if you load the 'paren' library, Emacs automatically
underlines or highlights the matching paren whenever point is
next to the outside of a paren. When point is before an open-paren,
this shows the matching close; when point is after a close-paren,
this shows the matching open.
-** The new function `define-key-after' is like `define-key',
+** The new function 'define-key-after' is like 'define-key',
but takes an extra argument AFTER. It places the newly defined
binding after the binding for the event AFTER.
-** `accessible-keymaps' now takes an optional second argument, PREFIX.
+** 'accessible-keymaps' now takes an optional second argument, PREFIX.
If PREFIX is non-nil, it means the value should include only maps for
keys that start with PREFIX.
-`describe-bindings' also accepts an optional argument PREFIX which
+'describe-bindings' also accepts an optional argument PREFIX which
means to describe only the keys that start with PREFIX.
-** The variable `prefix-help-command' hold a command to run to display help
-whenever the character `help-char' follows a prefix key and does not have
+** The variable 'prefix-help-command' hold a command to run to display help
+whenever the character 'help-char' follows a prefix key and does not have
a key binding in that context.
** Emacs now detects double- and triple-mouse clicks. A single mouse
To count as double- and triple-clicks, mouse clicks must be at the
same location as the first click, and the number of milliseconds
between the first release and the second must be less than the value
-of the lisp variable `double-click-time'. Setting `double-click-time'
+of the lisp variable 'double-click-time'. Setting 'double-click-time'
to nil disables multi-click detection. Setting it to t removes the
time limit; Emacs then detects multi-clicks by position only.
-If `read-key-sequence' finds no binding for a double-click event, but
+If 'read-key-sequence' finds no binding for a double-click event, but
the corresponding single-click event would be bound,
-`read-key-sequence' demotes it to a single-click. Similarly, it
+'read-key-sequence' demotes it to a single-click. Similarly, it
demotes unbound triple-clicks to double- or single-clicks. This means
you don't have to distinguish between single- and multi-clicks if you
don't want to.
-Emacs reports all clicks after the third as `triple-mouse-N' clicks,
+Emacs reports all clicks after the third as 'triple-mouse-N' clicks,
but increments the click count after POSITION. For example, a fourth
click, soon after the third and at the same location, produces a pair
of events of the form:
this denotes exactly the same position as the list:
(WINDOW PLACE-SYMBOL (COLUMN . ROW) TIMESTAMP)
That is, the event occurred over a non-textual area of the frame,
-specified by PLACE-SYMBOL, a symbol like `mode-line' or
-`vertical-scroll-bar'.
+specified by PLACE-SYMBOL, a symbol like 'mode-line' or
+'vertical-scroll-bar'.
Enclosing PLACE-SYMBOL in a singleton list does not change the
-position denoted, but the `read-key-sequence' function uses the
+position denoted, but the 'read-key-sequence' function uses the
presence or absence of the singleton list to tell whether or not it
should prefix the event with its place symbol.
-Normally, `read-key-sequence' prefixes mouse events occurring over
+Normally, 'read-key-sequence' prefixes mouse events occurring over
non-textual areas with their PLACE-SYMBOLs, to select the sub-keymap
appropriate for the event; for example, clicking on the mode line
produces a sequence like
[mode-line (mouse-1 POSN)]
However, if lisp code elects to unread the resulting key sequence by
-placing it in the `unread-command-events' variable, it is important
-that `read-key-sequence' not insert the prefix symbol again; that
+placing it in the 'unread-command-events' variable, it is important
+that 'read-key-sequence' not insert the prefix symbol again; that
would produce a malformed key sequence like
[mode-line mode-line (mouse-1 POSN)]
-For this reason, `read-key-sequence' encloses the event's PLACE-SYMBOL
+For this reason, 'read-key-sequence' encloses the event's PLACE-SYMBOL
in a singleton list when it first inserts the prefix, but doesn't
insert the prefix when processing events whose PLACE-SYMBOLs are
already thus enclosed.
\f
* Changes in version 19.15.
-** `make-frame-visible', which uniconified frames, is now a command,
+** 'make-frame-visible', which uniconified frames, is now a command,
and thus may be bound to a key. This makes sense because frames
respond to user input while iconified.
Emacs has only one secondary selection at any time. Starting to set
a new one cancels any previous one. The secondary selection displays
-using a face named `secondary-selection'.
+using a face named 'secondary-selection'.
-** There's a new way to request use of Supercite (sc.el). Do this:
+** New hook 'mail-citation-hook'. E.g. to request use of Supercite (sc.el):
- (add-hook 'mail-citation-hook 'sc-cite-original)
+ (add-hook 'mail-citation-hook #'sc-cite-original)
Currently this works with Rmail. In the future, other Emacs based
mail-readers should be modified to understand this hook also.
** When a regular expression contains `\(...\)' inside a repetition
operator such as `*' or `+', and you ask about the range that was matched
-using `match-beginning' and `match-end', the range you get corresponds
+using 'match-beginning' and 'match-end', the range you get corresponds
to the *last* repetition *only*. In Emacs 18, you would get a range
corresponding to all the repetitions.
\f
* Changes in version 19.14.
-** To modify read-only text, bind the variable `inhibit-read-only'
+** To modify read-only text, bind the variable 'inhibit-read-only'
to a non-nil value. If the value is t, then all reasons that might
-make text read-only are inhibited (including `read-only' text properties).
-If the value is a list, then a `read-only' property is inhibited
-if it is `memq' in the list.
+make text read-only are inhibited (including 'read-only' text properties).
+If the value is a list, then a 'read-only' property is inhibited
+if it is 'memq' in the list.
-** If you call `get-buffer-window' passing t as its second argument, it
+** If you call 'get-buffer-window' passing t as its second argument, it
will only search for windows on visible frames. Previously, passing t
-as the second argument caused `get-buffer-window' to search all
+as the second argument caused 'get-buffer-window' to search all
frames, visible or not.
-** If you call `other-buffer' with a nil or omitted second argument, it
+** If you call 'other-buffer' with a nil or omitted second argument, it
will ignore buffers displayed windows on any visible frame, not just
the selected frame.
** The command M-( now inserts spaces outside the open-parentheses in
some cases--depending on the syntax classes of the surrounding
-characters. If the variable `parens-dont-require-spaces' is non-nil,
+characters. If the variable 'parens-dont-require-spaces' is non-nil,
it inhibits insertion of these spaces.
** The GUD package now supports the debugger known as xdb on HP/UX
-systems. Use M-x xdb. The variable `gud-xdb-directories' lets you
+systems. Use M-x xdb. The variable 'gud-xdb-directories' lets you
specify a list of directories to search for source code.
** If you are using the mailabbrev package, you should note that its
-function for defining an alias is now called `define-mail-abbrev'.
-This package no longer contains a definition for `define-mail-alias';
+function for defining an alias is now called 'define-mail-abbrev'.
+This package no longer contains a definition for 'define-mail-alias';
that name is used only in mailaliases.
** Inserted characters now inherit the properties of the text before
them, by default, rather than those of the following text.
-** The function `insert-file-contents' now takes optional arguments BEG
+** The function 'insert-file-contents' now takes optional arguments BEG
and END that specify which part of the file to insert. BEG defaults to
0 (the beginning of the file), and END defaults to the end of the file.
\f
* Changes in version 19.13.
-** Magic file names can now handle the `load' operation.
+** Magic file names can now handle the 'load' operation.
** Bibtex mode now sets up special entries in the menu bar.
* Changes in version 19.12.
** You can now make many of the sort commands ignore case by setting
-`sort-fold-case' to a non-nil value.
+'sort-fold-case' to a non-nil value.
\f
** Supercite is installed.
-** `write-file-hooks' functions that return non-nil are responsible
+** 'write-file-hooks' functions that return non-nil are responsible
for making a backup file if you want that to be done.
To do so, execute the following code:
(or buffer-backed-up (backup-buffer))
You might wish to save the file modes value returned by
-`backup-buffer' and use that to set the mode bits of the file
-that you write. This is what `basic-save-buffer' does when
+'backup-buffer' and use that to set the mode bits of the file
+that you write. This is what 'basic-save-buffer' does when
it writes a file in the usual way.
(This is not actually new, but wasn't documented before.)
\f
* Changes in version 19.10.
-** The command `repeat-complex-command' is now on C-x ESC ESC.
+** The command 'repeat-complex-command' is now on C-x ESC ESC.
It used to be bound to C-x ESC.
The reason for this change is to make function keys work after C-x.
-** The variable `highlight-nonselected-windows' now controls whether
+** The variable 'highlight-nonselected-windows' now controls whether
the region is highlighted in windows other than the selected window
(in Transient Mark mode only, of course, and currently only when
using X).
argument, this command enables European character display if and only
if the argument is positive.
-** The `-i' command-line argument tells Emacs to use a picture of the
+** The '-i' command-line argument tells Emacs to use a picture of the
GNU gnu as its icon, instead of letting the window manager choose an
icon for it. This option used to insert a file into the current
-buffer; use `-insert' to do that now.
+buffer; use '-insert' to do that now.
-** The `configure' script now supports `--prefix' and `--exec-prefix'
+** The 'configure' script now supports '--prefix' and '--exec-prefix'
options.
-The `--prefix=PREFIXDIR' option specifies where the installation process
+The '--prefix=PREFIXDIR' option specifies where the installation process
should put emacs and its data files. This defaults to `/usr/local'.
- Emacs (and the other utilities users run) go in PREFIXDIR/bin
- (unless the `--exec-prefix' option says otherwise).
+ (unless the '--exec-prefix' option says otherwise).
- The architecture-independent files go in PREFIXDIR/lib/emacs/VERSION
(where VERSION is the version number of Emacs, like `19.7').
- The architecture-dependent files go in
PREFIXDIR/lib/emacs/VERSION/CONFIGURATION
(where CONFIGURATION is the configuration name, like mips-dec-ultrix4.2),
- unless the `--exec-prefix' option says otherwise.
+ unless the '--exec-prefix' option says otherwise.
-The `--exec-prefix=EXECDIR' option allows you to specify a separate
+The '--exec-prefix=EXECDIR' option allows you to specify a separate
portion of the directory tree for installing architecture-specific
files, like executables and utility programs. If specified,
- Emacs (and the other utilities users run) go in EXECDIR/bin, and
EXECDIR/lib/emacs/VERSION/CONFIGURATION.
EXECDIR/bin should be a directory that is normally in users' PATHs.
-** When running under X, the new lisp function `x-list-fonts'
+** When running under X, the new lisp function 'x-list-fonts'
allows code to find out which fonts are available from the X server.
The first argument PATTERN is a string, perhaps with wildcard characters;
the * character matches any substring, and
the ? character matches any single character.
PATTERN is case-insensitive.
If the optional arguments FACE and FRAME are specified, then
-`x-list-fonts' returns only fonts the same size as FACE on FRAME.
+'x-list-fonts' returns only fonts the same size as FACE on FRAME.
\f
for input, which often avoids the need to do these things while you
are typing.
-The variable `auto-save-timeout' says how many seconds Emacs should
+The variable 'auto-save-timeout' says how many seconds Emacs should
wait, after you stop typing, before it does an auto save and a garbage
collection.
If you reenable Auto Save mode in that buffer, Emacs will start saving
it again with no further warnings.
-** A new minor mode called Line Number mode displays the current line
+** A new minor mode called 'line-number-mode' displays the current line
number in the mode line, updating it as necessary when you move
point.
However, if the buffer is very large (larger than the value of
-`line-number-display-limit'), then the line number doesn't appear.
+'line-number-display-limit'), then the line number doesn't appear.
This is because computing the line number can be painfully slow if the
buffer is very large.
directions.
** You can suppress next-line's habit of inserting a newline when
-called at the end of a buffer by setting next-line-add-newlines to nil
+called at the end of a buffer by setting 'next-line-add-newlines' to nil
(it defaults to t).
** You can now get back recent minibuffer inputs conveniently. While
there are separate history lists for different kinds of input. For
example, there is a list for file names, used by all the commands that
read file names. There is a list for arguments of commands like
-`query-replace'. There are also very specific history lists, such
-as the one that `compile' uses for compilation commands.
+'query-replace'. There are also very specific history lists, such
+as the one that 'compile' uses for compilation commands.
** You can now display text in a mixture of fonts and colors, using the
"face" feature, together with the overlay and text property features.
C-x a is a prefix for abbrev commands.
C-x r C-SPC
-C-x r SPC point-to-register (Was C-x /)
-C-x r j jump-to-register (Was C-x j)
-C-x r s copy-to-register (Was C-x x)
-C-x r i insert-register (Was C-x g)
-C-x r r copy-rectangle-to-register (Was C-x r)
-C-x r k kill-rectangle
-C-x r y yank-rectangle
-C-x r o open-rectangle
-C-x r f frame-configuration-to-register
+C-x r SPC 'point-to-register' (Was C-x /)
+C-x r j 'jump-to-register' (Was C-x j)
+C-x r s 'copy-to-register' (Was C-x x)
+C-x r i 'insert-register' (Was C-x g)
+C-x r r 'copy-rectangle-to-register' (Was C-x r)
+C-x r k 'kill-rectangle'
+C-x r y 'yank-rectangle'
+C-x r o 'open-rectangle'
+C-x r f 'frame-configuration-to-register'
(This saves the state of all windows in all frames.)
-C-x r w window-configuration-to-register
+C-x r w 'window-configuration-to-register'
(This saves the state of all windows in the selected frame.)
(Use C-x r j to restore a configuration saved with C-x r f or C-x r w.)
-C-x n n narrow-to-region (Was C-x n)
-C-x n p narrow-to-page (Was C-x p)
-C-x n w widen (Was C-x w)
+C-x n n 'narrow-to-region' (Was C-x n)
+C-x n p 'narrow-to-page' (Was C-x p)
+C-x n w 'widen' (Was C-x w)
-C-x a l add-mode-abbrev (Was C-x C-a)
-C-x a g add-global-abbrev (Was C-x +)
-C-x a i l inverse-add-mode-abbrev (Was C-x C-h)
-C-x a i g inverse-add-global-abbrev (Was C-x -)
-C-x a e expand-abbrev (Was C-x ')
+C-x a l 'add-mode-abbrev' (Was C-x C-a)
+C-x a g 'add-global-abbrev' (Was C-x +)
+C-x a i l 'inverse-add-mode-abbrev' (Was C-x C-h)
+C-x a i g 'inverse-add-global-abbrev' (Was C-x -)
+C-x a e 'expand-abbrev' (Was C-x ')
(The old key bindings C-x /, C-x j, C-x x and C-x g
have not yet been removed.)
** The keys M-g (fill-region) and C-x a (append-to-buffer)
have been eliminated.
-** The new command `string-rectangle' inserts a specified string on
+** The new command 'string-rectangle' inserts a specified string on
each line of the region-rectangle.
-** C-x 4 r is now `find-file-read-only-other-window'.
+** C-x 4 r is now 'find-file-read-only-other-window'.
-** C-x 4 C-o is now `display-buffer', which displays a specified buffer
+** C-x 4 C-o is now 'display-buffer', which displays a specified buffer
in another window without selecting it.
** Picture mode has been substantially improved. The picture editing commands
M-x outline-mode is unchanged; it still switches to Outline mode as a
major mode.
-** The default setting of `version-control' comes from the environment
+** The default setting of 'version-control' comes from the environment
variable VERSION_CONTROL.
** The user option for controlling whether files can set local
-variables is now called `enable-local-variables'. A value of t means
+variables is now called 'enable-local-variables'. A value of t means
local-variables lists are obeyed; nil means they are ignored; anything
else means query the user.
-The user option for controlling use of the `eval' local variable is
-now called is `enable-local-eval'; its values are interpreted like
-those of `enable-local-variables'.
+The user option for controlling use of the 'eval' local variable is
+now called is 'enable-local-eval'; its values are interpreted like
+those of 'enable-local-variables'.
** X Window System changes:
deletion.
** The variables that control how much undo information to save have
-been renamed to `undo-limit' and `undo-strong-limit'. They used to be
-called `undo-threshold' and `undo-high-threshold'.
+been renamed to 'undo-limit' and 'undo-strong-limit'. They used to be
+called 'undo-threshold' and 'undo-high-threshold'.
** You can now use kill commands in read-only buffers. They don't
actually change the buffer, and Emacs will beep and warn you that the
M-^ deletes the prefix (if it occurs) after the newline that it
deletes.
-** C-M-l now runs the command `reposition-window'. It scrolls the
+** C-M-l now runs the command 'reposition-window'. It scrolls the
window heuristically in a way designed to get useful information onto
the screen.
you must use M-. with a prefix argument, instead.
The motive for this change is so that you can more reliably use
-M-, to resume a suspended `tags-search' or `tags-query-replace'.
+M-, to resume a suspended 'tags-search' or 'tags-query-replace'.
-** C-x s (`save-some-buffers') now gives you more options when it asks
-whether to save a particular buffer. In addition to `y' or `n', you
+** C-x s ('save-some-buffers') now gives you more options when it asks
+whether to save a particular buffer. In addition to 'y' or 'n', you
can answer `!' to save all the remaining buffers, `.' to save this
buffer but not save any others, ESC to stop saving and exit the
command, and C-h to get help. These options are analogous to those
-of `query-replace'.
+of 'query-replace'.
** M-x make-symbolic-link does not expand its first argument.
This lets you make a link with a target that is a relative file name.
paragraph, and each collection of entries from one person on one day
is considered a page.
-** The `comment-region' command adds comment delimiters to the lines that
+** The 'comment-region' command adds comment delimiters to the lines that
start in the region, thus commenting them out. With a negative argument,
it deletes comment delimiters from the lines in the region--this cancels
-the effect of `comment-region' without an argument.
+the effect of 'comment-region' without an argument.
-With a positive argument, `comment-region' adds comment delimiters
+With a positive argument, 'comment-region' adds comment delimiters
but duplicates the last character of the comment start sequence as many
times as the argument specifies. This is a way of calling attention to
the comment. In Lisp, you should use an argument at least two, because
the indentation convention for single semicolon comments does not leave
them at the beginning of a line.
-** If `split-window-keep-point' is non-nil, C-x 2 tries to avoid
+** If 'split-window-keep-point' is non-nil, C-x 2 tries to avoid
shifting any text on the screen by putting point in whichever window
happens to contain the screen line the cursor is already on.
-The default is that `split-window-keep-point' is non-nil on slow
+The default is that 'split-window-keep-point' is non-nil on slow
terminals.
** M-x super-apropos is like M-x apropos except that it searches both
buffer with a particular name.
** M-x compare-windows with a prefix argument ignores changes in whitespace.
-If `compare-ignore-case' is non-nil, then differences in case are also
+If 'compare-ignore-case' is non-nil, then differences in case are also
ignored.
-** `backward-paragraph' is now bound to M-{ by default, and `forward-paragraph'
+** 'backward-paragraph' is now bound to M-{ by default, and 'forward-paragraph'
to M-}. Originally, these commands were bound to M-[ and M-], but they were
running into conflicts with the use of function keys. On many terminals,
function keys send a sequence beginning ESC-[, so many users have defined this
default; these commands seem to be often hit by accident, and can be
quite destructive if their effects are not noticed immediately.
-** The function `erase-buffer' is now interactive, but disabled by default.
+** The function 'erase-buffer' is now interactive, but disabled by default.
** When visiting a new file, Emacs attempts to abbreviate the file's
-path using the symlinks listed in `directory-abbrev-alist'.
+path using the symlinks listed in 'directory-abbrev-alist'.
** When you visit the same file in under two names that translate into
the same name once symbolic links are handled, Emacs warns you that
you have two buffers for the same file.
** If you wish to avoid visiting the same file in two buffers under
-different names, set the variable `find-file-existing-other-name'
-non-nil. Then `find-file' uses the existing buffer visiting the file,
+different names, set the variable 'find-file-existing-other-name'
+non-nil. Then 'find-file' uses the existing buffer visiting the file,
no matter which of the file's names you specify.
-** If you set `find-file-visit-truename' non-nil, then the file name
+** If you set 'find-file-visit-truename' non-nil, then the file name
recorded for a buffer is the file's truename (in which all symbolic
links have been removed), rather than the name you specify. Setting
-`find-file-visit-truename' also implies the effect of
-`find-file-existing-other-name'.
+'find-file-visit-truename' also implies the effect of
+'find-file-existing-other-name'.
** C-x C-v now inserts the entire current file name in the minibuffer.
This is convenient if you made a small mistake in typing it. Point
** C-x q now uses ESC to terminate all iterations of the keyboard
macro, rather than C-d as before.
-** Use the command `setenv' to set an individual environment variable
+** Use the command 'setenv' to set an individual environment variable
for Emacs subprocesses. Specify a variable name and a value, both as
strings. This command applies only to subprocesses yet to be
started.
-** Use `rot13-other-window' to examine a buffer with rot13.
+** Use 'rot13-other-window' to examine a buffer with rot13.
This command does not change the text in the buffer. Instead, it
creates a window with a funny display table that applies the code when
displaying the text.
** The command `M-x version' now prints the current Emacs version; The
-`version' command is an alias for the `emacs-version' command.
+'version' command is an alias for the 'emacs-version' command.
** More complex changes in existing packages.
-*** `fill-nonuniform-paragraphs' is a new command, much like
-`fill-individual-paragraphs' except that only separator lines separate
+*** 'fill-nonuniform-paragraphs' is a new command, much like
+'fill-individual-paragraphs' except that only separator lines separate
paragraphs. Since this means that the lines of one paragraph may have
different amounts of indentation, the fill prefix used is the smallest
amount of indentation of any of the lines of the paragraph.
-*** Filling is now partially controlled by a new minor mode, Adaptive
-Fill mode. When this mode is enabled (and it is enabled by default),
-if you use M-x fill-region-as-paragraph on an indented paragraph and
-you don't have a fill prefix, it uses the indentation of the second
-line of the paragraph as the fill prefix.
+*** Filling is now partially controlled by a new minor mode,
+'adaptive-fill-mode'. When this mode is enabled (and it is enabled
+by default), if you use M-x fill-region-as-paragraph on an indented
+paragraph and you don't have a fill prefix, it uses the indentation
+of the second line of the paragraph as the fill prefix.
Adaptive Fill mode doesn't have much effect on M-q in most major
modes, because an indented line will probably count as a paragraph
starter and thus each line of an indented paragraph will be considered
a paragraph of its own.
-*** M-q in C mode now runs `c-fill-paragraph', which is designed
+*** M-q in C mode now runs 'c-fill-paragraph', which is designed
for filling C comments. (We assume you don't want to fill
the code in a C program.)
r Replace the word this time with a string typed by you.
When the Ispell process starts, it reads your private dictionary which
-is the file `~/ispell.words'. If you "insert" words with the `i' command,
+is the file `~/ispell.words'. If you "insert" words with the 'i' command,
these words are added to that file, but not right away--only at the end
of the interactive replacement process.
The C-x C-a bindings are also active in source files.
*** The old TeX mode bindings of M-{ and M-} have been moved to C-c {
-and C-c }. (These commands are `up-list' and `tex-insert-braces';
+and C-c }. (These commands are 'up-list' and 'tex-insert-braces';
they are the TeX equivalents of M-( and M-).) This is because M-{
and M-} are now globally defined commands.
`%' is now a word-separator character in Mail mode.
-`mail-signature', if non-nil, tells M-x mail to insert your
+'mail-signature', if non-nil, tells M-x mail to insert your
`.signature' file automatically. If you don't want your signature in
a particular message, just delete it before you send the message.
You can specify the text to insert at the beginning of each line when
you use C-c C-y to yank the message you are replying to. Set
-`mail-yank-prefix' to the desired string. A value of `nil' (the
+'mail-yank-prefix' to the desired string. A value of 'nil' (the
default) means to use indentation, as in Emacs 18. If you use just
C-u as the prefix argument to C-c C-y, then it does not insert
anything at the beginning of the lines, regardless of the value of
-`mail-yank-prefix'.
+'mail-yank-prefix'.
If you like, you can expand mail aliases as abbrevs, as soon as you
type them in. To enable this feature, execute the following:
- (add-hook 'mail-setup-hook 'mail-abbrevs-setup)
+ (add-hook 'mail-setup-hook #'mail-abbrevs-setup)
This can go in your .emacs file.
not from `~/mbox'.
In Rmail, you can retry sending a message that failed
-by typing `M-m' on the failure message.
+by typing 'M-m' on the failure message.
By contrast, another new command M-x rmail-resend is used for
forwarding a message and marking it as "resent from" you
with header fields "Resent-From:" and "Resent-To:".
-`e' is now the command to edit a message.
-To expunge, type `x'. We know this will surprise people
+'e' is now the command to edit a message.
+To expunge, type 'x'. We know this will surprise people
some of the time, but the surprise will not be disastrous--if
-you type `e' meaning to expunge, just turn off editing with C-c C-c
-and then type `x'.
+you type 'e' meaning to expunge, just turn off editing with C-c C-c
+and then type 'x'.
Another new Rmail command is `<', which moves to the first message.
This is for symmetry with `>'.
-Use the `b' command to bury the Rmail buffer and its summary buffer,
+Use the 'b' command to bury the Rmail buffer and its summary buffer,
if any, removing both of them from display on the screen.
-The variable `rmail-output-file-alist' now controls the default
+The variable 'rmail-output-file-alist' now controls the default
for the file to output a message to.
In the Rmail summary buffer, all cursor motion commands select
Conversely, motion and deletion commands in the Rmail buffer also
update the summary buffer. If you set the variable
-`rmail-redisplay-summary' to a non-nil value, then they bring the
+'rmail-redisplay-summary' to a non-nil value, then they bring the
summary buffer (if one exists) back onto the screen.
C-M-t is a new command to make a summary by topic. It uses regexp
messages to show in the summary.
You can easily convert an Rmail file to system mailbox format with the
-command `unrmail'. This command reads two arguments, the name of
+command 'unrmail'. This command reads two arguments, the name of
the Rmail file to convert, and the name of the new mailbox file.
(This command does not change the Rmail file itself.)
Rmail now handles Content Length fields in messages.
-*** `mail-extract-address-components' unpacks mail addresses.
+*** 'mail-extract-address-components' unpacks mail addresses.
It takes an address as a string (the contents of the From field, for
example) and returns a list of the form (FULL-NAME
CANONICAL-ADDRESS).
**** M-x c-up-conditional
-In C mode, `c-up-conditional' moves back to the containing
+In C mode, 'c-up-conditional' moves back to the containing
preprocessor conditional, setting the mark where point was
previously.
by `#if'. When going forwards, `#elif' is ignored.
**** In C mode, M-a and M-e are now defined as
-`c-beginning-of-statement' and `c-end-of-statement'.
+'c-beginning-of-statement' and 'c-end-of-statement'.
**** In C mode, M-x c-backslash-region is a new command to insert or
align `\' characters at the ends of the lines of the region, except
*** New features in info.
When Info looks for an Info file, it searches the directories
-in `Info-directory-list'. This makes it easy to install the Info files
+in 'Info-directory-list'. This makes it easy to install the Info files
that come with various packages. You can specify the path with
the environment variable INFOPATH.
DEL scrolls backwards in the current node; at the end, it moves to the
previous node in depth-first order (like `[').
-After a menu select, the info `up' command now restores point in the
+After a menu select, the info 'up' command now restores point in the
menu. The combination of this and the previous two changes means that
repeated SPC keystrokes do the right (depth-first traverse forward) thing.
`i STRING RET' moves to the node associated with STRING in the index
or indices of this manual. If there is more than one match for
-STRING, the `i' command finds the first match.
+STRING, the 'i' command finds the first match.
-`,' finds the next match for the string in the previous `i' command
+`,' finds the next match for the string in the previous 'i' command
If you click the middle mouse button near a cross-reference,
menu item or node pointer while in Info, you will go to the node
minibuffer history commands, while in the minibuffer entering the
compilation command.
-While a compilation is going on, the string `Compiling' appears in
+While a compilation is going on, the string 'Compiling' appears in
the mode line. When this string disappears, that tells you the
compilation is finished.
*** M-x diff and M-x diff-backup.
This new command compares two files, displaying the differences in an
-Emacs buffer. The options for the `diff' program come from the
-variable `diff-switches', whose value should be a string.
+Emacs buffer. The options for the 'diff' program come from the
+variable 'diff-switches', whose value should be a string.
The buffer of differences has Compilation mode as its major mode, so you
can use C-x ` to visit successive changed locations in the two
scrolling, and M-n and M-p for cursor motion.
M-x diff-backup compares a file with its most recent backup.
-If you specify the name of a backup file, `diff-backup' compares it
+If you specify the name of a backup file, 'diff-backup' compares it
with the source file that it is a backup of.
*** The View commands (such as M-x view-buffer and M-x view-file) no
Emacs 19 eliminates the old variables `search-...-char' that used to
be the way to specify the characters to use for various special
purposes in incremental search. Instead, you can define the meaning
-of a character in incremental search by modifying `isearch-mode-map'.
+of a character in incremental search by modifying 'isearch-mode-map'.
*** New commands in Buffer Menu mode.
The command C-o now displays the current line's buffer in another
-window but does not select it. This is like the existing command `o'
+window but does not select it. This is like the existing command 'o'
which selects the current line's buffer in another window.
The command % toggles the read-only flag of the current line's buffer.
By default, VC uses RCS if RCS is installed on your machine;
otherwise, SCCS. If you want to make the choice explicitly, you can do
-it by setting `vc-default-back-end' to the symbol `RCS' or the symbol
-`SCCS'.
+it by setting 'vc-default-back-end' to the symbol 'RCS' or the symbol
+'SCCS'.
You can tell when a file you visit is maintained with version control
-because either `RCS' or `SCCS' appears in the mode line.
+because either 'RCS' or 'SCCS' appears in the mode line.
*** A new Calendar mode has been added, the work of Edward M. Reingold.
The mode can display the Gregorian calendar and a variety of other
calendars at any date, and interacts with a diary facility similar to
-the UNIX `calendar' utility.
+the UNIX 'calendar' utility.
-*** There is a new major mode for editing binary files: Hexl mode.
+*** There is a new major mode for editing binary files: 'hexl-mode'.
To use it, use M-x hexl-find-file instead of C-x C-f to visit the file.
This command converts the file's contents to hexadecimal and lets you
edit the translation. When you save the file, it is converted
and certain other differences between C and C++. It also has a command
`fill-c++-comment' which fills a paragraph made of comment lines.
-The command `comment-region' is useful in C++ mode for commenting out
+The command 'comment-region' is useful in C++ mode for commenting out
several consecutive lines, or removing the commenting out of such lines.
*** A new package for merging two variants of the same text.
It's not unusual for programmers to get their signals crossed and
modify the same program in two different directions. Then somebody
-has to merge the two versions. The command `emerge-files' makes this
+has to merge the two versions. The command 'emerge-files' makes this
easier.
-`emerge-files' reads two file names and compares them. Then it
+'emerge-files' reads two file names and compares them. Then it
displays three buffers: one for each file, and one for the
differences.
If the original version of the file is available, you can make things
-even easier using `emerge-files-with-ancestor'. It reads three file
+even easier using 'emerge-files-with-ancestor'. It reads three file
names--variant 1, variant 2, and the common ancestor--and uses diff3
to compare them.
differences. In Edit mode, all emerge commands use the C-c prefix,
and the usual Emacs commands are available. This allows editing the
merge buffer, but slows down Emerge operations. Edit and fast modes
-are indicated by `F' and `E' in the minor modes in the mode line.
+are indicated by 'F' and 'E' in the minor modes in the mode line.
The Emerge commands are:
for the output file.
Once Emerge has prepared the buffer of differences, it runs the hooks
-in `emerge-startup-hooks'.
+in 'emerge-startup-hooks'.
*** Asm mode is a new major mode for editing files of assembler code.
It defines these commands:
*** You can supply command arguments such as files to visit to an Emacs
that is already running. To do this, you must do this in your .emacs
file:
- (add-hook 'suspend-hook 'resume-suspend-hook)
+ (add-hook 'suspend-hook #'resume-suspend-hook)
Also you must use the shellscript emacs.csh or emacs.sh, found in the
etc subdirectory.
When flow control is enabled, you must type C-\ to get the effect of a
C-s, and type C-^ to get the effect of a C-q.
-The function `enable-flow-control' enables flow control unconditionally.
+The function 'enable-flow-control' enables flow control unconditionally.
\f
** Changes in Dired
*** Setting and Clearing Marks
There are now two kinds of marker that you can put on a file in Dired:
-`D' for deletion, and `*' for any other kind of operation.
-The `x' command deletes only files marked with `D', and most
+'D' for deletion, and `*' for any other kind of operation.
+The 'x' command deletes only files marked with 'D', and most
other Dired commands operate only on the files marked with `*'.
-To mark files with `D' (also called "flagging" the files), you
-can use `d' as usual. Here are some commands for marking with
+To mark files with 'D' (also called "flagging" the files), you
+can use 'd' as usual. Here are some commands for marking with
`*' (and also for unmarking):
-**** `m' marks the current file with `*', for an operation other than
+**** 'm' marks the current file with `*', for an operation other than
deletion.
**** `*' marks all executable files. With a prefix argument, it
argument, queries for each marked file. Type your help character,
usually C-h, at that time for help.
-**** `c' replaces all marks that use the character OLD with marks that
+**** 'c' replaces all marks that use the character OLD with marks that
use the character NEW. You can use almost any character as a mark
character by means of this command, to distinguish various classes of
files. If OLD is ` ', then the command operates on all unmarked
These are the commands:
-**** `C' copies the specified files. You must specify a directory to
+**** 'C' copies the specified files. You must specify a directory to
copy into, or (if copying a single file) a new name.
-If `dired-copy-preserve-time' is non-`nil', then copying sets
+If 'dired-copy-preserve-time' is non-'nil', then copying sets
the modification time of the new file to be the same as that of the old
file.
-**** `R' renames the specified files. You must specify a directory to
+**** 'R' renames the specified files. You must specify a directory to
rename into, or (if renaming a single file) a new name.
Dired automatically changes the visited file name of buffers associated
with renamed files so that they refer to the new names.
-**** `H' makes hard links to the specified files. You must specify a
+**** 'H' makes hard links to the specified files. You must specify a
directory to make the links in, or (if making just one link) the name
to give the link.
-**** `S' makes symbolic links to the specified files. You must specify
+**** 'S' makes symbolic links to the specified files. You must specify
a directory to make the links in, or (if making just one link) the
name to give the link.
-**** `M' changes the mode of the specified files. This calls the
-`chmod' program, so you can describe the desired mode change with any
-argument that `chmod' would handle.
+**** 'M' changes the mode of the specified files. This calls the
+'chmod' program, so you can describe the desired mode change with any
+argument that 'chmod' would handle.
-**** `G' changes the group of the specified files.
+**** 'G' changes the group of the specified files.
-**** `O' changes the owner of the specified files. (On normal systems,
+**** 'O' changes the owner of the specified files. (On normal systems,
only the superuser can do this.)
-The variable `dired-chown-program' specifies the name of the
-program to use to do the work (different systems put `chown' in
+The variable 'dired-chown-program' specifies the name of the
+program to use to do the work (different systems put 'chown' in
different places.
-**** `Z' compresses or uncompresses the specified files.
+**** 'Z' compresses or uncompresses the specified files.
-**** `L' loads the specified Emacs Lisp files.
+**** 'L' loads the specified Emacs Lisp files.
-**** `B' byte compiles the specified Emacs Lisp files.
+**** 'B' byte compiles the specified Emacs Lisp files.
-**** `P' prints the specified files. It uses the variables
-`lpr-command' and `lpr-switches' just as `lpr-file' does.
+**** 'P' prints the specified files. It uses the variables
+'lpr-command' and 'lpr-switches' just as 'lpr-file' does.
*** Shell Commands in Dired
- If you use `*' in the command, then the shell command runs just
once, with the list of file names substituted for the `*'.
-Thus, `! tar cf foo.tar * RET' runs `tar' on the entire list of file
+Thus, `! tar cf foo.tar * RET' runs 'tar' on the entire list of file
names, putting them into one tar file `foo.tar'. The file names are
inserted in the order that they appear in the Dired buffer.
- If the command string doesn't contain `*', then it runs once for
each file, with the file name attached at the end. For example, `!
-uudecode RET' runs `uudecode' on each file.
+uudecode RET' runs 'uudecode' on each file.
To run the shell command once for each file but without being limited
to putting the file name inserted in the middle, use a shell loop.
-For example, this shell command would run `uuencode' on each of the
+For example, this shell command would run 'uuencode' on each of the
specified files, writing the output into a corresponding `.uu' file:
for file in *; uuencode $file $file >$file.uu; done
These four commands rename, copy, make hard links and make soft links,
in each case computing the new name by regular expression substitution
from the name of the old file. They effectively perform
-`query-replace-regexp' on the selected file names in the Dired buffer.
+'query-replace-regexp' on the selected file names in the Dired buffer.
The commands read two arguments: a regular expression, and a
substitution pattern. Each selected file name is matched against the
*** File Comparison with Dired
-**** `=' compares the current file with another file (the file at the
-mark), by running the `diff' program. The file at the mark is given
-to `diff' first.
+**** '=' compares the current file with another file (the file at the
+mark), by running the 'diff' program. The file at the mark is given
+to 'diff' first.
-**** `M-=' compares the current file with its backup file. If there
+**** 'M-=' compares the current file with its backup file. If there
are several numerical backups, it uses the most recent one. If this
file is a backup, it is compared with its original.
-The backup file is the first file given to `diff'.
+The backup file is the first file given to 'diff'.
*** Subdirectories in Dired
You can display more than one directory in one Dired buffer.
-The simplest way to do this is to specify the options `-lR' for
-running `ls'. That produces a recursive directory listing showing
+The simplest way to do this is to specify the options '-lR' for
+running 'ls'. That produces a recursive directory listing showing
all subdirectories, all within the same Dired buffer.
You can also insert the contents of a particular subdirectory with the
-`i' command. Use this command on the line that describes a file which
+'i' command. Use this command on the line that describes a file which
is a directory. Inserted subdirectory contents follow the top-level
directory of the Dired buffer, just as they do in `ls -lR' output.
If the subdirectory's contents are already present in the buffer, the
-`i' command just moves to it (type `l' to refresh it). It sets the
+'i' command just moves to it (type 'l' to refresh it). It sets the
Emacs mark before moving, so C-x C-x takes you back to the old
position in the buffer.
*** Editing the Dired Buffer
-**** `l' updates the specified files in a Dired buffer. This means
+**** 'l' updates the specified files in a Dired buffer. This means
reading their current status from the file system and changing the
buffer to reflect it properly.
If you use this command on a subdirectory header line, it updates the
contents of the subdirectory.
-**** `g' updates the entire contents of the Dired buffer. It preserves
+**** 'g' updates the entire contents of the Dired buffer. It preserves
all marks except for those on files that have vanished. Hidden
subdirectories are updated but remain hidden.
-**** `k' kills all marked lines (not the files). With a prefix
+**** 'k' kills all marked lines (not the files). With a prefix
argument, it kills that many lines starting with the current line.
This command does not delete files; it just deletes text from the Dired
for a subdirectory is another way to delete a subdirectory from the
Dired buffer.
-*** `find' and Dired.
+*** 'find' and Dired.
To search for files with names matching a wildcard pattern use
-`find-name-dired'. Its arguments are DIRECTORY and
+'find-name-dired'. Its arguments are DIRECTORY and
PATTERN. It selects all the files in DIRECTORY or its
subdirectories whose own names match PATTERN.
ordinary Dired commands are available.
If you want to test the contents of files, rather than their names, use
-`find-grep-dired'. This command takes two minibuffer arguments,
+'find-grep-dired'. This command takes two minibuffer arguments,
DIRECTORY and REGEXP; it selects all the files in
DIRECTORY or its subdirectories that contain a match for
-REGEXP. It works by running `find' and `grep'.
+REGEXP. It works by running 'find' and 'grep'.
-The most general command in this series is `find-dired', which lets
-you specify any condition that `find' can test. It takes two
-minibuffer arguments, DIRECTORY and FIND-ARGS; it runs `find' in
-DIRECTORY with using FIND-ARGS as the arguments to `find' specifying
+The most general command in this series is 'find-dired', which lets
+you specify any condition that 'find' can test. It takes two
+minibuffer arguments, DIRECTORY and FIND-ARGS; it runs 'find' in
+DIRECTORY with using FIND-ARGS as the arguments to 'find' specifying
which files to accept. To use this command, you need to know how to
-use `find'.
+use 'find'.
\f
** New amusements and novelties.
*** If you create a Lisp file named `site-start.el', Emacs loads the file
whenever it starts up.
-*** A new Lisp variable, `data-directory', indicates the directory
+*** A new Lisp variable, 'data-directory', indicates the directory
containing the DOC file, tutorial, copying agreement, and other
-familiar `etc' files. The value of `data-directory' is a simple string.
+familiar 'etc' files. The value of 'data-directory' is a simple string.
The default should be set at build time, and the person installing
Emacs should place all the data files in this directory. The `help.el'
functions that look for docstrings and information files check this
variable. All Emacs Lisp packages should also be coded so that they
-refer to `data-directory' to find data files.
+refer to 'data-directory' to find data files.
*** The PURESIZE definition has been moved from config.h to its own
file, puresize.h. Since almost every file of C source in the
only those two files to be recompiled.
*** The makefile at the top of the Emacs source tree now supports a
-`dist' target, which creates a compressed tar file suitable for
+'dist' target, which creates a compressed tar file suitable for
distribution, using the contents of the source tree. Object files,
old file versions, executables, DOC files, and other
architecture-specific or easy-to-recreate files are not included in
If both `.emacs' and `.emacs.el' exist, the latter file
is the one that is used.
-** shell-command, and shell-command-on-region, now return
+** 'shell-command', and 'shell-command-on-region', now return
the exit code of the command (unless it is asynchronous).
Also, you can specify a place to put the error output,
separate from the command's regular output.
-Interactively, the variable shell-command-default-error-buffer
+Interactively, the variable 'shell-command-default-error-buffer'
says where to put error output; set it to a buffer name.
In calls from Lisp, an optional argument ERROR-BUFFER specifies
the buffer name.
it from the previous batch of error output. The error buffer is not
cleared, so error output from successive commands accumulates there.
-** Setting the default value of enable-multibyte-characters to nil in
-the .emacs file, either explicitly using setq-default, or via Custom,
+** Setting the default value of 'enable-multibyte-characters' to nil in
+the .emacs file, either explicitly using 'setq-default', or via Custom,
is now essentially equivalent to using --unibyte: all buffers
created during startup will be made unibyte after loading .emacs.
match c*.c. To visit a file whose name contains * or ?, add the
quoting sequence /: to the beginning of the file name.
-** The M-x commands keep-lines, flush-lines and count-matches
-now have the same feature as occur and query-replace:
+** The M-x commands 'keep-lines', 'flush-lines' and 'count-matches'
+now have the same feature as 'occur' and 'query-replace':
if the pattern contains any upper case letters, then
they never ignore case.
the same format that was used in the file before.
You can turn off end-of-line conversion by setting the variable
-`inhibit-eol-conversion' to non-nil, e.g. with Custom in the MULE group.
+'inhibit-eol-conversion' to non-nil, e.g. with Custom in the MULE group.
-** The character set property `prefered-coding-system' has been
-renamed to `preferred-coding-system', for the sake of correct spelling.
+** The character set property 'prefered-coding-system' has been
+renamed to 'preferred-coding-system', for the sake of correct spelling.
This is a fairly internal feature, so few programs should be affected.
** Mode-line display of end-of-line format is changed.
end-of-line format is still displayed as a single character (colon for
Unix, backslash for DOS and Windows, and forward slash for the Mac).
-The values of the variables eol-mnemonic-unix, eol-mnemonic-dos,
-eol-mnemonic-mac, and eol-mnemonic-undecided, which are strings,
+The values of the variables 'eol-mnemonic-unix', 'eol-mnemonic-dos',
+'eol-mnemonic-mac', and 'eol-mnemonic-undecided', which are strings,
control what is displayed in the mode line for each end-of-line
format. You can now customize these variables.
-** In the previous version of Emacs, tar-mode didn't work well if a
+** In the previous version of Emacs, 'tar-mode' didn't work well if a
filename contained non-ASCII characters. Now this is fixed. Such a
filename is decoded by file-name-coding-system if the default value of
enable-multibyte-characters is non-nil.
-** The command temp-buffer-resize-mode toggles a minor mode
+** The command 'temp-buffer-resize-mode' toggles a minor mode
in which temporary buffers (such as help buffers) are given
windows just big enough to hold the whole contents.
** If you use completion.el, you must now run the function
-dynamic-completion-mode to enable it. Just loading the file
+'dynamic-completion-mode' to enable it. Just loading the file
doesn't have any effect.
** In Flyspell mode, the default is now to make just one Ispell process,
** If you use iswitchb but do not call (iswitchb-default-keybindings) to
use the default keybindings, you will need to add the following line:
- (add-hook 'minibuffer-setup-hook 'iswitchb-minibuffer-setup)
+ (add-hook 'minibuffer-setup-hook #'iswitchb-minibuffer-setup)
** Auto-show mode is no longer enabled just by loading auto-show.el.
-To control it, set `auto-show-mode' via Custom or use the
-`auto-show-mode' command.
+To control it, set 'auto-show-mode' via Custom or use the
+'auto-show-mode' command.
** Handling of X fonts' ascent/descent parameters has been changed to
avoid redisplay problems. As a consequence, compared with previous
** Mail changes
*** When mail is sent using compose-mail (C-x m), and if
-`mail-send-nonascii' is set to the new default value `mime',
+'mail-send-nonascii' is set to the new default value 'mime',
appropriate MIME headers are added. The headers are added only if
non-ASCII characters are present in the body of the mail, and no other
MIME headers are already present. For example, the following three
Content-type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
-*** The new variable default-sendmail-coding-system specifies the
+*** The new variable 'default-sendmail-coding-system' specifies the
default way to encode outgoing mail. This has higher priority than
-default-buffer-file-coding-system but has lower priority than
-sendmail-coding-system and the local value of
-buffer-file-coding-system.
+'default-buffer-file-coding-system' but has lower priority than
+'sendmail-coding-system' and the local value of
+'buffer-file-coding-system'.
You should not set this variable manually. Instead, set
sendmail-coding-system to specify a fixed encoding for all outgoing
c-electric-brace also recognizes brace-entry-open braces
(brace-list-entry's can no longer be electrified).
-*** New command c-indent-line-or-region, not bound by default.
+*** New command 'c-indent-line-or-region', not bound by default.
*** `#' is only electric when typed in the indentation of a line.
-*** Parentheses are now electric (via the new command c-electric-paren)
+*** Parentheses are now electric (via the new command 'c-electric-paren')
for auto-reindenting lines when parens are typed.
*** In "gnu" style, inline-open offset is now set to zero.
before. All Message buffers are now also articles in the nndraft
group, which is created automatically.
-*** `gnus-alter-header-function' can now be used to alter header
+*** 'gnus-alter-header-function' can now be used to alter header
values.
-*** `gnus-summary-goto-article' now accept Message-ID's.
+*** 'gnus-summary-goto-article' now accept Message-ID's.
*** A new Message command for deleting text in the body of a message
outside the region: `C-c C-v'.
*** You can now post to component group in nnvirtual groups with
`C-u C-c C-c'.
-*** `nntp-rlogin-program' -- new variable to ease customization.
+*** 'nntp-rlogin-program' -- new variable to ease customization.
-*** `C-u C-c C-c' in `gnus-article-edit-mode' will now inhibit
+*** `C-u C-c C-c' in 'gnus-article-edit-mode' will now inhibit
re-highlighting of the article buffer.
-*** New element in `gnus-boring-article-headers' -- `long-to'.
+*** New element in 'gnus-boring-article-headers' -- 'long-to'.
-*** `M-i' symbolic prefix command. See the section "Symbolic
+*** 'M-i' symbolic prefix command. See the section "Symbolic
Prefixes" in the Gnus manual for details.
-*** `L' and `I' in the summary buffer now take the symbolic prefix
-`a' to add the score rule to the "all.SCORE" file.
+*** 'L' and 'I' in the summary buffer now take the symbolic prefix
+'a' to add the score rule to the "all.SCORE" file.
-*** `gnus-simplify-subject-functions' variable to allow greater
+*** 'gnus-simplify-subject-functions' variable to allow greater
control over simplification.
*** `A T' -- new command for fetching the current thread.
*** `/ T' -- new command for including the current thread in the
limit.
-*** `M-RET' is a new Message command for breaking cited text.
+*** 'M-RET' is a new Message command for breaking cited text.
-*** \\1-expressions are now valid in `nnmail-split-methods'.
+*** \\1-expressions are now valid in 'nnmail-split-methods'.
-*** The `custom-face-lookup' function has been removed.
+*** The 'custom-face-lookup' function has been removed.
If you used this function in your initialization files, you must
-rewrite them to use `face-spec-set' instead.
+rewrite them to use 'face-spec-set' instead.
*** Canceling now uses the current select method. Symbolic prefix
-`a' forces normal posting method.
+'a' forces normal posting method.
*** New command to translate M******** sm*rtq**t*s into proper text
-- `W d'.
-*** For easier debugging of nntp, you can set `nntp-record-commands'
+*** For easier debugging of nntp, you can set 'nntp-record-commands'
to a non-nil value.
*** nntp now uses ~/.authinfo, a .netrc-like file, for controlling
*** A history of where mails have been split is available.
-*** A new article date command has been added -- `article-date-iso8601'.
+*** A new article date command has been added -- 'article-date-iso8601'.
*** Subjects can be simplified when threading by setting
-`gnus-score-thread-simplify'.
+'gnus-score-thread-simplify'.
*** A new function for citing in Message has been added --
-`message-cite-original-without-signature'.
+'message-cite-original-without-signature'.
-*** `article-strip-all-blank-lines' -- new article command.
+*** 'article-strip-all-blank-lines' -- new article command.
*** A new Message command to kill to the end of the article has
been added.
*** A minimum adaptive score can be specified by using the
-`gnus-adaptive-word-minimum' variable.
+'gnus-adaptive-word-minimum' variable.
*** The "lapsed date" article header can be kept continually
-updated by the `gnus-start-date-timer' command.
+updated by the 'gnus-start-date-timer' command.
*** Web listserv archives can be read with the nnlistserv backend.
*** Old dejanews archives can now be read by nnweb.
-*** `gnus-posting-styles' has been re-activated.
+*** 'gnus-posting-styles' has been re-activated.
** Changes to TeX and LaTeX mode
-*** The new variable `tex-start-options-string' can be used to give
+*** The new variable 'tex-start-options-string' can be used to give
options for the TeX run. The default value causes TeX to run in
nonstopmode. For an interactive TeX run set it to nil or "".
-*** The command `tex-feed-input' sends input to the Tex Shell. In a
+*** The command 'tex-feed-input' sends input to the Tex Shell. In a
TeX buffer it is bound to the keys C-RET, C-c RET, and C-c C-m (some
of these keys may not work on all systems). For instance, if you run
TeX interactively and if the TeX run stops because of an error, you
can continue it without leaving the TeX buffer by typing C-RET.
-*** The Tex Shell Buffer is now in `compilation-shell-minor-mode'.
+*** The Tex Shell Buffer is now in 'compilation-shell-minor-mode'.
All error-parsing commands of the Compilation major mode are available
but bound to keys that don't collide with the shell. Thus you can use
the Tex Shell for command line executions like a usual shell.
-*** The commands `tex-validate-region' and `tex-validate-buffer' check
+*** The commands 'tex-validate-region' and 'tex-validate-buffer' check
the matching of braces and $'s. The errors are listed in a *Occur*
buffer and you can use C-c C-c or mouse-2 to go to a particular
mismatch.
** Changes to RefTeX mode
*** The table of contents buffer can now also display labels and
-file boundaries in addition to sections. Use `l', `i', and `c' keys.
+file boundaries in addition to sections. Use 'l', 'i', and 'c' keys.
*** Labels derived from context (the section heading) are now
lowercase by default. To make the label legal in LaTeX, latin-1
removed from the label.
*** The automatic display of cross reference information can also use
-a window instead of the echo area. See variable `reftex-auto-view-crossref'.
+a window instead of the echo area. See variable 'reftex-auto-view-crossref'.
*** kpsewhich can be used by RefTeX to find TeX and BibTeX files. See the
-customization group `reftex-finding-files'.
+customization group 'reftex-finding-files'.
-*** The option `reftex-bibfile-ignore-list' has been renamed to
-`reftex-bibfile-ignore-regexps' and indeed can be fed with regular
+*** The option 'reftex-bibfile-ignore-list' has been renamed to
+'reftex-bibfile-ignore-regexps' and indeed can be fed with regular
expressions.
*** Multiple Selection buffers are now hidden buffers.
** New/deleted modes and packages
-*** The package snmp-mode.el provides major modes for editing SNMP and
-SNMPv2 MIBs. It has entries on `auto-mode-alist'.
+*** 'snmp-mode' provides major modes for editing SNMP and SNMPv2 MIBs.
+It has entries on 'auto-mode-alist'.
*** The package sql.el provides a major mode, M-x sql-mode, for
editing SQL files, and M-x sql-interactive-mode for interacting with
-SQL interpreters. It has an entry on `auto-mode-alist'.
+SQL interpreters. It has an entry on 'auto-mode-alist'.
*** ispell4.el has been deleted. It got in the way of ispell.el and
this was hard to fix reliably. It has long been obsolete -- use
directly to a printer port. Similarly, in the previous version of
Emacs, the value of ps-lpr-command did not affect PostScript printing
on MS-DOS unless ps-printer-name was set to something other than a
-string (eg. t or `pipe'), but now it controls whether an external
+string (eg. t or 'pipe'), but now it controls whether an external
program is used. (These changes were made so that configuration of
printing variables would be almost identical across all platforms.)
temporary file whose name is passed as the last argument to the external
program.
-An exception is made for `print', a standard program on Windows NT,
-and `nprint', a standard program on Novell Netware. For both of these
+An exception is made for 'print', a standard program on Windows NT,
+and 'nprint', a standard program on Novell Netware. For both of these
programs, the command line is constructed in the appropriate syntax
automatically, using only the value of printer-name or ps-printer-name
-as appropriate--the value of the relevant `-switches' variable is
+as appropriate--the value of the relevant '-switches' variable is
ignored, as both programs have no useful switches.
** The value of the variable dos-printer (cf. dos-ps-printer), if it has
\f
* Lisp changes in Emacs 20.4
-** New functions line-beginning-position and line-end-position
+** New functions 'line-beginning-position' and 'line-end-position'
return the position of the beginning or end of the current line.
They both accept an optional argument, which has the same
-meaning as the argument to beginning-of-line or end-of-line.
+meaning as the argument to 'beginning-of-line' or 'end-of-line'.
** find-file and allied functions now have an optional argument
WILDCARD. If this is non-nil, they do wildcard processing,
the number fits in a Lisp integer) or a cons cell containing two
integers.
-** The new function directory-files-and-attributes returns a list of
+** The new function 'directory-files-and-attributes' returns a list of
files in a directory and their attributes. It accepts the same
-arguments as directory-files and has similar semantics, except that
+arguments as 'directory-files' and has similar semantics, except that
file names and attributes are returned.
-** The new function file-attributes-lessp is a helper function for
+** The new function 'file-attributes-lessp' is a helper function for
sorting the list generated by directory-files-and-attributes. It
accepts two arguments, each a list of a file name and its attributes.
-It compares the file names of each according to string-lessp and
+It compares the file names of each according to 'string-lessp' and
returns the result.
-** The new function file-expand-wildcards expands a wildcard-pattern
+** The new function 'file-expand-wildcards' expands a wildcard-pattern
to produce a list of existing files that match the pattern.
** New functions for base64 conversion:
-The function base64-encode-region converts a part of the buffer
-into the base64 code used in MIME. base64-decode-region
+The function 'base64-encode-region' converts a part of the buffer
+into the base64 code used in MIME. 'base64-decode-region'
performs the opposite conversion. Line-breaking is supported
optionally.
-Functions base64-encode-string and base64-decode-string do a similar
+Functions 'base64-encode-string' and 'base64-decode-string' do a similar
job on the text in a string. They return the value as a new string.
**
-The new function process-running-child-p
+The new function 'process-running-child-p'
will tell you if a subprocess has given control of its
terminal to its own child process.
-** interrupt-process and such functions have a new feature:
-when the second argument is `lambda', they send a signal
+** 'interrupt-process' and such functions have a new feature:
+when the second argument is 'lambda', they send a signal
to the running child of the subshell, if any, but if the shell
itself owns its terminal, no signal is sent.
-** There are new widget types `plist' and `alist' which can
+** There are new widget types 'plist' and 'alist' which can
be used for customizing variables whose values are plists or alists.
-** easymenu.el now understands `:key-sequence' and `:style button'.
+** easymenu.el now understands ':key-sequence' and `:style button'.
:included is an alias for :visible.
-easy-menu-add-item now understands the values returned by
-easy-menu-remove-item and easy-menu-item-present-p. This can be used
+'easy-menu-add-item' now understands the values returned by
+'easy-menu-remove-item' and 'easy-menu-item-present-p'. This can be used
to move or copy menu entries.
** Multibyte editing changes
-*** The definitions of sref and char-bytes are changed. Now, sref is
-an alias of aref and char-bytes always returns 1. This change is to
+*** The definitions of 'sref' and 'char-bytes' are changed. Now, 'sref' is
+an alias of 'aref' and 'char-bytes' always returns 1. This change is to
make some Emacs Lisp code which works on 20.2 and earlier also
work on the latest Emacs. Such code uses a combination of sref and
char-bytes in a loop typically as below:
This is to avoid some bytes being combined together into a character
across the boundary.
-*** The functions find-charset-region and find-charset-string include
-`unknown' in the returned list in the following cases:
+*** The functions 'find-charset-region' and 'find-charset-string' include
+'unknown' in the returned list in the following cases:
o The current buffer or the target string is unibyte and
contains 8-bit characters.
o The current buffer or the target string is multibyte and
contains invalid characters.
-*** The functions decode-coding-region and encode-coding-region remove
+*** The functions 'decode-coding-region' and 'encode-coding-region' remove
text properties of the target region. Ideally, they should correctly
preserve text properties, but for the moment, it's hard. Removing
text properties is better than preserving them in a less-than-correct
way.
-*** prefer-coding-system sets EOL conversion of default coding systems.
+*** 'prefer-coding-system' sets EOL conversion of default coding systems.
If the argument to prefer-coding-system specifies a certain type of
end of line conversion, the default coding systems set by
prefer-coding-system will specify that conversion type for end of line.
-*** The new function thai-compose-string can be used to properly
+*** The new function 'thai-compose-string' can be used to properly
compose Thai characters in a string.
-** The primitive `define-prefix-command' now takes an optional third
+** The primitive 'define-prefix-command' now takes an optional third
argument NAME, which should be a string. It supplies the menu name
for the created keymap. Keymaps created in order to be displayed as
menus should always use the third argument.
-** The meanings of optional second arguments for read-char,
-read-event, and read-char-exclusive are flipped. Now the second
+** The meanings of optional second arguments for 'read-char',
+'read-event', and 'read-char-exclusive' are flipped. Now the second
arguments are INHERIT-INPUT-METHOD. These functions use the current
input method (if any) if and only if INHERIT-INPUT-METHOD is non-nil.
-** The new function clear-this-command-keys empties out the contents
+** The new function 'clear-this-command-keys' empties out the contents
of the vector that (this-command-keys) returns. This is useful in
programs that read passwords, to prevent the passwords from echoing
inadvertently as part of the next command in certain cases.
-** The new macro `with-temp-message' displays a temporary message in
-the echo area, while executing some Lisp code. Like `progn', it
+** The new macro 'with-temp-message' displays a temporary message in
+the echo area, while executing some Lisp code. Like 'progn', it
returns the value of the last form, but it also restores the previous
echo area contents.
(with-temp-message MESSAGE &rest BODY)
-** The function `require' now takes an optional third argument
+** The function 'require' now takes an optional third argument
NOERROR. If it is non-nil, then there is no error if the
requested feature cannot be loaded.
foreground color, background color or stipple pattern
means to clear out that attribute.
-** The `outer-window-id' frame property of an X frame
+** The 'outer-window-id' frame property of an X frame
gives the window number of the outermost X window for the frame.
** Temporary buffers made with with-output-to-temp-buffer are now
unless you put them in some other non-Fundamental mode before the
end of with-output-to-temp-buffer.
-** The new functions gap-position and gap-size return information on
+** The new functions 'gap-position' and 'gap-size' return information on
the gap of the current buffer.
-** The new functions position-bytes and byte-to-position provide a way
+** The new functions 'position-bytes' and 'byte-to-position' provide a way
to convert between character positions and byte positions in the
current buffer.
-** vc.el defines two new macros, `edit-vc-file' and `with-vc-file', to
+** vc.el defines two new macros, 'edit-vc-file' and 'with-vc-file', to
facilitate working with version-controlled files from Lisp programs.
These macros check out a given file automatically if needed, and check
it back in after any modifications have been made.
pasting operations.
** You can specify the printer to use for commands that do printing by
-setting the variable `printer-name'. Just what a printer name looks
+setting the variable 'printer-name'. Just what a printer name looks
like depends on your operating system. You can specify a different
printer for the PostScript printing commands by setting
-`ps-printer-name'.
+'ps-printer-name'.
** Emacs now supports on-the-fly spell checking by the means of a
minor mode. It is called M-x flyspell-mode. You don't have to remember
If you type TAB to display a list of alternatives, you can select one
of the alternatives with Mouse-2.
-The meaning of the variable `input-method-verbose-flag' is changed so
-that you can set it to t, nil, `default', or `complex-only'.
+The meaning of the variable 'input-method-verbose-flag' is changed so
+that you can set it to t, nil, 'default', or 'complex-only'.
If the value is nil, extra guidance is never given.
If the value is t, extra guidance is always given.
- If the value is `complex-only', extra guidance is always given only
+ If the value is 'complex-only', extra guidance is always given only
when you are using complex input methods such as chinese-py.
- If the value is `default' (this is the default), extra guidance is
+ If the value is 'default' (this is the default), extra guidance is
given in the following case:
o When you are using a complex input method.
o When you are using a simple input method but not in the minibuffer.
and if you are using an input method you are not familiar with,
setting it to t is helpful.
-The old command select-input-method is now called set-input-method.
+The old command 'select-input-method' is now called 'set-input-method'.
In the language environment "Korean", you can use the following
keys:
** C-x r t (string-rectangle) now deletes the existing rectangle
contents before inserting the specified string on each line.
-** There is a new command delete-whitespace-rectangle
+** There is a new command 'delete-whitespace-rectangle'
which deletes whitespace starting from a particular column
in all the lines on a rectangle. The column is specified
by the left edge of the rectangle.
the function from a Lisp program, a new optional argument CONFIRM
says whether to ask for confirmation in this case.
-** If you use find-file-literally and the file is already visited
+** If you use 'find-file-literally' and the file is already visited
non-literally, the command asks you whether to revisit the file
literally. If you say no, it signals an error.
Formerly they used the name WHATEVER-mode-hooks, but that is
inconsistent with Emacs conventions.
-** shell-command-on-region (and shell-command) reports success or
+** 'shell-command-on-region' (and shell-command) reports success or
failure if the command produces no output.
-** Set focus-follows-mouse to nil if your window system or window
+** Set 'focus-follows-mouse' to nil if your window system or window
manager does not transfer focus to another window when you just move
the mouse.
-** mouse-menu-buffer-maxlen has been renamed to
-mouse-buffer-menu-maxlen to be consistent with the other related
+** 'mouse-menu-buffer-maxlen' has been renamed to
+'mouse-buffer-menu-maxlen' to be consistent with the other related
function and variable names.
-** The new variable auto-coding-alist specifies coding systems for
+** The new variable 'auto-coding-alist' specifies coding systems for
reading specific files. This has higher priority than
-file-coding-system-alist.
+'file-coding-system-alist'.
-** If you set the variable unibyte-display-via-language-environment to
+** If you set the variable 'unibyte-display-via-language-environment' to
t, then Emacs displays non-ASCII characters are displayed by
converting them to the equivalent multibyte characters according to
the current language environment. As a result, they are displayed
** C-q's handling of codes in the range 0200 through 0377 is changed.
The codes in the range 0200 through 0237 are inserted as one byte of
-that code regardless of the values of nonascii-translation-table and
+that code regardless of the values of 'nonascii-translation-table' and
nonascii-insert-offset.
For the codes in the range 0240 through 0377, if
** M-x apropos-command, with a prefix argument, no longer looks for
user option variables--instead it looks for noninteractive functions.
-Meanwhile, the command apropos-variable normally searches for
+Meanwhile, the command 'apropos-variable' normally searches for
user option variables; with a prefix argument, it looks at
all variables that have documentation.
** When you type a long line in the minibuffer, and the minibuffer
shows just one line, automatically scrolling works in a special way
that shows you overlap with the previous line of text. The variable
-minibuffer-scroll-overlap controls how many characters of overlap
+'minibuffer-scroll-overlap' controls how many characters of overlap
it should show; the default is 20.
Meanwhile, Resize Minibuffer mode is still available; in that mode,
buffer positions from which M-. or other tag-finding commands were
invoked.
-** The new variable comment-padding specifies the number of spaces
-that `comment-region' will insert before the actual text of the comment.
+** The new variable 'comment-padding' specifies the number of spaces
+that 'comment-region' will insert before the actual text of the comment.
The default is 1.
** In Fortran mode the characters `.', `_' and `$' now have symbol
-syntax, not word syntax. Fortran mode now supports `imenu' and has
-new commands fortran-join-line (M-^) and fortran-narrow-to-subprogram
+syntax, not word syntax. Fortran mode now supports 'imenu' and has
+new commands 'fortran-join-line' (M-^) and 'fortran-narrow-to-subprogram'
(C-x n d). M-q can be used to fill a statement or comment block
sensibly.
-** GUD now supports jdb, the Java debugger, and pdb, the Python debugger.
+** GUD now supports 'jdb', the Java debugger, and 'pdb', the Python debugger.
-** If you set the variable add-log-keep-changes-together to a non-nil
+** If you set the variable 'add-log-keep-changes-together' to a non-nil
value, the command `C-x 4 a' will automatically notice when you make
two entries in one day for one file, and combine them.
the variable desktop-enable to t with Custom.
*** Minor modes are now restored. Which minor modes are restored
-and how modes are restored is controlled by `desktop-minor-mode-table'.
+and how modes are restored is controlled by 'desktop-minor-mode-table'.
** There is no need to do anything special, now, to enable Gnus to
read and post multi-lingual articles.
** Outline mode has now support for showing hidden outlines when
-doing an isearch. In order for this to happen search-invisible should
+doing an isearch. In order for this to happen 'search-invisible' should
be set to open (the default). If an isearch match is inside a hidden
outline the outline is made visible. If you continue pressing C-s and
the match moves outside the formerly invisible outline, the outline is
*** The Dired function dired-do-toggle, which toggles marked and unmarked
files, is now bound to "t" instead of "T".
-*** dired-at-point has been added to ffap.el. It allows one to easily
+*** 'dired-at-point' has been added to ffap.el. It allows one to easily
run Dired on the directory name at point.
*** Dired has a new command: %g. It searches the contents of
** VC Changes
-*** New option vc-ignore-vc-files lets you turn off version control
+*** New option 'vc-ignore-vc-files' lets you turn off version control
conveniently.
*** VC Dired has been completely rewritten. It is now much
You can change the listing format by setting vc-dired-recurse to nil,
then it shows only the given directory, and you may also set
vc-dired-terse-display to nil, then it shows all files under version
-control plus the names of any subdirectories, so that you can type `i'
+control plus the names of any subdirectories, so that you can type 'i'
on such lines to insert them manually, as in ordinary Dired.
-All Dired commands operate normally in VC Dired, except for `v', which
+All Dired commands operate normally in VC Dired, except for 'v', which
is redefined as the version control prefix. That means you may type
-`v l', `v =' etc. to invoke `vc-print-log', `vc-diff' and the like on
+`v l', `v =' etc. to invoke 'vc-print-log', 'vc-diff' and the like on
the file named in the current Dired buffer line. `v v' invokes
-`vc-next-action' on this file, or on all files currently marked.
+'vc-next-action' on this file, or on all files currently marked.
The new command `v t' (vc-dired-toggle-terse-mode) allows you to
toggle between terse display (only locked files) and full display (all
file, and CVS detects conflicts, VC now offers to start an ediff
session to resolve them.
-Alternatively, you can use the new command `vc-resolve-conflicts' to
+Alternatively, you can use the new command 'vc-resolve-conflicts' to
resolve conflicts in a file at any time. It works in any buffer that
contains conflict markers as generated by rcsmerge (which is what CVS
uses as well).
*** You can now transfer changes between branches, using the new
-command vc-merge (C-x v m). It is implemented for RCS and CVS. When
+command 'vc-merge' (C-x v m). It is implemented for RCS and CVS. When
you invoke it in a buffer under version-control, you can specify
either an entire branch or a pair of versions, and the changes on that
branch or between the two versions are merged into the working file.
** Changes in Font Lock
-*** The face and variable previously known as font-lock-reference-face
-are now called font-lock-constant-face to better reflect their typical
+*** The face and variable previously known as 'font-lock-reference-face'
+are now called 'font-lock-constant-face' to better reflect their typical
use for highlighting constants and labels. (Its face properties are
-unchanged.) The variable font-lock-reference-face remains for now for
-compatibility reasons, but its value is font-lock-constant-face.
+unchanged.) The variable 'font-lock-reference-face' remains for now for
+compatibility reasons, but its value is 'font-lock-constant-face'.
** Frame name display changes
-*** The command set-frame-name lets you set the name of the current
-frame. You can use the new command select-frame-by-name to select and
+*** The command 'set-frame-name' lets you set the name of the current
+frame. You can use the new command 'select-frame-by-name' to select and
raise a frame; this is mostly useful on character-only terminals, or
when many frames are invisible or iconified.
which separates the pending input from the subprocess output and the
previously sent input.
-C-c M-r now runs comint-previous-matching-input-from-input;
+C-c M-r now runs 'comint-previous-matching-input-from-input';
it searches for a previous command, using the current pending input
as the search string.
-*** New option compilation-scroll-output can be set to scroll
+*** New option 'compilation-scroll-output' can be set to scroll
automatically in compilation-mode windows.
** C mode changes
*** "java" style now conforms to Sun's JDK coding style.
-*** There are new commands c-beginning-of-defun, c-end-of-defun which
+*** There are new commands 'c-beginning-of-defun', 'c-end-of-defun' which
are alternatives which you could bind to C-M-a and C-M-e if you prefer
them. They do not have key bindings by default.
*** File local variable settings of c-file-style and c-file-offsets
makes the style variables local to that buffer only.
-*** New indentation functions c-lineup-close-paren,
-c-indent-one-line-block, c-lineup-dont-change.
+*** New indentation functions 'c-lineup-close-paren',
+'c-indent-one-line-block', 'c-lineup-dont-change'.
*** Improvements (hopefully!) to the way CC Mode is loaded. You
should now be able to do a (require 'cc-mode) to get the entire
package loaded properly for customization in your .emacs file. A new
-variable c-initialize-on-load controls this and is t by default.
+variable 'c-initialize-on-load' controls this and is t by default.
-** Changes to hippie-expand.
+** Changes to 'hippie-expand'.
-*** New customization variable `hippie-expand-dabbrev-skip-space'. If
+*** New customization variable 'hippie-expand-dabbrev-skip-space'. If
non-nil, trailing spaces may be included in the abbreviation to search for,
-which then gives the same behavior as the original `dabbrev-expand'.
+which then gives the same behavior as the original 'dabbrev-expand'.
-*** New customization variable `hippie-expand-dabbrev-as-symbol'. If
+*** New customization variable 'hippie-expand-dabbrev-as-symbol'. If
non-nil, characters of syntax '_' is considered part of the word when
expanding dynamically.
-*** New customization variable `hippie-expand-no-restriction'. If
+*** New customization variable 'hippie-expand-no-restriction'. If
non-nil, narrowed buffers are widened before they are searched.
-*** New customization variable `hippie-expand-only-buffers'. If
+*** New customization variable 'hippie-expand-only-buffers'. If
non-empty, buffers searched are restricted to the types specified in
this list. Useful for example when constructing new special-purpose
-expansion functions with `make-hippie-expand-function'.
+expansion functions with 'make-hippie-expand-function'.
*** Text properties of the expansion are no longer copied.
** Changes in BibTeX mode.
*** Any titleword matching a regexp in the new variable
-bibtex-autokey-titleword-ignore (case sensitive) is ignored during
+'bibtex-autokey-titleword-ignore' (case sensitive) is ignored during
automatic key generation. This replaces variable
-bibtex-autokey-titleword-first-ignore, which only checked for matches
+'bibtex-autokey-titleword-first-ignore', which only checked for matches
against the first word in the title.
*** Autokey generation now uses all words from the title, not just
*** Support for character terminals is available: there is a new keymap
and the vcursor will appear as an arrow between buffer text. A
-variable `vcursor-interpret-input' allows input from the vcursor to be
+variable 'vcursor-interpret-input' allows input from the vcursor to be
entered exactly as if typed. Numerous functions, including
-`vcursor-compare-windows', have been rewritten to improve consistency
+'vcursor-compare-windows', have been rewritten to improve consistency
in the selection of windows and corresponding keymaps.
*** vcursor options can now be altered with M-x customize under the
generally a bad side effect. Use M-x customize to set
vcursor-key-bindings to t to restore the old behavior.
-*** vcursor-auto-disable can be `copy', which turns off copying from the
+*** vcursor-auto-disable can be 'copy', which turns off copying from the
vcursor, but doesn't disable it, after any non-vcursor command.
** Ispell changes.
RefTeX has been updated in order to make it more usable with very
large projects (like a several volume math book). The parser has been
re-written from scratch. To get maximum speed from RefTeX, check the
-section `Optimizations' in the manual.
+section 'Optimizations' in the manual.
*** New recursive parser.
Reparsing of changed document parts can now be made faster by enabling
partial scans. To use this feature, read the documentation string of
-the variable `reftex-enable-partial-scans' and set the variable to t.
+the variable 'reftex-enable-partial-scans' and set the variable to t.
(setq reftex-enable-partial-scans t)
*** References to external documents.
-The LaTeX package `xr' allows to cross-reference labels in external
+The LaTeX package 'xr' allows to cross-reference labels in external
documents. RefTeX can provide information about the external
documents as well. To use this feature, set up the \externaldocument
-macros required by the `xr' package and rescan the document with
-RefTeX. The external labels can then be accessed with the `x' key in
-the selection buffer provided by `reftex-reference' (bound to `C-c )').
-The `x' key also works in the table of contents buffer.
+macros required by the 'xr' package and rescan the document with
+RefTeX. The external labels can then be accessed with the 'x' key in
+the selection buffer provided by 'reftex-reference' (bound to `C-c )').
+The 'x' key also works in the table of contents buffer.
*** Many more labeled LaTeX environments are recognized by default.
*** Mouse support for selection and *toc* buffers
The mouse can now be used to select items in the selection and *toc*
-buffers. See also the new option `reftex-highlight-selection'.
+buffers. See also the new option 'reftex-highlight-selection'.
*** New keymaps for selection and table of contents modes.
The selection processes for labels and citation keys, and the table of
-contents buffer now have their own keymaps: `reftex-select-label-map',
-`reftex-select-bib-map', `reftex-toc-map'. The selection processes
+contents buffer now have their own keymaps: 'reftex-select-label-map',
+'reftex-select-bib-map', 'reftex-toc-map'. The selection processes
have a number of new keys predefined. In particular, TAB lets you
enter a label with completion. Check the on-the-fly help (press `?'
at the selection prompt) or read the Info documentation to find out
*** Support for the varioref package
-The `v' key in the label selection buffer toggles \ref versus \vref.
+The 'v' key in the label selection buffer toggles \ref versus \vref.
*** New hooks
Three new hooks can be used to redefine the way labels, references,
and citations are created. These hooks are
-`reftex-format-label-function', `reftex-format-ref-function',
-`reftex-format-cite-function'.
+'reftex-format-label-function', 'reftex-format-ref-function',
+'reftex-format-cite-function'.
*** Citations outside LaTeX
-The command `reftex-citation' may also be used outside LaTeX (e.g. in
+The command 'reftex-citation' may also be used outside LaTeX (e.g. in
a mail buffer). See the Info documentation for details.
*** Short context is no longer fontified.
(setq reftex-refontify-context t)
-** file-cache-minibuffer-complete now accepts a prefix argument.
+** 'file-cache-minibuffer-complete' now accepts a prefix argument.
With a prefix argument, it does not try to do completion of
the file name within its directory; it only checks for other
directories that contain the same file name.
be helpful for other two-player games as well, as long as they have an
established system of notation similar to Chess.
-*** The new minor mode checkdoc-minor-mode provides Emacs Lisp
+*** The new minor mode 'checkdoc-minor-mode' provides Emacs Lisp
documentation string checking for style and spelling. The style
guidelines are found in the Emacs Lisp programming manual.
*** The net-utils package makes some common networking features
available in Emacs. Some of these functions are wrappers around
-system utilities (ping, nslookup, etc.); others are implementations of
-simple protocols (finger, whois) in Emacs Lisp. There are also
+system utilities ('ping', 'nslookup', etc.); others are implementations of
+simple protocols ('finger', 'whois') in Emacs Lisp. There are also
functions to make simple connections to TCP/IP ports for debugging and
the like.
-*** highlight-changes-mode is a minor mode that uses colors to
+*** 'highlight-changes-mode' is a minor mode that uses colors to
identify recently changed parts of the buffer text.
-*** The new package `midnight' lets you specify things to be done
+*** The new package 'midnight' lets you specify things to be done
within Emacs at midnight--by default, kill buffers that you have not
used in a considerable time. To use this feature, customize
-the user option `midnight-mode' to t.
+the user option 'midnight-mode' to t.
*** The file generic-x.el defines a number of simple major modes.
- apache-generic-mode: For Apache and NCSA httpd configuration files
- samba-generic-mode: Samba configuration files
- fvwm-generic-mode: For fvwm initialization files
- x-resource-generic-mode: For X resource files
- hosts-generic-mode: For hosts files (.rhosts, /etc/hosts, etc.)
- mailagent-rules-generic-mode: For mailagent .rules files
- javascript-generic-mode: For JavaScript files
- vrml-generic-mode: For VRML files
- java-manifest-generic-mode: For Java MANIFEST files
- java-properties-generic-mode: For Java property files
- mailrc-generic-mode: For .mailrc files
+ 'apache-generic-mode': For Apache and NCSA httpd configuration files
+ 'samba-generic-mode': Samba configuration files
+ 'fvwm-generic-mode': For fvwm initialization files
+ 'x-resource-generic-mode': For X resource files
+ 'hosts-generic-mode': For hosts files (.rhosts, /etc/hosts, etc.)
+ 'mailagent-rules-generic-mode': For mailagent .rules files
+ 'javascript-generic-mode': For JavaScript files
+ 'vrml-generic-mode': For VRML files
+ 'java-manifest-generic-mode': For Java MANIFEST files
+ 'java-properties-generic-mode': For Java property files
+ 'mailrc-generic-mode': For .mailrc files
Platform-specific modes:
- prototype-generic-mode: For Solaris/Sys V prototype files
- pkginfo-generic-mode: For Solaris/Sys V pkginfo files
- alias-generic-mode: For C shell alias files
- inf-generic-mode: For MS-Windows INF files
- ini-generic-mode: For MS-Windows INI files
- reg-generic-mode: For MS-Windows Registry files
- bat-generic-mode: For MS-Windows BAT scripts
- rc-generic-mode: For MS-Windows Resource files
- rul-generic-mode: For InstallShield scripts
+ 'prototype-generic-mode': For Solaris/Sys V prototype files
+ 'pkginfo-generic-mode': For Solaris/Sys V pkginfo files
+ 'alias-generic-mode': For C shell alias files
+ 'inf-generic-mode': For MS-Windows INF files
+ 'ini-generic-mode': For MS-Windows INI files
+ 'reg-generic-mode': For MS-Windows Registry files
+ 'bat-generic-mode': For MS-Windows BAT scripts
+ 'rc-generic-mode': For MS-Windows Resource files
+ 'rul-generic-mode': For InstallShield scripts
\f
* Lisp changes in Emacs 20.3 since the Emacs Lisp Manual was published
you started Emacs with --unibyte, so that a Lisp program gives
consistent results regardless of how Emacs was started.
-** The new function assoc-default is useful for searching an alist,
+** The new function 'assoc-default' is useful for searching an alist,
and using a default value if the key is not found there. You can
specify a comparison predicate, so this function is useful for
searching comparing a string against an alist of regular expressions.
-** The functions unibyte-char-to-multibyte and
-multibyte-char-to-unibyte convert between unibyte and multibyte
+** The functions 'unibyte-char-to-multibyte' and
+'multibyte-char-to-unibyte' convert between unibyte and multibyte
character codes, in a way that is appropriate for the current language
environment.
-** The functions read-event, read-char and read-char-exclusive now
+** The functions 'read-event', 'read-char' and 'read-char-exclusive' now
take two optional arguments. PROMPT, if non-nil, specifies a prompt
string. SUPPRESS-INPUT-METHOD, if non-nil, says to disable the
current input method for reading this one event.
-** Two new variables print-escape-nonascii and print-escape-multibyte
+** Two new variables 'print-escape-nonascii' and 'print-escape-multibyte'
now control whether to output certain characters as
backslash-sequences. print-escape-nonascii applies to single-byte
non-ASCII characters; print-escape-multibyte applies to multibyte
See below for additional changes relating to multibyte characters.
-** defcustom, defface and defgroup now accept the keyword `:version'.
+** 'defcustom', 'defface' and 'defgroup' now accept the keyword ':version'.
Use this to specify in which version of Emacs a certain variable's
default value changed. For example,
:version "20.3")
If an entire new group is added or the variables in it have the
-default values changed, then just add a `:version' to that group. It
+default values changed, then just add a ':version' to that group. It
is recommended that new packages added to the distribution contain a
-`:version' in the top level group.
+':version' in the top level group.
This information is used to control the customize-changed-options command.
very transitory fashion, so that trying to produce any specific effect
through a window-local binding would not be very robust.
-** `sregexq' and `sregex' are two new functions for constructing
+** 'sregexq' and 'sregex' are two new functions for constructing
"symbolic regular expressions." These are Lisp expressions that, when
evaluated, yield conventional string-based regexps. The symbolic form
makes it easier to construct, read, and maintain complex patterns.
See the documentation in sregex.el.
-** parse-partial-sexp's return value has an additional element which
+** 'parse-partial-sexp's return value has an additional element which
is used to pass information along if you pass it to another call to
parse-partial-sexp, starting its scan where the first call ended.
The contents of this field are not yet finalized.
-** eval-region now accepts a fourth optional argument READ-FUNCTION.
-If it is non-nil, that function is used instead of `read'.
+** 'eval-region' now accepts a fourth optional argument READ-FUNCTION.
+If it is non-nil, that function is used instead of 'read'.
-** unload-feature by default removes the feature's functions from
+** 'unload-feature' by default removes the feature's functions from
known hooks to avoid trouble, but a package providing FEATURE can
define a hook FEATURE-unload-hook to be run by unload-feature instead.
-** read-from-minibuffer no longer returns the argument DEFAULT-VALUE
+** 'read-from-minibuffer' no longer returns the argument DEFAULT-VALUE
when the user enters empty input. It now returns the null string, as
it did in Emacs 19. The default value is made available in the
history via M-n, but it is not applied here as a default.
return the default value (not the null string) when the user enters
empty input.
-** The new variable read-buffer-function controls which routine to use
+** The new variable 'read-buffer-function' controls which routine to use
for selecting buffers. For example, if you set this variable to
-`iswitchb-read-buffer', iswitchb will be used to read buffer names.
+'iswitchb-read-buffer', iswitchb will be used to read buffer names.
Other functions can also be used if they accept the same arguments as
-`read-buffer' and return the selected buffer name as a string.
+'read-buffer' and return the selected buffer name as a string.
-** The new function read-passwd reads a password from the terminal,
+** The new function 'read-passwd' reads a password from the terminal,
echoing a period for each character typed. It takes three arguments:
a prompt string, a flag which says "read it twice to make sure", and a
default password to use if the user enters nothing.
-** The variable fill-nobreak-predicate gives major modes a way to
+** The variable 'fill-nobreak-predicate' gives major modes a way to
specify not to break a line at certain places. Its value is a
function which is called with no arguments, with point located at the
place where a break is being considered. If the function returns
non-nil, then the line won't be broken there.
-** window-end now takes an optional second argument, UPDATE.
+** 'window-end' now takes an optional second argument, UPDATE.
If this is non-nil, then the function always returns an accurate
up-to-date value for the buffer position corresponding to the
end of the window, even if this requires computation.
-** other-buffer now takes an optional argument FRAME
+** 'other-buffer' now takes an optional argument FRAME
which specifies which frame's buffer list to use.
If it is nil, that means use the selected frame's buffer list.
-** The new variable buffer-display-time, always local in every buffer,
+** The new variable 'buffer-display-time', always local in every buffer,
holds the value of (current-time) as of the last time that a window
was directed to display this buffer.
** It is now meaningful to compare two window-configuration objects
-with `equal'. Two window-configuration objects are equal if they
+with 'equal'. Two 'window-configuration' objects are equal if they
describe equivalent arrangements of windows, in the same frame--in
other words, if they would give the same results if passed to
-set-window-configuration.
+'set-window-configuration'.
-** compare-window-configurations is a new function that compares two
+** 'compare-window-configurations' is a new function that compares two
window configurations loosely. It ignores differences in saved buffer
positions and scrolling, and considers only the structure and sizes of
windows and the choice of buffers to display.
-** The variable minor-mode-overriding-map-alist allows major modes to
+** The variable 'minor-mode-overriding-map-alist' allows major modes to
override the key bindings of a minor mode. The elements of this alist
-look like the elements of minor-mode-map-alist: (VARIABLE . KEYMAP).
+look like the elements of 'minor-mode-map-alist': (VARIABLE . KEYMAP).
If the VARIABLE in an element of minor-mode-overriding-map-alist has a
non-nil value, the paired KEYMAP is active, and totally overrides the
map (if any) specified for the same variable in minor-mode-map-alist.
-minor-mode-overriding-map-alist is automatically local in all buffers,
+'minor-mode-overriding-map-alist' is automatically local in all buffers,
and it is meant to be set by major modes.
-** The function match-string-no-properties is like match-string
+** The function 'match-string-no-properties' is like 'match-string'
except that it discards all text properties from the result.
-** The function load-average now accepts an optional argument
+** The function 'load-average' now accepts an optional argument
USE-FLOATS. If it is non-nil, the load average values are returned as
floating point numbers, rather than as integers to be divided by 100.
-** The new variable temporary-file-directory specifies the directory
+** The new variable 'temporary-file-directory' specifies the directory
to use for creating temporary files. The default value is determined
in a reasonable way for your operating system; on GNU and Unix systems
it is based on the TMP and TMPDIR environment variables.
keywords :visible and :filter. The existing keyword :keys is now
better supported.
-The variable `easy-menu-precalculate-equivalent-keybindings' controls
+The variable 'easy-menu-precalculate-equivalent-keybindings' controls
a new feature which calculates keyboard equivalents for the menu when
you define the menu. The default is t. If you rarely use menus, you
can set the variable to nil to disable this precalculation feature;
In a keymap, a key binding that has the format
(STRING . REAL-BINDING) or (STRING HELP-STRING . REAL-BINDING)
defines a menu item. Now a menu item definition may also be a list that
-starts with the symbol `menu-item'.
+starts with the symbol 'menu-item'.
The format is:
(menu-item ITEM-NAME) or
:keys DESCRIPTION
DESCRIPTION is a string that describes an equivalent keyboard
binding for REAL-BINDING. DESCRIPTION is expanded with
- `substitute-command-keys' before it is used.
+ 'substitute-command-keys' before it is used.
:key-sequence KEY-SEQUENCE
KEY-SEQUENCE is a key-sequence for an equivalent
keyboard binding.
** New event types
-*** The new event type `mouse-wheel' is generated by a wheel on a
+*** The new event type 'mouse-wheel' is generated by a wheel on a
mouse (such as the MS Intellimouse). The event contains a delta that
corresponds to the amount and direction that the wheel is rotated,
which is typically used to implement a scroll or zoom. The format is:
As of now, this event type is generated only on MS Windows.
-*** The new event type `drag-n-drop' is generated when a group of
+*** The new event type 'drag-n-drop' is generated when a group of
files is selected in an application outside of Emacs, and then dragged
and dropped onto an Emacs frame. The event contains a list of
filenames that were dragged and dropped, which are then typically
** Changes relating to multibyte characters.
-*** The variable enable-multibyte-characters is now read-only;
+*** The variable 'enable-multibyte-characters' is now read-only;
any attempt to set it directly signals an error. The only way
-to change this value in an existing buffer is with set-buffer-multibyte.
+to change this value in an existing buffer is with 'set-buffer-multibyte'.
*** In a string constant, `\ ' now stands for "nothing at all". You
can use it to terminate a hex escape which is followed by a character
in Emacs 19 and before.
The function chars-in-string has been deleted.
-The function concat-chars has been renamed to `string'.
+The function concat-chars has been renamed to 'string'.
-*** The function set-buffer-multibyte sets the flag in the current
+*** The function 'set-buffer-multibyte' sets the flag in the current
buffer that says whether the buffer uses multibyte representation or
unibyte representation. If the argument is nil, it selects unibyte
representation. Otherwise it selects multibyte representation.
one character when the buffer uses multibyte representation
will count as two characters using unibyte representation.
-This function sets enable-multibyte-characters to record which
+This function sets 'enable-multibyte-characters' to record which
representation is in use. It also adjusts various data in the buffer
(including its markers, overlays and text properties) so that they are
consistent with the new representation.
-*** string-make-multibyte takes a string and converts it to multibyte
+*** 'string-make-multibyte' takes a string and converts it to multibyte
representation. Most of the time, you don't need to care
about the representation, because Emacs converts when necessary;
however, it makes a difference when you compare strings.
nonascii-insert-offset to each character, or by translating them
using the table nonascii-translation-table.
-*** string-make-unibyte takes a string and converts it to unibyte
+*** 'string-make-unibyte' takes a string and converts it to unibyte
representation. Most of the time, you don't need to care about the
representation, but it makes a difference when you compare strings.
loses information; the only time Emacs performs it automatically
is when inserting a multibyte string into a unibyte buffer.
-*** string-as-multibyte takes a string, and returns another string
+*** 'string-as-multibyte' takes a string, and returns another string
which contains the same bytes, but treats them as multibyte.
-*** string-as-unibyte takes a string, and returns another string
+*** 'string-as-unibyte' takes a string, and returns another string
which contains the same bytes, but treats them as unibyte.
-*** The new function compare-strings lets you compare
+*** The new function 'compare-strings' lets you compare
portions of two strings. Unibyte strings are converted to multibyte,
so that a unibyte string can match a multibyte string.
You can specify whether to ignore case or not.
-*** assoc-ignore-case now uses compare-strings so that
+*** 'assoc-ignore-case' now uses compare-strings so that
it can treat unibyte and multibyte strings as equal.
*** Regular expression operations and buffer string searches now
*** Structure of coding system changed.
All coding systems (including aliases and subsidiaries) are named
-by symbols; the symbol's `coding-system' property is a vector
+by symbols; the symbol's 'coding-system' property is a vector
which defines the coding system. Aliases share the same vector
as the principal name, so that altering the contents of this
vector affects the principal name and its aliases. You can define
your own alias name of a coding system by the function
-define-coding-system-alias.
+'define-coding-system-alias'.
The coding system definition includes a property list of its own. Use
-the new functions `coding-system-get' and `coding-system-put' to
-access such coding system properties as post-read-conversion,
-pre-write-conversion, character-translation-table-for-decode,
-character-translation-table-for-encode, mime-charset, and
-safe-charsets. For instance, (coding-system-get 'iso-latin-1
+the new functions 'coding-system-get' and 'coding-system-put' to
+access such coding system properties as 'post-read-conversion',
+'pre-write-conversion', 'character-translation-table-for-decode',
+'character-translation-table-for-encode', 'mime-charset', and
+'safe-charsets'. For instance, (coding-system-get 'iso-latin-1
'mime-charset) gives the corresponding MIME-charset parameter
-`iso-8859-1'.
+'iso-8859-1'.
Among the coding system properties listed above, safe-charsets is new.
The value of this property is a list of character sets which this
are capable of that coding system. Though, Emacs itself can encode
the other character sets and read it back correctly.
-*** The new function select-safe-coding-system can be used to find a
+*** The new function 'select-safe-coding-system' can be used to find a
proper coding system for encoding the specified region or string.
This function requires a user interaction.
-*** The new functions find-coding-systems-region and
-find-coding-systems-string are helper functions used by
-select-safe-coding-system. They return a list of all proper coding
+*** The new functions 'find-coding-systems-region' and
+'find-coding-systems-string' are helper functions used by
+'select-safe-coding-system'. They return a list of all proper coding
systems to encode a text in some region or string. If you don't want
a user interaction, use one of these functions instead of
-select-safe-coding-system.
+'select-safe-coding-system'.
*** The explicit encoding and decoding functions, such as
-decode-coding-region and encode-coding-string, now set
-last-coding-system-used to reflect the actual way encoding or decoding
+'decode-coding-region' and 'encode-coding-string', now set
+'last-coding-system-used' to reflect the actual way encoding or decoding
was done.
-*** The new function detect-coding-with-language-environment can be
+*** The new function 'detect-coding-with-language-environment' can be
used to detect a coding system of text according to priorities of
coding systems used by some specific language environment.
-*** The functions detect-coding-region and detect-coding-string always
+*** The functions 'detect-coding-region' and 'detect-coding-string' always
return a list if the arg HIGHEST is nil. Thus, if only ASCII
characters are found, they now return a list of single element
-`undecided' or its subsidiaries.
+'undecided' or its subsidiaries.
-*** The new functions coding-system-change-eol-conversion and
-coding-system-change-text-conversion can be used to get a different
+*** The new functions 'coding-system-change-eol-conversion' and
+'coding-system-change-text-conversion' can be used to get a different
coding system than what specified only in how end-of-line or text is
converted.
-*** The new function set-selection-coding-system can be used to set a
+*** The new function 'set-selection-coding-system' can be used to set a
coding system for communicating with other X clients.
-*** The function `map-char-table' now passes as argument only valid
+*** The function 'map-char-table' now passes as argument only valid
character codes, plus generic characters that stand for entire
character sets or entire subrows of a character set. In other words,
-each time `map-char-table' calls its FUNCTION argument, the key value
+each time 'map-char-table' calls its FUNCTION argument, the key value
either will be a valid individual character code, or will stand for a
range of characters.
-*** The new function `char-valid-p' can be used for checking whether a
+*** The new function 'char-valid-p' can be used for checking whether a
Lisp object is a valid character code or not.
-*** The new function `charset-after' returns a charset of a character
+*** The new function 'charset-after' returns a charset of a character
in the current buffer at position POS.
*** Input methods are now implemented using the variable
-input-method-function. If this is non-nil, its value should be a
+'input-method-function'. If this is non-nil, its value should be a
function; then, whenever Emacs reads an input event that is a printing
character with no modifier bits, it calls that function, passing the
event as an argument. Often this function will read more input, first
subsequent events of a key sequence.
*** You can customize any language environment by using
-set-language-environment-hook and exit-language-environment-hook.
+'set-language-environment-hook' and 'exit-language-environment-hook'.
-The hook `exit-language-environment-hook' should be used to undo
-customizations that you made with set-language-environment-hook. For
+The hook 'exit-language-environment-hook' should be used to undo
+customizations that you made with 'set-language-environment-hook'. For
instance, if you set up a special key binding for a specific language
environment by set-language-environment-hook, you should set up
exit-language-environment-hook to restore the normal key binding.
in your .emacs file.)
** Scroll bars are now on the left side of the window.
-You can change this with M-x customize-option scroll-bar-mode.
+You can change this with M-x customize-option 'scroll-bar-mode'.
-** The mode line no longer includes the string `Emacs'.
+** The mode line no longer includes the string 'Emacs'.
This makes more space in the mode line for other information.
** When you select a region with the mouse, it is highlighted
** In an incremental search the whole current match is highlighted
on terminals which support this. (You can disable this feature
-by setting search-highlight to nil.)
+by setting 'search-highlight' to nil.)
** In the minibuffer, in some cases, you can now use M-n to
insert the default value into the minibuffer as text. In effect,
** In Text mode, now only blank lines separate paragraphs.
This makes it possible to get the full benefit of Adaptive Fill mode
in Text mode, and other modes derived from it (such as Mail mode).
-TAB in Text mode now runs the command indent-relative; this
+TAB in Text mode now runs the command 'indent-relative'; this
makes a practical difference only when you use indented paragraphs.
As a result, the old Indented Text mode is now identical to Text mode,
** Scrolling changes
*** Scroll commands to scroll a whole screen now preserve the screen
-position of the cursor, if scroll-preserve-screen-position is non-nil.
+position of the cursor, if 'scroll-preserve-screen-position' is non-nil.
In this mode, if you scroll several screens back and forth, finishing
on the same screen where you started, the cursor goes back to the line
where it started.
-*** If you set scroll-conservatively to a small number, then when you
+*** If you set 'scroll-conservatively' to a small number, then when you
move point a short distance off the screen, Emacs will scroll the
screen just far enough to bring point back on screen, provided that
-does not exceed `scroll-conservatively' lines.
+does not exceed 'scroll-conservatively' lines.
-*** The new variable scroll-margin says how close point can come to the
+*** The new variable 'scroll-margin' says how close point can come to the
top or bottom of a window. It is a number of screen lines; if point
comes within that many lines of the top or bottom of the window, Emacs
recenters the window.
what you want.
If you want to edit a file of unibyte characters (Latin-1, for
-example), you can do it by specifying `no-conversion' as the coding
+example), you can do it by specifying 'no-conversion' as the coding
system when reading the file. This coding system also turns off
multibyte characters in that buffer.
Emacs does not use any fontset by default. Its default font is still
chosen as in previous versions. You can tell Emacs to use a fontset
-with the `-fn' option or the `Font' X resource.
+with the '-fn' option or the 'Font' X resource.
Emacs creates a standard fontset automatically according to the value
-of standard-fontset-spec. This fontset's short name is
-`fontset-standard'. Bold, italic, and bold-italic variants of the
+of 'standard-fontset-spec'. This fontset's short name is
+'fontset-standard'. Bold, italic, and bold-italic variants of the
standard fontset are created automatically.
-If you specify a default ASCII font with the `Font' resource or `-fn'
+If you specify a default ASCII font with the 'Font' resource or '-fn'
argument, a fontset is generated from it. This works by replacing the
FOUNDRY, FAMILY, ADD_STYLE, and AVERAGE_WIDTH fields of the font name
with `*' then using this to specify a fontset. This fontset's short
-name is `fontset-startup'.
+name is 'fontset-startup'.
Emacs checks resources of the form Fontset-N where N is 0, 1, 2...
The resource value should have this form:
(This is to prevent use of auto-scaled fonts.)
The function which processes the fontset resource value to create the
-fontset is called create-fontset-from-fontset-spec. You can also call
+fontset is called 'create-fontset-from-fontset-spec'. You can also call
that function explicitly to create a fontset.
With the X resource Emacs.Font, you can specify a fontset name just
then C-x RET c ultimately has no effect.
For example, C-x RET c iso-8859-1 RET C-x C-f temp RET
-visits the file `temp' treating it as ISO Latin-1.
+visits the file 'temp' treating it as ISO Latin-1.
*** You can specify the coding system for a file using the -*-
construct. Include `coding: CODINGSYSTEM;' inside the -*-...-*-
By default, process input and output are not translated at all.
-*** The variable file-name-coding-system specifies the coding system
+*** The variable 'file-name-coding-system' specifies the coding system
to use for encoding file names before operating on them.
It is also used for decoding file names obtained from the system.
first dash.
A dash indicates the default state of affairs: no code conversion
-(except CRLF => newline if appropriate). `=' means no conversion
+(except CRLF => newline if appropriate). '=' means no conversion
whatsoever. The ISO 8859 coding systems are represented by digits
1 through 9. Other coding systems are represented by letters:
coding system. These two characters describe the coding system for
keyboard input, and the coding system for terminal output.
-*** The new variable rmail-file-coding-system specifies the code
+*** The new variable 'rmail-file-coding-system' specifies the code
conversion to use for RMAIL files. The default value is nil.
When you read mail with Rmail, each message is decoded automatically
rmail-file-coding-system. That variable controls reading and writing
Rmail files themselves.
-*** The new variable sendmail-coding-system specifies the code
+*** The new variable 'sendmail-coding-system' specifies the code
conversion for outgoing mail. The default value is nil.
Actually, there are three different ways of specifying the coding system
** An easy new way to visit a file with no code or format conversion
of any kind: Use M-x find-file-literally. There is also a command
-insert-file-literally which inserts a file into the current buffer
+'insert-file-literally' which inserts a file into the current buffer
without any conversion.
** C-q's handling of octal character codes is changed.
mode. For example, in C mode, the GNU libc manual is used.
** M-TAB in most programming language modes now runs the command
-complete-symbol. This command performs completion on the symbol name
+'complete-symbol'. This command performs completion on the symbol name
in the buffer before point.
With a numeric argument, it performs completion based on the set of
** If you wish to use Show Paren mode to display matching parentheses,
it is no longer sufficient to load paren.el. Instead you must call
-show-paren-mode.
+'show-paren-mode'.
** If you wish to use Delete Selection mode to replace a highlighted
selection when you insert new text, it is no longer sufficient to load
-delsel.el. Instead you must call the function delete-selection-mode.
+delsel.el. Instead you must call the function 'delete-selection-mode'.
** If you wish to use Partial Completion mode to complete partial words
within symbols or filenames, it is no longer sufficient to load
-complete.el. Instead you must call the function partial-completion-mode.
+complete.el. Instead you must call the function 'partial-completion-mode'.
** If you wish to use uniquify to rename buffers for you,
it is no longer sufficient to load uniquify.el. You must also
-set uniquify-buffer-name-style to one of the non-nil legitimate values.
+set 'uniquify-buffer-name-style' to one of the non-nil legitimate values.
** Changes in View mode.
Do H in view mode for a list of commands.
*** There are two new commands for entering View mode:
-view-file-other-frame and view-buffer-other-frame.
+'view-file-other-frame' and 'view-buffer-other-frame'.
*** Exiting View mode does a better job of restoring windows to their
previous state.
-*** New customization variable view-scroll-auto-exit. If non-nil,
+*** New customization variable 'view-scroll-auto-exit'. If non-nil,
scrolling past end of buffer makes view mode exit.
-*** New customization variable view-exits-all-viewing-windows. If
+*** New customization variable 'view-exits-all-viewing-windows'. If
non-nil, view-mode will at exit restore all windows viewing buffer,
not just the selected window.
-*** New customization variable view-read-only. If non-nil, visiting a
-read-only file automatically enters View mode, and toggle-read-only
+*** New customization variable 'view-read-only'. If non-nil, visiting a
+read-only file automatically enters View mode, and 'toggle-read-only'
turns View mode on or off.
-*** New customization variable view-remove-frame-by-deleting controls
+*** New customization variable 'view-remove-frame-by-deleting' controls
how to remove a not needed frame at view mode exit. If non-nil,
delete the frame, if nil make an icon of it.
The block is hidden again if the search is continued and the next match
is outside the block. By customizing the variable
-isearch-hide-immediately you can choose to hide all the temporarily
+'isearch-hide-immediately' you can choose to hide all the temporarily
shown blocks only when exiting from incremental search.
-By customizing the variable hs-isearch-open you can choose what kind
+By customizing the variable 'hs-isearch-open' you can choose what kind
of blocks to temporarily show during isearch: comment blocks, code
blocks, all of them or none.
This applies to M-x set-visited-file-name as well.
-However, if you set change-major-mode-with-file-name to nil, then
+However, if you set 'change-major-mode-with-file-name' to nil, then
these commands do not change the major mode.
** M-x occur changes.
mixed case. And using SPC M-/ to copy an additional word always
copies it verbatim except when the previous copied word is all caps.
-*** The values of `dabbrev-case-replace' and `dabbrev-case-fold-search'
+*** The values of 'dabbrev-case-replace' and 'dabbrev-case-fold-search'
are no longer Lisp expressions. They have simply three possible
values.
-`dabbrev-case-replace' has these three values: nil (don't preserve
-case), t (do), or `case-replace' (do like M-x query-replace).
-`dabbrev-case-fold-search' has these three values: nil (don't ignore
-case), t (do), or `case-fold-search' (do like search).
+'dabbrev-case-replace' has these three values: nil (don't preserve
+case), t (do), or 'case-replace' (do like M-x query-replace).
+'dabbrev-case-fold-search' has these three values: nil (don't ignore
+case), t (do), or 'case-fold-search' (do like search).
** Minibuffer history lists are truncated automatically now to a
-certain length. The variable history-length specifies how long they
+certain length. The variable 'history-length' specifies how long they
can be. The default value is 30.
** Changes in Mail mode.
-*** The key C-x m no longer runs the `mail' command directly.
-Instead, it runs the command `compose-mail', which invokes the mail
+*** The key C-x m no longer runs the 'mail' command directly.
+Instead, it runs the command 'compose-mail', which invokes the mail
composition mechanism you have selected with the variable
-`mail-user-agent'. The default choice of user agent is
-`sendmail-user-agent', which gives behavior compatible with the old
+'mail-user-agent'. The default choice of user agent is
+'sendmail-user-agent', which gives behavior compatible with the old
behavior.
-C-x 4 m now runs compose-mail-other-window, and C-x 5 m runs
-compose-mail-other-frame.
+C-x 4 m now runs 'compose-mail-other-window', and C-x 5 m runs
+'compose-mail-other-frame'.
*** While composing a reply to a mail message, from Rmail, you can use
the command C-c C-r to cite just the region from the message you are
*** New features in the mail-complete command.
-**** The mail-complete command now inserts the user's full name,
-for local users or if that is known. The variable mail-complete-style
+**** The 'mail-complete' command now inserts the user's full name,
+for local users or if that is known. The variable 'mail-complete-style'
controls the style to use, and whether to do this at all.
-Its values are like those of mail-from-style.
+Its values are like those of 'mail-from-style'.
-**** The variable mail-passwd-command lets you specify a shell command
+**** The variable 'mail-passwd-command' lets you specify a shell command
to run to fetch a set of password-entries that add to the ones in
/etc/passwd.
-**** The variable mail-passwd-file now specifies a list of files to read
+**** The variable 'mail-passwd-file' now specifies a list of files to read
to get the list of user ids. By default, one file is used:
/etc/passwd.
** You can "quote" a file name to inhibit special significance of
special syntax, by adding `/:' to the beginning. Thus, if you have a
directory named `/foo:', you can prevent it from being treated as a
-reference to a remote host named `foo' by writing it as `/:/foo:'.
+reference to a remote host named 'foo' by writing it as `/:/foo:'.
Emacs uses this new construct automatically when necessary, such as
when you start it with a working directory whose name might otherwise
Gnus.
*** Scoring can now be performed with logical operators like
-`and', `or', `not', and parent redirection.
+'and', 'or', 'not', and parent redirection.
*** Article washing status can be displayed in the
article mode line.
*** Suppression of duplicate articles based on Message-ID.
-(setq gnus-suppress-duplicates t)
+ (setq gnus-suppress-duplicates t)
*** New variables for specifying what score and adapt files
are to be considered home score and adapt files. See
-`gnus-home-score-file' and `gnus-home-adapt-files'.
+'gnus-home-score-file' and 'gnus-home-adapt-files'.
*** Groups can inherit group parameters from parent topics.
*** Article editing has been revamped and is now usable.
*** Signatures can be recognized in more intelligent fashions.
-See `gnus-signature-separator' and `gnus-signature-limit'.
+See 'gnus-signature-separator' and 'gnus-signature-limit'.
*** Summary pick mode has been made to look more nn-like.
Line numbers are displayed and the `.' command can be
*** Several commands in the group buffer can be undone with
`C-M-_'.
-*** Scoring can be done on words using the new score type `w'.
+*** Scoring can be done on words using the new score type 'w'.
*** Adaptive scoring can be done on a Subject word-by-word basis:
`M-x gnus-group-clear-data-on-native-groups'
*** A new command for reading collections of documents
-(nndoc with nnvirtual on top) has been added -- `C-M-d'.
+(nndoc with nnvirtual on top) has been added -- 'C-M-d'.
*** Process mark sets can be pushed and popped.
*** More hooks and functions have been added to remove junk
from incoming mail before saving the mail.
- See `nnmail-prepare-incoming-header-hook'.
+ See 'nnmail-prepare-incoming-header-hook'.
*** The nnml mail backend now understands compressed article files.
*** To enable Gnus to read/post multi-lingual articles, you must execute
the following code, for instance, in your .emacs.
- (add-hook 'gnus-startup-hook 'gnus-mule-initialize)
+ (add-hook 'gnus-startup-hook #'gnus-mule-initialize)
Then, when you start Gnus, it will decode non-ASCII text automatically
and show appropriate characters. (Note: if you are using gnus-mime
c-style-variables-are-local-p to t in your .emacs file. Note that you
must do this *before* CC Mode is loaded.
-*** The new variable c-indentation-style holds the C style name
+*** The new variable 'c-indentation-style' holds the C style name
of the current buffer.
-*** The variable c-block-comments-indent-p has been deleted, because
+*** The variable 'c-block-comments-indent-p' has been deleted, because
it is no longer necessary. C mode now handles all the supported styles
of block comments, with no need to say which one you will use.
*** There is a new indentation style "python", which specifies the C
style that the Python developers like.
-*** There is a new c-cleanup-list option: brace-elseif-brace.
+*** There is a new 'c-cleanup-list' option: brace-elseif-brace.
This says to put ...} else if (...) {... on one line,
just as brace-else-brace says to put ...} else {... on one line.
writable copy, type C-x C-q in a buffer visiting such a file. VC then
calls "cvs edit", which notifies the other developers of it.
-*** vc-version-diff (C-u C-x v =) now suggests reasonable defaults for
+*** 'vc-version-diff' (C-u C-x v =) now suggests reasonable defaults for
version numbers, based on the current state of the file.
** Calendar changes.
-*** A new function, list-holidays, allows you list holidays or
+*** A new function, 'list-holidays', allows you list holidays or
subclasses of holidays for ranges of years. Related menu items allow
you do this for the year of the selected date, or the
following/previous years.
-*** There is now support for the Baha'i calendar system. Use `pb' in
+*** There is now support for the Baha'i calendar system. Use 'pb' in
the *Calendar* buffer to display the current Baha'i date. The Baha'i
calendar, or "Badi calendar" is a system of 19 months with 19 days
each, and 4 intercalary days (5 during a Gregorian leap year). The
Some printer systems print a header page and force the first page to
be printed on the back of the header page when using duplex. If your
printer system has this behavior, set variable
-`ps-banner-page-when-duplexing' to t.
+'ps-banner-page-when-duplexing' to t.
-If variable `ps-banner-page-when-duplexing' is non-nil, it prints a
+If variable 'ps-banner-page-when-duplexing' is non-nil, it prints a
blank page as the very first printed page. So, it behaves as if the
very first character of buffer (or region) were a form feed ^L (\014).
-The variable `ps-spool-config' specifies who is responsible for
+The variable 'ps-spool-config' specifies who is responsible for
setting duplex mode and page size. Valid values are:
- lpr-switches duplex and page size are configured by `ps-lpr-switches'.
- Don't forget to set `ps-lpr-switches' to select duplex
+ lpr-switches duplex and page size are configured by 'ps-lpr-switches'.
+ Don't forget to set 'ps-lpr-switches' to select duplex
printing for your printer.
setpagedevice duplex and page size are configured by ps-print using the
nil duplex and page size are configured by ps-print *not* using
the setpagedevice PostScript operator.
-The variable `ps-spool-tumble' specifies how the page images on
+The variable 'ps-spool-tumble' specifies how the page images on
opposite sides of a sheet are oriented with respect to each other. If
-`ps-spool-tumble' is nil, ps-print produces output suitable for
-bindings on the left or right. If `ps-spool-tumble' is non-nil,
+'ps-spool-tumble' is nil, ps-print produces output suitable for
+bindings on the left or right. If 'ps-spool-tumble' is non-nil,
ps-print produces output suitable for bindings at the top or bottom.
-This variable takes effect only if `ps-spool-duplex' is non-nil.
+This variable takes effect only if 'ps-spool-duplex' is non-nil.
The default value is nil.
-The variable `ps-header-frame-alist' specifies a header frame
+The variable 'ps-header-frame-alist' specifies a header frame
properties alist. Valid frame properties are:
fore-color Specify the foreground frame color.
Any other property is ignored.
Don't change this alist directly; instead use Custom, or the
-`ps-value', `ps-get', `ps-put' and `ps-del' functions (see there for
+'ps-value', 'ps-get', 'ps-put' and 'ps-del' functions (see there for
documentation).
Ps-print can also print footers. The footer variables are:
-`ps-print-footer', `ps-footer-offset', `ps-print-footer-frame',
-`ps-footer-font-family', `ps-footer-font-size', `ps-footer-line-pad',
-`ps-footer-lines', `ps-left-footer', `ps-right-footer' and
-`ps-footer-frame-alist'. These variables are similar to those
+'ps-print-footer', 'ps-footer-offset', 'ps-print-footer-frame',
+'ps-footer-font-family', 'ps-footer-font-size', 'ps-footer-line-pad',
+'ps-footer-lines', 'ps-left-footer', 'ps-right-footer' and
+'ps-footer-frame-alist'. These variables are similar to those
controlling headers.
*** Color management (subgroup)
-If `ps-print-color-p' is non-nil, the buffer's text will be printed in
+If 'ps-print-color-p' is non-nil, the buffer's text will be printed in
color.
*** Face Management (subgroup)
If you need to print without worrying about face background colors,
-set the variable `ps-use-face-background' which specifies if face
+set the variable 'ps-use-face-background' which specifies if face
background should be used. Valid values are:
t always use face background color.
*** N-up printing (subgroup)
-The variable `ps-n-up-printing' specifies the number of pages per
+The variable 'ps-n-up-printing' specifies the number of pages per
sheet of paper.
-The variable `ps-n-up-margin' specifies the margin in points (pt)
+The variable 'ps-n-up-margin' specifies the margin in points (pt)
between the sheet border and the n-up printing.
-If variable `ps-n-up-border-p' is non-nil, a border is drawn around
+If variable 'ps-n-up-border-p' is non-nil, a border is drawn around
each page.
-The variable `ps-n-up-filling' specifies how the page matrix is filled
+The variable 'ps-n-up-filling' specifies how the page matrix is filled
on each sheet of paper. Following are the valid values for
-`ps-n-up-filling' with a filling example using a 3x4 page matrix:
+'ps-n-up-filling' with a filling example using a 3x4 page matrix:
- `left-top' 1 2 3 4 `left-bottom' 9 10 11 12
+ 'left-top' 1 2 3 4 'left-bottom' 9 10 11 12
5 6 7 8 5 6 7 8
9 10 11 12 1 2 3 4
- `right-top' 4 3 2 1 `right-bottom' 12 11 10 9
+ 'right-top' 4 3 2 1 'right-bottom' 12 11 10 9
8 7 6 5 8 7 6 5
12 11 10 9 4 3 2 1
- `top-left' 1 4 7 10 `bottom-left' 3 6 9 12
+ 'top-left' 1 4 7 10 'bottom-left' 3 6 9 12
2 5 8 11 2 5 8 11
3 6 9 12 1 4 7 10
- `top-right' 10 7 4 1 `bottom-right' 12 9 6 3
+ 'top-right' 10 7 4 1 'bottom-right' 12 9 6 3
11 8 5 2 11 8 5 2
12 9 6 3 10 7 4 1
-Any other value is treated as `left-top'.
+Any other value is treated as 'left-top'.
*** Zebra stripes (subgroup)
-The variable `ps-zebra-color' controls the zebra stripes grayscale or
+The variable 'ps-zebra-color' controls the zebra stripes grayscale or
RGB color.
-The variable `ps-zebra-stripe-follow' specifies how zebra stripes
+The variable 'ps-zebra-stripe-follow' specifies how zebra stripes
continue on next page. Visually, valid values are (the character `+'
to the right of each column indicates that a line is printed):
- `nil' `follow' `full' `full-follow'
+ 'nil' 'follow' 'full' 'full-follow'
Current Page -------- ----------- --------- ----------------
1 XXXXX + 1 XXXXXXXX + 1 XXXXXX + 1 XXXXXXXXXXXXX +
2 XXXXX + 2 XXXXXXXX + 2 XXXXXX + 2 XXXXXXXXXXXXX +
22 + 22 +
-------- ----------- --------- ----------------
-Any other value is treated as `nil'.
+Any other value is treated as 'nil'.
*** Printer management (subgroup)
-The variable `ps-printer-name-option' determines the option used by
+The variable 'ps-printer-name-option' determines the option used by
some utilities to indicate the printer name; it's used only when
-`ps-printer-name' is a non-empty string. If you're using the lpr
-utility to print, for example, `ps-printer-name-option' should be set
+'ps-printer-name' is a non-empty string. If you're using the lpr
+utility to print, for example, 'ps-printer-name-option' should be set
to "-P".
-The variable `ps-manual-feed' indicates if the printer requires manual
+The variable 'ps-manual-feed' indicates if the printer requires manual
paper feeding. If it's nil, automatic feeding takes place. If it's
non-nil, manual feeding takes place.
-The variable `ps-end-with-control-d' specifies whether C-d (\x04)
+The variable 'ps-end-with-control-d' specifies whether C-d (\x04)
should be inserted at end of the generated PostScript. Non-nil means
do so.
*** Page settings (subgroup)
-If variable `ps-warn-paper-type' is nil, it's *not* treated as an
+If variable 'ps-warn-paper-type' is nil, it's *not* treated as an
error if the PostScript printer doesn't have a paper with the size
-indicated by `ps-paper-type'; the default paper size will be used
-instead. If `ps-warn-paper-type' is non-nil, an error is signaled if
+indicated by 'ps-paper-type'; the default paper size will be used
+instead. If 'ps-warn-paper-type' is non-nil, an error is signaled if
the PostScript printer doesn't support a paper with the size indicated
-by `ps-paper-type'. This is used when `ps-spool-config' is set to
-`setpagedevice'.
+by 'ps-paper-type'. This is used when 'ps-spool-config' is set to
+'setpagedevice'.
-The variable `ps-print-upside-down' determines the orientation for
-printing pages: nil means `normal' printing, non-nil means
-`upside-down' printing (that is, the page is rotated by 180 degrees).
+The variable 'ps-print-upside-down' determines the orientation for
+printing pages: nil means 'normal' printing, non-nil means
+'upside-down' printing (that is, the page is rotated by 180 degrees).
-The variable `ps-selected-pages' specifies which pages to print. If
+The variable 'ps-selected-pages' specifies which pages to print. If
it's nil, all pages are printed. If it's a list, list elements may be
integers specifying a single page to print, or cons cells (FROM . TO)
specifying to print from page FROM to TO. Invalid list elements, that
is integers smaller than one, or elements whose FROM is greater than
its TO, are ignored.
-The variable `ps-even-or-odd-pages' specifies how to print even/odd
+The variable 'ps-even-or-odd-pages' specifies how to print even/odd
pages. Valid values are:
nil print all pages.
- `even-page' print only even pages.
+ 'even-page' print only even pages.
- `odd-page' print only odd pages.
+ 'odd-page' print only odd pages.
- `even-sheet' print only even sheets.
- That is, if `ps-n-up-printing' is 1, it behaves like
- `even-page', but for values greater than 1, it'll
+ 'even-sheet' print only even sheets.
+ That is, if 'ps-n-up-printing' is 1, it behaves like
+ 'even-page', but for values greater than 1, it'll
print only the even sheet of paper.
- `odd-sheet' print only odd sheets.
- That is, if `ps-n-up-printing' is 1, it behaves like
- `odd-page'; but for values greater than 1, it'll print
+ 'odd-sheet' print only odd sheets.
+ That is, if 'ps-n-up-printing' is 1, it behaves like
+ 'odd-page'; but for values greater than 1, it'll print
only the odd sheet of paper.
Any other value is treated as nil.
-If you set `ps-selected-pages' (see there for documentation), pages
-are filtered by `ps-selected-pages', and then by
-`ps-even-or-odd-pages'. For example, if we have:
+If you set 'ps-selected-pages' (see there for documentation), pages
+are filtered by 'ps-selected-pages', and then by
+'ps-even-or-odd-pages'. For example, if we have:
(setq ps-selected-pages '(1 4 (6 . 10) (12 . 16) 20))
-and we combine this with `ps-even-or-odd-pages' and
-`ps-n-up-printing', we get:
+and we combine this with 'ps-even-or-odd-pages' and
+'ps-n-up-printing', we get:
-`ps-n-up-printing' = 1:
- `ps-even-or-odd-pages' PAGES PRINTED
+'ps-n-up-printing' = 1:
+ 'ps-even-or-odd-pages' PAGES PRINTED
nil 1, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 20
even-page 4, 6, 8, 10, 12, 14, 16, 20
odd-page 1, 7, 9, 13, 15
even-sheet 4, 6, 8, 10, 12, 14, 16, 20
odd-sheet 1, 7, 9, 13, 15
-`ps-n-up-printing' = 2:
- `ps-even-or-odd-pages' PAGES PRINTED
+'ps-n-up-printing' = 2:
+ 'ps-even-or-odd-pages' PAGES PRINTED
nil 1/4, 6/7, 8/9, 10/12, 13/14, 15/16, 20
even-page 4/6, 8/10, 12/14, 16/20
odd-page 1/7, 9/13, 15
*** Miscellany (subgroup)
-The variable `ps-error-handler-message' specifies where error handler
+The variable 'ps-error-handler-message' specifies where error handler
messages should be sent.
It is also possible to add a user-defined PostScript prologue code in
front of all generated prologue code by setting the variable
-`ps-user-defined-prologue'.
+'ps-user-defined-prologue'.
-The variable `ps-line-number-font' specifies the font for line numbers.
+The variable 'ps-line-number-font' specifies the font for line numbers.
-The variable `ps-line-number-font-size' specifies the font size in
+The variable 'ps-line-number-font-size' specifies the font size in
points for line numbers.
-The variable `ps-line-number-color' specifies the color for line
-numbers. See `ps-zebra-color' for documentation.
+The variable 'ps-line-number-color' specifies the color for line
+numbers. See 'ps-zebra-color' for documentation.
-The variable `ps-line-number-step' specifies the interval in which
-line numbers are printed. For example, if `ps-line-number-step' is set
+The variable 'ps-line-number-step' specifies the interval in which
+line numbers are printed. For example, if 'ps-line-number-step' is set
to 2, the printing will look like:
1 one line
printed. If it's smaller than or equal to zero, 1
is used.
-`zebra' specifies that only the line number of the first line in a
+'zebra' specifies that only the line number of the first line in a
zebra stripe is to be printed.
-Any other value is treated as `zebra'.
+Any other value is treated as 'zebra'.
-The variable `ps-line-number-start' specifies the starting point in
-the interval given by `ps-line-number-step'. For example, if
-`ps-line-number-step' is set to 3, and `ps-line-number-start' is set to
+The variable 'ps-line-number-start' specifies the starting point in
+the interval given by 'ps-line-number-step'. For example, if
+'ps-line-number-step' is set to 3, and 'ps-line-number-start' is set to
3, the output will look like:
one line
one line
...
-The variable `ps-postscript-code-directory' specifies the directory
+The variable 'ps-postscript-code-directory' specifies the directory
where the PostScript prologue file used by ps-print is found.
-The variable `ps-line-spacing' determines the line spacing in points,
+The variable 'ps-line-spacing' determines the line spacing in points,
for ordinary text, when generating PostScript (similar to
-`ps-font-size').
+'ps-font-size').
-The variable `ps-paragraph-spacing' determines the paragraph spacing,
+The variable 'ps-paragraph-spacing' determines the paragraph spacing,
in points, for ordinary text, when generating PostScript (similar to
-`ps-font-size').
+'ps-font-size').
-The variable `ps-paragraph-regexp' specifies the paragraph delimiter.
+The variable 'ps-paragraph-regexp' specifies the paragraph delimiter.
-The variable `ps-begin-cut-regexp' and `ps-end-cut-regexp' specify the
+The variable 'ps-begin-cut-regexp' and 'ps-end-cut-regexp' specify the
start and end of a region to cut out when printing.
** hideshow changes.
*** now supports hiding of blocks of single line comments (like // for
C++, ; for lisp).
-*** Support for java-mode added.
+*** Support for 'java-mode' added.
-*** When doing `hs-hide-all' it is now possible to also hide the comments
-in the file if `hs-hide-comments-when-hiding-all' is set.
+*** When doing 'hs-hide-all' it is now possible to also hide the comments
+in the file if 'hs-hide-comments-when-hiding-all' is set.
-*** The new function `hs-hide-initial-comment' hides the comments at
+*** The new function 'hs-hide-initial-comment' hides the comments at
the beginning of the files. Finally those huge RCS logs don't stay in your
-way! This is run by default when entering the `hs-minor-mode'.
+way! This is run by default when entering the 'hs-minor-mode'.
-*** Now uses overlays instead of `selective-display', so is more
+*** Now uses overlays instead of 'selective-display', so is more
robust and a lot faster.
*** A block beginning can span multiple lines.
-*** The new variable `hs-show-hidden-short-form' if t, directs hideshow
+*** The new variable 'hs-show-hidden-short-form' if t, directs hideshow
to show only the beginning of a block when it is hidden. See the
documentation for more details.
** Changes in Enriched mode.
-*** When you visit a file in enriched-mode, Emacs will make sure it is
+*** When you visit a file in 'enriched-mode', Emacs will make sure it is
filled to the current fill-column. This behavior is now independent
of the size of the window. When you save the file, the fill-column in
use is stored as well, so that the whole buffer need not be refilled
the next time unless the fill-column is different.
-*** use-hard-newlines is now a minor mode. When it is enabled, Emacs
+*** 'use-hard-newlines' is now a minor mode. When it is enabled, Emacs
distinguishes between hard and soft newlines, and treats hard newlines
as paragraph boundaries. Otherwise all newlines inserted are marked
as soft, and paragraph boundaries are determined solely from the text.
*** Custom support
-The variables font-lock-face-attributes, font-lock-display-type and
-font-lock-background-mode are now obsolete; the recommended way to specify
+The variables 'font-lock-face-attributes', 'font-lock-display-type' and
+'font-lock-background-mode' are now obsolete; the recommended way to specify
the faces to use for Font Lock mode is with M-x customize-group on the new
custom group font-lock-faces. If you set font-lock-face-attributes in your
~/.emacs file, Font Lock mode will respect its value. However, you should
*** Configurable support
Support for C, C++, Objective-C and Java can be more easily configured for
-additional types and classes via the new variables c-font-lock-extra-types,
-c++-font-lock-extra-types, objc-font-lock-extra-types and, you guessed it,
-java-font-lock-extra-types. These value of each of these variables should be a
+additional types and classes via the new variables 'c-font-lock-extra-types',
+'c++-font-lock-extra-types', 'objc-font-lock-extra-types' and, you guessed it,
+'java-font-lock-extra-types'. The value of each of these variables should be a
list of regexps matching the extra type names. For example, the default value
of c-font-lock-extra-types is ("\\sw+_t") which means fontification follows the
convention that C type names end in _t. This results in slower fontification.
*** Adding highlighting patterns to existing support
-You can use the new function font-lock-add-keywords to add your own
+You can use the new function 'font-lock-add-keywords' to add your own
highlighting patterns, such as for project-local or user-specific constructs,
for any mode.
-For example, to highlight `FIXME:' words in C comments, put:
+For example, to highlight 'FIXME:' words in C comments, put:
- (font-lock-add-keywords 'c-mode '(("\\<FIXME:" 0 font-lock-warning-face t)))
+ (font-lock-add-keywords 'c-mode '(("\\<FIXME:" 0 font-lock-warning-face t)))
in your ~/.emacs.
*** New faces
-Font Lock now defines two new faces, font-lock-builtin-face and
-font-lock-warning-face. These are intended to highlight builtin keywords,
+Font Lock now defines two new faces, 'font-lock-builtin-face' and
+'font-lock-warning-face'. These are intended to highlight builtin keywords,
distinct from a language's normal keywords, and objects that should be brought
to user attention, respectively. Various modes now use these new faces.
*** Changes to fast-lock support mode
The fast-lock package, one of the two Font Lock support modes, can now process
-cache files silently. You can use the new variable fast-lock-verbose, in the
-same way as font-lock-verbose, to control this feature.
+cache files silently. You can use the new variable 'fast-lock-verbose', in the
+same way as 'font-lock-verbose', to control this feature.
*** Changes to lazy-lock support mode
The lazy-lock package, one of the two Font Lock support modes, can now fontify
according to the true syntactic context relative to other lines. You can use
-the new variable lazy-lock-defer-contextually to control this feature. If
+the new variable 'lazy-lock-defer-contextually' to control this feature. If
non-nil, changes to the buffer will cause subsequent lines in the buffer to be
-refontified after lazy-lock-defer-time seconds of idle time. If nil, then only
-the modified lines will be refontified; this is the same as the previous Lazy
-Lock mode behavior and the behavior of Font Lock mode.
+refontified after 'lazy-lock-defer-time' seconds of idle time. If nil, then
+only the modified lines will be refontified; this is the same as the previous
+Lazy Lock mode behavior and the behavior of Font Lock mode.
This feature is useful in modes where strings or comments can span lines.
For example, if a string or comment terminating character is deleted, then if
As a consequence of this new feature, two other variables have changed:
-Variable `lazy-lock-defer-driven' is renamed `lazy-lock-defer-on-scrolling'.
-Variable `lazy-lock-defer-time' can now only be a time, i.e., a number.
+Variable 'lazy-lock-defer-driven' is renamed 'lazy-lock-defer-on-scrolling'.
+Variable 'lazy-lock-defer-time' can now only be a time, i.e., a number.
Buffer modes for which on-the-fly deferral applies can be specified via the
-new variable `lazy-lock-defer-on-the-fly'.
+new variable 'lazy-lock-defer-on-the-fly'.
If you set these variables in your ~/.emacs, then you may have to change those
settings.
stubs.
*** There are two new commands:
- - `ada-make-local' : invokes gnatmake on the current buffer
- - `ada-check-syntax' : check syntax of current buffer.
+ - 'ada-make-local' : invokes gnatmake on the current buffer
+ - 'ada-check-syntax' : check syntax of current buffer.
-The user options `ada-compiler-make', `ada-make-options',
-`ada-language-version', `ada-compiler-syntax-check', and
-`ada-compile-options' are used within these commands.
+The user options 'ada-compiler-make', 'ada-make-options',
+'ada-language-version', 'ada-compiler-syntax-check', and
+'ada-compile-options' are used within these commands.
*** Ada mode can now work with Outline minor mode. The outline level
is calculated from the indenting, not from syntactic constructs.
Outlining does not work if your code is not correctly indented.
-*** The new function `ada-gnat-style' converts the buffer to the style of
+*** The new function 'ada-gnat-style' converts the buffer to the style of
formatting used in GNAT. It places two blanks after a comment start,
places one blank between a word end and an opening '(', and puts one
space between a comma and the beginning of a word.
*** Scheme mode indentation now uses many of the facilities of Lisp
mode; therefore, the variables to customize it are the variables used
-for Lisp mode which have names starting with `lisp-'. The variables
-with names starting with `scheme-' which used to do this no longer
+for Lisp mode which have names starting with 'lisp-'. The variables
+with names starting with 'scheme-' which used to do this no longer
have any effect.
If you want to use different indentation for Scheme and Lisp, this is
still possible, but now you must do it by adding a hook to
-scheme-mode-hook, which could work by setting the `lisp-' indentation
+scheme-mode-hook, which could work by setting the 'lisp-' indentation
variables as buffer-local variables.
*** DSSSL mode is a variant of Scheme mode, for editing DSSSL scripts.
constantly shows the parameter list for function being called at point
(in Emacs Lisp and Lisp Interaction modes only).
-** C-x n d now runs the new command narrow-to-defun,
+** C-x n d now runs the new command 'narrow-to-defun',
which narrows the accessible parts of the buffer to just
the current defun.
-** Emacs now handles the `--' argument in the standard way; all
+** Emacs now handles the '--' argument in the standard way; all
following arguments are treated as ordinary file names.
** On MSDOS and Windows, the bookmark file is now called _emacs.bmk,
you visit the file afresh with C-x C-f.
You can request this behavior for certain files by setting the
-variable revert-without-query to a list of regular expressions. If a
+variable 'revert-without-query' to a list of regular expressions. If a
file's name matches any of these regular expressions, find-file and
revert-buffer revert the buffer without asking for permission--but
only if you have not edited the buffer text yourself.
-** set-default-font has been renamed to set-frame-font
+** set-default-font has been renamed to 'set-frame-font'
since it applies only to the current frame.
-** In TeX mode, you can use the variable tex-main-file to specify the
-file for tex-file to run TeX on. (By default, tex-main-file is nil,
+** In TeX mode, you can use the variable 'tex-main-file' to specify the
+file for 'tex-file' to run TeX on. (By default, tex-main-file is nil,
and tex-file runs TeX on the current visited file.)
This is useful when you are editing a document that consists of
multifile documents. To use it, select a buffer with a LaTeX document and
turn the mode on with M-x reftex-mode. Here are the main user commands:
-C-c ( reftex-label
+C-c ( 'reftex-label'
Creates a label semi-automatically. RefTeX is context sensitive and
knows which kind of label is needed.
-C-c ) reftex-reference
+C-c ) 'reftex-reference'
Offers in a menu all labels in the document, along with context of the
label definition. The selected label is referenced as \ref{LABEL}.
-C-c [ reftex-citation
+C-c [ 'reftex-citation'
Prompts for a regular expression and displays a list of matching BibTeX
database entries. The selected entry is cited with a \cite{KEY} macro.
-C-c & reftex-view-crossref
+C-c & 'reftex-view-crossref'
Views the cross reference of a \ref or \cite command near point.
-C-c = reftex-toc
+C-c = 'reftex-toc'
Shows a table of contents of the (multifile) document. From there you
can quickly jump to every section.
*** New interactive functions for repositioning and marking of
entries. They are bound by default to C-M-l and C-M-h.
-*** New hook bibtex-clean-entry-hook. It is called after entry has
+*** New hook 'bibtex-clean-entry-hook'. It is called after entry has
been cleaned.
-*** New variable bibtex-field-delimiters, which replaces variables
+*** New variable 'bibtex-field-delimiters', which replaces variables
bibtex-field-{left|right}-delimiter.
-*** New variable bibtex-entry-delimiters to determine how entries
+*** New variable 'bibtex-entry-delimiters' to determine how entries
shall be delimited.
*** Allow preinitialization of fields. See documentation of
*** Book and InBook entries require either an author or an editor
field. This is now supported by bibtex.el. Alternative fields are
-prefixed with `ALT'.
+prefixed with 'ALT'.
-*** New variable bibtex-entry-format, which replaces variable
+*** New variable 'bibtex-entry-format', which replaces variable
bibtex-clean-entry-zap-empty-opts and allows specification of many
formatting options performed on cleaning an entry (see variable
documentation).
documentation of bibtex-generate-autokey for details. Transcriptions
for foreign languages other than German are now handled, too.
-*** New boolean user option bibtex-comma-after-last-field to decide if
+*** New boolean user option 'bibtex-comma-after-last-field' to decide if
comma should be inserted at end of last field.
-*** New boolean user option bibtex-align-at-equal-sign to determine if
+*** New boolean user option 'bibtex-align-at-equal-sign' to determine if
alignment should be made at left side of field contents or at equal
signs. New user options to control entry layout (e.g. indentation).
-*** New function bibtex-fill-entry to realign entries.
+*** New function 'bibtex-fill-entry' to realign entries.
-*** New function bibtex-reformat to reformat region or buffer.
+*** New function 'bibtex-reformat' to reformat region or buffer.
-*** New function bibtex-convert-alien to convert a BibTeX database
+*** New function 'bibtex-convert-alien' to convert a BibTeX database
from alien sources.
-*** New function bibtex-complete-key (similar to bibtex-complete-string)
+*** New function 'bibtex-complete-key' (similar to bibtex-complete-string)
to complete prefix to a key defined in buffer. Mainly useful in
crossref entries.
-*** New function bibtex-count-entries to count entries in buffer or
+*** New function 'bibtex-count-entries' to count entries in buffer or
region.
*** Added support for imenu.
-*** The function `bibtex-validate' now checks current region instead
+*** The function 'bibtex-validate' now checks current region instead
of buffer if mark is active. Now it shows all errors of buffer in a
`compilation mode' buffer. You can use the normal commands (e.g.
-`next-error') for compilation modes to jump to errors.
+'next-error') for compilation modes to jump to errors.
-*** New variable `bibtex-string-file-path' to determine where the files
-from `bibtex-string-files' are searched.
+*** New variable 'bibtex-string-file-path' to determine where the files
+from 'bibtex-string-files' are searched.
** Iso Accents mode now supports Latin-3 as an alternative.
-** The command next-error now opens blocks hidden by hideshow.
+** The command 'next-error' now opens blocks hidden by hideshow.
-** The function using-unix-filesystems has been replaced by the
-functions add-untranslated-filesystem and remove-untranslated-filesystem.
+** The function 'using-unix-filesystems' has been replaced by the
+functions 'add-untranslated-filesystem' and 'remove-untranslated-filesystem'.
Each of these functions takes the name of a drive letter or directory
as an argument.
non-remote-controlled browsers (browse-url-generic) and associated
customization variables.
-*** New commands `browse-url-of-region' and `browse-url'.
+*** New commands 'browse-url-of-region' and 'browse-url'.
*** URLs marked up with <URL:...> (RFC1738) work if broken across
lines. Browsing methods can be associated with URL regexps
-(e.g. mailto: URLs) via `browse-url-browser-function'.
+(e.g. mailto: URLs) via 'browse-url-browser-function'.
** Changes in Ediff
an interval is \{M,N\}, and it means to match the preceding expression
at least M times and as many as N times.
-** The format for specifying a custom format for time-stamp to insert
+** The format for specifying a custom format for 'time-stamp' to insert
in files has changed slightly.
With the new enhancements to the functionality of format-time-string,
In the old time-stamp-format, all numeric fields defaulted to their
natural width. (With format-time-string, each format has a
fixed-width default.) In this version, you can specify the colon
-(`:') modifier to a numeric conversion to mean "give me the historical
+(':') modifier to a numeric conversion to mean "give me the historical
time-stamp-format width default." Do not use colon if you are
specifying an explicit width, as in "%02d".
** There are some additional major modes:
-dcl-mode, for editing VMS DCL files.
-m4-mode, for editing files of m4 input.
-meta-mode, for editing MetaFont and MetaPost source files.
+'dcl-mode', for editing VMS DCL files.
+'m4-mode', for editing files of m4 input.
+'meta-mode', for editing MetaFont and MetaPost source files.
-** In Shell mode, the command shell-copy-environment-variable lets you
+** In Shell mode, the command 'shell-copy-environment-variable' lets you
copy the value of a specified environment variable from the subshell
into Emacs.
in shell buffers.
*** The new library elint.el provides for linting of Emacs Lisp code.
-See the documentation for `elint-initialize', `elint-current-buffer'
-and `elint-defun'.
+See the documentation for 'elint-initialize', 'elint-current-buffer'
+and 'elint-defun'.
*** M-x expand-add-abbrevs defines a special kind of abbrev which is
meant for programming constructs. These abbrevs expand like ordinary
*** M-x landmark implements a neural network for landmark learning.
-*** M-x locate provides a convenient interface to the `locate' program.
+*** M-x locate provides a convenient interface to the 'locate' program.
*** M4 mode is a new mode for editing files of m4 input.
You can move the virtual cursor with special commands
while the real cursor does not move.
-*** webjump.el is a "hot list" package which you can set up
+*** 'webjump' is a "hot list" package which you can set up
for visiting your favorite web sites.
*** M-x winner-mode is a minor mode which saves window configurations,
*** A symbol whose name starts with a colon now automatically
evaluates to itself. Therefore such a symbol can be used as a constant.
-*** The defined purpose of `defconst' has been changed. It should now
+*** The defined purpose of 'defconst' has been changed. It should now
be used only for values that should not be changed whether by a program
or by the user.
The actual behavior of defconst has not been changed.
-*** There are new macros `when' and `unless'
+*** There are new macros 'when' and 'unless'
(when CONDITION BODY...) is short for (if CONDITION (progn BODY...))
(unless CONDITION BODY...) is short for (if CONDITION nil BODY...)
-*** Emacs now defines functions caar, cadr, cdar and cddr with their
+*** Emacs now defines functions 'caar', 'cadr', 'cdar' and 'cddr' with their
usual Lisp meanings. For example, caar returns the car of the car of
its argument.
-*** equal, when comparing strings, now ignores their text properties.
+*** 'equal', when comparing strings, now ignores their text properties.
-*** The new function `functionp' tests whether an object is a function.
+*** The new function 'functionp' tests whether an object is a function.
-*** arrayp now returns t for char-tables and bool-vectors.
+*** 'arrayp' now returns t for char-tables and bool-vectors.
*** Certain primitives which use characters (as integers) now get an
error if the integer is not a valid character code. These primitives
-include insert-char, char-to-string, and the %c construct in the
-`format' function.
+include 'insert-char', 'char-to-string', and the %c construct in the
+'format' function.
-*** The `require' function now insists on adding a suffix, either .el
+*** The 'require' function now insists on adding a suffix, either .el
or .elc, to the file name. Thus, (require 'foo) will not use a file
whose name is just foo. It insists on foo.el or foo.elc.
-*** The `autoload' function, when the file name does not contain
+*** The 'autoload' function, when the file name does not contain
either a directory name or the suffix .el or .elc, insists on
adding one of these suffixes.
-*** string-to-number now takes an optional second argument BASE
+*** 'string-to-number' now takes an optional second argument BASE
which specifies the base to use when converting an integer.
If BASE is omitted, base 10 is used.
*** substring now handles vectors as well as strings.
*** The Common Lisp function eql is no longer defined normally.
-You must load the `cl' library to define it.
+You must load the 'cl' library to define it.
-*** The new macro `with-current-buffer' lets you evaluate an expression
+*** The new macro 'with-current-buffer' lets you evaluate an expression
conveniently with a different current buffer. It looks like this:
(with-current-buffer BUFFER BODY-FORMS...)
BUFFER is the expression that says which buffer to use.
BODY-FORMS say what to do in that buffer.
-*** The new primitive `save-current-buffer' saves and restores the
-choice of current buffer, like `save-excursion', but without saving or
-restoring the value of point or the mark. `with-current-buffer'
-works using `save-current-buffer'.
+*** The new primitive 'save-current-buffer' saves and restores the
+choice of current buffer, like 'save-excursion', but without saving or
+restoring the value of point or the mark. 'with-current-buffer'
+works using 'save-current-buffer'.
-*** The new macro `with-temp-file' lets you do some work in a new buffer and
-write the output to a specified file. Like `progn', it returns the value
+*** The new macro 'with-temp-file' lets you do some work in a new buffer and
+write the output to a specified file. Like 'progn', it returns the value
of the last form.
-*** The new macro `with-temp-buffer' lets you do some work in a new buffer,
-which is discarded after use. Like `progn', it returns the value of the
+*** The new macro 'with-temp-buffer' lets you do some work in a new buffer,
+which is discarded after use. Like 'progn', it returns the value of the
last form. If you wish to return the buffer contents, use (buffer-string)
as the last form.
-*** The new function split-string takes a string, splits it at certain
+*** The new function 'split-string' takes a string, splits it at certain
characters, and returns a list of the substrings in between the
matches.
For example, (split-string "foo bar lose" " +") returns ("foo" "bar" "lose").
-*** The new macro with-output-to-string executes some Lisp expressions
+*** The new macro 'with-output-to-string' executes some Lisp expressions
with standard-output set up so that all output feeds into a string.
Then it returns that string.
-For example, if the current buffer name is `foo',
+For example, if the current buffer name is 'foo',
-(with-output-to-string
- (princ "The buffer is ")
- (princ (buffer-name)))
+ (with-output-to-string
+ (princ "The buffer is ")
+ (princ (buffer-name)))
returns "The buffer is foo".
Buffers and strings are still made up of unibyte elements;
character positions and string indices are always measured in bytes.
Therefore, moving forward one character can increase the buffer
-position by 2, 3 or 4. The function forward-char moves by whole
+position by 2, 3 or 4. The function 'forward-char' moves by whole
characters, and therefore is no longer equivalent to
(lambda (n) (goto-char (+ (point) n))).
range 160 through 255 (octal 0240 through 0377). The first byte, the
leading code, determines how many bytes long the sequence is.
-*** The function forward-char moves over characters, and therefore
+*** The function 'forward-char' moves over characters, and therefore
(forward-char 1) may increase point by more than 1 if it moves over a
-multibyte character. Likewise, delete-char always deletes a
+multibyte character. Likewise, 'delete-char' always deletes a
character, which may be more than one buffer position.
This means that some Lisp programs, which assume that a character is
*** The function char-bytes returns how many bytes the character CHAR uses.
*** Strings can contain multibyte characters. The function
-`length' returns the string length counting bytes, which may be
+'length' returns the string length counting bytes, which may be
more than the number of characters.
You can include a multibyte character in a string constant by writing
follow it with a character that is a hex digit, write backslash and
newline in between; that will terminate the hex escape.
-*** The function concat-chars takes arguments which are characters
+*** The function 'concat-chars' takes arguments which are characters
and returns a string containing those characters.
-*** The function sref access a multibyte character in a string.
+*** The function 'sref' access a multibyte character in a string.
(sref STRING INDX) returns the character in STRING at INDEX. INDEX
counts from zero. If INDEX is at a position in the middle of a
character, sref signals an error.
-*** The function chars-in-string returns the number of characters
+*** The function 'chars-in-string' returns the number of characters
in a string. This is less than the length of the string, if the
string contains multibyte characters (the length counts bytes).
-*** The function chars-in-region returns the number of characters
+*** The function 'chars-in-region' returns the number of characters
in a region from BEG to END. This is less than (- END BEG) if the
region contains multibyte characters (the length counts bytes).
-*** The function string-to-list converts a string to a list of
-the characters in it. string-to-vector converts a string
+*** The function 'string-to-list' converts a string to a list of
+the characters in it. 'string-to-vector' converts a string
to a vector of the characters in it.
-*** The function store-substring alters part of the contents
+*** The function 'store-substring' alters part of the contents
of a string. You call it as follows:
(store-substring STRING IDX OBJ)
Since it is impossible to change the length of an existing string,
it is an error if OBJ doesn't fit within STRING's actual length.
-*** char-width returns the width (in columns) of the character CHAR,
+*** 'char-width' returns the width (in columns) of the character CHAR,
if it were displayed in the current buffer and the selected window.
-*** string-width returns the width (in columns) of the text in STRING,
+*** 'string-width' returns the width (in columns) of the text in STRING,
if it were displayed in the current buffer and the selected window.
-*** truncate-string-to-width shortens a string, if necessary,
+*** 'truncate-string-to-width' shortens a string, if necessary,
to fit within a certain number of columns. (Of course, it does
not alter the string that you give it; it returns a new string
which contains all or just part of the existing string.)
-(truncate-string-to-width STR END-COLUMN &optional START-COLUMN PADDING)
+ (truncate-string-to-width STR END-COLUMN &optional START-COLUMN PADDING)
This returns the part of STR up to column END-COLUMN.
string, so that its columns line up as if it really did start at
column START-COLUMN.
-*** When the functions in the list after-change-functions are called,
+*** When the functions in the list 'after-change-functions' are called,
the third argument is the number of bytes in the pre-change text, not
necessarily the number of characters. It is, in effect, the
difference in buffer position between the beginning and the end of the
sets, each of which has a name which is a symbol. In general there is
one character set for each script, not for each language.
-**** The function charsetp tests whether an object is a character set name.
+**** The function 'charsetp' tests whether an object is a character set name.
-**** The variable charset-list holds a list of character set names.
+**** The variable 'charset-list' holds a list of character set names.
-**** char-charset, given a character code, returns the name of the character
+**** 'char-charset', given a character code, returns the name of the character
set that the character belongs to. (The value is a symbol.)
-**** split-char, given a character code, returns a list containing the
+**** 'split-char', given a character code, returns a list containing the
name of the character set, followed by one or two byte-values
which identify the character within that character set.
-**** make-char, given a character set name and one or two subsequent
+**** 'make-char', given a character set name and one or two subsequent
byte-values, constructs a character code. This is roughly the
opposite of split-char.
-**** find-charset-region returns a list of the character sets
+**** 'find-charset-region' returns a list of the character sets
of all the characters between BEG and END.
-**** find-charset-string returns a list of the character sets
+**** 'find-charset-string' returns a list of the character sets
of all the characters in a string.
*** Here are the Lisp facilities for working with coding systems
and specifying coding systems.
-**** The function coding-system-list returns a list of all coding
+**** The function 'coding-system-list' returns a list of all coding
system names (symbols). With optional argument t, it returns a list
of all distinct base coding systems, not including variants.
(Variant coding systems are those like latin-1-dos, latin-1-unix
and latin-1-mac which specify the end-of-line conversion as well
as what to do about code conversion.)
-**** coding-system-p tests a symbol to see if it is a coding system
+**** 'coding-system-p' tests a symbol to see if it is a coding system
name. It returns t if so, nil if not.
-**** file-coding-system-alist specifies which coding systems to use
-for certain file names. It works like network-coding-system-alist,
+**** 'file-coding-system-alist' specifies which coding systems to use
+for certain file names. It works like 'network-coding-system-alist',
except that the PATTERN is matched against the file name.
Each element has the format (PATTERN . VAL), where PATTERN determines
If VAL is a function symbol, the function must return a coding system
or a cons cell containing two coding systems, which is used as above.
-**** The variable network-coding-system-alist specifies
+**** The variable 'network-coding-system-alist' specifies
the coding system to use for network sockets.
Each element has the format (PATTERN . VAL), where PATTERN determines
except that the PATTERN is matched against the program name used to
start the subprocess.
-**** The variable default-process-coding-system specifies the coding
+**** The variable 'default-process-coding-system' specifies the coding
systems to use for subprocess (and net connection) input and output,
when nothing else specifies what to do. The value is a cons cell
(OUTPUT-CODING . INPUT-CODING). OUTPUT-CODING applies to output
to the subprocess, and INPUT-CODING applies to input from it.
-**** The variable coding-system-for-write, if non-nil, specifies the
+**** The variable 'coding-system-for-write', if non-nil, specifies the
coding system to use for writing a file, or for output to a synchronous
subprocess.
start the subprocess or connection affects that subprocess or
connection permanently or until overridden.
-The variable coding-system-for-write takes precedence over
-file-coding-system-alist, process-coding-system-alist and
-network-coding-system-alist, and all other methods of specifying a
+The variable 'coding-system-for-write' takes precedence over
+'file-coding-system-alist', 'process-coding-system-alist' and
+'network-coding-system-alist', and all other methods of specifying a
coding system for output. But most of the time this variable is nil.
It exists so that Lisp programs can bind it to a specific coding
system for one operation at a time.
-**** coding-system-for-read applies similarly to input from
+**** 'coding-system-for-read' applies similarly to input from
files, subprocesses or network connections.
-**** The function process-coding-system tells you what
+**** The function 'process-coding-system' tells you what
coding systems(s) an existing subprocess is using.
The value is a cons cell,
(DECODING-CODING-SYSTEM . ENCODING-CODING-SYSTEM)
the subprocess, and ENCODING-CODING-SYSTEM is used for encoding
input to the subprocess.
-**** The function set-process-coding-system can be used to
+**** The function 'set-process-coding-system' can be used to
change the coding systems in use for an existing subprocess.
** Emacs has a new facility to help users manage the many
customization options. To make a Lisp program work with this facility,
-you need to use the new macros defgroup and defcustom.
+you need to use the new macros 'defgroup' and 'defcustom'.
You use defcustom instead of defvar, for defining a user option
variable. The difference is that you specify two additional pieces of
:type 'boolean
:group foo)
-The type `boolean' means that this variable has only
+The type 'boolean' means that this variable has only
two meaningful states: nil and non-nil. Other type values
describe other possibilities; see the manual for Custom
for a description of them.
:group 'processes)
The "group" argument in defgroup specifies the parent group. The root
-group is called `emacs'; it should not contain any variables itself,
-but only other groups. The immediate subgroups of `emacs' correspond
+group is called 'emacs'; it should not contain any variables itself,
+but only other groups. The immediate subgroups of 'emacs' correspond
to the keywords used by C-h p. Under these subgroups come
second-level subgroups that belong to individual packages.
package should be a subgroup of one or more of the "keyword"
first-level subgroups.
-** New `widget' library for inserting UI components in buffers.
+** New 'widget' library for inserting UI components in buffers.
This library, used by the new custom library, is documented in a
separate manual that accompanies Emacs.
developing minor modes easier. Roughly, the programmer has to code
only the functionality of the minor mode. All the rest--toggles,
predicate, and documentation--can be done in one call to the macro
-`easy-mmode-define-minor-mode' (see the documentation). See also
-`easy-mmode-define-keymap'.
+'easy-mmode-define-minor-mode' (see the documentation). See also
+'easy-mmode-define-keymap'.
** Text property changes
-*** The `intangible' property now works on overlays as well as on a
+*** The 'intangible' property now works on overlays as well as on a
text property.
-*** The new functions next-char-property-change and
-previous-char-property-change scan through the buffer looking for a
+*** The new functions 'next-char-property-change' and
+'previous-char-property-change' scan through the buffer looking for a
place where either a text property or an overlay might change. The
functions take two arguments, POSITION and LIMIT. POSITION is the
starting position for the scan. LIMIT says where to stop the scan.
of the buffer. If no property change is found, the value is the
position of the beginning or end of the buffer.
-*** In the `local-map' text property or overlay property, the property
+*** In the 'local-map' text property or overlay property, the property
value can now be a symbol whose function definition is a keymap. This
is an alternative to using the keymap itself.
Modes that use overlays to hide portions of a buffer should set the
invisible property of the overlay to the mode's name (or another symbol)
-and modify the `buffer-invisibility-spec' to include that symbol.
-Use `add-to-invisibility-spec' and `remove-from-invisibility-spec' to
-manipulate the `buffer-invisibility-spec'.
+and modify the 'buffer-invisibility-spec' to include that symbol.
+Use 'add-to-invisibility-spec' and 'remove-from-invisibility-spec' to
+manipulate the 'buffer-invisibility-spec'.
Here is an example of how to do this:
- ;; If we want to display an ellipsis:
- (add-to-invisibility-spec '(my-symbol . t))
- ;; If you don't want ellipsis:
- (add-to-invisibility-spec 'my-symbol)
+ ;; If we want to display an ellipsis:
+ (add-to-invisibility-spec '(my-symbol . t))
+ ;; If you don't want ellipsis:
+ (add-to-invisibility-spec 'my-symbol)
- ...
- (overlay-put (make-overlay beginning end) 'invisible 'my-symbol)
+ ...
+ (overlay-put (make-overlay beginning end) 'invisible 'my-symbol)
- ...
- ;; When done with the overlays:
- (remove-from-invisibility-spec '(my-symbol . t))
- ;; Or respectively:
- (remove-from-invisibility-spec 'my-symbol)
+ ...
+ ;; When done with the overlays:
+ (remove-from-invisibility-spec '(my-symbol . t))
+ ;; Or respectively:
+ (remove-from-invisibility-spec 'my-symbol)
** Changes in syntax parsing.
*** The syntax-directed buffer-scan functions (such as
-`parse-partial-sexp', `forward-word' and similar functions) can now
+'parse-partial-sexp', 'forward-word' and similar functions) can now
obey syntax information specified by text properties, if the variable
-`parse-sexp-lookup-properties' is non-nil.
+'parse-sexp-lookup-properties' is non-nil.
-If the value of `parse-sexp-lookup-properties' is nil, the behavior
+If the value of 'parse-sexp-lookup-properties' is nil, the behavior
is as before: the syntax-table of the current buffer is always
used to determine the syntax of the character at the position.
-When `parse-sexp-lookup-properties' is non-nil, the syntax of a
+When 'parse-sexp-lookup-properties' is non-nil, the syntax of a
character in the buffer is calculated thus:
- a) if the `syntax-table' text-property of that character
+ a) if the 'syntax-table' text-property of that character
is a cons, this cons becomes the syntax-type;
- Valid values of `syntax-table' text-property are: nil, a valid
+ Valid values of 'syntax-table' text-property are: nil, a valid
syntax-table, and a valid syntax-table element, i.e.,
a cons cell of the form (SYNTAX-CODE . MATCHING-CHAR).
- b) if the character's `syntax-table' text-property
+ b) if the character's 'syntax-table' text-property
is a syntax table, this syntax table is used
(instead of the syntax-table of the current buffer) to
determine the syntax type of the character.
of the current buffer.
*** The meaning of \s in regular expressions is also affected by the
-value of `parse-sexp-lookup-properties'. The details are the same as
+value of 'parse-sexp-lookup-properties'. The details are the same as
for the syntax-directed buffer-scan functions.
*** There are two new syntax-codes, `!' and `|' (numeric values 14
character with a code `|' starts a string which is ended only by
another character with the same code (unless quoted).
-These codes are mainly meant for use as values of the `syntax-table'
+These codes are mainly meant for use as values of the 'syntax-table'
text property.
-*** The function `parse-partial-sexp' has new semantics for the sixth
-arg COMMENTSTOP. If it is `syntax-table', parse stops after the start
+*** The function 'parse-partial-sexp' has new semantics for the sixth
+arg COMMENTSTOP. If it is 'syntax-table', parse stops after the start
of a comment or a string, or after end of a comment or a string.
-*** The state-list which the return value from `parse-partial-sexp'
+*** The state-list which the return value from 'parse-partial-sexp'
(and can also be used as an argument) now has an optional ninth
element: the character address of the start of last comment or string;
nil if none. The fourth and eighth elements have special values if the
string/comment is started by a "!" or "|" syntax-code.
-*** Since new features of `parse-partial-sexp' allow a complete
-syntactic parsing, `font-lock' no longer supports
-`font-lock-comment-start-regexp'.
+*** Since new features of 'parse-partial-sexp' allow a complete
+syntactic parsing, 'font-lock' no longer supports
+'font-lock-comment-start-regexp'.
** Changes in face features
*** The face functions are now unconditionally defined in Emacs, even
if it does not support displaying on a device that supports faces.
-*** The function face-documentation returns the documentation string
+*** The function 'face-documentation' returns the documentation string
of a face (or nil if it doesn't have one).
-*** The function face-bold-p returns t if a face should be bold.
-set-face-bold-p sets that flag.
+*** The function 'face-bold-p' returns t if a face should be bold.
+'set-face-bold-p' sets that flag.
-*** The function face-italic-p returns t if a face should be italic.
-set-face-italic-p sets that flag.
+*** The function 'face-italic-p' returns t if a face should be italic.
+'set-face-italic-p' sets that flag.
*** You can now specify foreground and background colors for text
by adding elements of the form (foreground-color . COLOR-NAME)
and (background-color . COLOR-NAME) to the list of faces in
-the `face' property (either the character's text property or an
+the 'face' property (either the character's text property or an
overlay property).
This means that you no longer need to create named faces to use
*** File-access primitive functions no longer discard an extra redundant
directory name from the beginning of the file name. In other words,
they no longer do anything special with // or /~. That conversion
-is now done only in substitute-in-file-name.
+is now done only in 'substitute-in-file-name'.
This makes it possible for a Lisp program to open a file whose name
begins with ~.
-*** If copy-file is unable to set the date of the output file,
-it now signals an error with the condition file-date-error.
+*** If 'copy-file' is unable to set the date of the output file,
+it now signals an error with the condition 'file-date-error'.
-*** The inode number returned by file-attributes may be an integer (if
+*** The inode number returned by 'file-attributes' may be an integer (if
the number fits in a Lisp integer) or a list of integers.
-*** insert-file-contents can now read from a special file,
+*** 'insert-file-contents' can now read from a special file,
as long as the arguments VISIT and REPLACE are nil.
-*** The RAWFILE arg to find-file-noselect, if non-nil, now suppresses
+*** The RAWFILE arg to 'find-file-noselect', if non-nil, now suppresses
character code conversion as well as other things.
Meanwhile, this feature does work with remote file names
substitute-in-file-name continues to treat those sequences specially,
in the same way as before.
-*** The variable `format-alist' is more general now.
+*** The variable 'format-alist' is more general now.
The FROM-FN and TO-FN in a format definition can now be strings
which specify shell commands to use as filters to perform conversion.
-*** The new function access-file tries to open a file, and signals an
+*** The new function 'access-file' tries to open a file, and signals an
error if that fails. If the open succeeds, access-file does nothing
else, and returns nil.
-*** The function insert-directory now signals an error if the specified
+*** The function 'insert-directory' now signals an error if the specified
directory cannot be listed.
** Changes in minibuffer input
-*** The functions read-buffer, read-variable, read-command, read-string
-read-file-name, read-from-minibuffer and completing-read now take an
+*** The functions 'read-buffer', 'read-variable', 'read-command', 'read-string'
+'read-file-name', 'read-from-minibuffer' and 'completing-read' now take an
additional argument which specifies the default value. If this
argument is non-nil, it should be a string; that string is used in two
ways:
It is returned if the user enters empty input.
It is available through the history command M-n.
-*** The functions read-string, read-from-minibuffer,
-read-no-blanks-input and completing-read now take an additional
+*** The functions 'read-string', 'read-from-minibuffer',
+'read-no-blanks-input' and 'completing-read' now take an additional
argument INHERIT-INPUT-METHOD. If this is non-nil, then the
minibuffer inherits the current input method and the setting of
enable-multibyte-characters from the previously current buffer.
*** All minibuffer input functions discard text properties
from the text you enter in the minibuffer, unless the variable
-minibuffer-allow-text-properties is non-nil.
+'minibuffer-allow-text-properties' is non-nil.
** Echo area features
*** Clearing the echo area now runs the normal hook
-echo-area-clear-hook. Note that the echo area can be used while the
+'echo-area-clear-hook'. Note that the echo area can be used while the
minibuffer is active; in that case, the minibuffer is still active
after the echo area is cleared.
-*** The function current-message returns the message currently displayed
+*** The function 'current-message' returns the message currently displayed
in the echo area, or nil if there is none.
** Keyboard input features
-*** tty-erase-char is a new variable that reports which character was
+*** 'tty-erase-char' is a new variable that reports which character was
set up as the terminal's erase character when time Emacs was started.
-*** num-nonmacro-input-events is the total number of input events
+*** 'num-nonmacro-input-events' is the total number of input events
received so far from the terminal. It does not count those generated
by keyboard macros.
** Frame-related changes
-*** make-frame runs the normal hook before-make-frame-hook just before
+*** 'make-frame' runs the normal hook 'before-make-frame-hook' just before
creating a frame, and just after creating a frame it runs the abnormal
-hook after-make-frame-functions with the new frame as arg.
+hook 'after-make-frame-functions' with the new frame as arg.
-*** The new hook window-configuration-change-hook is now run every time
+*** The new hook 'window-configuration-change-hook' is now run every time
the window configuration has changed. The frame whose configuration
has changed is the selected frame when the hook is run.
value of other-buffer is now based on the buffers recently displayed
in the selected frame.
-*** The value of the frame parameter vertical-scroll-bars
-is now `left', `right' or nil. A non-nil value specifies
+*** The value of the frame parameter 'vertical-scroll-bars'
+is now 'left', 'right' or nil. A non-nil value specifies
which side of the window to put the scroll bars on.
** X Windows features
*** You can examine X resources for other applications by binding
-x-resource-class around a call to x-get-resource. The usual value of
-x-resource-class is "Emacs", which is the correct value for Emacs.
+'x-resource-class' around a call to 'x-get-resource'. The usual value of
+'x-resource-class' is "Emacs", which is the correct value for Emacs.
*** In menus, checkboxes and radio buttons now actually work.
The menu displays the current status of the box or button.
-*** The function x-list-fonts now takes an optional fourth argument
+*** The function 'x-list-fonts' now takes an optional fourth argument
MAXIMUM which sets a limit on how many matching fonts to return.
A smaller value of MAXIMUM makes the function faster.
** Subprocess features
*** A reminder: it is no longer necessary for subprocess filter
-functions and sentinels to do save-match-data, because Emacs does this
+functions and sentinels to do 'save-match-data', because Emacs does this
automatically.
-*** The new function shell-command-to-string executes a shell command
+*** The new function 'shell-command-to-string' executes a shell command
and returns the output from the command as a string.
-*** The new function process-contact returns t for a child process,
+*** The new function 'process-contact' returns t for a child process,
and (HOSTNAME SERVICE) for a net connection.
** An error in running pre-command-hook or post-command-hook
does clear the variable to nil. The documentation was wrong before.
-** In define-key-after, if AFTER is t, the new binding now always goes
+** In 'define-key-after', if AFTER is t, the new binding now always goes
at the end of the keymap. If the keymap is a menu, this means it
goes after the other menu items.
** If you have a program that makes several changes in the same area
-of the buffer, you can use the macro combine-after-change-calls
+of the buffer, you can use the macro 'combine-after-change-calls'
around that Lisp code to make it faster when after-change hooks
are in use.
after-change-function within the body of a combine-after-change-calls
form.
-** If you define an abbrev (with define-abbrev) whose EXPANSION
+** If you define an abbrev (with 'define-abbrev') whose EXPANSION
is not a string, then the abbrev does not expand in the usual sense,
but its hook is still run.
** Normally, the Lisp debugger is not used (even if you have enabled it)
for errors that are handled by condition-case.
-If you set debug-on-signal to a non-nil value, then the debugger is called
+If you set 'debug-on-signal' to a non-nil value, then the debugger is called
regardless of whether there is a handler for the condition. This is
useful for debugging problems that happen inside of a condition-case.
filters, will instead invoke the debugger. So don't say you weren't
warned.
-** The new variable ring-bell-function lets you specify your own
+** The new variable 'ring-bell-function' lets you specify your own
way for Emacs to "ring the bell".
-** If run-at-time's TIME argument is t, the action is repeated at
+** If 'run-at-time's TIME argument is t, the action is repeated at
integral multiples of REPEAT from the epoch; this is useful for
functions like display-time.
-** You can use the function locate-library to find the precise file
+** You can use the function 'locate-library' to find the precise file
name of a Lisp library. This isn't new, but wasn't documented before.
** Commands for entering view mode have new optional arguments that
can be used from Lisp. Low-level entrance to and exit from view mode
-is done by functions view-mode-enter and view-mode-exit.
+is done by functions 'view-mode-enter' and 'view-mode-exit'.
-** batch-byte-compile-file now makes Emacs return a nonzero status code
+** 'batch-byte-compile-file' now makes Emacs return a nonzero status code
if there is an error in compilation.
-** pop-to-buffer, switch-to-buffer-other-window and
-switch-to-buffer-other-frame now accept an additional optional
-argument NORECORD, much like switch-to-buffer. If it is non-nil,
+** 'pop-to-buffer', 'switch-to-buffer-other-window' and
+'switch-to-buffer-other-frame' now accept an additional optional
+argument NORECORD, much like 'switch-to-buffer'. If it is non-nil,
they don't put the buffer at the front of the buffer list.
** If your .emacs file leaves the *scratch* buffer non-empty,
Emacs does not display the startup message, so as to avoid changing
the *scratch* buffer.
-** The new function regexp-opt returns an efficient regexp to match a string.
+** The new function 'regexp-opt' returns an efficient regexp to match a string.
The arguments are STRINGS and (optionally) PAREN. This function can be used
where regexp matching or searching is intensively used and speed is important,
e.g., in Font Lock mode.
-** The variable buffer-display-count is local to each buffer,
+** The variable 'buffer-display-count' is local to each buffer,
and is incremented each time the buffer is displayed in a window.
It starts at 0 when the buffer is created.
-** The new function compose-mail starts composing a mail message
+** The new function 'compose-mail' starts composing a mail message
using the user's chosen mail composition agent (specified with the
variable mail-user-agent). It has variants compose-mail-other-window
and compose-mail-other-frame.
-** The `user-full-name' function now takes an optional parameter which
+** The 'user-full-name' function now takes an optional parameter which
can either be a number (the UID) or a string (the login name). The
full name of the specified user will be returned.
** Lisp packages that load files of customizations, or any other sort
-of user profile, should obey the variable init-file-user in deciding
+of user profile, should obey the variable 'init-file-user' in deciding
where to find it. They should load the profile of the user name found
in that variable. If init-file-user is nil, meaning that the -q
option was used, then Lisp packages should not load the customization
files at all.
-** format-time-string now allows you to specify the field width
+** 'format-time-string' now allows you to specify the field width
and type of padding. This works as in printf: you write the field
width as digits in the middle of a %-construct. If you start
the field width with 0, it means to pad with zeros.
with spaces to 3 positions. Plain %3S pads with zeros, because that
is how %S normally pads to two positions.
-** thing-at-point now supports a new kind of "thing": url.
+** 'thing-at-point' now supports a new kind of "thing": url.
** imenu.el changes.
** Translation tables are available between equivalent characters in
different Emacs charsets -- for instance `e with acute' coming from the
-Latin-1 and Latin-2 charsets. User options `unify-8859-on-encoding-mode'
-and `unify-8859-on-decoding-mode' respectively turn on translation
-between ISO 8859 character sets (`unification') on encoding
+Latin-1 and Latin-2 charsets. User options 'unify-8859-on-encoding-mode'
+and 'unify-8859-on-decoding-mode' respectively turn on translation
+between ISO 8859 character sets ('unification') on encoding
(e.g. writing a file) and decoding (e.g. reading a file). Note that
-`unify-8859-on-encoding-mode' is useful and safe, but
-`unify-8859-on-decoding-mode' can cause text to change when you read
+'unify-8859-on-encoding-mode' is useful and safe, but
+'unify-8859-on-decoding-mode' can cause text to change when you read
it and write it out again without edits, so it is not generally advisable.
-By default `unify-8859-on-encoding-mode' is turned on.
+By default 'unify-8859-on-encoding-mode' is turned on.
** In Emacs running on the X window system, the default value of
-`selection-coding-system' is now `compound-text-with-extensions'.
+'selection-coding-system' is now 'compound-text-with-extensions'.
If you want the old behavior, set selection-coding-system to
compound-text, which may be significantly more efficient. Using
compound text that belong to character sets which are not part of the
list of approved standard encodings for X, e.g. Big5. To paste
selections with such characters into Emacs, use the new coding system
-compound-text-with-extensions as the value of selection-coding-system.
+'compound-text-with-extensions' as the value of 'selection-coding-system'.
-** The default values of `tooltip-delay' and `tooltip-hide-delay'
+** The default values of 'tooltip-delay' and 'tooltip-hide-delay'
were changed.
** On terminals whose erase-char is ^H (Backspace), Emacs
-now uses normal-erase-is-backspace-mode.
+now uses 'normal-erase-is-backspace-mode'.
** When the *scratch* buffer is recreated, its mode is set from
-initial-major-mode, which normally is lisp-interaction-mode,
-instead of using default-major-mode.
+'initial-major-mode', which normally is 'lisp-interaction-mode',
+instead of using 'default-major-mode'.
-** The new option `Info-scroll-prefer-subnodes' causes Info to behave
+** The new option 'Info-scroll-prefer-subnodes' causes Info to behave
like the stand-alone Info reader (from the GNU Texinfo package) as far
as motion between nodes and their subnodes is concerned. If it is t
(the default), Emacs behaves as before when you type SPC in a menu: it
\f
* Lisp Changes in Emacs 21.2
-** The meanings of scroll-up-aggressively and scroll-down-aggressively
+** The meanings of 'scroll-up-aggressively' and 'scroll-down-aggressively'
have been interchanged, so that the former now controls scrolling up,
and the latter now controls scrolling down.
-** The variable `compilation-parse-errors-filename-function' can
+** The variable 'compilation-parse-errors-filename-function' can
be used to transform filenames found in compilation output.
** Support for LynxOS has been added.
** There are new configure options associated with the support for
-images and toolkit scrollbars. Use the --help option in `configure'
+images and toolkit scrollbars. Use the --help option in 'configure'
to list them.
** You can build a 64-bit Emacs for SPARC/Solaris systems which
build on other 64-bit systems should be straightforward modulo any
necessary changes to unexec.
-** There is a new configure option `--disable-largefile' to omit
+** There is a new configure option '--disable-largefile' to omit
Unix-98-style support for large files if that is available.
-** There is a new configure option `--without-xim' that instructs
+** There is a new configure option '--without-xim' that instructs
Emacs to not use X Input Methods (XIM), if these are available.
-** `movemail' defaults to supporting POP. You can turn this off using
+** 'movemail' defaults to supporting POP. You can turn this off using
the --without-pop configure option, should that be necessary.
** This version can be built for the Macintosh, but does not implement
the terminal supports it. Faces with a weight less than normal and
italic faces are displayed dimmed, if the terminal supports it.
Underlined faces are displayed underlined if possible. Other face
-attributes such as `overline', `strike-through', and `box' are ignored
+attributes such as 'overline', 'strike-through', and 'box' are ignored
on terminals.
-The command-line options `-fg COLOR', `-bg COLOR', and `-rv' are now
+The command-line options `-fg COLOR', `-bg COLOR', and '-rv' are now
supported on character terminals.
Emacs automatically remaps all X-style color specifications to one of
Emacs supports playing sound files on GNU/Linux and FreeBSD (Voxware
driver and native BSD driver, a.k.a. Luigi's driver). Currently
supported file formats are RIFF-WAVE (*.wav) and Sun Audio (*.au).
-You must configure Emacs with the option `--with-sound=yes' to enable
+You must configure Emacs with the option '--with-sound=yes' to enable
sound support.
** Emacs now resizes mini-windows if appropriate.
is on a frame of its own. You can control resizing and the maximum
minibuffer window size by setting the following variables:
-- User option: max-mini-window-height
+- User option: 'max-mini-window-height'
Maximum height for resizing mini-windows. If a float, it specifies a
fraction of the mini-window frame's height. If an integer, it
Default is 0.25.
-- User option: resize-mini-windows
+- User option: 'resize-mini-windows'
How to resize mini-windows. If nil, don't resize. If t, always
-resize to fit the size of the text. If `grow-only', let mini-windows
+resize to fit the size of the text. If 'grow-only', let mini-windows
grow only, until they become empty, at which point they are shrunk
again.
-Default is `grow-only'.
+Default is 'grow-only'.
** LessTif support.
** LessTif/Motif file selection dialog.
When Emacs is configured to use LessTif or Motif, reading a file name
-from a menu will pop up a file selection dialog if `use-dialog-box' is
+from a menu will pop up a file selection dialog if 'use-dialog-box' is
non-nil.
** File selection dialog on MS-Windows is supported.
LessTif/Motif, it will use that toolkit's scroll bar. Otherwise, when
configured for Lucid and Athena widgets, it will use the Xaw3d scroll
bar if Xaw3d is available. You can turn off the use of toolkit scroll
-bars by specifying `--with-toolkit-scroll-bars=no' when configuring
+bars by specifying '--with-toolkit-scroll-bars=no' when configuring
Emacs.
When you encounter problems with the Xaw3d scroll bar, watch out how
Xaw3d is compiled on your system. If the Makefile generated from
-Xaw3d's Imakefile contains a `-DNARROWPROTO' compiler option, and your
+Xaw3d's Imakefile contains a '-DNARROWPROTO' compiler option, and your
Emacs system configuration file `s/your-system.h' does not contain a
define for NARROWPROTO, you might consider adding it. Take
`s/freebsd.h' as an example.
system's cf-file contains a line like `#define NeedWidePrototypes NO',
add a `#define NARROWPROTO' to your Emacs system configuration file.
-The reason for this is that one Xaw3d function uses `double' or
-`float' function parameters depending on the setting of NARROWPROTO.
+The reason for this is that one Xaw3d function uses 'double' or
+'float' function parameters depending on the setting of NARROWPROTO.
This is not a problem when Imakefiles are used because each system's
imake configuration file contains the necessary information. Since
Emacs doesn't use imake, this has do be done manually.
** Tooltips.
Tooltips are small X windows displaying a help string at the current
-mouse position. The Lisp package `tooltip' implements them. You can
-turn them off via the user option `tooltip-mode'.
+mouse position. The Lisp package 'tooltip' implements them. You can
+turn them off via the user option 'tooltip-mode'.
Tooltips also provides support for GUD debugging. If activated,
variable values can be displayed in tooltips by pointing at them with
the mouse in source buffers. You can customize various aspects of the
-tooltip display in the group `tooltip'.
+tooltip display in the group 'tooltip'.
** Automatic Hscrolling
Horizontal scrolling now happens automatically if
-`automatic-hscrolling' is set (the default). This setting can be
+'automatic-hscrolling' is set (the default). This setting can be
customized.
-If a window is scrolled horizontally with set-window-hscroll, or
-scroll-left/scroll-right (C-x <, C-x >), this serves as a lower bound
+If a window is scrolled horizontally with 'set-window-hscroll', or
+'scroll-left'/'scroll-right' (C-x <, C-x >), this serves as a lower bound
for automatic horizontal scrolling. Automatic scrolling will scroll
the text more to the left if necessary, but won't scroll the text more
to the right than the column set with set-window-hscroll etc.
** When using a windowing terminal, each Emacs window now has a cursor
of its own. By default, when a window is selected, the cursor is
solid; otherwise, it is hollow. The user-option
-`cursor-in-non-selected-windows' controls how to display the
+'cursor-in-non-selected-windows' controls how to display the
cursor in non-selected windows. If nil, no cursor is shown, if
non-nil a hollow box cursor is shown.
** Fringes to the left and right of windows are used to display
truncation marks, continuation marks, overlay arrows and alike. The
foreground, background, and stipple of these areas can be changed by
-customizing face `fringe'.
+customizing face 'fringe'.
** The mode line under X is now drawn with shadows by default.
-You can change its appearance by modifying the face `mode-line'.
+You can change its appearance by modifying the face 'mode-line'.
In particular, setting the `:box' attribute to nil turns off the 3D
appearance of the mode line. (The 3D appearance makes the mode line
occupy more space, and thus might cause the first or the last line of
the window to be partially obscured.)
-The variable `mode-line-inverse-video', which was used in older
+The variable 'mode-line-inverse-video', which was used in older
versions of emacs to make the mode-line stand out, is now deprecated.
-However, setting it to nil will cause the `mode-line' face to be
+However, setting it to nil will cause the 'mode-line' face to be
ignored, and mode-lines to be drawn using the default text face.
** Mouse-sensitive mode line.
** Hourglass pointer
Emacs can optionally display an hourglass pointer under X. You can
-turn the display on or off by customizing group `cursor'.
+turn the display on or off by customizing group 'cursor'.
** Blinking cursor
M-x blink-cursor-mode toggles a blinking cursor under X and on
-terminals having terminal capabilities `vi', `vs', and `ve'. Blinking
+terminals having terminal capabilities 'vi', 'vs', and 've'. Blinking
and related parameters like frequency and delay can be customized in
-the group `cursor'.
+the group 'cursor'.
-** New font-lock support mode `jit-lock-mode'.
+** New font-lock support mode 'jit-lock-mode'.
-This support mode is roughly equivalent to `lazy-lock' but is
+This support mode is roughly equivalent to 'lazy-lock' but is
generally faster. It supports stealth and deferred fontification.
-See the documentation of the function `jit-lock-mode' for more
+See the documentation of the function 'jit-lock-mode' for more
details.
Font-lock uses jit-lock-mode as default support mode, so you don't
** The default binding of the Delete key has changed.
-The new user-option `normal-erase-is-backspace' can be set to
+The new user-option 'normal-erase-is-backspace' can be set to
determine the effect of the Delete and Backspace function keys.
On window systems, the default value of this option is chosen
If not running under a window system, setting this option accomplishes
a similar effect by mapping C-h, which is usually generated by the
Backspace key, to DEL, and by mapping DEL to C-d via
-`keyboard-translate'. The former functionality of C-h is available on
+'keyboard-translate'. The former functionality of C-h is available on
the F1 key. You should probably not use this setting on a text-only
terminal if you don't have both Backspace, Delete and F1 keys.
-Programmatically, you can call function normal-erase-is-backspace-mode
+Programmatically, you can call function 'normal-erase-is-backspace-mode'
to toggle the behavior of the Delete and Backspace keys.
-** The default for user-option `next-line-add-newlines' has been
+** The default for user-option 'next-line-add-newlines' has been
changed to nil, i.e. C-n will no longer add newlines at the end of a
buffer by default.
beginning and end of the buffer.
** Emacs now checks for recursive loads of Lisp files. If the
-recursion depth exceeds `recursive-load-depth-limit', an error is
+recursion depth exceeds 'recursive-load-depth-limit', an error is
signaled.
** When an error is signaled during the loading of the user's init
file, Emacs now pops up the *Messages* buffer.
** Emacs now refuses to load compiled Lisp files which weren't
-compiled with Emacs. Set `load-dangerous-libraries' to t to change
+compiled with Emacs. Set 'load-dangerous-libraries' to t to change
this behavior.
The reason for this change is an incompatible change in XEmacs's byte
** Highlighting of trailing whitespace.
-When `show-trailing-whitespace' is non-nil, Emacs displays trailing
-whitespace in the face `trailing-whitespace'. Trailing whitespace is
+When 'show-trailing-whitespace' is non-nil, Emacs displays trailing
+whitespace in the face 'trailing-whitespace'. Trailing whitespace is
defined as spaces or tabs at the end of a line. To avoid busy
highlighting when entering new text, trailing whitespace is not
displayed if point is at the end of the line containing the
whitespace.
-** C-x 5 1 runs the new command delete-other-frames which deletes
+** C-x 5 1 runs the new command 'delete-other-frames' which deletes
all frames except the selected one.
-** The new user-option `confirm-kill-emacs' can be customized to
+** The new user-option 'confirm-kill-emacs' can be customized to
let Emacs ask for confirmation before exiting.
** The header line in an Info buffer is now displayed as an emacs
header-line (which is like a mode-line, but at the top of the window),
so that it remains visible even when the buffer has been scrolled.
This behavior may be disabled by customizing the option
-`Info-use-header-line'.
+'Info-use-header-line'.
** Polish, Czech, German, and French translations of Emacs' reference card
have been added. They are named `pl-refcard.tex', `cs-refcard.tex',
menu bar. If the menu bar is displayed, it pops up the major mode
menu or the Edit menu if there is no major mode menu.
-** Variable `load-path' is no longer customizable through Customize.
+** Variable 'load-path' is no longer customizable through Customize.
-You can no longer use `M-x customize-variable' to customize `load-path'
+You can no longer use `M-x customize-variable' to customize 'load-path'
because it now contains a version-dependent component. You can still
-use `add-to-list' and `setq' to customize this variable in your
+use 'add-to-list' and 'setq' to customize this variable in your
`~/.emacs' init file or to modify it from any Lisp program in general.
** C-u C-x = provides detailed information about the character at
point in a pop-up window.
** Emacs can now support 'wheeled' mice (such as the MS IntelliMouse)
-under XFree86. To enable this, use the `mouse-wheel-mode' command, or
-customize the variable `mouse-wheel-mode'.
+under XFree86. To enable this, use the 'mouse-wheel-mode' command, or
+customize the variable 'mouse-wheel-mode'.
-The variables `mouse-wheel-follow-mouse' and `mouse-wheel-scroll-amount'
+The variables 'mouse-wheel-follow-mouse' and 'mouse-wheel-scroll-amount'
determine where and by how much buffers are scrolled.
** Emacs' auto-save list files are now by default stored in a
sub-directory `.emacs.d/auto-save-list/' of the user's home directory.
(On MS-DOS, this subdirectory's name is `_emacs.d/auto-save.list/'.)
-You can customize `auto-save-list-file-prefix' to change this location.
+You can customize 'auto-save-list-file-prefix' to change this location.
-** The function `getenv' is now callable interactively.
+** The function 'getenv' is now callable interactively.
-** The new user-option `even-window-heights' can be set to nil
-to prevent `display-buffer' from evening out window heights.
+** The new user-option 'even-window-heights' can be set to nil
+to prevent 'display-buffer' from evening out window heights.
** The new command M-x delete-trailing-whitespace RET will delete the
trailing whitespace within the current restriction. You can also add
-this function to `write-file-hooks' or `local-write-file-hooks'.
+this function to 'write-file-hooks' or 'local-write-file-hooks'.
** When visiting a file with M-x find-file-literally, no newlines will
-be added to the end of the buffer even if `require-final-newline' is
+be added to the end of the buffer even if 'require-final-newline' is
non-nil.
-** The new user-option `find-file-suppress-same-file-warnings' can be
+** The new user-option 'find-file-suppress-same-file-warnings' can be
set to suppress warnings ``X and Y are the same file'' when visiting a
file that is already visited under a different name.
-** The new user-option `electric-help-shrink-window' can be set to
+** The new user-option 'electric-help-shrink-window' can be set to
nil to prevent adjusting the help window size to the buffer size.
** New command M-x describe-character-set reads a character set name
and displays information about that.
-** The new variable `auto-mode-interpreter-regexp' contains a regular
+** The new variable 'auto-mode-interpreter-regexp' contains a regular
expression matching interpreters, for file mode determination.
This regular expression is matched against the first line of a file to
-determine the file's mode in `set-auto-mode' when Emacs can't deduce a
+determine the file's mode in 'set-auto-mode' when Emacs can't deduce a
mode from the file's name. If it matches, the file is assumed to be
interpreted by the interpreter matched by the second group of the
regular expression. The mode is then determined as the mode
-associated with that interpreter in `interpreter-mode-alist'.
+associated with that interpreter in 'interpreter-mode-alist'.
-** New function executable-make-buffer-file-executable-if-script-p is
-suitable as an after-save-hook as an alternative to `executable-chmod'.
+** New function 'executable-make-buffer-file-executable-if-script-p' is
+suitable as an 'after-save-hook' as an alternative to 'executable-chmod'.
** The most preferred coding-system is now used to save a buffer if
-buffer-file-coding-system is `undecided' and it is safe for the buffer
+buffer-file-coding-system is 'undecided' and it is safe for the buffer
contents. (The most preferred is set by set-language-environment or
by M-x prefer-coding-system.) Thus if you visit an ASCII file and
insert a non-ASCII character from your current language environment,
Previously you would be prompted for a safe coding system.
** The many obsolete language `setup-...-environment' commands have
-been removed -- use `set-language-environment'.
+been removed -- use 'set-language-environment'.
-** The new Custom option `keyboard-coding-system' specifies a coding
+** The new Custom option 'keyboard-coding-system' specifies a coding
system for keyboard input.
-** New variable `inhibit-iso-escape-detection' determines if Emacs'
+** New variable 'inhibit-iso-escape-detection' determines if Emacs'
coding system detection algorithm should pay attention to ISO2022's
escape sequences. If this variable is non-nil, the algorithm ignores
such escape sequences. The default value is nil, and it is
recommended not to change it except for the special case that you
always want to read any escape code verbatim. If you just want to
read a specific file without decoding escape codes, use C-x RET c
-(`universal-coding-system-argument'). For instance, C-x RET c latin-1
+('universal-coding-system-argument'). For instance, C-x RET c latin-1
RET C-x C-f filename RET.
-** Variable `default-korean-keyboard' is initialized properly from the
+** Variable 'default-korean-keyboard' is initialized properly from the
environment variable `HANGUL_KEYBOARD_TYPE'.
** New command M-x list-charset-chars reads a character set name and
and preferred and locale coding systems systematically from the
LC_ALL, LC_CTYPE, and LANG environment variables during startup.
-** New language environments `Polish', `Latin-8' and `Latin-9'.
+** New language environments 'Polish', 'Latin-8' and 'Latin-9'.
Latin-8 and Latin-9 correspond respectively to the ISO character sets
8859-14 (Celtic) and 8859-15 (updated Latin-1, with the Euro sign).
GNU Intlfonts doesn't support these yet but recent X releases have
8859-15. See etc/INSTALL for information on obtaining extra fonts.
There are new Leim input methods for Latin-8 and Latin-9 prefix (only)
-and Polish `slash'.
+and Polish 'slash'.
-** New language environments `Dutch' and `Spanish'.
+** New language environments 'Dutch' and 'Spanish'.
These new environments mainly select appropriate translations
of the tutorial.
function keys are changed as follows. This is to conform to "Emacs
Lisp Coding Convention".
- new command old-binding
- --- ------- -----------
- f3 ethio-fidel-to-sera-buffer f5
- S-f3 ethio-fidel-to-sera-region f5
- C-f3 ethio-fidel-to-sera-mail-or-marker f5
+ new command old-binding
+ --- ------- -----------
+ f3 'ethio-fidel-to-sera-buffer' f5
+ S-f3 'ethio-fidel-to-sera-region' f5
+ C-f3 'ethio-fidel-to-sera-mail-or-marker' f5
- f4 ethio-sera-to-fidel-buffer unchanged
- S-f4 ethio-sera-to-fidel-region unchanged
- C-f4 ethio-sera-to-fidel-mail-or-marker unchanged
+ f4 'ethio-sera-to-fidel-buffer' unchanged
+ S-f4 'ethio-sera-to-fidel-region' unchanged
+ C-f4 'ethio-sera-to-fidel-mail-or-marker' unchanged
- S-f5 ethio-toggle-punctuation f3
- S-f6 ethio-modify-vowel f6
- S-f7 ethio-replace-space f7
- S-f8 ethio-input-special-character f8
- S-f9 ethio-replace-space unchanged
- C-f9 ethio-toggle-space f2
+ S-f5 'ethio-toggle-punctuation' f3
+ S-f6 'ethio-modify-vowel' f6
+ S-f7 'ethio-replace-space' f7
+ S-f8 'ethio-input-special-character' f8
+ S-f9 'ethio-replace-space' unchanged
+ C-f9 'ethio-toggle-space' f2
** There are new Leim input methods.
New input methods "turkish-postfix", "turkish-alt-postfix",
8859 character sets but can display Latin-1, you can display
more-or-less mnemonic sequences of ASCII/Latin-1 characters instead of
empty boxes (under a window system) or question marks (not under a
-window system). Customize the option `latin1-display' to turn this
+window system). Customize the option 'latin1-display' to turn this
on.
-** M-; now calls comment-dwim which tries to do something clever based
-on the context. M-x kill-comment is now an alias to comment-kill,
+** M-; now calls 'comment-dwim' which tries to do something clever based
+on the context. M-x kill-comment is now an alias to 'comment-kill',
defined in newcomment.el. You can choose different styles of region
-commenting with the variable `comment-style'.
+commenting with the variable 'comment-style'.
-** New user options `display-time-mail-face' and
-`display-time-use-mail-icon' control the appearance of mode-line mail
+** New user options 'display-time-mail-face' and
+'display-time-use-mail-icon' control the appearance of mode-line mail
indicator used by the display-time package. On a suitable display the
indicator can be an icon and is mouse-sensitive.
** On window-systems, additional space can be put between text lines
on the display using several methods
-- By setting frame parameter `line-spacing' to PIXELS. PIXELS must be
+- By setting frame parameter 'line-spacing' to PIXELS. PIXELS must be
a positive integer, and specifies that PIXELS number of pixels should
be put below text lines on the affected frame or frames.
-- By setting X resource `lineSpacing', class `LineSpacing'. This is
+- By setting X resource 'lineSpacing', class 'LineSpacing'. This is
equivalent to specifying the frame parameter.
-- By specifying `--line-spacing=N' or `-lsp N' on the command line.
+- By specifying '--line-spacing=N' or `-lsp N' on the command line.
-- By setting buffer-local variable `line-spacing'. The meaning is
+- By setting buffer-local variable 'line-spacing'. The meaning is
the same, but applies to the a particular buffer only.
-** The new command `clone-indirect-buffer' can be used to create
+** The new command 'clone-indirect-buffer' can be used to create
an indirect buffer that is a twin copy of the current buffer. The
-command `clone-indirect-buffer-other-window', bound to C-x 4 c,
+command 'clone-indirect-buffer-other-window', bound to C-x 4 c,
does the same but displays the indirect buffer in another window.
-** New user options `backup-directory-alist' and
-`make-backup-file-name-function' control the placement of backups,
+** New user options 'backup-directory-alist' and
+'make-backup-file-name-function' control the placement of backups,
typically in a single directory or in an invisible sub-directory.
-** New commands iso-iso2sgml and iso-sgml2iso convert between Latin-1
+** New commands 'iso-iso2sgml' and 'iso-sgml2iso' convert between Latin-1
characters and the corresponding SGML (HTML) entities.
** New X resources recognized
-*** The X resource `synchronous', class `Synchronous', specifies
+*** The X resource 'synchronous', class 'Synchronous', specifies
whether Emacs should run in synchronous mode. Synchronous mode
is useful for debugging X problems.
emacs.synchronous: true
-*** The X resource `visualClass, class `VisualClass', specifies the
+*** The X resource `visualClass, class 'VisualClass', specifies the
visual Emacs should use. The resource's value should be a string of
-the form `CLASS-DEPTH', where CLASS is the name of the visual class,
+the form 'CLASS-DEPTH', where CLASS is the name of the visual class,
and DEPTH is the requested color depth as a decimal number. Valid
visual class names are
StaticGray
Visual class names specified as X resource are case-insensitive, i.e.
-`pseudocolor', `Pseudocolor' and `PseudoColor' all have the same
+'pseudocolor', 'Pseudocolor' and 'PseudoColor' all have the same
meaning.
-The program `xdpyinfo' can be used to list the visual classes
+The program 'xdpyinfo' can be used to list the visual classes
supported on your display, and which depths they have. If
-`visualClass' is not specified, Emacs uses the display's default
+'visualClass' is not specified, Emacs uses the display's default
visual.
Example:
emacs.visualClass: TrueColor-8
-*** The X resource `privateColormap', class `PrivateColormap',
+*** The X resource 'privateColormap', class 'PrivateColormap',
specifies that Emacs should use a private colormap if it is using the
default visual, and that visual is of class PseudoColor. Recognized
-resource values are `true' or `on'.
+resource values are 'true' or 'on'.
Example:
** Faces and frame parameters.
-There are four new faces `scroll-bar', `border', `cursor' and `mouse'.
-Setting the frame parameters `scroll-bar-foreground' and
-`scroll-bar-background' sets foreground and background color of face
-`scroll-bar' and vice versa. Setting frame parameter `border-color'
-sets the background color of face `border' and vice versa. Likewise
-for frame parameters `cursor-color' and face `cursor', and frame
-parameter `mouse-color' and face `mouse'.
+There are four new faces 'scroll-bar', 'border', 'cursor' and 'mouse'.
+Setting the frame parameters 'scroll-bar-foreground' and
+'scroll-bar-background' sets foreground and background color of face
+'scroll-bar' and vice versa. Setting frame parameter 'border-color'
+sets the background color of face 'border' and vice versa. Likewise
+for frame parameters 'cursor-color' and face 'cursor', and frame
+parameter 'mouse-color' and face 'mouse'.
-Changing frame parameter `font' sets font-related attributes of the
-`default' face and vice versa. Setting frame parameters
-`foreground-color' or `background-color' sets the colors of the
-`default' face and vice versa.
+Changing frame parameter 'font' sets font-related attributes of the
+'default' face and vice versa. Setting frame parameters
+'foreground-color' or 'background-color' sets the colors of the
+'default' face and vice versa.
-** New face `menu'.
+** New face 'menu'.
-The face `menu' can be used to change colors and font of Emacs' menus.
+The face 'menu' can be used to change colors and font of Emacs' menus.
-** New frame parameter `screen-gamma' for gamma correction.
+** New frame parameter 'screen-gamma' for gamma correction.
-The new frame parameter `screen-gamma' specifies gamma-correction for
+The new frame parameter 'screen-gamma' specifies gamma-correction for
colors. Its value may be nil, the default, in which case no gamma
correction occurs, or a number > 0, usually a float, that specifies
the screen gamma of a frame's display.
in darker colors. You might want to try a screen gamma of 1.5 for LCD
color displays. The viewing gamma Emacs uses is 0.4545. (1/2.2).
-The X resource name of this parameter is `screenGamma', class
-`ScreenGamma'.
+The X resource name of this parameter is 'screenGamma', class
+'ScreenGamma'.
** Tabs and variable-width text.
As an example: if a block cursor is over a tab character, it will be
drawn as wide as that tab on the display. To do this, set
-`x-stretch-cursor' to a non-nil value.
+'x-stretch-cursor' to a non-nil value.
** Empty display lines at the end of a buffer may be marked with a
bitmap (this is similar to the tilde displayed by vi and Less).
This behavior is activated by setting the buffer-local variable
-`indicate-empty-lines' to a non-nil value. The default value of this
-variable is found in `default-indicate-empty-lines'.
+'indicate-empty-lines' to a non-nil value. The default value of this
+variable is found in 'default-indicate-empty-lines'.
** There is a new "aggressive" scrolling method.
When scrolling up because point is above the window start, if the
-value of the buffer-local variable `scroll-up-aggressively' is a
+value of the buffer-local variable 'scroll-up-aggressively' is a
number, Emacs chooses a new window start so that point ends up that
fraction of the window's height from the top of the window.
When scrolling down because point is below the window end, if the
-value of the buffer-local variable `scroll-down-aggressively' is a
+value of the buffer-local variable 'scroll-down-aggressively' is a
number, Emacs chooses a new window start so that point ends up that
fraction of the window's height from the bottom of the window.
M-x clone-buffer can also be used on *Help* and several other special
buffers.
-** The command `Info-search' now uses a search history.
+** The command 'Info-search' now uses a search history.
** Listing buffers with M-x list-buffers (C-x C-b) now shows
abbreviated file names. Abbreviations can be customized by changing
-`directory-abbrev-alist'.
+'directory-abbrev-alist'.
-** A new variable, backup-by-copying-when-privileged-mismatch, gives
-the highest file uid for which backup-by-copying-when-mismatch will be
+** A new variable, 'backup-by-copying-when-privileged-mismatch', gives
+the highest file uid for which 'backup-by-copying-when-mismatch' will be
forced on. The assumption is that uids less than or equal to this
value are special uids (root, bin, daemon, etc.--not real system
users) and that files owned by these users should not change ownership,
All these functions have been rewritten to avoid inserting unwanted
spaces, and an optional prefix now allows them to behave the old way.
-** The function `replace-rectangle' is an alias for `string-rectangle'.
+** The function 'replace-rectangle' is an alias for 'string-rectangle'.
-** The new command M-x string-insert-rectangle is like `string-rectangle',
+** The new command M-x string-insert-rectangle is like 'string-rectangle',
but inserts text instead of replacing it.
** The new command M-x query-replace-regexp-eval acts like
query-replace-regexp, but takes a Lisp expression which is evaluated
after each match to get the replacement text.
-** M-x query-replace recognizes a new command `e' (or `E') that lets
+** M-x query-replace recognizes a new command 'e' (or 'E') that lets
you edit the replacement string.
-** The new command mail-abbrev-complete-alias, bound to `M-TAB'
-(if you load the library `mailabbrev'), lets you complete mail aliases
-in the text, analogous to lisp-complete-symbol.
+** The new command 'mail-abbrev-complete-alias', bound to 'M-TAB'
+(if you load the library 'mailabbrev'), lets you complete mail aliases
+in the text, analogous to 'lisp-complete-symbol'.
-** The variable `echo-keystrokes' may now have a floating point value.
+** The variable 'echo-keystrokes' may now have a floating point value.
-** If your init file is compiled (.emacs.elc), `user-init-file' is set
+** If your init file is compiled (.emacs.elc), 'user-init-file' is set
to the source name (.emacs.el), if that exists, after loading it.
** The help string specified for a menu-item whose definition contains
displayed by Emacs now have help strings.
--
-** New user option `read-mail-command' specifies a command to use to
+** New user option 'read-mail-command' specifies a command to use to
read mail from the menu etc.
-** The environment variable `EMACSLOCKDIR' is no longer used on MS-Windows.
+** The environment variable 'EMACSLOCKDIR' is no longer used on MS-Windows.
This environment variable was used when creating lock files. Emacs on
MS-Windows does not use this variable anymore. This change was made
before Emacs 21.1, but wasn't documented until now.
** Highlighting of mouse-sensitive regions is now supported in the
MS-DOS version of Emacs.
-** The new command `msdos-set-mouse-buttons' forces the MS-DOS version
+** The new command 'msdos-set-mouse-buttons' forces the MS-DOS version
of Emacs to behave as if the mouse had a specified number of buttons.
This comes handy with mice that don't report their number of buttons
correctly. One example is the wheeled mice, which report 3 buttons,
** Customize changes
*** Customize now supports comments about customized items. Use the
-`State' menu to add comments, or give a prefix argument to
+'State' menu to add comments, or give a prefix argument to
M-x customize-set-variable or M-x customize-set-value. Note that
customization comments will cause the customizations to fail in
earlier versions of Emacs.
-*** The new option `custom-buffer-done-function' says whether to kill
+*** The new option 'custom-buffer-done-function' says whether to kill
Custom buffers when you've done with them or just bury them (the
default).
-*** If Emacs was invoked with the `-q' or `--no-init-file' options, it
+*** If Emacs was invoked with the '-q' or '--no-init-file' options, it
does not allow you to save customizations in your `~/.emacs' init
file. This is because saving customizations from such a session would
wipe out all the other customizations you might have on your init
file.
-** If Emacs was invoked with the `-q' or `--no-init-file' options, it
+** If Emacs was invoked with the '-q' or '--no-init-file' options, it
does not save disabled and enabled commands for future sessions, to
avoid overwriting existing customizations of this kind that are
already in your init file.
*** The commands to evaluate Lisp expressions, such as C-M-x in Lisp
modes, C-j in Lisp Interaction mode, and M-:, now bind the variables
-print-level, print-length, and debug-on-error based on the new
-customizable variables eval-expression-print-level,
-eval-expression-print-length, and eval-expression-debug-on-error.
+'print-level', 'print-length', and 'debug-on-error' based on the new
+customizable variables 'eval-expression-print-level',
+'eval-expression-print-length', and 'eval-expression-debug-on-error'.
The default values for the first two of these variables are 12 and 4
-respectively, which means that `eval-expression' now prints at most
+respectively, which means that 'eval-expression' now prints at most
the first 12 members of a list and at most 4 nesting levels deep (if
the list is longer or deeper than that, an ellipsis `...' is
printed).
The default value of eval-expression-debug-on-error is t, so any error
during evaluation produces a backtrace.
-*** The function `eval-defun' (C-M-x) now loads Edebug and instruments
+*** The function 'eval-defun' (C-M-x) now loads Edebug and instruments
code when called with a prefix argument.
** CC mode changes.
available from the CC Mode web site (http://www.python.org/emacs/
cc-mode/).
-**** The variables `c-hanging-comment-starter-p' and
-`c-hanging-comment-ender-p', which controlled how comment starters and
+**** The variables 'c-hanging-comment-starter-p' and
+'c-hanging-comment-ender-p', which controlled how comment starters and
enders were filled, are not used anymore. The new version of the
-function `c-fill-paragraph' keeps the comment starters and enders as
+function 'c-fill-paragraph' keeps the comment starters and enders as
they were before the filling.
**** It's now possible to selectively turn off auto filling.
specific contexts, e.g. in preprocessor directives and in string
literals.
-**** New context sensitive line break function c-context-line-break.
-It works like newline-and-indent in normal code, and adapts the line
+**** New context sensitive line break function 'c-context-line-break'.
+It works like 'newline-and-indent' in normal code, and adapts the line
prefix according to the comment style when used inside comments. If
you're normally using newline-and-indent, you might want to switch to
this function.
contain documentation with its own formatting. In these you normally
don't want CC Mode to change the indentation.
-*** The `c' syntactic symbol is now relative to the comment start
+*** The 'c' syntactic symbol is now relative to the comment start
instead of the previous line, to make integers usable as lineup
arguments.
** Dired changes
-*** New variable `dired-recursive-deletes' determines if the delete
+*** New variable 'dired-recursive-deletes' determines if the delete
command will delete non-empty directories recursively. The default
is, delete only empty directories.
-*** New variable `dired-recursive-copies' determines if the copy
+*** New variable 'dired-recursive-copies' determines if the copy
command will copy directories recursively. The default is, do not
copy directories recursively.
-*** In command `dired-do-shell-command' (usually bound to `!') a `?'
+*** In command 'dired-do-shell-command' (usually bound to `!') a `?'
in the shell command has a special meaning similar to `*', but with
the difference that the command will be run on each file individually.
-*** The new command `dired-find-alternate-file' (usually bound to `a')
+*** The new command 'dired-find-alternate-file' (usually bound to 'a')
replaces the Dired buffer with the buffer for an alternate file or
directory.
-*** The new command `dired-show-file-type' (usually bound to `y') shows
+*** The new command 'dired-show-file-type' (usually bound to 'y') shows
a message in the echo area describing what type of file the point is on.
-This command invokes the external program `file' do its work, and so
+This command invokes the external program 'file' do its work, and so
will only work on systems with that program, and will be only as
accurate or inaccurate as it is.
-*** Dired now properly handles undo changes of adding/removing `-R'
+*** Dired now properly handles undo changes of adding/removing '-R'
from ls switches.
*** Dired commands that prompt for a destination file now allow the use
-of the `M-n' command in the minibuffer to insert the source filename,
+of the 'M-n' command in the minibuffer to insert the source filename,
which the user can then edit. This only works if there is a single
source file, not when operating on multiple marked files.
If you used procmail like in
-(setq nnmail-use-procmail t)
-(setq nnmail-spool-file 'procmail)
-(setq nnmail-procmail-directory "~/mail/incoming/")
-(setq nnmail-procmail-suffix "\\.in")
+ (setq nnmail-use-procmail t)
+ (setq nnmail-spool-file 'procmail)
+ (setq nnmail-procmail-directory "~/mail/incoming/")
+ (setq nnmail-procmail-suffix "\\.in")
this now has changed to
-(setq mail-sources
- '((directory :path "~/mail/incoming/"
- :suffix ".in")))
+ (setq mail-sources
+ '((directory :path "~/mail/incoming/"
+ :suffix ".in")))
More information is available in the info doc at Select Methods ->
Getting Mail -> Mail Sources
*** The user can now decide which extra headers should be included in
summary buffers and NOV files.
-*** `gnus-article-display-hook' has been removed. Instead, a number
-of variables starting with `gnus-treat-' have been added.
+*** 'gnus-article-display-hook' has been removed. Instead, a number
+of variables starting with 'gnus-treat-' have been added.
*** The Gnus posting styles have been redone again and now work in a
subtly different manner.
** Changes in Outline mode.
There is now support for Imenu to index headings. A new command
-`outline-headers-as-kill' copies the visible headings in the region to
+'outline-headers-as-kill' copies the visible headings in the region to
the kill ring, e.g. to produce a table of contents.
** Changes to Emacs Server
-*** The new option `server-kill-new-buffers' specifies what to do
+*** The new option 'server-kill-new-buffers' specifies what to do
with buffers when done with them. If non-nil, the default, buffers
are killed, unless they were already present before visiting them with
-Emacs Server. If nil, `server-temp-file-regexp' specifies which
+Emacs Server. If nil, 'server-temp-file-regexp' specifies which
buffers to kill, as before.
Please note that only buffers are killed that still have a client,
** Changes to Show Paren mode.
*** Overlays used by Show Paren mode now use a priority property.
-The new user option show-paren-priority specifies the priority to
+The new user option 'show-paren-priority' specifies the priority to
use. Default is 1000.
** New command M-x check-parens can be used to find unbalanced paren
A block is now recognized by its start and end regexps (both strings),
and an integer specifying which sub-expression in the start regexp
-serves as the place where a `forward-sexp'-like function can operate.
-See the documentation of variable `hs-special-modes-alist'.
+serves as the place where a 'forward-sexp'-like function can operate.
+See the documentation of variable 'hs-special-modes-alist'.
*** During incremental search, if Hideshow minor mode is active,
-hidden blocks are temporarily shown. The variable `hs-headline' can
+hidden blocks are temporarily shown. The variable 'hs-headline' can
be used in the mode line format to show the line at the beginning of
the open block.
-*** User option `hs-hide-all-non-comment-function' specifies a
+*** User option 'hs-hide-all-non-comment-function' specifies a
function to be called at each top-level block beginning, instead of
the normal block-hiding function.
-*** The command `hs-show-region' has been removed.
+*** The command 'hs-show-region' has been removed.
*** The key bindings have changed to fit the Emacs conventions,
roughly imitating those of Outline minor mode. Notably, the prefix
for all bindings is now `C-c @'. For details, see the documentation
-for `hs-minor-mode'.
+for 'hs-minor-mode'.
-*** The variable `hs-show-hidden-short-form' has been removed, and
+*** The variable 'hs-show-hidden-short-form' has been removed, and
hideshow.el now always behaves as if this variable were set to t.
** Changes to Change Log mode and Add-Log functions
-*** If you invoke `add-change-log-entry' from a backup file, it makes
+*** If you invoke 'add-change-log-entry' from a backup file, it makes
an entry appropriate for the file's parent. This is useful for making
log entries by comparing a version with deleted functions.
in a log file.
*** Change Log mode now adds a file's version number to change log
-entries if user-option `change-log-version-info-enabled' is non-nil.
+entries if user-option 'change-log-version-info-enabled' is non-nil.
Unless the file is under version control the search for a file's
version number is performed based on regular expressions from
-`change-log-version-number-regexp-list' which can be customized.
+'change-log-version-number-regexp-list' which can be customized.
Version numbers are only found in the first 10 percent of a file.
*** Change Log mode now defines its own faces for font-lock highlighting.
** Changes to cmuscheme
-*** The user-option `scheme-program-name' has been renamed
-`cmuscheme-program-name' due to conflicts with xscheme.el.
+*** The user-option 'scheme-program-name' has been renamed
+'cmuscheme-program-name' due to conflicts with xscheme.el.
** Changes in Font Lock
-*** The new function `font-lock-remove-keywords' can be used to remove
+*** The new function 'font-lock-remove-keywords' can be used to remove
font-lock keywords from the current buffer or from a specific major mode.
*** Multi-line patterns are now supported. Modes using this, should
-set font-lock-multiline to t in their font-lock-defaults.
+set 'font-lock-multiline' to t in their 'font-lock-defaults'.
-*** `font-lock-syntactic-face-function' allows major-modes to choose
+*** 'font-lock-syntactic-face-function' allows major-modes to choose
the face used for each string/comment.
-*** A new standard face `font-lock-doc-face'.
+*** A new standard face 'font-lock-doc-face'.
Meant for Lisp docstrings, Javadoc comments and other "documentation in code".
** Changes to Shell mode
-*** The `shell' command now accepts an optional argument to specify the buffer
+*** The 'shell' command now accepts an optional argument to specify the buffer
to use, which defaults to "*shell*". When used interactively, a
-non-default buffer may be specified by giving the `shell' command a
+non-default buffer may be specified by giving the 'shell' command a
prefix argument (causing it to prompt for the buffer name).
** Comint (subshell) changes
Comint now removes CRs from CR LF sequences, and treats single CRs and
BSs in the output in a way similar to a terminal (by deleting to the
beginning of the line, or deleting the previous character,
-respectively). This is achieved by adding `comint-carriage-motion' to
-the `comint-output-filter-functions' hook by default.
+respectively). This is achieved by adding 'comint-carriage-motion' to
+the 'comint-output-filter-functions' hook by default.
-*** By default, comint no longer uses the variable `comint-prompt-regexp'
+*** By default, comint no longer uses the variable 'comint-prompt-regexp'
to distinguish prompts from user-input. Instead, it notices which
parts of the text were output by the process, and which entered by the
-user, and attaches `field' properties to allow emacs commands to use
+user, and attaches 'field' properties to allow emacs commands to use
this information. Common movement commands, notably beginning-of-line,
respect field boundaries in a fairly natural manner. To disable this
feature, and use the old behavior, customize the user option
-`comint-use-prompt-regexp-instead-of-fields'.
+'comint-use-prompt-regexp-instead-of-fields'.
*** Comint now includes new features to send commands to running processes
and redirect the output to a designated buffer or buffers.
*** Packages based on comint now highlight user input and program prompts,
and support choosing previous input with mouse-2. To control these features,
-see the user-options `comint-highlight-input' and `comint-highlight-prompt'.
+see the user-options 'comint-highlight-input' and 'comint-highlight-prompt'.
-*** The new command `comint-write-output' (usually bound to `C-c C-s')
+*** The new command 'comint-write-output' (usually bound to `C-c C-s')
saves the output from the most recent command to a file. With a prefix
argument, it appends to the file.
-*** The command `comint-kill-output' has been renamed `comint-delete-output'
+*** The command 'comint-kill-output' has been renamed 'comint-delete-output'
(usually bound to `C-c C-o'); the old name is aliased to it for
compatibility.
-*** The new function `comint-add-to-input-history' adds commands to the input
+*** The new function 'comint-add-to-input-history' adds commands to the input
ring (history).
-*** The new variable `comint-input-history-ignore' is a regexp for
+*** The new variable 'comint-input-history-ignore' is a regexp for
identifying history lines that should be ignored, like tcsh time-stamp
strings, starting with a `#'. The default value of this variable is "^#".
** Changes to Rmail mode
-*** The new user-option rmail-user-mail-address-regexp can be
+*** The new user-option 'rmail-user-mail-address-regexp' can be
set to fine tune the identification of the correspondent when
receiving new mail. If it matches the address of the sender, the
recipient is taken as correspondent of a mail. If nil, the default,
-`user-login-name' and `user-mail-address' are used to exclude yourself
+'user-login-name' and 'user-mail-address' are used to exclude yourself
as correspondent.
Usually you don't have to set this variable, except if you collect
mails sent by you under different user names. Then it should be a
regexp matching your mail addresses.
-*** The new user-option rmail-confirm-expunge controls whether and how
+*** The new user-option 'rmail-confirm-expunge' controls whether and how
to ask for confirmation before expunging deleted messages from an
Rmail file. You can choose between no confirmation, confirmation
with y-or-n-p, or confirmation with yes-or-no-p. Default is to ask
for confirmation with yes-or-no-p.
-*** RET is now bound in the Rmail summary to rmail-summary-goto-msg,
-like `j'.
+*** RET is now bound in the Rmail summary to 'rmail-summary-goto-msg',
+like 'j'.
-*** There is a new user option `rmail-digest-end-regexps' that
+*** There is a new user option 'rmail-digest-end-regexps' that
specifies the regular expressions to detect the line that ends a
digest message.
-*** The new user option `rmail-automatic-folder-directives' specifies
+*** The new user option 'rmail-automatic-folder-directives' specifies
in which folder to put messages automatically.
-*** The new function `rmail-redecode-body' allows to fix a message
+*** The new function 'rmail-redecode-body' allows to fix a message
with non-ASCII characters if Emacs happens to decode it incorrectly
due to missing or malformed "charset=" header.
-** The new user-option `mail-envelope-from' can be used to specify
+** The new user-option 'mail-envelope-from' can be used to specify
an envelope-from address different from user-mail-address.
-** The variable mail-specify-envelope-from controls whether to
+** The variable 'mail-specify-envelope-from' controls whether to
use the -f option when sending mail.
-** The Rmail command `o' (`rmail-output-to-rmail-file') now writes the
-current message in the internal `emacs-mule' encoding, rather than in
-the encoding taken from the variable `buffer-file-coding-system'.
+** The Rmail command 'o' ('rmail-output-to-rmail-file') now writes the
+current message in the internal 'emacs-mule' encoding, rather than in
+the encoding taken from the variable 'buffer-file-coding-system'.
This allows to save messages whose characters cannot be safely encoded
by the buffer's coding system, and makes sure the message will be
displayed correctly when you later visit the target Rmail file.
If you want your Rmail files be encoded in a specific coding system
-other than `emacs-mule', you can customize the variable
-`rmail-file-coding-system' to set its value to that coding system.
+other than 'emacs-mule', you can customize the variable
+'rmail-file-coding-system' to set its value to that coding system.
** Changes to TeX mode
-*** The default mode has been changed from `plain-tex-mode' to
-`latex-mode'.
+*** The default mode has been changed from 'plain-tex-mode' to
+'latex-mode'.
*** latex-mode now has a simple indentation algorithm.
can be edited from that buffer.
*** Label and citation key selection now allow to select several
- items and reference them together (use `m' to mark items, `a' or
- `A' to use all marked entries).
+ items and reference them together (use 'm' to mark items, 'a' or
+ 'A' to use all marked entries).
*** reftex.el has been split into a number of smaller files to reduce
memory use when only a part of RefTeX is being used.
-*** a new command `reftex-view-crossref-from-bibtex' (bound to `C-c &'
+*** a new command 'reftex-view-crossref-from-bibtex' (bound to `C-c &'
in BibTeX-mode) can be called in a BibTeX database buffer in order
to show locations in LaTeX documents where a particular entry has
been cited.
** Ispell changes
-*** The command `ispell' now spell-checks a region if
+*** The command 'ispell' now spell-checks a region if
transient-mark-mode is on, and the mark is active. Otherwise it
spell-checks the current buffer.
*** Spell checking now works in the MS-DOS version of Emacs.
-*** The variable `ispell-format-word' has been renamed to
-`ispell-format-word-function'. The old name is still available as
+*** The variable 'ispell-format-word' has been renamed to
+'ispell-format-word-function'. The old name is still available as
alias.
** Makefile mode changes
-*** The mode now uses the abbrev table `makefile-mode-abbrev-table'.
+*** The mode now uses the abbrev table 'makefile-mode-abbrev-table'.
*** Conditionals and include statements are now highlighted when
Fontlock mode is active.
** Isearch changes
-*** Isearch now puts a call to `isearch-resume' in the command history,
+*** Isearch now puts a call to 'isearch-resume' in the command history,
so that searches can be resumed.
*** In Isearch mode, C-M-s and C-M-r are now bound like C-s and C-r,
*** There is a new lazy highlighting feature in incremental search.
Lazy highlighting is switched on/off by customizing variable
-`isearch-lazy-highlight'. When active, all matches for the current
+'isearch-lazy-highlight'. When active, all matches for the current
search string are highlighted. The current match is highlighted as
-before using face `isearch' or `region'. All other matches are
-highlighted using face `isearch-lazy-highlight-face' which defaults to
-`secondary-selection'.
+before using face 'isearch' or 'region'. All other matches are
+highlighted using face 'isearch-lazy-highlight-face' which defaults to
+'secondary-selection'.
The extra highlighting makes it easier to anticipate where the cursor
will end up each time you press C-s or C-r to repeat a pending search.
using "idle timers," so the cycles needed do not rob isearch of its
usual snappy response.
-If `isearch-lazy-highlight-cleanup' is set to t, highlights for
+If 'isearch-lazy-highlight-cleanup' is set to t, highlights for
matches are automatically cleared when you end the search. If it is
set to nil, you can remove the highlights manually with `M-x
isearch-lazy-highlight-cleanup'.
Changes for details on the new structure.) As a result, the mechanism
to enable and disable support for particular version systems has
changed: everything is now controlled by the new variable
-`vc-handled-backends'. Its value is a list of symbols that identify
+'vc-handled-backends'. Its value is a list of symbols that identify
version systems; the default is '(RCS CVS SCCS). When finding a file,
each of the backends in that list is tried in order to see whether the
file is registered in that backend.
directory of the file (e.g. because a corresponding subdirectory for
master files exists). If none of the backends is responsible, then
the first backend in the list that could register the file is chosen.
-As a consequence, the variable `vc-default-back-end' is now obsolete.
+As a consequence, the variable 'vc-default-back-end' is now obsolete.
-The old variable `vc-master-templates' is also obsolete, although VC
+The old variable 'vc-master-templates' is also obsolete, although VC
still supports it for backward compatibility. To define templates for
RCS or SCCS, you should rather use the new variables
vc-{rcs,sccs}-master-templates. (There is no such feature under CVS
where it doesn't make sense.)
-The variables `vc-ignore-vc-files' and `vc-handle-cvs' are also
-obsolete now, you must set `vc-handled-backends' to nil or exclude
-`CVS' from the list, respectively, to achieve their effect now.
+The variables 'vc-ignore-vc-files' and 'vc-handle-cvs' are also
+obsolete now, you must set 'vc-handled-backends' to nil or exclude
+'CVS' from the list, respectively, to achieve their effect now.
*** General Changes
-The variable `vc-checkout-carefully' is obsolete: the corresponding
+The variable 'vc-checkout-carefully' is obsolete: the corresponding
checks are always done now.
VC Dired buffers are now kept up-to-date during all version control
operations.
-`vc-diff' output is now displayed in `diff-mode'.
-`vc-print-log' uses `log-view-mode'.
-`vc-log-mode' (used for *VC-Log*) has been replaced by `log-edit-mode'.
+'vc-diff' output is now displayed in 'diff-mode'.
+'vc-print-log' uses 'log-view-mode'.
+'vc-log-mode' (used for *VC-Log*) has been replaced by 'log-edit-mode'.
The command C-x v m (vc-merge) now accepts an empty argument as the
first revision number. This means that any recent changes on the
local RCS archives.
To make this work, the ``more local'' backend (RCS in our example)
-should come first in `vc-handled-backends', and the ``more remote''
+should come first in 'vc-handled-backends', and the ``more remote''
backend (CVS) should come later. (The default value of
-`vc-handled-backends' already has it that way.)
+'vc-handled-backends' already has it that way.)
You can then commit changes to another backend (say, RCS), by typing
C-u C-x v v RCS RET (i.e. vc-next-action now accepts a backend name as
*** Changes for CVS
-There is a new user option, `vc-cvs-stay-local'. If it is `t' (the
+There is a new user option, 'vc-cvs-stay-local'. If it is 't' (the
default), then VC avoids network queries for files registered in
remote repositories. The state of such files is then only determined
-by heuristics and past information. `vc-cvs-stay-local' can also be a
+by heuristics and past information. 'vc-cvs-stay-local' can also be a
regexp to match against repository hostnames; only files from hosts
that match it are treated locally. If the variable is nil, then VC
queries the repository just as often as it does for local files.
-If `vc-cvs-stay-local' is on, then VC also makes local backups of
+If 'vc-cvs-stay-local' is on, then VC also makes local backups of
repository versions. This means that ordinary diffs (C-x v =) and
revert operations (C-x v u) can be done completely locally, without
any repository interactions at all. The name of a local version
since DOS disallows more than a single dot in the trunk of a file
name.)
-If `vc-cvs-stay-local' is on, and there have been changes in the
+If 'vc-cvs-stay-local' is on, and there have been changes in the
repository, VC notifies you about it when you actually try to commit.
If you want to check for updates from the repository without trying to
commit, you can either use C-x v m RET to perform an update on the
current file, or you can use C-x v r RET to get an update for an
entire directory tree.
-The new user option `vc-cvs-use-edit' indicates whether VC should call
-"cvs edit" to make files writable; it defaults to `t'. (This option
+The new user option 'vc-cvs-use-edit' indicates whether VC should call
+"cvs edit" to make files writable; it defaults to 't'. (This option
is only meaningful if the CVSREAD variable is set, or if files are
"watched" by other developers.)
provides a number of functions vc-sys-... (see commentary at the top
of vc.el for a detailed list of them). To make VC use that library,
you need to put it somewhere into Emacs' load path and add the symbol
-`SYS' to the list `vc-handled-backends'.
+'SYS' to the list 'vc-handled-backends'.
** The customizable EDT emulation package now supports the EDT
SUBS command and EDT scroll margins. It also works with more
** New modes and packages
-*** The new global minor mode `minibuffer-electric-default-mode'
+*** The new global minor mode 'minibuffer-electric-default-mode'
automatically hides the `(default ...)' part of minibuffer prompts when
the default is not applicable.
Features are:
-- Intersecting: When a `|' intersects with a `-', a `+' is
+- Intersecting: When a `|' intersects with a '-', a `+' is
drawn, like this: | \ /
--+-- X
| / \
M-x highlight-regexp RET clearly RET RET
-will highlight all occurrences of `clearly' using a yellow background
-face. New occurrences of `clearly' will be highlighted as they are
+will highlight all occurrences of 'clearly' using a yellow background
+face. New occurrences of 'clearly' will be highlighted as they are
typed. `M-x unhighlight-regexp RET' will remove the highlighting.
Any existing face can be used for highlighting and a set of
appropriate faces is provided. The regexps can be written into the
*** The comment operations are now provided by the newcomment.el
package which allows different styles of comment-region and should
be more robust while offering the same functionality.
-`comment-region' now doesn't always comment a-line-at-a-time, but only
+'comment-region' now doesn't always comment a-line-at-a-time, but only
comments the region, breaking the line at point if necessary.
*** The Ebrowse package implements a C++ class browser and tags
*** The PCL-CVS package available by either running M-x cvs-examine or
by visiting a CVS administrative directory (with a prefix argument)
provides an alternative interface to VC-dired for CVS. It comes with
-`log-view-mode' to view RCS and SCCS logs and `log-edit-mode' used to
+'log-view-mode' to view RCS and SCCS logs and 'log-edit-mode' used to
enter check-in log messages.
-*** The new package called `woman' allows to browse Unix man pages
+*** The new package called 'woman' allows to browse Unix man pages
without invoking external programs.
The command `M-x woman' formats manual pages entirely in Emacs Lisp
and then displays them, like `M-x manual-entry' does. Unlike
-`manual-entry', `woman' does not invoke any external programs, so it
-is useful on systems such as MS-DOS/MS-Windows where the `man' and
-Groff or `troff' commands are not readily available.
+'manual-entry', 'woman' does not invoke any external programs, so it
+is useful on systems such as MS-DOS/MS-Windows where the 'man' and
+Groff or 'troff' commands are not readily available.
The command `M-x woman-find-file' asks for the file name of a man
page, then formats and displays it like `M-x woman' does.
probably also want to use the sub-expression mode when the regexp
contains such to get feedback about their respective limits.
-*** glasses-mode is a minor mode that makes
+*** 'glasses-mode' is a minor mode that makes
unreadableIdentifiersLikeThis readable. It works as glasses, without
actually modifying content of a buffer.
-*** The package ebnf2ps translates an EBNF to a syntactic chart in
+*** The package 'ebnf2ps' translates an EBNF to a syntactic chart in
PostScript.
Currently accepts ad-hoc EBNF, ISO EBNF and Bison/Yacc.
example, it will align variable names in declaration lists, or the
equal signs of assignments.
-*** `paragraph-indent-minor-mode' is a new minor mode supporting
-paragraphs in the same style as `paragraph-indent-text-mode'.
+*** 'paragraph-indent-minor-mode' is a new minor mode supporting
+paragraphs in the same style as 'paragraph-indent-text-mode'.
*** bs.el is a new package for buffer selection similar to
-list-buffers or electric-buffer-list. Use M-x bs-show to display a
-buffer menu with this package. See the Custom group `bs'.
+'list-buffers' or 'electric-buffer-list'. Use M-x bs-show to display a
+buffer menu with this package. See the Custom group 'bs'.
*** find-lisp.el is a package emulating the Unix find command in Lisp.
-*** calculator.el is a small calculator package that is intended to
+*** 'calculator' is a small calculator package that is intended to
replace desktop calculators such as xcalc and calc.exe. Actually, it
is not too small - it has more features than most desktop calculators,
and can be customized easily to get many more functions. It should
-not be confused with "calc" which is a much bigger mathematical tool
+not be confused with 'calc' which is a much bigger mathematical tool
which answers different needs.
-*** The minor modes cwarn-mode and global-cwarn-mode highlights
+*** The minor modes 'cwarn-mode' and 'global-cwarn-mode' highlights
suspicious C and C++ constructions. Currently, assignments inside
-expressions, semicolon following `if', `for' and `while' (except, of
+expressions, semicolon following 'if', 'for' and 'while' (except, of
course, after a `do .. while' statement), and C++ functions with
reference parameters are recognized. The modes require font-lock mode
to be enabled.
-*** smerge-mode.el provides `smerge-mode', a simple minor-mode for files
+*** smerge-mode.el provides 'smerge-mode', a simple minor-mode for files
containing diff3-style conflict markers, such as generated by RCS.
-*** 5x5.el is a simple puzzle game.
+*** '5x5' is a simple puzzle game.
-*** hl-line.el provides `hl-line-mode', a minor mode to highlight the
+*** hl-line.el provides 'hl-line-mode', a minor mode to highlight the
current line in the current buffer. It also provides
-`global-hl-line-mode' to provide the same behavior in all buffers.
+'global-hl-line-mode' to provide the same behavior in all buffers.
*** ansi-color.el translates ANSI terminal escapes into text-properties.
-Please note: if `ansi-color-for-comint-mode' and
-`global-font-lock-mode' are non-nil, loading ansi-color.el will
-disable font-lock and add `ansi-color-apply' to
-`comint-preoutput-filter-functions' for all shell-mode buffers. This
+Please note: if 'ansi-color-for-comint-mode' and
+'global-font-lock-mode' are non-nil, loading ansi-color.el will
+disable font-lock and add 'ansi-color-apply' to
+'comint-preoutput-filter-functions' for all shell-mode buffers. This
displays the output of "ls --color=yes" using the correct foreground
and background colors.
*** delphi.el provides a major mode for editing the Delphi (Object
Pascal) language.
-*** quickurl.el provides a simple method of inserting a URL based on
+*** 'quickurl' provides a simple method of inserting a URL based on
the text at point.
*** sql.el provides an interface to SQL data bases.
delim-col has the following options:
- delimit-columns-str-before Specify a string to be inserted
+ 'delimit-columns-str-before' Specify a string to be inserted
before all columns.
- delimit-columns-str-separator Specify a string to be inserted
+ 'delimit-columns-str-separator' Specify a string to be inserted
between each column.
- delimit-columns-str-after Specify a string to be inserted
+ 'delimit-columns-str-after' Specify a string to be inserted
after all columns.
- delimit-columns-separator Specify a regexp which separates
+ 'delimit-columns-separator' Specify a regexp which separates
each column.
delim-col has the following commands:
- delimit-columns-region Prettify all columns in a text region.
- delimit-columns-rectangle Prettify all columns in a text rectangle.
+ 'delimit-columns-region' Prettify all columns in a text region.
+ 'delimit-columns-rectangle' Prettify all columns in a text rectangle.
*** Recentf mode maintains a menu for visiting files that were
operated on recently. User option recentf-menu-filter specifies a
- sorted by file paths, file names, ascending or descending.
- showing paths relative to the current default-directory
-The `recentf-filter-changer' menu filter function allows to
+The 'recentf-filter-changer' menu filter function allows to
dynamically change the menu appearance.
-*** elide-head.el provides a mechanism for eliding boilerplate header
+*** 'elide-head' provides a mechanism for eliding boilerplate header
text.
-*** footnote.el provides `footnote-mode', a minor mode supporting use
+*** footnote.el provides 'footnote-mode', a minor mode supporting use
of footnotes. It is intended for use with Message mode, but isn't
specific to Message mode.
-*** diff-mode.el provides `diff-mode', a major mode for
+*** diff-mode.el provides 'diff-mode', a major mode for
viewing/editing context diffs (patches). It is selected for files
with extension `.diff', `.diffs', `.patch' and `.rej'.
*** crm.el provides a facility to read multiple strings from the
minibuffer with completion.
-*** todo-mode.el provides management of TODO lists and integration
+*** 'todo-mode' provides management of TODO lists and integration
with the diary features.
*** autoarg.el provides a feature reported from Twenex Emacs whereby
numeric keys supply prefix args rather than self inserting.
-*** The function `turn-off-auto-fill' unconditionally turns off Auto
+*** The function 'turn-off-auto-fill' unconditionally turns off Auto
Fill mode.
-*** pcomplete.el is a library that provides programmable completion
+*** 'pcomplete' is a library that provides programmable completion
facilities for Emacs, similar to what zsh and tcsh offer. The main
difference is that completion functions are written in Lisp, meaning
they can be profiled, debugged, etc.
-*** antlr-mode is a new major mode for editing ANTLR grammar files.
+*** 'antlr-mode' is a new major mode for editing ANTLR grammar files.
It is automatically turned on for files whose names have the extension
`.g'.
** Changes in sort.el
-The function sort-numeric-fields interprets numbers starting with `0'
-as octal and numbers starting with `0x' or `0X' as hexadecimal. The
-new user-option sort-numeric-base can be used to specify a default
+The function 'sort-numeric-fields' interprets numbers starting with '0'
+as octal and numbers starting with '0x' or '0X' as hexadecimal. The
+new user-option 'sort-numeric-base' can be used to specify a default
numeric base.
** Changes to Ange-ftp
names cleanly. It is appended to the host name, separated by a hash
sign, e.g. `/foo@bar.org#666:mumble'. (This syntax comes from EFS.)
-*** If the new user-option `ange-ftp-try-passive-mode' is set, passive
+*** If the new user-option 'ange-ftp-try-passive-mode' is set, passive
ftp mode will be used if the ftp client supports that.
*** Ange-ftp handles the output of the w32-style clients which
output ^M at the end of lines.
** The recommended way of using Iswitchb is via the new global minor
-mode `iswitchb-mode'.
+mode 'iswitchb-mode'.
** Just loading the msb package doesn't switch on Msb mode anymore.
-If you have `(require 'msb)' in your .emacs, please replace it with
-`(msb-mode 1)'.
+If you have `(require 'msb)' in your .emacs, please replace it with:
+
+ (msb-mode 1)
** Changes in Flyspell mode
-*** Flyspell mode has various new options. See the `flyspell' Custom
+*** Flyspell mode has various new options. See the 'flyspell' Custom
group.
-*** The variable `flyspell-generic-check-word-p' has been renamed
-to `flyspell-generic-check-word-predicate'. The old name is still
+*** The variable 'flyspell-generic-check-word-p' has been renamed
+to 'flyspell-generic-check-word-predicate'. The old name is still
available as alias.
-** The user option `backward-delete-char-untabify-method' controls the
-behavior of `backward-delete-char-untabify'. The following values
+** The user option 'backward-delete-char-untabify-method' controls the
+behavior of 'backward-delete-char-untabify'. The following values
are recognized:
-`untabify' -- turn a tab to many spaces, then delete one space;
-`hungry' -- delete all whitespace, both tabs and spaces;
-`all' -- delete all whitespace, including tabs, spaces and newlines;
+'untabify' -- turn a tab to many spaces, then delete one space;
+'hungry' -- delete all whitespace, both tabs and spaces;
+'all' -- delete all whitespace, including tabs, spaces and newlines;
nil -- just delete one character.
-Default value is `untabify'.
+Default value is 'untabify'.
[This change was made in Emacs 20.3 but not mentioned then.]
-** In Cperl mode `cperl-invalid-face' should now be a normal face
+** In Cperl mode 'cperl-invalid-face' should now be a normal face
symbol, not double-quoted.
** Some packages are declared obsolete, to be removed in a future
moved to lisp/obsolete.
** auto-compression mode is no longer enabled just by loading jka-compr.el.
-To control it, set `auto-compression-mode' via Custom or use the
-`auto-compression-mode' command.
+To control it, set 'auto-compression-mode' via Custom or use the
+'auto-compression-mode' command.
-** `browse-url-gnome-moz' is a new option for
-`browse-url-browser-function', invoking Mozilla in GNOME, and
-`browse-url-kde' can be chosen for invoking the KDE browser.
+** 'browse-url-gnome-moz' is a new option for
+'browse-url-browser-function', invoking Mozilla in GNOME, and
+'browse-url-kde' can be chosen for invoking the KDE browser.
-** The user-option `browse-url-new-window-p' has been renamed to
-`browse-url-new-window-flag'.
+** The user-option 'browse-url-new-window-p' has been renamed to
+'browse-url-new-window-flag'.
-** The functions `keep-lines', `flush-lines' and `how-many' now
+** The functions 'keep-lines', 'flush-lines' and 'how-many' now
operate on the active region in Transient Mark mode.
-** `gnus-user-agent' is a new possibility for `mail-user-agent'. It
-is like `message-user-agent', but with all the Gnus paraphernalia.
+** 'gnus-user-agent' is a new possibility for 'mail-user-agent'. It
+is like 'message-user-agent', but with all the Gnus paraphernalia.
** The Strokes package has been updated. If your Emacs has XPM
support, you can use it for pictographic editing. In Strokes mode,
M-x strokes-encode-buffer and M-x strokes-decode-buffer. There is a
new command M-x strokes-list-strokes.
-** Hexl contains a new command `hexl-insert-hex-string' which inserts
+** Hexl contains a new command 'hexl-insert-hex-string' which inserts
a string of hexadecimal numbers read from the mini-buffer.
** Hexl mode allows to insert non-ASCII characters.
"operator+", without spaces between the keyword and the operator.
*** You shouldn't generally need any more the -C or -c++ option: etags
-automatically switches to C++ parsing when it meets the `class' or
-`template' keywords.
+automatically switches to C++ parsing when it meets the 'class' or
+'template' keywords.
*** Etags now is able to delve at arbitrary deeps into nested structures in
C-like languages. Previously, it was limited to one or two brace levels.
*** New language Ada: tags are functions, procedures, packages, tasks, and
types.
-*** In Fortran, `procedure' is not tagged.
+*** In Fortran, 'procedure' is not tagged.
*** In Java, tags are created for "interface".
** Changes in etags.el
-*** The new user-option tags-case-fold-search can be used to make
+*** The new user-option 'tags-case-fold-search' can be used to make
tags operations case-sensitive or case-insensitive. The default
-is to use the same setting as case-fold-search.
+is to use the same setting as 'case-fold-search'.
*** You can display additional output with M-x tags-apropos by setting
-the new variable tags-apropos-additional-actions.
+the new variable 'tags-apropos-additional-actions'.
If non-nil, the variable's value should be a list of triples (TITLE
FUNCTION TO-SEARCH). For each triple, M-x tags-apropos processes
in buffers where no match is found. In buffers where a match is
found, the original value of point is pushed on the marker ring.
-** Fortran mode has a new command `fortran-strip-sequence-nos' to
+** Fortran mode has a new command 'fortran-strip-sequence-nos' to
remove text past column 72. The syntax class of `\' in Fortran is now
appropriate for C-style escape sequences in strings.
-** SGML mode's default `sgml-validate-command' is now `nsgmls'.
+** SGML mode's default 'sgml-validate-command' is now 'nsgmls'.
-** A new command `view-emacs-problems' (C-h P) displays the PROBLEMS file.
+** A new command 'view-emacs-problems' (C-h P) displays the PROBLEMS file.
-** The Dabbrev package has a new user-option `dabbrev-ignored-regexps'
+** The Dabbrev package has a new user-option 'dabbrev-ignored-regexps'
containing a list of regular expressions. Buffers matching a regular
expression from that list, are not checked.
** The buffer menu (C-x C-b) no longer lists the *Buffer List* buffer.
-** When invoked with a prefix argument, the command `list-abbrevs' now
+** When invoked with a prefix argument, the command 'list-abbrevs' now
displays local abbrevs, only.
** Refill minor mode provides preliminary support for keeping
paragraphs filled as you modify them.
-** The variable `double-click-fuzz' specifies how much the mouse
+** The variable 'double-click-fuzz' specifies how much the mouse
may be moved between clicks that are recognized as a pair. Its value
is measured in pixels.
-** The new global minor mode `auto-image-file-mode' allows image files
+** The new global minor mode 'auto-image-file-mode' allows image files
to be visited as images.
-** Two new user-options `grep-command' and `grep-find-command'
+** Two new user-options 'grep-command' and 'grep-find-command'
were added to compile.el.
** Withdrawn packages
may require changes to existing code. Here is a list for reference.
See the sections below for details.
-** Since `format' preserves text properties, the idiom
+** Since 'format' preserves text properties, the idiom
`(format "%s" foo)' no longer works to copy and remove properties.
-Use `copy-sequence' to copy the string, then use `set-text-properties'
+Use 'copy-sequence' to copy the string, then use 'set-text-properties'
to remove the properties of the copy.
-** Since the `keymap' text property now has significance, some code
-which uses both `local-map' and `keymap' properties (for portability)
+** Since the 'keymap' text property now has significance, some code
+which uses both 'local-map' and 'keymap' properties (for portability)
may, for instance, give rise to duplicate menus when the keymaps from
these properties are active.
ranges may affect some code.
** A non-nil value for the LOCAL arg of add-hook makes the hook
-buffer-local even if `make-local-hook' hasn't been called, which might
+buffer-local even if 'make-local-hook' hasn't been called, which might
make a difference to some code.
** The new treatment of the minibuffer prompt might affect code which
operates on the minibuffer.
-** The new character sets `eight-bit-control' and `eight-bit-graphic'
-cause `no-conversion' and `emacs-mule-unix' coding systems to produce
+** The new character sets 'eight-bit-control' and 'eight-bit-graphic'
+cause 'no-conversion' and 'emacs-mule-unix' coding systems to produce
different results when reading files with non-ASCII characters
(previously, both coding systems would produce the same results).
-Specifically, `no-conversion' interprets each 8-bit byte as a separate
-character. This makes `no-conversion' inappropriate for reading
+Specifically, 'no-conversion' interprets each 8-bit byte as a separate
+character. This makes 'no-conversion' inappropriate for reading
multibyte text, e.g. buffers written to disk in their internal MULE
encoding (auto-saving does that, for example). If a Lisp program
-reads such files with `no-conversion', each byte of the multibyte
+reads such files with 'no-conversion', each byte of the multibyte
sequence, including the MULE leading codes such as \201, is treated as
a separate character, which prevents them from being interpreted in
the buffer as multibyte characters.
Therefore, Lisp programs that read files which contain the internal
-MULE encoding should use `emacs-mule-unix'. `no-conversion' is only
+MULE encoding should use 'emacs-mule-unix'. 'no-conversion' is only
appropriate for reading truly binary files.
-** Code that relies on the obsolete `before-change-function' and
-`after-change-function' to detect buffer changes will now fail. Use
-`before-change-functions' and `after-change-functions' instead.
+** Code that relies on the obsolete 'before-change-function' and
+'after-change-function' to detect buffer changes will now fail. Use
+'before-change-functions' and 'after-change-functions' instead.
-** Code that uses `concat' with integer args now gets an error, as
-long promised. So does any code that uses derivatives of `concat',
-such as `mapconcat'.
+** Code that uses 'concat' with integer args now gets an error, as
+long promised. So does any code that uses derivatives of 'concat',
+such as 'mapconcat'.
** The function base64-decode-string now always returns a unibyte
string.
encoding using Emacs 20 with additional private charsets defined will
probably not be read correctly by Emacs 21.
-** The variable `directory-sep-char' is slated for removal.
+** The variable 'directory-sep-char' is slated for removal.
Not really a change (yet), but a projected one that you should be
-aware of: The variable `directory-sep-char' is deprecated, and should
+aware of: The variable 'directory-sep-char' is deprecated, and should
not be used. It was always ignored on GNU/Linux and Unix systems and
on MS-DOS, but the MS-Windows port tried to support it by adapting the
behavior of certain primitives to the value of this variable. It
* Lisp changes made after edition 2.6 of the Emacs Lisp Manual,
(Display-related features are described in a page of their own below.)
-** Function assq-delete-all replaces function assoc-delete-all.
+** Function 'assq-delete-all' replaces function 'assoc-delete-all'.
-** The new function animate-string, from lisp/play/animate.el
+** The new function 'animate-string', from lisp/play/animate.el
allows the animated display of strings.
-** The new function `interactive-form' can be used to obtain the
+** The new function 'interactive-form' can be used to obtain the
interactive form of a function.
** The keyword :set-after in defcustom allows to specify dependencies
(defcustom default-input-method nil
"*Default input method for multilingual text (a string).
This is the input method activated automatically by the command
- `toggle-input-method' (\\[toggle-input-method])."
+ 'toggle-input-method' (\\[toggle-input-method])."
:group 'mule
:type '(choice (const nil) string)
:set-after '(current-language-environment))
-This specifies that default-input-method should be set after
-current-language-environment even if default-input-method appears
-first in a custom-set-variables statement.
+This specifies that 'default-input-method' should be set after
+'current-language-environment' even if default-input-method appears
+first in a 'custom-set-variables' statement.
-** The new hook `kbd-macro-termination-hook' is run at the end of
-function execute-kbd-macro. Functions on this hook are called with no
+** The new hook 'kbd-macro-termination-hook' is run at the end of
+function 'execute-kbd-macro'. Functions on this hook are called with no
args. The hook is run independent of how the macro was terminated
(signal or normal termination).
-** Functions `butlast' and `nbutlast' for removing trailing elements
+** Functions 'butlast' and 'nbutlast' for removing trailing elements
from a list are now available without requiring the CL package.
-** The new user-option `even-window-heights' can be set to nil
-to prevent `display-buffer' from evening out window heights.
+** The new user-option 'even-window-heights' can be set to nil
+to prevent 'display-buffer' from evening out window heights.
-** The user-option `face-font-registry-alternatives' specifies
+** The user-option 'face-font-registry-alternatives' specifies
alternative font registry names to try when looking for a font.
-** Function `md5' calculates the MD5 "message digest"/"checksum".
+** Function 'md5' calculates the MD5 "message digest"/"checksum".
-** Function `delete-frame' runs `delete-frame-hook' before actually
+** Function 'delete-frame' runs 'delete-frame-hook' before actually
deleting the frame. The hook is called with one arg, the frame
being deleted.
-** `add-hook' now makes the hook local if called with a non-nil LOCAL arg.
+** 'add-hook' now makes the hook local if called with a non-nil LOCAL arg.
** The treatment of non-ASCII characters in search ranges has changed.
If a range in a regular expression or the arg of
C..?\377, the other is C1..C2, where C1 is the first character of C2's
charset.
-** The new function `display-message-or-buffer' displays a message in
+** The new function 'display-message-or-buffer' displays a message in
the echo area or pops up a buffer, depending on the length of the
message.
-** The new macro `with-auto-compression-mode' allows evaluating an
+** The new macro 'with-auto-compression-mode' allows evaluating an
expression with auto-compression-mode enabled.
** In image specifications, `:heuristic-mask' has been replaced
will read a Lisp expression from standard input and print the result
to standard output.
-** The argument of `down-list', `backward-up-list', `up-list',
-`kill-sexp', `backward-kill-sexp' and `mark-sexp' is now optional.
+** The argument of 'down-list', 'backward-up-list', 'up-list',
+'kill-sexp', 'backward-kill-sexp' and 'mark-sexp' is now optional.
-** If `display-buffer-reuse-frames' is set, function `display-buffer'
+** If 'display-buffer-reuse-frames' is set, function 'display-buffer'
will raise frames displaying a buffer, instead of creating a new
frame or window.
** Two new functions for removing elements from lists/sequences
were added
-- Function: remove ELT SEQ
+- Function: 'remove' ELT SEQ
Return a copy of SEQ with all occurrences of ELT removed. SEQ must be
-a list, vector, or string. The comparison is done with `equal'.
+a list, vector, or string. The comparison is done with 'equal'.
-- Function: remq ELT LIST
+- Function: 'remq' ELT LIST
Return a copy of LIST with all occurrences of ELT removed. The
-comparison is done with `eq'.
+comparison is done with 'eq'.
-** The function `delete' now also works with vectors and strings.
+** The function 'delete' now also works with vectors and strings.
-** The meaning of the `:weakness WEAK' argument of make-hash-table
-has been changed: WEAK can now have new values `key-or-value' and
-`key-and-value', in addition to `nil', `key', `value', and `t'.
+** The meaning of the `:weakness WEAK' argument of 'make-hash-table'
+has been changed: WEAK can now have new values 'key-or-value' and
+'key-and-value', in addition to 'nil', 'key', 'value', and 't'.
-** Function `aset' stores any multibyte character in any string
+** Function 'aset' stores any multibyte character in any string
without signaling "Attempt to change char length of a string". It may
convert a unibyte string to multibyte if necessary.
-** The value of the `help-echo' text property is called as a function
+** The value of the 'help-echo' text property is called as a function
or evaluated, if it is not a string already, to obtain a help string.
-** Function `make-obsolete' now has an optional arg to say when the
+** Function 'make-obsolete' now has an optional arg to say when the
function was declared obsolete.
-** Function `plist-member' is renamed from `widget-plist-member' (which is
+** Function 'plist-member' is renamed from 'widget-plist-member' (which is
retained as an alias).
** Easy-menu's :filter now takes the unconverted form of the menu and
the result is automatically converted to Emacs' form.
-** The new function `window-list' has been defined
+** The new function 'window-list' has been defined
- Function: window-list &optional FRAME WINDOW MINIBUF
minibuffer window only if it's active. MINIBUF neither nil nor t
means never include the minibuffer window.
-** There's a new function `get-window-with-predicate' defined as follows
+** There's a new function 'get-window-with-predicate' defined as follows
- Function: get-window-with-predicate PREDICATE &optional MINIBUF ALL-FRAMES DEFAULT
Return a window satisfying PREDICATE.
-This function cycles through all visible windows using `walk-windows',
+This function cycles through all visible windows using 'walk-windows',
calling PREDICATE on each one. PREDICATE is called with a window as
argument. The first window for which PREDICATE returns a non-nil
value is returned. If no window satisfies PREDICATE, DEFAULT is
counts, all windows on all frames that share that minibuffer count
too. Therefore, if you are using a separate minibuffer frame
and the minibuffer is active and MINIBUF says it counts,
-`walk-windows' includes the windows in the frame from which you
+'walk-windows' includes the windows in the frame from which you
entered the minibuffer, as well as the minibuffer window.
ALL-FRAMES is the optional third argument.
ALL-FRAMES nil or omitted means cycle within the frames as specified above.
-ALL-FRAMES = `visible' means include windows on all visible frames.
+ALL-FRAMES = 'visible' means include windows on all visible frames.
ALL-FRAMES = 0 means include windows on all visible and iconified frames.
ALL-FRAMES = t means include windows on all frames including invisible frames.
If ALL-FRAMES is a frame, it means include windows on that frame.
Anything else means restrict to the selected frame.
-** The function `single-key-description' now encloses function key and
+** The function 'single-key-description' now encloses function key and
event names in angle brackets. When called with a second optional
argument non-nil, angle brackets won't be printed.
-** If the variable `message-truncate-lines' is bound to t around a
-call to `message', the echo area will not be resized to display that
+** If the variable 'message-truncate-lines' is bound to t around a
+call to 'message', the echo area will not be resized to display that
message; it will be truncated instead, as it was done in 20.x.
Default value is nil.
-** The user option `line-number-display-limit' can now be set to nil,
+** The user option 'line-number-display-limit' can now be set to nil,
meaning no limit.
-** The new user option `line-number-display-limit-width' controls
+** The new user option 'line-number-display-limit-width' controls
the maximum width of lines in a buffer for which Emacs displays line
numbers in the mode line. The default is 200.
-** `select-safe-coding-system' now also checks the most preferred
-coding-system if buffer-file-coding-system is `undecided' and
+** 'select-safe-coding-system' now also checks the most preferred
+coding-system if buffer-file-coding-system is 'undecided' and
DEFAULT-CODING-SYSTEM is not specified,
-** The function `subr-arity' provides information about the argument
+** The function 'subr-arity' provides information about the argument
list of a primitive.
-** `where-is-internal' now also accepts a list of keymaps.
+** 'where-is-internal' now also accepts a list of keymaps.
-** The text property `keymap' specifies a key map which overrides the
-buffer's local map and the map specified by the `local-map' property.
-This is probably what most current uses of `local-map' want, rather
+** The text property 'keymap' specifies a key map which overrides the
+buffer's local map and the map specified by the 'local-map' property.
+This is probably what most current uses of 'local-map' want, rather
than replacing the local map.
-** The obsolete variables `before-change-function' and
-`after-change-function' are no longer acted upon and have been
-removed. Use `before-change-functions' and `after-change-functions'
+** The obsolete variables 'before-change-function' and
+'after-change-function' are no longer acted upon and have been
+removed. Use 'before-change-functions' and 'after-change-functions'
instead.
-** The function `apropos-mode' runs the hook `apropos-mode-hook'.
+** The function 'apropos-mode' runs the hook 'apropos-mode-hook'.
-** `concat' no longer accepts individual integer arguments,
+** 'concat' no longer accepts individual integer arguments,
as promised long ago.
-** The new function `float-time' returns the current time as a float.
+** The new function 'float-time' returns the current time as a float.
-** The new variable auto-coding-regexp-alist specifies coding systems
-for reading specific files, analogous to auto-coding-alist, but
+** The new variable 'auto-coding-regexp-alist' specifies coding systems
+for reading specific files, analogous to 'auto-coding-alist', but
patterns are checked against file contents instead of file names.
\f
** The new package rx.el provides an alternative sexp notation for
regular expressions.
-- Function: rx-to-string SEXP
+- Function: 'rx-to-string' SEXP
Translate SEXP into a regular expression in string notation.
-- Macro: rx SEXP
+- Macro: 'rx' SEXP
Translate SEXP into a regular expression in string notation.
CHAR
matches character CHAR literally.
-`not-newline'
+'not-newline'
matches any character except a newline.
.
-`anything'
+'anything'
matches any character
`(any SET)'
matches any character in SET. SET may be a character or string.
- Ranges of characters can be specified as `A-Z' in strings.
+ Ranges of characters can be specified as 'A-Z' in strings.
'(in SET)'
- like `any'.
+ like 'any'.
`(not (any SET))'
matches any character not in SET
-`line-start'
+'line-start'
matches the empty string, but only at the beginning of a line
in the text being matched
-`line-end'
- is similar to `line-start' but matches only at the end of a line
+'line-end'
+ is similar to 'line-start' but matches only at the end of a line
-`string-start'
+'string-start'
matches the empty string, but only at the beginning of the
string being matched against.
-`string-end'
+'string-end'
matches the empty string, but only at the end of the
string being matched against.
-`buffer-start'
+'buffer-start'
matches the empty string, but only at the beginning of the
buffer being matched against.
-`buffer-end'
+'buffer-end'
matches the empty string, but only at the end of the
buffer being matched against.
-`point'
+'point'
matches the empty string, but only at point.
-`word-start'
+'word-start'
matches the empty string, but only at the beginning or end of a
word.
-`word-end'
+'word-end'
matches the empty string, but only at the end of a word.
-`word-boundary'
+'word-boundary'
matches the empty string, but only at the beginning or end of a
word.
matches the empty string, but not at the beginning or end of a
word.
-`digit'
+'digit'
matches 0 through 9.
-`control'
+'control'
matches ASCII control characters.
-`hex-digit'
+'hex-digit'
matches 0 through 9, a through f and A through F.
-`blank'
+'blank'
matches space and tab only.
-`graphic'
+'graphic'
matches graphic characters--everything except ASCII control chars,
space, and DEL.
-`printing'
+'printing'
matches printing characters--everything except ASCII control chars
and DEL.
-`alphanumeric'
+'alphanumeric'
matches letters and digits. (But at present, for multibyte characters,
it matches anything that has word syntax.)
-`letter'
+'letter'
matches letters. (But at present, for multibyte characters,
it matches anything that has word syntax.)
-`ascii'
+'ascii'
matches ASCII (unibyte) characters.
-`nonascii'
+'nonascii'
matches non-ASCII (multibyte) characters.
-`lower'
+'lower'
matches anything lower-case.
-`upper'
+'upper'
matches anything upper-case.
-`punctuation'
+'punctuation'
matches punctuation. (But at present, for multibyte characters,
it matches anything that has non-word syntax.)
-`space'
+'space'
matches anything that has whitespace syntax.
-`word'
+'word'
matches anything that has word syntax.
`(syntax SYNTAX)'
matches a character with syntax SYNTAX. SYNTAX must be one
of the following symbols.
- `whitespace' (\\s- in string notation)
- `punctuation' (\\s.)
- `word' (\\sw)
- `symbol' (\\s_)
- `open-parenthesis' (\\s()
- `close-parenthesis' (\\s))
- `expression-prefix' (\\s')
- `string-quote' (\\s\")
- `paired-delimiter' (\\s$)
- `escape' (\\s\\)
- `character-quote' (\\s/)
- `comment-start' (\\s<)
- `comment-end' (\\s>)
+ 'whitespace' (\\s- in string notation)
+ 'punctuation' (\\s.)
+ 'word' (\\sw)
+ 'symbol' (\\s_)
+ 'open-parenthesis' (\\s()
+ 'close-parenthesis' (\\s))
+ 'expression-prefix' (\\s')
+ 'string-quote' (\\s\")
+ 'paired-delimiter' (\\s$)
+ 'escape' (\\s\\)
+ 'character-quote' (\\s/)
+ 'comment-start' (\\s<)
+ 'comment-end' (\\s>)
`(not (syntax SYNTAX))'
matches a character that has not syntax SYNTAX.
matches a character with category CATEGORY. CATEGORY must be
either a character to use for C, or one of the following symbols.
- `consonant' (\\c0 in string notation)
- `base-vowel' (\\c1)
- `upper-diacritical-mark' (\\c2)
- `lower-diacritical-mark' (\\c3)
- `tone-mark' (\\c4)
- `symbol' (\\c5)
- `digit' (\\c6)
- `vowel-modifying-diacritical-mark' (\\c7)
- `vowel-sign' (\\c8)
- `semivowel-lower' (\\c9)
- `not-at-end-of-line' (\\c<)
- `not-at-beginning-of-line' (\\c>)
- `alpha-numeric-two-byte' (\\cA)
- `chinse-two-byte' (\\cC)
- `greek-two-byte' (\\cG)
- `japanese-hiragana-two-byte' (\\cH)
- `indian-two-byte' (\\cI)
- `japanese-katakana-two-byte' (\\cK)
- `korean-hangul-two-byte' (\\cN)
- `cyrillic-two-byte' (\\cY)
- `ascii' (\\ca)
- `arabic' (\\cb)
- `chinese' (\\cc)
- `ethiopic' (\\ce)
- `greek' (\\cg)
- `korean' (\\ch)
- `indian' (\\ci)
- `japanese' (\\cj)
- `japanese-katakana' (\\ck)
- `latin' (\\cl)
- `lao' (\\co)
- `tibetan' (\\cq)
- `japanese-roman' (\\cr)
- `thai' (\\ct)
- `vietnamese' (\\cv)
- `hebrew' (\\cw)
- `cyrillic' (\\cy)
- `can-break' (\\c|)
+ 'consonant' (\\c0 in string notation)
+ 'base-vowel' (\\c1)
+ 'upper-diacritical-mark' (\\c2)
+ 'lower-diacritical-mark' (\\c3)
+ 'tone-mark' (\\c4)
+ 'symbol' (\\c5)
+ 'digit' (\\c6)
+ 'vowel-modifying-diacritical-mark' (\\c7)
+ 'vowel-sign' (\\c8)
+ 'semivowel-lower' (\\c9)
+ 'not-at-end-of-line' (\\c<)
+ 'not-at-beginning-of-line' (\\c>)
+ 'alpha-numeric-two-byte' (\\cA)
+ 'chinse-two-byte' (\\cC)
+ 'greek-two-byte' (\\cG)
+ 'japanese-hiragana-two-byte' (\\cH)
+ 'indian-two-byte' (\\cI)
+ 'japanese-katakana-two-byte' (\\cK)
+ 'korean-hangul-two-byte' (\\cN)
+ 'cyrillic-two-byte' (\\cY)
+ 'ascii' (\\ca)
+ 'arabic' (\\cb)
+ 'chinese' (\\cc)
+ 'ethiopic' (\\ce)
+ 'greek' (\\cg)
+ 'korean' (\\ch)
+ 'indian' (\\ci)
+ 'japanese' (\\cj)
+ 'japanese-katakana' (\\ck)
+ 'latin' (\\cl)
+ 'lao' (\\co)
+ 'tibetan' (\\cq)
+ 'japanese-roman' (\\cr)
+ 'thai' (\\ct)
+ 'vietnamese' (\\cv)
+ 'hebrew' (\\cw)
+ 'cyrillic' (\\cy)
+ 'can-break' (\\c|)
`(not (category CATEGORY))'
matches a character that has not category CATEGORY.
matches what SEXP1 matches, followed by what SEXP2 matches, etc.
`(submatch SEXP1 SEXP2 ...)'
- like `and', but makes the match accessible with `match-end',
- `match-beginning', and `match-string'.
+ like 'and', but makes the match accessible with 'match-end',
+ 'match-beginning', and 'match-string'.
`(group SEXP1 SEXP2 ...)'
- another name for `submatch'.
+ another name for 'submatch'.
`(or SEXP1 SEXP2 ...)'
matches anything that matches SEXP1 or SEXP2, etc. If all
- args are strings, use `regexp-opt' to optimize the resulting
+ args are strings, use 'regexp-opt' to optimize the resulting
regular expression.
`(minimal-match SEXP)'
matches zero or more occurrences of what SEXP matches.
`(0+ SEXP)'
- like `zero-or-more'.
+ like 'zero-or-more'.
`(* SEXP)'
- like `zero-or-more', but always produces a greedy regexp.
+ like 'zero-or-more', but always produces a greedy regexp.
`(*? SEXP)'
- like `zero-or-more', but always produces a non-greedy regexp.
+ like 'zero-or-more', but always produces a non-greedy regexp.
`(one-or-more SEXP)'
matches one or more occurrences of A.
`(1+ SEXP)'
- like `one-or-more'.
+ like 'one-or-more'.
`(+ SEXP)'
- like `one-or-more', but always produces a greedy regexp.
+ like 'one-or-more', but always produces a greedy regexp.
`(+? SEXP)'
- like `one-or-more', but always produces a non-greedy regexp.
+ like 'one-or-more', but always produces a non-greedy regexp.
`(zero-or-one SEXP)'
matches zero or one occurrences of A.
`(optional SEXP)'
- like `zero-or-one'.
+ like 'zero-or-one'.
`(? SEXP)'
- like `zero-or-one', but always produces a greedy regexp.
+ like 'zero-or-one', but always produces a greedy regexp.
`(?? SEXP)'
- like `zero-or-one', but always produces a non-greedy regexp.
+ like 'zero-or-one', but always produces a non-greedy regexp.
`(repeat N SEXP)'
matches N occurrences of what SEXP matches.
`(eval FORM)'
evaluate FORM and insert result. If result is a string,
- `regexp-quote' it.
+ 'regexp-quote' it.
`(regexp REGEXP)'
include REGEXP in string notation in the result.
-*** The features `md5' and `overlay' are now provided by default.
+*** The features 'md5' and 'overlay' are now provided by default.
-*** The special form `save-restriction' now works correctly even if the
+*** The special form 'save-restriction' now works correctly even if the
buffer is widened inside the save-restriction and changes made outside
the original restriction. Previously, doing this would cause the saved
restriction to be restored incorrectly.
-*** The functions `find-charset-region' and `find-charset-string' include
-`eight-bit-control' and/or `eight-bit-graphic' in the returned list
-when they find 8-bit characters. Previously, they included `ascii' in a
-multibyte buffer and `unknown' in a unibyte buffer.
+*** The functions 'find-charset-region' and 'find-charset-string' include
+'eight-bit-control' and/or 'eight-bit-graphic' in the returned list
+when they find 8-bit characters. Previously, they included 'ascii' in a
+multibyte buffer and 'unknown' in a unibyte buffer.
-*** The functions `set-buffer-multibyte', `string-as-multibyte' and
-`string-as-unibyte' change the byte sequence of a buffer or a string
-if it contains a character from the `eight-bit-control' character set.
+*** The functions 'set-buffer-multibyte', 'string-as-multibyte' and
+'string-as-unibyte' change the byte sequence of a buffer or a string
+if it contains a character from the 'eight-bit-control' character set.
*** The handling of multibyte sequences in a multibyte buffer is
changed. Previously, a byte sequence matching the pattern
a group of characters or for a character set rather than just for a
character set as previously.
-*** The arguments of the function `set-fontset-font' are changed.
+*** The arguments of the function 'set-fontset-font' are changed.
They are NAME, CHARACTER, FONTNAME, and optional FRAME. The function
modifies fontset NAME to use FONTNAME for CHARACTER.
registries of character sets are set in the default fontset
"fontset-default".
-*** The function `create-fontset-from-fontset-spec' ignores the second
+*** The function 'create-fontset-from-fontset-spec' ignores the second
argument STYLE-VARIANT. It never creates style-variant fontsets.
** The method of composing characters is changed. Now character
-composition is done by a special text property `composition' in
+composition is done by a special text property 'composition' in
buffers and strings.
*** Charset composition is deleted. Emacs never creates a `composite
*** Three more glyph reference points are added. They can be used to
specify a composition rule. See the documentation of the variable
-`reference-point-alist' for more detail.
+'reference-point-alist' for more detail.
-*** The function `compose-region' takes new arguments COMPONENTS and
+*** The function 'compose-region' takes new arguments COMPONENTS and
MODIFICATION-FUNC. With COMPONENTS, you can specify not only a
composition rule but also characters to be composed. Such characters
may differ between buffer and string text.
-*** The function `compose-string' takes new arguments START, END,
+*** The function 'compose-string' takes new arguments START, END,
COMPONENTS, and MODIFICATION-FUNC.
-*** The function `compose-string' puts text property `composition'
+*** The function 'compose-string' puts text property 'composition'
directly on the argument STRING instead of returning a new string.
-Likewise, the function `decompose-string' just removes text property
-`composition' from STRING.
+Likewise, the function 'decompose-string' just removes text property
+'composition' from STRING.
-*** The new function `find-composition' returns information about
+*** The new function 'find-composition' returns information about
a composition at a specified position in a buffer or a string.
-*** The function `decompose-composite-char' is now labeled as
+*** The function 'decompose-composite-char' is now labeled as
obsolete.
-** The new coding system `mac-roman' is primarily intended for use on
+** The new coding system 'mac-roman' is primarily intended for use on
the Macintosh but may be used generally for Macintosh-encoded text.
-** The new character sets `mule-unicode-0100-24ff',
-`mule-unicode-2500-33ff', and `mule-unicode-e000-ffff' have been
+** The new character sets 'mule-unicode-0100-24ff',
+'mule-unicode-2500-33ff', and 'mule-unicode-e000-ffff' have been
introduced for Unicode characters in the range U+0100..U+24FF,
U+2500..U+33FF, U+E000..U+FFFF respectively.
which includes Unicode characters from the Latin-2 locale cannot be
encoded by Emacs with ISO 8859-2 coding system.
-** The new coding system `mule-utf-8' has been added.
+** The new coding system 'mule-utf-8' has been added.
It provides limited support for decoding/encoding UTF-8 text. For
details, please see the documentation string of this coding system.
-** The new character sets `japanese-jisx0213-1' and
-`japanese-jisx0213-2' have been introduced for the new Japanese
+** The new character sets 'japanese-jisx0213-1' and
+'japanese-jisx0213-2' have been introduced for the new Japanese
standard JIS X 0213 Plane 1 and Plane 2.
-** The new character sets `latin-iso8859-14' and `latin-iso8859-15'
+** The new character sets 'latin-iso8859-14' and 'latin-iso8859-15'
have been introduced.
-** The new character sets `eight-bit-control' and `eight-bit-graphic'
+** The new character sets 'eight-bit-control' and 'eight-bit-graphic'
have been introduced for 8-bit characters in the ranges 0x80..0x9F and
0xA0..0xFF respectively. Note that the multibyte representation of
eight-bit-control is never exposed; this leads to an exception in the
must be multibyte, otherwise such characters will be converted to
their multibyte equivalent.
-** If the APPEND argument of `write-region' is an integer, it seeks to
+** If the APPEND argument of 'write-region' is an integer, it seeks to
that offset in the file before writing.
-** The function `add-minor-mode' has been added for convenience and
+** The function 'add-minor-mode' has been added for convenience and
compatibility with XEmacs (and is used internally by define-minor-mode).
-** The function `shell-command' now sets the default directory of the
+** The function 'shell-command' now sets the default directory of the
`*Shell Command Output*' buffer to the default directory of the buffer
from which the command was issued.
-** The functions `query-replace', `query-replace-regexp',
-`query-replace-regexp-eval' `map-query-replace-regexp',
-`replace-string', `replace-regexp', and `perform-replace' take two
+** The functions 'query-replace', 'query-replace-regexp',
+'query-replace-regexp-eval' 'map-query-replace-regexp',
+'replace-string', 'replace-regexp', and 'perform-replace' take two
additional optional arguments START and END that specify the region to
operate on.
-** The new function `count-screen-lines' is a more flexible alternative
-to `window-buffer-height'.
+** The new function 'count-screen-lines' is a more flexible alternative
+to 'window-buffer-height'.
- Function: count-screen-lines &optional BEG END COUNT-FINAL-NEWLINE WINDOW
The number of screen lines may be different from the number of actual
lines, due to line breaking, display table, etc.
-Optional arguments BEG and END default to `point-min' and `point-max'
+Optional arguments BEG and END default to 'point-min' and 'point-max'
respectively.
If region ends with a newline, ignore it unless optional third argument
obtaining parameters such as width, horizontal scrolling, and so
on. The default is to use the selected window's parameters.
-Like `vertical-motion', `count-screen-lines' always uses the current
+Like 'vertical-motion', 'count-screen-lines' always uses the current
buffer, regardless of which buffer is displayed in WINDOW. This makes
-possible to use `count-screen-lines' in any buffer, whether or not it
+possible to use 'count-screen-lines' in any buffer, whether or not it
is currently displayed in some window.
-** The new function `mapc' is like `mapcar' but doesn't collect the
+** The new function 'mapc' is like 'mapcar' but doesn't collect the
argument function's results.
-** The functions base64-decode-region and base64-decode-string now
+** The functions 'base64-decode-region' and 'base64-decode-string' now
signal an error instead of returning nil if decoding fails. Also,
-`base64-decode-string' now always returns a unibyte string (in Emacs
+'base64-decode-string' now always returns a unibyte string (in Emacs
20, it returned a multibyte string when the result was a valid multibyte
sequence).
-** The function sendmail-user-agent-compose now recognizes a `body'
+** The function 'sendmail-user-agent-compose' now recognizes a 'body'
header in the list of headers passed to it.
-** The new function member-ignore-case works like `member', but
+** The new function 'member-ignore-case' works like 'member', but
ignores differences in case and text representation.
-** The buffer-local variable cursor-type can be used to specify the
+** The buffer-local variable 'cursor-type' can be used to specify the
cursor to use in windows displaying a buffer. Values are interpreted
as follows:
t use the cursor specified for the frame (default)
nil don't display a cursor
- `bar' display a bar cursor with default width
+ 'bar' display a bar cursor with default width
(bar . WIDTH) display a bar cursor with width WIDTH
others display a box cursor.
-** The variable open-paren-in-column-0-is-defun-start controls whether
+** The variable 'open-paren-in-column-0-is-defun-start' controls whether
an open parenthesis in column 0 is considered to be the start of a
defun. If set, the default, it is considered a defun start. If not
set, an open parenthesis in column 0 has no special meaning.
-** The new function `string-to-syntax' can be used to translate syntax
-specifications in string form as accepted by `modify-syntax-entry' to
-the cons-cell form that is used for the values of the `syntax-table'
-text property, and in `font-lock-syntactic-keywords'.
+** The new function 'string-to-syntax' can be used to translate syntax
+specifications in string form as accepted by 'modify-syntax-entry' to
+the cons-cell form that is used for the values of the 'syntax-table'
+text property, and in 'font-lock-syntactic-keywords'.
Example:
#25rah
=> 267
-** The function `documentation-property' now evaluates the value of
+** The function 'documentation-property' now evaluates the value of
the given property to obtain a string if it doesn't refer to etc/DOC
and isn't a string.
-** If called for a symbol, the function `documentation' now looks for
-a `function-documentation' property of that symbol. If it has a non-nil
+** If called for a symbol, the function 'documentation' now looks for
+a 'function-documentation' property of that symbol. If it has a non-nil
value, the documentation is taken from that value. If the value is
not a string, it is evaluated to obtain a string.
-** The last argument of `define-key-after' defaults to t for convenience.
+** The last argument of 'define-key-after' defaults to t for convenience.
-** The new function `replace-regexp-in-string' replaces all matches
+** The new function 'replace-regexp-in-string' replaces all matches
for a regexp in a string.
-** `mouse-position' now runs the abnormal hook
-`mouse-position-function'.
+** 'mouse-position' now runs the abnormal hook
+'mouse-position-function'.
** The function string-to-number now returns a float for numbers
that don't fit into a Lisp integer.
** The variable keyword-symbols-constants-flag has been removed.
Keywords are now always considered constants.
-** The new function `delete-and-extract-region' deletes text and
+** The new function 'delete-and-extract-region' deletes text and
returns it.
-** The function `clear-this-command-keys' now also clears the vector
-returned by function `recent-keys'.
+** The function 'clear-this-command-keys' now also clears the vector
+returned by function 'recent-keys'.
-** Variables `beginning-of-defun-function' and `end-of-defun-function'
+** Variables 'beginning-of-defun-function' and 'end-of-defun-function'
can be used to define handlers for the functions that find defuns.
Major modes can define these locally instead of rebinding C-M-a
etc. if the normal conventions for defuns are not appropriate for the
mode.
** easy-mmode-define-minor-mode now takes an additional BODY argument
-and is renamed `define-minor-mode'.
+and is renamed 'define-minor-mode'.
** If an abbrev has a hook function which is a symbol, and that symbol
-has a non-nil `no-self-insert' property, the return value of the hook
+has a non-nil 'no-self-insert' property, the return value of the hook
function specifies whether an expansion has been done or not. If it
-returns nil, abbrev-expand also returns nil, meaning "no expansion has
+returns nil, 'abbrev-expand' also returns nil, meaning "no expansion has
been performed."
When abbrev expansion is done by typing a self-inserting character,
-and the abbrev has a hook with the `no-self-insert' property, and the
+and the abbrev has a hook with the 'no-self-insert' property, and the
hook function returns non-nil meaning expansion has been done,
then the self-inserting character is not inserted.
-** The function `intern-soft' now accepts a symbol as first argument.
+** The function 'intern-soft' now accepts a symbol as first argument.
In this case, that exact symbol is looked up in the specified obarray,
and the function's value is nil if it is not found.
-** The new macro `with-syntax-table' can be used to evaluate forms
+** The new macro 'with-syntax-table' can be used to evaluate forms
with the syntax table of the current buffer temporarily set to a
specified table.
Perl's shy-groups \(?:...\) and non-greedy *? +? and ?? operators.
Also back-references like \2 are now considered as an error if the
corresponding subgroup does not exist (or is not closed yet).
-Previously it would have been silently turned into `2' (ignoring the `\').
+Previously it would have been silently turned into '2' (ignoring the `\').
-** The optional argument BUFFER of function file-local-copy has been
+** The optional argument BUFFER of function 'file-local-copy' has been
removed since it wasn't used by anything.
-** The file name argument of function `file-locked-p' is now required
+** The file name argument of function 'file-locked-p' is now required
instead of being optional.
-** The new built-in error `text-read-only' is signaled when trying to
+** The new built-in error 'text-read-only' is signaled when trying to
modify read-only text.
** New functions and variables for locales.
-The new variable `locale-coding-system' specifies how to encode and
+The new variable 'locale-coding-system' specifies how to encode and
decode strings passed to low-level message functions like strerror and
time functions like strftime. The new variables
-`system-messages-locale' and `system-time-locale' give the system
+'system-messages-locale' and 'system-time-locale' give the system
locales to be used when invoking these two types of functions.
-The new function `set-locale-environment' sets the language
+The new function 'set-locale-environment' sets the language
environment, preferred coding system, and locale coding system from
the system locale as specified by the LC_ALL, LC_CTYPE, and LANG
environment variables. Normally, it is invoked during startup and need
not be invoked thereafter. It uses the new variables
-`locale-language-names', `locale-charset-language-names', and
-`locale-preferred-coding-systems' to make its decisions.
+'locale-language-names', 'locale-charset-language-names', and
+'locale-preferred-coding-systems' to make its decisions.
** syntax tables now understand nested comments.
-To declare a comment syntax as allowing nesting, just add an `n'
+To declare a comment syntax as allowing nesting, just add an 'n'
modifier to either of the characters of the comment end and the comment
start sequences.
-** The function `pixmap-spec-p' has been renamed `bitmap-spec-p'
-because `bitmap' is more in line with the usual X terminology.
+** The function 'pixmap-spec-p' has been renamed 'bitmap-spec-p'
+because 'bitmap' is more in line with the usual X terminology.
-** New function `propertize'
+** New function 'propertize'
-The new function `propertize' can be used to conveniently construct
+The new function 'propertize' can be used to conveniently construct
strings with text properties.
- Function: propertize STRING &rest PROPERTIES
(propertize "foo" 'face 'bold 'read-only t)
-** push and pop macros.
+** 'push' and 'pop' macros.
Simple versions of the push and pop macros of Common Lisp
are now defined in Emacs Lisp. These macros allow only symbols
(pop LISTNAME) return first elt of LISTNAME, and remove it
(thus altering the value of LISTNAME).
-** New dolist and dotimes macros.
+** New 'dolist' and 'dotimes' macros.
Simple versions of the dolist and dotimes macros of Common Lisp
are now defined in Emacs Lisp.
:test TEST
-TEST must be a symbol specifying how to compare keys. Default is `eql'.
-Predefined are `eq', `eql' and `equal'. If TEST is not predefined,
-it must have been defined with `define-hash-table-test'.
+TEST must be a symbol specifying how to compare keys. Default is 'eql'.
+Predefined are 'eq', 'eql' and 'equal'. If TEST is not predefined,
+it must have been defined with 'define-hash-table-test'.
:size SIZE
:weakness WEAK
-WEAK must be either nil, one of the symbols `key, `value',
-`key-or-value', `key-and-value', or t, meaning the same as
-`key-and-value'. Entries are removed from weak tables during garbage
+WEAK must be either nil, one of the symbols `key, 'value',
+'key-or-value', 'key-and-value', or t, meaning the same as
+'key-and-value'. Entries are removed from weak tables during garbage
collection if their key and/or value are not referenced elsewhere
outside of the hash table. Default are non-weak hash tables.
-- Function: makehash &optional TEST
+- Function: 'makehash' &optional TEST
Similar to make-hash-table, but only TEST can be specified.
-- Function: hash-table-p TABLE
+- Function: 'hash-table-p' TABLE
Returns non-nil if TABLE is a hash table object.
-- Function: copy-hash-table TABLE
+- Function: 'copy-hash-table' TABLE
Returns a copy of TABLE. Only the table itself is copied, keys and
values are shared.
-- Function: hash-table-count TABLE
+- Function: 'hash-table-count' TABLE
Returns the number of entries in TABLE.
-- Function: hash-table-rehash-size TABLE
+- Function: 'hash-table-rehash-size' TABLE
Returns the rehash size of TABLE.
-- Function: hash-table-rehash-threshold TABLE
+- Function: 'hash-table-rehash-threshold' TABLE
Returns the rehash threshold of TABLE.
-- Function: hash-table-rehash-size TABLE
+- Function: 'hash-table-rehash-size' TABLE
Returns the size of TABLE.
-- Function: hash-table-test TABLE
+- Function: 'hash-table-test' TABLE
Returns the test TABLE uses to compare keys.
-- Function: hash-table-weakness TABLE
+- Function: 'hash-table-weakness' TABLE
Returns the weakness specified for TABLE.
-- Function: clrhash TABLE
+- Function: 'clrhash' TABLE
Clear TABLE.
-- Function: gethash KEY TABLE &optional DEFAULT
+- Function: 'gethash' KEY TABLE &optional DEFAULT
Look up KEY in TABLE and return its associated VALUE or DEFAULT if
not found.
-- Function: puthash KEY VALUE TABLE
+- Function: 'puthash' KEY VALUE TABLE
Associate KEY with VALUE in TABLE. If KEY is already associated with
another value, replace the old value with VALUE.
-- Function: remhash KEY TABLE
+- Function: 'remhash' KEY TABLE
Remove KEY from TABLE if it is there.
-- Function: maphash FUNCTION TABLE
+- Function: 'maphash' FUNCTION TABLE
Call FUNCTION for all elements in TABLE. FUNCTION must take two
arguments KEY and VALUE.
-- Function: sxhash OBJ
+- Function: 'sxhash' OBJ
Return a hash code for Lisp object OBJ.
-- Function: define-hash-table-test NAME TEST-FN HASH-FN
+- Function: 'define-hash-table-test' NAME TEST-FN HASH-FN
Define a new hash table test named NAME. If NAME is specified as
-a test in `make-hash-table', the table created will use TEST-FN for
+a test in 'make-hash-table', the table created will use TEST-FN for
comparing keys, and HASH-FN to compute hash codes for keys. Test
-and hash function are stored as symbol property `hash-table-test'
+and hash function are stored as symbol property 'hash-table-test'
of NAME with a value of (TEST-FN HASH-FN).
TEST-FN must take two arguments and return non-nil if they are the same.
** The Lisp printer handles circular structure.
-If you bind print-circle to a non-nil value, the Lisp printer outputs
+If you bind 'print-circle' to a non-nil value, the Lisp printer outputs
#N= and #N# constructs to represent circular and shared structure.
-** If the second argument to `move-to-column' is anything but nil or
+** If the second argument to 'move-to-column' is anything but nil or
t, that means replace a tab with spaces if necessary to reach the
specified column, but do not add spaces at the end of the line if it
is too short to reach that column.
two arguments: DATA, and the number of replacements already made.
If the FROM-STRING contains any upper-case letters,
-perform-replace also turns off `case-fold-search' temporarily
+perform-replace also turns off 'case-fold-search' temporarily
and inserts the replacement text without altering case in it.
-** The function buffer-size now accepts an optional argument
+** The function 'buffer-size' now accepts an optional argument
to specify which buffer to return the size of.
** The calendar motion commands now run the normal hook
-calendar-move-hook after moving point.
+'calendar-move-hook' after moving point.
-** The new variable small-temporary-file-directory specifies a
+** The new variable 'small-temporary-file-directory' specifies a
directory to use for creating temporary files that are likely to be
small. (Certain Emacs features use this directory.) If
small-temporary-file-directory is nil, they use
-temporary-file-directory instead.
+'temporary-file-directory' instead.
-** The variable `inhibit-modification-hooks', if non-nil, inhibits all
+** The variable 'inhibit-modification-hooks', if non-nil, inhibits all
the hooks that track changes in the buffer. This affects
-`before-change-functions' and `after-change-functions', as well as
+'before-change-functions' and 'after-change-functions', as well as
hooks attached to text properties and overlay properties.
-** assq-delete-all is a new function that deletes all the
-elements of an alist which have a car `eq' to a particular value.
+** 'assq-delete-all' is a new function that deletes all the
+elements of an alist which have a car 'eq' to a particular value.
-** make-temp-file provides a more reliable way to create a temporary file.
+** 'make-temp-file' provides a more reliable way to create a temporary file.
-make-temp-file is used like make-temp-name, except that it actually
+'make-temp-file' is used like 'make-temp-name', except that it actually
creates the file before it returns. This prevents a timing error,
ensuring that no other job can use the same name for a temporary file.
-** New exclusive-open feature in `write-region'
+** New exclusive-open feature in 'write-region'
The optional seventh arg is now called MUSTBENEW. If non-nil, it insists
on a check for an existing file with the same name. If MUSTBENEW
-is `excl', that means to get an error if the file already exists;
-never overwrite. If MUSTBENEW is neither nil nor `excl', that means
+is 'excl', that means to get an error if the file already exists;
+never overwrite. If MUSTBENEW is neither nil nor 'excl', that means
ask for confirmation before overwriting, but do go ahead and
overwrite the file if the user gives confirmation.
-If the MUSTBENEW argument in `write-region' is `excl',
-that means to use a special feature in the `open' system call
+If the MUSTBENEW argument in 'write-region' is 'excl',
+that means to use a special feature in the 'open' system call
to get an error if the file exists at that time.
-The error reported is `file-already-exists'.
+The error reported is 'file-already-exists'.
-** Function `format' now handles text properties.
+** Function 'format' now handles text properties.
Text properties of the format string are applied to the result string.
If the result string is longer than the format string, text properties
Text properties from string arguments are applied to the result
string where arguments appear in the result string.
-Example:
+Example, using 'put-text-property':
(let ((s1 "hello, %s")
(s2 "world"))
(put-text-property 0 (length s2) 'face 'italic s2)
(format s1 s2))
-results in a bold-face string with an italic `world' at the end.
+results in a bold-face string with an italic 'world' at the end.
** Messages can now be displayed with text properties.
-Text properties are handled as described above for function `format'.
+Text properties are handled as described above for function 'format'.
The following example displays a bold-face message with an italic
argument in it.
(Voxware driver and native BSD driver, aka as Luigi's driver).
Currently supported file formats are RIFF-WAVE (*.wav) and Sun Audio
-(*.au). You must configure Emacs with the option `--with-sound=yes'
+(*.au). You must configure Emacs with the option '--with-sound=yes'
to enable sound support.
-Sound files can be played by calling (play-sound SOUND). SOUND is a
+Sound files can be played by calling 'play-sound'. The argument is a
list of the form `(sound PROPERTY...)'. The function is only defined
when sound support is present for the system on which Emacs runs. The
-functions runs `play-sound-functions' with one argument which is the
+functions runs 'play-sound-functions' with one argument which is the
sound to play, before playing the sound.
The following sound properties are supported:
- `:file FILE'
FILE is a file name. If FILE isn't an absolute name, it will be
-searched relative to `data-directory'.
+searched relative to 'data-directory'.
- `:data DATA'
Other properties are ignored.
An alternative interface is called as
-(play-sound-file FILE &optional VOLUME DEVICE).
-** `multimedia' is a new Finder keyword and Custom group.
+ (play-sound-file FILE &optional VOLUME DEVICE)
+
+** 'multimedia' is a new Finder keyword and Custom group.
-** keywordp is a new predicate to test efficiently for an object being
+** 'keywordp' is a new predicate to test efficiently for an object being
a keyword symbol.
** Changes to garbage collection
-*** The function garbage-collect now additionally returns the number
+*** The function 'garbage-collect' now additionally returns the number
of live and free strings.
-*** There is a new variable `strings-consed' holding the number of
+*** There is a new variable 'strings-consed' holding the number of
strings that have been consed so far.
\f
* Lisp-level Display features added after release 2.6 of the Emacs
Lisp Manual
-** The user-option `resize-mini-windows' controls how Emacs resizes
+** The user-option 'resize-mini-windows' controls how Emacs resizes
mini-windows.
-** The function `pos-visible-in-window-p' now has a third optional
+** The function 'pos-visible-in-window-p' now has a third optional
argument, PARTIALLY. If a character is only partially visible, nil is
returned, unless PARTIALLY is non-nil.
-** On window systems, `glyph-table' is no longer used.
+** On window systems, 'glyph-table' is no longer used.
-** Help strings in menu items are now used to provide `help-echo' text.
+** Help strings in menu items are now used to provide 'help-echo' text.
-** The function `image-size' can be used to determine the size of an
+** The function 'image-size' can be used to determine the size of an
image.
- Function: image-size SPEC &optional PIXELS FRAME
font). FRAME is the frame on which the image will be displayed.
FRAME nil or omitted means use the selected frame.
-** The function `image-mask-p' can be used to determine if an image
+** The function 'image-mask-p' can be used to determine if an image
has a mask bitmap.
- Function: image-mask-p SPEC &optional FRAME
FRAME is the frame on which the image will be displayed. FRAME nil
or omitted means use the selected frame.
-** The function `find-image' can be used to find a usable image
+** The function 'find-image' can be used to find a usable image
satisfying one of a list of specifications.
-** The STRING argument of `put-image' and `insert-image' is now
+** The STRING argument of 'put-image' and 'insert-image' is now
optional.
** Image specifications may contain the property `:ascent center' (see
1. Font family or fontset alias name.
2. Relative proportionate width, aka character set width or set
- width (swidth), e.g. `semi-compressed'.
+ width (swidth), e.g. 'semi-compressed'.
3. Font height in 1/10pt
- 4. Font weight, e.g. `bold'.
+ 4. Font weight, e.g. 'bold'.
- 5. Font slant, e.g. `italic'.
+ 5. Font slant, e.g. 'italic'.
6. Foreground color.
same named face (face names are symbols) differently for different
frames. Each frame has an alist of face definitions for all named
faces. The value of a named face in such an alist is a Lisp vector
-with the symbol `face' in slot 0, and a slot for each of the face
+with the symbol 'face' in slot 0, and a slot for each of the face
attributes mentioned above.
-There is also a global face alist `face-new-frame-defaults'. Face
+There is also a global face alist 'face-new-frame-defaults'. Face
definitions from this list are used to initialize faces of newly
created frames.
A face doesn't have to specify all attributes. Those not specified
have a nil value. Faces specifying all attributes are called
-`fully-specified'.
+'fully-specified'.
*** Face merging.
The display style of a given character in the text is determined by
combining several faces. This process is called `face merging'. Any
aspect of the display style that isn't specified by overlays or text
-properties is taken from the `default' face. Since it is made sure
+properties is taken from the 'default' face. Since it is made sure
that the default face is always fully-specified, face merging always
results in a fully-specified face.
*** Face realization.
After all face attributes for a character have been determined by
-merging faces of that character, that face is `realized'. The
+merging faces of that character, that face is 'realized'. The
realization process maps face attributes to what is physically
available on the system where Emacs runs. The result is a `realized
face' in form of an internal structure which is stored in the face
statically defined font name patterns in fontsets.
In unibyte text, Emacs' charsets aren't applicable; function
-`char-charset' reports ASCII for all characters, including those >
+'char-charset' reports ASCII for all characters, including those >
0x7f. The X registry and encoding of fonts to use is determined from
-the variable `face-default-registry' in this case. The variable is
+the variable 'face-default-registry' in this case. The variable is
initialized at Emacs startup time from the font the user specified for
Emacs.
Currently all unibyte text, i.e. all buffers with
-`enable-multibyte-characters' nil are displayed with fonts of the same
-registry and encoding `face-default-registry'. This is consistent
+'enable-multibyte-characters' nil are displayed with fonts of the same
+registry and encoding 'face-default-registry'. This is consistent
with the fact that languages can also be set globally, only.
**** Clearing face caches.
-The Lisp function `clear-face-cache' can be called to clear face caches
+The Lisp function 'clear-face-cache' can be called to clear face caches
on all frames. If called with a non-nil argument, it will also unload
unused fonts.
If the face specifies a fontset name, that fontset determines a
pattern for fonts of the given charset. If the face specifies a font
family, a font pattern is constructed. Charset symbols have a
-property `x-charset-registry' for that purpose that maps a charset to
+property 'x-charset-registry' for that purpose that maps a charset to
an XLFD registry and encoding in the font pattern constructed.
Available fonts on the system on which Emacs runs are then matched
The user can specify the relative importance he gives the face
attributes width, height, weight, and slant by setting
-face-font-selection-order (faces.el) to a list of face attribute
+'face-font-selection-order' (faces.el) to a list of face attribute
names. The default is (:width :height :weight :slant), and means
that font selection first tries to find a good match for the font
width specified by a face, then---within fonts with that width---tries
to find a best match for the specified font height, etc.
-Setting `face-font-family-alternatives' allows the user to specify
+Setting 'face-font-family-alternatives' allows the user to specify
alternative font families to try if a family specified by a face
doesn't exist.
-Setting `face-font-registry-alternatives' allows the user to specify
+Setting 'face-font-registry-alternatives' allows the user to specify
all alternative font registry names to try for a face specifying a
registry.
Please note that the interpretations of the above two variables are
slightly different.
-Setting face-ignored-fonts allows the user to ignore specific fonts.
+Setting 'face-ignored-fonts' allows the user to ignore specific fonts.
**** Scalable fonts
servers.
To enable scalable font use, set the variable
-`scalable-fonts-allowed'. A value of nil, the default, means never use
+'scalable-fonts-allowed'. A value of nil, the default, means never use
scalable fonts. A value of t means any scalable font may be used.
Otherwise, the value must be a list of regular expressions. A
scalable font may then be used if it matches a regular expression from
(setq scalable-fonts-allowed '("muleindian-2$"))
-allows the use of scalable fonts with registry `muleindian-2'.
+allows the use of scalable fonts with registry 'muleindian-2'.
*** Functions and variables related to font selection.
-- Function: x-family-fonts &optional FAMILY FRAME
+- Function: 'x-family-fonts' &optional FAMILY FRAME
Return a list of available fonts of family FAMILY on FRAME. If FAMILY
is omitted or nil, list all families. Otherwise, FAMILY must be a
the font. The result list is sorted according to the current setting
of the face font sort order.
-- Function: x-font-family-list
+- Function: 'x-font-family-list'
Return a list of available font families on FRAME. If FRAME is
omitted or nil, use the selected frame. Value is a list of conses
(FAMILY . FIXED-P) where FAMILY is a font family, and FIXED-P is
non-nil if fonts of that family are fixed-pitch.
-- Variable: font-list-limit
+- Variable: 'font-list-limit'
Limit for font matching. If an integer > 0, font matching functions
won't load more than that number of fonts when searching for a
For the most part, the new face implementation is interface-compatible
with the old one. Old face attribute related functions are now
-implemented in terms of the new functions `set-face-attribute' and
-`face-attribute'.
+implemented in terms of the new functions 'set-face-attribute' and
+'face-attribute'.
Face attributes are identified by their names which are keyword
-symbols. All attributes can be set to `unspecified'.
+symbols. All attributes can be set to 'unspecified'.
The following attributes are recognized:
`:family'
-VALUE must be a string specifying the font family, e.g. ``courier'',
+VALUE must be a string specifying the font family, e.g. "courier",
or a fontset alias name. If a font family is specified, wild-cards `*'
and `?' are allowed.
`:width'
VALUE specifies the relative proportionate width of the font to use.
-It must be one of the symbols `ultra-condensed', `extra-condensed',
-`condensed', `semi-condensed', `normal', `semi-expanded', `expanded',
-`extra-expanded', or `ultra-expanded'.
+It must be one of the symbols 'ultra-condensed', 'extra-condensed',
+'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded',
+'extra-expanded', or 'ultra-expanded'.
`:height'
`:weight'
VALUE specifies the weight of the font to use. It must be one of the
-symbols `ultra-bold', `extra-bold', `bold', `semi-bold', `normal',
-`semi-light', `light', `extra-light', `ultra-light'.
+symbols 'ultra-bold', 'extra-bold', 'bold', 'semi-bold', 'normal',
+'semi-light', 'light', 'extra-light', 'ultra-light'.
`:slant'
VALUE specifies the slant of the font to use. It must be one of the
-symbols `italic', `oblique', `normal', `reverse-italic', or
-`reverse-oblique'.
+symbols 'italic', 'oblique', 'normal', 'reverse-italic', or
+'reverse-oblique'.
`:foreground', `:background'
defaults to 1. COLOR is the name of the color to draw in, default is
the foreground color of the face for simple boxes, and the background
color of the face for 3D boxes. STYLE specifies whether a 3D box
-should be draw. If STYLE is `released-button', draw a box looking
-like a released 3D button. If STYLE is `pressed-button' draw a box
+should be draw. If STYLE is 'released-button', draw a box looking
+like a released 3D button. If STYLE is 'pressed-button' draw a box
that appears like a pressed button. If STYLE is nil, the default if
the property list doesn't contain a style specification, draw a 2D
box.
`:stipple'
If VALUE is a string, it must be the name of a file of pixmap data.
-The directories listed in the `x-bitmap-file-path' variable are
+The directories listed in the 'x-bitmap-file-path' variable are
searched. Alternatively, VALUE may be a list of the form (WIDTH
HEIGHT DATA) where WIDTH and HEIGHT are the size in pixels, and DATA
is a string containing the raw bits of the bitmap. VALUE nil means
For compatibility with Emacs 20, keywords `:bold' and `:italic' can
be used to specify that a bold or italic font should be used. VALUE
-must be t or nil in that case. A value of `unspecified' is not allowed."
+must be t or nil in that case. A value of 'unspecified' is not allowed."
-Please see also the documentation of `set-face-attribute' and
-`defface'.
+Please see also the documentation of 'set-face-attribute' and
+'defface'.
`:inherit'
:italic attributeItalic . Face.AttributeItalic
:font attributeFont Face.AttributeFont
-*** Text property `face'.
+*** Text property 'face'.
-The value of the `face' text property can now be a single face
+The value of the 'face' text property can now be a single face
specification or a list of such specifications. Each face
specification can be
2. A property list of the form (KEYWORD VALUE ...) where each
KEYWORD is a face attribute name, and VALUE is an appropriate value
- for that attribute. Please see the doc string of `set-face-attribute'
+ for that attribute. Please see the doc string of 'set-face-attribute'
for face attribute names.
3. Conses of the form (FOREGROUND-COLOR . COLOR) or
** Support functions for colors on text-only terminals.
-The function `tty-color-define' can be used to define colors for use
+The function 'tty-color-define' can be used to define colors for use
on TTY and MSDOS frames. It maps a color name to a color number on
the terminal. Emacs defines a couple of common color mappings by
default. You can get defined colors with a call to
-`defined-colors'. The function `tty-color-clear' can be
+'defined-colors'. The function 'tty-color-clear' can be
used to clear the mapping table.
** Unified support for colors independent of frame type.
-The new functions `defined-colors', `color-defined-p', `color-values',
-and `display-color-p' work for any type of frame. On frames whose
+The new functions 'defined-colors', 'color-defined-p', 'color-values',
+and 'display-color-p' work for any type of frame. On frames whose
type is neither x nor w32, these functions transparently map X-style
color specifications to the closest colors supported by the frame
display. Lisp programs should use these new functions instead of the
-old `x-defined-colors', `x-color-defined-p', `x-color-values', and
-`x-display-color-p'. (The old function names are still available for
+old 'x-defined-colors', 'x-color-defined-p', 'x-color-values', and
+'x-display-color-p'. (The old function names are still available for
compatibility; they are now aliases of the new names.) Lisp programs
should no more look at the value of the variable window-system to
modify their color-related behavior.
-The primitives `color-gray-p' and `color-supported-p' also work for
+The primitives 'color-gray-p' and 'color-supported-p' also work for
any frame type.
** Platform-independent functions to describe display capabilities.
-The new functions `display-mouse-p', `display-popup-menus-p',
-`display-graphic-p', `display-selections-p', `display-screens',
-`display-pixel-width', `display-pixel-height', `display-mm-width',
-`display-mm-height', `display-backing-store', `display-save-under',
-`display-planes', `display-color-cells', `display-visual-class', and
-`display-grayscale-p' describe the basic capabilities of a particular
+The new functions 'display-mouse-p', 'display-popup-menus-p',
+'display-graphic-p', 'display-selections-p', 'display-screens',
+'display-pixel-width', 'display-pixel-height', 'display-mm-width',
+'display-mm-height', 'display-backing-store', 'display-save-under',
+'display-planes', 'display-color-cells', 'display-visual-class', and
+'display-grayscale-p' describe the basic capabilities of a particular
display. Lisp programs should call these functions instead of testing
-the value of the variables `window-system' or `system-type', or calling
-platform-specific functions such as `x-display-pixel-width'.
+the value of the variables 'window-system' or 'system-type', or calling
+platform-specific functions such as 'x-display-pixel-width'.
-The new function `display-images-p' returns non-nil if a particular
+The new function 'display-images-p' returns non-nil if a particular
display can display image files.
** The minibuffer prompt is now actually inserted in the minibuffer.
This makes it possible to scroll through the prompt, if you want to.
To disallow this completely (like previous versions of emacs), customize
-the variable `minibuffer-prompt-properties', and turn on the
-`Inviolable' option.
+the variable 'minibuffer-prompt-properties', and turn on the
+'Inviolable' option.
-The function `minibuffer-prompt-end' returns the current position of the
+The function 'minibuffer-prompt-end' returns the current position of the
end of the minibuffer prompt, if the minibuffer is current.
Otherwise, it returns `(point-min)'.
-** New `field' abstraction in buffers.
+** New 'field' abstraction in buffers.
-There is now code to support an abstraction called `fields' in emacs
-buffers. A field is a contiguous region of text with the same `field'
+There is now code to support an abstraction called 'fields' in emacs
+buffers. A field is a contiguous region of text with the same 'field'
property (which can be a text property or an overlay).
-Many emacs functions, such as forward-word, forward-sentence,
-forward-paragraph, beginning-of-line, etc., stop moving when they come
+Many Emacs functions, such as 'forward-word', 'forward-sentence',
+'forward-paragraph', 'beginning-of-line', etc., stop moving when they come
to the boundary between fields; beginning-of-line and end-of-line will
not let the point move past the field boundary, but other movement
commands continue into the next field if repeated. Stopping at field
boundaries can be suppressed programmatically by binding
-`inhibit-field-text-motion' to a non-nil value around calls to these
+'inhibit-field-text-motion' to a non-nil value around calls to these
functions.
Now that the minibuffer prompt is inserted into the minibuffer, it is in
The following functions are defined for operating on fields:
-- Function: constrain-to-field NEW-POS OLD-POS &optional ESCAPE-FROM-EDGE ONLY-IN-LINE INHIBIT-CAPTURE-PROPERTY
+- Function: 'constrain-to-field' NEW-POS OLD-POS &optional ESCAPE-FROM-EDGE ONLY-IN-LINE INHIBIT-CAPTURE-PROPERTY
Return the position closest to NEW-POS that is in the same field as OLD-POS.
-A field is a region of text with the same `field' property.
+A field is a region of text with the same 'field' property.
If NEW-POS is nil, then the current point is used instead, and set to the
constrained position if that is different.
If OLD-POS is at the boundary of two fields, then the allowable
positions for NEW-POS depends on the value of the optional argument
ESCAPE-FROM-EDGE: If ESCAPE-FROM-EDGE is nil, then NEW-POS is
-constrained to the field that has the same `field' char-property
+constrained to the field that has the same 'field' char-property
as any new characters inserted at OLD-POS, whereas if ESCAPE-FROM-EDGE
is non-nil, NEW-POS is constrained to the union of the two adjacent
fields. Additionally, if two fields are separated by another field with
-the special value `boundary', then any point within this special field is
+the special value 'boundary', then any point within this special field is
also considered to be `on the boundary'.
If the optional argument ONLY-IN-LINE is non-nil and constraining
If the optional argument INHIBIT-CAPTURE-PROPERTY is non-nil, and OLD-POS has
a non-nil property of that name, then any field boundaries are ignored.
-Field boundaries are not noticed if `inhibit-field-text-motion' is non-nil.
+Field boundaries are not noticed if 'inhibit-field-text-motion' is non-nil.
-- Function: delete-field &optional POS
+- Function: 'delete-field' &optional POS
Delete the field surrounding POS.
-A field is a region of text with the same `field' property.
+A field is a region of text with the same 'field' property.
If POS is nil, the value of point is used for POS.
-- Function: field-beginning &optional POS ESCAPE-FROM-EDGE
+- Function: 'field-beginning' &optional POS ESCAPE-FROM-EDGE
Return the beginning of the field surrounding POS.
-A field is a region of text with the same `field' property.
+A field is a region of text with the same 'field' property.
If POS is nil, the value of point is used for POS.
If ESCAPE-FROM-EDGE is non-nil and POS is at the beginning of its
field, then the beginning of the *previous* field is returned.
-- Function: field-end &optional POS ESCAPE-FROM-EDGE
+- Function: 'field-end' &optional POS ESCAPE-FROM-EDGE
Return the end of the field surrounding POS.
-A field is a region of text with the same `field' property.
+A field is a region of text with the same 'field' property.
If POS is nil, the value of point is used for POS.
If ESCAPE-FROM-EDGE is non-nil and POS is at the end of its field,
then the end of the *following* field is returned.
-- Function: field-string &optional POS
+- Function: 'field-string' &optional POS
Return the contents of the field surrounding POS as a string.
-A field is a region of text with the same `field' property.
+A field is a region of text with the same 'field' property.
If POS is nil, the value of point is used for POS.
-- Function: field-string-no-properties &optional POS
+- Function: 'field-string-no-properties' &optional POS
Return the contents of the field around POS, without text-properties.
-A field is a region of text with the same `field' property.
+A field is a region of text with the same 'field' property.
If POS is nil, the value of point is used for POS.
** Image support.
Emacs can now display images. Images are inserted into text by giving
-strings or buffer text a `display' text property containing one of
-(AREA IMAGE) or IMAGE. The display of the `display' property value
+strings or buffer text a 'display' text property containing one of
+(AREA IMAGE) or IMAGE. The display of the 'display' property value
replaces the display of the characters having that property.
If the property value has the form (AREA IMAGE), AREA must be one of
Image specifications are lists of the form `(image PROPS)' where PROPS
is a property list whose keys are keyword symbols. Each
specifications must contain a property `:type TYPE' with TYPE being a
-symbol specifying the image type, e.g. `xbm'. Properties not
+symbol specifying the image type, e.g. 'xbm'. Properties not
described below are ignored.
The following is a list of properties all image types share.
`:ascent ASCENT'
-ASCENT must be a number in the range 0..100, or the symbol `center'.
+ASCENT must be a number in the range 0..100, or the symbol 'center'.
If it is a number, it specifies the percentage of the image's height
to use for its ascent.
If not specified, ASCENT defaults to the value 50 which means that the
image will be centered with the base line of the row it appears in.
-If ASCENT is `center' the image is vertically centered around a
+If ASCENT is 'center' the image is vertically centered around a
centerline which is the vertical center of text drawn at the position
of the image, in the manner specified by the text properties and
overlays that apply to the image.
Apply an image algorithm to the image before displaying it.
-ALGO `laplace' or `emboss' means apply a Laplace or ``emboss''
+ALGO 'laplace' or 'emboss' means apply a Laplace or ``emboss''
edge-detection algorithm to the image.
ALGO `(edge-detection :matrix MATRIX :color-adjust ADJUST)' means
-1 0 1
0 1 -2)
-ALGO `disabled' means transform the image so that it looks
+ALGO 'disabled' means transform the image so that it looks
``disabled''.
`:mask MASK'
-If MASK is `heuristic' or `(heuristic BG)', build a clipping mask for
+If MASK is 'heuristic' or `(heuristic BG)', build a clipping mask for
the image, so that the background of a frame is visible behind the
image. If BG is not specified, or if BG is t, determine the
background color of the image by looking at the 4 corners of the
`:file FILE'
Load image from FILE. If FILE is not absolute after expanding it,
-search for the image in `data-directory'. Some image types support
+search for the image in 'data-directory'. Some image types support
building images from data. When this is done, no `:file' property
may be present in the image specification.
`:data DATA'
Get image data from DATA. (As of this writing, this is not yet
-supported for image type `postscript'). Either :file or :data may be
+supported for image type 'postscript'). Either :file or :data may be
present in an image specification, but not both. All image types
support strings as DATA, some types allow additional types of DATA.
*** Supported image types
-**** XBM, image type `xbm'.
+**** XBM, image type 'xbm'.
XBM images don't require an external library. Additional image
properties supported are:
height may be specified in this case because these are defined
in the file.
-**** XPM, image type `xpm'
+**** XPM, image type 'xpm'
-XPM images require the external library `libXpm', package
+XPM images require the external library 'libXpm', package
`xpm-3.4k.tar.gz', version 3.4k or later. Make sure the library is
found when Emacs is configured by supplying appropriate paths via
-`--x-includes' and `--x-libraries'.
+'--x-includes' and '--x-libraries'.
Additional image properties supported are:
The XPM library uses libz in its implementation so that it is able
to display compressed images.
-**** PBM, image type `pbm'
+**** PBM, image type 'pbm'
PBM images don't require an external library. Color, gray-scale and
mono images are supported. Additional image properties supported for
BG must be a string specifying the image background color, or nil
meaning to use the default. Default is the frame's background color.
-**** JPEG, image type `jpeg'
+**** JPEG, image type 'jpeg'
-Support for JPEG images requires the external library `libjpeg',
+Support for JPEG images requires the external library 'libjpeg',
package `jpegsrc.v6a.tar.gz', or later. There are no additional image
properties defined.
-**** TIFF, image type `tiff'
+**** TIFF, image type 'tiff'
-Support for TIFF images requires the external library `libtiff',
+Support for TIFF images requires the external library 'libtiff',
package `tiff-v3.4-tar.gz', or later. There are no additional image
properties defined.
-**** GIF, image type `gif'
+**** GIF, image type 'gif'
-Support for GIF images requires the external library `libungif', package
+Support for GIF images requires the external library 'libungif', package
`libungif-4.1.0', or later.
Additional image properties supported are:
at point-min in the current buffer, switching between sub-images
every 0.1 seconds.
-(defun show-anim (file max)
- "Display multi-image GIF file FILE which contains MAX subimages."
- (display-anim (current-buffer) file 0 max t))
+ (defun show-anim (file max)
+ "Display multi-image GIF file FILE which contains MAX subimages."
+ (display-anim (current-buffer) file 0 max t))
-(defun display-anim (buffer file idx max first-time)
- (when (= idx max)
- (setq idx 0))
- (let ((img (create-image file nil nil :index idx)))
- (save-excursion
- (set-buffer buffer)
- (goto-char (point-min))
- (unless first-time (delete-char 1))
- (insert-image img "x"))
- (run-with-timer 0.1 nil 'display-anim buffer file (1+ idx) max nil)))
+ (defun display-anim (buffer file idx max first-time)
+ (when (= idx max)
+ (setq idx 0))
+ (let ((img (create-image file nil nil :index idx)))
+ (with-current-buffer buffer
+ (goto-char (point-min))
+ (unless first-time (delete-char 1))
+ (insert-image img "x"))
+ (run-with-timer 0.1 nil 'display-anim buffer file (1+ idx) max nil)))
-**** PNG, image type `png'
+**** PNG, image type 'png'
-Support for PNG images requires the external library `libpng',
+Support for PNG images requires the external library 'libpng',
package `libpng-1.0.2.tar.gz', or later. There are no additional image
properties defined.
-**** Ghostscript, image type `postscript'.
+**** Ghostscript, image type 'postscript'.
Additional image properties supported are:
`:bounding-box BOX'
BOX must be a list or vector of 4 integers giving the bounding box of
-the PS image, analogous to the `BoundingBox' comment found in PS
+the PS image, analogous to the 'BoundingBox' comment found in PS
files. This is an required property.
Part of the Ghostscript interface is implemented in Lisp. See
*** Lisp interface.
-The variable `image-types' contains a list of those image types
+The variable 'image-types' contains a list of those image types
which are supported in the current configuration.
Images are stored in an image cache and removed from the cache when
-they haven't been displayed for `image-cache-eviction-delay seconds.
-The function `clear-image-cache' can be used to clear the image cache
-manually. Images in the cache are compared with `equal', i.e. all
-images with `equal' specifications share the same image.
+they haven't been displayed for 'image-cache-eviction-delay' seconds.
+The function 'clear-image-cache' can be used to clear the image cache
+manually. Images in the cache are compared with 'equal', i.e. all
+images with 'equal' specifications share the same image.
*** Simplified image API, image.el
The new Lisp package image.el contains functions that simplify image
-creation and putting images into text. The function `create-image'
-can be used to create images. The macro `defimage' can be used to
+creation and putting images into text. The function 'create-image'
+can be used to create images. The macro 'defimage' can be used to
define an image based on available image types. The functions
-`put-image' and `insert-image' can be used to insert an image into a
+'put-image' and 'insert-image' can be used to insert an image into a
buffer.
** Display margins.
and images.
To give a window margins, either set the buffer-local variables
-`left-margin-width' and `right-margin-width', or call
-`set-window-margins'. The function `window-margins' can be used to
-obtain the current settings. To make `left-margin-width' and
-`right-margin-width' take effect, you must set them before displaying
-the buffer in a window, or use `set-window-buffer' to force an update
+'left-margin-width' and 'right-margin-width', or call
+'set-window-margins'. The function 'window-margins' can be used to
+obtain the current settings. To make 'left-margin-width' and
+'right-margin-width' take effect, you must set them before displaying
+the buffer in a window, or use 'set-window-buffer' to force an update
of the display margins.
-You can put text in margins by giving it a `display' text property
+You can put text in margins by giving it a 'display' text property
containing a pair of the form `(LOCATION . VALUE)', where LOCATION is
-one of `left-margin' or `right-margin' or nil. VALUE can be either a
+one of 'left-margin' or 'right-margin' or nil. VALUE can be either a
string, an image specification or a stretch specification (see later
in this file).
Emacs displays short help messages in the echo area, when the mouse
moves over a tool-bar item or a piece of text that has a text property
-`help-echo'. This feature also applies to strings in the mode line
-that have a `help-echo' property.
+'help-echo'. This feature also applies to strings in the mode line
+that have a 'help-echo' property.
-If the value of the `help-echo' property is a function, that function
+If the value of the 'help-echo' property is a function, that function
is called with three arguments WINDOW, OBJECT and POSITION. WINDOW is
the window in which the help was found.
If OBJECT is a buffer, POS is the position in the buffer where the
-`help-echo' text property was found.
+'help-echo' text property was found.
-If OBJECT is an overlay, that overlay has a `help-echo' property, and
+If OBJECT is an overlay, that overlay has a 'help-echo' property, and
POS is the position in the overlay's buffer under the mouse.
If OBJECT is a string (an overlay string or a string displayed with
-the `display' property), POS is the position in that string under the
+the 'display' property), POS is the position in that string under the
mouse.
-If the value of the `help-echo' property is neither a function nor a
+If the value of the 'help-echo' property is neither a function nor a
string, it is evaluated to obtain a help string.
For tool-bar and menu-bar items, their key definition is used to
For tool-bar items without a help form, the caption of the item is
used as help string.
-The hook `show-help-function' can be set to a function that displays
+The hook 'show-help-function' can be set to a function that displays
the help string differently. For example, enabling a tooltip window
causes the help display to appear there instead of in the echo area.
The display of text in windows can be scrolled smoothly in pixels.
This is useful, for example, for making parts of large images visible.
-The function `window-vscroll' returns the current value of vertical
+The function 'window-vscroll' returns the current value of vertical
scrolling, a non-negative fraction of the canonical character height.
-The function `set-window-vscroll' can be used to set the vertical
+The function 'set-window-vscroll' can be used to set the vertical
scrolling value. Here is an example of how these function might be
used.
(set-window-vscroll (selected-window)
(- (window-vscroll) 0.5)))))
-** New hook `fontification-functions'.
+** New hook 'fontification-functions'.
-Functions from `fontification-functions' are called from redisplay
+Functions from 'fontification-functions' are called from redisplay
when it encounters a region of text that is not yet fontified. This
variable automatically becomes buffer-local when set. Each function
is called with one argument, POS.
At least one of the hook functions should fontify one or more
characters starting at POS in the current buffer. It should mark them
-as fontified by giving them a non-nil value of the `fontified' text
+as fontified by giving them a non-nil value of the 'fontified' text
property. It may be reasonable for these functions to check for the
-`fontified' property and not put it back on, but they do not have to.
+'fontified' property and not put it back on, but they do not have to.
** Tool bar support.
Emacs supports a tool bar at the top of a frame under X. The frame
-parameter `tool-bar-lines' (X resource "toolBar", class "ToolBar")
+parameter 'tool-bar-lines' (X resource "toolBar", class "ToolBar")
controls how may lines to reserve for the tool bar. A zero value
suppresses the tool bar. If the value is non-zero and
-`auto-resize-tool-bars' is non-nil the tool bar's size will be changed
+'auto-resize-tool-bars' is non-nil the tool bar's size will be changed
automatically so that all tool bar items are visible.
*** Tool bar item definitions
-Tool bar items are defined using `define-key' with a prefix-key
-`tool-bar'. For example `(define-key global-map [tool-bar item1] ITEM)'
+Tool bar items are defined using 'define-key' with a prefix-key
+'tool-bar'. For example `(define-key global-map [tool-bar item1] ITEM)'
where ITEM is a list `(menu-item CAPTION BINDING PROPS...)'.
CAPTION is the caption of the item, If it's not a string, it is
Gives a help string to display for the tool bar item. This help
is displayed when the mouse is moved over the item.
-The function `toolbar-add-item' is a convenience function for adding
-toolbar items generally, and `tool-bar-add-item-from-menu' can be used
+The function 'toolbar-add-item' is a convenience function for adding
+toolbar items generally, and 'tool-bar-add-item-from-menu' can be used
to define a toolbar item with a binding copied from an item on the
menu bar.
The default bindings use a menu-item :filter to derive the tool-bar
-dynamically from variable `tool-bar-map' which may be set
+dynamically from variable 'tool-bar-map' which may be set
buffer-locally to override the global map.
*** Tool-bar-related variables.
-If `auto-resize-tool-bar' is non-nil, the tool bar will automatically
+If 'auto-resize-tool-bar' is non-nil, the tool bar will automatically
resize to show all defined tool bar items. It will never grow larger
than 1/4 of the frame's size.
-If `auto-raise-tool-bar-buttons' is non-nil, tool bar buttons will be
+If 'auto-raise-tool-bar-buttons' is non-nil, tool bar buttons will be
raised when the mouse moves over them.
You can add extra space between tool bar items by setting
-`tool-bar-button-margin' to a positive integer specifying a number of
+'tool-bar-button-margin' to a positive integer specifying a number of
pixels, or a pair of integers (X . Y) specifying horizontal and
vertical margins . Default is 1.
You can change the shadow thickness of tool bar buttons by setting
-`tool-bar-button-relief' to an integer. Default is 3.
+'tool-bar-button-relief' to an integer. Default is 3.
*** Tool-bar clicks with modifiers.
(define-key global-map [tool-bar S-shell] 'some-command)
-makes a binding to run `some-command' for a shifted click on the same
+makes a binding to run 'some-command' for a shifted click on the same
item.
** Mode line changes.
*** Mouse-sensitive mode line.
The mode line can be made mouse-sensitive by displaying strings there
-that have a `local-map' text property. There are three ways to display
-a string with a `local-map' property in the mode line.
+that have a 'local-map' text property. There are three ways to display
+a string with a 'local-map' property in the mode line.
1. The mode line spec contains a variable whose string value has
-a `local-map' text property.
+a 'local-map' text property.
2. The mode line spec contains a format specifier (e.g. `%12b'), and
-that format specifier has a `local-map' property.
+that format specifier has a 'local-map' property.
3. The mode line spec contains a list containing `:eval FORM'. FORM
is evaluated. If the result is a string, and that string has a
-`local-map' property.
+'local-map' property.
-The same mechanism is used to determine the `face' and `help-echo'
+The same mechanism is used to determine the 'face' and 'help-echo'
properties of strings in the mode line. See `bindings.el' for an
example.
*** A headerline can now be displayed at the top of a window.
This mode line's contents are controlled by the new variable
-`header-line-format' and `default-header-line-format' which are
-completely analogous to `mode-line-format' and
-`default-mode-line-format'. A value of nil means don't display a top
+'header-line-format' and 'default-header-line-format' which are
+completely analogous to 'mode-line-format' and
+'default-mode-line-format'. A value of nil means don't display a top
line.
The appearance of top mode lines is controlled by the face
-`header-line'.
+'header-line'.
-The function `coordinates-in-window-p' returns `header-line' for a
+The function 'coordinates-in-window-p' returns 'header-line' for a
position in the header-line.
-** Text property `display'
+** Text property 'display'
-The `display' text property is used to insert images into text,
+The 'display' text property is used to insert images into text,
replace text with other text, display text in marginal area, and it is
also used to control other aspects of how text displays. The value of
-the `display' property should be a display specification, as described
+the 'display' property should be a display specification, as described
below, or a list or vector containing display specifications.
*** Replacing text, displaying text in marginal areas
-To replace the text having the `display' property with some other
+To replace the text having the 'display' property with some other
text, use a display specification of the form `(LOCATION STRING)'.
If LOCATION is `(margin left-margin)', STRING is displayed in the left
properties described below.
The display of the fractional space replaces the display of the
-characters having the `display' property.
+characters having the 'display' property.
- :width WIDTH
Specifies that the width of the stretch should be computed from the
first character in a group of consecutive characters that have the
-same `display' property. The computation is done by multiplying the
+same 'display' property. The computation is done by multiplying the
width of that character by FACTOR.
- :align-to HPOS
- :relative-height FACTOR
The height of the space is computed as the product of the height
-of the text having the `display' property and FACTOR.
+of the text having the 'display' property and FACTOR.
- :ascent ASCENT
A display specification for an image has the form `(LOCATION
. IMAGE)', where IMAGE is an image specification. The image replaces,
in the display, the characters having this display specification in
-their `display' text property. If LOCATION is `(margin left-margin)',
+their 'display' text property. If LOCATION is `(margin left-margin)',
the image will be displayed in the left marginal area, if it is
`(margin right-margin)' it will be displayed in the right marginal
area, and if LOCATION is `(margin nil)' the image will be displayed in
height as argument. The function should return the new height to use.
Otherwise, HEIGHT is evaluated to get the new height, with the symbol
-`height' bound to the current specified font height.
+'height' bound to the current specified font height.
- (raise FACTOR)
font's height. If it is positive, that means to display the characters
raised. If it is negative, that means to display them lower down. The
amount of raising or lowering is computed without taking account of the
-`height' subproperty.
+'height' subproperty.
*** Conditional display properties
All display specifications can be conditionalized. If a specification
has the form `(when CONDITION . SPEC)', the specification SPEC applies
only when CONDITION yields a non-nil value when evaluated. During the
-evaluation, `object' is bound to the string or buffer having the
-conditional display property; `position' and `buffer-position' are
-bound to the position within `object' and the buffer position where
+evaluation, 'object' is bound to the string or buffer having the
+conditional display property; 'position' and 'buffer-position' are
+bound to the position within 'object' and the buffer position where
the display property was found, respectively. Both positions can be
different when object is a string.
treated like before. In addition, the following item names are used
to specify other menu separator types.
-- `--no-line' or `--space', or `--:space', or `--:noLine'
+- '--no-line' or '--space', or `--:space', or `--:noLine'
No separator lines are drawn, but a small space is inserted where the
separator occurs.
-- `--single-line' or `--:singleLine'
+- '--single-line' or `--:singleLine'
A single line in the menu's foreground color.
-- `--double-line' or `--:doubleLine'
+- '--double-line' or `--:doubleLine'
A double line in the menu's foreground color.
-- `--single-dashed-line' or `--:singleDashedLine'
+- '--single-dashed-line' or `--:singleDashedLine'
A single dashed line in the menu's foreground color.
-- `--double-dashed-line' or `--:doubleDashedLine'
+- '--double-dashed-line' or `--:doubleDashedLine'
A double dashed line in the menu's foreground color.
-- `--shadow-etched-in' or `--:shadowEtchedIn'
+- '--shadow-etched-in' or `--:shadowEtchedIn'
A single line with 3D sunken appearance. This is the form
displayed for item names consisting of dashes only.
-- `--shadow-etched-out' or `--:shadowEtchedOut'
+- '--shadow-etched-out' or `--:shadowEtchedOut'
A single line with 3D raised appearance.
-- `--shadow-etched-in-dash' or `--:shadowEtchedInDash'
+- '--shadow-etched-in-dash' or `--:shadowEtchedInDash'
A single dashed line with 3D sunken appearance.
-- `--shadow-etched-out-dash' or `--:shadowEtchedOutDash'
+- '--shadow-etched-out-dash' or `--:shadowEtchedOutDash'
A single dashed line with 3D raise appearance.
-- `--shadow-double-etched-in' or `--:shadowDoubleEtchedIn'
+- '--shadow-double-etched-in' or `--:shadowDoubleEtchedIn'
Two lines with 3D sunken appearance.
-- `--shadow-double-etched-out' or `--:shadowDoubleEtchedOut'
+- '--shadow-double-etched-out' or `--:shadowDoubleEtchedOut'
Two lines with 3D raised appearance.
-- `--shadow-double-etched-in-dash' or `--:shadowDoubleEtchedInDash'
+- '--shadow-double-etched-in-dash' or `--:shadowDoubleEtchedInDash'
Two dashed lines with 3D sunken appearance.
-- `--shadow-double-etched-out-dash' or `--:shadowDoubleEtchedOutDash'
+- '--shadow-double-etched-out-dash' or `--:shadowDoubleEtchedOutDash'
Two dashed lines with 3D raised appearance.
** New frame parameters for scroll bar colors.
-The new frame parameters `scroll-bar-foreground' and
-`scroll-bar-background' can be used to change scroll bar colors.
+The new frame parameters 'scroll-bar-foreground' and
+'scroll-bar-background' can be used to change scroll bar colors.
Their value must be either a color name, a string, or nil to specify
that scroll bars should use a default color. For toolkit scroll bars,
default colors are toolkit specific. For non-toolkit scroll bars, the
default background is the background color of the frame, and the
default foreground is black.
-The X resource name of these parameters are `scrollBarForeground'
-(class ScrollBarForeground) and `scrollBarBackground' (class
-`ScrollBarBackground').
+The X resource name of these parameters are 'scrollBarForeground'
+(class ScrollBarForeground) and 'scrollBarBackground' (class
+'ScrollBarBackground').
Setting these parameters overrides toolkit specific X resource
settings for scroll bar colors.
-** You can set `redisplay-dont-pause' to a non-nil value to prevent
+** You can set 'redisplay-dont-pause' to a non-nil value to prevent
display updates from being interrupted when input is pending.
** Changing a window's width may now change its window start if it
line as the start of the screen line with the minimum distance from
the original window start.
-** The variable `hscroll-step' and the functions
-`hscroll-point-visible' and `hscroll-window-column' have been removed
+** The variable 'hscroll-step' and the functions
+'hscroll-point-visible' and 'hscroll-window-column' have been removed
now that proper horizontal scrolling is implemented.
** Windows can now be made fixed-width and/or fixed-height.
A window is fixed-size if its buffer has a buffer-local variable
-`window-size-fixed' whose value is not nil. A value of `height' makes
-windows fixed-height, a value of `width' makes them fixed-width, any
+'window-size-fixed' whose value is not nil. A value of 'height' makes
+windows fixed-height, a value of 'width' makes them fixed-width, any
other non-nil value makes them both fixed-width and fixed-height.
The following code makes all windows displaying the current buffer
A call to enlarge-window on a window gives an error if that window is
fixed-width and it is tried to change the window's width, or if the
window is fixed-height, and it is tried to change its height. To
-change the size of a fixed-size window, bind `window-size-fixed'
+change the size of a fixed-size window, bind 'window-size-fixed'
temporarily to nil, for example
(let ((window-size-fixed nil))
** The cursor-type frame parameter is now supported on MS-DOS
terminals. When Emacs starts, it by default changes the cursor shape
-to a solid box, as it does on Unix. The `cursor-type' frame parameter
+to a solid box, as it does on Unix. The 'cursor-type' frame parameter
overrides this as it does on Unix, except that the bar cursor is
horizontal rather than vertical (since the MS-DOS display doesn't
support a vertical-bar cursor).
See files NEWS.21, NEWS.20, NEWS.19, NEWS.18, and NEWS.1-17 for changes
in older Emacs versions.
-You can narrow news to a specific version by calling `view-emacs-news'
+You can narrow news to a specific version by calling 'view-emacs-news'
with a prefix argument or by typing C-u C-h C-n.
\f
* About external Lisp packages
older packages.
Some specific packages that are known to cause problems are given
-below. Emacs tries to warn you about these through `bad-packages-alist'.
+below. Emacs tries to warn you about these through 'bad-packages-alist'.
** Semantic (used by CEDET, ECB, JDEE): upgrade to latest version.
* Changes in Emacs 22.2
-** `describe-project' is renamed to `describe-gnu-project'.
+** 'describe-project' is renamed to 'describe-gnu-project'.
-** `view-todo' is renamed to `view-emacs-todo'.
+** 'view-todo' is renamed to 'view-emacs-todo'.
-** `find-name-dired' now uses -iname rather than -name
+** 'find-name-dired' now uses -iname rather than -name
for case-insensitive filesystems. The default behavior is determined
-by the value of `read-file-name-completion-ignore-case'; if you don't
-like that, customize the value of the new option `find-name-arg'.
+by the value of 'read-file-name-completion-ignore-case'; if you don't
+like that, customize the value of the new option 'find-name-arg'.
** In Image mode, whenever the displayed image is wider and/or higher
than the window, the usual keys for moving the cursor cause the image
Windows to cause focus to follow the mouse will now need to explicitly set
this variable.
-** `bad-packages-alist' will warn about external packages that are known
+** 'bad-packages-alist' will warn about external packages that are known
to cause problems in this version of Emacs.
-** The values of `dired-recursive-deletes' and `dired-recursive-copies'
-have been changed to `top'. This means that the user is asked once,
+** The values of 'dired-recursive-deletes' and 'dired-recursive-copies'
+have been changed to 'top'. This means that the user is asked once,
before deleting/copying the indicated directory recursively.
-** `browse-url-emacs' loads a URL into an Emacs buffer. Handy for *.el URLs.
+** 'browse-url-emacs' loads a URL into an Emacs buffer. Handy for *.el URLs.
** The command gdba has been removed as gdb works now for those cases where it
was needed. In text command mode, if you have problems before execution has
** desktop.el now detects conflicting uses of the desktop file.
When loading the desktop, desktop.el can now detect that the file is already
in use. The default behavior is to ask the user what to do, but you can
-customize it with the new option `desktop-load-locked-desktop'. When saving,
+customize it with the new option 'desktop-load-locked-desktop'. When saving,
desktop.el warns about attempts to overwrite a desktop file if it determines
that the desktop being saved is not an update of the one on disk.
** Compilation mode now correctly respects the value of
-`compilation-scroll-output' between invocations. Previously, output
+'compilation-scroll-output' between invocations. Previously, output
was mistakenly scrolled on compiles after the first. Customize
-`compilation-scroll-output' if you want to retain the scrolling.
+'compilation-scroll-output' if you want to retain the scrolling.
-** `font-lock-comment-face' no longer differs from the default on
+** 'font-lock-comment-face' no longer differs from the default on
displays with fewer than 16 colors and dark background (e.g. older
xterms and the Linux console). On such displays, only the comment
delimiters will appear to be fontified (in the new face
-`font-lock-comment-delimiter-face'). To restore the old appearance,
-customize `font-lock-comment-face'. Another alternative is to use a
+'font-lock-comment-delimiter-face'). To restore the old appearance,
+customize 'font-lock-comment-face'. Another alternative is to use a
newer terminal emulator that supports more colors (256 is now common).
For example, for xterm compatible emulators that support 256 colors,
you can run emacs like this:
* New Modes and Packages in Emacs 22.2
-** bibtex-style-mode helps you write BibTeX's *.bst files.
+** 'bibtex-style-mode' helps you write BibTeX's *.bst files.
-** The new package css-mode.el provides a major mode for editing CSS files.
+** The new package 'css-mode' provides a major mode for editing CSS files.
-** The new package vera-mode.el provides a major mode for editing Vera files.
+** The new package 'vera-mode' provides a major mode for editing Vera files.
-** The new package verilog-mode.el provides a major mode for editing Verilog files.
+** The new package 'verilog-mode' provides a major mode for editing Verilog files.
** The new package socks.el implements the SOCKS v5 protocol.
* Incompatible Lisp Changes in Emacs 22.2
-** shell.el no longer defines the aliases `dirtrack-toggle' and
-`dirtrack-mode' for `shell-dirtrack-mode'. These names were removed
+** shell.el no longer defines the aliases 'dirtrack-toggle' and
+'dirtrack-mode' for 'shell-dirtrack-mode'. These names were removed
because they clash with commands provided by dirtrack.el. Use
-`shell-dirtrack-mode' instead.
+'shell-dirtrack-mode' instead.
* Lisp Changes in Emacs 22.2.
** Frame-local variables are deprecated and are slated for removal.
-They can easily be emulated. Rather than calling `make-variable-frame-local'
+They can easily be emulated. Rather than calling 'make-variable-frame-local'
and accessing the variable value directly, explicitly check for a
-frame-parameter, and if there is one, use its value in preference to
+'frame-parameter', and if there is one, use its value in preference to
that of the variable. Note that buffer-local values should take
-precedence over frame-local ones, so you may wish to check `local-variable-p'
+precedence over frame-local ones, so you may wish to check 'local-variable-p'
first.
-** The function invisible-p returns non-nil if the character
+** The function 'invisible-p' returns non-nil if the character
after a specified position is invisible.
-** inhibit-modification-hooks is bound to t while running modification hooks.
+** 'inhibit-modification-hooks' is bound to t while running modification hooks.
As a happy consequence, after-change-functions and before-change-functions
are not bound to nil any more while running an (after|before)-change-function.
-** New function `window-full-width-p' returns t if a window is as wide
+** New function 'window-full-width-p' returns t if a window is as wide
as its frame.
-** The new function `image-refresh' refreshes all images associated
+** The new function 'image-refresh' refreshes all images associated
with a given image specification.
-** The new function `combine-and-quote-strings' concatenates a list of strings
+** The new function 'combine-and-quote-strings' concatenates a list of strings
using a specified separator. If a string contains double quotes, they
are escaped in the output.
-** The new function `split-string-and-unquote' performs the inverse operation to
-`combine-and-quote-strings', i.e. splits a single string into a list
-of strings, undoing any quoting added by `combine-and-quote-strings'.
+** The new function 'split-string-and-unquote' performs the inverse operation to
+'combine-and-quote-strings', i.e. splits a single string into a list
+of strings, undoing any quoting added by 'combine-and-quote-strings'.
(For some separator/string combinations, the original strings cannot
be recovered.)
\f
* Installation Changes in Emacs 22.1
-** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk'
+** You can build Emacs with Gtk+ widgets by specifying '--with-x-toolkit=gtk'
when you run configure. This requires Gtk+ 2.4 or newer. This port
provides a way to display multilingual text in menus (with some caveats).
See the files mac/README and mac/INSTALL for build instructions.
** Mac OS 9 port now uses the Carbon API by default. You can also
-create a non-Carbon build by specifying `NonCarbon' as a target. See
+create a non-Carbon build by specifying 'NonCarbon' as a target. See
the files mac/README and mac/INSTALL for build instructions.
** Support for a Cygwin build of Emacs was added.
** New translations of the Emacs Tutorial are available in the
following languages: Brazilian Portuguese, Bulgarian, Chinese (both
with simplified and traditional characters), French, Russian, and
-Italian. Type `C-u C-h t' to choose one of them in case your language
+Italian. Type 'C-u C-h t' to choose one of them in case your language
setup doesn't automatically select the right one.
** New translations of the Emacs reference card are available in the
Brazilian Portuguese and Russian. The corresponding PostScript files
are also included.
-** A French translation of the `Emacs Survival Guide' is available.
+** A French translation of the 'Emacs Survival Guide' is available.
-** Emacs now supports new configure options `--program-prefix',
-`--program-suffix' and `--program-transform-name' that affect the names of
+** Emacs now supports new configure options '--program-prefix',
+'--program-suffix' and '--program-transform-name' that affect the names of
installed programs.
** By default, Emacs now uses a setgid helper program to update game
scores. The directory ${localstatedir}/games/emacs is the normal
place for game scores to be stored. You can control this with the
-configure option `--with-game-dir'. The specific user that Emacs uses
-to own the game scores is controlled by `--with-game-user'. If access
+configure option '--with-game-dir'. The specific user that Emacs uses
+to own the game scores is controlled by '--with-game-user'. If access
to a game user is not available, then scores will be stored separately
in each user's home directory.
** Emacs now includes support for loading image libraries on demand.
(Currently this feature is only used on MS Windows.) You can configure
the supported image types and their associated dynamic libraries by
-setting the variable `image-library-alist'.
+setting the variable 'image-library-alist'.
** Emacs can now be built without sound support.
-** Emacs Lisp source files are compressed by default if `gzip' is available.
+** Emacs Lisp source files are compressed by default if 'gzip' is available.
** All images used in Emacs have been consolidated in etc/images and subdirs.
-See also the changes to `find-image', documented below.
+See also the changes to 'find-image', documented below.
** Emacs comes with a new set of icons.
These icons are displayed on the taskbar and/or titlebar when Emacs
into the Emacs executable; see gnu.h in the source tree. On MS
Windows, see nt/icons/emacs.ico.)
-** The `emacsserver' program has been removed, replaced with Lisp code.
+** The 'emacsserver' program has been removed, replaced with Lisp code.
-** The `yow' program has been removed.
+** The 'yow' program has been removed.
Use the corresponding Emacs feature instead.
** The Emacs terminal emulation in term.el uses a different terminfo name.
** Emacs can now be invoked in full-screen mode on a windowed display.
When Emacs is invoked on a window system, the new command-line options
-`--fullwidth', `--fullheight', and `--fullscreen' produce a frame
+'--fullwidth', '--fullheight', and '--fullscreen' produce a frame
whose width, height, or both width and height take up the entire
screen size. (For now, this does not work with some window managers.)
** Emacs now displays a splash screen by default even if command-line
arguments were given. The new command-line option --no-splash
disables the splash screen; see also the variable
-`inhibit-splash-screen' (which is also aliased as
-`inhibit-startup-message').
+'inhibit-splash-screen' (which is also aliased as
+'inhibit-startup-message').
-** New user option `inhibit-startup-buffer-menu'.
-When loading many files, for instance with `emacs *', Emacs normally
+** New user option 'inhibit-startup-buffer-menu'.
+When loading many files, for instance with 'emacs *', Emacs normally
displays a buffer menu. This option turns the buffer menu off.
** New command line option -nbc or --no-blinking-cursor disables
now reads arguments for the function interactively if it is
an interactively callable function.
-** The option --directory DIR now modifies `load-path' immediately.
-Directories are added to the front of `load-path' in the order they
+** The option --directory DIR now modifies 'load-path' immediately.
+Directories are added to the front of 'load-path' in the order they
appear on the command line. For example, with this command line:
emacs -batch -L .. -L /tmp --eval "(require 'foo)"
-Emacs looks for library `foo' in the parent directory, then in /tmp, then
-in the other directories in `load-path'. (-L is short for --directory.)
+Emacs looks for library 'foo' in the parent directory, then in /tmp, then
+in the other directories in 'load-path'. (-L is short for --directory.)
** When you specify a frame size with --geometry, the size applies to
all frames you create. A position specified with --geometry only
automatically at startup, if it exists. When Emacs offers to save
modified buffers, it saves the abbrevs too if they have changed. It
can do this either silently or asking for confirmation first,
-according to the value of `save-abbrevs'.
+according to the value of 'save-abbrevs'.
** New command line option -Q or --quick.
This is like using -q --no-site-file, but in addition it also disables
options --no-bitmap-icon, -nbi to turn the bitmap icon off.
** If the environment variable EMAIL is defined, Emacs now uses its value
-to compute the default value of `user-mail-address', in preference to
-concatenation of `user-login-name' with the name of your host machine.
+to compute the default value of 'user-mail-address', in preference to
+concatenation of 'user-login-name' with the name of your host machine.
\f
* Incompatible Editing Changes in Emacs 22.1
See below for more details.
** When the undo information of the current command gets really large
-(beyond the value of `undo-outer-limit'), Emacs discards it and warns
+(beyond the value of 'undo-outer-limit'), Emacs discards it and warns
you about it.
** When Emacs prompts for file names, SPC no longer completes the file name.
See below under "incremental search changes".
** M-g is now a prefix key.
-M-g g and M-g M-g run goto-line.
-M-g n and M-g M-n run next-error (like C-x `).
-M-g p and M-g M-p run previous-error.
+M-g g and M-g M-g run 'goto-line'.
+M-g n and M-g M-n run 'next-error' (like C-x `).
+M-g p and M-g M-p run 'previous-error'.
** C-u M-g M-g switches to the most recent previous buffer,
and goes to the specified line in that buffer.
You can get the old behavior by typing C-x C-f M-n RET, which fetches
the actual file name into the minibuffer.
-** In Dired's ! command (dired-do-shell-command), `*' and `?' now
+** In Dired's ! command (dired-do-shell-command), '*' and '?' now
control substitution of the file names only when they are surrounded
by whitespace. This means you can now use them as shell wildcards
-too. If you want to use just plain `*' as a wildcard, type `*""'; the
+too. If you want to use just plain '*' as a wildcard, type '*""'; the
doublequotes make no difference in the shell, but they prevent
-special treatment in `dired-do-shell-command'.
+special treatment in 'dired-do-shell-command'.
** The info-search bindings on C-h C-f, C-h C-k and C-h C-i
have been moved to C-h F, C-h K and C-h S.
-** `apply-macro-to-region-lines' now operates on all lines that begin
+** 'apply-macro-to-region-lines' now operates on all lines that begin
in the region, rather than on all complete lines in the region.
-** line-move-ignore-invisible now defaults to t.
+** 'line-move-ignore-invisible' now defaults to t.
** Adaptive filling misfeature removed.
-It no longer treats `NNN.' or `(NNN)' as a prefix.
+It no longer treats 'NNN.' or '(NNN)' as a prefix.
** The old bindings C-M-delete and C-M-backspace have been deleted,
since there are situations where one or the other will shut down
** The register compatibility key bindings (deprecated since Emacs 19)
have been removed:
- C-x / point-to-register (Use: C-x r SPC)
- C-x j jump-to-register (Use: C-x r j)
- C-x x copy-to-register (Use: C-x r s)
- C-x g insert-register (Use: C-x r i)
+ C-x / 'point-to-register' (Use: C-x r SPC)
+ C-x j 'jump-to-register' (Use: C-x r j)
+ C-x x 'copy-to-register' (Use: C-x r s)
+ C-x g 'insert-register' (Use: C-x r i)
\f
* Editing Changes in Emacs 22.1
not make !MEM FULL! disappear, you should save your work and start
a new Emacs.
-** `undo-only' does an undo which does not redo any previous undo.
+** 'undo-only' does an undo which does not redo any previous undo.
** Yanking text now discards certain text properties that can
be inconvenient when you did not expect them. The variable
-`yank-excluded-properties' specifies which ones. Insertion
+'yank-excluded-properties' specifies which ones. Insertion
of register contents and rectangles also discards these properties.
-** New command `kill-whole-line' kills an entire line at once.
+** New command 'kill-whole-line' kills an entire line at once.
By default, it is bound to C-S-<backspace>.
** M-SPC (just-one-space) when given a numeric argument N
but does not switch to that frame. It's the multi-frame
analogue of C-x 4 C-o.
-** `special-display-buffer-names' and `special-display-regexps' now
-understand two new boolean pseudo-frame-parameters `same-frame' and
-`same-window'.
+** 'special-display-buffer-names' and 'special-display-regexps' now
+understand two new boolean pseudo-frame-parameters 'same-frame' and
+'same-window'.
** New commands to operate on pairs of open and close characters:
-`insert-pair', `delete-pair', `raise-sexp'.
+'insert-pair', 'delete-pair', 'raise-sexp'.
** M-x setenv now expands environment variable references.
-Substrings of the form `$foo' and `${foo}' in the specified new value
-now refer to the value of environment variable foo. To include a `$'
-in the value, use `$$'.
+Substrings of the form '$foo' and '${foo}' in the specified new value
+now refer to the value of environment variable foo. To include a '$'
+in the value, use '$$'.
-** The default values of paragraph-start and indent-line-function have
+** The default values of 'paragraph-start' and 'indent-line-function' have
been changed to reflect those used in Text mode rather than those used
in Paragraph-Indent Text mode.
C-h e displays the *Messages* buffer.
-C-h d runs apropos-documentation.
+C-h d runs 'apropos-documentation'.
C-h r visits the Emacs Manual in Info.
be present for an item to match. Regular expression matching is still
available.
-*** The new option `apropos-sort-by-scores' causes the matching items
+*** The new option 'apropos-sort-by-scores' causes the matching items
to be sorted according to their score. The score for an item is a
number calculated to indicate how well the item matches the words or
regular expression that you entered to the apropos command. The best
match is listed first, and the calculated score is shown for each
matching item.
-*** Help commands `describe-function' and `describe-key' now show function
+*** Help commands 'describe-function' and 'describe-key' now show function
arguments in lowercase italics on displays that support it. To change the
-default, customize face `help-argument-name' or redefine the function
-`help-default-arg-highlight'.
+default, customize face 'help-argument-name' or redefine the function
+'help-default-arg-highlight'.
*** C-h v and C-h f commands now include a hyperlink to the C source for
variables and functions defined in C (if the C source is available).
*** Help mode now only makes hyperlinks for faces when the face name is
-preceded or followed by the word `face'. It no longer makes
+preceded or followed by the word 'face'. It no longer makes
hyperlinks for variables without variable documentation, unless
-preceded by one of the words `variable' or `option'. It now makes
+preceded by one of the words 'variable' or 'option'. It now makes
hyperlinks to Info anchors (or nodes) if the anchor (or node) name is
-enclosed in single quotes and preceded by `info anchor' or `Info
-anchor' (in addition to earlier `info node' and `Info node'). In
+enclosed in single quotes and preceded by 'info anchor' or 'Info
+anchor' (in addition to earlier 'info node' and 'Info node'). In
addition, it now makes hyperlinks to URLs as well if the URL is
-enclosed in single quotes and preceded by `URL'.
+enclosed in single quotes and preceded by 'URL'.
-*** The new command `describe-char' (C-u C-x =) pops up a buffer with
+*** The new command 'describe-char' (C-u C-x =) pops up a buffer with
description various information about a character, including its
encodings and syntax, its text properties, how to input, overlays, and
widgets at point. You can get more information about some of them, by
clicking on mouse-sensitive areas or moving there and pressing RET.
-*** The command `list-text-properties-at' has been deleted because
+*** The command 'list-text-properties-at' has been deleted because
C-u C-x = gives the same information and more.
-*** New command `display-local-help' displays any local help at point
-in the echo area. It is bound to `C-h .'. It normally displays the
+*** New command 'display-local-help' displays any local help at point
+in the echo area. It is bound to 'C-h .'. It normally displays the
same string that would be displayed on mouse-over using the
-`help-echo' property, but, in certain cases, it can display a more
+'help-echo' property, but, in certain cases, it can display a more
keyboard oriented alternative.
-*** New user option `help-at-pt-display-when-idle' allows you to
-automatically show the help provided by `display-local-help' on
+*** New user option 'help-at-pt-display-when-idle' allows you to
+automatically show the help provided by 'display-local-help' on
point-over, after suitable idle time. The amount of idle time is
-determined by the user option `help-at-pt-timer-delay' and defaults
+determined by the user option 'help-at-pt-timer-delay' and defaults
to one second. This feature is turned off by default.
** Mark command changes:
*** A prefix argument is no longer required to repeat a jump to a
-previous mark if you set `set-mark-command-repeat-pop' to t. I.e. C-u
+previous mark if you set 'set-mark-command-repeat-pop' to t. I.e. C-u
C-SPC C-SPC C-SPC ... cycles through the mark ring. Use C-u C-u C-SPC
to set the mark immediately after a jump.
(mark-paragraph), or C-M-h (mark-defun) repeatedly, the marked region
extends each time, so you can mark the next two sexps with M-C-SPC
M-C-SPC, for example. This feature also works for
-mark-end-of-sentence, if you bind that to a key. It also extends the
+'mark-end-of-sentence', if you bind that to a key. It also extends the
region when the mark is active in Transient Mark mode, regardless of
the last command. To start a new region with one of marking commands
in Transient Mark mode, you can deactivate the active region with C-g,
that alters the buffer, but you can also deactivate the mark by typing
C-g.
-*** Movement commands `beginning-of-buffer', `end-of-buffer',
-`beginning-of-defun', `end-of-defun' do not set the mark if the mark
+*** Movement commands 'beginning-of-buffer', 'end-of-buffer',
+'beginning-of-defun', 'end-of-defun' do not set the mark if the mark
is already active in Transient Mark mode.
*** M-h (mark-paragraph) now accepts a prefix arg.
** Incremental Search changes:
-*** M-% typed in isearch mode invokes `query-replace' or
-`query-replace-regexp' (depending on search mode) with the current
+*** M-% typed in isearch mode invokes 'query-replace' or
+'query-replace-regexp' (depending on search mode) with the current
search string used as the string to replace.
*** C-w in incremental search now grabs either a character or a word,
making the decision in a heuristic way. This new job is done by the
-command `isearch-yank-word-or-char'. To restore the old behavior,
-bind C-w to `isearch-yank-word' in `isearch-mode-map'.
+command 'isearch-yank-word-or-char'. To restore the old behavior,
+bind C-w to 'isearch-yank-word' in 'isearch-mode-map'.
*** C-y in incremental search now grabs the next line if point is already
at the end of a line.
*** C-M-w deletes and C-M-y grabs a character in isearch mode.
-Another method to grab a character is to enter the minibuffer by `M-e'
-and to type `C-f' at the end of the search string in the minibuffer.
+Another method to grab a character is to enter the minibuffer by 'M-e'
+and to type 'C-f' at the end of the search string in the minibuffer.
*** Vertical scrolling is now possible within incremental search.
To enable this feature, customize the new user option
-`isearch-allow-scroll'. User written commands which satisfy stringent
+'isearch-allow-scroll'. User written commands which satisfy stringent
constraints can be marked as "scrolling commands". See the Emacs manual
for details.
-*** Isearch no longer adds `isearch-resume' commands to the command
+*** Isearch no longer adds 'isearch-resume' commands to the command
history by default. To enable this feature, customize the new
-user option `isearch-resume-in-command-history'.
+user option 'isearch-resume-in-command-history'.
** Replace command changes:
-*** When used interactively, the commands `query-replace-regexp' and
-`replace-regexp' allow \,expr to be used in a replacement string,
+*** When used interactively, the commands 'query-replace-regexp' and
+'replace-regexp' allow \,expr to be used in a replacement string,
where expr is an arbitrary Lisp expression evaluated at replacement
-time. `\#' in a replacement string now refers to the count of
+time. '\#' in a replacement string now refers to the count of
replacements already made by the replacement command. All regular
-expression replacement commands now allow `\?' in the replacement
+expression replacement commands now allow '\?' in the replacement
string to specify a position where the replacement string can be
-edited for each replacement. `query-replace-regexp-eval' is now
+edited for each replacement. 'query-replace-regexp-eval' is now
deprecated since it offers no additional functionality.
*** query-replace uses isearch lazy highlighting when the new user option
-`query-replace-lazy-highlight' is non-nil.
+'query-replace-lazy-highlight' is non-nil.
*** The current match in query-replace is highlighted in new face
-`query-replace' which by default inherits from isearch face.
+'query-replace' which by default inherits from isearch face.
-*** New user option `query-replace-skip-read-only': when non-nil,
-`query-replace' and related functions simply ignore
+*** New user option 'query-replace-skip-read-only': when non-nil,
+'query-replace' and related functions simply ignore
a match if part of it has a read-only property.
** Local variables lists:
are not known to be safe, Emacs shows a prompt asking whether to apply
the local variables list as a whole. In earlier versions, a prompt
was only issued for variables explicitly marked as risky (for the
-definition of risky variables, see `risky-local-variable-p').
+definition of risky variables, see 'risky-local-variable-p').
At the prompt, you can choose to save the contents of this local
-variables list to `safe-local-variable-values'. This new customizable
+variables list to 'safe-local-variable-values'. This new customizable
option is a list of variable-value pairs that are known to be safe.
Variables can also be marked as safe with the existing
-`safe-local-variable' property (see `safe-local-variable-p').
+'safe-local-variable' property (see 'safe-local-variable-p').
However, risky variables will not be added to
-`safe-local-variable-values' in this way.
+'safe-local-variable-values' in this way.
-*** The variable `enable-local-variables' controls how local variable
+*** The variable 'enable-local-variables' controls how local variable
lists are handled. t, the default, specifies the standard querying
behavior. :safe means use only safe values, and ignore the rest.
:all means set all variables, whether or not they are safe.
nil means ignore them all. Anything else means always query.
-*** The variable `safe-local-eval-forms' specifies a list of forms that
-are ok to evaluate when they appear in an `eval' local variables
+*** The variable 'safe-local-eval-forms' specifies a list of forms that
+are ok to evaluate when they appear in an 'eval' local variables
specification. Normally Emacs asks for confirmation before evaluating
such a form, but if the form appears in this list, no confirmation is
needed.
-*** If a function has a non-nil `safe-local-eval-function' property,
+*** If a function has a non-nil 'safe-local-eval-function' property,
that means it is ok to evaluate some calls to that function when it
-appears in an `eval' local variables specification. If the property
+appears in an 'eval' local variables specification. If the property
is t, then any form calling that function with constant arguments is
ok. If the property is a function or list of functions, they are called
with the form as argument, and if any returns t, the form is ok to call.
** File operation changes:
-*** Unquoted `$' in file names do not signal an error any more when
+*** Unquoted '$' in file names do not signal an error any more when
the corresponding environment variable does not exist.
-Instead, the `$ENVVAR' text is left as is, so that `$$' quoting
+Instead, the '$ENVVAR' text is left as is, so that '$$' quoting
is only rarely needed.
*** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case.
of specifying the current directory. Normally that means to visit the
directory with Dired.
-*** C-x s (save-some-buffers) now offers an option `d' to diff a buffer
+*** C-x s (save-some-buffers) now offers an option 'd' to diff a buffer
against its file, so you can see what changes you would be saving.
*** Auto Compression mode is now enabled by default.
-*** If the user visits a file larger than `large-file-warning-threshold',
+*** If the user visits a file larger than 'large-file-warning-threshold',
Emacs asks for confirmation.
*** The commands copy-file, rename-file, make-symbolic-link and
*** require-final-newline now has two new possible values:
-`visit' means add a newline (as an undoable change) if it's needed
+'visit' means add a newline (as an undoable change) if it's needed
when visiting the file.
-`visit-save' means add a newline (as an undoable change) if it's
+'visit-save' means add a newline (as an undoable change) if it's
needed when visiting the file, and also add a newline if it's needed
when saving the file.
want to make the buffer writable. (As root, you can in fact alter the
file.)
-*** find-file-read-only visits multiple files in read-only mode,
+*** 'find-file-read-only' visits multiple files in read-only mode,
when the file name contains wildcard characters.
-*** find-alternate-file replaces the current file with multiple files,
+*** 'find-alternate-file' replaces the current file with multiple files,
when the file name contains wildcard characters. It now asks if you
wish save your changes and not just offer to kill the buffer.
-*** When used interactively, `format-write-file' now asks for confirmation
+*** When used interactively, 'format-write-file' now asks for confirmation
before overwriting an existing file, unless a prefix argument is
-supplied. This behavior is analogous to `write-file'.
+supplied. This behavior is analogous to 'write-file'.
-*** The variable `auto-save-file-name-transforms' now has a third element that
-controls whether or not the function `make-auto-save-file-name' will
+*** The variable 'auto-save-file-name-transforms' now has a third element that
+controls whether or not the function 'make-auto-save-file-name' will
attempt to construct a unique auto-save name (e.g. for remote files).
-*** The new option `write-region-inhibit-fsync' disables calls to fsync
-in `write-region'. This can be useful on laptops to avoid spinning up
+*** The new option 'write-region-inhibit-fsync' disables calls to fsync
+in 'write-region'. This can be useful on laptops to avoid spinning up
the hard drive upon each file save. Enabling this variable may result
in data loss, use with care.
*** The new file-name-shadow-mode is turned ON by default, so that when
entering a file name, any prefix which Emacs will ignore is dimmed.
-*** There's a new face `minibuffer-prompt'.
+*** There's a new face 'minibuffer-prompt'.
Emacs adds this face to the list of text properties stored in the
-variable `minibuffer-prompt-properties', which is used to display the
+variable 'minibuffer-prompt-properties', which is used to display the
prompt string.
-*** Enhanced visual feedback in `*Completions*' buffer.
+*** Enhanced visual feedback in '*Completions*' buffer.
Completions lists use faces to highlight what all completions
have in common and where they begin to differ.
The common prefix shared by all possible completions uses the face
-`completions-common-part', while the first character that isn't the
-same uses the face `completions-first-difference'. By default,
-`completions-common-part' inherits from `default', and
-`completions-first-difference' inherits from `bold'. The idea of
-`completions-common-part' is that you can use it to make the common
+'completions-common-part', while the first character that isn't the
+same uses the face 'completions-first-difference'. By default,
+'completions-common-part' inherits from 'default', and
+'completions-first-difference' inherits from 'bold'. The idea of
+'completions-common-part' is that you can use it to make the common
parts less visible than normal, so that the rest of the differing
parts is, by contrast, slightly highlighted.
Above fontification is always done when listing completions is
triggered at minibuffer. If you want to fontify completions whose
listing is triggered at the other normal buffer, you have to pass
-the common prefix of completions to `display-completion-list' as
+the common prefix of completions to 'display-completion-list' as
its second argument.
*** File-name completion can now ignore specified directories.
-If an element of the list in `completion-ignored-extensions' ends in a
-slash `/', it indicates a subdirectory that should be ignored when
-completing file names. Elements of `completion-ignored-extensions'
+If an element of the list in 'completion-ignored-extensions' ends in a
+slash '/', it indicates a subdirectory that should be ignored when
+completing file names. Elements of 'completion-ignored-extensions'
which do not end in a slash are never considered when a completion
candidate is a directory.
-*** New user option `history-delete-duplicates'.
+*** New user option 'history-delete-duplicates'.
If set to t when adding a new history element, all previous identical
elements are deleted from the history list.
** Redisplay changes:
-*** The new face `mode-line-inactive' is used to display the mode line
-of non-selected windows. The `mode-line' face is now used to display
+*** The new face 'mode-line-inactive' is used to display the mode line
+of non-selected windows. The 'mode-line' face is now used to display
the mode line of the currently selected window.
-The new variable `mode-line-in-non-selected-windows' controls whether
-the `mode-line-inactive' face is used.
+The new variable 'mode-line-in-non-selected-windows' controls whether
+the 'mode-line-inactive' face is used.
*** The mode line position information now comes before the major mode.
When the file is maintained under version control, that information
*** You can now customize the use of window fringes. To control this
for all frames, use M-x fringe-mode or the Show/Hide submenu of the
-top-level Options menu, or customize the `fringe-mode' variable. To
+top-level Options menu, or customize the 'fringe-mode' variable. To
control this for a specific frame, use the command M-x
set-fringe-style.
the window can be scrolled.
This behavior is activated by setting the buffer-local variable
-`indicate-buffer-boundaries' to a non-nil value. The default value of
-this variable is found in `default-indicate-buffer-boundaries'.
+'indicate-buffer-boundaries' to a non-nil value. The default value of
+this variable is found in 'default-indicate-buffer-boundaries'.
-If value is `left' or `right', both angle and arrow bitmaps are
+If value is 'left' or 'right', both angle and arrow bitmaps are
displayed in the left or right fringe, resp.
The value can also be an alist which specifies the presence and
displayed between the margins and the buffer's text area, rather than
outside those margins.
-*** New face `escape-glyph' highlights control characters and escape glyphs.
+*** New face 'escape-glyph' highlights control characters and escape glyphs.
*** Non-breaking space and hyphens are now displayed with a special
-face, either nobreak-space or escape-glyph. You can turn this off or
-specify a different mode by setting the variable `nobreak-char-display'.
+face, either 'nobreak-space' or 'escape-glyph'. You can turn this off or
+specify a different mode by setting the variable 'nobreak-char-display'.
*** The parameters of automatic hscrolling can now be customized.
-The variable `hscroll-margin' determines how many columns away from
+The variable 'hscroll-margin' determines how many columns away from
the window edge point is allowed to get before automatic hscrolling
will horizontally scroll the window. The default value is 5.
-The variable `hscroll-step' determines how many columns automatic
+The variable 'hscroll-step' determines how many columns automatic
hscrolling scrolls the window when point gets too close to the
window edge. If its value is zero, the default, Emacs scrolls the
window so as to center point. If its value is an integer, it says how
many columns to scroll. If the value is a floating-point number, it
gives the fraction of the window's width to scroll the window.
-The variable `automatic-hscrolling' was renamed to
-`auto-hscroll-mode'. The old name is still available as an alias.
+The variable 'automatic-hscrolling' was renamed to
+'auto-hscroll-mode'. The old name is still available as an alias.
*** Moving or scrolling through images (and other lines) taller than
the window now works sensibly, by automatically adjusting the window's
To avoid preempting redisplay on fast computers, networks, and displays,
the arrival of new input is now performed at regular intervals during
-redisplay. The new variable `redisplay-preemption-period' specifies
+redisplay. The new variable 'redisplay-preemption-period' specifies
the period; the default is to check for input every 0.1 seconds.
*** The %c and %l constructs are now ignored in frame-title-format.
systems, these constructs often failed to render properly, and could
even cause Emacs to crash.
-*** If value of `auto-resize-tool-bars' is `grow-only', the tool bar
+*** If value of 'auto-resize-tool-bars' is 'grow-only', the tool bar
will expand as needed, but not contract automatically. To contract
the tool bar, you must type C-l.
-*** New customize option `overline-margin' controls the space between
+*** New customize option 'overline-margin' controls the space between
overline and text.
-*** New variable `x-underline-at-descent-line' controls the relative
+*** New variable 'x-underline-at-descent-line' controls the relative
position of the underline. When set, it overrides the
-`x-use-underline-position-properties' variables.
+'x-use-underline-position-properties' variables.
** New faces:
-*** `mode-line-highlight' is the standard face indicating mouse sensitive
-elements on mode-line (and header-line) like `highlight' face on text
+*** 'mode-line-highlight' is the standard face indicating mouse sensitive
+elements on mode-line (and header-line) like 'highlight' face on text
areas.
-*** `mode-line-buffer-id' is the standard face for buffer identification
+*** 'mode-line-buffer-id' is the standard face for buffer identification
parts of the mode line.
-*** `shadow' face defines the appearance of the "shadowed" text, i.e.
+*** 'shadow' face defines the appearance of the "shadowed" text, i.e.
the text which should be less noticeable than the surrounding text.
This can be achieved by using shades of gray in contrast with either
black or white default foreground color. This generic shadow face
allows customization of the appearance of shadowed text in one place,
so package-specific faces can inherit from it.
-*** `vertical-border' face is used for the vertical divider between windows.
+*** 'vertical-border' face is used for the vertical divider between windows.
** Font-Lock (syntax highlighting) changes:
fontification, even those such as Occur, Info, and comint-derived
modes that do their own fontification in a special way.
-The variable `Info-fontify' is no longer applicable; to disable
-fontification in Info, remove `turn-on-font-lock' from
-`Info-mode-hook'.
+The variable 'Info-fontify' is no longer applicable; to disable
+fontification in Info, remove 'turn-on-font-lock' from
+'Info-mode-hook'.
-*** New standard font-lock face `font-lock-comment-delimiter-face'.
+*** New standard font-lock face 'font-lock-comment-delimiter-face'.
This is used for the characters that indicate the start of a comment,
-e.g. `;' in Lisp mode.
+e.g. ';' in Lisp mode.
-*** New standard font-lock face `font-lock-preprocessor-face'.
+*** New standard font-lock face 'font-lock-preprocessor-face'.
*** Easy to overlook single character negation can now be font-locked.
-You can use the new variable `font-lock-negation-char-face' and the face of
-the same name to customize this. Currently the cc-modes, sh-script-mode,
-cperl-mode and make-mode support this.
+You can use the new variable 'font-lock-negation-char-face' and the face of
+the same name to customize this. Currently the cc-modes, 'sh-script-mode',
+'cperl-mode' and 'make-mode' support this.
*** Font-Lock mode: in major modes such as Lisp mode, where some Emacs
features assume that an open-paren in column 0 is always outside of
M-o M-o requests refontification.
*** The default settings for JIT stealth lock parameters are changed.
-The default value for the user option jit-lock-stealth-time is now nil
-instead of 3. This setting of jit-lock-stealth-time disables stealth
+The default value for the user option 'jit-lock-stealth-time' is now nil
+instead of 3. This setting of 'jit-lock-stealth-time' disables stealth
fontification: on today's machines, it may be a bug in font lock
patterns if fontification otherwise noticeably degrades interactivity.
If you find movement in infrequently visited buffers sluggish (and the
major mode maintainer has no better idea), customizing
-jit-lock-stealth-time to a non-nil value will let Emacs fontify
+'jit-lock-stealth-time' to a non-nil value will let Emacs fontify
buffers in the background when it considers the system to be idle.
-jit-lock-stealth-nice is now 0.5 instead of 0.125 which is supposed to
+'jit-lock-stealth-nice' is now 0.5 instead of 0.125 which is supposed to
cause less load than the old defaults.
-*** jit-lock can now be delayed with `jit-lock-defer-time'.
+*** jit-lock can now be delayed with 'jit-lock-defer-time'.
If this variable is non-nil, its value should be the amount of Emacs
idle time in seconds to wait before starting fontification. For
-example, if you set `jit-lock-defer-time' to 0.25, fontification will
+example, if you set 'jit-lock-defer-time' to 0.25, fontification will
only happen after 0.25s of idle time.
*** contextual refontification is now separate from stealth fontification.
-jit-lock-defer-contextually is renamed jit-lock-contextually and
-jit-lock-context-time determines the delay after which contextual
+'jit-lock-defer-contextually' is renamed 'jit-lock-contextually' and
+'jit-lock-context-time' determines the delay after which contextual
refontification takes place.
*** lazy-lock is considered obsolete.
-The `lazy-lock' package is superseded by `jit-lock' and is considered
-obsolete. `jit-lock' is activated by default; if you wish to continue
-using `lazy-lock', activate it in your ~/.emacs like this:
+The 'lazy-lock' package is superseded by 'jit-lock' and is considered
+obsolete. 'jit-lock' is activated by default; if you wish to continue
+using 'lazy-lock', activate it in your ~/.emacs like this:
(setq font-lock-support-mode 'lazy-lock-mode)
-If you invoke `lazy-lock-mode' directly rather than through
-`font-lock-support-mode', it now issues a warning:
+If you invoke 'lazy-lock-mode' directly rather than through
+'font-lock-support-mode', it now issues a warning:
"Use font-lock-support-mode rather than calling lazy-lock-mode"
** Menu support:
to support existing GUI file selection dialogs better.
*** The file selection dialog for Gtk+, Mac, W32 and Motif/LessTif can be
-disabled by customizing the variable `use-file-dialog'.
+disabled by customizing the variable 'use-file-dialog'.
*** The pop up menus for Lucid now stay up if you do a fast click and can
be navigated with the arrow keys (like Gtk+, Mac and W32).
*** The Lucid menus can display multilingual text in your locale. You have
to explicitly specify a fontSet resource for this to work, for example
-`-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'.
+'-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'.
*** Dialogs for Lucid/Athena and LessTif/Motif now pop down on pressing
ESC, like they do for Gtk+, Mac and W32.
*** For the Gtk+ version, you can make Emacs use the old file dialog
-by setting the variable `x-gtk-use-old-file-dialog' to t. Default is to use
+by setting the variable 'x-gtk-use-old-file-dialog' to t. Default is to use
the new dialog.
*** You can exit dialog windows and menus by typing C-g.
** Buffer Menu changes:
-*** The new options `buffers-menu-show-directories' and
-`buffers-menu-show-status' let you control how buffers are displayed
+*** The new options 'buffers-menu-show-directories' and
+'buffers-menu-show-status' let you control how buffers are displayed
in the menu dropped down when you click "Buffers" from the menu bar.
-`buffers-menu-show-directories' controls whether the menu displays
+'buffers-menu-show-directories' controls whether the menu displays
leading directories as part of the file name visited by the buffer.
-If its value is `unless-uniquify', the default, directories are
+If its value is 'unless-uniquify', the default, directories are
shown unless uniquify-buffer-name-style' is non-nil. The value of nil
and t turn the display of directories off and on, respectively.
-`buffers-menu-show-status' controls whether the Buffers menu includes
+'buffers-menu-show-status' controls whether the Buffers menu includes
the modified and read-only status of the buffers. By default it is
t, and the status is shown.
Setting these variables directly does not take effect until next time
the Buffers menu is regenerated.
-*** New command `Buffer-menu-toggle-files-only' toggles display of file
+*** New command 'Buffer-menu-toggle-files-only' toggles display of file
buffers only in the Buffer Menu. It is bound to T in Buffer Menu
mode.
-*** `buffer-menu' and `list-buffers' now list buffers whose names begin
+*** 'buffer-menu' and 'list-buffers' now list buffers whose names begin
with a space, when those buffers are visiting files. Normally buffers
whose names begin with space are omitted.
click for both purposes, depending on whether you click outside or
inside a link. Now the behavior of a Mouse-1 click has been changed
to match this context-sensitive dual behavior. (If you prefer the old
-behavior, set the user option `mouse-1-click-follows-link' to nil.)
+behavior, set the user option 'mouse-1-click-follows-link' to nil.)
Depending on the current mode, a Mouse-2 click in Emacs can do much
more than just follow a link, so the new Mouse-1 behavior is only
activated for modes which explicitly mark a clickable text as a "link"
-(see the new function `mouse-on-link-p' for details). The Lisp
+(see the new function 'mouse-on-link-p' for details). The Lisp
packages that are included in release 22.1 have been adapted to do
this, but external packages may not yet support this. However, there
is no risk in using such packages, as the worst thing that could
drag-mouse-1 action, typically copy the text.
You can customize the new Mouse-1 behavior via the new user options
-`mouse-1-click-follows-link' and `mouse-1-click-in-non-selected-windows'.
+'mouse-1-click-follows-link' and 'mouse-1-click-in-non-selected-windows'.
-*** If you set the new variable `mouse-autoselect-window' to a non-nil
+*** If you set the new variable 'mouse-autoselect-window' to a non-nil
value, windows are automatically selected as you move the mouse from
one Emacs window to another, even within a frame. A minibuffer window
can be selected only when it is active.
*** On X, when the window manager requires that you click on a frame to
select it (give it focus), the selected window and cursor position
normally changes according to the mouse click position. If you set
-the variable x-mouse-click-focus-ignore-position to t, the selected
+the variable 'x-mouse-click-focus-ignore-position' to t, the selected
window and cursor position do not change when you click on a frame
to give it focus.
*** Emacs normally highlights mouse sensitive text whenever the mouse
-is over the text. By setting the new variable `mouse-highlight', you
+is over the text. By setting the new variable 'mouse-highlight', you
can optionally enable mouse highlighting only after you move the
mouse, so that highlighting disappears when you press a key. You can
also disable mouse highlighting.
*** You can now customize if selecting a region by dragging the mouse
-shall not copy the selected text to the kill-ring by setting the new
-variable mouse-drag-copy-region to nil.
+shall not copy the selected text to the 'kill-ring' by setting the new
+variable 'mouse-drag-copy-region' to nil.
-*** Under X, mouse-wheel-mode is turned on by default.
+*** Under X, 'mouse-wheel-mode' is turned on by default.
*** Emacs ignores mouse-2 clicks while the mouse wheel is being moved.
People tend to push the mouse wheel (which counts as a mouse-2 click)
unintentionally while turning the wheel, so these clicks are now
-ignored. You can customize this with the mouse-wheel-click-event and
-mouse-wheel-inhibit-click-time variables.
+ignored. You can customize this with the 'mouse-wheel-click-event' and
+'mouse-wheel-inhibit-click-time' variables.
*** mouse-wheels can now scroll a specific fraction of the window
-(rather than a fixed number of lines) and the scrolling is `progressive'.
+(rather than a fixed number of lines) and the scrolling is 'progressive'.
** Multilingual Environment (Mule) changes:
-*** You can disable character translation for a file using the -*-
-construct. Include `enable-character-translation: nil' inside the
+*** You can disable character translation for a file using
+the 'enable-character-translation' variable set in the -*-
+construct. Include 'enable-character-translation: nil' inside the
-*-...-*- to disable any character translation that may happen by
various global and per-coding-system translation tables. You can also
specify it in a local variable list at the end of the file. For
shortcut, instead of using this long variable name, you can append the
character "!" at the end of coding-system name specified in -*-
construct or in a local variable list. For example, if a file has the
-following header, it is decoded by the coding system `iso-latin-1'
+following header, it is decoded by the coding system 'iso-latin-1'
without any character translation:
;; -*- coding: iso-latin-1!; -*-
current locale settings if you are not using a window system. This
can mean that the META key doesn't work but generates non-ASCII
characters instead, depending on how the terminal (or terminal
-emulator) works. Use `set-keyboard-coding-system' (or customize
+emulator) works. Use 'set-keyboard-coding-system' (or customize
keyboard-coding-system) if you prefer META to work (the old default)
or if the locale doesn't describe the character set actually generated
-by the keyboard. See Info node `Unibyte Mode'.
+by the keyboard. See Info node 'Unibyte Mode'.
-*** The new command `set-file-name-coding-system' (C-x RET F) sets
+*** The new command 'set-file-name-coding-system' (C-x RET F) sets
coding system for encoding and decoding file names. A new menu item
(Options->Mule->Set Coding Systems->For File Name) invokes this
command.
-*** The new command `revert-buffer-with-coding-system' (C-x RET r)
+*** The new command 'revert-buffer-with-coding-system' (C-x RET r)
revisits the current file using a coding system that you specify.
-*** New command `recode-region' decodes the region again by a specified
+*** New command 'recode-region' decodes the region again by a specified
coding system.
-*** The new command `recode-file-name' changes the encoding of the name
+*** The new command 'recode-file-name' changes the encoding of the name
of a file.
-*** New command `ucs-insert' inserts a character specified by its
+*** New command 'ucs-insert' inserts a character specified by its
Unicode code point or character name.
*** New command quail-show-key shows what key (or key sequence) to type
in the current input method to input a character at point.
-*** Limited support for character `unification' has been added.
+*** Limited support for character 'unification' has been added.
Emacs now knows how to translate between different representations of
the same characters in various Emacs charsets according to standard
Unicode mappings. This applies mainly to characters in the ISO 8859
when possible. The latter are more space-efficient.
This is controlled by user option utf-fragment-on-decoding.
-*** Improved Thai support. A new minor mode `thai-word-mode' (which is
+*** Improved Thai support. A new minor mode 'thai-word-mode' (which is
automatically activated if you select Thai as a language
environment) changes key bindings of most word-oriented commands to
versions which recognize Thai words. Affected commands are
*** The utf-8/16 coding systems have been enhanced.
By default, untranslatable utf-8 sequences are simply composed into
-single quasi-characters. User option `utf-translate-cjk-mode' (it is
+single quasi-characters. User option 'utf-translate-cjk-mode' (it is
turned on by default) arranges to translate many utf-8 CJK character
sequences into real Emacs characters in a similar way to the Mule-UCS
system. As this loads a fairly big data on demand, people who are not
interested in CJK characters may want to customize it to nil.
You can augment/amend the CJK translation via hash tables
-`ucs-mule-cjk-to-unicode' and `ucs-unicode-to-mule-cjk'. The utf-8
+'ucs-mule-cjk-to-unicode' and 'ucs-unicode-to-mule-cjk'. The utf-8
coding system now also encodes characters from most of Emacs's
one-dimensional internal charsets, specifically the ISO-8859 ones.
The utf-16 coding system is affected similarly.
-*** A UTF-7 coding system is available in the library `utf-7'.
+*** A UTF-7 coding system is available in the library 'utf-7'.
-*** A new coding system `euc-tw' has been added for traditional Chinese
+*** A new coding system 'euc-tw' has been added for traditional Chinese
in CNS encoding; it accepts both Big 5 and CNS as input; on saving,
Big 5 is then converted to CNS.
-*** Many new coding systems are available in the `code-pages' library.
+*** Many new coding systems are available in the 'code-pages' library.
These include complete versions of most of those in codepage.el, based
-on Unicode mappings. `codepage-setup' is now obsolete and is used
+on Unicode mappings. 'codepage-setup' is now obsolete and is used
only in the MS-DOS port of Emacs. All coding systems defined in
-`code-pages' are auto-loaded.
+'code-pages' are auto-loaded.
-*** New variable `utf-translate-cjk-unicode-range' controls which
-Unicode characters to translate in `utf-translate-cjk-mode'.
+*** New variable 'utf-translate-cjk-unicode-range' controls which
+Unicode characters to translate in 'utf-translate-cjk-mode'.
-*** iso-10646-1 (`Unicode') fonts can be used to display any range of
+*** iso-10646-1 ('Unicode') fonts can be used to display any range of
characters encodable by the utf-8 coding system. Just specify the
fontset appropriately.
*** The face-customization widget has been reworked to be less confusing.
In particular, when you enable a face attribute using the corresponding
-check-box, there's no longer a redundant `*' option in value selection
+check-box, there's no longer a redundant '*' option in value selection
for that attribute; the values you can choose are only those which make
sense for the attribute. When an attribute is de-selected by unchecking
its check-box, then the (now ignored, but still present temporarily in
** Dired mode:
-*** In Dired's ! command (dired-do-shell-command), `*' and `?' now
+*** In Dired's ! command (dired-do-shell-command), '*' and '?' now
control substitution of the file names only when they are surrounded
by whitespace. This means you can now use them as shell wildcards
-too. If you want to use just plain `*' as a wildcard, type `*""'; the
+too. If you want to use just plain '*' as a wildcard, type '*""'; the
double quotes make no difference in the shell, but they prevent
-special treatment in `dired-do-shell-command'.
+special treatment in 'dired-do-shell-command'.
-*** The Dired command `dired-goto-file' is now bound to j, not M-g.
+*** The Dired command 'dired-goto-file' is now bound to j, not M-g.
This is to avoid hiding the global key binding of M-g.
-*** New faces dired-header, dired-mark, dired-marked, dired-flagged,
-dired-ignored, dired-directory, dired-symlink, dired-warning
+*** New faces 'dired-header', 'dired-mark', 'dired-marked', 'dired-flagged',
+'dired-ignored', 'dired-directory', 'dired-symlink', 'dired-warning'
introduced for Dired mode instead of font-lock faces.
-*** New Dired command `dired-compare-directories' marks files
+*** New Dired command 'dired-compare-directories' marks files
with different file attributes in two dired buffers.
-*** New Dired command `dired-do-touch' (bound to T) changes timestamps
+*** New Dired command 'dired-do-touch' (bound to T) changes timestamps
of marked files with the value entered in the minibuffer.
*** In Dired, the w command now stores the current line's file name
*** In Dired-x, Omitting files is now a minor mode, dired-omit-mode.
The mode toggling command is bound to M-o. A new command
-dired-mark-omitted, bound to * O, marks omitted files. The variable
-dired-omit-files-p is obsoleted, use the mode toggling function
+'dired-mark-omitted', bound to * O, marks omitted files. The variable
+'dired-omit-files-p' is obsoleted, use the mode toggling function
instead.
-*** The variables dired-free-space-program and dired-free-space-args
-have been renamed to directory-free-space-program and
-directory-free-space-args, and they now apply whenever Emacs puts a
+*** The variables 'dired-free-space-program' and 'dired-free-space-args'
+have been renamed to 'directory-free-space-program' and
+'directory-free-space-args', and they now apply whenever Emacs puts a
directory listing into a buffer.
** Comint changes:
instead of EMACS.
*** The comint prompt can now be made read-only, using the new user
-option `comint-prompt-read-only'. This is not enabled by default,
+option 'comint-prompt-read-only'. This is not enabled by default,
except in IELM buffers. The read-only status of IELM prompts can be
-controlled with the new user option `ielm-prompt-read-only', which
-overrides `comint-prompt-read-only'.
+controlled with the new user option 'ielm-prompt-read-only', which
+overrides 'comint-prompt-read-only'.
-The new commands `comint-kill-whole-line' and `comint-kill-region'
+The new commands 'comint-kill-whole-line' and 'comint-kill-region'
support editing comint buffers with read-only prompts.
-`comint-kill-whole-line' is like `kill-whole-line', but ignores both
+'comint-kill-whole-line' is like 'kill-whole-line', but ignores both
read-only and field properties. Hence, it always kill entire
lines, including any prompts.
-`comint-kill-region' is like `kill-region', except that it ignores
+'comint-kill-region' is like 'kill-region', except that it ignores
read-only properties, if it is safe to do so. This means that if any
part of a prompt is deleted, then the entire prompt must be deleted
and that all prompts must stay at the beginning of a line. If this is
-not the case, then `comint-kill-region' behaves just like
-`kill-region' if read-only properties are involved: it copies the text
+not the case, then 'comint-kill-region' behaves just like
+'kill-region' if read-only properties are involved: it copies the text
to the kill-ring, but does not delete it.
-*** The new command `comint-insert-previous-argument' in comint-derived
+*** The new command 'comint-insert-previous-argument' in comint-derived
modes (shell-mode, etc.) inserts arguments from previous command lines,
-like bash's `ESC .' binding. It is bound by default to `C-c .', but
+like bash's 'ESC .' binding. It is bound by default to 'C-c .', but
otherwise behaves quite similarly to the bash version.
-*** `comint-use-prompt-regexp-instead-of-fields' has been renamed
-`comint-use-prompt-regexp'. The old name has been kept as an alias,
+*** 'comint-use-prompt-regexp-instead-of-fields' has been renamed
+'comint-use-prompt-regexp'. The old name has been kept as an alias,
but declared obsolete.
** M-x Compile changes:
Quite a few more kinds of messages are recognized. Messages that are
recognized as warnings or informational come in orange or green, instead of
-red. Informational messages are by default skipped with `next-error'
-(controlled by `compilation-skip-threshold').
+red. Informational messages are by default skipped with 'next-error'
+(controlled by 'compilation-skip-threshold').
Location data is collected on the fly as the *compilation* buffer changes.
This means you could modify messages to make them point to different files.
This also means you can not go to locations of messages you may have deleted.
-The variable `compilation-error-regexp-alist' has now become customizable. If
+The variable 'compilation-error-regexp-alist' has now become customizable. If
you had added your own regexps to this, you'll probably need to include a
-leading `^', otherwise they'll match anywhere on a line. There is now also a
-`compilation-mode-font-lock-keywords' and it nicely handles all the checks
+leading '^', otherwise they'll match anywhere on a line. There is now also a
+'compilation-mode-font-lock-keywords' and it nicely handles all the checks
that configure outputs and -o options so you see at a glance where you are.
The new file etc/compilation.txt gives examples of each type of message.
-*** New user option `compilation-environment'.
+*** New user option 'compilation-environment'.
This option allows you to specify environment variables for inferior
compilation processes without affecting the environment that all
subprocesses inherit.
-*** New user option `compilation-disable-input'.
+*** New user option 'compilation-disable-input'.
If this is non-nil, send end-of-file as compilation process input.
-*** New options `next-error-highlight' and `next-error-highlight-no-select'
+*** New options 'next-error-highlight' and 'next-error-highlight-no-select'
specify the method of highlighting of the corresponding source line
-in new face `next-error'.
+in new face 'next-error'.
-*** A new minor mode `next-error-follow-minor-mode' can be used in
-compilation-mode, grep-mode, occur-mode, and diff-mode (i.e. all the
-modes that can use `next-error'). In this mode, cursor motion in the
+*** A new minor mode 'next-error-follow-minor-mode' can be used in
+'compilation-mode', 'grep-mode', 'occur-mode', and 'diff-mode' (i.e. all the
+modes that can use 'next-error'). In this mode, cursor motion in the
buffer causes automatic display in another window of the corresponding
matches, compilation errors, etc. This minor mode can be toggled with
C-c C-f.
*** When the left fringe is displayed, an arrow points to current message in
the compilation buffer.
-*** The new variable `compilation-context-lines' controls lines of leading
+*** The new variable 'compilation-context-lines' controls lines of leading
context before the current message. If nil and the left fringe is displayed,
it doesn't scroll the compilation output window. If there is no left fringe,
no arrow is displayed and a value of nil means display the message at the top
** Occur mode changes:
-*** The new command `multi-occur' is just like `occur', except it can
+*** The new command 'multi-occur' is just like 'occur', except it can
search multiple buffers. There is also a new command
-`multi-occur-in-matching-buffers' which allows you to specify the
+'multi-occur-in-matching-buffers' which allows you to specify the
buffers to search by their filenames or buffer names. Internally,
Occur mode has been rewritten, and now uses font-lock, among other
changes.
*** You can now use next-error (C-x `) and previous-error to advance to
the next/previous matching line found by M-x occur.
-*** In the *Occur* buffer, `o' switches to it in another window, and
+*** In the *Occur* buffer, 'o' switches to it in another window, and
C-o displays the current line's occurrence in another window without
switching to it.
There's a new separate package grep.el, with its own submenu and
customization group.
-*** `grep-find' is now also available under the name `find-grep' where
-people knowing `find-grep-dired' would probably expect it.
+*** 'grep-find' is now also available under the name 'find-grep' where
+people knowing 'find-grep-dired' would probably expect it.
-*** New commands `lgrep' (local grep) and `rgrep' (recursive grep) are
-more user-friendly versions of `grep' and `grep-find', which prompt
+*** New commands 'lgrep' (local grep) and 'rgrep' (recursive grep) are
+more user-friendly versions of 'grep' and 'grep-find', which prompt
separately for the regular expression to match, the files to search,
and the base directory for the search. Case sensitivity of the
-search is controlled by the current value of `case-fold-search'.
+search is controlled by the current value of 'case-fold-search'.
These commands build the shell commands based on the new variables
-`grep-template' (lgrep) and `grep-find-template' (rgrep).
+'grep-template' (lgrep) and 'grep-find-template' (rgrep).
-The files to search can use aliases defined in `grep-files-aliases'.
+The files to search can use aliases defined in 'grep-files-aliases'.
-Subdirectories listed in `grep-find-ignored-directories' such as those
+Subdirectories listed in 'grep-find-ignored-directories' such as those
typically used by various version control systems, like CVS and arch,
-are automatically skipped by `rgrep'.
+are automatically skipped by 'rgrep'.
*** The grep commands provide highlighting support.
Hits are fontified in green, and hits in binary files in orange. Grep buffers
can be saved and automatically revisited.
-*** New option `grep-highlight-matches' highlights matches in *grep*
+*** New option 'grep-highlight-matches' highlights matches in *grep*
buffer. It uses a special feature of some grep programs which accept
--color option to output markers around matches. When going to the next
-match with `next-error' the exact match is highlighted in the source
-buffer. Otherwise, if `grep-highlight-matches' is nil, the whole
+match with 'next-error' the exact match is highlighted in the source
+buffer. Otherwise, if 'grep-highlight-matches' is nil, the whole
source line is highlighted.
*** New key bindings in grep output window:
SPC and DEL scrolls window up and down. C-n and C-p moves to next and
previous match in the grep window. RET jumps to the source line of
-the current match. `n' and `p' shows next and previous match in
-other window, but does not switch buffer. `{' and `}' jumps to the
+the current match. 'n' and 'p' shows next and previous match in
+other window, but does not switch buffer. '{' and '}' jumps to the
previous or next file in the grep output. TAB also jumps to the next
file.
-*** M-x grep now tries to avoid appending `/dev/null' to the command line
-by using GNU grep `-H' option instead. M-x grep automatically
+*** M-x grep now tries to avoid appending '/dev/null' to the command line
+by using GNU grep '-H' option instead. M-x grep automatically
detects whether this is possible or not the first time it is invoked.
-When `-H' is used, the grep command line supplied by the user is passed
+When '-H' is used, the grep command line supplied by the user is passed
unchanged to the system to execute, which allows more complicated
command lines to be used than was possible before.
-*** The new variables `grep-window-height' and `grep-scroll-output' override
+*** The new variables 'grep-window-height' and 'grep-scroll-output' override
the corresponding compilation mode settings, for grep commands only.
** Cursor display changes:
*** Emacs can produce an underscore-like (horizontal bar) cursor.
-The underscore cursor is set by putting `(cursor-type . hbar)' in
-default-frame-alist. It supports variable heights, like the `bar'
+The underscore cursor is set by putting '(cursor-type . hbar)' in
+'default-frame-alist'. It supports variable heights, like the 'bar'
cursor does.
-*** The variable `cursor-in-non-selected-windows' can now be set to any
+*** The variable 'cursor-in-non-selected-windows' can now be set to any
of the recognized cursor types.
*** Display of hollow cursors now obeys the buffer-local value (if any)
-of `cursor-in-non-selected-windows' in the buffer that the cursor
+of 'cursor-in-non-selected-windows' in the buffer that the cursor
appears in.
-*** On text terminals, the variable `visible-cursor' controls whether Emacs
+*** On text terminals, the variable 'visible-cursor' controls whether Emacs
uses the "very visible" cursor (the default) or the normal cursor.
*** The X resource cursorBlink can be used to turn off cursor blinking.
*** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is
-now controlled by the variable `blink-cursor-alist'.
+now controlled by the variable 'blink-cursor-alist'.
** X Windows Support:
buffer copies or moves the file to that directory.
*** Under X11, it is possible to swap Alt and Meta (and Super and Hyper).
-The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym',
-and `x-super-keysym' can be used to choose which keysyms Emacs should
+The new variables 'x-alt-keysym', 'x-hyper-keysym', 'x-meta-keysym',
+and 'x-super-keysym' can be used to choose which keysyms Emacs should
use for the modifiers. For example, the following two lines swap
Meta and Alt:
(setq x-alt-keysym 'meta)
*** The X resource useXIM can be used to turn off use of XIM, which can
speed up Emacs with slow networking to the X server.
-If the configure option `--without-xim' was used to turn off use of
+If the configure option '--without-xim' was used to turn off use of
XIM by default, the X resource useXIM can be used to turn it on.
-*** The new variable `x-select-request-type' controls how Emacs
+*** The new variable 'x-select-request-type' controls how Emacs
requests X selection. The default value is nil, which means that
Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING,
and use the more appropriately result.
terminals whose capabilities are not set correctly in the terminal
database, or with terminal emulators which support colors, but don't
set the TERM environment variable to a name of a color-capable
-terminal. "emacs --color" uses the same color commands as GNU `ls'
+terminal. "emacs --color" uses the same color commands as GNU 'ls'
when invoked with "ls --color", so if your terminal can support colors
in "ls --color", it will support "emacs --color" as well. See the
user manual for the possible values of the MODE parameter.
*** Emacs now supports several character terminals which provide more
-than 8 colors. For example, for `xterm', 16-color, 88-color, and
+than 8 colors. For example, for 'xterm', 16-color, 88-color, and
256-color modes are supported. Emacs automatically notes at startup
the extended number of colors, and defines the appropriate entries for
all of these colors.
88-color or 256-color xterm, you will see essentially the same face
colors as on X.
-*** There's a new support for colors on `rxvt' terminal emulator.
+*** There's a new support for colors on 'rxvt' terminal emulator.
** ebnf2ps changes:
-*** New option `ebnf-arrow-extra-width' which specify extra width for arrow
+*** New option 'ebnf-arrow-extra-width' which specify extra width for arrow
shape drawing.
The extra width is used to avoid that the arrowhead and the terminal border
-overlap. It depends on `ebnf-arrow-shape' and `ebnf-line-width'.
+overlap. It depends on 'ebnf-arrow-shape' and 'ebnf-line-width'.
-*** New option `ebnf-arrow-scale' which specify the arrow scale.
+*** New option 'ebnf-arrow-scale' which specify the arrow scale.
Values lower than 1.0, shrink the arrow.
Values greater than 1.0, expand the arrow.
\f
The new cua package provides CUA-like keybindings using C-x for
cut (kill), C-c for copy, C-v for paste (yank), and C-z for undo.
With cua, the region can be set and extended using shifted movement
-keys (like pc-selection-mode) and typed text replaces the active
-region (like delete-selection-mode). Do not enable these modes with
-cua-mode. Customize the variable `cua-mode' to enable cua.
+keys (like 'pc-selection-mode') and typed text replaces the active
+region (like 'delete-selection-mode'). Do not enable these modes with
+cua-mode. Customize the variable 'cua-mode' to enable cua.
-The cua-selection-mode enables the CUA keybindings for the region but
+The 'cua-selection-mode' enables the CUA keybindings for the region but
does not change the bindings for C-z/C-x/C-c/C-v. It can be used as a
replacement for pc-selection-mode.
using the movement commands (or mouse-3), and cut or copy it using C-x
or C-c (using C-w and M-w also works).
-Use M-o and M-c to `open' or `close' the rectangle, use M-b or M-f, to
+Use M-o and M-c to 'open' or 'close' the rectangle, use M-b or M-f, to
fill it with blanks or another character, use M-u or M-l to upcase or
downcase the rectangle, use M-i to increment the numbers in the
rectangle, use M-n to fill the rectangle with a numeric sequence (such
The features of cua also works with the standard Emacs bindings for
kill, copy, yank, and undo. If you want to use cua mode, but don't
want the C-x, C-c, C-v, and C-z bindings, you can customize the
-`cua-enable-cua-keys' variable.
+'cua-enable-cua-keys' variable.
Note: This version of cua mode is not backwards compatible with older
versions of cua.el and cua-mode.el. To ensure proper operation, you
Tramp uses a shell connection. The shell connection is always used
for filename completion and directory listings and suchlike, but for
the actual file transfer, you can choose between the so-called
-`inline' methods (which transfer the files through the shell
-connection using base64 or uu encoding) and the `out-of-band' methods
-(which invoke an external copying program such as `rcp' or `scp' or
-`rsync' to do the copying).
+'inline' methods (which transfer the files through the shell
+connection using base64 or uu encoding) and the 'out-of-band' methods
+(which invoke an external copying program such as 'rcp' or 'scp' or
+'rsync' to do the copying).
-Shell connections can be acquired via `rsh', `ssh', `telnet' and also
-`su' and `sudo'. Ange-FTP is still supported via the `ftp' method.
+Shell connections can be acquired via 'rsh', 'ssh', 'telnet' and also
+'su' and 'sudo'. Ange-FTP is still supported via the 'ftp' method.
If you want to disable Tramp you should set
Removing Tramp, and re-enabling Ange-FTP, can be achieved by M-x
tramp-unload-tramp.
-** The image-dired.el package allows you to easily view, tag and in
+** The 'image-dired' package allows you to easily view, tag and in
other ways manipulate image files and their thumbnails, using dired as
the main interface. Image-Dired provides functionality to generate
simple image galleries.
** Calc is now part of the Emacs distribution.
Calc is an advanced desk calculator and mathematical tool written in
-Emacs Lisp. The prefix for Calc has been changed to `C-x *' and Calc
-can be started with `C-x * *'. The Calc manual is separate from the
+Emacs Lisp. The prefix for Calc has been changed to 'C-x *' and Calc
+can be started with 'C-x * *'. The Calc manual is separate from the
Emacs manual; within Emacs, type "C-h i m calc RET" to read the
-manual. A reference card is available in `etc/calccard.tex' and
-`etc/calccard.ps'.
+manual. A reference card is available in 'etc/calccard.tex' and
+'etc/calccard.ps'.
** Org mode is now part of the Emacs distribution
The Org mode table editor can be integrated into any major mode by
activating the minor mode, Orgtbl mode.
-The documentation for org-mode is in a separate manual; within Emacs,
+The documentation for 'org-mode' is in a separate manual; within Emacs,
type "C-h i m org RET" to read that manual. A reference card is
-available in `etc/orgcard.tex' and `etc/orgcard.ps'.
+available in 'etc/orgcard.tex' and 'etc/orgcard.ps'.
** ERC is now part of the Emacs distribution.
If you type C-u M-x irc, it prompts you for the server, nick, port and
startup channel parameters before connecting.
-** The new package ibuffer provides a powerful, completely
+** The new package 'ibuffer' provides a powerful, completely
customizable replacement for buff-menu.el.
** Newsticker is now part of the Emacs distribution.
to interactive buffer switching. Ido is a superset of iswitchb (with
a few exceptions), so don't enable both packages.
-** The new global minor mode `file-name-shadow-mode' modifies the way
+** The new global minor mode 'file-name-shadow-mode' modifies the way
filenames being entered by the user in the minibuffer are displayed, so
that it's clear when part of the entered filename will be ignored due to
Emacs' filename parsing rules. The ignored portion can be made dim,
invisible, or otherwise less visually noticeable. The display method can
-be displayed by customizing the variable `file-name-shadow-properties'.
+be displayed by customizing the variable 'file-name-shadow-properties'.
** Emacs' keyboard macro facilities have been enhanced by the new
kmacro package.
before calling it, if used while defining a macro.
In addition, when ending or calling a macro with C-x e, the macro can
-be repeated immediately by typing just the `e'. You can customize
-this behavior via the variables kmacro-call-repeat-key and
-kmacro-call-repeat-with-arg.
+be repeated immediately by typing just the 'e'. You can customize
+this behavior via the variables 'kmacro-call-repeat-key' and
+'kmacro-call-repeat-with-arg'.
Keyboard macros can now be debugged and edited interactively.
C-x C-k SPC steps through the last keyboard macro one key sequence
+, -, /, and *, an Enter key, and a NumLock toggle key. The keypad
package only controls the use of the digit and decimal keys.
-By customizing the variables `keypad-setup', `keypad-shifted-setup',
-`keypad-numlock-setup', and `keypad-numlock-shifted-setup', or by
-using the function `keypad-setup', you can rebind all digit keys and
+By customizing the variables 'keypad-setup', 'keypad-shifted-setup',
+'keypad-numlock-setup', and 'keypad-numlock-shifted-setup', or by
+using the function 'keypad-setup', you can rebind all digit keys and
the decimal key of the keypad in one step for each of the four
possible combinations of the Shift key state (not pressed/pressed) and
the NumLock toggle state (off/on).
The choices for the keypad keys in each of the above states are:
-`Plain numeric keypad' where the keys generates plain digits,
-`Numeric keypad with decimal key' where the character produced by the
+'Plain numeric keypad' where the keys generates plain digits,
+'Numeric keypad with decimal key' where the character produced by the
decimal key can be customized individually (for internationalization),
-`Numeric Prefix Arg' where the keypad keys produce numeric prefix args
-for Emacs editing commands, `Cursor keys' and `Shifted Cursor keys'
+'Numeric Prefix Arg' where the keypad keys produce numeric prefix args
+for Emacs editing commands, 'Cursor keys' and 'Shifted Cursor keys'
where the keys work like (shifted) arrow keys, home/end, etc., and
-`Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.)
+'Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.)
are left unspecified and can be bound individually through the global
or local keymaps.
with a Print sub-menu which allows you to preview output through
ghostview, use ghostscript to print (if you don't have a PostScript
printer) or send directly to printer a PostScript code generated by
-`ps-print' package. Use M-x pr-help for more information.
+'ps-print' package. Use M-x pr-help for more information.
** The new package longlines.el provides a minor mode for editing text
-files composed of long lines, based on the `use-hard-newlines'
+files composed of long lines, based on the 'use-hard-newlines'
mechanism. The long lines are broken up by inserting soft newlines,
which are automatically removed when saving the file to disk or
copying into the kill ring, clipboard, etc. By default, Longlines
mode inserts soft newlines automatically during editing, a behavior
referred to as "soft word wrap" in other text editors. This is
similar to Refill mode, but more reliable. To turn the word wrap
-feature off, set `longlines-auto-wrap' to nil.
+feature off, set 'longlines-auto-wrap' to nil.
** SES mode (ses-mode) is a new major mode for creating and editing
spreadsheet files. Besides the usual Emacs features (intuitive command
viral immunity and import/export of tab-separated values.
** The new package table.el implements editable, WYSIWYG, embedded
-`text tables' in Emacs buffers. It simulates the effect of putting
+'text tables' in Emacs buffers. It simulates the effect of putting
these tables in a special major mode. The package emulates WYSIWYG
table editing available in modern word processors. The package also
can generate a table source in typesetting and markup languages such
** New minor mode, Visible mode, toggles invisibility in the current buffer.
When enabled, it makes all invisible text visible. When disabled, it
-restores the previous value of `buffer-invisibility-spec'.
+restores the previous value of 'buffer-invisibility-spec'.
** The new package flymake.el does on-the-fly syntax checking of program
source files. See the Flymake's Info manual for more details.
** savehist saves minibuffer histories between sessions.
-To use this feature, turn on savehist-mode in your `.emacs' file.
+To use this feature, turn on 'savehist-mode' in your '.emacs' file.
-** The ruler-mode.el library provides a minor mode for displaying an
+** The 'ruler-mode' library provides a minor mode for displaying an
"active" ruler in the header line. You can use the mouse to visually
-change the `fill-column', `window-margins' and `tab-stop-list'
+change the 'fill-column', 'window-margins' and 'tab-stop-list'
settings.
** The file t-mouse.el is now part of Emacs and provides access to mouse
instead and point will be kept vertically fixed relative to window
boundaries during scrolling.
-** The new global minor mode `size-indication-mode' (off by default)
+** The new global minor mode 'size-indication-mode' (off by default)
shows the size of accessible part of the buffer on the mode line.
-** The new package conf-mode.el handles thousands of configuration files, with
+** The new package 'conf-mode' handles thousands of configuration files, with
varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value,
var : value, var value or keyword var value) and sections ([section] or
section { }). Many files under /etc/, or with suffixes like .cf through
** GDB-Script-mode is used for files like .gdbinit.
-** The new package dns-mode.el adds syntax highlighting of DNS master files.
-It is a modern replacement for zone-mode.el, which is now obsolete.
+** The new package 'dns-mode' adds syntax highlighting of DNS master files.
+It is a modern replacement for 'zone-mode', which is now obsolete.
-** `cfengine-mode' is a major mode for editing GNU Cfengine
+** 'cfengine-mode' is a major mode for editing GNU Cfengine
configuration files.
** The TCL package tcl-mode.el was replaced by tcl.el.
Info documentation that includes images, processed with makeinfo
version 4.7 or newer, compiles to Info pages with embedded images.
-*** `Info-index' offers completion.
+*** 'Info-index' offers completion.
*** http and ftp links in Info are now operational: they look like cross
-references and following them calls `browse-url'.
+references and following them calls 'browse-url'.
*** isearch in Info uses Info-search and searches through multiple nodes.
message [initial node], and with subsequent C-s/C-r continues through
other nodes. When isearch fails for the rest of the manual, it wraps
around the whole manual to the top/final node. The user option
-`Info-isearch-search' controls whether to use Info-search for isearch,
+'Info-isearch-search' controls whether to use Info-search for isearch,
or the default isearch search function that wraps around the current
Info node.
-*** New search commands: `Info-search-case-sensitively' (bound to S),
-`Info-search-backward', and `Info-search-next' which repeats the last
+*** New search commands: 'Info-search-case-sensitively' (bound to S),
+'Info-search-backward', and 'Info-search-next' which repeats the last
search without prompting for a new search string.
-*** New command `info-apropos' searches the indices of the known
+*** New command 'info-apropos' searches the indices of the known
Info files on your system for a string, and builds a menu of the
possible matches.
-*** New command `Info-history-forward' (bound to r and new toolbar icon)
+*** New command 'Info-history-forward' (bound to r and new toolbar icon)
moves forward in history to the node you returned from after using
-`Info-history-back' (renamed from `Info-last').
+'Info-history-back' (renamed from 'Info-last').
-*** New command `Info-history' (bound to L) displays a menu of visited nodes.
+*** New command 'Info-history' (bound to L) displays a menu of visited nodes.
-*** New command `Info-toc' (bound to T) creates a node with table of contents
+*** New command 'Info-toc' (bound to T) creates a node with table of contents
from the tree structure of menus of the current Info file.
-*** New command `Info-copy-current-node-name' (bound to w) copies
+*** New command 'Info-copy-current-node-name' (bound to w) copies
the current Info node name into the kill ring. With a zero prefix
-arg, puts the node name inside the `info' function call.
+arg, puts the node name inside the 'info' function call.
-*** New face `info-xref-visited' distinguishes visited nodes from unvisited
-and a new option `Info-fontify-visited-nodes' to control this.
+*** New face 'info-xref-visited' distinguishes visited nodes from unvisited
+and a new option 'Info-fontify-visited-nodes' to control this.
-*** A numeric prefix argument of `info' selects an Info buffer
-with the number appended to the `*info*' buffer name (e.g. "*info*<2>").
+*** A numeric prefix argument of 'info' selects an Info buffer
+with the number appended to the '*info*' buffer name (e.g. "*info*<2>").
*** Info now hides node names in menus and cross references by default.
If you prefer the old behavior, you can set the new user option
-`Info-hide-note-references' to nil.
+'Info-hide-note-references' to nil.
-*** The default value for `Info-scroll-prefer-subnodes' is now nil.
+*** The default value for 'Info-scroll-prefer-subnodes' is now nil.
** Emacs server changes
% emacsclient -s foo file1
% emacsclient -s bar file2
-*** The `emacsclient' command understands the options `--eval' and
-`--display' which tell Emacs respectively to evaluate the given Lisp
+*** The 'emacsclient' command understands the options '--eval' and
+'--display' which tell Emacs respectively to evaluate the given Lisp
expression and to use the given display when visiting files.
-*** User option `server-mode' can be used to start a server process.
+*** User option 'server-mode' can be used to start a server process.
** Locate changes
*** By default, reverting the *Locate* buffer now just runs the last
-`locate' command back over again without offering to update the locate
+'locate' command back over again without offering to update the locate
database (which normally only works if you have root privileges). If
you prefer the old behavior, set the new customizable option
-`locate-update-when-revert' to t.
+'locate-update-when-revert' to t.
** Desktop package
-*** Desktop saving is now a minor mode, `desktop-save-mode'.
+*** Desktop saving is now a minor mode, 'desktop-save-mode'.
-*** The variable `desktop-enable' is obsolete.
+*** The variable 'desktop-enable' is obsolete.
-Customize `desktop-save-mode' to enable desktop saving.
+Customize 'desktop-save-mode' to enable desktop saving.
*** Buffers are saved in the desktop file in the same order as that in the
buffer list.
*** New command line option --no-desktop
*** New commands:
- - desktop-revert reverts to the last loaded desktop.
- - desktop-change-dir kills current desktop and loads a new.
- - desktop-save-in-desktop-dir saves desktop in the directory from which
- it was loaded.
- - desktop-lazy-complete runs the desktop load to completion.
- - desktop-lazy-abort aborts lazy loading of the desktop.
+- 'desktop-revert' reverts to the last loaded desktop.
+- 'desktop-change-dir' kills current desktop and loads a new.
+- 'desktop-save-in-desktop-dir' saves desktop in the directory from which
+ it was loaded.
+- 'desktop-lazy-complete' runs the desktop load to completion.
+- 'desktop-lazy-abort' aborts lazy loading of the desktop.
*** New customizable variables:
- - desktop-save. Determines whether the desktop should be saved when it is
- killed.
- - desktop-file-name-format. Format in which desktop file names should be saved.
- - desktop-path. List of directories in which to lookup the desktop file.
- - desktop-locals-to-save. List of local variables to save.
- - desktop-globals-to-clear. List of global variables that `desktop-clear' will clear.
- - desktop-clear-preserve-buffers-regexp. Regexp identifying buffers that `desktop-clear'
- should not delete.
- - desktop-restore-eager. Number of buffers to restore immediately. Remaining buffers are
- restored lazily (when Emacs is idle).
- - desktop-lazy-verbose. Verbose reporting of lazily created buffers.
- - desktop-lazy-idle-delay. Idle delay before starting to create buffers.
+- 'desktop-save'. Determines whether the desktop should be saved when it is
+ killed.
+- 'desktop-file-name-format'. Format in which desktop file names should be saved.
+- 'desktop-path'. List of directories in which to lookup the desktop file.
+- 'desktop-locals-to-save'. List of local variables to save.
+- 'desktop-globals-to-clear'. List of global variables that 'desktop-clear' will clear.
+- 'desktop-clear-preserve-buffers-regexp'. Regexp identifying buffers that 'desktop-clear'
+ should not delete.
+- 'desktop-restore-eager'. Number of buffers to restore immediately. Remaining buffers are
+ restored lazily (when Emacs is idle).
+- 'desktop-lazy-verbose'. Verbose reporting of lazily created buffers.
+- 'desktop-lazy-idle-delay'. Idle delay before starting to create buffers.
*** New hooks:
- - desktop-after-read-hook run after a desktop is loaded.
- - desktop-no-desktop-file-hook run when no desktop file is found.
+- 'desktop-after-read-hook' run after a desktop is loaded.
+- 'desktop-no-desktop-file-hook' run when no desktop file is found.
** Recentf changes
-The recent file list is now automatically cleaned up when recentf mode is
-enabled. The new option `recentf-auto-cleanup' controls when to do
+The recent file list is now automatically cleaned up when 'recentf-mode' is
+enabled. The new option 'recentf-auto-cleanup' controls when to do
automatic cleanup.
The ten most recent files can be quickly opened by using the shortcut
keys 1 to 9, and 0, when the recent list is displayed in a buffer via
-the `recentf-open-files', or `recentf-open-more-files' commands.
+the 'recentf-open-files', or 'recentf-open-more-files' commands.
-The `recentf-keep' option replaces `recentf-keep-non-readable-files-p'
+The 'recentf-keep' option replaces 'recentf-keep-non-readable-files-p'
and provides a more general mechanism to customize which file names to
keep in the recent list.
-With the more advanced option `recentf-filename-handlers', you can
+With the more advanced option 'recentf-filename-handlers', you can
specify functions that successively transform recent file names. For
-example, if set to `file-truename' plus `abbreviate-file-name', the
+example, if set to 'file-truename' plus 'abbreviate-file-name', the
same file will not be in the recent list with different symbolic
links, and the file name will be abbreviated.
-To follow naming convention, `recentf-menu-append-commands-flag'
-replaces the misnamed option `recentf-menu-append-commands-p'. The
+To follow naming convention, 'recentf-menu-append-commands-flag'
+replaces the misnamed option 'recentf-menu-append-commands-p'. The
old name remains available as alias, but has been marked obsolete.
** Auto-Revert changes
-*** You can now use Auto Revert mode to `tail' a file.
+*** You can now use Auto Revert mode to 'tail' a file.
If point is at the end of a file buffer before reverting, Auto Revert
mode keeps it at the end after reverting. Similarly if point is
If you are sure that the file will only change by growing at the end,
then you can tail the file more efficiently by using the new minor
-mode Auto Revert Tail mode. The function `auto-revert-tail-mode'
+mode Auto Revert Tail mode. The function 'auto-revert-tail-mode'
toggles this mode.
*** Auto Revert mode is now more careful to avoid excessive reverts and
other potential problems when deciding which non-file buffers to
revert. This matters especially if Global Auto Revert mode is enabled
-and `global-auto-revert-non-file-buffers' is non-nil. Auto Revert
+and 'global-auto-revert-non-file-buffers' is non-nil. Auto Revert
mode only reverts a non-file buffer if the buffer has a non-nil
-`revert-buffer-function' and a non-nil `buffer-stale-function', which
+'revert-buffer-function' and a non-nil 'buffer-stale-function', which
decides whether the buffer should be reverted. Currently, this means
that auto reverting works for Dired buffers (although this may not
work properly on all operating systems) and for the Buffer Menu.
-*** If the new user option `auto-revert-check-vc-info' is non-nil, Auto
+*** If the new user option 'auto-revert-check-vc-info' is non-nil, Auto
Revert mode reliably updates version control info (such as the version
control number in the mode line), in all version controlled buffers in
which it is active. If the option is nil, the default, then this info
** Changes in Hi Lock
-*** hi-lock-mode now only affects a single buffer, and a new function
-`global-hi-lock-mode' enables Hi Lock in all buffers. By default, if
+*** 'hi-lock-mode' now only affects a single buffer, and a new function
+'global-hi-lock-mode' enables Hi Lock in all buffers. By default, if
hi-lock-mode is used in what appears to be the initialization file, a
warning message suggests to use global-hi-lock-mode instead. However,
-if the new variable `hi-lock-archaic-interface-deduce' is non-nil,
+if the new variable 'hi-lock-archaic-interface-deduce' is non-nil,
using hi-lock-mode in an initialization file will turn on Hi Lock in all
buffers and no warning will be issued (for compatibility with the
behavior in older versions of Emacs).
*** Default command prefix was changed to "\C-c " (control-c space), to
avoid intruding on user's keybinding space. Customize the
-`allout-command-prefix' variable to your preference.
+'allout-command-prefix' variable to your preference.
*** Some previously rough topic-header format edge cases are reconciled.
Level 1 topics use the mode's comment format, and lines starting with the
*** Navigation within an item is easier. Repeated beginning-of-line and
end-of-line key commands (usually, ^A and ^E) cycle through the
beginning/end-of-line and then beginning/end of topic, etc. See new
-customization vars `allout-beginning-of-line-cycles' and
-`allout-end-of-line-cycles'.
+customization vars 'allout-beginning-of-line-cycles' and
+'allout-end-of-line-cycles'.
*** New or revised allout-mode activity hooks enable creation of
cooperative enhancements to allout mode without changes to the mode,
itself.
-See `allout-exposure-change-hook', `allout-structure-added-hook',
-`allout-structure-deleted-hook', and `allout-structure-shifted-hook'.
+See 'allout-exposure-change-hook', 'allout-structure-added-hook',
+'allout-structure-deleted-hook', and 'allout-structure-shifted-hook'.
-`allout-exposure-change-hook' replaces the existing
-`allout-view-change-hook', which is being deprecated. Both are still
-invoked, but `allout-view-change-hook' will eventually be ignored.
-`allout-exposure-change-hook' is called with explicit arguments detailing
+'allout-exposure-change-hook' replaces the existing
+'allout-view-change-hook', which is being deprecated. Both are still
+invoked, but 'allout-view-change-hook' will eventually be ignored.
+'allout-exposure-change-hook' is called with explicit arguments detailing
the specifics of each change (as are the other new hooks), making it easier
to use than the old version.
-There is a new mode deactivation hook, `allout-mode-deactivate-hook', for
+There is a new mode deactivation hook, 'allout-mode-deactivate-hook', for
coordinating with deactivation of allout-mode. Both that and the mode
-activation hook, `allout-mode-hook' are now run after the `allout-mode'
+activation hook, 'allout-mode-hook' are now run after the 'allout-mode'
variable is changed, rather than before.
-*** Allout now uses text overlay's `invisible' property for concealed text,
+*** Allout now uses text overlay's 'invisible' property for concealed text,
instead of selective-display. This simplifies the code, in particular
avoiding the need for kludges for isearch dynamic-display, discretionary
handling of edits of concealed text, undo concerns, etc.
- repaired inhibition of inadvertent edits to concealed text, without
inhibiting undo; we now reveal undo changes within concealed text.
- auto-fill-mode is now left inactive when allout-mode starts, if it
- already was inactive. also, `allout-inhibit-auto-fill' custom
+ already was inactive. also, 'allout-inhibit-auto-fill' custom
configuration variable makes it easy to disable auto fill in allout
outlines in general or on a per-buffer basis.
- allout now tolerates fielded text in outlines without disruption.
- hot-spot navigation now is modularized with a new function,
- `allout-hotspot-key-handler', enabling easier use and enhancement of
+ 'allout-hotspot-key-handler', enabling easier use and enhancement of
the functionality in allout addons.
- repaired retention of topic body hanging indent upon topic depth shifts
- bulleting variation is simpler and more accommodating, both in the
default behavior and in ability to vary when creating new topics
- mode deactivation now does cleans up effectively, more properly
restoring affected variables and hooks to former state, removing
- overlays, etc. see `allout-add-resumptions' and
- `allout-do-resumptions', which replace the old `allout-resumptions'.
+ overlays, etc. see 'allout-add-resumptions' and
+ 'allout-do-resumptions', which replace the old 'allout-resumptions'.
- included a few unit-tests for interior functionality. developers can
have them automatically run at the end of module load by customizing
- the option `allout-run-unit-tests-on-load'.
+ the option 'allout-run-unit-tests-on-load'.
- many, many other, more minor tweaks, fixes, and refinements.
- version number incremented to 2.2
** Hideshow mode changes
-*** New variable `hs-set-up-overlay' allows customization of the overlay
+*** New variable 'hs-set-up-overlay' allows customization of the overlay
used to effect hiding for hideshow minor mode. Integration with isearch
-handles the overlay property `display' specially, preserving it during
+handles the overlay property 'display' specially, preserving it during
temporary overlay showing in the course of an isearch operation.
-*** New variable `hs-allow-nesting' non-nil means that hiding a block does
+*** New variable 'hs-allow-nesting' non-nil means that hiding a block does
not discard the hidden state of any "internal" blocks; when the parent
block is later shown, the internal blocks remain hidden. Default is nil.
*** New ffap commands and keybindings:
-C-x C-r (`ffap-read-only'),
-C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'),
-C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'),
-C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame').
+C-x C-r ('ffap-read-only'),
+C-x C-v ('ffap-alternate-file'), C-x C-d ('ffap-list-directory'),
+C-x 4 r ('ffap-read-only-other-window'), C-x 4 d ('ffap-dired-other-window'),
+C-x 5 r ('ffap-read-only-other-frame'), C-x 5 d ('ffap-dired-other-frame').
*** FFAP accepts wildcards in a file name by default.
-C-x C-f passes the file name to `find-file' with non-nil WILDCARDS
-argument, which visits multiple files, and C-x d passes it to `dired'.
+C-x C-f passes the file name to 'find-file' with non-nil WILDCARDS
+argument, which visits multiple files, and C-x d passes it to 'dired'.
** Changes in Skeleton
-*** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction.
+*** In skeleton.el, '-' marks the 'skeleton-point' without interregion interaction.
-`@' has reverted to only setting `skeleton-positions' and no longer
-sets `skeleton-point'. Skeletons which used @ to mark
-`skeleton-point' independent of `_' should now use `-' instead. The
-updated `skeleton-insert' docstring explains these new features along
+'@' has reverted to only setting 'skeleton-positions' and no longer
+sets 'skeleton-point'. Skeletons which used @ to mark
+'skeleton-point' independent of '_' should now use '-' instead. The
+updated 'skeleton-insert' docstring explains these new features along
with other details of skeleton construction.
-*** The variables `skeleton-transformation', `skeleton-filter', and
-`skeleton-pair-filter' have been renamed to
-`skeleton-transformation-function', `skeleton-filter-function', and
-`skeleton-pair-filter-function'. The old names are still available
+*** The variables 'skeleton-transformation', 'skeleton-filter', and
+'skeleton-pair-filter' have been renamed to
+'skeleton-transformation-function', 'skeleton-filter-function', and
+'skeleton-pair-filter-function'. The old names are still available
as aliases.
** HTML/SGML changes
automatically.
*** SGML mode has indentation and supports XML syntax.
-The new variable `sgml-xml-mode' tells SGML mode to use XML syntax.
+The new variable 'sgml-xml-mode' tells SGML mode to use XML syntax.
When this option is enabled, SGML tags are inserted in XML style,
i.e., there is always a closing tag.
By default, its setting is inferred on a buffer-by-buffer basis
from the file name or buffer contents.
-*** The variable `sgml-transformation' has been renamed to
-`sgml-transformation-function'. The old name is still available as
+*** The variable 'sgml-transformation' has been renamed to
+'sgml-transformation-function'. The old name is still available as
alias.
-*** `xml-mode' is now an alias for `sgml-mode', which has XML support.
+*** 'xml-mode' is now an alias for 'sgml-mode', which has XML support.
** TeX modes
*** C-c C-c prompts for a command to run, and tries to offer a good default.
-*** The user option `tex-start-options-string' has been replaced
-by two new user options: `tex-start-options', which should hold
-command-line options to feed to TeX, and `tex-start-commands' which should hold
+*** The user option 'tex-start-options-string' has been replaced
+by two new user options: 'tex-start-options', which should hold
+command-line options to feed to TeX, and 'tex-start-commands' which should hold
TeX commands to use at startup.
*** verbatim environments are now highlighted in courier by font-lock
section at point or all sections in the current region, with full
support for multifile documents.
-The new command `reftex-toc-recenter' (`C-c -') shows the current
+The new command 'reftex-toc-recenter' ('C-c -') shows the current
section in the TOC buffer without selecting the TOC window.
Recentering can happen automatically in idle time when the option
-`reftex-auto-recenter-toc' is turned on. The highlight in the TOC
+'reftex-auto-recenter-toc' is turned on. The highlight in the TOC
buffer stays when the focus moves to a different window. A dedicated
frame can show the TOC with the current section always automatically
highlighted. The frame is created and deleted from the toc buffer
-with the `d' key.
+with the 'd' key.
The toc window can be split off horizontally instead of vertically.
-See new option `reftex-toc-split-windows-horizontally'.
+See new option 'reftex-toc-split-windows-horizontally'.
Labels can be renamed globally from the table of contents using the
-key `M-%'.
+key 'M-%'.
-The new command `reftex-goto-label' jumps directly to a label
+The new command 'reftex-goto-label' jumps directly to a label
location.
*** Changes related to citations and BibTeX database files
Commands that insert a citation now prompt for optional arguments when
called with a prefix argument. Related new options are
-`reftex-cite-prompt-optional-args' and `reftex-cite-cleanup-optional-args'.
+'reftex-cite-prompt-optional-args' and 'reftex-cite-cleanup-optional-args'.
-The new command `reftex-create-bibtex-file' creates a BibTeX database
+The new command 'reftex-create-bibtex-file' creates a BibTeX database
with all entries referenced in the current document. The keys "e" and
"E" allow to produce a BibTeX database file from entries marked in a
citation selection buffer.
-The command `reftex-citation' uses the word in the buffer before the
+The command 'reftex-citation' uses the word in the buffer before the
cursor as a default search string.
The support for chapterbib has been improved. Different chapters can
-now use BibTeX or an explicit `thebibliography' environment.
+now use BibTeX or an explicit 'thebibliography' environment.
The macros which specify the bibliography file (like \bibliography)
-can be configured with the new option `reftex-bibliography-commands'.
+can be configured with the new option 'reftex-bibliography-commands'.
Support for jurabib has been added.
*** Global index matched may be verified with a user function.
During global indexing, a user function can verify an index match.
-See new option `reftex-index-verify-function'.
+See new option 'reftex-index-verify-function'.
*** Parsing documents with many labels can be sped up.
Operating in a document with thousands of labels can be sped up
considerably by allowing RefTeX to derive the type of a label directly
-from the label prefix like `eq:' or `fig:'. The option
-`reftex-trust-label-prefix' needs to be configured in order to enable
+from the label prefix like 'eq:' or 'fig:'. The option
+'reftex-trust-label-prefix' needs to be configured in order to enable
this feature. While the speed-up is significant, this may reduce the
quality of the context offered by RefTeX to describe a label.
*** Miscellaneous changes
The macros which input a file in LaTeX (like \input, \include) can be
-configured in the new option `reftex-include-file-commands'.
+configured in the new option 'reftex-include-file-commands'.
RefTeX supports global incremental search.
** BibTeX mode
-*** The new command `bibtex-url' browses a URL for the BibTeX entry at
+*** The new command 'bibtex-url' browses a URL for the BibTeX entry at
point (bound to C-c C-l and mouse-2, RET on clickable fields).
-*** The new command `bibtex-entry-update' (bound to C-c C-u) updates
+*** The new command 'bibtex-entry-update' (bound to C-c C-u) updates
an existing BibTeX entry by inserting fields that may occur but are not
present.
-*** New `bibtex-entry-format' option `required-fields', enabled by default.
+*** New 'bibtex-entry-format' option 'required-fields', enabled by default.
-*** `bibtex-maintain-sorted-entries' can take values `plain',
-`crossref', and `entry-class' which control the sorting scheme used
-for BibTeX entries. `bibtex-sort-entry-class' controls the sorting
-scheme `entry-class'. TAB completion for reference keys and
+*** 'bibtex-maintain-sorted-entries' can take values 'plain',
+'crossref', and 'entry-class' which control the sorting scheme used
+for BibTeX entries. 'bibtex-sort-entry-class' controls the sorting
+scheme 'entry-class'. TAB completion for reference keys and
automatic detection of duplicates does not require anymore that
-`bibtex-maintain-sorted-entries' is non-nil.
+'bibtex-maintain-sorted-entries' is non-nil.
-*** The new command `bibtex-complete' completes word fragment before
+*** The new command 'bibtex-complete' completes word fragment before
point according to context (bound to M-tab).
-*** In BibTeX mode the command `fill-paragraph' (M-q) fills
+*** In BibTeX mode the command 'fill-paragraph' (M-q) fills
individual fields of a BibTeX entry.
-*** The new variable `bibtex-autofill-types' contains a list of entry
+*** The new variable 'bibtex-autofill-types' contains a list of entry
types for which fields are filled automatically (if possible).
-*** The new commands `bibtex-find-entry' and `bibtex-find-crossref'
+*** The new commands 'bibtex-find-entry' and 'bibtex-find-crossref'
locate entries and crossref'd entries (bound to C-c C-s and C-c C-x).
Crossref fields are clickable (bound to mouse-2, RET).
-*** The new variables `bibtex-files' and `bibtex-file-path' define a set
+*** The new variables 'bibtex-files' and 'bibtex-file-path' define a set
of BibTeX files that are searched for entry keys.
-*** The new command `bibtex-validate-globally' checks for duplicate keys
+*** The new command 'bibtex-validate-globally' checks for duplicate keys
in multiple BibTeX files.
-*** If the new variable `bibtex-autoadd-commas' is non-nil,
+*** If the new variable 'bibtex-autoadd-commas' is non-nil,
automatically add missing commas at end of BibTeX fields.
-*** The new command `bibtex-copy-summary-as-kill' pushes summary
+*** The new command 'bibtex-copy-summary-as-kill' pushes summary
of BibTeX entry to kill ring (bound to C-c C-t).
-*** If the new variable `bibtex-parse-keys-fast' is non-nil,
+*** If the new variable 'bibtex-parse-keys-fast' is non-nil,
use fast but simplified algorithm for parsing BibTeX keys.
*** The new variables bibtex-expand-strings and
bibtex-autokey-expand-strings control the expansion of strings when
extracting the content of a BibTeX field.
-*** The variables `bibtex-autokey-name-case-convert' and
-`bibtex-autokey-titleword-case-convert' have been renamed to
-`bibtex-autokey-name-case-convert-function' and
-`bibtex-autokey-titleword-case-convert-function'. The old names are
+*** The variables 'bibtex-autokey-name-case-convert' and
+'bibtex-autokey-titleword-case-convert' have been renamed to
+'bibtex-autokey-name-case-convert-function' and
+'bibtex-autokey-titleword-case-convert-function'. The old names are
still available as aliases.
** GUD changes
*** The variable tooltip-gud-tips-p has been removed. GUD tooltips can now be
toggled independently of normal tooltips with the minor mode
-`gud-tooltip-mode'.
+'gud-tooltip-mode'.
*** In graphical mode, with a C program, GUD Tooltips have been extended to
display the #define directive associated with an identifier when program is
**** Search for source files using jdb classpath and class information.
Fast startup since there is no need to scan all source files up front.
There is also no need to create and maintain lists of source
-directories to scan. Look at `gud-jdb-use-classpath' and
-`gud-jdb-classpath' customization variables documentation.
+directories to scan. Look at 'gud-jdb-use-classpath' and
+'gud-jdb-classpath' customization variables documentation.
**** The previous method of searching for source files has been
preserved in case someone still wants/needs to use it.
-Set `gud-jdb-use-classpath' to nil.
+Set 'gud-jdb-use-classpath' to nil.
**** Supports the standard breakpoint (gud-break, gud-clear)
set/clear operations from Java source files under the classpath, stack
*** Added jdb Customization Variables
-**** `gud-jdb-command-name'. What command line to use to invoke jdb.
+**** 'gud-jdb-command-name'. What command line to use to invoke jdb.
-**** `gud-jdb-use-classpath'. Allows selection of java source file searching
-method: set to t for new method, nil to scan `gud-jdb-directories' for
+**** 'gud-jdb-use-classpath'. Allows selection of java source file searching
+method: set to t for new method, nil to scan 'gud-jdb-directories' for
java sources (previous method).
-**** `gud-jdb-directories'. List of directories to scan and search for Java
-classes using the original gud-jdb method (if `gud-jdb-use-classpath'
+**** 'gud-jdb-directories'. List of directories to scan and search for Java
+classes using the original gud-jdb method (if 'gud-jdb-use-classpath'
is nil).
*** Minor Improvements
**** The STARTTLS wrapper (starttls.el) can now use GnuTLS
-instead of the OpenSSL based `starttls' tool. For backwards
-compatibility, it prefers `starttls', but you can toggle
-`starttls-use-gnutls' to switch to GnuTLS (or simply remove the
-`starttls' tool).
+instead of the OpenSSL based 'starttls' tool. For backwards
+compatibility, it prefers 'starttls', but you can toggle
+'starttls-use-gnutls' to switch to GnuTLS (or simply remove the
+'starttls' tool).
**** Do not allow debugger output history variable to grow without bounds.
** Lisp mode changes
-*** Lisp mode now uses `font-lock-doc-face' for doc strings.
+*** Lisp mode now uses 'font-lock-doc-face' for doc strings.
*** C-u C-M-q in Emacs Lisp mode pretty-prints the list after point.
*** New features in evaluation commands
-**** The function `eval-defun' (C-M-x) called on defface reinitializes
+**** The function 'eval-defun' (C-M-x) called on defface reinitializes
the face to the value specified in the defface expression.
**** Typing C-x C-e twice prints the value of the integer result
in additional formats (octal, hexadecimal, character) specified
-by the new function `eval-expression-print-format'. The same
-function also defines the result format for `eval-expression' (M-:),
-`eval-print-last-sexp' (C-j) and some edebug evaluation functions.
+by the new function 'eval-expression-print-format'. The same
+function also defines the result format for 'eval-expression' (M-:),
+'eval-print-last-sexp' (C-j) and some edebug evaluation functions.
** Changes to cmuscheme
to the Scheme subprocess upon startup.
*** There are new commands to instruct the Scheme interpreter to trace
-procedure calls (`scheme-trace-procedure') and to expand syntactic forms
-(`scheme-expand-current-form'). The commands actually sent to the Scheme
-subprocess are controlled by the user options `scheme-trace-command',
-`scheme-untrace-command' and `scheme-expand-current-form'.
+procedure calls ('scheme-trace-procedure') and to expand syntactic forms
+('scheme-expand-current-form'). The commands actually sent to the Scheme
+subprocess are controlled by the user options 'scheme-trace-command',
+'scheme-untrace-command' and 'scheme-expand-current-form'.
** Ewoc changes
-*** The new function `ewoc-delete' deletes specified nodes.
+*** The new function 'ewoc-delete' deletes specified nodes.
-*** `ewoc-create' now takes optional arg NOSEP, which inhibits insertion of
+*** 'ewoc-create' now takes optional arg NOSEP, which inhibits insertion of
a newline after each pretty-printed entry and after the header and footer.
This allows you to create multiple-entry ewocs on a single line and to
effect "invisible" nodes by arranging for the pretty-printer to not print
For example, these two sequences of expressions behave identically:
-;; NOSEP nil
-(defun PP (data) (insert (format "%S" data)))
-(ewoc-create 'PP "start\n")
+ ;; NOSEP nil
+ (defun PP (data) (insert (format "%S" data)))
+ (ewoc-create 'PP "start\n")
-;; NOSEP t
-(defun PP (data) (insert (format "%S\n" data)))
-(ewoc-create 'PP "start\n\n" "\n" t)
+ ;; NOSEP t
+ (defun PP (data) (insert (format "%S\n" data)))
+ (ewoc-create 'PP "start\n\n" "\n" t)
** CC mode changes
**** Indentation Engine
The CC Mode indentation engine fully supports AWK mode.
-AWK mode handles code formatted in the conventional AWK fashion: `{'s
+AWK mode handles code formatted in the conventional AWK fashion: '{'s
which start actions, user-defined functions, or compound statements are
-placed on the same line as the associated construct; the matching `}'s
+placed on the same line as the associated construct; the matching '}'s
are normally placed under the start of the respective pattern, function
definition, or structured statement.
**** The new command c-subword-mode is bound to C-c C-w.
-*** C-c C-s (`c-show-syntactic-information') now highlights the anchor
+*** C-c C-s ('c-show-syntactic-information') now highlights the anchor
position(s).
*** New syntactic symbols in IDL mode.
composition-close, and incomposition.
*** New functions to do hungry delete without enabling hungry delete mode.
-The new functions `c-hungry-backspace' and `c-hungry-delete-forward'
+The new functions 'c-hungry-backspace' and 'c-hungry-delete-forward'
provide hungry deletion without having to toggle a mode. They are
bound to C-c C-DEL and C-c C-d (and several variants, for the benefit
of different keyboard setups. See "Changes in key sequences" above).
-*** Better control over `require-final-newline'.
+*** Better control over 'require-final-newline'.
-The variable `c-require-final-newline' specifies which of the modes
+The variable 'c-require-final-newline' specifies which of the modes
implemented by CC mode should insert final newlines. Its value is a
list of modes, and only those modes should do it. By default the list
includes C, C++ and Objective-C modes.
-Whichever modes are in this list will set `require-final-newline'
-based on `mode-require-final-newline'.
+Whichever modes are in this list will set 'require-final-newline'
+based on 'mode-require-final-newline'.
*** Format change for syntactic context elements.
-The elements in the syntactic context returned by `c-guess-basic-syntax'
-and stored in `c-syntactic-context' has been changed somewhat to allow
+The elements in the syntactic context returned by 'c-guess-basic-syntax'
+and stored in 'c-syntactic-context' has been changed somewhat to allow
attaching more information. They are now lists instead of single cons
cells. E.g. a line that previously had the syntactic analysis
In some cases there are more than one position given for a syntactic
symbol.
-This change might affect code that calls `c-guess-basic-syntax'
+This change might affect code that calls 'c-guess-basic-syntax'
directly, and custom lineup functions if they use
-`c-syntactic-context'. However, the argument given to lineup
+'c-syntactic-context'. However, the argument given to lineup
functions is still a single cons cell with nil or an integer in the
cdr.
**** New initialization functions.
The initialization procedure has been split up into more functions to
-give better control: `c-basic-common-init', `c-font-lock-init', and
-`c-init-language-vars'.
+give better control: 'c-basic-common-init', 'c-font-lock-init', and
+'c-init-language-vars'.
*** Changes in analysis of nested syntactic constructs.
The syntactic analysis engine has better handling of cases where
**** Syntactic indentation inside macros.
The contents of multiline #define's are now analyzed and indented
syntactically just like other code. This can be disabled by the new
-variable `c-syntactic-indentation-in-macros'. A new syntactic symbol
-`cpp-define-intro' has been added to control the initial indentation
-inside `#define's.
+variable 'c-syntactic-indentation-in-macros'. A new syntactic symbol
+'cpp-define-intro' has been added to control the initial indentation
+inside '#define's.
-**** New lineup function `c-lineup-cpp-define'.
+**** New lineup function 'c-lineup-cpp-define'.
Now used by default to line up macro continuation lines. The behavior
of this function closely mimics the indentation one gets if the macro
is indented while the line continuation backslashes are temporarily
removed. If syntactic indentation in macros is turned off, it works
-much line `c-lineup-dont-change', which was used earlier, but handles
+much line 'c-lineup-dont-change', which was used earlier, but handles
empty lines within the macro better.
**** Automatically inserted newlines continues the macro if used within one.
This applies to the newlines inserted by the auto-newline mode, and to
-`c-context-line-break' and `c-context-open-line'.
+'c-context-line-break' and 'c-context-open-line'.
**** Better alignment of line continuation backslashes.
-`c-backslash-region' tries to adapt to surrounding backslashes. New
-variable `c-backslash-max-column' puts a limit on how far out
+'c-backslash-region' tries to adapt to surrounding backslashes. New
+variable 'c-backslash-max-column' puts a limit on how far out
backslashes can be moved.
**** Automatic alignment of line continuation backslashes.
-This is controlled by the new variable `c-auto-align-backslashes'. It
-affects `c-context-line-break', `c-context-open-line' and newlines
+This is controlled by the new variable 'c-auto-align-backslashes'. It
+affects 'c-context-line-break', 'c-context-open-line' and newlines
inserted in Auto-Newline mode.
**** Line indentation works better inside macros.
*** indent-for-comment is more customizable.
The behavior of M-; (indent-for-comment) is now configurable through
-the variable `c-indent-comment-alist'. The indentation behavior is
+the variable 'c-indent-comment-alist'. The indentation behavior is
based on the preceding code on the line, e.g. to get two spaces after
-#else and #endif but indentation to `comment-column' in most other
+#else and #endif but indentation to 'comment-column' in most other
cases (something which was hardcoded earlier).
-*** New function `c-context-open-line'.
-It's the open-line equivalent of `c-context-line-break'.
+*** New function 'c-context-open-line'.
+It's the open-line equivalent of 'c-context-line-break'.
*** New clean-ups
-**** `comment-close-slash'.
+**** 'comment-close-slash'.
With this clean-up, a block (i.e. c-style) comment can be terminated by
typing a slash at the start of a line.
-**** `c-one-liner-defun'
+**** 'c-one-liner-defun'
This clean-up compresses a short enough defun (for example, an AWK
pattern/action pair) onto a single line. "Short enough" is configurable.
*** New lineup functions
-**** `c-lineup-string-cont'
+**** 'c-lineup-string-cont'
This lineup function lines up a continued string under the one it
continues. E.g:
result = prefix + "A message "
"string."; <- c-lineup-string-cont
-**** `c-lineup-cascaded-calls'
+**** 'c-lineup-cascaded-calls'
Lines up series of calls separated by "->" or ".".
-**** `c-lineup-knr-region-comment'
+**** 'c-lineup-knr-region-comment'
Gives (what most people think is) better indentation of comments in
the "K&R region" between the function header and its body.
-**** `c-lineup-gcc-asm-reg'
+**** 'c-lineup-gcc-asm-reg'
Provides better indentation inside asm blocks.
-**** `c-lineup-argcont'
+**** 'c-lineup-argcont'
Lines up continued function arguments after the preceding comma.
*** Added toggle for syntactic indentation.
-The function `c-toggle-syntactic-indentation' can be used to toggle
+The function 'c-toggle-syntactic-indentation' can be used to toggle
syntactic indentation.
*** Better caching of the syntactic context.
"invalid" context, e.g. in a function argument. In practice that can
happen when macros are involved.
-*** Improved the way `c-indent-exp' chooses the block to indent.
+*** Improved the way 'c-indent-exp' chooses the block to indent.
It now indents the block for the closest sexp following the point
whose closing paren ends on a different line. This means that the
point doesn't have to be immediately before the block to indent.
are new. Font-locking is robust now and offers new customizable
faces.
-*** The variable `makefile-query-one-target-method' has been renamed
-to `makefile-query-one-target-method-function'. The old name is still
+*** The variable 'makefile-query-one-target-method' has been renamed
+to 'makefile-query-one-target-method-function'. The old name is still
available as alias.
** Sql changes
-*** The variable `sql-product' controls the highlighting of different
+*** The variable 'sql-product' controls the highlighting of different
SQL dialects. This variable can be set globally via Customize, on a
buffer-specific basis via local variable settings, or for the current
session using the new SQL->Product submenu. (This menu replaces the
The current product name will be shown on the mode line following the
SQL mode indicator.
-The technique of setting `sql-mode-font-lock-defaults' directly in
-your `.emacs' will no longer establish the default highlighting -- Use
-`sql-product' to accomplish this.
+The technique of setting 'sql-mode-font-lock-defaults' directly in
+your '.emacs' will no longer establish the default highlighting -- Use
+'sql-product' to accomplish this.
ANSI keywords are always highlighted.
-*** The function `sql-add-product-keywords' can be used to add
+*** The function 'sql-add-product-keywords' can be used to add
font-lock rules to the product specific rules. For example, to have
-all identifiers ending in `_t' under MS SQLServer treated as a type,
+all identifiers ending in '_t' under MS SQLServer treated as a type,
you would use the following line in your .emacs file:
- (sql-add-product-keywords 'ms
- '(("\\<\\w+_t\\>" . font-lock-type-face)))
+ (sql-add-product-keywords 'ms '(("\\<\\w+_t\\>" . font-lock-type-face)))
*** Oracle support includes keyword highlighting for Oracle 9i.
Most SQL and PL/SQL keywords are implemented. SQL*Plus commands are
-highlighted in `font-lock-doc-face'.
+highlighted in 'font-lock-doc-face'.
*** Microsoft SQLServer support has been significantly improved.
are displayed when they occur rather than when the session is
terminated.
-If the username and password are not provided to `sql-ms', osql is
-called with the `-E' command line argument to use the operating system
+If the username and password are not provided to 'sql-ms', osql is
+called with the '-E' command line argument to use the operating system
credentials to authenticate the user.
*** Postgres support is enhanced.
Keyword highlighting of Postgres 7.3 is implemented. Prompting for
-the username and the pgsql `-U' option is added.
+the username and the pgsql '-U' option is added.
*** MySQL support is enhanced.
Keyword highlighting of MySql 4.0 is implemented.
defaults.
*** Added SQL->Start SQLi Session menu entry which calls the
-appropriate `sql-interactive-mode' wrapper for the current setting of
-`sql-product'.
+appropriate 'sql-interactive-mode' wrapper for the current setting of
+'sql-product'.
*** sql.el supports the SQLite interpreter--call 'sql-sqlite'.
** Fortran mode changes
-*** F90 mode and Fortran mode have support for `hs-minor-mode' (hideshow).
+*** F90 mode and Fortran mode have support for 'hs-minor-mode' (hideshow).
It cannot deal with every code format, but ought to handle a sizable
majority.
*** F90 mode and Fortran mode have new navigation commands
-`f90-end-of-block', `f90-beginning-of-block', `f90-next-block',
-`f90-previous-block', `fortran-end-of-block',
-`fortran-beginning-of-block'.
+'f90-end-of-block', 'f90-beginning-of-block', 'f90-next-block',
+'f90-previous-block', 'fortran-end-of-block',
+'fortran-beginning-of-block'.
*** Fortran mode does more font-locking by default. Use level 3
highlighting for the old default.
-*** Fortran mode has a new variable `fortran-directive-re'.
+*** Fortran mode has a new variable 'fortran-directive-re'.
Adapt this to match the format of any compiler directives you use.
Lines that match are never indented, and are given distinctive font-locking.
-*** The new function `f90-backslash-not-special' can be used to change
+*** The new function 'f90-backslash-not-special' can be used to change
the syntax of backslashes in F90 buffers.
** Miscellaneous programming mode changes
*** In sh-script, a continuation line is only indented if the backslash was
preceded by a SPC or a TAB.
-*** Perl mode has a new variable `perl-indent-continued-arguments'.
+*** Perl mode has a new variable 'perl-indent-continued-arguments'.
*** The old Octave mode bindings C-c f and C-c i have been changed
to C-c C-f and C-c C-i. The C-c C-i subcommands now have duplicate
bindings on control characters--thus, C-c C-i C-b is the same as
C-c C-i b, and so on.
-*** Prolog mode has a new variable `prolog-font-lock-keywords'
+*** Prolog mode has a new variable 'prolog-font-lock-keywords'
to support use of font-lock.
** VC Changes
*** New backends for Subversion and Meta-CVS.
-*** The new variable `vc-cvs-global-switches' specifies switches that
+*** The new variable 'vc-cvs-global-switches' specifies switches that
are passed to any CVS command invoked by VC.
These switches are used as "global options" for CVS, which means they
are inserted before the command name. For example, this allows you to
-specify a compression level using the `-z#' option for CVS.
+specify a compression level using the '-z#' option for CVS.
*** The key C-x C-q only changes the read-only state of the buffer
(toggle-read-only). It no longer checks files in or out.
We made this change because we held a poll and found that many users
were unhappy with the previous behavior. If you do prefer this
-behavior, you can bind `vc-toggle-read-only' to C-x C-q in your
-`.emacs' file:
+behavior, you can bind 'vc-toggle-read-only' to C-x C-q in your
+'.emacs' file:
(global-set-key "\C-x\C-q" 'vc-toggle-read-only)
-The function `vc-toggle-read-only' will continue to exist.
+The function 'vc-toggle-read-only' will continue to exist.
*** VC-Annotate mode enhancements
** pcl-cvs changes
-*** In pcl-cvs mode, there is a new `d y' command to view the diffs
+*** In pcl-cvs mode, there is a new 'd y' command to view the diffs
between the local version of the file and yesterday's head revision
in the repository.
-*** In pcl-cvs mode, there is a new `d r' command to view the changes
+*** In pcl-cvs mode, there is a new 'd r' command to view the changes
anyone has committed to the repository since you last executed
-`checkout', `update' or `commit'. That means using cvs diff options
+'checkout', 'update' or 'commit'. That means using cvs diff options
-rBASE -rHEAD.
** Diff changes
These are the new bindings:
-C-c C-e diff-ediff-patch (old M-A)
-C-c C-n diff-restrict-view (old M-r)
-C-c C-r diff-reverse-direction (old M-R)
-C-c C-u diff-context->unified (old M-U)
-C-c C-w diff-refine-hunk (old C-c C-r)
+C-c C-e 'diff-ediff-patch' (old M-A)
+C-c C-n 'diff-restrict-view' (old M-r)
+C-c C-r 'diff-reverse-direction' (old M-R)
+C-c C-u 'diff-context->unified' (old M-U)
+C-c C-w 'diff-refine-hunk' (old C-c C-r)
To convert unified to context format, use C-u C-c C-u.
In addition, C-c C-u now operates on the region
then it reverts to the old behavior and asks the user to select regions for
comparison.
-*** The new command `ediff-backup' compares a file with its most recent
-backup using `ediff'. If you specify the name of a backup file,
-`ediff-backup' compares it with the file of which it is a backup.
+*** The new command 'ediff-backup' compares a file with its most recent
+backup using 'ediff'. If you specify the name of a backup file,
+'ediff-backup' compares it with the file of which it is a backup.
** Etags changes.
The syntax --ignore-case-regexp=/regex/ is now undocumented and retained
only for backward compatibility. The new equivalent syntax is
--regex=/regex/i. More generally, it is --regex=/TAGREGEX/TAGNAME/MODS,
-where `/TAGNAME' is optional, as usual, and MODS is a string of 0 or
-more characters among `i' (ignore case), `m' (multi-line) and `s'
-(single-line). The `m' and `s' modifiers behave as in Perl regular
-expressions: `m' allows regexps to match more than one line, while `s'
-(which implies `m') means that `.' matches newlines. The ability to
+where '/TAGNAME' is optional, as usual, and MODS is a string of 0 or
+more characters among 'i' (ignore case), 'm' (multi-line) and 's'
+(single-line). The 'm' and 's' modifiers behave as in Perl regular
+expressions: 'm' allows regexps to match more than one line, while 's'
+(which implies 'm') means that '.' matches newlines. The ability to
span newlines allows writing of much more powerful regular expressions
and rapid prototyping for tagging new languages.
**** New language HTML.
-Tags are generated for `title' as well as `h1', `h2', and `h3'. Also,
-when `name=' is used inside an anchor and whenever `id=' is used.
+Tags are generated for 'title' as well as 'h1', 'h2', and 'h3'. Also,
+when 'name=' is used inside an anchor and whenever 'id=' is used.
**** New language PHP.
All functions are tagged.
-**** The `::' qualifier triggers C++ parsing in C file.
+**** The '::' qualifier triggers C++ parsing in C file.
-Previously, only the `template' and `class' keywords had this effect.
+Previously, only the 'template' and 'class' keywords had this effect.
**** The GCC __attribute__ keyword is now recognized and ignored.
** Rmail changes
-*** Support for `movemail' from GNU mailutils was added to Rmail.
+*** Support for 'movemail' from GNU mailutils was added to Rmail.
-This version of `movemail' allows you to read mail from a wide range of
+This version of 'movemail' allows you to read mail from a wide range of
mailbox formats, including remote POP3 and IMAP4 mailboxes with or
without TLS encryption. If GNU mailutils is installed on the system
-and its version of `movemail' can be found in exec-path, it will be
+and its version of 'movemail' can be found in exec-path, it will be
used instead of the native one.
-*** The new commands rmail-end-of-message and rmail-summary end-of-message,
-by default bound to `/', go to the end of the current mail message in
+*** The new commands 'rmail-end-of-message' and 'rmail-summary-end-of-message',
+by default bound to '/', go to the end of the current mail message in
Rmail and Rmail summary buffers.
*** Rmail now displays 5-digit message ids in its summary buffer.
** Miscellaneous mail changes
-*** The new variable `mail-default-directory' specifies
-`default-directory' for mail buffers. This directory is used for
+*** The new variable 'mail-default-directory' specifies
+'default-directory' for mail buffers. This directory is used for
auto-save files of mail buffers. It defaults to "~/".
*** The mode line can indicate new mail in a directory or file.
-See the documentation of the user option `display-time-mail-directory'.
+See the documentation of the user option 'display-time-mail-directory'.
** Calendar changes
*** The new package cal-html.el writes HTML files with calendar and
diary entries.
-*** The new functions `diary-from-outlook', `diary-from-outlook-gnus',
-and `diary-from-outlook-rmail' can be used to import diary entries
+*** The new functions 'diary-from-outlook', 'diary-from-outlook-gnus',
+and 'diary-from-outlook-rmail' can be used to import diary entries
from Outlook-format appointments in mail messages. The variable
-`diary-outlook-formats' can be customized to recognize additional
+'diary-outlook-formats' can be customized to recognize additional
formats.
*** The procedure for activating appointment reminders has changed:
-use the new function `appt-activate'. The new variable
-`appt-display-format' controls how reminders are displayed, replacing
-`appt-issue-message', `appt-visible', and `appt-msg-window'.
+use the new function 'appt-activate'. The new variable
+'appt-display-format' controls how reminders are displayed, replacing
+'appt-issue-message', 'appt-visible', and 'appt-msg-window'.
-*** The function `simple-diary-display' now by default sets a header line.
-This can be controlled through the variables `diary-header-line-flag'
-and `diary-header-line-format'.
+*** The function 'simple-diary-display' now by default sets a header line.
+This can be controlled through the variables 'diary-header-line-flag'
+and 'diary-header-line-format'.
*** Diary sexp entries can have custom marking in the calendar.
Diary sexp functions which only apply to certain days (such as
-`diary-block' or `diary-cyclic') now take an optional parameter MARK,
+'diary-block' or 'diary-cyclic') now take an optional parameter MARK,
which is the name of a face or a single-character string indicating
how to highlight the day in the calendar display. Specifying a
single-character string as @var{mark} places the character next to the
*** You can now use < and >, instead of C-x < and C-x >, to scroll
the calendar left or right.
-*** The new function `calendar-goto-day-of-year' (g D) prompts for a
+*** The new function 'calendar-goto-day-of-year' (g D) prompts for a
year and day number, and moves to that date. Negative day numbers
count backward from the end of the year.
-*** The new Calendar function `calendar-goto-iso-week' (g w)
+*** The new Calendar function 'calendar-goto-iso-week' (g w)
prompts for a year and a week number, and moves to the first
day of that ISO week.
-*** The functions `holiday-easter-etc' and `holiday-advent' now take
+*** The functions 'holiday-easter-etc' and 'holiday-advent' now take
optional arguments, in order to only report on the specified holiday
rather than all. This makes customization of variables such as
-`christian-holidays' simpler.
+'christian-holidays' simpler.
-*** The new variable `calendar-minimum-window-height' affects the
-window generated by the function `generate-calendar-window'.
+*** The new variable 'calendar-minimum-window-height' affects the
+window generated by the function 'generate-calendar-window'.
** Speedbar changes
*** Speedbar items can now be selected by clicking mouse-1, based on
-the `mouse-1-click-follows-link' mechanism.
+the 'mouse-1-click-follows-link' mechanism.
-*** The new command `speedbar-toggle-line-expansion', bound to SPC,
+*** The new command 'speedbar-toggle-line-expansion', bound to SPC,
contracts or expands the line under the cursor.
-*** New command `speedbar-create-directory', bound to `M'.
+*** New command 'speedbar-create-directory', bound to 'M'.
-*** The new commands `speedbar-expand-line-descendants' and
-`speedbar-contract-line-descendants', bound to `[' and `]'
+*** The new commands 'speedbar-expand-line-descendants' and
+'speedbar-contract-line-descendants', bound to '[' and ']'
respectively, expand and contract the line under cursor with all of
its descendants.
-*** The new user option `speedbar-use-tool-tips-flag', if non-nil,
+*** The new user option 'speedbar-use-tool-tips-flag', if non-nil,
means to display tool-tips for speedbar items.
-*** The new user option `speedbar-query-confirmation-method' controls
+*** The new user option 'speedbar-query-confirmation-method' controls
how querying is performed for file operations. A value of 'always
means to always query before file operations; 'none-but-delete means
to not query before any file operations, except before a file
deletion.
-*** The new user option `speedbar-select-frame-method' specifies how
+*** The new user option 'speedbar-select-frame-method' specifies how
to select a frame for displaying a file opened with the speedbar. A
value of 'attached means to use the attached frame (the frame that
speedbar was started from.) A number such as 1 or -1 means to pass
-that number to `other-frame'.
+that number to 'other-frame'.
*** SPC and DEL are no longer bound to scroll up/down in the speedbar
keymap.
*** The frame management code in speedbar.el has been split into a new
-`dframe' library. Emacs Lisp code that makes use of the speedbar
-should use `dframe-attached-frame' instead of
-`speedbar-attached-frame', `dframe-timer' instead of `speedbar-timer',
-`dframe-close-frame' instead of `speedbar-close-frame', and
-`dframe-activity-change-focus-flag' instead of
-`speedbar-activity-change-focus-flag'. The variables
-`speedbar-update-speed' and `speedbar-navigating-speed' are also
-obsolete; use `dframe-update-speed' instead.
+'dframe' library. Emacs Lisp code that makes use of the speedbar
+should use 'dframe-attached-frame' instead of
+'speedbar-attached-frame', 'dframe-timer' instead of 'speedbar-timer',
+'dframe-close-frame' instead of 'speedbar-close-frame', and
+'dframe-activity-change-focus-flag' instead of
+'speedbar-activity-change-focus-flag'. The variables
+'speedbar-update-speed' and 'speedbar-navigating-speed' are also
+obsolete; use 'dframe-update-speed' instead.
** battery.el changes
-*** display-battery-mode replaces display-battery.
+*** 'display-battery-mode' replaces 'display-battery'.
*** battery.el now works on recent versions of Mac OS X.
** Games
-*** The game `mpuz' is enhanced.
+*** The game 'mpuz' is enhanced.
-`mpuz' now allows the 2nd factor not to have two identical digits. By
+'mpuz' now allows the 2nd factor not to have two identical digits. By
default, all trivial operations involving whole lines are performed
automatically. The game uses faces for better visual feedback.
** Miscellaneous
-*** The variable `woman-topic-at-point' is renamed
-to `woman-use-topic-at-point' and behaves differently: if this
-variable is non-nil, the `woman' command uses the word at point
+*** The variable 'woman-topic-at-point' is renamed
+to 'woman-use-topic-at-point' and behaves differently: if this
+variable is non-nil, the 'woman' command uses the word at point
automatically, without asking for a confirmation. Otherwise, the word
at point is suggested as default, but not inserted at the prompt.
-*** You can now customize `fill-nobreak-predicate' to control where
+*** You can now customize 'fill-nobreak-predicate' to control where
filling can break lines. The value is now normally a list of
functions, but it can also be a single function, for compatibility.
-Emacs provide two predicates, `fill-single-word-nobreak-p' and
-`fill-french-nobreak-p', for use as the value of
-`fill-nobreak-predicate'.
+Emacs provide two predicates, 'fill-single-word-nobreak-p' and
+'fill-french-nobreak-p', for use as the value of
+'fill-nobreak-predicate'.
*** M-x view-file and commands that use it now avoid interfering
with special modes such as Tar mode.
-*** `global-whitespace-mode' is a new alias for `whitespace-global-mode'.
+*** 'global-whitespace-mode' is a new alias for 'whitespace-global-mode'.
*** The saveplace.el package now filters out unreadable files.
When you exit Emacs, the saved positions in visited files no longer
include files that aren't readable, e.g. files that don't exist.
-Customize the new option `save-place-forget-unreadable-files' to nil
-to get the old behavior. The new options `save-place-save-skipped'
-and `save-place-skip-check-regexp' allow further fine-tuning of this
+Customize the new option 'save-place-forget-unreadable-files' to nil
+to get the old behavior. The new options 'save-place-save-skipped'
+and 'save-place-skip-check-regexp' allow further fine-tuning of this
feature.
-*** Commands `winner-redo' and `winner-undo', from winner.el, are now
+*** Commands 'winner-redo' and 'winner-undo', from winner.el, are now
bound to C-c <left> and C-c <right>, respectively. This is an
incompatible change.
-*** The type-break package now allows `type-break-file-name' to be nil
+*** The 'type-break' package now allows 'type-break-file-name' to be nil
and if so, doesn't store any data across sessions. This is handy if
-you don't want the `.type-break' file in your home directory or are
+you don't want the '.type-break' file in your home directory or are
annoyed by the need for interaction when you kill Emacs.
-*** `ps-print' can now print characters from the mule-unicode charsets.
+*** 'ps-print' can now print characters from the mule-unicode charsets.
Printing text with characters from the mule-unicode-* sets works with
-`ps-print', provided that you have installed the appropriate BDF
+'ps-print', provided that you have installed the appropriate BDF
fonts. See the file INSTALL for URLs where you can find these fonts.
-*** New command `strokes-global-set-stroke-string'.
-This is like `strokes-global-set-stroke', but it allows you to bind
+*** New command 'strokes-global-set-stroke-string'.
+This is like 'strokes-global-set-stroke', but it allows you to bind
the stroke directly to a string to insert. This is convenient for
using strokes as an input method.
-*** In Outline mode, `hide-body' no longer hides lines at the top
+*** In Outline mode, 'hide-body' no longer hides lines at the top
of the file that precede the first header line.
-*** `hide-ifdef-mode' now uses overlays rather than selective-display
+*** 'hide-ifdef-mode' now uses overlays rather than selective-display
to hide its text. This should be mostly transparent but slightly
changes the behavior of motion commands like C-e and C-p.
-*** In Artist mode the variable `artist-text-renderer' has been
-renamed to `artist-text-renderer-function'. The old name is still
+*** In Artist mode the variable 'artist-text-renderer' has been
+renamed to 'artist-text-renderer-function'. The old name is still
available as alias.
-*** In Enriched mode, `set-left-margin' and `set-right-margin' are now
-by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l'
-and `C-c C-r'.
+*** In Enriched mode, 'set-left-margin' and 'set-right-margin' are now
+by default bound to 'C-c [' and 'C-c ]' instead of the former 'C-c C-l'
+and 'C-c C-r'.
-*** `partial-completion-mode' now handles partial completion on directory names.
+*** 'partial-completion-mode' now handles partial completion on directory names.
*** You can now disable pc-selection-mode after enabling it.
argument it toggles the mode. Turning off PC-Selection mode restores
the global key bindings that were replaced by turning on the mode.
-*** `uniquify-strip-common-suffix' tells uniquify to prefer
-`file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'.
+*** 'uniquify-strip-common-suffix' tells uniquify to prefer
+'file|dir1' and 'file|dir2' to 'file|dir1/subdir' and 'file|dir2/subdir'.
-*** New user option `add-log-always-start-new-record'.
+*** New user option 'add-log-always-start-new-record'.
When this option is enabled, M-x add-change-log-entry always
starts a new record regardless of when the last record is.
*** calculator.el now has radix grouping mode.
-To enable this, set `calculator-output-radix' non-nil. In this mode a
+To enable this, set 'calculator-output-radix' non-nil. In this mode a
separator character is used every few digits, making it easier to see
byte boundaries etc. For more info, see the documentation of the
-variable `calculator-radix-grouping-mode'.
+variable 'calculator-radix-grouping-mode'.
*** LDAP support now defaults to ldapsearch from OpenLDAP version 2.
*** The terminal emulation code in term.el has been improved; it can
run most curses applications now.
-*** Support for `magic cookie' standout modes has been removed.
+*** Support for 'magic cookie' standout modes has been removed.
Emacs still works on terminals that require magic cookies in order to
use standout mode, but they can no longer display mode-lines in
** The HOME directory defaults to Application Data under the user profile.
If you used a previous version of Emacs without setting the HOME
-environment variable and a `.emacs' was saved, then Emacs will continue
+environment variable and a '.emacs' was saved, then Emacs will continue
using C:/ as the default HOME. But if you are installing Emacs afresh,
the default location will be the "Application Data" (or similar
localized name) subdirectory of your user profile. A typical location
of this directory is "C:\Documents and Settings\USERNAME\Application Data",
where USERNAME is your user name.
-This change means that users can now have their own `.emacs' files on
+This change means that users can now have their own '.emacs' files on
shared computers, and the default HOME directory is less likely to be
read-only on computers that are administered by someone else.
** Pointing devices with more than 3 buttons are now supported on MS Windows.
-The new variable `w32-pass-extra-mouse-buttons-to-system' controls
+The new variable 'w32-pass-extra-mouse-buttons-to-system' controls
whether Emacs should handle the extra buttons itself (the default), or
pass them to Windows to be handled with system-wide functions.
colors to the colormap prefixed by System (eg SystemMenu for the
default Menu background, SystemMenuText for the foreground), and uses
some of them to initialize some of the default faces.
-`list-colors-display' shows the list of System color names, in case
+'list-colors-display' shows the list of System color names, in case
you wish to use them in other faces.
** Running in a console window in Windows now uses the console size.
the clipboard should work correctly for your local language without
any customizations.
-** On Mac OS, `keyboard-coding-system' changes based on the keyboard script.
+** On Mac OS, 'keyboard-coding-system' changes based on the keyboard script.
-** The variable `mac-keyboard-text-encoding' and the constants
-`kTextEncodingMacRoman', `kTextEncodingISOLatin1', and
-`kTextEncodingISOLatin2' are obsolete.
+** The variable 'mac-keyboard-text-encoding' and the constants
+'kTextEncodingMacRoman', 'kTextEncodingISOLatin1', and
+'kTextEncodingISOLatin2' are obsolete.
-** The variable `mac-command-key-is-meta' is obsolete. Use
-`mac-command-modifier' and `mac-option-modifier' instead.
+** The variable 'mac-command-key-is-meta' is obsolete. Use
+'mac-command-modifier' and 'mac-option-modifier' instead.
\f
* Incompatible Lisp Changes in Emacs 22.1
** Mode line display ignores text properties as well as the
:propertize and :eval forms in the value of a variable whose
-`risky-local-variable' property is nil.
+'risky-local-variable' property is nil.
-The function `comint-send-input' now accepts 3 optional arguments:
+The function 'comint-send-input' now accepts 3 optional arguments:
(comint-send-input &optional no-newline artificial)
Callers sending input not from the user should use bind the 3rd
-argument `artificial' to a non-nil value, to prevent Emacs from
+argument 'artificial' to a non-nil value, to prevent Emacs from
deleting the part of subprocess output that matches the input.
-** The `read-file-name' function now returns a null string if the
+** The 'read-file-name' function now returns a null string if the
user just types RET.
** The variables post-command-idle-hook and post-command-idle-delay have
combining a face number and a character code into a numeric
glyph code is deprecated.
-Instead, the new functions `make-glyph-code', `glyph-char', and
-`glyph-face' must be used to create and decode glyph codes in
+Instead, the new functions 'make-glyph-code', 'glyph-char', and
+'glyph-face' must be used to create and decode glyph codes in
display tables.
-** `suppress-keymap' now works by remapping `self-insert-command' to
-the command `undefined'. (In earlier Emacs versions, it used
-`substitute-key-definition' to rebind self inserting characters to
-`undefined'.)
+** 'suppress-keymap' now works by remapping 'self-insert-command' to
+the command 'undefined'. (In earlier Emacs versions, it used
+'substitute-key-definition' to rebind self inserting characters to
+'undefined'.)
-** The third argument of `accept-process-output' is now milliseconds.
+** The third argument of 'accept-process-output' is now milliseconds.
It used to be microseconds.
-** The function find-operation-coding-system may be called with a cons
+** The function 'find-operation-coding-system' may be called with a cons
(FILENAME . BUFFER) in the second argument if the first argument
-OPERATION is `insert-file-contents', and thus a function registered in
-`file-coding-system-alist' is also called with such an argument.
+OPERATION is 'insert-file-contents', and thus a function registered in
+'file-coding-system-alist' is also called with such an argument.
** When Emacs receives a USR1 or USR2 signal, this generates
input events: sigusr1 or sigusr2. Use special-event-map to
handle these events.
-** The variable `memory-full' now remains t until
+** The variable 'memory-full' now remains t until
there is no longer a shortage of memory.
** Support for Mocklisp has been removed.
*** New syntax: \s now stands for the SPACE character.
-`?\s' is a new way to write the space character. You must make sure
-it is not followed by a dash, since `?\s-...' indicates the "super"
+'?\s' is a new way to write the space character. You must make sure
+it is not followed by a dash, since '?\s-...' indicates the "super"
modifier. However, it would be strange to write a character constant
-and a following symbol (beginning with `-') with no space between
+and a following symbol (beginning with '-') with no space between
them.
-`\s' stands for space in strings, too, but it is not really meant for
+'\s' stands for space in strings, too, but it is not really meant for
strings; it is easier and nicer just to write a space.
*** New syntax: \uXXXX and \UXXXXXXXX specify Unicode code points in hex.
For instance, you can use "\u0428" to specify a string consisting of
-CYRILLIC CAPITAL LETTER SHA, or `"U0001D6E2" to specify one consisting
+CYRILLIC CAPITAL LETTER SHA, or "\U0001D6E2" to specify one consisting
of MATHEMATICAL ITALIC CAPITAL ALPHA (the latter is greater than
#xFFFF and thus needs the longer syntax).
This syntax works for both character constants and strings.
-*** New function `unsafep' determines whether a Lisp form is safe.
+*** New function 'unsafep' determines whether a Lisp form is safe.
It returns nil if the given Lisp form can't possibly do anything
dangerous; otherwise it returns a reason why the form might be unsafe
(calls unknown function, alters global variable, etc.).
-*** The function `eql' is now available without requiring the CL package.
+*** The function 'eql' is now available without requiring the CL package.
-*** The new function `memql' is like `memq', but uses `eql' for comparison,
-that is, floats are compared by value and other elements with `eq'.
+*** The new function 'memql' is like 'memq', but uses 'eql' for comparison,
+that is, floats are compared by value and other elements with 'eq'.
-*** New functions `string-or-null-p' and `booleanp'.
+*** New functions 'string-or-null-p' and 'booleanp'.
-`string-or-null-p' returns non-nil if OBJECT is a string or nil.
-`booleanp' returns non-nil if OBJECT is t or nil.
+'string-or-null-p' returns non-nil if OBJECT is a string or nil.
+'booleanp' returns non-nil if OBJECT is t or nil.
-*** `makehash' is now obsolete. Use `make-hash-table' instead.
+*** 'makehash' is now obsolete. Use 'make-hash-table' instead.
-*** Minor change in the function `format'.
+*** Minor change in the function 'format'.
Some flags that were accepted but not implemented (such as "*") are no
longer accepted.
-*** `add-to-list' takes an optional third argument, APPEND.
+*** 'add-to-list' takes an optional third argument, APPEND.
If APPEND is non-nil, the new element gets added at the end of the
list instead of at the beginning. This change actually occurred in
Emacs 21.1, but was not documented then.
-*** New function `add-to-ordered-list' is like `add-to-list' but
+*** New function 'add-to-ordered-list' is like 'add-to-list' but
associates a numeric ordering of each element added to the list.
-*** New function `add-to-history' adds an element to a history list.
+*** New function 'add-to-history' adds an element to a history list.
Lisp packages should use this function to add elements to their
history lists.
-If `history-delete-duplicates' is non-nil, it removes duplicates of
+If 'history-delete-duplicates' is non-nil, it removes duplicates of
the new element from the history list it updates.
-*** New function `copy-tree' makes a copy of a tree.
+*** New function 'copy-tree' makes a copy of a tree.
It recursively copies through both CARs and CDRs.
-*** New function `delete-dups' deletes `equal' duplicate elements from a list.
+*** New function 'delete-dups' deletes 'equal' duplicate elements from a list.
-It modifies the list destructively, like `delete'. Of several `equal'
+It modifies the list destructively, like 'delete'. Of several 'equal'
occurrences of an element in the list, the one that's kept is the
first one.
-*** New function `rassq-delete-all'.
+*** New function 'rassq-delete-all'.
(rassq-delete-all VALUE ALIST) deletes, from ALIST, each element whose
-CDR is `eq' to the specified value.
+CDR is 'eq' to the specified value.
-*** Functions `get' and `plist-get' no longer give errors for bad plists.
+*** Functions 'get' and 'plist-get' no longer give errors for bad plists.
They return nil for a malformed property list or if the list is
cyclic.
-*** New functions `lax-plist-get' and `lax-plist-put'.
+*** New functions 'lax-plist-get' and 'lax-plist-put'.
-They are like `plist-get' and `plist-put', except that they compare
-the property name using `equal' rather than `eq'.
+They are like 'plist-get' and 'plist-put', except that they compare
+the property name using 'equal' rather than 'eq'.
-*** The function `number-sequence' makes a list of equally-separated numbers.
+*** The function 'number-sequence' makes a list of equally-separated numbers.
For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). By
default, the separation is 1, but you can specify a different
separation as the third argument. (number-sequence 1.5 6 2) returns
(1.5 3.5 5.5).
-*** New variables `most-positive-fixnum' and `most-negative-fixnum'.
+*** New variables 'most-positive-fixnum' and 'most-negative-fixnum'.
They hold the largest and smallest possible integer values.
-*** The function `expt' handles negative exponents differently.
-The value for `(expt A B)', if both A and B are integers and B is
+*** The function 'expt' handles negative exponents differently.
+The value for '(expt A B)', if both A and B are integers and B is
negative, is now a float. For example: (expt 2 -2) => 0.25.
-*** The function `atan' now accepts an optional second argument.
+*** The function 'atan' now accepts an optional second argument.
-When called with 2 arguments, as in `(atan Y X)', `atan' returns the
+When called with 2 arguments, as in '(atan Y X)', 'atan' returns the
angle in radians between the vector [X, Y] and the X axis. (This is
-equivalent to the standard C library function `atan2'.)
+equivalent to the standard C library function 'atan2'.)
-*** New macro `with-case-table'
+*** New macro 'with-case-table'
This executes the body with the case table temporarily set to a given
case table.
-*** New macro `with-local-quit' temporarily allows quitting.
+*** New macro 'with-local-quit' temporarily allows quitting.
-A quit inside the body of `with-local-quit' is caught by the
-`with-local-quit' form itself, but another quit will happen later once
+A quit inside the body of 'with-local-quit' is caught by the
+'with-local-quit' form itself, but another quit will happen later once
the code that has inhibited quitting exits.
This is for use around potentially blocking or long-running code
-inside timer functions and `post-command-hook' functions.
+inside timer functions and 'post-command-hook' functions.
-*** New macro `define-obsolete-function-alias'.
+*** New macro 'define-obsolete-function-alias'.
-This combines `defalias' and `make-obsolete'.
+This combines 'defalias' and 'make-obsolete'.
-*** New macro `eval-at-startup' specifies expressions to
+*** New macro 'eval-at-startup' specifies expressions to
evaluate when Emacs starts up. If this is done after startup,
it evaluates those expressions immediately.
This is useful in packages that can be preloaded.
-*** New function `macroexpand-all' expands all macros in a form.
+*** New function 'macroexpand-all' expands all macros in a form.
It is similar to the Common-Lisp function of the same name.
One difference is that it guarantees to return the original argument
-if no expansion is done, which can be tested using `eq'.
+if no expansion is done, which can be tested using 'eq'.
*** A function or macro's doc string can now specify the calling pattern.
specify this explicitly, Emacs determines it from the actual argument
names. Usually that default is right, but not always.
-*** New variable `print-continuous-numbering'.
+*** New variable 'print-continuous-numbering'.
When this is non-nil, successive calls to print functions use a single
numbering scheme for circular structure references. This is only
-relevant when `print-circle' is non-nil.
+relevant when 'print-circle' is non-nil.
-When you bind `print-continuous-numbering' to t, you should
-also bind `print-number-table' to nil.
+When you bind 'print-continuous-numbering' to t, you should
+also bind 'print-number-table' to nil.
-*** `list-faces-display' takes an optional argument, REGEXP.
+*** 'list-faces-display' takes an optional argument, REGEXP.
If it is non-nil, the function lists only faces matching this regexp.
-*** New hook `command-error-function'.
+*** New hook 'command-error-function'.
By setting this variable to a function, you can control
how the editor command loop shows the user an error message.
-*** `debug-on-entry' accepts primitive functions that are not special forms.
+*** 'debug-on-entry' accepts primitive functions that are not special forms.
** Lisp code indentation features:
-*** The `defmacro' form can contain indentation and edebug declarations.
+*** The 'defmacro' form can contain indentation and edebug declarations.
These declarations specify how to indent the macro calls in Lisp mode
and how to debug them with Edebug. You write them like this:
(defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...)
-DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'. The
+DECLARATION is a list '(declare DECLARATION-SPECIFIER ...)'. The
possible declaration specifiers are:
(indent INDENT)
- Set NAME's `lisp-indent-function' property to INDENT.
+ Set NAME's 'lisp-indent-function' property to INDENT.
(edebug DEBUG)
- Set NAME's `edebug-form-spec' property to DEBUG. (This is
- equivalent to writing a `def-edebug-spec' for the macro,
+ Set NAME's 'edebug-form-spec' property to DEBUG. (This is
+ equivalent to writing a 'def-edebug-spec' for the macro,
but this is cleaner.)
*** cl-indent now allows customization of Indentation of backquoted forms.
-See the new user option `lisp-backquote-indentation'.
+See the new user option 'lisp-backquote-indentation'.
-*** cl-indent now handles indentation of simple and extended `loop' forms.
+*** cl-indent now handles indentation of simple and extended 'loop' forms.
-The new user options `lisp-loop-keyword-indentation',
-`lisp-loop-forms-indentation', and `lisp-simple-loop-indentation' can
+The new user options 'lisp-loop-keyword-indentation',
+'lisp-loop-forms-indentation', and 'lisp-simple-loop-indentation' can
be used to customize the indentation of keywords and forms in loop
forms.
** Variable aliases:
-*** New function: defvaralias ALIAS-VAR BASE-VAR [DOCSTRING]
+*** New function: 'defvaralias' ALIAS-VAR BASE-VAR [DOCSTRING]
This function defines the symbol ALIAS-VAR as a variable alias for
symbol BASE-VAR. This means that retrieving the value of ALIAS-VAR
DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has
the same documentation as BASE-VAR.
-*** The macro `define-obsolete-variable-alias' combines `defvaralias' and
-`make-obsolete-variable'.
+*** The macro 'define-obsolete-variable-alias' combines 'defvaralias' and
+'make-obsolete-variable'.
-*** New function: indirect-variable VARIABLE
+*** New function: 'indirect-variable' VARIABLE
This function returns the variable at the end of the chain of aliases
of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not
** defcustom changes:
-*** The package-version keyword has been added to provide
-`customize-changed-options' functionality to packages in the future.
+*** The ':package-version' keyword has been added to provide
+'customize-changed-options' functionality to packages in the future.
Developers who make use of this keyword must also update the new
-variable `customize-package-emacs-version-alist'.
+variable 'customize-package-emacs-version-alist'.
-*** The new customization type `float' requires a floating point number.
+*** The new customization type 'float' requires a floating point number.
** String changes:
*** An octal escape in a string constant forces the string to be unibyte.
-*** New function `string-to-multibyte' converts a unibyte string to a
+*** New function 'string-to-multibyte' converts a unibyte string to a
multibyte string with the same individual character codes.
-*** `split-string' now includes null substrings in the returned list if
+*** 'split-string' now includes null substrings in the returned list if
the optional argument SEPARATORS is non-nil and there are matches for
SEPARATORS at the beginning or end of the string. If SEPARATORS is
nil, or if the new optional third argument OMIT-NULLS is non-nil, all
empty matches are omitted from the returned list.
-*** The new function `assoc-string' replaces `assoc-ignore-case' and
-`assoc-ignore-representation', which are still available, but have
+*** The new function 'assoc-string' replaces 'assoc-ignore-case' and
+'assoc-ignore-representation', which are still available, but have
been declared obsolete.
-*** New function `substring-no-properties' returns a substring without
+*** New function 'substring-no-properties' returns a substring without
text properties.
** Displaying warnings to the user.
-See the functions `warn' and `display-warning', or the Lisp Manual.
+See the functions 'warn' and 'display-warning', or the Lisp Manual.
If you want to be sure the warning will not be overlooked, this
-facility is much better than using `message', since it displays
+facility is much better than using 'message', since it displays
warnings in a separate window.
** Progress reporters.
These provide a simple and uniform way for commands to present
progress messages for the user.
-See the new functions `make-progress-reporter',
-`progress-reporter-update', `progress-reporter-force-update',
-`progress-reporter-done', and `dotimes-with-progress-reporter'.
+See the new functions 'make-progress-reporter',
+'progress-reporter-update', 'progress-reporter-force-update',
+'progress-reporter-done', and 'dotimes-with-progress-reporter'.
** Buffer positions:
-*** Function `compute-motion' now calculates the usable window
+*** Function 'compute-motion' now calculates the usable window
width if the WIDTH argument is nil. If the TOPOS argument is nil,
the usable window height and width is used.
-*** The `line-move', `scroll-up', and `scroll-down' functions will now
+*** The 'line-move', 'scroll-up', and 'scroll-down' functions will now
modify the window vscroll to scroll through display rows that are
taller that the height of the window, for example in the presence of
large images. To disable this feature, bind the new variable
-`auto-window-vscroll' to nil.
+'auto-window-vscroll' to nil.
-*** The argument to `forward-word', `backward-word' is optional.
+*** The argument to 'forward-word', 'backward-word' is optional.
It defaults to 1.
-*** Argument to `forward-to-indentation' and `backward-to-indentation' is optional.
+*** Argument to 'forward-to-indentation' and 'backward-to-indentation' is optional.
It defaults to 1.
-*** `field-beginning' and `field-end' take new optional argument, LIMIT.
+*** 'field-beginning' and 'field-end' take new optional argument, LIMIT.
This argument tells them not to search beyond LIMIT. Instead they
give up and return LIMIT.
-*** New function `window-line-height' is an efficient way to get
+*** New function 'window-line-height' is an efficient way to get
information about a specific text line in a window provided that the
window's display is up-to-date.
-*** New function `line-number-at-pos' returns the line number of a position.
+*** New function 'line-number-at-pos' returns the line number of a position.
It an optional buffer position argument that defaults to point.
-*** Function `pos-visible-in-window-p' now returns the pixel coordinates
+*** Function 'pos-visible-in-window-p' now returns the pixel coordinates
and partial visibility state of the corresponding row, if the PARTIALLY
arg is non-nil.
-*** New functions `posn-at-point' and `posn-at-x-y' return
+*** New functions 'posn-at-point' and 'posn-at-x-y' return
click-event-style position information for a given visible buffer
position or for a given window pixel coordinate.
-*** New function `mouse-on-link-p' tests if a position is in a clickable link.
+*** New function 'mouse-on-link-p' tests if a position is in a clickable link.
-This is the function used by the new `mouse-1-click-follows-link'
+This is the function used by the new 'mouse-1-click-follows-link'
functionality.
** Text modification:
-*** The new function `buffer-chars-modified-tick' returns a buffer's
+*** The new function 'buffer-chars-modified-tick' returns a buffer's
tick counter for changes to characters. Each time text in that buffer
is inserted or deleted, the character-change counter is updated to the
-tick counter (`buffer-modified-tick'). Text property changes leave it
+tick counter ('buffer-modified-tick'). Text property changes leave it
unchanged.
-*** The new function `insert-for-yank' normally works like `insert', but
-removes the text properties in the `yank-excluded-properties' list
-and handles the `yank-handler' text property.
+*** The new function 'insert-for-yank' normally works like 'insert', but
+removes the text properties in the 'yank-excluded-properties' list
+and handles the 'yank-handler' text property.
-*** The new function `insert-buffer-substring-as-yank' is like
-`insert-for-yank' except that it gets the text from another buffer as
-in `insert-buffer-substring'.
+*** The new function 'insert-buffer-substring-as-yank' is like
+'insert-for-yank' except that it gets the text from another buffer as
+in 'insert-buffer-substring'.
-*** The new function `insert-buffer-substring-no-properties' is like
-`insert-buffer-substring', but removes all text properties from the
+*** The new function 'insert-buffer-substring-no-properties' is like
+'insert-buffer-substring', but removes all text properties from the
inserted substring.
-*** The new function `filter-buffer-substring' extracts a buffer
+*** The new function 'filter-buffer-substring' extracts a buffer
substring, passes it through a set of filter functions, and returns
-the filtered substring. Use it instead of `buffer-substring' or
-`delete-and-extract-region' when copying text into a user-accessible
+the filtered substring. Use it instead of 'buffer-substring' or
+'delete-and-extract-region' when copying text into a user-accessible
data structure, such as the kill-ring, X clipboard, or a register.
The list of filter function is specified by the new variable
-`buffer-substring-filters'. For example, Longlines mode adds to
-`buffer-substring-filters' to remove soft newlines from the copied
+'buffer-substring-filters'. For example, Longlines mode adds to
+'buffer-substring-filters' to remove soft newlines from the copied
text.
-*** Function `translate-region' accepts also a char-table as TABLE
+*** Function 'translate-region' accepts also a char-table as TABLE
argument.
-*** The new translation table `translation-table-for-input'
+*** The new translation table 'translation-table-for-input'
is used for customizing self-insertion. The character to
be inserted is translated through it.
*** Text clones.
-The new function `text-clone-create'. Text clones are chunks of text
+The new function 'text-clone-create'. Text clones are chunks of text
that are kept identical by transparently propagating changes from one
clone to the other.
-*** The function `insert-string' is now obsolete.
+*** The function 'insert-string' is now obsolete.
** Filling changes.
*** In determining an adaptive fill prefix, Emacs now tries the function in
-`adaptive-fill-function' _before_ matching the buffer line against
-`adaptive-fill-regexp' rather than _after_ it.
+'adaptive-fill-function' _before_ matching the buffer line against
+'adaptive-fill-regexp' rather than _after_ it.
** Atomic change groups.
To perform some changes in the current buffer "atomically" so that
-they either all succeed or are all undone, use `atomic-change-group'
+they either all succeed or are all undone, use 'atomic-change-group'
around the code that makes changes. For instance:
(atomic-change-group
(delete-region x y))
If an error (or other nonlocal exit) occurs inside the body of
-`atomic-change-group', it unmakes all the changes in that buffer that
+'atomic-change-group', it unmakes all the changes in that buffer that
were during the execution of the body. The change group has no effect
on any other buffers--any such changes remain.
If you need something more sophisticated, you can directly call the
-lower-level functions that `atomic-change-group' uses. Here is how.
+lower-level functions that 'atomic-change-group' uses. Here is how.
-To set up a change group for one buffer, call `prepare-change-group'.
+To set up a change group for one buffer, call 'prepare-change-group'.
Specify the buffer as argument; it defaults to the current buffer.
This function returns a "handle" for the change group. You must save
the handle to activate the change group and then finish it.
Before you change the buffer again, you must activate the change
-group. Pass the handle to `activate-change-group' afterward to
+group. Pass the handle to 'activate-change-group' afterward to
do this.
After you make the changes, you must finish the change group. You can
either accept the changes or cancel them all. Call
-`accept-change-group' to accept the changes in the group as final;
-call `cancel-change-group' to undo them all.
-
-You should use `unwind-protect' to make sure the group is always
-finished. The call to `activate-change-group' should be inside the
-`unwind-protect', in case the user types C-g just after it runs.
-(This is one reason why `prepare-change-group' and
-`activate-change-group' are separate functions.) Once you finish the
+'accept-change-group' to accept the changes in the group as final;
+call 'cancel-change-group' to undo them all.
+
+You should use 'unwind-protect' to make sure the group is always
+finished. The call to 'activate-change-group' should be inside the
+'unwind-protect', in case the user types C-g just after it runs.
+(This is one reason why 'prepare-change-group' and
+'activate-change-group' are separate functions.) Once you finish the
group, don't use the handle again--don't try to finish the same group
twice.
-To make a multibuffer change group, call `prepare-change-group' once
-for each buffer you want to cover, then use `nconc' to combine the
+To make a multibuffer change group, call 'prepare-change-group' once
+for each buffer you want to cover, then use 'nconc' to combine the
returned values, like this:
(nconc (prepare-change-group buffer-1)
(prepare-change-group buffer-2))
You can then activate the multibuffer change group with a single call
-to `activate-change-group', and finish it with a single call to
-`accept-change-group' or `cancel-change-group'.
+to 'activate-change-group', and finish it with a single call to
+'accept-change-group' or 'cancel-change-group'.
Nested use of several change groups for the same buffer works as you
would expect. Non-nested use of change groups for the same buffer
** Buffer-related changes:
-*** The new function `buffer-local-value' returns the buffer-local
+*** The new function 'buffer-local-value' returns the buffer-local
binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not
have a buffer-local binding in buffer BUFFER, it returns the default
value of VARIABLE instead.
-*** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST.
+*** 'list-buffers-noselect' now takes an additional argument, BUFFER-LIST.
If it is non-nil, it specifies which buffers to list.
-*** `kill-buffer-hook' is now a permanent local.
+*** 'kill-buffer-hook' is now a permanent local.
-*** The function `frame-or-buffer-changed-p' now lets you maintain
+*** The function 'frame-or-buffer-changed-p' now lets you maintain
various status records in parallel.
It takes a variable (a symbol) as argument. If the variable is non-nil,
then its value should be a vector installed previously by
-`frame-or-buffer-changed-p'. If the frame names, buffer names, buffer
+'frame-or-buffer-changed-p'. If the frame names, buffer names, buffer
order, or their read-only or modified flags have changed, since the
time the vector's contents were recorded by a previous call to
-`frame-or-buffer-changed-p', then the function returns t. Otherwise
+'frame-or-buffer-changed-p', then the function returns t. Otherwise
it returns nil.
-On the first call to `frame-or-buffer-changed-p', the variable's
-value should be nil. `frame-or-buffer-changed-p' stores a suitable
+On the first call to 'frame-or-buffer-changed-p', the variable's
+value should be nil. 'frame-or-buffer-changed-p' stores a suitable
vector into the variable and returns t.
-If the variable is itself nil, then `frame-or-buffer-changed-p' uses,
+If the variable is itself nil, then 'frame-or-buffer-changed-p' uses,
for compatibility, an internal variable which exists only for this
purpose.
-*** The function `read-buffer' follows the convention for reading from
+*** The function 'read-buffer' follows the convention for reading from
the minibuffer with a default value: if DEF is non-nil, the minibuffer
prompt provided in PROMPT is edited to show the default value provided
in DEF before the terminal colon and space.
** Searching and matching changes:
-*** New function `looking-back' checks whether a regular expression matches
+*** New function 'looking-back' checks whether a regular expression matches
the text before point. Specifying the LIMIT argument bounds how far
back the match can start; this is a way to keep it from taking too long.
-*** The new variable `search-spaces-regexp' controls how to search
+*** The new variable 'search-spaces-regexp' controls how to search
for spaces in a regular expression. If it is non-nil, it should be a
regular expression, and any series of spaces stands for that regular
expression. If it is nil, spaces stand for themselves.
-Spaces inside of constructs such as `[..]' and inside loops such as
-`*', `+', and `?' are never replaced with `search-spaces-regexp'.
+Spaces inside of constructs such as '[..]' and inside loops such as
+'*', '+', and '?' are never replaced with 'search-spaces-regexp'.
-*** New regular expression operators, `\_<' and `\_>'.
+*** New regular expression operators, '\_<' and '\_>'.
These match the beginning and end of a symbol. A symbol is a
non-empty sequence of either word or symbol constituent characters, as
specified by the syntax table.
-*** `skip-chars-forward' and `skip-chars-backward' now handle
-character classes such as `[:alpha:]', along with individual
+*** 'skip-chars-forward' and 'skip-chars-backward' now handle
+character classes such as '[:alpha:]', along with individual
characters and ranges.
-*** In `replace-match', the replacement text no longer inherits
+*** In 'replace-match', the replacement text no longer inherits
properties from surrounding text.
-*** The list returned by `(match-data t)' now has the buffer as a final
-element, if the last match was on a buffer. `set-match-data'
+*** The list returned by '(match-data t)' now has the buffer as a final
+element, if the last match was on a buffer. 'set-match-data'
accepts such a list for restoring the match state.
-*** Functions `match-data' and `set-match-data' now have an optional
-argument `reseat'. When non-nil, all markers in the match data list
+*** Functions 'match-data' and 'set-match-data' now have an optional
+argument 'reseat'. When non-nil, all markers in the match data list
passed to these functions will be reseated to point to nowhere.
-*** rx.el has new corresponding `symbol-start' and `symbol-end' elements.
+*** rx.el has new corresponding 'symbol-start' and 'symbol-end' elements.
-*** The default value of `sentence-end' is now defined using the new
-variable `sentence-end-without-space', which contains such characters
+*** The default value of 'sentence-end' is now defined using the new
+variable 'sentence-end-without-space', which contains such characters
that end a sentence without following spaces.
-The function `sentence-end' should be used to obtain the value of the
-variable `sentence-end'. If the variable `sentence-end' is nil, then
+The function 'sentence-end' should be used to obtain the value of the
+variable 'sentence-end'. If the variable 'sentence-end' is nil, then
this function returns the regexp constructed from the variables
-`sentence-end-without-period', `sentence-end-double-space' and
-`sentence-end-without-space'.
+'sentence-end-without-period', 'sentence-end-double-space' and
+'sentence-end-without-space'.
** Undo changes:
-*** `buffer-undo-list' allows programmable elements.
+*** 'buffer-undo-list' allows programmable elements.
These elements have the form (apply FUNNAME . ARGS), where FUNNAME is
a symbol other than t or nil. That stands for a high-level change
range BEG...END and increased the buffer size by DELTA.
*** If the buffer's undo list for the current command gets longer than
-`undo-outer-limit', garbage collection empties it. This is to prevent
+'undo-outer-limit', garbage collection empties it. This is to prevent
it from using up the available memory and choking Emacs.
** Killing and yanking changes:
-*** New `yank-handler' text property can be used to control how
+*** New 'yank-handler' text property can be used to control how
previously killed text on the kill ring is reinserted.
-The value of the `yank-handler' property must be a list with one to four
+The value of the 'yank-handler' property must be a list with one to four
elements with the following format:
(FUNCTION PARAM NOEXCLUDE UNDO).
-The `insert-for-yank' function looks for a yank-handler property on
+The 'insert-for-yank' function looks for a yank-handler property on
the first character on its string argument (typically the first
-element on the kill-ring). If a `yank-handler' property is found,
-the normal behavior of `insert-for-yank' is modified in various ways:
+element on the kill-ring). If a 'yank-handler' property is found,
+the normal behavior of 'insert-for-yank' is modified in various ways:
- When FUNCTION is present and non-nil, it is called instead of `insert'
+ When FUNCTION is present and non-nil, it is called instead of 'insert'
to insert the string. FUNCTION takes one argument--the object to insert.
If PARAM is present and non-nil, it replaces STRING as the object
-passed to FUNCTION (or `insert'); for example, if FUNCTION is
-`yank-rectangle', PARAM should be a list of strings to insert as a
+passed to FUNCTION (or 'insert'); for example, if FUNCTION is
+'yank-rectangle', PARAM should be a list of strings to insert as a
rectangle.
If NOEXCLUDE is present and non-nil, the normal removal of the
-`yank-excluded-properties' is not performed; instead FUNCTION is
+'yank-excluded-properties' is not performed; instead FUNCTION is
responsible for removing those properties. This may be necessary
if FUNCTION adjusts point before or after inserting the object.
If UNDO is present and non-nil, it is a function that will be called
-by `yank-pop' to undo the insertion of the current object. It is
+by 'yank-pop' to undo the insertion of the current object. It is
called with two arguments, the start and end of the current region.
-FUNCTION can set `yank-undo-function' to override the UNDO value.
+FUNCTION can set 'yank-undo-function' to override the UNDO value.
-*** The functions `kill-new', `kill-append', and `kill-region' now have an
-optional argument to specify the `yank-handler' text property to put on
+*** The functions 'kill-new', 'kill-append', and 'kill-region' now have an
+optional argument to specify the 'yank-handler' text property to put on
the killed text.
-*** The function `yank-pop' will now use a non-nil value of the variable
-`yank-undo-function' (instead of `delete-region') to undo the previous
-`yank' or `yank-pop' command (or a call to `insert-for-yank'). The function
-`insert-for-yank' automatically sets that variable according to the UNDO
-element of the string argument's `yank-handler' text property if present.
+*** The function 'yank-pop' will now use a non-nil value of the variable
+'yank-undo-function' (instead of 'delete-region') to undo the previous
+'yank' or 'yank-pop' command (or a call to 'insert-for-yank'). The function
+'insert-for-yank' automatically sets that variable according to the UNDO
+element of the string argument's 'yank-handler' text property if present.
-*** The function `insert-for-yank' now supports strings where the
-`yank-handler' property does not span the first character of the
+*** The function 'insert-for-yank' now supports strings where the
+'yank-handler' property does not span the first character of the
string. The old behavior is available if you call
-`insert-for-yank-1' instead.
+'insert-for-yank-1' instead.
** Syntax table changes:
-*** The new function `syntax-ppss' provides an efficient way to find the
+*** The new function 'syntax-ppss' provides an efficient way to find the
current syntactic context at point.
-*** The new function `syntax-after' returns the syntax code
+*** The new function 'syntax-after' returns the syntax code
of the character after a specified buffer position, taking account
of text properties as well as the character code.
-*** `syntax-class' extracts the class of a syntax code (as returned
-by `syntax-after').
+*** 'syntax-class' extracts the class of a syntax code (as returned
+by 'syntax-after').
-*** The macro `with-syntax-table' no longer copies the syntax table.
+*** The macro 'with-syntax-table' no longer copies the syntax table.
** File operation changes:
-*** New vars `exec-suffixes' and `load-suffixes' used when
+*** New vars 'exec-suffixes' and 'load-suffixes' used when
searching for an executable or an Emacs Lisp file.
-*** New function `locate-file' searches for a file in a list of directories.
-`locate-file' accepts a name of a file to search (a string), and two
+*** New function 'locate-file' searches for a file in a list of directories.
+'locate-file' accepts a name of a file to search (a string), and two
lists: a list of directories to search in and a list of suffixes to
-try; typical usage might use `exec-path' and `load-path' for the list
-of directories, and `exec-suffixes' and `load-suffixes' for the list
+try; typical usage might use 'exec-path' and 'load-path' for the list
+of directories, and 'exec-suffixes' and 'load-suffixes' for the list
of suffixes. The function also accepts a predicate argument to
further filter candidate files.
One advantage of using this function is that the list of suffixes in
-`exec-suffixes' is OS-dependent, so this function will find
+'exec-suffixes' is OS-dependent, so this function will find
executables without polluting Lisp code with OS dependencies.
-*** The new function `file-remote-p' tests a file name and returns
+*** The new function 'file-remote-p' tests a file name and returns
non-nil if it specifies a remote file (one that Emacs accesses using
its own special methods and not directly through the file system).
The value in that case is an identifier for the remote file system.
-*** The new hook `before-save-hook' is invoked by `basic-save-buffer'
+*** The new hook 'before-save-hook' is invoked by 'basic-save-buffer'
before saving buffers. This allows packages to perform various final
tasks. For example, it can be used by the copyright package to make
sure saved files have the current year in any copyright headers.
-*** `file-chase-links' now takes an optional second argument LIMIT which
+*** 'file-chase-links' now takes an optional second argument LIMIT which
specifies the maximum number of links to chase through. If after that
many iterations the file name obtained is still a symbolic link,
-`file-chase-links' returns it anyway.
+'file-chase-links' returns it anyway.
-*** Functions `file-name-sans-extension' and `file-name-extension' now
+*** Functions 'file-name-sans-extension' and 'file-name-extension' now
ignore the leading dots in file names, so that file names such as
-`.emacs' are treated as extensionless.
+'.emacs' are treated as extensionless.
-*** If `buffer-save-without-query' is non-nil in some buffer,
-`save-some-buffers' will always save that buffer without asking (if
+*** If 'buffer-save-without-query' is non-nil in some buffer,
+'save-some-buffers' will always save that buffer without asking (if
it's modified).
-*** `buffer-auto-save-file-format' is the new name for what was
-formerly called `auto-save-file-format'. It is now a permanent local.
+*** 'buffer-auto-save-file-format' is the new name for what was
+formerly called 'auto-save-file-format'. It is now a permanent local.
-*** `visited-file-modtime' and `calendar-time-from-absolute' now return
+*** 'visited-file-modtime' and 'calendar-time-from-absolute' now return
a list of two integers, instead of a cons.
*** The precedence of file name handlers has been changed.
Instead of choosing the first handler that matches,
-`find-file-name-handler' now gives precedence to a file name handler
+'find-file-name-handler' now gives precedence to a file name handler
that matches nearest the end of the file name. More precisely, the
handler whose (match-beginning 0) is the largest is chosen. In case
of ties, the old "first matched" rule applies.
*** A file name handler can declare which operations it handles.
-You do this by putting an `operation' property on the handler name
+You do this by putting an 'operation' property on the handler name
symbol. The property value should be a list of the operations that
the handler really handles. It won't be called for any other
operations.
This is useful for autoloaded handlers, to prevent them from being
autoloaded when not really necessary.
-*** The function `make-auto-save-file-name' is now handled by file
+*** The function 'make-auto-save-file-name' is now handled by file
name handlers. This will be exploited for remote files mainly.
-*** The function `file-name-completion' accepts an optional argument
+*** The function 'file-name-completion' accepts an optional argument
PREDICATE, and rejects completion candidates that don't satisfy PREDICATE.
-*** The new primitive `set-file-times' sets a file's access and
+*** The new primitive 'set-file-times' sets a file's access and
modification times. Magic file name handlers can handle this
operation.
** Input changes:
-*** Functions `y-or-n-p', `read-char', `read-key-sequence' and the like, that
+*** Functions 'y-or-n-p', 'read-char', 'read-key-sequence' and the like, that
display a prompt but don't use the minibuffer, now display the prompt
using the text properties (esp. the face) of the prompt string.
-*** The functions `read-event', `read-char', and `read-char-exclusive'
+*** The functions 'read-event', 'read-char', and 'read-char-exclusive'
have a new optional argument SECONDS. If non-nil, this specifies a
maximum time to wait for input, in seconds. If no input arrives after
this time elapses, the functions stop waiting and return nil.
-*** An interactive specification can now use the code letter `U' to get
+*** An interactive specification can now use the code letter 'U' to get
the up-event that was discarded in case the last key sequence read for a
-previous `k' or `K' argument was a down-event; otherwise nil is used.
+previous 'k' or 'K' argument was a down-event; otherwise nil is used.
-*** The new interactive-specification `G' reads a file name
-much like `F', but if the input is a directory name (even defaulted),
+*** The new interactive-specification 'G' reads a file name
+much like 'F', but if the input is a directory name (even defaulted),
it returns just the directory name.
*** (while-no-input BODY...) runs BODY, but only so long as no input
arrives. If the user types or clicks anything, BODY stops as if a
-quit had occurred. `while-no-input' returns the value of BODY, if BODY
+quit had occurred. 'while-no-input' returns the value of BODY, if BODY
finishes. It returns nil if BODY was aborted by a quit, and t if
BODY was aborted by arrival of input.
-*** `recent-keys' now returns the last 300 keys.
+*** 'recent-keys' now returns the last 300 keys.
** Minibuffer changes:
-*** The new function `minibufferp' returns non-nil if its optional
+*** The new function 'minibufferp' returns non-nil if its optional
buffer argument is a minibuffer. If the argument is omitted, it
defaults to the current buffer.
-*** New function `minibuffer-selected-window' returns the window which
+*** New function 'minibuffer-selected-window' returns the window which
was selected when entering the minibuffer.
-*** The `read-file-name' function now takes an additional argument which
+*** The 'read-file-name' function now takes an additional argument which
specifies a predicate which the file name read must satisfy. The
-new variable `read-file-name-predicate' contains the predicate argument
+new variable 'read-file-name-predicate' contains the predicate argument
while reading the file name from the minibuffer; the predicate in this
-variable is used by read-file-name-internal to filter the completion list.
+variable is used by 'read-file-name-internal' to filter the completion list.
-*** The new variable `read-file-name-function' can be used by Lisp code
-to override the built-in `read-file-name' function.
+*** The new variable 'read-file-name-function' can be used by Lisp code
+to override the built-in 'read-file-name' function.
-*** The new variable `read-file-name-completion-ignore-case' specifies
+*** The new variable 'read-file-name-completion-ignore-case' specifies
whether completion ignores case when reading a file name with the
-`read-file-name' function.
+'read-file-name' function.
-*** The new function `read-directory-name' is for reading a directory name.
+*** The new function 'read-directory-name' is for reading a directory name.
-It is like `read-file-name' except that the defaulting works better
+It is like 'read-file-name' except that the defaulting works better
for directories, and completion inside it shows only directories.
-*** The new variable `history-add-new-input' specifies whether to add new
+*** The new variable 'history-add-new-input' specifies whether to add new
elements in history. If set to nil, minibuffer reading functions don't
add new elements to the history list, so it is possible to do this
-afterwards by calling `add-to-history' explicitly.
+afterwards by calling 'add-to-history' explicitly.
** Completion changes:
-*** The new function `minibuffer-completion-contents' returns the contents
+*** The new function 'minibuffer-completion-contents' returns the contents
of the minibuffer just before point. That is what completion commands
operate on.
-*** The functions `all-completions' and `try-completion' now accept lists
+*** The functions 'all-completions' and 'try-completion' now accept lists
of strings as well as hash-tables additionally to alists, obarrays
-and functions. Furthermore, the function `test-completion' is now
+and functions. Furthermore, the function 'test-completion' is now
exported to Lisp. The keys in alists and hash tables can be either
strings or symbols, which are automatically converted with to strings.
-*** The new macro `dynamic-completion-table' supports using functions
+*** The new macro 'dynamic-completion-table' supports using functions
as a dynamic completion table.
(dynamic-completion-table FUN)
completions. This alist can be a full list of possible completions so that FUN
can ignore the value of its argument. If completion is performed in the
minibuffer, FUN will be called in the buffer from which the minibuffer was
-entered. `dynamic-completion-table' then computes the completion.
+entered. 'dynamic-completion-table' then computes the completion.
-*** The new macro `lazy-completion-table' initializes a variable
+*** The new macro 'lazy-completion-table' initializes a variable
as a lazy completion table.
(lazy-completion-table VAR FUN)
If the completion table VAR is used for the first time (e.g., by passing VAR
-as an argument to `try-completion'), the function FUN is called with no
+as an argument to 'try-completion'), the function FUN is called with no
arguments. FUN must return the completion table that will be stored in VAR.
If completion is requested in the minibuffer, FUN will be called in the buffer
from which the minibuffer was entered. The return value of
-`lazy-completion-table' must be used to initialize the value of VAR.
+'lazy-completion-table' must be used to initialize the value of VAR.
** Abbrev changes:
-*** `define-abbrev' now accepts an optional argument SYSTEM-FLAG.
+*** 'define-abbrev' now accepts an optional argument SYSTEM-FLAG.
If non-nil, this marks the abbrev as a "system" abbrev, which means
that it won't be stored in the user's abbrevs file if he saves the
abbrevs. Major modes that predefine some abbrevs should always
specify this flag.
-*** The new function `copy-abbrev-table' copies an abbrev table.
+*** The new function 'copy-abbrev-table' copies an abbrev table.
It returns a new abbrev table that is a copy of a given abbrev table.
*** Cleaner way to enter key sequences.
You can enter a constant key sequence in a more natural format, the
-same one used for saving keyboard macros, using the macro `kbd'. For
+same one used for saving keyboard macros, using the macro 'kbd'. For
example,
(kbd "C-x C-f") => "\^x\^f"
*** Interactive commands can be remapped through keymaps.
-This is an alternative to using `defadvice' or `substitute-key-definition'
+This is an alternative to using 'defadvice' or 'substitute-key-definition'
to modify the behavior of a key binding using the normal keymap
binding and lookup functionality.
original command.
Example:
-Suppose that minor mode `my-mode' has defined the commands
-`my-kill-line' and `my-kill-word', and it wants C-k (and any other key
-bound to `kill-line') to run the command `my-kill-line' instead of
-`kill-line', and likewise it wants to run `my-kill-word' instead of
-`kill-word'.
+Suppose that minor mode 'my-mode' has defined the commands
+'my-kill-line' and 'my-kill-word', and it wants C-k (and any other key
+bound to 'kill-line') to run the command 'my-kill-line' instead of
+'kill-line', and likewise it wants to run 'my-kill-word' instead of
+'kill-word'.
Instead of rebinding C-k and the other keys in the minor mode map,
-command remapping allows you to directly map `kill-line' into
-`my-kill-line' and `kill-word' into `my-kill-word' using `define-key':
+command remapping allows you to directly map 'kill-line' into
+'my-kill-line' and 'kill-word' into 'my-kill-word' using 'define-key':
(define-key my-mode-map [remap kill-line] 'my-kill-line)
(define-key my-mode-map [remap kill-word] 'my-kill-word)
-When `my-mode' is enabled, its minor mode keymap is enabled too. So
-when the user types C-k, that runs the command `my-kill-line'.
+When 'my-mode' is enabled, its minor mode keymap is enabled too. So
+when the user types C-k, that runs the command 'my-kill-line'.
Only one level of remapping is supported. In the above example, this
-means that if `my-kill-line' is remapped to `other-kill', then C-k still
-runs `my-kill-line'.
+means that if 'my-kill-line' is remapped to 'other-kill', then C-k still
+runs 'my-kill-line'.
The following changes have been made to provide command remapping:
-- Command remappings are defined using `define-key' with a prefix-key
- `remap', i.e. `(define-key MAP [remap CMD] DEF)' remaps command CMD
+- Command remappings are defined using 'define-key' with a prefix-key
+ 'remap', i.e. '(define-key MAP [remap CMD] DEF)' remaps command CMD
to definition DEF in keymap MAP. The definition is not limited to
another command; it can be anything accepted for a normal binding.
-- The new function `command-remapping' returns the binding for a
+- The new function 'command-remapping' returns the binding for a
remapped command in the current keymaps, or nil if not remapped.
-- `key-binding' now remaps interactive commands unless the optional
+- 'key-binding' now remaps interactive commands unless the optional
third argument NO-REMAP is non-nil.
-- `where-is-internal' now returns nil for a remapped command (e.g.
- `kill-line', when `my-mode' is enabled), and the actual key binding for
+- 'where-is-internal' now returns nil for a remapped command (e.g.
+ 'kill-line', when 'my-mode' is enabled), and the actual key binding for
the command it is remapped to (e.g. C-k for my-kill-line).
It also has a new optional fifth argument, NO-REMAP, which inhibits
- remapping if non-nil (e.g. it returns "C-k" for `kill-line', and
- "<kill-line>" for `my-kill-line').
+ remapping if non-nil (e.g. it returns "C-k" for 'kill-line', and
+ "<kill-line>" for 'my-kill-line').
-- The new variable `this-original-command' contains the original
- command before remapping. It is equal to `this-command' when the
+- The new variable 'this-original-command' contains the original
+ command before remapping. It is equal to 'this-command' when the
command was not remapped.
*** The definition of a key-binding passed to define-key can use XEmacs-style
*** New keymaps for typing file names
-Two new keymaps, `minibuffer-local-filename-completion-map' and
-`minibuffer-local-must-match-filename-map', apply whenever
+Two new keymaps, 'minibuffer-local-filename-completion-map' and
+'minibuffer-local-must-match-filename-map', apply whenever
Emacs reads a file name in the minibuffer. These key maps override
-the usual binding of SPC to `minibuffer-complete-word' (so that file
+the usual binding of SPC to 'minibuffer-complete-word' (so that file
names with embedded spaces could be typed without the need to quote
the spaces).
-*** New function `current-active-maps' returns a list of currently
+*** New function 'current-active-maps' returns a list of currently
active keymaps.
-*** New function `describe-buffer-bindings' inserts the list of all
+*** New function 'describe-buffer-bindings' inserts the list of all
defined keys and their definitions.
-*** New function `keymap-prompt' returns the prompt string of a keymap.
+*** New function 'keymap-prompt' returns the prompt string of a keymap.
-*** If text has a `keymap' property, that keymap takes precedence
+*** If text has a 'keymap' property, that keymap takes precedence
over minor mode keymaps.
-*** The `keymap' property now also works at the ends of overlays and
+*** The 'keymap' property now also works at the ends of overlays and
text properties, according to their stickiness. This also means that it
-works with empty overlays. The same hold for the `local-map' property.
+works with empty overlays. The same hold for the 'local-map' property.
-*** `key-binding' will now look up mouse-specific bindings. The
-keymaps consulted by `key-binding' will get adapted if the key
+*** 'key-binding' will now look up mouse-specific bindings. The
+keymaps consulted by 'key-binding' will get adapted if the key
sequence is started with a mouse event. Instead of letting the click
position be determined from the key sequence itself, it is also
possible to specify it with an optional argument explicitly.
-*** `define-key-after' now accepts keys longer than 1.
+*** 'define-key-after' now accepts keys longer than 1.
-*** (map-keymap FUNCTION KEYMAP) applies the function to each binding
-in the keymap.
+*** 'map-keymap' applies a function to each binding in a keymap.
-*** New variable `emulation-mode-map-alists'.
+*** New variable 'emulation-mode-map-alists'.
Lisp packages using many minor mode keymaps can now maintain their own
-keymap alist separate from `minor-mode-map-alist' by adding their
+keymap alist separate from 'minor-mode-map-alist' by adding their
keymap alist to this list.
*** Dense keymaps now handle inheritance correctly.
On some systems, when Emacs reads the output from a subprocess, the
output data is read in very small blocks, potentially resulting in
very poor performance. This behavior can be remedied to some extent
-by setting the new variable `process-adaptive-read-buffering' to a
+by setting the new variable 'process-adaptive-read-buffering' to a
non-nil value (the default), as it will automatically delay reading
from such processes, allowing them to produce more output before
Emacs tries to read it.
*** Processes now have an associated property list where programs can
maintain process state and other per-process related information.
-Use the new functions `process-get' and `process-put' to access, add,
+Use the new functions 'process-get' and 'process-put' to access, add,
and modify elements on this property list. Use the new functions
-`process-plist' and `set-process-plist' to access and replace the
+'process-plist' and 'set-process-plist' to access and replace the
entire property list of a process.
-*** Function `list-processes' now has an optional argument; if non-nil,
+*** Function 'list-processes' now has an optional argument; if non-nil,
it lists only the processes whose query-on-exit flag is set.
-*** New fns `set-process-query-on-exit-flag' and `process-query-on-exit-flag'.
+*** New fns 'set-process-query-on-exit-flag' and 'process-query-on-exit-flag'.
-These replace the old function `process-kill-without-query'. That
+These replace the old function 'process-kill-without-query'. That
function is still supported, but new code should use the new
functions.
-*** The new function `call-process-shell-command'.
+*** The new function 'call-process-shell-command'.
This executes a shell command synchronously in a separate process.
-*** The new function `process-file' is similar to `call-process', but
+*** The new function 'process-file' is similar to 'call-process', but
obeys file handlers. The file handler is chosen based on
-`default-directory'.
+'default-directory'.
-*** Function `signal-process' now accepts a process object or process
+*** Function 'signal-process' now accepts a process object or process
name in addition to a process id to identify the signaled process.
-*** Function `accept-process-output' has a new optional fourth arg
+*** Function 'accept-process-output' has a new optional fourth arg
JUST-THIS-ONE. If non-nil, only output from the specified process
is handled, suspending output from other processes. If value is an
integer, also inhibit running timers. This feature is generally not
if the process specifies t for its filter's multibyteness.
That multibyteness is decided by the value of
-`default-enable-multibyte-characters' when the process is created, and
-you can change it later with `set-process-filter-multibyte'.
+'default-enable-multibyte-characters' when the process is created, and
+you can change it later with 'set-process-filter-multibyte'.
-*** The new function `set-process-filter-multibyte' sets the
+*** The new function 'set-process-filter-multibyte' sets the
multibyteness of the strings passed to the process's filter.
-*** The new function `process-filter-multibyte-p' returns the
+*** The new function 'process-filter-multibyte-p' returns the
multibyteness of the strings passed to the process's filter.
-*** If a process's coding system is `raw-text' or `no-conversion' and its
+*** If a process's coding system is 'raw-text' or 'no-conversion' and its
buffer is multibyte, the output of the process is at first converted
-to multibyte by `string-to-multibyte' then inserted in the buffer.
-Previously, it was converted to multibyte by `string-as-multibyte',
+to multibyte by 'string-to-multibyte' then inserted in the buffer.
+Previously, it was converted to multibyte by 'string-as-multibyte',
which was not compatible with the behavior of file reading.
** Enhanced networking support.
-*** The new `make-network-process' function makes network connections.
+*** The new 'make-network-process' function makes network connections.
It allows opening of stream and datagram connections to a server, as well as
create a stream or datagram server inside Emacs.
(featurep 'make-network-process '(:type datagram))
(featurep 'make-network-process '(:family ipv6))
-*** The old `open-network-stream' now uses `make-network-process'.
+*** The old 'open-network-stream' now uses 'make-network-process'.
-*** `process-contact' has an optional KEY argument.
+*** 'process-contact' has an optional KEY argument.
Depending on this argument, you can get the complete list of network
process properties or a specific property. Using :local or :remote as
An Inet address is represented as a 5 element vector, where the first
4 elements contain the IP address and the fifth is the port number.
-*** New functions `stop-process' and `continue-process'.
+*** New functions 'stop-process' and 'continue-process'.
These functions stop and restart communication through a network
connection. For a server process, no connections are accepted in the
stopped state. For a client process, no input is received in the
stopped state.
-*** New function `format-network-address'.
+*** New function 'format-network-address'.
This function reformats the Lisp representation of a network address
to a printable string. For example, an IP address A.B.C.D and port
printable string returned for this vector is "A.B.C.D:P". See the doc
string for other formatting options.
-*** New function `network-interface-list'.
+*** New function 'network-interface-list'.
This function returns a list of network interface names and their
current network addresses.
-*** New function `network-interface-info'.
+*** New function 'network-interface-info'.
This function returns the network address, hardware address, current
status, and other information about a specific network interface.
-*** New functions `process-datagram-address', `set-process-datagram-address'.
+*** New functions 'process-datagram-address', 'set-process-datagram-address'.
These functions are used with datagram-based network processes to get
and set the current address of the remote partner.
-*** Deleting a network process with `delete-process' calls the sentinel.
+*** Deleting a network process with 'delete-process' calls the sentinel.
The status message passed to the sentinel for a deleted network
process is "deleted". The message passed to the sentinel when the
*** You can now make a window as short as one line.
A window that is just one line tall does not display either a mode
-line or a header line, even if the variables `mode-line-format' and
-`header-line-format' call for them. A window that is two lines tall
+line or a header line, even if the variables 'mode-line-format' and
+'header-line-format' call for them. A window that is two lines tall
cannot display both a mode line and a header line at once; if the
variables call for both, only the mode line actually appears.
-*** The new function `window-inside-edges' returns the edges of the
+*** The new function 'window-inside-edges' returns the edges of the
actual text portion of the window, not including the scroll bar or
divider line, the fringes, the display margins, the header line and
the mode line.
-*** The new functions `window-pixel-edges' and `window-inside-pixel-edges'
+*** The new functions 'window-pixel-edges' and 'window-inside-pixel-edges'
return window edges in units of pixels, rather than columns and lines.
-*** New function `window-body-height'.
+*** New function 'window-body-height'.
-This is like `window-height' but does not count the mode line or the
+This is like 'window-height' but does not count the mode line or the
header line.
-*** The new function `adjust-window-trailing-edge' moves the right
+*** The new function 'adjust-window-trailing-edge' moves the right
or bottom edge of a window. It does not move other window edges.
-*** The new macro `with-selected-window' temporarily switches the
-selected window without impacting the order of `buffer-list'.
+*** The new macro 'with-selected-window' temporarily switches the
+selected window without impacting the order of 'buffer-list'.
It saves and restores the current buffer, too.
-*** `select-window' takes an optional second argument NORECORD.
+*** 'select-window' takes an optional second argument NORECORD.
-This is like `switch-to-buffer'.
+This is like 'switch-to-buffer'.
-*** `save-selected-window' now saves and restores the selected window
+*** 'save-selected-window' now saves and restores the selected window
of every frame. This way, it restores everything that can be changed
-by calling `select-window'. It also saves and restores the current
+by calling 'select-window'. It also saves and restores the current
buffer.
-*** `set-window-buffer' has an optional argument KEEP-MARGINS.
+*** 'set-window-buffer' has an optional argument KEEP-MARGINS.
If non-nil, that says to preserve the window's current margin, fringe,
and scroll-bar settings.
-*** The new function `window-tree' returns a frame's window tree.
+*** The new function 'window-tree' returns a frame's window tree.
-*** The functions `get-lru-window' and `get-largest-window' take an optional
-argument `dedicated'. If non-nil, those functions do not ignore
+*** The functions 'get-lru-window' and 'get-largest-window' take an optional
+argument 'dedicated'. If non-nil, those functions do not ignore
dedicated windows.
** Customizable fringe bitmaps
-*** There are new display properties, `left-fringe' and `right-fringe',
+*** There are new display properties, 'left-fringe' and 'right-fringe',
that can be used to show a specific bitmap in the left or right fringe
bitmap of the display line.
-Format is `display (left-fringe BITMAP [FACE])', where BITMAP is a
+Format is 'display (left-fringe BITMAP [FACE])', where BITMAP is a
symbol identifying a fringe bitmap, either built-in or defined with
-`define-fringe-bitmap', and FACE is an optional face name to be used
-for displaying the bitmap instead of the default `fringe' face.
-When specified, FACE is automatically merged with the `fringe' face.
+'define-fringe-bitmap', and FACE is an optional face name to be used
+for displaying the bitmap instead of the default 'fringe' face.
+When specified, FACE is automatically merged with the 'fringe' face.
-*** New buffer-local variables `fringe-indicator-alist' and
-`fringe-cursor-alist' maps between logical (internal) fringe indicator
+*** New buffer-local variables 'fringe-indicator-alist' and
+'fringe-cursor-alist' maps between logical (internal) fringe indicator
and cursor symbols and the actual fringe bitmaps to be displayed.
This decouples the logical meaning of the fringe indicators from the
physical appearance, as well as allowing different fringe bitmaps to
be used in different windows showing different buffers.
-*** New function `define-fringe-bitmap' can now be used to create new
+*** New function 'define-fringe-bitmap' can now be used to create new
fringe bitmaps, as well as change the built-in fringe bitmaps.
-*** New function `destroy-fringe-bitmap' deletes a fringe bitmap
+*** New function 'destroy-fringe-bitmap' deletes a fringe bitmap
or restores a built-in one to its default value.
-*** New function `set-fringe-bitmap-face' specifies the face to be
+*** New function 'set-fringe-bitmap-face' specifies the face to be
used for a specific fringe bitmap. The face is automatically merged
-with the `fringe' face, so normally, the face should only specify the
+with the 'fringe' face, so normally, the face should only specify the
foreground color of the bitmap.
-*** New function `fringe-bitmaps-at-pos' returns the current fringe
+*** New function 'fringe-bitmaps-at-pos' returns the current fringe
bitmaps in the display line at a given buffer position.
** Other window fringe features:
*** Controlling the default left and right fringe widths.
The default left and right fringe widths for all windows of a frame
-can now be controlled by setting the `left-fringe' and `right-fringe'
+can now be controlled by setting the 'left-fringe' and 'right-fringe'
frame parameters to an integer value specifying the width in pixels.
Setting the width to 0 effectively removes the corresponding fringe.
position settings.
To control the fringe widths of a window, either set the buffer-local
-variables `left-fringe-width', `right-fringe-width', or call
-`set-window-fringes'.
+variables 'left-fringe-width', 'right-fringe-width', or call
+'set-window-fringes'.
To control the fringe position in a window, that is, whether fringes
are positioned between the display margins and the window's text area,
or at the edges of the window, either set the buffer-local variable
-`fringes-outside-margins' or call `set-window-fringes'.
+'fringes-outside-margins' or call 'set-window-fringes'.
-The function `window-fringes' can be used to obtain the current
-settings. To make `left-fringe-width', `right-fringe-width', and
-`fringes-outside-margins' take effect, you must set them before
-displaying the buffer in a window, or use `set-window-buffer' to force
+The function 'window-fringes' can be used to obtain the current
+settings. To make 'left-fringe-width', 'right-fringe-width', and
+'fringes-outside-margins' take effect, you must set them before
+displaying the buffer in a window, or use 'set-window-buffer' to force
an update of the display margins.
**** Windows can now have their own individual scroll-bar settings
controlling the width and position of scroll-bars.
To control the scroll-bar of a window, either set the buffer-local
-variables `scroll-bar-mode' and `scroll-bar-width', or call
-`set-window-scroll-bars'. The function `window-scroll-bars' can be
-used to obtain the current settings. To make `scroll-bar-mode' and
-`scroll-bar-width' take effect, you must set them before displaying
-the buffer in a window, or use `set-window-buffer' to force an update
+variables 'scroll-bar-mode' and 'scroll-bar-width', or call
+'set-window-scroll-bars'. The function 'window-scroll-bars' can be
+used to obtain the current settings. To make 'scroll-bar-mode' and
+'scroll-bar-width' take effect, you must set them before displaying
+the buffer in a window, or use 'set-window-buffer' to force an update
of the display margins.
** Redisplay features:
-*** `sit-for' can now be called with args (SECONDS &optional NODISP).
+*** 'sit-for' can now be called with args (SECONDS &optional NODISP).
*** Iconifying or deiconifying a frame no longer makes sit-for return.
-*** New function `redisplay' causes an immediate redisplay if no input is
+*** New function 'redisplay' causes an immediate redisplay if no input is
available, equivalent to (sit-for 0). The call (redisplay t) forces
an immediate redisplay even if input is pending.
-*** New function `force-window-update' can initiate a full redisplay of
+*** New function 'force-window-update' can initiate a full redisplay of
one or all windows. Normally, this is not needed as changes in window
contents are detected automatically. However, certain implicit
changes to mode lines, header lines, or display properties may require
forcing an explicit window update.
-*** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able
-to display CHAR. More precisely, if the selected frame's fontset has
-a font to display the character set that CHAR belongs to.
+*** 'char-displayable-p' returns non-nil if Emacs ought to be able to
+display its char argument. More precisely, if the selected frame's fontset has
+a font to display the character set that char belongs to.
Fontsets can specify a font on a per-character basis; when the fontset
does that, this value cannot be accurate.
*** You can define multiple overlay arrows via the new
-variable `overlay-arrow-variable-list'.
+variable 'overlay-arrow-variable-list'.
It contains a list of variables which contain overlay arrow position
-markers, including the original `overlay-arrow-position' variable.
+markers, including the original 'overlay-arrow-position' variable.
-Each variable on this list can have individual `overlay-arrow-string'
-and `overlay-arrow-bitmap' properties that specify an overlay arrow
+Each variable on this list can have individual 'overlay-arrow-string'
+and 'overlay-arrow-bitmap' properties that specify an overlay arrow
string (for non-window terminals) or fringe bitmap (for window
systems) to display at the corresponding overlay arrow position.
-If either property is not set, the default `overlay-arrow-string' or
+If either property is not set, the default 'overlay-arrow-string' or
'overlay-arrow-fringe-bitmap' will be used.
-*** New `line-height' and `line-spacing' properties for newline characters
+*** New 'line-height' and 'line-spacing' properties for newline characters
-A newline can now have `line-height' and `line-spacing' text or overlay
+A newline can now have 'line-height' and 'line-spacing' text or overlay
properties that control the height of the corresponding display row.
-If the `line-height' property value is t, the newline does not
+If the 'line-height' property value is t, the newline does not
contribute to the height of the display row; instead the height of the
-newline glyph is reduced. Also, a `line-spacing' property on this
+newline glyph is reduced. Also, a 'line-spacing' property on this
newline is ignored. This can be used to tile small images or image
slices without adding blank areas between the images.
-If the `line-height' property value is a positive integer, the value
+If the 'line-height' property value is a positive integer, the value
specifies the minimum line height in pixels. If necessary, the line
height it increased by increasing the line's ascent.
-If the `line-height' property value is a float, the minimum line
+If the 'line-height' property value is a float, the minimum line
height is calculated by multiplying the default frame line height by
the given value.
-If the `line-height' property value is a cons (FACE . RATIO), the
+If the 'line-height' property value is a cons (FACE . RATIO), the
minimum line height is calculated as RATIO * height of named FACE.
RATIO is int or float. If FACE is t, it specifies the current face.
-If the `line-height' property value is a cons (nil . RATIO), the line
+If the 'line-height' property value is a cons (nil . RATIO), the line
height is calculated as RATIO * actual height of the line's contents.
-If the `line-height' value is a cons (HEIGHT . TOTAL), HEIGHT specifies
+If the 'line-height' value is a cons (HEIGHT . TOTAL), HEIGHT specifies
the line height as described above, while TOTAL is any of the forms
described above and specifies the total height of the line, causing a
varying number of pixels to be inserted after the line to make it line
exactly that many pixels high.
-If the `line-spacing' property value is a positive integer, the value
+If the 'line-spacing' property value is a positive integer, the value
is used as additional pixels to insert after the display line; this
-overrides the default frame `line-spacing' and any buffer local value of
-the `line-spacing' variable.
+overrides the default frame 'line-spacing' and any buffer local value of
+the 'line-spacing' variable.
-If the `line-spacing' property is a float or cons, the line spacing
-is calculated as specified above for the `line-height' property.
+If the 'line-spacing' property is a float or cons, the line spacing
+is calculated as specified above for the 'line-height' property.
-*** The buffer local `line-spacing' variable can now have a float value,
+*** The buffer local 'line-spacing' variable can now have a float value,
which is used as a height relative to the default frame line height.
*** Enhancements to stretch display properties
-The display property stretch specification form `(space PROPS)', where
+The display property stretch specification form '(space PROPS)', where
PROPS is a property list, now allows pixel based width and height
specifications, as well as enhanced horizontal text alignment.
FORM ::= (NUM . EXPR) | (OP EXPR ...)
OP ::= + | -
-The form `NUM' specifies a fractional width or height of the default
-frame font size. The form `(NUM)' specifies an absolute number of
+The form 'NUM' specifies a fractional width or height of the default
+frame font size. The form '(NUM)' specifies an absolute number of
pixels. If a symbol is specified, its buffer-local variable binding
-is used. The `in', `mm', and `cm' units specifies the number of
-pixels per inch, milli-meter, and centi-meter, resp. The `width' and
-`height' units correspond to the width and height of the current face
+is used. The 'in', 'mm', and 'cm' units specifies the number of
+pixels per inch, milli-meter, and centi-meter, resp. The 'width' and
+'height' units correspond to the width and height of the current face
font. An image specification corresponds to the width or height of
the image.
-The `left-fringe', `right-fringe', `left-margin', `right-margin',
-`scroll-bar', and `text' elements specify to the width of the
+The 'left-fringe', 'right-fringe', 'left-margin', 'right-margin',
+'scroll-bar', and 'text' elements specify to the width of the
corresponding area of the window.
-The `left', `center', and `right' positions can be used with :align-to
+The 'left', 'center', and 'right' positions can be used with :align-to
to specify a position relative to the left edge, center, or right edge
-of the text area. One of the above window elements (except `text')
+of the text area. One of the above window elements (except 'text')
can also be used with :align-to to specify that the position is
relative to the left edge of the given area. Once the base offset for
a relative position has been set (by the first occurrence of one of
to the left edge of the text area. For example, :align-to 0 in a
header line aligns with the first text column in the text area.
-The value of the form `(NUM . EXPR)' is the value of NUM multiplied by
+The value of the form '(NUM . EXPR)' is the value of NUM multiplied by
the value of the expression EXPR. For example, (2 . in) specifies a
width of 2 inches, while (0.5 . IMAGE) specifies half the width (or
height) of the specified image.
-The form `(+ EXPR ...)' adds up the value of the expressions.
-The form `(- EXPR ...)' negates or subtracts the value of the expressions.
+The form '(+ EXPR ...)' adds up the value of the expressions.
+The form '(- EXPR ...)' negates or subtracts the value of the expressions.
*** Normally, the cursor is displayed at the end of any overlay and
text property string that may be present at the current window
position. The cursor can now be placed on any character of such
-strings by giving that character a non-nil `cursor' text property.
+strings by giving that character a non-nil 'cursor' text property.
*** The display space :width and :align-to text properties are now
supported on text terminals.
**** New display property (slice X Y WIDTH HEIGHT) can be used with
an image property to display only a specific slice of the image.
-**** Function `insert-image' has new optional fourth arg to
+**** Function 'insert-image' has new optional fourth arg to
specify image slice (X Y WIDTH HEIGHT).
-**** New function `insert-sliced-image' inserts a given image as a
+**** New function 'insert-sliced-image' inserts a given image as a
specified number of evenly sized slices (rows x columns).
*** Images can now have an associated image map via the :map property.
vector describes one corner in the polygon.
When the mouse pointer is above a hot-spot area of an image, the
-PLIST of that hot-spot is consulted; if it contains a `help-echo'
+PLIST of that hot-spot is consulted; if it contains a 'help-echo'
property it defines a tool-tip for the hot-spot, and if it contains
-a `pointer' property, it defines the shape of the mouse cursor when
-it is over the hot-spot. See the variable `void-area-text-pointer'
+a 'pointer' property, it defines the shape of the mouse cursor when
+it is over the hot-spot. See the variable 'void-area-text-pointer'
for possible pointer shapes.
When you click the mouse when the mouse pointer is over a hot-spot,
an event is composed by combining the ID of the hot-spot with the
-mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'.
+mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is 'area4'.
-*** The function `find-image' now searches in etc/images/ and etc/.
-The new variable `image-load-path' is a list of locations in which to
+*** The function 'find-image' now searches in etc/images/ and etc/.
+The new variable 'image-load-path' is a list of locations in which to
search for image files. The default is to search in etc/images, then
-in etc/, and finally in the directories specified by `load-path'.
+in etc/, and finally in the directories specified by 'load-path'.
Subdirectories of etc/ and etc/images are not recursively searched; if
you put an image file in a subdirectory, you have to specify it
explicitly; for example, if an image is put in etc/images/foo/bar.xpm:
Note that all images formerly located in the lisp directory have been
moved to etc/images.
-*** New function `image-load-path-for-library' returns a suitable
+*** New function 'image-load-path-for-library' returns a suitable
search path for images relative to library. This function is useful in
external packages to save users from having to update
-`image-load-path'.
+'image-load-path'.
-*** The new variable `max-image-size' defines the maximum size of
+*** The new variable 'max-image-size' defines the maximum size of
images that Emacs will load and display.
-*** The new variable `display-mm-dimensions-alist' can be used to
+*** The new variable 'display-mm-dimensions-alist' can be used to
override incorrect graphical display dimensions returned by functions
-`display-mm-height' and `display-mm-width'.
+'display-mm-height' and 'display-mm-width'.
** Mouse pointer features:
*** The mouse pointer shape in void text areas (i.e. after the end of a
line or below the last line in the buffer) of the text window is now
-controlled by the new variable `void-text-area-pointer'. The default
-is to use the `arrow' (non-text) pointer. Other choices are `text'
-(or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'.
+controlled by the new variable 'void-text-area-pointer'. The default
+is to use the 'arrow' (non-text) pointer. Other choices are 'text'
+(or nil), 'hand', 'vdrag', 'hdrag', 'modeline', and 'hourglass'.
*** The mouse pointer shape over an image can now be controlled by the
:pointer image property.
*** The mouse pointer shape over ordinary text or images can now be
-controlled/overridden via the `pointer' text property.
+controlled/overridden via the 'pointer' text property.
** Mouse event enhancements:
you clicked. For mouse clicks in window margins and fringes, this is
a sensible buffer position corresponding to the surrounding text.
-*** Mouse events for clicks on window fringes now specify `left-fringe'
-or `right-fringe' as the area.
+*** Mouse events for clicks on window fringes now specify 'left-fringe'
+or 'right-fringe' as the area.
*** Mouse events include actual glyph column and row for all event types
and all areas.
*** Mouse events include the pixel width and height of the object
(image or character) clicked on.
-*** Function `mouse-set-point' now works for events outside text area.
+*** Function 'mouse-set-point' now works for events outside text area.
-*** `posn-point' now returns buffer position for non-text area events.
+*** 'posn-point' now returns buffer position for non-text area events.
-*** New function `posn-area' returns window area clicked on (nil means
+*** New function 'posn-area' returns window area clicked on (nil means
text area).
-*** New function `posn-actual-col-row' returns the actual glyph coordinates
+*** New function 'posn-actual-col-row' returns the actual glyph coordinates
of the mouse event position.
*** New functions 'posn-object', 'posn-object-x-y', 'posn-object-width-height'.
** Text property and overlay changes:
-*** Arguments for `remove-overlays' are now optional, so that you can
+*** Arguments for 'remove-overlays' are now optional, so that you can
remove all overlays in the buffer with just (remove-overlays).
-*** New variable `char-property-alias-alist'.
+*** New variable 'char-property-alias-alist'.
This variable allows you to create alternative names for text
-properties. It works at the same level as `default-text-properties',
+properties. It works at the same level as 'default-text-properties',
although it applies to overlays as well. This variable was introduced
-to implement the `font-lock-face' property.
+to implement the 'font-lock-face' property.
-*** New function `get-char-property-and-overlay' accepts the same
-arguments as `get-char-property' and returns a cons whose car is the
-return value of `get-char-property' called with those arguments and
+*** New function 'get-char-property-and-overlay' accepts the same
+arguments as 'get-char-property' and returns a cons whose car is the
+return value of 'get-char-property' called with those arguments and
whose cdr is the overlay in which the property was found, or nil if
it was found as a text property or not found at all.
-*** The new function `remove-list-of-text-properties'.
+*** The new function 'remove-list-of-text-properties'.
-It is like `remove-text-properties' except that it takes a list of
+It is like 'remove-text-properties' except that it takes a list of
property names as argument rather than a property list.
** Face changes
-*** The variable `facemenu-unlisted-faces' has been removed.
+*** The variable 'facemenu-unlisted-faces' has been removed.
Emacs has a lot more faces than in the past, and nearly all of them
-needed to be excluded. The new variable `facemenu-listed-faces' lists
+needed to be excluded. The new variable 'facemenu-listed-faces' lists
the faces to include in the face menu.
-*** The new face attribute condition `min-colors' can be used to tailor
+*** The new face attribute condition 'min-colors' can be used to tailor
the face color to the number of colors supported by a display, and
define the foreground and background colors accordingly so that they
look best on a terminal that supports at least this many colors. This
is now the preferred method for defining default faces in a way that
makes a good use of the capabilities of the display.
-*** New function `display-supports-face-attributes-p' can be used to test
+*** New function 'display-supports-face-attributes-p' can be used to test
whether a given set of face attributes is actually displayable.
-A new predicate `supports' has also been added to the `defface' face
+A new predicate 'supports' has also been added to the 'defface' face
specification language, which can be used to do this test for faces
-defined with `defface'.
+defined with 'defface'.
-*** The special treatment of faces whose names are of the form `fg:COLOR'
-or `bg:COLOR' has been removed. Lisp programs should use the
-`defface' facility for defining faces with specific colors, or use
+*** The special treatment of faces whose names are of the form 'fg:COLOR'
+or 'bg:COLOR' has been removed. Lisp programs should use the
+'defface' facility for defining faces with specific colors, or use
the feature of specifying the face attributes :foreground and :background
-directly in the `face' property instead of using a named face.
+directly in the 'face' property instead of using a named face.
*** The first face specification element in a defface can specify
-`default' instead of frame classification. Then its attributes act as
+'default' instead of frame classification. Then its attributes act as
defaults that apply to all the subsequent cases (and can be overridden
by them).
-*** The function `face-differs-from-default-p' now truly checks
+*** The function 'face-differs-from-default-p' now truly checks
whether the given face displays differently from the default face or
not (previously it did only a very cursory check).
-*** `face-attribute', `face-foreground', `face-background', `face-stipple'.
+*** 'face-attribute', 'face-foreground', 'face-background', 'face-stipple'.
These now accept a new optional argument, INHERIT, which controls how
face inheritance is used when determining the value of a face
attribute.
-*** New functions `face-attribute-relative-p' and `merge-face-attribute'
+*** New functions 'face-attribute-relative-p' and 'merge-face-attribute'
help with handling relative face attributes.
*** The priority of faces in an :inherit attribute face list is reversed.
faces in the list override later faces in the list; in previous
releases of Emacs, the order was the opposite. This change was made
so that :inherit face lists operate identically to face lists in text
-`face' properties.
+'face' properties.
-*** The variable `face-font-rescale-alist' specifies how much larger
+*** The variable 'face-font-rescale-alist' specifies how much larger
(or smaller) font we should use. For instance, if the value is
'((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10
point, we actually use a font of 13 point if the font matches
or background color was unspecified, colors were not swapped. This
was inconsistent with the face behavior under X.
-*** `set-fontset-font', `fontset-info', `fontset-font' now operate on
+*** 'set-fontset-font', 'fontset-info', 'fontset-font' now operate on
the default fontset if the argument NAME is nil..
** Font-Lock changes:
-*** New special text property `font-lock-face'.
+*** New special text property 'font-lock-face'.
-This property acts like the `face' property, but it is controlled by
+This property acts like the 'face' property, but it is controlled by
M-x font-lock-mode. It is not, strictly speaking, a builtin text
property. Instead, it is implemented inside font-core.el, using the
-new variable `char-property-alias-alist'.
+new variable 'char-property-alias-alist'.
-*** font-lock can manage arbitrary text-properties beside `face'.
+*** font-lock can manage arbitrary text-properties beside 'face'.
-**** the FACENAME returned in `font-lock-keywords' can be a list of the
+**** the FACENAME returned in 'font-lock-keywords' can be a list of the
form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set other
-properties than `face'.
+properties than 'face'.
-**** `font-lock-extra-managed-props' can be set to make sure those
+**** 'font-lock-extra-managed-props' can be set to make sure those
extra properties are automatically cleaned up by font-lock.
-*** jit-lock obeys a new text-property `jit-lock-defer-multiline'.
+*** jit-lock obeys a new text-property 'jit-lock-defer-multiline'.
If a piece of text with that property gets contextually refontified
-(see `jit-lock-defer-contextually'), then all of that text will
+(see 'jit-lock-defer-contextually'), then all of that text will
be refontified. This is useful when the syntax of a textual element
-depends on text several lines further down (and when `font-lock-multiline'
+depends on text several lines further down (and when 'font-lock-multiline'
is not appropriate to solve that problem). For example in Perl:
s{
bar
}e
-Adding/removing the last `e' changes the `bar' from being a piece of
-text to being a piece of code, so you'd put a `jit-lock-defer-multiline'
+Adding/removing the last 'e' changes the 'bar' from being a piece of
+text to being a piece of code, so you'd put a 'jit-lock-defer-multiline'
property over the second half of the command to force (deferred)
-refontification of `bar' whenever the `e' is added/removed.
+refontification of 'bar' whenever the 'e' is added/removed.
-*** `font-lock-extend-region-functions' makes it possible to alter the way
+*** 'font-lock-extend-region-functions' makes it possible to alter the way
the fontification region is chosen. This can be used to prevent rounding
up to whole lines, or to extend the region to include all related lines
of multiline constructs so that such constructs get properly recognized.
** Major mode mechanism changes:
-*** New variable `magic-mode-alist' determines major mode for a file by
-looking at the file contents. It takes precedence over `auto-mode-alist'.
+*** New variable 'magic-mode-alist' determines major mode for a file by
+looking at the file contents. It takes precedence over 'auto-mode-alist'.
-*** New variable `magic-fallback-mode-alist' determines major mode for a file by
-looking at the file contents. It is handled after `auto-mode-alist',
-only if `auto-mode-alist' (and `magic-mode-alist') says nothing about the file.
+*** New variable 'magic-fallback-mode-alist' determines major mode for a file by
+looking at the file contents. It is handled after 'auto-mode-alist',
+only if 'auto-mode-alist' (and 'magic-mode-alist') says nothing about the file.
-*** XML or SGML major mode is selected when file starts with an `<?xml'
-or `<!DOCTYPE' declaration.
+*** XML or SGML major mode is selected when file starts with an '<?xml'
+or '<!DOCTYPE' declaration.
*** An interpreter magic line (if present) takes precedence over the
file name when setting the major mode.
-*** If new variable `auto-mode-case-fold' is set to a non-nil value,
+*** If new variable 'auto-mode-case-fold' is set to a non-nil value,
Emacs will perform a second case-insensitive search through
-`auto-mode-alist' if the first case-sensitive search fails. This
+'auto-mode-alist' if the first case-sensitive search fails. This
means that a file FILE.TXT is opened in text-mode, and a file
PROG.HTML is opened in html-mode. Note however, that independent of
this setting, *.C files are usually recognized as C++ files. It also
has no effect on systems with case-insensitive file names.
*** All major mode functions should now run the new normal hook
-`after-change-major-mode-hook', at their very end, after the mode
-hooks. `run-mode-hooks' does this automatically.
+'after-change-major-mode-hook', at their very end, after the mode
+hooks. 'run-mode-hooks' does this automatically.
-*** Major modes can define `eldoc-documentation-function'
+*** Major modes can define 'eldoc-documentation-function'
locally to provide ElDoc functionality by some method appropriate to
the language.
-*** Use the new function `run-mode-hooks' to run the major mode's mode hook.
+*** Use the new function 'run-mode-hooks' to run the major mode's mode hook.
-*** The new function `run-mode-hooks' and the new macro `delay-mode-hooks'
-are used by `define-derived-mode' to make sure the mode hook for the
+*** The new function 'run-mode-hooks' and the new macro 'delay-mode-hooks'
+are used by 'define-derived-mode' to make sure the mode hook for the
parent mode is run at the end of the child mode.
-*** `define-derived-mode' by default creates a new empty abbrev table.
+*** 'define-derived-mode' by default creates a new empty abbrev table.
It does not copy abbrevs from the parent mode's abbrev table.
-*** If a major mode function has a non-nil `no-clone-indirect'
-property, `clone-indirect-buffer' signals an error if you use
+*** If a major mode function has a non-nil 'no-clone-indirect'
+property, 'clone-indirect-buffer' signals an error if you use
it in that buffer.
** Minor mode changes:
-*** `define-minor-mode' now accepts arbitrary additional keyword arguments
-and simply passes them to `defcustom', if applicable.
+*** 'define-minor-mode' now accepts arbitrary additional keyword arguments
+and simply passes them to 'defcustom', if applicable.
-*** `define-globalized-minor-mode'.
+*** 'define-globalized-minor-mode'.
This is a new name for what was formerly called
-`easy-mmode-define-global-mode'. The old name remains as an alias.
+'easy-mmode-define-global-mode'. The old name remains as an alias.
-*** `minor-mode-list' now holds a list of minor mode commands.
+*** 'minor-mode-list' now holds a list of minor mode commands.
** Command loop changes:
-*** The new function `called-interactively-p' does what many people
-have mistakenly believed `interactive-p' to do: it returns t if the
-calling function was called through `call-interactively'.
+*** The new function 'called-interactively-p' does what many people
+have mistakenly believed 'interactive-p' to do: it returns t if the
+calling function was called through 'call-interactively'.
Only use this when you cannot solve the problem by adding a new
INTERACTIVE argument to the command.
-*** The function `commandp' takes an additional optional argument.
+*** The function 'commandp' takes an additional optional argument.
-If it is non-nil, then `commandp' checks for a function that could be
-called with `call-interactively', and does not return t for keyboard
+If it is non-nil, then 'commandp' checks for a function that could be
+called with 'call-interactively', and does not return t for keyboard
macros.
*** When a command returns, the command loop moves point out from
This makes it generally unnecessary to mark invisible text as intangible.
This is particularly good because the intangible property often has
unexpected side-effects since the property applies to everything
-(including `goto-char', ...) whereas this new code is only run after
-`post-command-hook' and thus does not care about intermediate states.
+(including 'goto-char', ...) whereas this new code is only run after
+'post-command-hook' and thus does not care about intermediate states.
-*** If a command sets `transient-mark-mode' to `only', that
+*** If a command sets 'transient-mark-mode' to 'only', that
enables Transient Mark mode for the following command only.
-During that following command, the value of `transient-mark-mode'
-is `identity'. If it is still `identity' at the end of the command,
+During that following command, the value of 'transient-mark-mode'
+is 'identity'. If it is still 'identity' at the end of the command,
the next return to the command loop changes to nil.
-*** Both the variable and the function `disabled-command-hook' have
-been renamed to `disabled-command-function'. The variable
-`disabled-command-hook' has been kept as an obsolete alias.
+*** Both the variable and the function 'disabled-command-hook' have
+been renamed to 'disabled-command-function'. The variable
+'disabled-command-hook' has been kept as an obsolete alias.
-*** `emacsserver' now runs `pre-command-hook' and `post-command-hook'
+*** 'emacsserver' now runs 'pre-command-hook' and 'post-command-hook'
when it receives a request from emacsclient.
-*** `current-idle-time' reports how long Emacs has been idle.
+*** 'current-idle-time' reports how long Emacs has been idle.
** Lisp file loading changes:
-*** `load-history' can now have elements of the form (t . FUNNAME),
+*** 'load-history' can now have elements of the form (t . FUNNAME),
which means FUNNAME was previously defined as an autoload (before the
current file redefined it).
-*** `load-history' now records (defun . FUNNAME) when a function is
+*** 'load-history' now records (defun . FUNNAME) when a function is
defined. For a variable, it records just the variable name.
-*** The function `symbol-file' can now search specifically for function,
+*** The function 'symbol-file' can now search specifically for function,
variable or face definitions.
-*** `provide' and `featurep' now accept an optional second argument
-to test/provide subfeatures. Also `provide' now checks `after-load-alist'
+*** 'provide' and 'featurep' now accept an optional second argument
+to test/provide subfeatures. Also 'provide' now checks 'after-load-alist'
and runs any code associated with the provided feature.
-*** The variable `recursive-load-depth-limit' has been deleted.
+*** The variable 'recursive-load-depth-limit' has been deleted.
Emacs now signals an error if the same file is loaded with more
than 3 levels of nesting.
for these. As a result, you can use next-error and friends on the
compilation output buffer.
-*** The new macro `with-no-warnings' suppresses all compiler warnings
-inside its body. In terms of execution, it is equivalent to `progn'.
+*** The new macro 'with-no-warnings' suppresses all compiler warnings
+inside its body. In terms of execution, it is equivalent to 'progn'.
*** You can avoid warnings for possibly-undefined symbols with a
simple convention that the compiler understands. (This is mostly
(if (fboundp 'foo) <then> <else>)
(if (boundp 'foo) <then> <else)
-In the first case, using `foo' as a function inside the <then> form
+In the first case, using 'foo' as a function inside the <then> form
won't produce a warning if it's not defined as a function, and in the
-second case, using `foo' as a variable won't produce a warning if it's
+second case, using 'foo' as a variable won't produce a warning if it's
unbound. The test must be in exactly one of the above forms (after
-macro expansion), but such tests can be nested. Note that `when' and
-`unless' expand to `if', but `cond' doesn't.
+macro expansion), but such tests can be nested. Note that 'when' and
+'unless' expand to 'if', but 'cond' doesn't.
-*** `(featurep 'xemacs)' is treated by the compiler as nil. This
+*** '(featurep 'xemacs)' is treated by the compiler as nil. This
helps to avoid noisy compiler warnings in code meant to run under both
Emacs and XEmacs and can sometimes make the result significantly more
efficient. Since byte code from recent versions of XEmacs won't
generally run in Emacs and vice versa, this optimization doesn't lose
you anything.
-*** The local variable `no-byte-compile' in Lisp files is now obeyed.
+*** The local variable 'no-byte-compile' in Lisp files is now obeyed.
*** When a Lisp file uses CL functions at run-time, compiling the file
now issues warnings about these calls, unless the file performs
** Frame operations:
-*** New functions `frame-current-scroll-bars' and `window-current-scroll-bars'.
+*** New functions 'frame-current-scroll-bars' and 'window-current-scroll-bars'.
These functions return the current locations of the vertical and
horizontal scroll bars in a frame or window.
-*** The new function `modify-all-frames-parameters' modifies parameters
+*** The new function 'modify-all-frames-parameters' modifies parameters
for all (existing and future) frames.
-*** The new frame parameter `tty-color-mode' specifies the mode to use
+*** The new frame parameter 'tty-color-mode' specifies the mode to use
for color support on character terminal frames. Its value can be a
number of colors to support, or a symbol. See the Emacs Lisp
Reference manual for more detailed documentation.
*** When using non-toolkit scroll bars with the default width,
-the `scroll-bar-width' frame parameter value is nil.
+the 'scroll-bar-width' frame parameter value is nil.
** Mode line changes:
-*** New function `format-mode-line'.
+*** New function 'format-mode-line'.
This returns the mode line or header line of the selected (or a
specified) window as a string with or without text properties.
-*** The new mode-line construct `(:propertize ELT PROPS...)' can be
+*** The new mode-line construct '(:propertize ELT PROPS...)' can be
used to add text properties to mode-line elements.
-*** The new `%i' and `%I' constructs for `mode-line-format' can be used
+*** The new '%i' and '%I' constructs for 'mode-line-format' can be used
to display the size of the accessible part of the buffer on the mode
line.
several versions ago.
*** The dummy function keys made by easy-menu are now always lower case.
-If you specify the menu item name "Ada", for instance, it uses `ada'
+If you specify the menu item name "Ada", for instance, it uses 'ada'
as the "key" bound by that key binding.
This is relevant only if Lisp code looks for the bindings that were
made with easy-menu.
-*** `easy-menu-define' now allows you to use nil for the symbol name
+*** 'easy-menu-define' now allows you to use nil for the symbol name
if you don't need to give the menu a name. If you install the menu
into other keymaps right away (MAPS is non-nil), it usually doesn't
need to have a name.
3. For binary files where format conversion would be pointless and
wasteful.
-*** The new variable `auto-coding-functions' lets you specify functions
+*** The new variable 'auto-coding-functions' lets you specify functions
to examine a file being visited and deduce the proper coding system
for it. (If the coding system is detected incorrectly for a specific
-file, you can put a `coding:' tags to override it.)
+file, you can put a 'coding:' tags to override it.)
-*** The new variable `ascii-case-table' stores the case table for the
+*** The new variable 'ascii-case-table' stores the case table for the
ascii character set. Language environments (such as Turkish) may
alter the case correspondences of ASCII characters. This variable
saves the original ASCII case table before any such changes.
-*** The new function `merge-coding-systems' fills in unspecified aspects
+*** The new function 'merge-coding-systems' fills in unspecified aspects
of one coding system from another coding system.
-*** New coding system property `mime-text-unsuitable' indicates that
-the coding system's `mime-charset' is not suitable for MIME text
+*** New coding system property 'mime-text-unsuitable' indicates that
+the coding system's 'mime-charset' is not suitable for MIME text
parts, e.g. utf-16.
-*** New function `decode-coding-inserted-region' decodes a region as if
+*** New function 'decode-coding-inserted-region' decodes a region as if
it is read from a file without decoding.
-*** New CCL functions `lookup-character' and `lookup-integer' access
-hash tables defined by the Lisp function `define-translation-hash-table'.
+*** New CCL functions 'lookup-character' and 'lookup-integer' access
+hash tables defined by the Lisp function 'define-translation-hash-table'.
-*** New function `quail-find-key' returns a list of keys to type in the
+*** New function 'quail-find-key' returns a list of keys to type in the
current input method to input a character.
-*** `set-buffer-file-coding-system' now takes an additional argument,
+*** 'set-buffer-file-coding-system' now takes an additional argument,
NOMODIFY. If it is non-nil, it means don't mark the buffer modified.
** Operating system access:
-*** The new primitive `get-internal-run-time' returns the processor
+*** The new primitive 'get-internal-run-time' returns the processor
run time used by Emacs since start-up.
-*** Functions `user-uid' and `user-real-uid' now return floats if the
-user UID doesn't fit in a Lisp integer. Function `user-full-name'
+*** Functions 'user-uid' and 'user-real-uid' now return floats if the
+user UID doesn't fit in a Lisp integer. Function 'user-full-name'
accepts a float as UID parameter.
-*** New function `locale-info' accesses locale information.
+*** New function 'locale-info' accesses locale information.
*** On MS Windows, locale-coding-system is used to interact with the OS.
The Windows specific variable w32-system-coding-system, which was
formerly used for that purpose is now an alias for locale-coding-system.
-*** New function `redirect-debugging-output' can be used to redirect
+*** New function 'redirect-debugging-output' can be used to redirect
debugging output on the stderr file handle to a file.
** GC changes:
-*** New variable `gc-cons-percentage' automatically grows the GC cons threshold
+*** New variable 'gc-cons-percentage' automatically grows the GC cons threshold
as the heap size increases.
-*** New variables `gc-elapsed' and `gcs-done' provide extra information
+*** New variables 'gc-elapsed' and 'gcs-done' provide extra information
on garbage collection.
-*** The normal hook `post-gc-hook' is run at the end of garbage collection.
+*** The normal hook 'post-gc-hook' is run at the end of garbage collection.
The hook is run with GC inhibited, so use it with care.
*** A number of hooks have been renamed to better follow the conventions:
-`find-file-hooks' to `find-file-hook',
-`find-file-not-found-hooks' to `find-file-not-found-functions',
-`write-file-hooks' to `write-file-functions',
-`write-contents-hooks' to `write-contents-functions',
-`x-lost-selection-hooks' to `x-lost-selection-functions',
-`x-sent-selection-hooks' to `x-sent-selection-functions',
-`delete-frame-hook' to `delete-frame-functions'.
+'find-file-hooks' to 'find-file-hook',
+'find-file-not-found-hooks' to 'find-file-not-found-functions',
+'write-file-hooks' to 'write-file-functions',
+'write-contents-hooks' to 'write-contents-functions',
+'x-lost-selection-hooks' to 'x-lost-selection-functions',
+'x-sent-selection-hooks' to 'x-sent-selection-functions',
+'delete-frame-hook' to 'delete-frame-functions'.
In each case the old name remains as an alias for the moment.
-*** Variable `local-write-file-hooks' is marked obsolete.
+*** Variable 'local-write-file-hooks' is marked obsolete.
-Use the LOCAL arg of `add-hook'.
+Use the LOCAL arg of 'add-hook'.
-*** New function `x-send-client-message' sends a client message when
+*** New function 'x-send-client-message' sends a client message when
running under X.
\f
* New Packages for Lisp Programming in Emacs 22.1
-** The new library button.el implements simple and fast `clickable
+** The new library button.el implements simple and fast 'clickable
buttons' in Emacs buffers. Buttons are much lighter-weight than the
-`widgets' implemented by widget.el, and can be used by lisp code that
+'widgets' implemented by widget.el, and can be used by lisp code that
doesn't require the full power of widgets. Emacs uses buttons for
such things as help and apropos buffers.
sql-buffer contains the slave buffer. It is a local variable in the
SQL buffer.
-(add-hook 'sql-mode-hook
- (function (lambda ()
- (master-mode t)
- (master-set-slave sql-buffer))))
-(add-hook 'sql-set-sqli-hook
- (function (lambda ()
- (master-set-slave sql-buffer))))
+ (add-hook 'sql-mode-hook
+ (function (lambda ()
+ (master-mode t)
+ (master-set-slave sql-buffer))))
+ (add-hook 'sql-set-sqli-hook
+ (function (lambda ()
+ (master-set-slave sql-buffer))))
-** The new library benchmark.el does timing measurements on Lisp code.
+** The new library 'benchmark' does timing measurements on Lisp code.
This includes measuring garbage collection time.
This is so you can tell whether you've tested all paths in your Lisp
code. It works with edebug.
-The function `testcover-start' instruments all functions in a given
-file. Then test your code. The function `testcover-mark-all' adds
+The function 'testcover-start' instruments all functions in a given
+file. Then test your code. The function 'testcover-mark-all' adds
overlay "splotches" to the Lisp file's buffer to show where coverage
-is lacking. The command `testcover-next-mark' (bind it to a key!)
+is lacking. The command 'testcover-next-mark' (bind it to a key!)
will move point forward to the next spot that has a splotch.
Normally, a red splotch indicates the form was never completely
evaluated; a brown splotch means it always evaluated to the same
value. The red splotches are skipped for forms that can't possibly
-complete their evaluation, such as `error'. The brown splotches are
+complete their evaluation, such as 'error'. The brown splotches are
skipped for forms that are expected to always evaluate to the same
value, such as (setq x 14).
For difficult cases, you can add do-nothing macros to your code to
-help out the test coverage tool. The macro `noreturn' suppresses a
-red splotch. It is an error if the argument to `noreturn' does
-return. The macro `1value' suppresses a brown splotch for its argument.
+help out the test coverage tool. The macro 'noreturn' suppresses a
+red splotch. It is an error if the argument to 'noreturn' does
+return. The macro '1value' suppresses a brown splotch for its argument.
This macro is a no-op except during test-coverage -- then it signals
an error if the argument actually returns differing values.
See files NEWS.22, NEWS.21, NEWS.20, NEWS.19, NEWS.18, and NEWS.1-17
for changes in older Emacs versions.
-You can narrow news to a specific version by calling `view-emacs-news'
+You can narrow news to a specific version by calling 'view-emacs-news'
with a prefix argument or by typing C-u C-h C-n.
\f
** EDE
-*** New variable `ede-project-directories'.
+*** New variable 'ede-project-directories'.
EDE now refuses to automatically load a project file (Project.ede)
unless the file is in one of the directories specified by this
variable. This reduces the risk of inadvertently loading malicious
-project files. The commands `M-x ede-new' and `M-x ede' now offer to
-save directories to `ede-project-directories'.
+project files. The commands 'M-x ede-new' and 'M-x ede' now offer to
+save directories to 'ede-project-directories'.
* Changes in Emacs 23.4 on non-free operating systems
* Changes in Emacs 23.3
-** The last-resort backup file `%backup%~' is now written to
-`user-emacs-directory', instead of the user's home directory.
+** The last-resort backup file '%backup%~' is now written to
+'user-emacs-directory', instead of the user's home directory.
-** If Emacs creates `user-emacs-directory', that directory's
+** If Emacs creates 'user-emacs-directory', that directory's
permissions are now set to rwx------, ignoring the umask.
\f
** Calendar and diary
-*** The appt-add command takes an optional argument, the warning time.
-This can be used in place of the default appt-message-warning-time.
+*** The 'appt-add' command takes an optional argument, the warning time.
+This can be used in place of the default 'appt-message-warning-time'.
** Python mode
*** You can allow inferior Python processes to load modules from the
-current directory by setting `python-remove-cwd-from-path' to nil.
+current directory by setting 'python-remove-cwd-from-path' to nil.
** Rmail
-*** The default value of `rmail-enable-mime' is now t. Rmail decodes
+*** The default value of 'rmail-enable-mime' is now t. Rmail decodes
MIME contents automatically. You can customize the variable
-`rmail-enable-mime' back to `nil' to disable this automatic MIME
+'rmail-enable-mime' back to 'nil' to disable this automatic MIME
decoding.
-*** The command `rmail-mime' change the displaying of a MIME message
-between decoded presentation form and raw data if `rmail-enable-mime'
+*** The command 'rmail-mime' change the displaying of a MIME message
+between decoded presentation form and raw data if 'rmail-enable-mime'
is non-nil. And, with prefix argument, it change only the displaying
of the MIME entity at point.
-*** The new command `rmail-mime-next-item' (bound to TAB) moves point
+*** The new command 'rmail-mime-next-item' (bound to TAB) moves point
to the next item of MIME message.
-*** The new command `rmail-mime-previous-item' (bound to backtab) moves
+*** The new command 'rmail-mime-previous-item' (bound to backtab) moves
point to the previous item of MIME message.
-*** The new command `rmail-mime-toggle-hidden' (RET) hide or show the
+*** The new command 'rmail-mime-toggle-hidden' (RET) hide or show the
body of the MIME entity at point.
** VC and related modes
-*** New VC command `vc-log-incoming', bound to `C-x v I'.
+*** New VC command 'vc-log-incoming', bound to 'C-x v I'.
This shows a log of changes to be received with a pull operation.
For Git, this runs "git fetch" to make the necessary data available
locally; this requires version 1.7 or newer.
-*** New VC command `vc-log-outgoing', bound to `C-x v O'.
+*** New VC command 'vc-log-outgoing', bound to 'C-x v O'.
This shows a log of changes to be sent in the next commit.
-*** New VC command vc-find-conflicted-file.
+*** New VC command 'vc-find-conflicted-file'.
*** The 'g' key in VC diff, log, log-incoming and log-outgoing buffers
reruns the corresponding VC command to compute an up to date version
\f
* Incompatible Lisp Changes in Emacs 23.3
-** posn-col-row now excludes the header line from the row count
+** 'posn-col-row' now excludes the header line from the row count
If the frame has a header line, posn-col-row will count row numbers
starting from the first line of text below the header line.
\f
* Lisp changes in Emacs 23.3
-** `e' and `pi' are now called `float-e' and `float-pi'.
+** 'e' and 'pi' are now called 'float-e' and 'float-pi'.
The old names are obsolete.
-** The use of unintern without an obarray arg is now obsolete.
+** The use of 'unintern' without an obarray arg is now obsolete.
-** The function `princ-list' is now obsolete.
+** The function 'princ-list' is now obsolete.
** The yank-handler argument to kill-region and friends is now obsolete.
-** New function byte-to-string, like char-to-string but for bytes.
+** New function 'byte-to-string', like 'char-to-string' but for bytes.
\f
* Changes in Emacs 23.3 on non-free operating systems
*** --enable-checking[=OPTIONS] builds emacs with extra runtime checks.
-** `make install' now consistently ignores umask, creating a
+** 'make install' now consistently ignores umask, creating a
world-readable install.
** Emacs compiles with Gconf support, if it is detected.
Use the configure option --without-gconf to disable this.
-This is used by the `font-use-system-font' feature (see below).
+This is used by the 'font-use-system-font' feature (see below).
* Startup Changes in Emacs 23.2
On Windows, the -Q option causes Emacs to ignore Registry settings,
but environment variables set on the Registry are still honored.
-*** The new variable `inhibit-x-resources' shows whether X resources
+*** The new variable 'inhibit-x-resources' shows whether X resources
were loaded.
** New command-line option -mm (--maximized) maximizes the initial frame.
** The maximum size of buffers (and the largest fixnum) is doubled.
On typical 32bit systems, buffers can now be up to 512MB.
-** The default value of `trash-directory' is now nil.
-This means that `move-file-to-trash' trashes files according to
+** The default value of 'trash-directory' is now nil.
+This means that 'move-file-to-trash' trashes files according to
freedesktop.org specifications, the same method used by the Gnome,
KDE, and XFCE desktops. (This change has no effect on Windows, which
-uses `system-move-file-to-trash' for trashing.)
+uses 'system-move-file-to-trash' for trashing.)
** The pointer now becomes invisible when typing.
-Customize `make-pointer-invisible' to disable this feature.
+Customize 'make-pointer-invisible' to disable this feature.
** Font changes
*** Emacs can use the system default monospaced font in Gnome.
-To enable this feature, set `font-use-system-font' to non-nil (it is
+To enable this feature, set 'font-use-system-font' to non-nil (it is
nil by default). If the system default changes, Emacs changes also.
This feature requires Gconf support, which is automatically included
at compile-time if configure detects the gconf libraries (you can
hintstyle, RGBA, DPI and lcdfilter changes.
** Killing a buffer with a running process now asks for confirmation.
-To remove this query, remove `process-kill-buffer-query-function' from
-`kill-buffer-query-functions', or set the appropriate process flag
-with `set-process-query-on-exit-flag'.
+To remove this query, remove 'process-kill-buffer-query-function' from
+'kill-buffer-query-functions', or set the appropriate process flag
+with 'set-process-query-on-exit-flag'.
** File-local variable changes
neither reliable nor generally desirable.
*** There are new commands for adding and removing file-local variables:
-`add-file-local-variable', `delete-file-local-variable',
-`add-file-local-variable-prop-line', and
-`delete-file-local-variable-prop-line'.
+'add-file-local-variable', 'delete-file-local-variable',
+'add-file-local-variable-prop-line', and
+'delete-file-local-variable-prop-line'.
*** There are new commands for adding and removing directory-local variables,
and copying them to and from file-local variable lists:
-`add-dir-local-variable', `delete-dir-local-variable',
-`copy-dir-locals-to-file-locals',
-`copy-dir-locals-to-file-locals-prop-line' and
-`copy-file-locals-to-dir-locals'.
+'add-dir-local-variable', 'delete-dir-local-variable',
+'copy-dir-locals-to-file-locals',
+'copy-dir-locals-to-file-locals-prop-line' and
+'copy-file-locals-to-dir-locals'.
** Internationalization changes
arguments. Customizing enable-multibyte-characters and setting
default-enable-multibyte-characters are also deprecated.
-*** New coding system `utf-8-hfs'.
-This is suitable for default-file-name-coding-system on Mac OS X; see
+*** New coding system 'utf-8-hfs'.
+This is suitable for 'default-file-name-coding-system' on Mac OS X; see
international/ucs-normalize.el.
** Function arguments in *Help* buffers are now shown in upper-case.
-Customize `help-downcase-arguments' to t to show them in lower-case.
+Customize 'help-downcase-arguments' to t to show them in lower-case.
-** New command `async-shell-command', bound globally to `M-&'.
-This executes the command asynchronously, similar to calling `M-!' and
-manually adding an ampersand to the end of the command. With `M-&',
+** New command 'async-shell-command', bound globally to 'M-&'.
+This executes the command asynchronously, similar to calling 'M-!' and
+manually adding an ampersand to the end of the command. With 'M-&',
you don't need the ampersand. The output appears in the buffer
-`*Async Shell Command*'.
+'*Async Shell Command*'.
** When running in a new enough xterm (newer than version 242), Emacs
asks xterm what the background color is and it sets up faces
** Kill-ring and selection changes
-*** If `select-active-regions' is t, any active region automatically
+*** If 'select-active-regions' is t, any active region automatically
becomes the primary selection (for interaction with other window
applications). If you enable this, you might want to bind
-`mouse-yank-primary' to Mouse-2.
+'mouse-yank-primary' to Mouse-2.
-*** When `save-interprogram-paste-before-kill' is non-nil, the kill
+*** When 'save-interprogram-paste-before-kill' is non-nil, the kill
commands save the interprogram-paste selection into the kill ring
before doing anything else. This avoids losing the selection.
-*** When `kill-do-not-save-duplicates' is non-nil, identical
-subsequent kills are not duplicated in the `kill-ring'.
+*** When 'kill-do-not-save-duplicates' is non-nil, identical
+subsequent kills are not duplicated in the 'kill-ring'.
** Completion changes
-*** The new command `completion-at-point' provides mode-sensitive completion.
+*** The new command 'completion-at-point' provides mode-sensitive completion.
-*** tab-always-indent set to `complete' lets TAB do completion as well.
+*** 'tab-always-indent' set to 'complete' lets TAB do completion as well.
-*** The new completion-style `initials' is available.
+*** The new completion-style 'initials' is available.
For instance, this can complete M-x lch to list-command-history.
-*** The new variable `completions-format' determines how completions
+*** The new variable 'completions-format' determines how completions
are displayed in the *Completions* buffer. If you set it to
-`vertical', completions are sorted vertically in columns.
+'vertical', completions are sorted vertically in columns.
-** The default value of `blink-matching-paren-distance' is increased.
+** The default value of 'blink-matching-paren-distance' is increased.
** M-n provides more default values in the minibuffer for commands
that read file names. These include the file name at point (when ffap
-is loaded without ffap-bindings), the file name on the current line
+is loaded without 'ffap-bindings'), the file name on the current line
(in Dired buffers), and the directory names of adjacent Dired windows
(for Dired commands that operate on several directories, such as copy,
rename, or diff).
-** M-r is bound to the new `move-to-window-line-top-bottom'.
+** M-r is bound to the new 'move-to-window-line-top-bottom'.
This moves point to the window center, top and bottom on successive
invocations, in the same spirit as the C-l (recenter-top-bottom)
command.
-** The new variable `recenter-positions' determines the default
-cycling order of C-l (`recenter-top-bottom').
+** The new variable 'recenter-positions' determines the default
+cycling order of C-l ('recenter-top-bottom').
** The abbrevs file is now a file named abbrev_defs in
-user-emacs-directory; but the old location, ~/.abbrev_defs, is used if
+'user-emacs-directory'; but the old location, ~/.abbrev_defs, is used if
that file exists.
\f
* Changes in Specialized Modes and Packages in Emacs 23.2
-** The bookmark menu has a narrowing search via bookmark-bmenu-search.
+** The bookmark menu has a narrowing search via 'bookmark-bmenu-search'.
** Calc
*** The Calc settings file is now a file named calc.el in
-user-emacs-directory; but the old location, ~/.calc.el, is used if
+'user-emacs-directory'; but the old location, ~/.calc.el, is used if
that file exists.
*** New twos-complement display.
-*** Graphing commands (`g f' etc.) now work on MS-Windows, if you have
+*** Graphing commands ('g f' etc.) now work on MS-Windows, if you have
the native Windows port of Gnuplot version 3.8 or later installed.
** Calendar and diary
*** Fancy diary display is now the default.
-If you prefer the simple display, customize `diary-display-function'.
+If you prefer the simple display, customize 'diary-display-function'.
*** The diary's fancy display now enables view-mode.
-*** The command `calendar-current-date' accepts an optional argument
+*** The command 'calendar-current-date' accepts an optional argument
giving an offset from today.
** Desktop
-*** The default value for `desktop-buffers-not-to-save' is nil.
+*** The default value for 'desktop-buffers-not-to-save' is nil.
This means Desktop will try restoring all buffers, when you restart
-your Emacs session. Also, `desktop-buffers-not-to-save' is only
+your Emacs session. Also, 'desktop-buffers-not-to-save' is only
effective for buffers that have no associated file. If you want to
exempt buffers that do correspond to files, customize the value of
-`desktop-files-not-to-save' instead.
+'desktop-files-not-to-save' instead.
** Dired
-*** The new variable `dired-auto-revert-buffer', if non-nil, causes
+*** The new variable 'dired-auto-revert-buffer', if non-nil, causes
Dired buffers to be reverted automatically on revisiting them.
** DocView
-*** When `doc-view-continuous' is non-nil, scrolling a line
+*** When 'doc-view-continuous' is non-nil, scrolling a line
on the page edge advances to the next/previous page.
** Elint
and can be run in batch mode.
*** Elint does a more thorough initialization, and recognizes more built-in
-functions and variables. Customize `elint-scan-preloaded' if you want
+functions and variables. Customize 'elint-scan-preloaded' if you want
to sacrifice some accuracy for a faster startup.
*** Elint attempts some basic understanding of featurep and (f)boundp tests.
-*** Customize `elint-ignored-warnings' to suppress some warnings.
+*** Customize 'elint-ignored-warnings' to suppress some warnings.
** GDB-UI
** Grep
-*** A new command `zrgrep' searches recursively in gzipped files.
+*** A new command 'zrgrep' searches recursively in gzipped files.
** Info
-*** The new command `Info-virtual-index' bound to "I" displays a menu of
+*** The new command 'Info-virtual-index' bound to "I" displays a menu of
matched topics found in the index.
-*** The new command `info-finder' replaces finder.el with a virtual Info
+*** The new command 'info-finder' replaces finder.el with a virtual Info
manual that generates an Info file which gives the same information
through a menu structure.
** Message mode is now the default mode for composing mail.
-The default for `mail-user-agent' is now message-user-agent, so the
-C-x m (`compose-mail') command uses Message mode instead of Mail mode.
+The default for 'mail-user-agent' is now message-user-agent, so the
+C-x m ('compose-mail') command uses Message mode instead of Mail mode.
Message mode has been included in Emacs, as part of the Gnus package,
for several years. It provides several features that are absent in
Mail mode, such as MIME handling.
-*** If the user has not customized mail-user-agent, `compose-mail'
+*** If the user has not customized mail-user-agent, 'compose-mail'
checks for Mail mode customizations, and issues a warning if these
customizations are found. This alerts users who may otherwise be
unaware that their mail configuration has changed.
-To disable this check, set compose-mail-user-agent-warnings to nil.
+To disable this check, set 'compose-mail-user-agent-warnings' to nil.
-** The default value of mail-interactive is t, since Emacs 23.1.
+** The default value of 'mail-interactive' is t, since Emacs 23.1.
(This was not announced at the time.) It means that when sending mail,
Emacs will wait for the process sending mail to return. If you
experience delays when sending mail, you may wish to set this to nil.
** nXML mode is now the default for editing XML files.
-** pcomplete provides a new command `pcomplete-std-completion' which
-is similar to `pcomplete' but using the standard completion UI code.
+** pcomplete provides a new command 'pcomplete-std-completion' which
+is similar to 'pcomplete' but using the standard completion UI code.
** Shell (and other comint modes)
-*** M-s is no longer bound to `comint-next-matching-input'.
+*** M-s is no longer bound to 'comint-next-matching-input'.
-*** M-r is now bound to `comint-history-isearch-backward-regexp'.
+*** M-r is now bound to 'comint-history-isearch-backward-regexp'.
This starts an incremental search of the comint/shell input history.
*** ansi-color is now enabled by default in Shell mode.
use to create a repository, create a new repository and register the
file.
-*** New command `vc-root-print-log', bound to `C-x v L'.
-This displays a `*vc-change-log*' buffer showing the history of the
+*** New command 'vc-root-print-log', bound to 'C-x v L'.
+This displays a '*vc-change-log*' buffer showing the history of the
version-controlled directory tree as a whole.
-*** New command `vc-root-diff', bound to `C-x v D'.
-This is similar to `vc-diff', but compares the entire directory tree
+*** New command 'vc-root-diff', bound to 'C-x v D'.
+This is similar to 'vc-diff', but compares the entire directory tree
of the current VC directory with its working revision.
-*** `C-x v l' and `C-x v L' do not show the full log by default.
+*** 'C-x v l' and 'C-x v L' do not show the full log by default.
The number of entries shown can be chosen interactively with a prefix
-argument, or by customizing vc-log-show-limit. The `*vc-change-log*'
+argument, or by customizing vc-log-show-limit. The '*vc-change-log*'
buffer now contains buttons at the end of the buffer, which can be
used to increase the number of entries shown. RCS, SCCS, and CVS do
not support this feature.
-*** vc-annotate supports annotations through file copies and renames,
+*** 'vc-annotate' supports annotations through file copies and renames,
it displays the old names for the files and it can show logs/diffs for
the corresponding lines. Currently only Git and Mercurial take
advantage of this feature.
** Miscellaneous
-*** Interactively `multi-isearch-buffers' and `multi-isearch-buffers-regexp'
+*** Interactively 'multi-isearch-buffers' and 'multi-isearch-buffers-regexp'
read buffer names to search, one by one, ended with RET. With a prefix
argument, they ask for a regexp, and search in buffers whose names match
-the specified regexp. Interactively `multi-isearch-files' and
-`multi-isearch-files-regexp' read file names to search, one by one,
+the specified regexp. Interactively 'multi-isearch-files' and
+'multi-isearch-files-regexp' read file names to search, one by one,
ended with RET. With a prefix argument, they ask for a wildcard, and
search in file buffers whose file names match the specified wildcard.
*** Autorevert Tail mode now works also for remote files.
-*** The new eshell built-in commands `su' and `sudo' support Tramp.
-Thus, they change `default-directory' to reflect the new user id, and
+*** The new eshell built-in commands 'su' and 'sudo' support Tramp.
+Thus, they change 'default-directory' to reflect the new user id, and
let commands run under that user's permissions. This works even when
-`default-directory' is already remote. Calling the external commands
-is possible via `*su' or `*sudo', respectively.
+'default-directory' is already remote. Calling the external commands
+is possible via '*su' or '*sudo', respectively.
** Obsolete packages
and several other languages are included by default, and Semantic can
also interface with external tools such as GNU Global and GNU Idutils.
-To enable Semantic, use the global minor mode `semantic-mode'.
+To enable Semantic, use the global minor mode 'semantic-mode'.
See the Semantic manual for details.
*** EDE (Emacs Development Environment) is a package for managing code
projects, including features such as automatic Makefile generation.
-To enable EDE, use the minor mode `global-ede-mode'.
+To enable EDE, use the minor mode 'global-ede-mode'.
See the EDE manual for details.
*** SRecode is a library for recoding Semantic tags back into source
* Incompatible Lisp Changes in Emacs 23.2
** The Lisp reader turns integers that are too large/small into floats.
-For instance, on machines where `536870911' is the largest integer,
-reading `536870912' gives the floating-point object `536870912.0'.
+For instance, on machines where '536870911' is the largest integer,
+reading '536870912' gives the floating-point object '536870912.0'.
This change only concerns the Lisp reader; it does not affect how
actual integer objects overflow.
time-stamp-hhmm, baud-rate
** Support for generating Emacs 18 compatible bytecode (by setting
-the variable `byte-compile-compatibility') has been removed.
-
-** In image-mode.el `image-mode-maybe' is obsolete.
-Instead, you can either use `image-mode' (which displays an image file
-as the actual image initially), or `image-mode-as-text' (when you want
-to display an image file as text initially). `image-mode-as-text' is a
-combination of a non-image mode from `auto-mode-alist' (or Fundamental
-mode) and `image-minor-mode'. `image-minor-mode' provides a `C-c C-c'
+the variable 'byte-compile-compatibility') has been removed.
+
+** In image-mode.el 'image-mode-maybe' is obsolete.
+Instead, you can either use 'image-mode' (which displays an image file
+as the actual image initially), or 'image-mode-as-text' (when you want
+to display an image file as text initially). 'image-mode-as-text' is a
+combination of a non-image mode from 'auto-mode-alist' (or Fundamental
+mode) and 'image-minor-mode'. 'image-minor-mode' provides a 'C-c C-c'
key binding to toggle image display.
-`image-toggle-display-text' removes image properties.
-`image-toggle-display-image' adds image properties.
-`image-toggle-display' toggles between `image-mode-as-text' and `image-mode'.
+'image-toggle-display-text' removes image properties.
+'image-toggle-display-image' adds image properties.
+'image-toggle-display' toggles between 'image-mode-as-text' and 'image-mode'.
\f
* 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.
+** 'read-key' is a mix between 'read-event' and 'read-key-sequence'.
It reads a single key, but obeys input and escape sequence decoding.
** Frame parameter changes
-*** You can give the `fullscreen' frame parameter the value `maximized'.
+*** You can give the 'fullscreen' frame parameter the value 'maximized'.
This maximizes the frame.
-*** The new frame parameter `sticky' makes Emacs frames sticky in
+*** The new frame parameter 'sticky' makes Emacs frames sticky in
virtual desktops.
** Completion changes
-*** completion-base-size is obsoleted by completion-base-position.
+*** 'completion-base-size' is obsoleted by 'completion-base-position'.
This change causes a few backward incompatibilities, mostly with
-choose-completion-string-functions where the `mini-p' argument has
-been replaced by a `base-position' argument, and where the `base-size'
+'choose-completion-string-functions' where the 'mini-p' argument has
+been replaced by a 'base-position' argument, and where the 'base-size'
argument is now always nil.
-*** New function `completion-in-region' to use the standard completion
+*** New function 'completion-in-region' to use the standard completion
facilities on a particular region of text.
*** The 4th arg to all-completions (aka hide-spaces) is declared obsolete.
-*** completion-annotate-function specifies how to compute annotations
+*** 'completion-annotate-function' specifies how to compute annotations
for completions displayed in *Completions*.
** Minibuffer changes
*** read-file-name-predicate is obsolete. It was used to pass the predicate
-to read-file-name-internal because read-file-name-internal abused its `pred'
+to read-file-name-internal because read-file-name-internal abused its 'pred'
argument to pass the current directory, but this hack is not needed
any more.
** Changes to file-manipulation functions
-*** `delete-directory' has an optional parameter RECURSIVE.
+*** 'delete-directory' has an optional parameter RECURSIVE.
-*** New function `copy-directory', which copies a directory recursively.
+*** New function 'copy-directory', which copies a directory recursively.
** called-interactively-p now takes one argument and replaces interactive-p
which is now marked obsolete.
-** New function set-advertised-calling-convention makes it possible
+** New function 'set-advertised-calling-convention' makes it possible
to obsolete arguments as well as make some arguments mandatory.
** You can control which binding is preferentially shown in menus and
-docstrings by adding a `:advertised-binding' property to the corresponding
+docstrings by adding a ':advertised-binding' property to the corresponding
command's symbol. That property can hold a single binding or a list
of bindings.
** Network and process changes
-*** start-process-shell-command and start-file-process-shell-command
-now only take a single `command' argument.
+*** 'start-process-shell-command' and 'start-file-process-shell-command'
+now only take a single 'command' argument.
-*** The new variable `process-file-side-effects' should be set to nil
-if a `process-file' call does not change a remote file. This allows
+*** The new variable 'process-file-side-effects' should be set to nil
+if a 'process-file' call does not change a remote file. This allows
file name handlers such as Tramp to optimizations.
-*** make-network-process can now also create `seqpacket' Unix sockets.
+*** 'make-network-process' can now also create 'seqpacket' Unix sockets.
** Loading changes
-*** eval-next-after-load is obsolete.
+*** 'eval-next-after-load' is obsolete.
-*** New hook `after-load-functions' run after loading an Elisp file.
+*** New hook 'after-load-functions' run after loading an Elisp file.
** Byte compilation changes
*** Changing the file-names generated by byte-compilation by redefining
-the function `byte-compile-dest-file' before loading bytecomp.el is obsolete.
+the function 'byte-compile-dest-file' before loading bytecomp.el is obsolete.
Instead, customize byte-compile-dest-file-function.
-*** `byte-compile-warnings' has new members, `constants' and `suspicious'.
+*** 'byte-compile-warnings' has new members, 'constants' and 'suspicious'.
-** New macro with-silent-modifications to tweak text properties without
+** New macro 'with-silent-modifications' to tweak text properties without
affecting the buffer's modification state.
** Hash tables have a new printed representation that is readable.
-The feature `hashtable-print-readable' identifies this new
+The feature 'hashtable-print-readable' identifies this new
functionality.
** New functions for performing Unicode normalization:
-ucs-normalize-NFD-region, ucs-normalize-NFD-string,
-ucs-normalize-NFC-region, ucs-normalize-NFC-string,
-ucs-normalize-NFKD-region, ucs-normalize-NFKD-string,
-ucs-normalize-NFKC-region, ucs-normalize-NFKC-string,
-ucs-normalize-HFS-NFD-region, ucs-normalize-HFS-NFD-string,
-ucs-normalize-HFS-NFC-region, ucs-normalize-HFS-NFC-string.
+'ucs-normalize-NFD-region', 'ucs-normalize-NFD-string',
+'ucs-normalize-NFC-region', 'ucs-normalize-NFC-string',
+'ucs-normalize-NFKD-region', 'ucs-normalize-NFKD-string',
+'ucs-normalize-NFKC-region', 'ucs-normalize-NFKC-string',
+'ucs-normalize-HFS-NFD-region', 'ucs-normalize-HFS-NFD-string',
+'ucs-normalize-HFS-NFC-region', 'ucs-normalize-HFS-NFC-string'.
** Face aliases can now be marked as obsolete, using the macro
-`define-obsolete-face-alias'.
+'define-obsolete-face-alias'.
-** New function `window-full-height-p', analogous to the full-width version.
+** New function 'window-full-height-p', analogous to the full-width version.
\f
* Changes in Emacs 23.2 on non-free operating systems
-** On MS-Windows, `display-time' now displays the system load average
+** On MS-Windows, 'display-time' now displays the system load average
as well as the time, as it does on GNU and Unix.
\f
* Installation Changes in Emacs 23.1
** The default X toolkit is now Gtk+, rather than Lucid.
-The configure option `--with-gtk' has been removed. Gtk is now the
+The configure option '--with-gtk' has been removed. Gtk is now the
default toolkit, but you can use --with-x-toolkit=gtk if necessary.
** New font code.
*** Support for Sun windows has been removed.
-*** The `emacstool' utility has been removed.
+*** The 'emacstool' utility has been removed.
** The following platforms will be removed in a future Emacs version:
If you are still using Emacs on one of these platforms, please email
*** Platforms not supporting shared libraries (i.e., requiring the
NO_SHARED_LIBS compilation flag).
-** The configure options `--with-gcc', `--without-gcc' have been removed.
+** The configure options '--with-gcc', '--without-gcc' have been removed.
Configure will use gcc by default. Set the CC environment variable if
you need control over which C compiler is used.
** Emacs 23 comes with a new set of default icons.
Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png.
-The Emacs 22 icon is available as `emacs22.png' in the same location.
+The Emacs 22 icon is available as 'emacs22.png' in the same location.
\f
* Changes in Emacs 23.1
** Improved X Window System support
*** Emacs now supports using both X displays and ttys in one session.
-With an Emacs server active (M-x server-start), `emacsclient -t'
+With an Emacs server active (M-x server-start), 'emacsclient -t'
creates a tty frame connected to the running emacs server. You can
-use any number of different ttys. `emacsclient -c' creates a new X11
+use any number of different ttys. 'emacsclient -c' creates a new X11
frame on the current $DISPLAY (or a tty frame if $DISPLAY is not set).
There may be problems if a display exits unexpectedly and Emacs is compiled
with Gtk+, see etc/PROBLEMS.
You can test for the presence of this feature in your Lisp code by
-testing for the `multi-tty' feature.
+testing for the 'multi-tty' feature.
*** Emacs starts in the background, as a daemon, when given the
--daemon command line argument. It disconnects from the terminal and
ALTERNATE_EDITOR is set to "") and emacsclient cannot connect to an
emacs server.
-*** The new command close-display-connection closes a connection to a
+*** The new command 'close-display-connection' closes a connection to a
remote display. There are some bugs for Gtk+. See etc/PROBLEMS.
*** Emacs now supports the XEmbed specification.
for details about XEmbed.
*** Emacs can now set the frame opacity.
-The opacity of a frame can be controlled by setting the `alpha' frame
+The opacity of a frame can be controlled by setting the 'alpha' frame
parameter. This only takes effect on a compositing window manager for
the X Window System, such as Compiz, Beryl and Compiz Fusion, on Mac
OS X, or on Windows 2000 and later versions of Windows.
cons cell (ACTIVE . INACTIVE), where ACTIVE is the opacity of an
active frame and INACTIVE is the opacity of non-active frames.
-The variable `frame-alpha-lower-limit' defines a lower bound for the
+The variable 'frame-alpha-lower-limit' defines a lower bound for the
opacity; the default is 20.
** Internationalization changes
(It has about four times the code space, which should be plenty).
The internal encoding used for buffers and strings is now
-Unicode-based and called `utf-8-emacs' (`emacs-internal' is an alias
+Unicode-based and called 'utf-8-emacs' ('emacs-internal' is an alias
for this). This encoding is backward-compatible with Unicode's UTF-8
encoding. The internal encoding previously used by Emacs,
-`emacs-mule', is still available for reading and writing files.
+'emacs-mule', is still available for reading and writing files.
-During byte-compilation, Emacs 23 uses `utf-8-emacs' to write files.
+During byte-compilation, Emacs 23 uses 'utf-8-emacs' to write files.
As a result, byte-compiled files containing non-ASCII characters can't
be read by earlier versions of Emacs. Files compiled by Emacs 20, 21,
-or 22 are loaded correctly as `emacs-mule' (whether or not they
+or 22 are loaded correctly as 'emacs-mule' (whether or not they
contain multibyte characters). This takes somewhat more time, so it
may be worth recompiling existing .elc files which don't need to be
shared with older Emacsen.
*** The minor modes unify-8859-on-encoding-mode and
unify-8859-on-decoding-mode are obsolete.
-*** `ucs-insert' is bound to `C-x 8 RET' and in addition to hex numbers
+*** 'ucs-insert' is bound to 'C-x 8 RET' and in addition to hex numbers
accepts numbers in hash notation (e.g. #o21430 for octal, or #10r8984 for
decimal). It also accepts Unicode character names with completion.
-*** The `cyrillic-translit' input method supports many new characters.
+*** The 'cyrillic-translit' input method supports many new characters.
Common typographical characters available from Unicode were added to
-`cyrillic-translit': punctuation marks, accented characters, fractions,
+'cyrillic-translit': punctuation marks, accented characters, fractions,
and others.
** Emacs now supports serial port access on GNU/Linux, Unix, and
-Windows. The new command `serial-term' starts an interactive terminal
+Windows. The new command 'serial-term' starts an interactive terminal
on a serial port. The serial port can be configured at runtime with
the mode-line mouse menu.
** Menu Bar changes
*** In the Options menu, the "Set Default Font" item applies the
-selected font to the `default' face on all frames, not just the
+selected font to the 'default' face on all frames, not just the
current frame. Furthermore, if Emacs is compiled with both GTK and
Fontconfig support, the "Set Default Font" item uses the GTK font
selection dialog instead of an Emacs pop-up menu.
** Mode-line changes
-*** The mode-line displays a `@', instead of `-', if the
+*** The mode-line displays a '@', instead of '-', if the
default-directory for the current buffer is on a remote machine.
*** The mode-line displays a mode menu when mouse-1 is clicked on a
minor mode, in the same way as it already did for major modes.
-*** The `mode-line-emphasis' face is used to highlight certain
+*** The 'mode-line-emphasis' face is used to highlight certain
mode-line information (e.g. waiting for a VC command to finish).
*** The mode-line tooltips have been improved to provide more details.
line are now interactive: mouse-1 can be used on them to pop up a menu.
** File deletion can make use of the Recycle Bin or system Trash folder.
-Set `delete-by-moving-to-trash' non-nil to use this. Deleted files
+Set 'delete-by-moving-to-trash' non-nil to use this. Deleted files
and directories will then be sent to the Recycle Bin on Windows, and
-to `trash-directory' on other systems.
+to 'trash-directory' on other systems.
** Directory-local variables can now be defined.
By default, Emacs looks in .dir-locals.el for directory-local
-variables. For more information, see `dir-locals-set-directory-class'
-and `dir-locals-set-class-variables'.
+variables. For more information, see 'dir-locals-set-directory-class'
+and 'dir-locals-set-class-variables'.
-** Emacs can now use `auth-source' for authentication.
-`smtpmail' and `url' (Tramp and Gnus also) use `auth-source' to obtain
+** Emacs can now use 'auth-source' for authentication.
+'smtpmail' and 'url' (Tramp and Gnus also) use 'auth-source' to obtain
login names and passwords. The match, if found, is reported
in *Messages* with the password blanked out.
-** `where-is-preferred-modifier' can specify your favorite modifier.
+** 'where-is-preferred-modifier' can specify your favorite modifier.
\f
* Startup Changes in Emacs 23.1
-** The option `inhibit-startup-screen' (with aliases to old names
-`inhibit-splash-screen' and `inhibit-startup-message') doesn't inhibit
+** The option 'inhibit-startup-screen' (with aliases to old names
+'inhibit-splash-screen' and 'inhibit-startup-message') doesn't inhibit
display of the initial message in the *scratch* buffer. If you don't
want to display the initial message in the *scratch* buffer at startup,
-you can set the option `initial-scratch-message' to nil.
+you can set the option 'initial-scratch-message' to nil.
-** New user option `initial-buffer-choice' specifies what to display
+** New user option 'initial-buffer-choice' specifies what to display
after starting Emacs: startup screen, *scratch* buffer, visiting a
file or directory.
-** New alias `argv' for `command-line-args-left'
-This is a convenience alias, so that one can write `(pop argv)'
+** New alias 'argv' for 'command-line-args-left'
+This is a convenience alias, so that one can write '(pop argv)'
inside of --eval command line arguments in order to access
following arguments.
** Emacs now supports invocation by an X session manager.
It can save a session and restore it later. See the documentation of
-the functions `emacs-session-save' and `emacs-session-restore'.
+the functions 'emacs-session-save' and 'emacs-session-restore'.
(Actually, this feature was introduced with Emacs 22, but it was not
documented.)
\f
* Incompatible Editing Changes in Emacs 23.1
-** In Dired, `dired-flag-garbage-files' is rebound from `&' to `%&'
+** In Dired, 'dired-flag-garbage-files' is rebound from '&' to '%&'
on the regexp command prefix map.
** In Dired-x, all command guesses for ! are now added to the default
list accessible by M-n instead of pushing all guesses temporarily into
the history list.
-** In Isearch mode, a special case of typing `C-w' at the beginning of
+** In Isearch mode, a special case of typing 'C-w' at the beginning of
the minibuffer that toggles word search (i.e. using key sequences
-`C-s RET C-w' or `C-s M-e C-w') is obsolete. You can use the global key
-`M-s w' to start word search, or type `M-s w' in Isearch mode to
+'C-s RET C-w' or 'C-s M-e C-w') is obsolete. You can use the global key
+'M-s w' to start word search, or type 'M-s w' in Isearch mode to
toggle word search. To start nonincremental word search you can now use
-`M-s w RET' and `M-s w C-r RET' instead of `C-s RET C-w' and `C-r RET C-w'.
+'M-s w RET' and 'M-s w C-r RET' instead of 'C-s RET C-w' and 'C-r RET C-w'.
-** In Info, `Info-search' is unbound from `M-s' to allow using `M-s w'
+** In Info, 'Info-search' is unbound from 'M-s' to allow using 'M-s w'
for word search as well as other search commands from the global prefix
-key `M-s'. `Info-search' is still bound to `s', and also incremental
-search commands `C-s', `C-M-s', `C-r', `C-M-r' are available for searching
+key 'M-s'. 'Info-search' is still bound to 's', and also incremental
+search commands 'C-s', 'C-M-s', 'C-r', 'C-M-r' are available for searching
through multiple Info nodes, together with their nonincremental versions
-`C-s RET', `C-r RET', `C-M-s RET', `C-M-r RET', `M-s w RET'.
+'C-s RET', 'C-r RET', 'C-M-s RET', 'C-M-r RET', 'M-s w RET'.
-** In Text mode, `center-line' and `center-paragraph' are rebound from
-`M-s' and `M-S' to global keys `M-o M-s' and `M-o M-S' on the global
-prefix map `M-o', which is intended for such formatting commands.
+** In Text mode, 'center-line' and 'center-paragraph' are rebound from
+'M-s' and 'M-S' to global keys 'M-o M-s' and 'M-o M-S' on the global
+prefix map 'M-o', which is intended for such formatting commands.
** The following input methods were removed in Emacs 22.2, but this was
not advertised: danish-alt-postfix, esperanto-alt-postfix,
** The C-n and C-p line-motion commands now move by screen lines,
taking continued lines and variable-width characters into account.
-Setting `line-move-visual' to nil reverts this to the previous
+Setting 'line-move-visual' to nil reverts this to the previous
behavior (i.e., motion by logical lines based on buffer contents
alone).
-** C-x C-c now invokes `save-buffers-kill-terminal', and C-z now
-invokes `suspend-frame'. These changes are for compatibility with the
-new multi-tty support (see `Improved X Window System support' above).
+** C-x C-c now invokes 'save-buffers-kill-terminal', and C-z now
+invokes 'suspend-frame'. These changes are for compatibility with the
+new multi-tty support (see 'Improved X Window System support' above).
** Mark changes
*** When Transient Mark mode is on, TAB now indents the region if the
region is active.
-*** The variable `use-empty-active-region' controls whether an empty
+*** The variable 'use-empty-active-region' controls whether an empty
active region in Transient Mark mode should make commands operate on
that empty region.
** Temporarily active regions
-*** The new variable shift-select-mode, non-nil by default, controls
+*** The new minor mode 'shift-select-mode', non-nil by default, controls
shift-selection. When Shift Select mode is on, shift-translated
motion keys (e.g. S-left and S-down) activate and extend a temporary
region, similar to mouse-selection.
Emacs puts the message "[Confirm]" in the minibuffer; type RET again
to create the file or buffer.
-The new variable confirm-nonexistent-file-or-buffer determines whether
-Emacs asks for confirmation. The default value is `after-completion'.
+The new variable 'confirm-nonexistent-file-or-buffer' determines whether
+Emacs asks for confirmation. The default value is 'after-completion'.
If you change it to t, Emacs always asks for confirmation; if you
change it to nil, Emacs never asks for confirmation.
alternatives are found, we fall back on the Emacs 22 rules for
performing completion.
-The new variable `completion-styles' can be customized to choose your
+The new variable 'completion-styles' can be customized to choose your
favorite completion style.
*** When M-n in the minibuffer reaches the end of the list of defaults,
*** Minibuffer input of shell commands now comes with completion.
-*** In the `C-x d' (Dired) prompt, typing M-n gives the visited file
+*** In the 'C-x d' (Dired) prompt, typing M-n gives the visited file
name of the current buffer.
*** In the M-! (shell-command) prompt, M-n provides some default commands.
These are guessed using the file extension of the current file, based
-on the file-handlers specified in the operating system's `mailcap'
+on the file-handlers specified in the operating system's 'mailcap'
file. The ! command in Dired (dired-do-shell-command) works
similarly, using the file displayed on the current line.
-*** A list of regexp default values is available via M-n for `occur',
-`keep-lines', `flush-lines' and `how-many'. This list includes the active
+*** A list of regexp default values is available via M-n for 'occur',
+'keep-lines', 'flush-lines' and 'how-many'. This list includes the active
region in transient-mark-mode, the word under the cursor, the last Isearch
regexp, the last Isearch string and the last replacement regexp.
-*** When enable-recursive-minibuffers is non-nil, operations which use
+*** When 'enable-recursive-minibuffers' is non-nil, operations which use
switch-to-buffer (such as C-x b and C-x C-f) do not fail any more when
used in a minibuffer or a dedicated window. Instead, they fallback on
using pop-to-buffer, which will use some other window. This change
-has no effect when enable-recursive-minibuffers is nil (the default).
+has no effect when 'enable-recursive-minibuffers' is nil (the default).
*** Isearch started in the minibuffer searches in the minibuffer history.
Reverse Isearch commands (C-r, C-M-r) search in previous minibuffer
wraps to the first history element. When the search is terminated, the
history element containing the search string becomes the current.
-*** The variable read-file-name-completion-ignore-case overrides
-completion-ignore-case for file name completion.
+*** The variable 'read-file-name-completion-ignore-case' overrides
+'completion-ignore-case' for file name completion.
-*** The variable read-buffer-completion-ignore-case overrides
-completion-ignore-case for buffer name completion.
+*** The variable 'read-buffer-completion-ignore-case' overrides
+'completion-ignore-case' for buffer name completion.
-*** The new command `minibuffer-force-complete' chooses one of the
+*** The new command 'minibuffer-force-complete' chooses one of the
possible completions, rather than stopping at the common prefix.
-*** If `completion-auto-help' is `lazy', Emacs shows the completions
+*** If 'completion-auto-help' is 'lazy', Emacs shows the completions
buffer only on the second attempt to complete. This was already
-supported in `partial-completion-mode'.
+supported in 'partial-completion-mode'.
** Face changes
via face remapping (see Lisp changes, below).
*** New commands to change the default face size in the current buffer.
-To increase it, type `C-x C-+' or `C-x C-='. To decrease it, type
-`C-x C--'. To restore the default (global) face size, type `C-x C-0'.
-These work via Text Scale mode, a new minor mode.
+To increase it, type 'C-x C-+' or 'C-x C-='. To decrease it, type
+'C-x C--'. To restore the default (global) face size, type 'C-x C-0'.
+These work via 'text-scale-mode', a new minor mode.
The final key in the above commands may be repeated without the
-leading `C-x', e.g. `C-x C-= C-= C-=' increases the face height by
+leading 'C-x', e.g. 'C-x C-= C-= C-=' increases the face height by
three steps. Each step scales the height of the default face by the
-value of the variable `text-scale-mode-step'.
+value of the variable 'text-scale-mode-step'.
-*** The commands buffer-face-mode and buffer-face-set can be used to
+*** The commands 'buffer-face-mode' and 'buffer-face-set' can be used to
remap the default face in the current buffer. See "Buffer Face mode",
under New Modes and Packages.
** Primary selection changes
*** You can disable kill ring commands from accessing the primary
-selection by setting `x-select-enable-primary' to nil.
+selection by setting 'x-select-enable-primary' to nil.
** Continuation lines can now be wrapped at word boundaries
(word-wrapping). This is controlled by the new per-buffer variable
-`word-wrap'. Word wrapping does not take place if continuation lines
+'word-wrap'. Word wrapping does not take place if continuation lines
are not shown, e.g. if truncate-lines is non-nil. The most convenient
way to enable word-wrapping is using the new minor mode Visual Line
-mode; in addition to setting `word-wrap' to t, this rebinds some
+mode; in addition to setting 'word-wrap' to t, this rebinds some
editing commands to work on screen lines rather than text lines. See
New Modes and Packages, below.
specify a minimum window width for partial-width windows, below which
lines are truncated. The default has been changed to 50.
-*** The new command balance-windows-area balances windows both
+*** The new command 'balance-windows-area' balances windows both
vertically and horizontally.
*** pop-to-buffer now always sets input focus when the popped-to window
** Miscellaneous changes:
-*** C-l is bound to the new command recenter-top-bottom, rather than recenter.
+*** C-l is bound to the new command 'recenter-top-bottom', rather than recenter.
This moves the current line to window center, top and bottom on
successive invocations.
*** scroll-preserve-screen-position also preserves the column position.
-*** If `yank-pop-change-selection' is t, rotating the kill ring also
+*** If 'yank-pop-change-selection' is t, rotating the kill ring also
updates the selection or clipboard to the current yank, just as M-w
would do so with the text it copies to the kill ring.
*** C-M-% now shows replacement as it would look in the buffer, with
-`\N' and `\&' substituted according to the match. Old behavior can be
-restored by customizing `query-replace-show-replacement'.
+'\N' and '\&' substituted according to the match. Old behavior can be
+restored by customizing 'query-replace-show-replacement'.
*** The command shell prompts for the default directory, when it is
called with a prefix and the default directory is a remote file name.
This is because some file name handlers (like ange-ftp) are not able to
run processes remotely.
-*** The new command kill-matching-buffers kills buffers whose name
+*** The new command 'kill-matching-buffers' kills buffers whose name
matches a regexp.
-*** The value of comment-style now defaults to `indent'.
+*** The value of comment-style now defaults to 'indent'.
Therefore, comment-start markers are inserted at the current indentation
of the region to comment, rather than the leftmost column.
-*** The new commands `pp-macroexpand-expression' and
-`pp-macroexpand-last-sexp' pretty-print macro expansions.
+*** The new commands 'pp-macroexpand-expression' and
+'pp-macroexpand-last-sexp' pretty-print macro expansions.
-*** The new command `set-file-modes' allows to set file's mode bits.
+*** The new command 'set-file-modes' allows to set file's mode bits.
The mode bits can be specified in symbolic notation, like with GNU
-Coreutils, in addition to an octal number. `chmod' is a new
+Coreutils, in addition to an octal number. 'chmod' is a new
convenience alias for this function.
-*** `next-error-recenter' specifies how next-error should recenter the
+*** 'next-error-recenter' specifies how next-error should recenter the
visited source file. Its value can be a number (for example, 0 for
top line, -1 for bottom line), or nil for no recentering.
*** When typing in a password in the echo area, C-y yanks the current
kill into the password.
-*** Tooltip frame parameters `font' and `color' in `tooltip-frame-parameters'
-are ignored. Customize the `tooltip' face instead.
+*** Tooltip frame parameters 'font' and 'color' in 'tooltip-frame-parameters'
+are ignored. Customize the 'tooltip' face instead.
-*** `mkdir' is a new convenience alias for `make-directory'.
+*** 'mkdir' is a new convenience alias for 'make-directory'.
\f
* New Modes and Packages in Emacs 23.1
** Auto Composition Mode is a minor mode that composes characters
automatically when they are displayed. It is globally on by default.
-It uses `auto-composition-function' (default `auto-compose-chars').
+It uses 'auto-composition-function' (default 'auto-compose-chars').
** Bubbles, a new game, is similar to SameGame.
** Buffer Face mode is a minor mode for remapping the default face in
-the current buffer. The variable `buffer-face-mode-face' specifies
-the face to remap to. The command `buffer-face-set' prompts for a
-face name, sets `buffer-face-mode-face' to it, and enables
+the current buffer. The variable 'buffer-face-mode-face' specifies
+the face to remap to. The command 'buffer-face-set' prompts for a
+face name, sets 'buffer-face-mode-face' to it, and enables
buffer-face-mode. See "Face changes", under Editing Changes, for a
description of face remapping.
-** butterfly flips the desired bit on the drive platter.
+** 'butterfly' flips the desired bit on the drive platter.
See http://xkcd.com/378/
** bug-reference.el provides clickable links to bug reports.
is an existing Gnus back end, nnmairix.el, which should be used with
Maildir/MH setups.
-** minibuffer-depth-indicate-mode shows the minibuffer depth in the prompt.
+** 'minibuffer-depth-indicate-mode' shows the minibuffer depth in the prompt.
** nXML Mode
This is a new mode for editing XML documents. It allows a schema to
attribute name or data value by using information about what is
allowed by the schema in that context.
-** proced.el provides a Dired-like interface for operating on
-processes. Proced makes an Emacs buffer containing a listing of the
+** 'proced' provides a Dired-like interface for operating on processes.
+Proced makes an Emacs buffer containing a listing of the
current processes. You can use the normal Emacs commands to move
around in this buffer, and special Proced commands to operate on the
processes listed. It is currently only functional on GNU/Linux,
** Visual Line mode provides support for editing by visual lines.
It turns on word-wrapping in the current buffer, and rebinds C-a, C-e,
and C-k to commands that operate by visual lines instead of logical
-lines. This is a more reliable replacement for longlines-mode.
+lines. This is a more reliable replacement for 'longlines-mode'.
This can also be turned on using the menu bar, via
Options -> Line Wrapping in this Buffer -> Word Wrap
with Avahi, a zeroconf implementation, via D-Bus messages on systems
which have installed this software.
-** There is a new `whitespace' package.
-(The pre-existing one has been renamed to `old-whitespace'.)
+** There is a new 'whitespace' package.
+(The pre-existing one has been renamed to 'old-whitespace'.)
Now, besides reporting bogus blanks, the whitespace package has a
minor mode and a global minor mode to visualize blanks (TAB, (HARD)
SPACE and NEWLINE). The visualization is made via faces and/or display
table. It can also indicate lines that extend beyond a given column,
trailing blanks, and empty lines at the start or end of a buffer.
-See `whitespace-style' for more details. The `whitespace-action' option
+See 'whitespace-style' for more details. The 'whitespace-action' option
specifies what to do when a buffer is visited, killed, or written.
\f
** Abbrev has been rewritten in Elisp and extended with more flexibility.
-*** New functions: abbrev-get, abbrev-put, abbrev-table-get, abbrev-table-put,
-abbrev-table-p, abbrev-insert, abbrev-table-menu.
+*** New functions: 'abbrev-get', 'abbrev-put', 'abbrev-table-get',
+'abbrev-table-put', 'abbrev-table-p', 'abbrev-insert', 'abbrev-table-menu'.
-*** Special hook `abbrev-expand-functions' obsoletes `pre-abbrev-expand-hook'.
+*** Special hook 'abbrev-expand-functions' obsoletes 'pre-abbrev-expand-hook'.
-*** `make-abbrev-table', `define-abbrev', `define-abbrev-table' all take
+*** 'make-abbrev-table', 'define-abbrev', 'define-abbrev-table' all take
extra arguments for arbitrary properties.
-*** New variable `abbrev-minor-mode-table-alist'.
+*** New variable 'abbrev-minor-mode-table-alist'.
-*** `local-abbrev-table' can hold a list of abbrev-tables.
+*** 'local-abbrev-table' can hold a list of abbrev-tables.
*** Abbrevs have now the following special properties:
-`:count', `:system', `:enable-function', `:case-fixed'.
+':count', ':system', ':enable-function', ':case-fixed'.
*** Abbrev-tables have now the following special properties:
-`:parents', `:case-fixed', `:enable-function', `:regexp',
-`abbrev-table-modiff'.
+':parents', ':case-fixed', ':enable-function', ':regexp',
+'abbrev-table-modiff'.
** Apropos
-*** `apropos-library' describes the elements defined in a given library.
+*** 'apropos-library' describes the elements defined in a given library.
-*** Set `apropos-compact-layout' is you want a more compact (but wider) layout.
+*** Set 'apropos-compact-layout' is you want a more compact (but wider) layout.
** Archive Mode has basic support to browse Rar archives.
Note, however, that the free version of the unrar command only handles
** BibTeX mode
-*** New command `bibtex-initialize' (re)initializes BibTeX buffers.
+*** New command 'bibtex-initialize' (re)initializes BibTeX buffers.
-*** New `bibtex-entry-format' options `whitespace', `braces', and
-`string', disabled by default.
+*** New 'bibtex-entry-format' options 'whitespace', 'braces', and
+'string', disabled by default.
-*** New variable `bibtex-cite-matcher-alist' contains rules to
-identify cited keys in BibTeX entries, used by `bibtex-find-crossref'.
+*** New variable 'bibtex-cite-matcher-alist' contains rules to
+identify cited keys in BibTeX entries, used by 'bibtex-find-crossref'.
-*** Command `bibtex-url' allows multiple URLs per entry.
+*** Command 'bibtex-url' allows multiple URLs per entry.
** Bookmarks
** Calc
-*** `j *' (cal-sel-mult-both-sides) has an option to expand the denominator.
+*** 'j *' (cal-sel-mult-both-sides) has an option to expand the denominator.
-*** `calc-embedded-word-regexp' is used for finding words in
-`calc-embedded-word' in place of delimiters.
+*** 'calc-embedded-word-regexp' is used for finding words in
+'calc-embedded-word' in place of delimiters.
*** The separate Calc version number has been removed; use the Emacs
version for reference.
** Calendar and diary
-*** There is a new date style, `iso', essentially year/month/day.
-The variable `european-calendar-style' is obsolete - use `calendar-date-style'.
-Similarly, the commands `american-calendar' and `european-calendar'
-should be replaced by `calendar-set-date-style'.
+*** There is a new date style, 'iso', essentially year/month/day.
+The variable 'european-calendar-style' is obsolete - use 'calendar-date-style'.
+Similarly, the commands 'american-calendar' and 'european-calendar'
+should be replaced by 'calendar-set-date-style'.
*** The calendar namespace has been rationalized.
-All functions and variables now begin with a `calendar-', `diary-', or
-`holiday-' prefix. The various calendar systems have secondary
-prefixes, eg `calendar-french-'. The old names you are likely to use
+All functions and variables now begin with a 'calendar-', 'diary-', or
+'holiday-' prefix. The various calendar systems have secondary
+prefixes, eg 'calendar-french-'. The old names you are likely to use
directly still exist, for the time being, as aliases, but please start
using the new names.
*** Text (e.g. ISO weeks) can be displayed between the calendar months.
See the variables calendar-intermonth-header and calendar-intermonth-text.
-*** The function `holiday-chinese' computes holidays on the Chinese calendar.
-It has been used to add items to the list `holiday-oriental-holidays'.
+*** The function 'holiday-chinese' computes holidays on the Chinese calendar.
+It has been used to add items to the list 'holiday-oriental-holidays'.
-*** `diary-remind' accepts a negative number -DAYS as a shorthand for
+*** 'diary-remind' accepts a negative number -DAYS as a shorthand for
the list (1 2 ... DAYS).
** Change Log mode
-*** The new command C-c C-f (change-log-find-file) finds the file
+*** The new command C-c C-f ('change-log-find-file') finds the file
associated with the current log entry.
-*** The new command C-c C-c (change-log-goto-source) goes to the
+*** The new command C-c C-c ('change-log-goto-source') goes to the
source code associated with a log entry.
** Compile and grep modes
It has different colors for to show that: (a) the command is still
running, (b) successful completion, (c) error.
-*** compilation-auto-jump-to-first-error tells `compile' to jump to
+*** compilation-auto-jump-to-first-error tells 'compile' to jump to
the first error encountered during compilations.
-*** compilation-scroll-output accepts a new value, `first-error', which
+*** compilation-scroll-output accepts a new value, 'first-error', which
says to stop auto scrolling at the first error that occurs.
-*** The `cc' alias for C++ files in `grep-file-aliases' has been
-improved. `hh' can be used to match C++ header files and `cchh' both
+*** The 'cc' alias for C++ files in 'grep-file-aliases' has been
+improved. 'hh' can be used to match C++ header files and 'cchh' both
C++ sources and headers.
** Copyright
*** You can specify your copyright holders' names.
-Only copyright lines with holders matching `copyright-names-regexp' are
+Only copyright lines with holders matching 'copyright-names-regexp' are
considered for update.
*** Copyrights can be at the end of the buffer.
-This is controlled by `copyright-at-end-flag' (used by, e.g., change-log-mode).
+This is controlled by 'copyright-at-end-flag' (used by, e.g., change-log-mode).
** Custom
-*** defcustom accepts new keyword arguments, `:safe' and `:risky', which
-set a variable's `safe-local-variable' and `risky-local-variable' property.
+*** defcustom accepts new keyword arguments, ':safe' and ':risky', which
+set a variable's 'safe-local-variable' and 'risky-local-variable' property.
** Diff mode
-*** diff-refine-hunk highlights word-level details of changes in a diff hunk.
+*** 'diff-refine-hunk' highlights word-level details of changes in a diff hunk.
It's used automatically as you move through hunks, see
-diff-auto-refine-mode. It is bound to `C-c C-b'.
+'diff-auto-refine-mode'. It is bound to 'C-c C-b'.
-*** diff-add-change-log-entries-other-window iterates through the diff
+*** 'diff-add-change-log-entries-other-window' iterates through the diff
buffer and tries to create ChangeLog entries for each change.
-It is bound to `C-x 4 A'.
+It is bound to 'C-x 4 A'.
-*** Turning on `whitespace-mode' in a diff buffer will show trailing
+*** Turning on 'whitespace-mode' in a diff buffer will show trailing
whitespace problems in the modified lines.
** Dired
-*** In Dired, C-x C-q now runs the command wdired-change-to-wdired-mode,
+*** In Dired, C-x C-q now runs the command 'wdired-change-to-wdired-mode',
and C-x C-q in wdired-mode exits it with asking a question about
saving changes.
-*** `&' runs the command `dired-do-async-shell-command' that executes
+*** '&' runs the command 'dired-do-async-shell-command' that executes
the command asynchronously without the need to manually add ampersand
-to the end of the command. Its output appears in the buffer `*Async Shell
+to the end of the command. Its output appears in the buffer '*Async Shell
Command*'.
-*** `M-s f C-s' and `M-s f M-C-s' run Isearch that matches only at file names.
-When a new user option `dired-isearch-filenames' is t, then even ordinary
-Isearch started with `C-s' and `C-M-s' matches only at file names in the
-Dired buffer. When `dired-isearch-filenames' is `dwim' then activation of
+*** 'M-s f C-s' and 'M-s f M-C-s' run Isearch that matches only at file names.
+When a new user option 'dired-isearch-filenames' is t, then even ordinary
+Isearch started with 'C-s' and 'C-M-s' matches only at file names in the
+Dired buffer. When 'dired-isearch-filenames' is 'dwim' then activation of
file name Isearch depends on the position of point - if point is on a file
name initially, then Isearch matches only file names, otherwise it matches
everywhere in the Dired buffer. You can toggle file names matching on or
-off by typing `M-s f' in Isearch mode.
+off by typing 'M-s f' in Isearch mode.
-*** `M-s a C-s' and `M-s a M-C-s' run multi-file Isearch on the marked files.
+*** 'M-s a C-s' and 'M-s a M-C-s' run multi-file Isearch on the marked files.
They visit the first marked file in the sequence and display the usual Isearch
prompt for a string or a regexp where all Isearch commands are available.
-*** `Q' in Dired provides two new keys for multi-file replacement.
-The upper case key `Y' replaces all remaining matches in all remaining files
-with no more questions. The upper case key `N' stops doing replacements
+*** 'Q' in Dired provides two new keys for multi-file replacement.
+The upper case key 'Y' replaces all remaining matches in all remaining files
+with no more questions. The upper case key 'N' stops doing replacements
in the current file and skips to the next file. These multi-file keys
-are available for all commands that use `tags-query-replace'
-including `dired-do-query-replace-regexp', `vc-dir-query-replace-regexp',
-`reftex-query-replace-document'.
+are available for all commands that use 'tags-query-replace'
+including 'dired-do-query-replace-regexp', 'vc-dir-query-replace-regexp',
+'reftex-query-replace-document'.
** Fortran
*** The line length of fixed-form Fortran is not fixed at 72 any more.
-Customize the variable `fortran-line-length' to change it.
+Customize the variable 'fortran-line-length' to change it.
*** In Fortran mode, M-; is now bound to the standard comment-dwim,
rather than fortran-indent-comment.
There are many new features, bug fixes and improvements; see the file
GNUS-NEWS or the node "No Gnus" in the Gnus manual for details.
-*** In Emacs 23, Gnus uses Emacs' new internal coding system `utf-8-emacs' for
+*** In Emacs 23, Gnus uses Emacs' new internal coding system 'utf-8-emacs' for
saving articles, drafts, and ~/.newsrc.eld. These file may not be read
correctly in Emacs 22 and below. If you want to Gnus across different Emacs
-versions, you may set `mm-auto-save-coding-system' to `emacs-mule'.
+versions, you may set 'mm-auto-save-coding-system' to 'emacs-mule'.
-*** Passwords are consistently loaded through `auth-source'
-Gnus can use `auth-source' for POP and IMAP passwords. Also see that
-`smtpmail' and `url' support `auth-source' for SMTP and HTTP/HTTPS/RSS
+*** Passwords are consistently loaded through 'auth-source'
+Gnus can use 'auth-source' for POP and IMAP passwords. Also see that
+'smtpmail' and 'url' support 'auth-source' for SMTP and HTTP/HTTPS/RSS
authentication respectively.
** Help mode
-*** New macro `with-help-window' should set up help windows better
-than `with-output-to-temp-buffer' with `print-help-return-message'.
+*** New macro 'with-help-window' should set up help windows better
+than 'with-output-to-temp-buffer' with 'print-help-return-message'.
-*** New option `help-window-select' permits to customize whether help
+*** New option 'help-window-select' permits to customize whether help
window shall be automatically selected when invoking help.
-*** New variable `help-window-point-marker' permits one to specify a new
-position for point in help window (for example in `view-lossage').
+*** New variable 'help-window-point-marker' permits one to specify a new
+position for point in help window (for example in 'view-lossage').
** Isearch
-*** New command `isearch-forward-word' bound globally to `M-s w' starts
-incremental word search. New command `isearch-toggle-word' bound to the
-same key `M-s w' in Isearch mode toggles word searching on or off
+*** New command 'isearch-forward-word' bound globally to 'M-s w' starts
+incremental word search. New command 'isearch-toggle-word' bound to the
+same key 'M-s w' in Isearch mode toggles word searching on or off
while Isearch is active.
-*** New command `isearch-highlight-regexp' bound to `M-s h r' in Isearch
-mode runs `highlight-regexp' (`hi-lock-face-buffer') with the current
-search string as its regexp argument. The same key `M-s h r' and
-other keys on the `M-s h' prefix are bound globally to the command
-`highlight-regexp' and other hi-lock commands.
+*** New command 'isearch-highlight-regexp' bound to 'M-s h r' in Isearch
+mode runs 'highlight-regexp' ('hi-lock-face-buffer') with the current
+search string as its regexp argument. The same key 'M-s h r' and
+other keys on the 'M-s h' prefix are bound globally to the command
+'highlight-regexp' and other hi-lock commands.
-*** New command `isearch-occur' bound to `M-s o' in Isearch mode
-runs `occur' with the current search string. The same key `M-s o'
-is bound globally to the command `occur'.
+*** New command 'isearch-occur' bound to 'M-s o' in Isearch mode
+runs 'occur' with the current search string. The same key 'M-s o'
+is bound globally to the command 'occur'.
*** Isearch can now search through multiple ChangeLog files.
When running Isearch in a ChangeLog file, if the search fails,
This is enabled if multi-isearch-search is non-nil.
*** Two new commands to start Isearch on a list of marked buffers
-for buff-menu.el and ibuffer.el are bound to the keys `M-s a C-s' and
-`M-s a M-C-s'.
+for buff-menu.el and ibuffer.el are bound to the keys 'M-s a C-s' and
+'M-s a M-C-s'.
*** The part of an Isearch that failed to match is highlighted in
-`isearch-fail' face.
+'isearch-fail' face.
-*** `C-h C-h' in Isearch mode displays isearch-specific Help screen,
-`C-h b' displays all Isearch key bindings, `C-h k' displays the full
-documentation of the given Isearch key sequence, `C-h m' displays
+*** 'C-h C-h' in Isearch mode displays isearch-specific Help screen,
+'C-h b' displays all Isearch key bindings, 'C-h k' displays the full
+documentation of the given Isearch key sequence, 'C-h m' displays
documentation for Isearch mode. All the other Help commands exit
Isearch mode and execute their global definitions.
*** When started in the minibuffer, Isearch searches in the minibuffer
-history. See `Minibuffer changes', above.
+history. See 'Minibuffer changes', above.
** MH-E
*** The file etc/emacs.py now supports both Python 2 and 3, meaning
that either version can be used as inferior Python by python.el.
-*** Python mode now has `pdbtrack' functionality. When using pdb to
+*** Python mode now has 'pdbtrack' functionality. When using pdb to
debug a Python program, pdbtrack notices the pdb prompt and displays
the source file and line that the program is stopped at, much the same
way as gud-mode does for debugging C programs with gdb.
** Recentf
-*** The default value of `recentf-keep' prevents from checking of
+*** The default value of 'recentf-keep' prevents from checking of
remote files, if there is no established connection to the
corresponding remote host.
of a message (or message collection) by a simple save-restriction and
widen. Instead, there are two buffers: the rmail-buffer, and the
rmail-view-buffer. The former is the buffer that you see, the latter
-is invisible. Most of the time, the invisible `view' buffer contains
+is invisible. Most of the time, the invisible 'view' buffer contains
the full contents of the Rmail file, and the Rmail buffer contains a
decoded copy of the current message (with only a subset of the
-headers). In this state, Rmail is said to be `swapped'.
+headers). In this state, Rmail is said to be 'swapped'.
You may find the following functions useful:
-`rmail-get-header' and `rmail-set-header' get or set the value of a
+'rmail-get-header' and 'rmail-set-header' get or set the value of a
message header, whether or not it is currently visible.
-`rmail-apply-in-message' is a general purpose function that calls a
+'rmail-apply-in-message' is a general purpose function that calls a
function (with arguments) which you specify on the full text of a given
message. To further narrow to just the headers, search forward for "\n\n".
-*** The new command `rmail-mime' displays MIME messages.
-It is bound to `v' in Rmail buffers and summaries. It displays plain
+*** The new command 'rmail-mime' displays MIME messages.
+It is bound to 'v' in Rmail buffers and summaries. It displays plain
text and multipart messages in a temporary buffer, and offers buttons
to save attachments.
-*** The command `rmail-redecode-body' no longer accepts the optional arg RAW.
+*** The command 'rmail-redecode-body' no longer accepts the optional arg RAW.
Since Rmail now holds messages in their original undecoded form in a
-separate buffer, `rmail-redecode-body' no longer encodes the original
+separate buffer, 'rmail-redecode-body' no longer encodes the original
message, and therefore there should be no need to avoid encoding it.
-*** The o command is now `rmail-output'. It is an all-purpose command
+*** The o command is now 'rmail-output'. It is an all-purpose command
for copying messages from Rmail and appending them to files. It
handles Babyl-format files as well as mbox-format files, and it
handles both kinds properly when they are visited in Emacs. It always
copies the full headers of the message.
-*** The C-o command is now `rmail-output-as-seen'. It uses
+*** The C-o command is now 'rmail-output-as-seen'. It uses
the message as displayed, appending it to an mbox file.
*** The modified status of the Rmail buffer is reported in the mode-line.
** TeX modes
-*** New option latex-indent-within-escaped-parens
+*** New option 'latex-indent-within-escaped-parens'
permits to customize indentation of LaTeX environments delimited
by escaped parens.
*** Multihop syntax has been removed.
The pseudo-method "multi" has been removed. Instead, multi hops
-can be specified by the new variable `tramp-default-proxies-alist'.
+can be specified by the new variable 'tramp-default-proxies-alist'.
*** More default settings.
-Default values can be set via the variables `tramp-default-user',
-`tramp-default-user-alist' and `tramp-default-host'.
+Default values can be set via the variables 'tramp-default-user',
+'tramp-default-user-alist' and 'tramp-default-host'.
*** Connection information is cached.
In order to reduce connection setup, information about used
connections is kept persistently in a file. The name of this file is
-defined in the variable `tramp-persistency-file-name'.
+defined in the variable 'tramp-persistency-file-name'.
*** Control of remote processes.
Running processes on a remote host can be controlled by settings in
-`tramp-remote-path' and `tramp-remote-process-environment'.
+'tramp-remote-path' and 'tramp-remote-process-environment'.
*** Success of remote copy is checked.
-When the variable `file-precious-flag' is set, the success of a remote
+When the variable 'file-precious-flag' is set, the success of a remote
file copy is checked via the file's checksum.
*** Passwords can be read from an authentication file.
-Tramp uses the package `auth-source' to read passwords from a file, if
+Tramp uses the package 'auth-source' to read passwords from a file, if
necessary.
** VC and related modes
and Bzr. VC will now pass a multiple-file commit to these systems as
a single changeset.
-*** vc-dir is a new command that displays file names and their VC
+*** 'vc-dir' is a new command that displays file names and their VC
status. It allows to apply various VC operations to a file, a
directory or a set of files/directories.
(This was for the most part true in Emacs 22, but was not advertised).
This is because there is an increasing variety of VC systems, and they
do not all accept the same "common" options. For example, a CVS diff
-command used to append the values of `vc-cvs-diff-switches',
-`vc-diff-switches', and `diff-switches'. Now the first non-nil value
-from that sequence is used. The special value `t' means "no switches".
+command used to append the values of 'vc-cvs-diff-switches',
+'vc-diff-switches', and 'diff-switches'. Now the first non-nil value
+from that sequence is used. The special value 't' means "no switches".
*** Clicking on the VC mode-line entry now pops the VC menu.
*** Log entries can be modified using the key "e" in log-view.
For now only CVS, RCS, SCCS and SVN support this functionality.
-This is done by the `modify-change-comment' backend function.
+This is done by the 'modify-change-comment' backend function.
*** In log-view-mode, for VC systems that support changesets, you can
see the diff for the whole changeset (not only for the current file)
** Miscellaneous
-*** comint-mode uses `start-file-process' now (see Lisp Changes).
-If `default-directory' is a remote file name, subprocesses are started
+*** comint-mode uses 'start-file-process' now (see Lisp Changes).
+If 'default-directory' is a remote file name, subprocesses are started
on the corresponding remote system.
*** ElDoc highlights the function argument under point
-with the face `eldoc-highlight-function-argument'.
+with the face 'eldoc-highlight-function-argument'.
*** In Etags, the --members option is now the default.
Use --no-members if you want the old default behavior of not tagging
struct members in C, members variables in C++ and variables in PHP.
-*** The `gdb' command only works with the graphical interface now.
-Use `gud-gdb' if you want the (old) text command mode.
+*** The 'gdb' command only works with the graphical interface now.
+Use 'gud-gdb' if you want the (old) text command mode.
-*** goto-address.el provides two new minor modes, goto-address-mode and
-goto-address-prog-mode, which buttonize URLS and email addresses.
+*** 'goto-address' provides two new minor modes, 'goto-address-mode' and
+'goto-address-prog-mode', which buttonize URLS and email addresses.
-*** The new command `eshell/info' runs info in an eshell buffer.
+*** The new command 'eshell/info' runs info in an eshell buffer.
-*** The new variable `ffap-rfc-directories' specifies a list of local
-directories in which `ffap-rfc' will first search for RFCs.
+*** The new variable 'ffap-rfc-directories' specifies a list of local
+directories in which 'ffap-rfc' will first search for RFCs.
*** hide-ifdef-mode allows shadowing ifdef-blocks instead of hiding them.
-See option `hide-ifdef-shadow' and function `hide-ifdef-toggle-shadowing'.
+See option 'hide-ifdef-shadow' and function 'hide-ifdef-toggle-shadowing'.
-*** `icomplete-prospects-height' now supersedes `icomplete-prospects-length'.
+*** 'icomplete-prospects-height' now supersedes 'icomplete-prospects-length'.
*** Info displays breadcrumbs in the header of the page.
See Info-breadcrumbs-depth to control it.
-*** net-utils has an `iwconfig' command, similar to the existing `ifconfig'.
+*** net-utils has an 'iwconfig' command, similar to the existing 'ifconfig'.
It is used to configure wireless interfaces.
*** The pcmpl-unix package supports hostname completion for ssh and scp.
*** talk.el has been extended for multiple tty support.
-*** A new command `display-time-world' has been added to the Time
+*** A new command 'display-time-world' has been added to the Time
package. It creates a buffer with an updating time display using
several time zones.
since users found iconification of view-mode frames distracting.
*** WoMan tries to add locale-specific manual page directories to the
-search path. This can be disabled by setting `woman-locale' to nil.
+search path. This can be disabled by setting 'woman-locale' to nil.
\f
* Changes in Emacs 23.1 on non-free operating systems
** Case is now considered significant in completion on MS-Windows.
-The default value of `completion-ignore-case' is now nil on
+The default value of 'completion-ignore-case' is now nil on
MS-Windows, the same as it is for other operating systems. The
variable doesn't apply to reading a file name -- in that case Emacs
-heeds `read-file-name-completion-ignore-case' instead.
+heeds 'read-file-name-completion-ignore-case' instead.
** IPv6 is supported on MS-Windows.
Emacs now supports IPv6 on Windows XP and later, and earlier versions
** Battery status is available on MS-Windows
Emacs can now display the battery status in the mode-line when enabled with
display-battery-mode or from the Options menu. More verbose battery
-information is also available with the command `battery'. In Emacs 22
+information is also available with the command 'battery'. In Emacs 22
battery status was supported only on GNU/Linux and Mac.
** More keys available on MS-Windows.
** Variables cannot be both buffer-local and frame-local any more.
-** `functionp' returns nil for special forms.
-I.e., it only returns t for objects that can be passed to `funcall'.
+** 'functionp' returns nil for special forms.
+I.e., it only returns t for objects that can be passed to 'funcall'.
** The behavior of map-char-table has changed. It may call the
specified function with a cons (FROM . TO) as a key if characters in
** Process changes
-*** The function `dired-call-process' has been removed.
+*** The function 'dired-call-process' has been removed.
*** The multibyteness of process filters is now determined by the
coding-system used for decoding. The functions
-`process-filter-multibyte-p' and `set-process-filter-multibyte' are
+'process-filter-multibyte-p' and 'set-process-filter-multibyte' are
obsolete.
-** The variable `byte-compile-warnings' can now be a list starting with `not',
+** The variable 'byte-compile-warnings' can now be a list starting with 'not',
meaning to disable the specified warnings. The meaning of this list
may therefore be the reverse of what you expect (of course, this is
-only an issue if you make use of the new `not' syntax). Rather than
+only an issue if you make use of the new 'not' syntax). Rather than
checking/manipulating elements directly, use the new functions
-`byte-compile-warning-enabled-p', `byte-compile-disable-warning', and
-`byte-compile-enable-warning.'
+'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.
+** 'mode-name' is no longer guaranteed to be a string.
+Use '(format-mode-line mode-name)' to ensure a string value.
-** The function x-font-family-list has been removed.
-Use the new function font-family-list (see Lisp Changes, below).
+** The function 'x-font-family-list' has been removed.
+Use the new function 'font-family-list' (see Lisp Changes, below).
** Internationalization changes
-*** The value of the function `charset-id' is now always 0.
+*** The value of the function 'charset-id' is now always 0.
-*** The functions `register-char-codings' and `coding-system-spec'
+*** The functions 'register-char-codings' and 'coding-system-spec'
have been removed.
*** The cpXXX coding systems are now supported automatically.
displaying various scripts with specific fonts, and are no longer
needed now that OpenType font support is available:
-**** `devanagari' and `devan-util', and all associated devanagari-* and
+**** 'devanagari' and 'devan-util', and all associated devanagari-* and
dev-* functions and variables (formerly used for Devanagari script).
-**** `kannada' and `knd-util', and all associated kannada-* and knd-*
+**** 'kannada' and 'knd-util', and all associated kannada-* and knd-*
functions and variables (formerly used for Kannada script).
-**** `malayalam' and `mlm-util', and all associated malayalam-* and
+**** 'malayalam' and 'mlm-util', and all associated malayalam-* and
mlm-* functions and variables (formerly used for Malayalam script).
-**** `tamil' and `tml-util, and all associated tamil-* and tml-*
+**** 'tamil' and 'tml-util', and all associated tamil-* and tml-*
functions and variables (formerly used for Tamil script).
-*** The meaning of NAME argument of `set-fontset-font' is changed.
+*** The meaning of NAME argument of 'set-fontset-font' is changed.
Previously nil is accepted as the default fontset. Now, nil is for
the fontset of the selected frame and t is for the default fontset.
-*** The meaning of FONTSET argument of `print-fontset' is changed.
+*** The meaning of FONTSET argument of 'print-fontset' is changed.
Now, nil is for the fontset of the selected frame and t is for the
default fontset.
different buffer current, Emacs no longer kills that buffer
automatically. This behavior existed in previous versions of Emacs,
but was undocumented. To kill a buffer after write-region, give the
-variable `write-region-post-annotation-function' a buffer-local value
-of `kill-buffer'.
+variable 'write-region-post-annotation-function' a buffer-local value
+of 'kill-buffer'.
** The variable temp-file-name-pattern has been removed.
This variable was only used by call-process-region, which now uses
** end-of-defun-function is now guaranteed to work only when called
from the start of a defun. It must now leave point exactly at the end
-of defun, since `end-of-defun' now itself moves forward over
+of defun, since 'end-of-defun' now itself moves forward over
whitespace after calling it.
\f
* Lisp Changes in Emacs 23.1
-** The new variable `generate-autoload-cookie' controls the magic comment
-string used by `update-file-autoloads' to find autoloaded forms. The
-variable `generated-autoload-file' similarly controls the name of the
-file where `update-file-autoloads' writes the calls to `autoload'.
-The default values are ";;;###autoload" and `loaddefs.el',
+** The new variable 'generate-autoload-cookie' controls the magic comment
+string used by 'update-file-autoloads' to find autoloaded forms. The
+variable 'generated-autoload-file' similarly controls the name of the
+file where 'update-file-autoloads' writes the calls to 'autoload'.
+The default values are ";;;###autoload" and 'loaddefs.el',
respectively.
-** New primitives `list-system-processes' and `process-attributes'
+** New primitives 'list-system-processes' and 'process-attributes'
let Lisp programs access the processes that are running on the local
machine. See the doc strings of these functions for more details.
Not all platforms support accessing this information; on those that
don't, these primitives will return nil.
-** New variable `user-emacs-directory'.
+** New variable 'user-emacs-directory'.
Use this instead of "~/.emacs.d".
-** If a local hook function has a non-nil `permanent-local-hook'
-property, `kill-all-local-variables' does not remove it from the local
+** If a local hook function has a non-nil 'permanent-local-hook'
+property, 'kill-all-local-variables' does not remove it from the local
value of the hook variable; it remains even if you change major modes.
-** `frame-inherited-parameters' lets new frames inherit parameters from
+** 'frame-inherited-parameters' lets new frames inherit parameters from
the selected frame.
-** New keymap `input-decode-map' overrides like key-translation-map, but
+** New keymap 'input-decode-map' overrides like key-translation-map, but
applies before function-key-map. Also it is terminal-local contrary to
key-translation-map. Terminal-specific key-sequences are generally added to
this map rather than to function-key-map now.
-** `ignore-errors' is now a standard macro (does not require the CL package).
+** 'ignore-errors' is now a standard macro (does not require the CL package).
-** `interprogram-paste-function' can now return one string or a list
+** 'interprogram-paste-function' can now return one string or a list
of strings. In the latter case, Emacs puts the second and following
strings on the kill ring.
-** In `condition-case', a handler can specify "let the debugger run first".
-You do this by writing `debug' in the list of conditions to be handled,
+** In 'condition-case', a handler can specify "let the debugger run first".
+You do this by writing 'debug' in the list of conditions to be handled,
like this:
(condition-case nil
(foo bar)
((debug error) nil))
-** clone-indirect-buffer now runs the clone-indirect-buffer-hook.
+** 'clone-indirect-buffer' now runs the 'clone-indirect-buffer-hook'.
-** `beginning-of-defun-function' now takes one argument, the count given to
-`beginning-of-defun'. (N.B. `end-of-defun-function' doesn't take any
+** 'beginning-of-defun-function' now takes one argument, the count given to
+'beginning-of-defun'. (N.B. 'end-of-defun-function' doesn't take any
arguments.)
-** `file-remote-p' has new optional parameters IDENTIFICATION and CONNECTED.
+** 'file-remote-p' has new optional parameters IDENTIFICATION and CONNECTED.
IDENTIFICATION specifies which part of the remote identifier has to be
returned. With CONNECTED passed non-nil, it is checked whether a
remote connection has been established already.
-** The new macro `declare-function' suppresses compiler warnings about
+** The new macro 'declare-function' suppresses compiler warnings about
undefined functions.
** Changes to interactive function handling
*** The new interactive spec code ^ says to first call
-handle-shift-selection if shift-select-mode is non-nil, before reading
+'handle-shift-selection' if shift-select-mode is non-nil, before reading
the command arguments. This is used for shift-selection (see above).
*** Built-in functions can now have an interactive specification that
-is not a prompt string. If the `intspec' parameter of a `DEFUN'
-starts with a `(', the string is evaluated as a Lisp form.
+is not a prompt string. If the 'intspec' parameter of a 'DEFUN'
+starts with a '(', the string is evaluated as a Lisp form.
*** The interactive-form of a function can be added post-facto via the
-`interactive-form' symbol property. Mostly useful to add complex
+'interactive-form' symbol property. Mostly useful to add complex
interactive forms to subroutines.
** Region changes
-*** Commands should use `use-region-p' to test whether there is
+*** Commands should use 'use-region-p' to test whether there is
an active region that they should operate on.
-*** `region-active-p' returns non-nil when Transient Mark mode is
+*** 'region-active-p' returns non-nil when Transient Mark mode is
enabled and the mark is active. Most commands that act specially on
-the active region in Transient Mark mode should use `use-region-p'
-instead of `region-active-p', because `use-region-p' obeys the new
-user option `use-empty-active-region' (see Editing Changes, above).
+the active region in Transient Mark mode should use 'use-region-p'
+instead of 'region-active-p', because 'use-region-p' obeys the new
+user option 'use-empty-active-region' (see Editing Changes, above).
-*** If a command sets `transient-mark-mode' to (only . OLDVAL), that
+*** If a command sets 'transient-mark-mode' to (only . OLDVAL), that
means to activate transient-mark-mode temporarily, until the next
unshifted point motion command or mark deactivation. Afterwards,
-reset transient-mark-mode to the value OLDVAL. The values `only' and
-`identity', introduced in Emacs 22, are now deprecated.
+reset transient-mark-mode to the value OLDVAL. The values 'only' and
+'identity', introduced in Emacs 22, are now deprecated.
** Emacs session information
-*** The new variables `before-init-time' and `after-init-time' record the
-value of `current-time' before and after Emacs loads the init files.
+*** The new variables 'before-init-time' and 'after-init-time' record the
+value of 'current-time' before and after Emacs loads the init files.
-*** The new function `emacs-uptime' returns the uptime of an Emacs instance.
+*** The new function 'emacs-uptime' returns the uptime of an Emacs instance.
-*** The new function `emacs-init-time' returns the duration of the
+*** The new function 'emacs-init-time' returns the duration of the
Emacs initialization.
** Changes affecting display-buffer
-*** display-buffer tries to be smarter when splitting windows.
-The new option split-window-preferred-function lets you specify your own
-function to pop up new windows. Its default value split-window-sensibly
+*** 'display-buffer' tries to be smarter when splitting windows.
+The new option 'split-window-preferred-function' lets you specify your own
+function to pop up new windows. Its default value 'split-window-sensibly'
can split a window either vertically or horizontally, whichever seems
more suitable in the current configuration. You can tune the behavior
-of split-window-sensibly by customizing split-height-threshold and the
-new option split-width-threshold. Both options now take the value nil
-to inhibit splitting in one direction. Setting split-width-threshold to
+of 'split-window-sensibly' by customizing 'split-height-threshold' and the
+new option 'split-width-threshold'. Both options now take the value nil
+to inhibit splitting in one direction. Setting 'split-width-threshold' to
nil inhibits horizontal splitting and gets you the behavior of Emacs 22
in this respect. In any case, display-buffer may now split the largest
window vertically even when it is not as wide as the containing frame.
-*** If pop-up-frames has the value `graphic-only', display-buffer only
+*** If 'pop-up-frames' has the value 'graphic-only', display-buffer only
makes a separate frame on graphic displays.
-*** select-frame and set-frame-selected-window have a new optional
+*** 'select-frame' and 'set-frame-selected-window' have a new optional
argument NORECORD. If non-nil, this will avoid messing with the order
of recently selected windows and the buffer list.
These are analogous to frame parameters, but are associated with
individual windows.
-*** The new functions window-parameters, window-parameter, and
-set-window-parameter are used to query and set window parameters.
+*** The new functions 'window-parameters', 'window-parameter', and
+'set-window-parameter' are used to query and set window parameters.
** Minibuffer and completion changes
*** A list of default values can be specified for the DEFAULT argument of
-functions `read-from-minibuffer', `read-string', `read-command',
-`read-variable', `read-buffer', `completing-read'. Elements of this list
-are available for inserting into the minibuffer by typing `M-n'.
+functions 'read-from-minibuffer', 'read-string', 'read-command',
+'read-variable', 'read-buffer', 'completing-read'. Elements of this list
+are available for inserting into the minibuffer by typing 'M-n'.
For empty input these functions return the first element of this list.
-*** New function `read-regexp' uses the regexp history and some useful
+*** New function 'read-regexp' uses the regexp history and some useful
regexp defaults (string at point, last Isearch/replacement regexp/string)
via M-n when reading a regexp in the minibuffer.
*** minibuffer-local-must-match-filename-map is now named
minibuffer-local-filename-must-match-map.
-*** The `require-match' argument to `completing-read' accepts the new
-values `confirm-only' and `confirm-after-completion'.
+*** The 'require-match' argument to 'completing-read' accepts the new
+values 'confirm-only' and 'confirm-after-completion'.
** Search and replacement changes
*** The regexp form \(?<num>:<regexp>\) specifies the group number explicitly.
-*** New function `match-substitute-replacement' returns the result of
-`replace-match' without actually using it in the buffer.
+*** New function 'match-substitute-replacement' returns the result of
+'replace-match' without actually using it in the buffer.
-*** The new variable `replace-search-function' determines the function
+*** The new variable 'replace-search-function' determines the function
to use for searching in query-replace and replace-string. The
-function it specifies is called by `perform-replace' when its 4th
+function it specifies is called by 'perform-replace' when its 4th
argument is nil.
-*** The new variable `replace-re-search-function' determines the
-function to use for searching in `query-replace-regexp',
-`replace-regexp', `query-replace-regexp-eval', and
-`map-query-replace-regexp'. The function it specifies is called by
-`perform-replace' when its 4th argument is non-nil.
+*** The new variable 'replace-re-search-function' determines the
+function to use for searching in 'query-replace-regexp',
+'replace-regexp', 'query-replace-regexp-eval', and
+'map-query-replace-regexp'. The function it specifies is called by
+'perform-replace' when its 4th argument is non-nil.
-*** New keymap `search-map' bound to `M-s' provides global bindings
+*** New keymap 'search-map' bound to 'M-s' provides global bindings
for search related commands.
-*** New keymap `multi-query-replace-map' contains additional keys bound
-to `automatic-all' and `exit-current' for multi-buffer interactive replacement.
+*** New keymap 'multi-query-replace-map' contains additional keys bound
+to 'automatic-all' and 'exit-current' for multi-buffer interactive replacement.
-*** The variable `inhibit-changing-match-data', if non-nil, prevents
+*** The variable 'inhibit-changing-match-data', if non-nil, prevents
the search and match primitives from changing the match data.
-*** New functions `word-search-forward-lax' and `word-search-backward-lax'.
-These are like `word-search-forward and `word-search-backward', except
+*** New functions 'word-search-forward-lax' and 'word-search-backward-lax'.
+These are like 'word-search-forward' and 'word-search-backward', except
that the end of the search string need not match a word boundary,
unless it ends in whitespace.
** Face-remapping
*** Each face can be remapped to a different face definition using the
-variable `face-remapping-alist'. This is an alist that maps faces to
+variable 'face-remapping-alist'. This is an alist that maps faces to
replacement definitions (which can be face names, lists of face names,
or attribute/value plists. If this variable is buffer-local, the
remapping occurs only in that buffer.
*** text-scale-mode remaps the default face to a larger or smaller
size in the current buffer. This feature is used by the Buffer Face
-menu and the new `C-x C-+', `C-x C--', and `C-x C-0' commands (see
+menu and the new 'C-x C-+', 'C-x C--', and 'C-x C-0' commands (see
Editing Changes, above).
*** New functions:
-**** `face-remap-add-relative' adds a face remapping entry to the
+**** 'face-remap-add-relative' adds a face remapping entry to the
current buffer.
-**** ``face-remap-remove-relative' removes a face remapping entry from
+**** 'face-remap-remove-relative' removes a face remapping entry from
the current buffer.
-**** `face-remap-reset-base' restores a face to its global definition.
+**** 'face-remap-reset-base' restores a face to its global definition.
-**** `face-remap-set-base' sets the base remapping of a face.
+**** 'face-remap-set-base' sets the base remapping of a face.
** Process changes
-*** The new function `start-file-process' is similar to `start-process',
+*** The new function 'start-file-process' is similar to 'start-process',
but obeys file handlers. The file handler is chosen based on
-`default-directory'. The functions `start-file-process-shell-command'
-and `process-file-shell-command' are also new; they call internally
-`start-file-process' and `process-file', respectively.
+'default-directory'. The functions 'start-file-process-shell-command'
+and 'process-file-shell-command' are also new; they call internally
+'start-file-process' and 'process-file', respectively.
-*** The new function `process-lines' executes an external program and
+*** The new function 'process-lines' executes an external program and
returns its output as a list of lines.
** Character code, representation, and charset changes.
**** A dynamic charset priority list is used to infer the charset of
characters for display.
-*** The functions `split-char' and `make-char' now accept up to 4
+*** The functions 'split-char' and 'make-char' now accept up to 4
positional codes instead of just 2.
-*** The functions `encode-char' and `decode-char' now accept any character sets.
+*** The functions 'encode-char' and 'decode-char' now accept any character sets.
-*** The function `define-charset' now accepts a completely different
+*** The function 'define-charset' now accepts a completely different
form of arguments (old-style arguments still work).
-*** The value of the function `char-charset' depends on the current
+*** The value of the function 'char-charset' depends on the current
priorities of charsets.
-*** The function get-char-code-property now accepts many Unicode base
-character properties. They are `name', `general-category',
-`canonical-combining-class', `bidi-class', `decomposition',
-`decimal-digit-value', `digit-value', `numeric-value', `mirrored',
-`old-name', `iso-10646-comment', `uppercase', `lowercase', and
-`titlecase'.
+*** The function 'get-char-code-property' now accepts many Unicode base
+character properties. They are 'name', 'general-category',
+'canonical-combining-class', 'bidi-class', 'decomposition',
+'decimal-digit-value', 'digit-value', 'numeric-value', 'mirrored',
+'old-name', 'iso-10646-comment', 'uppercase', 'lowercase', and
+'titlecase'.
-*** The functions `modify-syntax-entry' and `modify-category-entry' now
+*** The functions 'modify-syntax-entry' and 'modify-category-entry' now
accept a cons of characters as the first argument, and modify all
entries in that range of characters.
-*** Use of `translation-table-for-input' for character code unification
+*** Use of 'translation-table-for-input' for character code unification
is now obsolete, since Emacs 23.1 and later uses Unicode as basis for
internal representation of characters.
*** New functions:
-**** `characterp' returns t if and only if the argument is a character.
-This replaces `char-valid-p', which is now obsolete.
+**** 'characterp' returns t if and only if the argument is a character.
+This replaces 'char-valid-p', which is now obsolete.
-**** `max-char' returns the maximum character code (currently #x3FFFFF).
+**** 'max-char' returns the maximum character code (currently #x3FFFFF).
-**** `define-charset-alias' defines an alias of a charset.
+**** 'define-charset-alias' defines an alias of a charset.
-**** `set-charset-priority' sets priorities of charsets.
+**** 'set-charset-priority' sets priorities of charsets.
-**** `charset-priority-list' returns a prioritized list of charsets.
+**** 'charset-priority-list' returns a prioritized list of charsets.
-**** `unibyte-string' makes a unibyte string from bytes.
+**** 'unibyte-string' makes a unibyte string from bytes.
-**** `define-char-code-property' defines a character code property.
+**** 'define-char-code-property' defines a character code property.
-**** `char-code-property-description' returns the description string of
+**** 'char-code-property-description' returns the description string of
a character code property.
*** New variables:
-**** `find-word-boundary-function-table' is a char-table of functions to
+**** 'find-word-boundary-function-table' is a char-table of functions to
search for a word boundary.
-**** `char-script-table' is a char-table of script names.
+**** 'char-script-table' is a char-table of script names.
-**** `char-width-table' is a char-table of character widths.
+**** 'char-width-table' is a char-table of character widths.
-**** `print-charset-text-property' controls how to handle `charset' text
+**** 'print-charset-text-property' controls how to handle 'charset' text
property on printing a string.
-**** `printable-chars' is a char-table of printable characters.
+**** 'printable-chars' is a char-table of printable characters.
** Code conversion changes
-*** The new function `define-coding-system' should be used to define a
-coding system instead of `make-coding-system' (which is now obsolete).
+*** The new function 'define-coding-system' should be used to define a
+coding system instead of 'make-coding-system' (which is now obsolete).
-*** The functions `encode-coding-region' and `decode-coding-region'
+*** The functions 'encode-coding-region' and 'decode-coding-region'
have an optional 4th argument to specify where the result of
conversion should go.
-*** The functions `encode-coding-string' and `decode-coding-string'
+*** The functions 'encode-coding-string' and 'decode-coding-string'
have an optional 4th argument specifying a buffer to store the result
of conversion.
-*** The new variable `inhibit-null-byte-detection' controls whether to
+*** The new variable 'inhibit-null-byte-detection' controls whether to
consider text with null bytes as binary data. By default, it is
-`nil', and Emacs uses `no-conversion' for any text containing null
+'nil', and Emacs uses 'no-conversion' for any text containing null
bytes.
-*** The functions `set-coding-priority' and `make-coding-system' are obsolete.
+*** The functions 'set-coding-priority' and 'make-coding-system' are obsolete.
*** New functions:
-**** `with-coding-priority' executes Lisp code using the specified
+**** 'with-coding-priority' executes Lisp code using the specified
coding system priority order.
-**** `check-coding-systems-region' checks if the text in the region is
+**** 'check-coding-systems-region' checks if the text in the region is
encodable by the specified coding systems.
-**** `coding-system-aliases' returns a list of aliases of a coding system.
+**** 'coding-system-aliases' returns a list of aliases of a coding system.
-**** `coding-system-charset-list' returns a list of charsets supported
+**** 'coding-system-charset-list' returns a list of charsets supported
by a coding system.
-**** `coding-system-priority-list' returns a list of coding systems
+**** 'coding-system-priority-list' returns a list of coding systems
ordered by their priorities.
-**** `set-coding-system-priority' sets priorities of coding systems.
+**** 'set-coding-system-priority' sets priorities of coding systems.
-**** `coding-system-from-name' returns a coding system matching with
+**** 'coding-system-from-name' returns a coding system matching with
the argument name.
** There is a new input method, Robin, different from Quail.
iii) reverse conversion (each character produced by a
robin rule can hold the original ASCII sequence as a char-code-property)
-*** The new function `robin-define-package' defines a Robin package.
+*** The new function 'robin-define-package' defines a Robin package.
-*** The new function `robin-modify-package' modifies an existing Robin package.
+*** The new function 'robin-modify-package' modifies an existing Robin package.
-*** The new function `robin-use-package' starts using a Robin package
+*** The new function 'robin-use-package' starts using a Robin package
as an input method.
-*** The new function `string-to-unibyte' is like `string-as-unibyte'
+*** The new function 'string-to-unibyte' is like 'string-as-unibyte'
but signals an error if STRING contains a non-ASCII, non-eight-bit
character.
If this resource is not set, Emacs tries to use all font backends
available on your graphic device.
-*** New frame parameter `font-backend' specifies a list of
+*** New frame parameter 'font-backend' specifies a list of
font-backends supported by the frame's graphic device. On X, they are
-currently `x' and `xft'.
+currently 'x' and 'xft'.
-*** The function `set-fontset-font' now accepts a script name as the
+*** The function 'set-fontset-font' now accepts a script name as the
second argument, and has an optional 5th argument to control how to
set the font.
*** New functions:
-**** `fontp' checks if the argument is a font-spec or font-entity.
+**** 'fontp' checks if the argument is a font-spec or font-entity.
-**** `font-spec' creates a new font-spec object.
+**** 'font-spec' creates a new font-spec object.
-**** `font-get' returns a font property value.
+**** 'font-get' returns a font property value.
-**** `font-put' sets a font property value.
+**** 'font-put' sets a font property value.
-**** `font-face-attributes' returns a plist of face attributes set by a font.
+**** 'font-face-attributes' returns a plist of face attributes set by a font.
-**** `list-fonts' returns a list of font-entities matching a font spec.
+**** 'list-fonts' returns a list of font-entities matching a font spec.
-**** `find-font' returns the font-entity best matching the given font spec.
+**** 'find-font' returns the font-entity best matching the given font spec.
-**** `font-family-list' returns a list of family names of available fonts.
+**** 'font-family-list' returns a list of family names of available fonts.
-**** `font-xlfd-name' returns an XLFD name of a given font spec, font
+**** 'font-xlfd-name' returns an XLFD name of a given font spec, font
entity, or font object.
-**** `clear-font-cache' clears all font caches.
+**** 'clear-font-cache' clears all font caches.
** Changes related to multiple-terminal (multi-tty) support
-*** $TERM is now set to `dumb' for subprocesses. If you want to know the
+*** $TERM is now set to 'dumb' for subprocesses. If you want to know the
$TERM inherited by Emacs you will have to look inside initial-environment.
-*** $DISPLAY is now dynamically inherited from the frame's `display'.
+*** $DISPLAY is now dynamically inherited from the frame's 'display'.
-*** The `window-system' variable is now frame-local. The new
-`initial-window-system' variable contains the `window-system' value
-for the first frame. `window-system' is also now a function that
+*** The 'window-system' variable is now frame-local. The new
+'initial-window-system' variable contains the 'window-system' value
+for the first frame. 'window-system' is also now a function that
takes a frame argument.
-*** The `keyboard-translate-table' variable and the terminal and
+*** The 'keyboard-translate-table' variable and the terminal and
keyboard coding systems are now terminal-local.
-*** You can specify a terminal device (`tty' parameter) and a terminal
-type (`tty-type' parameter) to `make-terminal-frame'.
+*** You can specify a terminal device ('tty' parameter) and a terminal
+type ('tty-type' parameter) to 'make-terminal-frame'.
-*** The function `make-frame-on-display' now works during a tty
+*** The function 'make-frame-on-display' now works during a tty
session.
-*** A new `terminal' data type.
-The functions `get-device-terminal', `terminal-parameters',
-`terminal-parameter', `set-terminal-parameter' use this data type.
+*** A new 'terminal' data type.
+The functions 'get-device-terminal', 'terminal-parameters',
+'terminal-parameter', 'set-terminal-parameter' use this data type.
-*** Function key sequences are now mapped using `local-function-key-map',
+*** Function key sequences are now mapped using 'local-function-key-map',
a new variable. This inherits from the global variable function-key-map,
which is not used directly any more.
*** New hooks:
-**** before-hack-local-variables-hook is called after setting new
-variable file-local-variables-alist, and before actually applying the
+**** 'before-hack-local-variables-hook' is called after setting new
+variable 'file-local-variables-alist', and before actually applying the
file-local variables.
-**** `suspend-tty-functions' and `resume-tty-functions' are called
+**** 'suspend-tty-functions' and 'resume-tty-functions' are called
after a tty frame has been suspended or resumed, respectively. The
functions are called with the terminal id of the frame being
suspended/resumed as a parameter.
-**** The special hook `delete-terminal-functions' is called before
+**** The special hook 'delete-terminal-functions' is called before
deleting a terminal.
*** New functions:
-**** `delete-terminal'
+**** 'delete-terminal'
-**** `suspend-tty'
+**** 'suspend-tty'
-**** `resume-tty'.
+**** 'resume-tty'.
-*** `initial-environment' holds the environment inherited from Emacs's parent.
+*** 'initial-environment' holds the environment inherited from Emacs's parent.
** Redisplay changes
*** For underlined characters, the distance between the underline and
-the baseline is controlled by a new variable, `underline-minimum-offset'.
+the baseline is controlled by a new variable, 'underline-minimum-offset'.
-*** You can now pass the value of the `invisible' property to
+*** You can now pass the value of the 'invisible' property to
invisible-p to check whether it would cause the text to be invisible.
This is convenient when checking invisibility of text with no buffer
position (e.g. in before/after-strings).
-*** `clear-image-cache' can be told to flush only images of a specific file.
+*** 'clear-image-cache' can be told to flush only images of a specific file.
-*** `vertical-motion' can now be given a goal column.
+*** 'vertical-motion' can now be given a goal column.
It now accepts a cons cell (COLS . LINES) in its first argument, which
says to stop, where possible, at a pixel x-position equal to COLS
times the default column width.
*** redisplay-end-trigger-functions, set-window-redisplay-end-trigger,
-and window-redisplay-end-trigger are obsolete. Use `jit-lock-register'
+and window-redisplay-end-trigger are obsolete. Use 'jit-lock-register'
instead.
-*** The new variables `wrap-prefix' and `line-prefix' specify display
+*** The new variables 'wrap-prefix' and 'line-prefix' specify display
specs which are appended at display-time to every continuation line
and non-continuation line, respectively. In addition, Emacs
-recognizes the `wrap-prefix' and `line-prefix' text or overlay
+recognizes the 'wrap-prefix' and 'line-prefix' text or overlay
properties; these have the same effects as the variables of the same
name, but take precedence.
** Miscellaneous new functions
-*** `apply-partially' performs a "curried" application of a function.
+*** 'apply-partially' performs a "curried" application of a function.
-*** `buffer-swap-text' swaps text between two buffers. This can be
-useful for modes such as tar-mode, archive-mode, RMAIL.
+*** 'buffer-swap-text' swaps text between two buffers. This can be
+useful for modes such as 'tar-mode', 'archive-mode', RMAIL.
-*** `combine-and-quote-strings' produces a single string from a list of strings
+*** 'combine-and-quote-strings' produces a single string from a list of strings
sticking a separator string in between each pair, and quoting those
strings that include the separator as their substring. Useful for
consing shell command lines from the individual arguments.
-*** `custom-note-var-changed' tells Custom to treat the change in a
+*** 'custom-note-var-changed' tells Custom to treat the change in a
certain variable as having been made within Custom.
-*** `face-all-attributes' returns an alist describing all the basic
+*** 'face-all-attributes' returns an alist describing all the basic
attributes of a given face.
-*** `format-seconds' converts a number of seconds into a readable
+*** 'format-seconds' converts a number of seconds into a readable
string of days, hours, etc.
-*** `image-refresh' refreshes all images associated with a given image
+*** 'image-refresh' refreshes all images associated with a given image
specification.
-*** `locate-user-emacs-file' helps packages to select the appropriate
-place to save user-specific files. It defaults to `user-emacs-directory'
+*** 'locate-user-emacs-file' helps packages to select the appropriate
+place to save user-specific files. It defaults to 'user-emacs-directory'
unless the file already exists at $HOME.
-*** `read-color' reads a color name using the minibuffer.
+*** 'read-color' reads a color name using the minibuffer.
-*** `read-shell-command' does what its name says, with completion. It
-uses the minibuffer-local-shell-command-map for that.
+*** 'read-shell-command' does what its name says, with completion. It
+uses the 'minibuffer-local-shell-command-map' for that.
-*** `split-string-and-unquote' splits a string into a list of substrings
+*** 'split-string-and-unquote' splits a string into a list of substrings
on the boundaries of a given delimiter, and unquotes the substrings that
are quoted. Useful for taking apart shell commands.
-*** The two new functions `looking-at-p' and `string-match-p' can do
-the same matching as `looking-at' and `string-match' without changing
+*** The two new functions 'looking-at-p' and 'string-match-p' can do
+the same matching as 'looking-at' and 'string-match' without changing
the match data.
-*** The two new functions `make-serial-process' and
-`serial-process-configure' provide a Lisp interface to the new serial
+*** The two new functions 'make-serial-process' and
+'serial-process-configure' provide a Lisp interface to the new serial
port support (see Emacs changes, above).
** Miscellaneous new variables
-*** `auto-save-include-big-deletions', if non-nil, means auto-save is
+*** 'auto-save-include-big-deletions', if non-nil, means auto-save is
not turned off automatically after a big deletion.
-*** `read-circle', if nil, disables the reading of recursive Lisp
+*** 'read-circle', if nil, disables the reading of recursive Lisp
structures using the #N= and #N# syntax.
-*** `this-command-keys-shift-translated' is non-nil if the key
+*** 'this-command-keys-shift-translated' is non-nil if the key
sequence invoking the current command was found by shift-translation.
-*** `window-point-insertion-type' determines the insertion-type of the
+*** 'window-point-insertion-type' determines the insertion-type of the
marker used for window-point.
-*** bookmark provides `bookmark-make-record-function' so special major
+*** bookmark provides 'bookmark-make-record-function' so special major
modes like Info can teach bookmark.el how to save and restore the
relevant data.
-*** `fill-forward-paragraph-function' specifies which function the
+*** 'fill-forward-paragraph-function' specifies which function the
filling code should use to find paragraph boundaries.
\f
** The new package avl-tree.el deals with the AVL tree data structure.
-** The new package check-declare.el verifies the accuracy of
+** The new package 'check-declare' verifies the accuracy of
declare-function macros (see Lisp Changes, above).
-** find-cmd.el can build `find' commands using lisp syntax.
+** 'find-cmd' can build 'find' commands using lisp syntax.
** The package misearch.el has been added. It allows Isearch to search
-through multiple buffers. A variable `multi-isearch-next-buffer-function'
+through multiple buffers. A variable 'multi-isearch-next-buffer-function'
defines the function to call to get the next buffer to search in the series
-of multiple buffers. Top-level functions `multi-isearch-buffers',
-`multi-isearch-buffers-regexp', `multi-isearch-files' and
-`multi-isearch-files-regexp' accept a single argument that specifies
+of multiple buffers. Top-level functions 'multi-isearch-buffers',
+'multi-isearch-buffers-regexp', 'multi-isearch-files' and
+'multi-isearch-files-regexp' accept a single argument that specifies
a list of buffers/files to search for a string/regexp.
-** The new major mode `special-mode' is intended as a parent for
+** The new major mode 'special-mode' is intended as a parent for
major modes such as those that set the "'mode-class 'special" property.
\f
See files NEWS.23, NEWS.22, NEWS.21, NEWS.20, NEWS.19, NEWS.18,
and NEWS.1-17 for changes in older Emacs versions.
-You can narrow news to a specific version by calling `view-emacs-news'
+You can narrow news to a specific version by calling 'view-emacs-news'
with a prefix argument or by typing C-u C-h C-n.
\f
** This is mainly a bug-fix release, but there are some other changes.
-** The default value of `history-length' has increased to 100.
+** The default value of 'history-length' has increased to 100.
-** The variable `redisplay-dont-pause' is obsolete.
+** The variable 'redisplay-dont-pause' is obsolete.
\f
* Changes in Specialized Modes and Packages in Emacs 24.5
-** `call-process-shell-command' and `process-file-shell-command' no longer
+** 'call-process-shell-command' and 'process-file-shell-command' no longer
take "&rest args".
-** The option `browse-url-firefox-startup-arguments' no longer has an effect.
+** The option 'browse-url-firefox-startup-arguments' no longer has an effect.
** ERC
-*** New option `erc-rename-buffers'.
+*** New option 'erc-rename-buffers'.
-*** New faces `erc-my-nick-prefix-face' and `erc-nick-prefix-face'.
+*** New faces 'erc-my-nick-prefix-face' and 'erc-nick-prefix-face'.
-*** `erc-format-@nick' displays all user modes instead of only op and voice.
+*** 'erc-format-@nick' displays all user modes instead of only op and voice.
*** The display of irc commands in the current buffer has been disabled.
-*** `erc-version' now follows the Emacs version.
+*** 'erc-version' now follows the Emacs version.
** Obsolete packages
** Emacs can now be compiled with ACL (access control list) support.
This happens by default if a suitable support library is found at
build time, like libacl on GNU/Linux. To prevent this, use the
-configure option `--disable-acl'. See below for the features this provides.
+configure option '--disable-acl'. See below for the features this provides.
** Emacs can now be compiled with file notification support.
This happens by default if a suitable system library is found at
build time. To prevent this, use the configure option
-`--without-file-notification'. See below for file-notify features.
+'--without-file-notification'. See below for file-notify features.
This feature is not available for the Nextstep port.
** Emacs can now be compiled with zlib support.
This happens by default if zlib is present, which it normally is.
-To prevent this, use the configure option `--without-zlib'.
-This provides the function `zlib-decompress-region'; see below for details.
+To prevent this, use the configure option '--without-zlib'.
+This provides the function 'zlib-decompress-region'; see below for details.
-** The configure option `--without-compress-info' has been generalized,
-and renamed to `--without-compress-install'. It now prevents compression
+** The configure option '--without-compress-info' has been generalized,
+and renamed to '--without-compress-install'. It now prevents compression
of _any_ files during installation.
-** The configure option `--with-crt-dir' has been removed.
+** The configure option '--with-crt-dir' has been removed.
It is no longer needed, as the crt*.o files are no longer linked specially.
-** Directories passed to configure option `--enable-locallisppath' are
+** Directories passed to configure option '--enable-locallisppath' are
no longer created during installation.
** Emacs for Nextstep (OS X, GNUstep) can be built with ImageMagick support.
\f
* Startup Changes in Emacs 24.4
-** When initializing `load-path', an empty element in the EMACSLOADPATH
+** When initializing 'load-path', an empty element in the EMACSLOADPATH
environment variable (either leading, e.g., ":/foo"; trailing, e.g.,
"/foo:"; or embedded, e.g., "/foo::/bar") is replaced with the default
load-path (the one that would have been used if EMACSLOADPATH was unset).
was replaced by ".", so use an explicit "." now if that is what you want.)
** The -L option, which normally prepends its argument to load-path,
-will instead append, if the argument begins with `:' (or `;' on MS Windows;
-i.e., `path-separator').
+will instead append, if the argument begins with ':' (or ';' on MS Windows;
+i.e., 'path-separator').
** If you use either site-load.el or site-init.el to customize the dumped
-Emacs executable, any changes to `load-path' that these files make
+Emacs executable, any changes to 'load-path' that these files make
will no longer be present after dumping. To affect a permanent change
-to `load-path', use the `--enable-locallisppath' option of `configure'.
+to 'load-path', use the '--enable-locallisppath' option of 'configure'.
-** The user option `initial-buffer-choice' can now specify a function
+** The user option 'initial-buffer-choice' can now specify a function
to set up the initial buffer.
\f
*** Emacs preserves the ACL entries of files when backing up.
-*** New functions `file-acl' and `set-file-acl' get and set file ACLs.
+*** New functions 'file-acl' and 'set-file-acl' get and set file ACLs.
** Support for menus on text-mode terminals.
If the terminal supports a mouse, clicking on the menu bar, or on
C-mouse-3 on the text area will pop up the menus defined for those locations.
If the text terminal does not support a mouse, you can activate the
-first menu-bar menu by typing F10, which invokes `menu-bar-open'.
+first menu-bar menu by typing F10, which invokes 'menu-bar-open'.
-If you want the previous behavior, where F10 invoked `tmm-menubar',
-customize the option `tty-menu-open-use-tmm' to a non-nil value.
-(Typing M-` always invokes `tmm-menubar', even if `tty-menu-open-use-tmm'
+If you want the previous behavior, where F10 invoked 'tmm-menubar',
+customize the option 'tty-menu-open-use-tmm' to a non-nil value.
+(Typing M-` always invokes 'tmm-menubar', even if 'tty-menu-open-use-tmm'
is nil.)
-** New option `load-prefer-newer' affects how the `load' function chooses
+** New option 'load-prefer-newer' affects how the 'load' function chooses
the file to load. If this is non-nil, then when both .el and .elc
versions of a file exist, and the caller did not explicitly specify
which one to load, then the newer file is loaded. The default, nil,
** Multi-monitor support
-*** New functions `display-monitor-attributes-list' and
-`frame-monitor-attributes' can be used to obtain information about
+*** New functions 'display-monitor-attributes-list' and
+'frame-monitor-attributes' can be used to obtain information about
each physical monitor on multi-monitor setups.
-*** The functions `display-pixel-width' and `display-pixel-height' now
+*** The functions 'display-pixel-width' and 'display-pixel-height' now
behave consistently among the platforms: they return the pixel width
or height for all physical monitors associated with the given display
as if they were on X. To get information for each physical
monitor, use the new functions above. Similar notes also apply to
-`x-display-pixel-width', `x-display-pixel-height', `display-mm-width',
-`display-mm-height', `x-display-mm-width', and `x-display-mm-height'.
+'x-display-pixel-width', 'x-display-pixel-height', 'display-mm-width',
+'display-mm-height', 'x-display-mm-width', and 'x-display-mm-height'.
-** New function `zlib-decompress-region', which decompresses gzip- and
+** New function 'zlib-decompress-region', which decompresses gzip- and
zlib-format compressed data using built-in zlib support (if available).
-** The *Messages* buffer is created in `messages-buffer-mode',
+** The *Messages* buffer is created in 'messages-buffer-mode',
a new major mode, with read-only status. Any code that might create
-the *Messages* buffer should call the function `messages-buffer' to do
+the *Messages* buffer should call the function 'messages-buffer' to do
so and set up the mode.
** The cursor stops blinking after 10 blinks (by default) on X and Nextstep.
-You can change the default by customizing `blink-cursor-blinks'.
+You can change the default by customizing 'blink-cursor-blinks'.
** In keymaps where SPC scrolls forward, S-SPC now scrolls backward.
This affects View mode, etc.
-** The default value of `make-backup-file-name-function' is no longer nil.
+** The default value of 'make-backup-file-name-function' is no longer nil.
Instead it defaults to a function that does what the nil value used to.
** Help
-*** The command `apropos-variable' is renamed to `apropos-user-option'.
-`apropos-user-option' shows all user options, while `apropos-variable'
+*** The command 'apropos-variable' is renamed to 'apropos-user-option'.
+'apropos-user-option' shows all user options, while 'apropos-variable'
shows all variables. When called with a universal prefix argument,
-the two commands swap their behaviors. When `apropos-do-all' is
+the two commands swap their behaviors. When 'apropos-do-all' is
non-nil, they output the same results.
-*** The key `?' now describes prefix bindings, like `C-h'.
+*** The key '?' now describes prefix bindings, like 'C-h'.
-*** The command `describe-function' has been extended for EIEIO.
+*** The command 'describe-function' has been extended for EIEIO.
Running it on constructors will show a full description of the
generated class. For generic functions, it will show all
implementations together with links to the source. The old commands
-`describe-class', `describe-constructor' and `describe-generic' were
+'describe-class', 'describe-constructor' and 'describe-generic' were
removed.
-*** The function `quail-help' is no longer an interactive command.
-Use `C-h C-\' (`describe-input-method') instead.
+*** The function 'quail-help' is no longer an interactive command.
+Use 'C-h C-\' ('describe-input-method') instead.
** Frame and window handling
-*** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized',
+*** New commands 'toggle-frame-fullscreen' and 'toggle-frame-maximized',
bound to <f11> and M-<f10>, respectively.
-*** New hooks `focus-in-hook', `focus-out-hook'.
+*** New hooks 'focus-in-hook', 'focus-out-hook'.
These are normal hooks run when an Emacs frame gains or loses input focus.
-*** The function `window-in-direction' now takes additional arguments
+*** The function 'window-in-direction' now takes additional arguments
for specifying a reference point, wrapping the selection around frame
borders, and specifying ways to select the minibuffer window.
text rows or columns. When maximizing a frame or making it fullscreen,
remaining extra pixels are no longer given to the minibuffer, the rightmost
fringe, or other unusable space, but are distributed among the text
-areas of the frame's windows. If the new option `frame-resize-pixelwise'
+areas of the frame's windows. If the new option 'frame-resize-pixelwise'
is non-nil, all frame size changes happen pixelwise and set the
corresponding size hints for the window manager.
*** Emacs can now change window sizes in units of pixels.
Mouse-dragging a mode line or window divider now changes the size of
-adjacent windows pixelwise. If the new option `window-resize-pixelwise'
-is non-nil, functions like `balance-windows-area' and `fit-window-to-buffer'
+adjacent windows pixelwise. If the new option 'window-resize-pixelwise'
+is non-nil, functions like 'balance-windows-area' and 'fit-window-to-buffer'
resize windows pixelwise. Most functions for changing or accessing
window sizes now have an additional argument that allows changes to apply,
or values to be returned, in pixels instead of lines/columns.
-*** The functions `window-body-height' and `window-body-width' now never
+*** The functions 'window-body-height' and 'window-body-width' now never
count partially visible lines or columns if called with a nil PIXELWISE
argument.
*** Emacs can now draw dividers between adjacent windows. To put
dividers between side-by-side/vertically stacked windows customize the
-frame parameters `right-divider-width' and `bottom-divider-width' to
+frame parameters 'right-divider-width' and 'bottom-divider-width' to
some positive integer. You can drag dividers with the mouse (they show
a corresponding cursor when the mouse hovers over them). You can change
-the appearance of dividers by customizing the faces `window-divider',
-`window-divider-first-pixel', and `window-divider-last-pixel'. The last
+the appearance of dividers by customizing the faces 'window-divider',
+'window-divider-first-pixel', and 'window-divider-last-pixel'. The last
two are useful to provide a 3D effect, or to better distinguish dividers
from surrounding display objects.
*** New functions to return the pixel sizes of window components, namely
-`window-scroll-bar-width', `window-mode-line-height',
-`window-header-line-height', `window-right-divider-width', and
-`window-bottom-divider-width'.
+'window-scroll-bar-width', 'window-mode-line-height',
+'window-header-line-height', 'window-right-divider-width', and
+'window-bottom-divider-width'.
-*** The new function `window-text-pixel-size' returns the size of the
+*** The new function 'window-text-pixel-size' returns the size of the
text of a window's buffer in pixels. This allows functions like
-`fit-frame-to-buffer' and `fit-window-to-buffer' to accurately fit a
+'fit-frame-to-buffer' and 'fit-window-to-buffer' to accurately fit a
window to its buffer as it will be displayed.
-*** `fit-window-to-buffer' can now resize windows in both dimensions.
+*** 'fit-window-to-buffer' can now resize windows in both dimensions.
This behavior is controlled by the new option
-`fit-window-to-buffer-horizontally'. The new option
-`fit-frame-to-buffer' allows you to fit the window's frame to its buffer.
+'fit-window-to-buffer-horizontally'. The new option
+'fit-frame-to-buffer' allows you to fit the window's frame to its buffer.
-*** `fit-frame-to-buffer' now fits frames in both dimensions. The new
-options `fit-frame-to-buffer-margins' and `fit-frame-to-buffer-sizes'
+*** 'fit-frame-to-buffer' now fits frames in both dimensions. The new
+options 'fit-frame-to-buffer-margins' and 'fit-frame-to-buffer-sizes'
control the size of the frame and its position on screen.
*** Temp Buffer Resize Mode can now adjust the height and width of
-windows and frames. The new option `temp-buffer-max-width' allows you to
+windows and frames. The new option 'temp-buffer-max-width' allows you to
control the width of temporary buffer windows. Moreover, if the new
-option `fit-frame-to-buffer' is non-nil and the buffer appears in the
+option 'fit-frame-to-buffer' is non-nil and the buffer appears in the
root window of a frame, Temp Buffer Resize Mode will try to adjust the
width and/or height of the frame.
-*** `split-window' is now a non-interactive function, not a command.
-As a command, it was a special case of `C-x 2' (`split-window-below'),
+*** 'split-window' is now a non-interactive function, not a command.
+As a command, it was a special case of 'C-x 2' ('split-window-below'),
and as such superfluous. After being reimplemented in Lisp, its
interactive form was mistakenly retained.
-*** The functions `window-size' and `window-total-size' now have an
+*** The functions 'window-size' and 'window-total-size' now have an
optional argument to return a rounded size value.
-*** `window-state-put' now allows you to put a window state into internal
+*** 'window-state-put' now allows you to put a window state into internal
windows too.
-*** New option `scroll-bar-adjust-thumb-portion'.
+*** New option 'scroll-bar-adjust-thumb-portion'.
Available only on X, this option allows you to control over-scrolling
using the scroll bar (i.e., dragging the thumb down even when the end
of the buffer is visible).
-*** New display actions functions for `display-buffer':
+*** New display actions functions for 'display-buffer':
-**** `display-buffer-at-bottom' chooses or creates a window at the
+**** 'display-buffer-at-bottom' chooses or creates a window at the
bottom of the selected frame.
-**** `display-buffer-no-window' to not display the buffer in a window.
+**** 'display-buffer-no-window' to not display the buffer in a window.
-*** New display action alist entry `allow-no-window' to indicate the
-caller of `display-buffer' is ready to handle the case of not displaying
+*** New display action alist entry 'allow-no-window' to indicate the
+caller of 'display-buffer' is ready to handle the case of not displaying
the buffer in a window.
-*** `display-buffer-in-previous-window' is now a member of
-`display-buffer-fallback-action'.
+*** 'display-buffer-in-previous-window' is now a member of
+'display-buffer-fallback-action'.
** Lisp evaluation
-*** `eval-defun' on an already defined defcustom calls the :set function,
+*** 'eval-defun' on an already defined defcustom calls the :set function,
if there is one.
-*** The commands `eval-expression' (`M-:'), `eval-last-sexp' (`C-x C-e'),
-and `eval-print-last-sexp' (`C-j' in Lisp Interaction mode) can take a
+*** The commands 'eval-expression' ('M-:'), 'eval-last-sexp' ('C-x C-e'),
+and 'eval-print-last-sexp' ('C-j' in Lisp Interaction mode) can take a
zero prefix argument. This disables truncation of lists in the output,
-equivalent to setting `(eval-expression-)print-length' and
-`(eval-expression-)print-level' to nil. Additionally, it causes integers
+equivalent to setting '(eval-expression-)print-length' and
+'(eval-expression-)print-level' to nil. Additionally, it causes integers
to be printed in other formats (octal, hexadecimal, and character).
-*** New hook `eval-expression-minibuffer-setup-hook' run by
-`eval-expression' on entering the minibuffer.
+*** New hook 'eval-expression-minibuffer-setup-hook' run by
+'eval-expression' on entering the minibuffer.
-** `cache-long-line-scans' is now non-nil, and renamed to `cache-long-scans',
+** 'cache-long-line-scans' is now non-nil, and renamed to 'cache-long-scans',
because it affects caching of paragraph scanning results as well.
There is no reason to set this to nil except for debugging purposes.
-** `emacs-bzr-version' has been renamed to `emacs-repository-version',
+** 'emacs-bzr-version' has been renamed to 'emacs-repository-version',
and works for git too, if you fetch the repository notes.
-** The default value of `comment-use-global-state' is now t,
+** The default value of 'comment-use-global-state' is now t,
and this variable has been marked obsolete.
-** `write-region-inhibit-fsync' now defaults to t in batch mode.
+** 'write-region-inhibit-fsync' now defaults to t in batch mode.
-** The option `set-mark-default-inactive' has been deleted.
+** The option 'set-mark-default-inactive' has been deleted.
This unfinished feature was introduced by accident in Emacs 23.1;
simply disabling Transient Mark mode does the same thing.
** Indentation
-*** `electric-indent-mode' is now enabled by default.
+*** 'electric-indent-mode' is now enabled by default.
Typing RET reindents the current line and indents the new line.
-`C-j' inserts a newline but does not indent. In some programming modes,
-additional characters are electric (eg `{').
+'C-j' inserts a newline but does not indent. In some programming modes,
+additional characters are electric (eg '{').
-*** New buffer-local `electric-indent-local-mode'.
+*** New buffer-local 'electric-indent-local-mode'.
-*** The behavior of `C-x TAB' (`indent-rigidly') has changed.
+*** The behavior of 'C-x TAB' ('indent-rigidly') has changed.
When invoked without a prefix argument, it now activates a transient
mode in which typing <left>, <right>, <S-left>, and <S-right> adjusts
the text indentation in the region. Typing any other key resumes
normal editing behavior.
-*** `tab-stop-list' is now implicitly extended to infinity by repeating
+*** 'tab-stop-list' is now implicitly extended to infinity by repeating
the last step. Its default value is changed to nil, which means a tab
-stop every `tab-width' columns.
+stop every 'tab-width' columns.
-** Uniquify is enabled by default, with `post-forward-angle-brackets' style.
+** Uniquify is enabled by default, with 'post-forward-angle-brackets' style.
In other words, if you visit two files that have the same base name,
then rather than creating buffers basename and basename<2>,
Emacs uses basename<dirA> and basename<dirB>. To change this,
-customize `uniquify-buffer-name-style'. Set it to nil for the old behavior.
+customize 'uniquify-buffer-name-style'. Set it to nil for the old behavior.
-** New command `C-x SPC' (`rectangle-mark-mode') makes a rectangular region.
+** New command 'C-x SPC' ('rectangle-mark-mode') makes a rectangular region.
Most commands are still unaware of it, but kill/yank do work on the rectangle.
-** New option `visual-order-cursor-movement'.
+** New option 'visual-order-cursor-movement'.
If this is non-nil, cursor motion with arrow keys will follow the
visual order of characters on the screen: <left> always moves to the
left, <right> always moves to the right, disregarding the surrounding
bidirectional context.
-** New command `delete-duplicate-lines'.
+** New command 'delete-duplicate-lines'.
This searches the region for identical lines, and removes all but one
copy of each repeated line. The lines need not be sorted.
-** New command `cycle-spacing' acts like a smarter `just-one-space'.
+** New command 'cycle-spacing' acts like a smarter 'just-one-space'.
When called in succession, it cycles between spacing conventions:
one space, no spaces, original spacing.
-** `blink-matching-paren' now only highlights the matching open-paren
-by default, instead of moving the cursor. Set this variable to `jump' to
+** 'blink-matching-paren' now only highlights the matching open-paren
+by default, instead of moving the cursor. Set this variable to 'jump' to
restore the old behavior.
-** The new function `fill-single-char-nobreak-p' can stop fill from breaking
+** The new function 'fill-single-char-nobreak-p' can stop fill from breaking
a line after a one-letter word, which is an error in some typographical
-conventions. To use it, add it to the `fill-nobreak-predicate' hook.
+conventions. To use it, add it to the 'fill-nobreak-predicate' hook.
** Registers
-*** All interactive commands that read a register (`copy-to-register', etc.)
-now display a temporary window after `register-preview-delay' seconds
+*** All interactive commands that read a register ('copy-to-register', etc.)
+now display a temporary window after 'register-preview-delay' seconds
that summarizes existing registers. To disable this, set that option to nil.
Interactive commands that read registers and want to make use of this
-should use `register-read-with-preview' to read register names.
+should use 'register-read-with-preview' to read register names.
-*** New command `frameset-to-register' bound to `C-x r f', replacing
-`frame-configuration-to-register'. It offers similar functionality,
+*** New command 'frameset-to-register' bound to 'C-x r f', replacing
+'frame-configuration-to-register'. It offers similar functionality,
plus enhancements like the ability to restore deleted frames.
-(`frame-configuration-to-register' still exists, but no longer has a
+('frame-configuration-to-register' still exists, but no longer has a
key binding.)
-*** New command `C-x C-k x' (`kmacro-to-register') stores keyboard
+*** New command 'C-x C-k x' ('kmacro-to-register') stores keyboard
macros in registers.
\f
** Backtrace and debugger
-*** New Lisp debugger command `v' (`debugger-toggle-locals') toggles the
+*** New Lisp debugger command 'v' ('debugger-toggle-locals') toggles the
display of local variables of the current stack frame.
-*** The Lisp debugger's `e' command (`debugger-eval-expression') now includes
+*** The Lisp debugger's 'e' command ('debugger-eval-expression') now includes
the lexical environment when evaluating the code in the context at point
(and so allows you to access lexical variables).
-*** New minor mode `jit-lock-debug-mode' helps you debug code run via JIT Lock.
+*** New minor mode 'jit-lock-debug-mode' helps you debug code run via JIT Lock.
-** Battery information can now be retrieved from BSD's `apm' utility.
+** Battery information can now be retrieved from BSD's 'apm' utility.
-** In the Buffer Menu, `M-s a C-o' shows matches for a regexp in marked buffers.
+** In the Buffer Menu, 'M-s a C-o' shows matches for a regexp in marked buffers.
** Calc
December 31, 1 BC as its day number 1; the new scheme is more
consistent with Calendar's calendrical system and day numbering.
-*** The new option `calc-gregorian-switch' lets you configure if
+*** The new option 'calc-gregorian-switch' lets you configure if
(and when) Calc switches from the Julian to the Gregorian calendar.
*** Support for ISO 8601 dates.
** Calendar and Diary
-*** New faces `calendar-weekday-header', `calendar-weekend-header',
-and `calendar-month-header'.
+*** New faces 'calendar-weekday-header', 'calendar-weekend-header',
+and 'calendar-month-header'.
-*** New option `calendar-day-header-array'.
+*** New option 'calendar-day-header-array'.
-*** New variable `diary-from-outlook-function', used by the command
-`diary-from-outlook'.
+*** New variable 'diary-from-outlook-function', used by the command
+'diary-from-outlook'.
-*** The variable `calendar-font-lock-keywords' is obsolete.
+*** The variable 'calendar-font-lock-keywords' is obsolete.
** CEDET
**** The cpp-root project now supports executing a compile command.
It can be set through the new :compile-command slot or the
-buffer-local variable `compile-command'.
+buffer-local variable 'compile-command'.
**** Better selection of include directories for the 'linux' project.
Include directories now support out-of-tree build directories and
*** The current CFEngine syntax is parsed from "cf-promises -s json".
There is a fallback syntax available if you don't have cf-promises or
-if your version doesn't support that option. See option `cfengine-cf-promises'.
+if your version doesn't support that option. See option 'cfengine-cf-promises'.
** cl-lib
-*** New macro `cl-tagbody'.
+*** New macro 'cl-tagbody'.
This executes statements while allowing for control transfer to labels.
*** letf is now just an alias for cl-letf.
** CUA mode
-*** CUA mode now uses `delete-selection-mode' and `shift-select-mode'.
+*** CUA mode now uses 'delete-selection-mode' and 'shift-select-mode'.
Hence, you can now enable it independently from those modes, and from
-`transient-mark-mode'.
+'transient-mark-mode'.
-*** `cua-highlight-region-shift-only' is now obsolete.
-You can disable `transient-mark-mode' to get the same result.
+*** 'cua-highlight-region-shift-only' is now obsolete.
+You can disable 'transient-mark-mode' to get the same result.
*** CUA's rectangles can now be used without CUA by calling the command
-`cua-rectangle-mark-mode'.
+'cua-rectangle-mark-mode'.
** Delete Selection mode can now be used without Transient Mark mode.
** Desktop
-*** `desktop-save-mode' by default now auto-saves an existing desktop file
-after `desktop-auto-save-timeout'. To disable this, customize that option
+*** 'desktop-save-mode' by default now auto-saves an existing desktop file
+after 'desktop-auto-save-timeout'. To disable this, customize that option
to nil (or zero).
*** Desktop now saves and restores the frame/window configuration.
-To disable this, set `desktop-restore-frames' to nil.
-See also related options `desktop-restore-reuses-frames',
-`desktop-restore-in-current-display', and `desktop-restore-forces-onscreen'.
+To disable this, set 'desktop-restore-frames' to nil.
+See also related options 'desktop-restore-reuses-frames',
+'desktop-restore-in-current-display', and 'desktop-restore-forces-onscreen'.
-** New Dired minor mode `dired-hide-details-mode' toggles whether details,
+** New Dired minor mode 'dired-hide-details-mode' toggles whether details,
such as file ownership or permissions, are visible in Dired buffers.
-See the new options `dired-hide-details-hide-symlink-targets' and
-`dired-hide-details-hide-information-lines' for customizing what to hide.
+See the new options 'dired-hide-details-hide-symlink-targets' and
+'dired-hide-details-hide-information-lines' for customizing what to hide.
-** You can enable ElDoc inside the `eval-expression' minibuffer with:
- (add-hook 'eval-expression-minibuffer-setup-hook 'eldoc-mode)
+** You can enable ElDoc inside the 'eval-expression' minibuffer with:
+ (add-hook 'eval-expression-minibuffer-setup-hook #'eldoc-mode)
The results display in the mode line.
** Electric Pair mode
-*** New option `electric-pair-preserve-balance', enabled by default.
+*** New option 'electric-pair-preserve-balance', enabled by default.
If non-nil, pairing/skipping only kicks in when that help the balance
of parentheses and quotes; i.e., the buffer should end up at least as
balanced as before.
You can further control this behavior by adjusting the predicates
-stored in `electric-pair-inhibit-predicate' and `electric-pair-skip-self'.
+stored in 'electric-pair-inhibit-predicate' and 'electric-pair-skip-self'.
-*** New option `electric-pair-delete-adjacent-pairs', enabled by default.
-In `electric-pair-mode', the commands `backward-delete-char' and
-`backward-delete-char-untabify' are now bound to electric variants
+*** New option 'electric-pair-delete-adjacent-pairs', enabled by default.
+In 'electric-pair-mode', the commands 'backward-delete-char' and
+'backward-delete-char-untabify' are now bound to electric variants
that delete the closer when invoked between adjacent pairs.
-*** New option `electric-pair-open-newline-between-pairs', enabled by default.
-In `electric-pair-mode', inserting a newline between adjacent pairs
+*** New option 'electric-pair-open-newline-between-pairs', enabled by default.
+In 'electric-pair-mode', inserting a newline between adjacent pairs
opens an extra newline after point, which is indented if
-`electric-indent-mode' is also set.
+'electric-indent-mode' is also set.
-*** New option `electric-pair-skip-whitespace', enabled by default.
+*** New option 'electric-pair-skip-whitespace', enabled by default.
This controls if skipping over closing delimiters should jump over any
-whitespace slack. Setting it to `chomp' makes it delete this
-whitespace. See also the variable `electric-pair-skip-whitespace-chars'.
+whitespace slack. Setting it to 'chomp' makes it delete this
+whitespace. See also the variable 'electric-pair-skip-whitespace-chars'.
*** New variables control the pairing in strings and comments.
-You can customize `electric-pair-text-pairs' and
-`electric-pair-text-syntax-table' to tweak pairing behavior inside
+You can customize 'electric-pair-text-pairs' and
+'electric-pair-text-syntax-table' to tweak pairing behavior inside
strings and comments.
-** New EPA option `epa-mail-aliases'.
-You can set this to a list of email address aliases that `epa-mail-encrypt'
+** New EPA option 'epa-mail-aliases'.
+You can set this to a list of email address aliases that 'epa-mail-encrypt'
should use to find keys.
-** New ERC option `erc-accidental-paste-threshold-seconds'.
+** New ERC option 'erc-accidental-paste-threshold-seconds'.
If set to a number, this can be used to avoid accidentally pasting large
amounts of data into the ERC input.
-** New ERT macro `skip-unless' allows skipping ERT tests.
+** New ERT macro 'skip-unless' allows skipping ERT tests.
** Eshell
-*** `eshell' now supports visual subcommands and options.
+*** 'eshell' now supports visual subcommands and options.
Eshell has been able to handle "visual" commands (interactive,
non-line oriented commands such as top that require display
capabilities not provided by eshell) by running them in an Emacs
-terminal emulator. See `eshell-visual-commands'.
+terminal emulator. See 'eshell-visual-commands'.
This feature has been extended to subcommands and options that make a
usually line-oriented command a visual command. Typical examples are
"git log" and "git <command> --help", which display their output in a
-pager by default. See `eshell-visual-subcommands' and `eshell-visual-options'.
+pager by default. See 'eshell-visual-subcommands' and 'eshell-visual-options'.
*** New Eshell-Tramp module.
External su and sudo commands are now the default; the internal,
Tramp-using variants can still be used by enabling the eshell-tramp module.
-** New F90 mode option `f90-smart-end-names'.
+** New F90 mode option 'f90-smart-end-names'.
-** New option `gnutls-verify-error', if non-nil, means that Emacs
+** New option 'gnutls-verify-error', if non-nil, means that Emacs
should reject SSL/TLS certificates that GnuTLS determines as invalid.
(This option defaults to nil at present, but this is expected to change
in a future release.)
** Hi-Lock
-*** New global command `M-s h .' (`highlight-symbol-at-point') highlights
+*** New global command 'M-s h .' ('highlight-symbol-at-point') highlights
the symbol near point.
-*** New option `hi-lock-auto-select-face'. When non-nil, hi-lock commands
-will cycle through faces in `hi-lock-face-defaults' without prompting.
+*** New option 'hi-lock-auto-select-face'. When non-nil, hi-lock commands
+will cycle through faces in 'hi-lock-face-defaults' without prompting.
** Icomplete is now more similar to Ido.
*** Icomplete by default now applies to all forms of minibuffer completion.
-The variable `icomplete-with-completion-tables' (now a user option)
+The variable 'icomplete-with-completion-tables' (now a user option)
controls this. To restore the old behavior, set it back to
'(internal-complete-buffer).
*** You can navigate through and select completions using the keys
-from `icomplete-minibuffer-map'.
+from 'icomplete-minibuffer-map'.
*** The string that separates potential completions is now a customizable
-option (`icomplete-separator'). The default is " | " rather than ",".
+option ('icomplete-separator'). The default is " | " rather than ",".
-*** New face `icomplete-first-match'; and new options
-`icomplete-hide-common-prefix' and `icomplete-show-matches-on-no-input'.
+*** New face 'icomplete-first-match'; and new options
+'icomplete-hide-common-prefix' and 'icomplete-show-matches-on-no-input'.
-*** The option `icomplete-show-key-bindings' has been removed.
+*** The option 'icomplete-show-key-bindings' has been removed.
** Ido
*** An Ido user manual is now included.
-*** The option `ido-use-virtual-buffers' can now take the value `auto'.
+*** The option 'ido-use-virtual-buffers' can now take the value 'auto'.
This means to use virtual buffers if the current ido input does not match
an existing buffer.
-*** The variable `ido-decorations' can optionally have two new elements,
+*** The variable 'ido-decorations' can optionally have two new elements,
which are the brackets to use around the sole remaining completion.
** Image mode
-*** New commands `n' (`image-next-file') and `p' (`image-previous-file')
+*** New commands 'n' ('image-next-file') and 'p' ('image-previous-file')
visit the next image file and the previous image file in the same
directory, respectively.
*** New commands to show specific frames of multi-frame images.
-`f' (`image-next-frame') and `b' (`image-previous-frame') visit the
-next or previous frame. `F' (`image-goto-frame') shows a specific frame.
+'f' ('image-next-frame') and 'b' ('image-previous-frame') visit the
+next or previous frame. 'F' ('image-goto-frame') shows a specific frame.
*** New commands to speed up, slow down, or reverse animation.
-`a +' (`image-increase-speed') and `a -' (`image-decrease-speed') to
-speed up and slow down the animation. `a r' (`image-reverse-speed')
-to reverse it and `a 0' (`image-reset-speed') to reset it.
+'a +' ('image-increase-speed') and 'a -' ('image-decrease-speed') to
+speed up and slow down the animation. 'a r' ('image-reverse-speed')
+to reverse it and 'a 0' ('image-reset-speed') to reset it.
-*** The command `image-mode-fit-frame' deletes other windows.
+*** The command 'image-mode-fit-frame' deletes other windows.
When toggling, it restores the frame's previous window configuration.
It also has an optional frame argument, which can be used by Lisp
callers to fit the image to a frame other than the selected frame.
-** New Imenu option `imenu-generic-skip-comments-and-strings'.
+** New Imenu option 'imenu-generic-skip-comments-and-strings'.
** Info
-*** New Info face `info-index-match', used to highlight matches in index
-entries displayed by `Info-index-next', `Info-virtual-index' and
-`info-apropos'.
+*** New Info face 'info-index-match', used to highlight matches in index
+entries displayed by 'Info-index-next', 'Info-virtual-index' and
+'info-apropos'.
*** The Info-edit command is obsolete. Editing Info nodes by hand
has not been relevant for some time.
** JS Mode
-*** New option `js-switch-indent-offset'.
+*** New option 'js-switch-indent-offset'.
*** Better indentation of multiple-variable declarations.
If a declaration spans several lines, variables on the following lines
*** All delphi-* variables and functions have been renamed to opascal-*.
Obsolete aliases exist for those likely to have been used externally.
-*** The option `delphi-newline-always-indents' has been removed.
-Use `electric-indent-mode' instead.
+*** The option 'delphi-newline-always-indents' has been removed.
+Use 'electric-indent-mode' instead.
-*** The TAB key runs the standard `indent-for-tab-command', not `delphi-tab'.
+*** The TAB key runs the standard 'indent-for-tab-command', not 'delphi-tab'.
** Package
Maintainers of package archives should consider signing their packages
to enhance security.
-**** If the user option `package-check-signature' is non-nil,
+**** If the user option 'package-check-signature' is non-nil,
Emacs tries to check package signatures at install time.
-The value `allow-unsigned' allows installation of unsigned packages.
+The value 'allow-unsigned' allows installation of unsigned packages.
-**** The user option `package-unsigned-archives' lists archives where
+**** The user option 'package-unsigned-archives' lists archives where
Emacs will not try to check signatures.
-*** New option `package-pinned-packages'. This is useful if you have multiple
+*** New option 'package-pinned-packages'. This is useful if you have multiple
archives enabled, with more than one offering a given package that you want.
-*** In the `list-packages' buffer, you can use `f' (`package-menu-filter')
+*** In the 'list-packages' buffer, you can use 'f' ('package-menu-filter')
to filter the list of packages by a keyword.
-*** In the `describe-package' buffer, there are now buttons listing the
+*** In the 'describe-package' buffer, there are now buttons listing the
keywords related to the package. Click on a button to see other packages
related to that keyword.
-*** The format of `archive-contents' files, generated by package
+*** The format of 'archive-contents' files, generated by package
repositories, has changed to allow a new (fifth) element in the data
vectors, containing an associative list with extra properties.
-(For example, `describe-package' uses the `:url' extra property to
+(For example, 'describe-package' uses the ':url' extra property to
display a "Homepage" header.)
-** In Prolog mode, `prolog-use-smie' has been removed,
+** In Prolog mode, 'prolog-use-smie' has been removed,
along with the non-SMIE indentation code.
** Python mode
*** Out of the box support for CPython, iPython and readline based shells.
-**** `python-shell-completion-module-string-code' is no longer used.
+**** 'python-shell-completion-module-string-code' is no longer used.
*** Automatic shell prompt detection. New user options:
-**** `python-shell-interpreter-interactive-arg'.
-**** `python-shell-prompt-detect-enabled'.
-**** `python-shell-prompt-detect-failure-warning'.
-**** `python-shell-prompt-input-regexps'.
-**** `python-shell-prompt-output-regexps'.
+**** 'python-shell-interpreter-interactive-arg'.
+**** 'python-shell-prompt-detect-enabled'.
+**** 'python-shell-prompt-detect-failure-warning'.
+**** 'python-shell-prompt-input-regexps'.
+**** 'python-shell-prompt-output-regexps'.
*** Python shell support for remote hosts via tramp.
** Remember
-*** The new command `remember-notes' creates a buffer that is saved on exit.
+*** The new command 'remember-notes' creates a buffer that is saved on exit.
You can use it as a more permanent *scratch* buffer.
*** Remember can now store notes in separate files.
-To use this, add `remember-store-in-files' to the `remember-handler-functions'
-option. The files are saved in `remember-data-directory' using
-names specified by `remember-directory-file-name-format'.
+To use this, add 'remember-store-in-files' to the 'remember-handler-functions'
+option. The files are saved in 'remember-data-directory' using
+names specified by 'remember-directory-file-name-format'.
** Rmail
-*** Customize `rmail-mbox-format' to influence some minor aspects of
+*** Customize 'rmail-mbox-format' to influence some minor aspects of
how Rmail displays non-MIME messages.
-*** The `unrmail' command now converts from BABYL to mboxrd format,
-rather than mboxo. Customize `unrmail-mbox-format' to change this.
+*** The 'unrmail' command now converts from BABYL to mboxrd format,
+rather than mboxo. Customize 'unrmail-mbox-format' to change this.
** Ruby mode
*** Improved syntax highlighting and indentation.
-*** New `electric-indent-mode' integration.
+*** New 'electric-indent-mode' integration.
-*** New option `ruby-encoding-magic-comment-style'.
+*** New option 'ruby-encoding-magic-comment-style'.
-*** New option `ruby-custom-encoding-magic-comment-template'.
+*** New option 'ruby-custom-encoding-magic-comment-template'.
-*** New option `ruby-align-to-stmt-keywords'.
+*** New option 'ruby-align-to-stmt-keywords'.
-*** New option `ruby-align-chained-calls'.
+*** New option 'ruby-align-chained-calls'.
-*** More Ruby file types have been added to `auto-mode-alist'.
+*** More Ruby file types have been added to 'auto-mode-alist'.
** Search and Replace
-*** New global command `M-s .' (`isearch-forward-symbol-at-point')
+*** New global command 'M-s .' ('isearch-forward-symbol-at-point')
starts a symbol (identifier) incremental search forward with the
symbol found near point added to the search string initially.
-*** `C-x 8 RET' in Isearch mode reads a character by its Unicode name
+*** 'C-x 8 RET' in Isearch mode reads a character by its Unicode name
and adds it to the search string.
-*** `M-s i' in Isearch mode toggles whether search matches invisible text.
+*** 'M-s i' in Isearch mode toggles whether search matches invisible text.
-*** `query-replace' skips invisible text when `search-invisible' is nil,
-and opens overlays with hidden text when `search-invisible' is `open'.
+*** 'query-replace' skips invisible text when 'search-invisible' is nil,
+and opens overlays with hidden text when 'search-invisible' is 'open'.
*** A negative prefix argument of replacement commands replaces backward.
-`M-- M-%' replaces a string backward, `M-- C-M-%' replaces a regexp
-backward, `M-s w words M-- M-%' replaces a sequence of words backward.
+'M-- M-%' replaces a string backward, 'M-- C-M-%' replaces a regexp
+backward, 'M-s w words M-- M-%' replaces a sequence of words backward.
*** By default, prefix arguments do not now terminate Isearch mode.
-Set `isearch-allow-prefix' to nil to restore the old behavior.
+Set 'isearch-allow-prefix' to nil to restore the old behavior.
*** More Isearch commands accept prefix arguments, namely
-`isearch-printing-char', `isearch-quote-char', `isearch-yank-word',
-`isearch-yank-line'.
+'isearch-printing-char', 'isearch-quote-char', 'isearch-yank-word',
+'isearch-yank-line'.
*** Word search now matches whitespace at the beginning/end
of the search string if it contains leading/trailing whitespace.
In an incremental word search or when using a non-nil LAX argument
-of `word-search-regexp', the lax matching can also match part of
+of 'word-search-regexp', the lax matching can also match part of
the first word (in addition to the lax matching of the last word).
The same rules are now applied to the symbol search, with the difference
that it matches symbols, and non-symbol characters between symbols.
-** New SES command `ses-rename-cell' allows assignment of names to SES cells.
+** New SES command 'ses-rename-cell' allows assignment of names to SES cells.
-** The shell.el option `explicit-bash-args' includes --noediting by default.
+** The shell.el option 'explicit-bash-args' includes --noediting by default.
All non-ancient Bash versions support this option.
** Shell Script mode
-*** The SMIE indentation engine is now used by default - see `sh-use-smie'.
+*** The SMIE indentation engine is now used by default - see 'sh-use-smie'.
-*** `sh-mode' now has its own setting for `add-log-current-defun-function'.
+*** 'sh-mode' now has its own setting for 'add-log-current-defun-function'.
** SMIE
-*** You can customize the SMIE indentation of a mode via `smie-config'.
-The command `smie-config-guess' can help you derive the appropriate
+*** You can customize the SMIE indentation of a mode via 'smie-config'.
+The command 'smie-config-guess' can help you derive the appropriate
indentation settings, if you provide it with an indented sample file.
-Use `smie-config-save' to save the result.
+Use 'smie-config-save' to save the result.
*** You can customize the SMIE indentation of a file by adding an entry to
-the file's local variables of the form: `eval: (smie-config-local '(RULES))'.
+the file's local variables of the form: 'eval: (smie-config-local '(RULES))'.
-*** New commands `smie-config-show-indent' and `smie-config-set-indent'.
+*** New commands 'smie-config-show-indent' and 'smie-config-set-indent'.
** SQL mode
*** Improved login monitoring and appropriate response to login failures.
-New variable `sql-login-delay' defines maximum wait time for a connection.
+New variable 'sql-login-delay' defines maximum wait time for a connection.
*** Oracle support.
SQL*Plus script placeholders are properly highlighted and identified
-in `sql-placeholders-filter'. When starting SQL*Plus, `sql-oracle-options'
+in 'sql-placeholders-filter'. When starting SQL*Plus, 'sql-oracle-options'
are passed before the logon parameter, as required. The default now
-includes `-L', to limit the number of logon attempts per invocation.
+includes '-L', to limit the number of logon attempts per invocation.
-** New Term mode option `term-suppress-hard-newline'.
+** New Term mode option 'term-suppress-hard-newline'.
** Todo mode has been rewritten and enhanced.
The Todo mode user manual describes all commands and most user
** Trace
-*** `trace-function' and `trace-function-background' no longer prompt for
+*** 'trace-function' and 'trace-function-background' no longer prompt for
the output buffer. Unless you use a prefix argument, they output to
-`trace-buffer'.
+'trace-buffer'.
-*** With a prefix argument, `trace-function' and `trace-function-background'
+*** With a prefix argument, 'trace-function' and 'trace-function-background'
will prompt for a "context". This is a Lisp expression, whose value at the
time the function is entered/exited is printed along with the function's
name and arguments.
** Tramp
*** New connection method "adb", which allows to access Android
-devices by the Android Debug Bridge. The variable `tramp-adb-program'
+devices by the Android Debug Bridge. The variable 'tramp-adb-program'
can be used to adapt the path of the "adb" program, if needed.
-*** Handlers for `file-acl' and `set-file-acl' for remote machines
+*** Handlers for 'file-acl' and 'set-file-acl' for remote machines
that support POSIX ACLs.
-*** Handlers for `file-notify-add-watch' and `file-notify-rm-watch'
+*** Handlers for 'file-notify-add-watch' and 'file-notify-rm-watch'
for remote machines that support filesystem notifications.
*** The experimental url syntax for remote file names has been removed.
*** The connection methods "plink1", "ssh1", "ssh2", "scp1", "scp2",
"scpc" and "rsyncc" are discontinued. The ssh option
"ControlMaster=auto" is set automatically in all ssh-based methods,
-when possible. See `tramp-use-ssh-controlmaster-options'.
+when possible. See 'tramp-use-ssh-controlmaster-options'.
-** New URL command `url-cookie-list' displays the current cookies,
+** New URL command 'url-cookie-list' displays the current cookies,
and allows you to interactively remove cookies.
** VC and related modes
-*** In VC directory mode, `D' displays diffs between VC-controlled
+*** In VC directory mode, 'D' displays diffs between VC-controlled
whole tree revisions.
-*** In VC directory mode, `L' lists the change log for the current VC
+*** In VC directory mode, 'L' lists the change log for the current VC
controlled tree in a window.
-*** In VC directory mode, `I' shows a log of changes that will be
+*** In VC directory mode, 'I' shows a log of changes that will be
received with a pull operation.
-*** `C-x v G' (globally) and `G' (in VC directory mode) ignores a file
+*** 'C-x v G' (globally) and 'G' (in VC directory mode) ignores a file
under current version control system. When called with a prefix
argument, you can remove a file from the ignored file list.
** VHDL mode
-*** New options: `vhdl-actual-generic-name', `vhdl-beautify-options'.
+*** New options: 'vhdl-actual-generic-name', 'vhdl-beautify-options'.
-*** New commands: `vhdl-fix-statement-region', `vhdl-fix-statement-buffer'.
+*** New commands: 'vhdl-fix-statement-region', 'vhdl-fix-statement-buffer'.
-** The Woman commands `woman-default-faces' and `woman-monochrome-faces'
-are obsolete. Customize the `woman-*' faces instead.
+** The Woman commands 'woman-default-faces' and 'woman-monochrome-faces'
+are obsolete. Customize the 'woman-*' faces instead.
** More packages look for ~/.emacs.d/<foo> additionally to ~/.<foo>.
Affected files:
** Obsolete packages
-*** iswitchb.el; use icomplete-mode.
+*** iswitchb.el; use 'icomplete-mode'.
-*** longlines.el; use visual-line-mode.
+*** longlines.el; use 'visual-line-mode'.
*** meese.el.
\f
* New Modes and Packages in Emacs 24.4
-** New package eww.el provides a built-in web browser.
+** New package 'eww' provides a built-in web browser.
This requires Emacs to have been compiled with libxml2 support.
** New package nadvice.el offers lighter-weight advice facilities.
It is layered as:
-*** `add-function'/`remove-function', which can be used to add/remove code on
-any function-carrying place, such as process filters or `<foo>-function' hooks.
+*** 'add-function'/'remove-function', which can be used to add/remove code on
+any function-carrying place, such as process filters or '<foo>-function' hooks.
-*** `advice-add'/`advice-remove' to add/remove a piece of advice on a named
-function, much like `defadvice' does.
+*** 'advice-add'/'advice-remove' to add/remove a piece of advice on a named
+function, much like 'defadvice' does.
** New package frameset.el provides a set of operations to save a frameset
(the state of all or a subset of the existing frames and windows, somewhat
notifications. It requires that Emacs be compiled with one of the
low-level libraries gfilenotify.c, inotify.c or w32notify.c.
-** New minor modes `prettify-symbols-mode' and `global-prettify-symbols-mode'
+** New minor modes 'prettify-symbols-mode' and 'global-prettify-symbols-mode'
display specified symbols as composed characters. E.g., in Emacs Lisp mode,
this replaces the string "lambda" with the Greek lambda character.
-** New minor mode `superword-mode', which overrides the default word motion
+** New minor mode 'superword-mode', which overrides the default word motion
commands to treat "symbol_words" as a single word, similar to what
-`subword-mode' does.
+'subword-mode' does.
\f
* Incompatible Lisp Changes in Emacs 24.4
** The default file coding for Emacs Lisp files is now utf-8.
-(See `file-coding-system-alist'.) In most cases, this change is
+(See 'file-coding-system-alist'.) In most cases, this change is
transparent, but files that contain unusual characters without
specifying an explicit coding system may fail to load with obscure
errors. You should either convert them to utf-8 or add an explicit
-`coding:' cookie.
+'coding:' cookie.
** Default process filters and sentinels are not nil any more.
Instead they default to a function that does what the nil value used to do.
code that the values of overlay priority can only be either nil or an
integer, always test them with an appropriate predicate to be one or
the other. If you need to sort arbitrary overlays into priority
-order, `overlays-at' can now optionally do this.
+order, 'overlays-at' can now optionally do this.
You should still only specify integer priorities on overlays you create.
-** The cars of the elements in `interpreter-mode-alist' are now
+** The cars of the elements in 'interpreter-mode-alist' are now
treated as regexps rather than literal strings.
-** `overriding-terminal-local-map' no longer replaces the local keymaps.
+** 'overriding-terminal-local-map' no longer replaces the local keymaps.
It used to disable the minor mode, major mode, and text-property keymaps,
whereas now it simply has higher precedence.
-** `kill-region' has lost its `yank-handler' optional argument.
+** 'kill-region' has lost its 'yank-handler' optional argument.
-** `(input-pending-p)' no longer runs other timers that are ready to run.
+** '(input-pending-p)' no longer runs other timers that are ready to run.
The new optional CHECK-TIMERS parameter allows for the prior behavior.
-** `defvar' and `defcustom' in a let-binding affect the "external" default.
+** 'defvar' and 'defcustom' in a let-binding affect the "external" default.
** The syntax of ?» and ?« is now punctuation instead of matched parens.
Some languages match those as »...«, and others as «...», so it is
better for Emacs to stay neutral by default.
-** `read-event' does not always decode chars in ttys any more. As was the case
-in Emacs 22 and before, `read-event' (and `read-char') by default read raw
+** 'read-event' does not always decode chars in ttys any more. As was the case
+in Emacs 22 and before, 'read-event' (and 'read-char') by default read raw
bytes from the terminal. If you want to read decoded chars instead (as was
always the case in Emacs-23, for example), pass a non-nil
-`inherit-input-method' argument.
+'inherit-input-method' argument.
-** In `symbol-function', nil and "unbound" are indistinguishable.
-`symbol-function' does not signal a `void-function' error any more.
-To determine if a symbol's function definition is void, use `fboundp'.
+** In 'symbol-function', nil and "unbound" are indistinguishable.
+'symbol-function' does not signal a 'void-function' error any more.
+To determine if a symbol's function definition is void, use 'fboundp'.
-** `defadvice' does not honor the `freeze' flag and cannot advise
+** 'defadvice' does not honor the 'freeze' flag and cannot advise
special-forms any more.
-** `dolist' no longer binds VAR while evaluating the RESULT form,
+** 'dolist' no longer binds VAR while evaluating the RESULT form,
when lexical binding is enabled. Previously, VAR was bound to nil,
which often led to spurious unused-variable warnings.
-** The return value of `backup-buffer' has changed.
+** The return value of 'backup-buffer' has changed.
The second argument is no longer an SELinux context, instead it is an
alist of extended attributes as returned by the new function
-`file-extended-attributes'. The attributes can be applied to another
-file using `set-file-extended-attributes'.
+'file-extended-attributes'. The attributes can be applied to another
+file using 'set-file-extended-attributes'.
-** By default `copy-file' no longer copies file permission bits to an
+** By default 'copy-file' no longer copies file permission bits to an
existing destination; and it sets the file permission bits of a newly
created destination to those of the source, masked by the default file
permissions. To copy the file permission bits, pass t as the
-PRESERVE-PERMISSIONS argument of `copy-file'.
+PRESERVE-PERMISSIONS argument of 'copy-file'.
-** `visited-file-modtime' now returns -1 for nonexistent files.
+** 'visited-file-modtime' now returns -1 for nonexistent files.
Formerly it returned a list (-1 LOW USEC PSEC), but this was ambiguous
in the presence of files with negative time stamps.
** In compiled Lisp files, the header no longer includes a timestamp.
-** The option `inhibit-local-menu-bar-menus' has been removed.
+** The option 'inhibit-local-menu-bar-menus' has been removed.
\f
* Lisp Changes in Emacs 24.4
and name of global variables, constants, and functions should be separated
by two hyphens if the symbol is not meant to be used by other packages.
-** The second argument of `eval' can now specify a lexical environment.
+** The second argument of 'eval' can now specify a lexical environment.
-** New macro `define-alternatives' can be used to define generic commands.
+** New macro 'define-alternatives' can be used to define generic commands.
Generic commands are interactive functions whose implementation can be
selected among several alternatives, as a matter of user preference.
** Numeric comparison functions =, <, >, <=, >= can now take many arguments.
-** New functions `special-form-p' and `macrop'.
+** New functions 'special-form-p' and 'macrop'.
-** New macro `with-eval-after-load'.
-This is like the old `eval-after-load', but better behaved.
+** New macro 'with-eval-after-load'.
+This is like the old 'eval-after-load', but better behaved.
-** If you give a symbol a `defalias-fset-function' property, `defalias'
+** If you give a symbol a 'defalias-fset-function' property, 'defalias'
on that symbol will use the associated value as a function to call
-in place of `fset'.
+in place of 'fset'.
-** New variable `enable-dir-local-variables'.
+** New variable 'enable-dir-local-variables'.
Directory-local variables are ignored if this is nil. This may be
useful for modes that want to ignore directory-locals while still
respecting file-local variables.
-** `read-regexp' now uses the new variable `read-regexp-defaults-function'
+** 'read-regexp' now uses the new variable 'read-regexp-defaults-function'
as a function to call to provide default values.
-** New functions `group-gid' and `group-real-gid'.
+** New functions 'group-gid' and 'group-real-gid'.
-** New function `get-pos-property'.
+** New function 'get-pos-property'.
-** New hook `pre-redisplay-function'.
+** New hook 'pre-redisplay-function'.
-** `byte-compile-interactive-only-functions' is now obsolete.
+** 'byte-compile-interactive-only-functions' is now obsolete.
To specify that a command should only be called interactively, give it
-a non-nil `interactive-only' property.
+a non-nil 'interactive-only' property.
-** New function `string-suffix-p'.
+** New function 'string-suffix-p'.
-** `split-string' now takes an optional argument TRIM.
+** 'split-string' now takes an optional argument TRIM.
The value, if non-nil, is a regexp that specifies what to trim from
the start and end of each substring.
-** New function `delete-consecutive-dups'.
+** New function 'delete-consecutive-dups'.
** Completion
-*** The separator used by `completing-read-multiple' is now a regexp.
-The default `crm-separator' has been changed to allow surrounding spaces
+*** The separator used by 'completing-read-multiple' is now a regexp.
+The default 'crm-separator' has been changed to allow surrounding spaces
around the comma.
-*** New function `completion-table-with-cache' is a wrapper for
-`completion-table-dynamic' that caches the result of the last lookup.
+*** New function 'completion-table-with-cache' is a wrapper for
+'completion-table-dynamic' that caches the result of the last lookup.
-*** New function `completion-table-merge' to combine several
+*** New function 'completion-table-merge' to combine several
completion tables by merging their completions.
-*** The `common-substring' argument of `display-completion-list',
+*** The 'common-substring' argument of 'display-completion-list',
which has been documented as obsolete since Emacs 23.1, is now _really_
obsolete, and no longer advertised. Instead either call
-`completion-hilit-commonality' to add the highlighting; or use
-`completion-all-completions', which returns highlighted strings.
+'completion-hilit-commonality' to add the highlighting; or use
+'completion-all-completions', which returns highlighted strings.
** Encoding and decoding of text
-*** New coding-system `prefer-utf-8'.
-This is like `undecided' but prefers UTF-8 on decoding if the text to
+*** New coding-system 'prefer-utf-8'.
+This is like 'undecided' but prefers UTF-8 on decoding if the text to
be decoded does not contain any invalid UTF-8 sequences. On encoding,
any non-ASCII characters are automatically encoded as UTF-8.
-*** New attributes of coding-systems whose type is `undecided'.
-Two new attributes, `:inhibit-null-byte-detection' and
-`:inhibit-iso-escape-detection', determine how to detect encoding of
+*** New attributes of coding-systems whose type is 'undecided'.
+Two new attributes, ':inhibit-null-byte-detection' and
+':inhibit-iso-escape-detection', determine how to detect encoding of
text that includes null bytes and ISO-2022 escape sequences, respectively.
Each of these attributes can be either nil, zero, or t. If t, decoding
text ignores null bytes and ISO-2022 sequences, respectively. If nil,
null bytes cause text to be decoded with no-conversion, and ISO-2022
sequences cause Emacs to assume the text is encoded in one of the ISO-2022
encodings, such as iso-2022-7bit. If zero, Emacs consults the variables
-`inhibit-null-byte-detection' and `inhibit-iso-escape-detection'.
-The new attribute `:prefer-utf-8', if non-nil, causes Emacs to prefer
+'inhibit-null-byte-detection' and 'inhibit-iso-escape-detection'.
+The new attribute ':prefer-utf-8', if non-nil, causes Emacs to prefer
UTF-8 encoding and decoding, whenever possible.
-These attributes are only meaningful for coding-systems of type `undecided'.
-(The type of a coding-system is determined by its `:coding-type' attribute
-and can be accessed by calling the `coding-system-type' function.)
+These attributes are only meaningful for coding-systems of type 'undecided'.
+(The type of a coding-system is determined by its ':coding-type' attribute
+and can be accessed by calling the 'coding-system-type' function.)
** Error-handling
-*** New function `define-error'.
+*** New function 'define-error'.
-*** `with-demoted-errors' takes an additional argument `format'.
+*** 'with-demoted-errors' takes an additional argument 'format'.
*** Errors from timer functions are no longer silently discarded,
but are reported as messages. So you may see "Error running timer"
messages from code that was failing silently till now. Set
-`debug-on-error' non-nil to get a real error and a backtrace.
+'debug-on-error' non-nil to get a real error and a backtrace.
** Faces
-*** Face specs set via Custom themes now replace the `defface' spec
+*** Face specs set via Custom themes now replace the 'defface' spec
rather than inheriting from it. In other words, setting a face via a
theme now behaves like setting it via Customize: you only need to
specify the attributes that you want, you don't need to unset those
that you don't want.
-*** The function `face-spec-set' is now like `setq' for face specs.
+*** The function 'face-spec-set' is now like 'setq' for face specs.
Its third arg now accepts values specifying a face spec type (defface,
custom, or override spec), and the relevant spec is set accordingly.
specifies foreground to use if background color is near the foreground
color that would otherwise have been used.
-*** New function `add-face-text-property', which can be used to
+*** New function 'add-face-text-property', which can be used to
conveniently prepend/append new face properties.
*** New face characteristic (supports :underline (:style wave))
*** Support for filesystem notifications.
Emacs now supports notifications of filesystem changes, such as
creation, modification, and deletion of files. This requires the
-`glib' API, or the 'inotify' API (on GNU/Linux systems only). On
+'glib' API, or the 'inotify' API (on GNU/Linux systems only). On
MS-Windows systems, this is supported for Windows XP and newer.
-*** The 9th element returned by `file-attributes' is now unspecified.
+*** The 9th element returned by 'file-attributes' is now unspecified.
Formerly, it was t if the file's gid would change if file were deleted
and recreated. This value has been inaccurate for years on many
platforms, and nobody seems to have noticed or cared.
-*** The 6th argument to `copy-file' has been renamed to
+*** The 6th argument to 'copy-file' has been renamed to
PRESERVE-PERMISSIONS as it now handles ACL entries and the traditional
Unix file permission bits as well as SELinux context.
-*** The function `file-ownership-preserved-p' now has an optional
+*** The function 'file-ownership-preserved-p' now has an optional
argument GROUP which causes it check for file group too. This can be
-used in place of the 9th element of `file-attributes'.
+used in place of the 9th element of 'file-attributes'.
-*** The function `set-visited-file-modtime' now accepts a 0 or -1 argument,
-with the same interpretation as the returned value of `visited-file-modtime'.
+*** The function 'set-visited-file-modtime' now accepts a 0 or -1 argument,
+with the same interpretation as the returned value of 'visited-file-modtime'.
** Image API
-*** `image-animated-p' is now `image-multi-frame-p'.
+*** 'image-animated-p' is now 'image-multi-frame-p'.
It returns non-nil for any image that contains multiple frames,
whether or not it specifies a frame delay.
-*** New variable `image-default-frame-delay' gives the frame delay for
+*** New variable 'image-default-frame-delay' gives the frame delay for
animated images which do not specify a frame delay.
-*** New functions `image-current-frame' and `image-show-frame' for getting
+*** New functions 'image-current-frame' and 'image-show-frame' for getting
and setting the current frame of a multi-frame image.
** ImageMagick
*** ImageMagick images now support the :max-width and :max-height keywords.
-*** When using `create-image' with image data, you can pass a :format
+*** When using 'create-image' with image data, you can pass a :format
attribute (via the property-list argument) in order to help
ImageMagick detect the image type. The value should be a MIME
-content-type that is found in the new variable `image-format-suffixes'.
+content-type that is found in the new variable 'image-format-suffixes'.
** Revert and Autorevert
*** If Emacs is compiled with file notification support, it uses notifications
instead of checking file time stamps. To disable this, set the user option
-`auto-revert-use-notify' to nil. Alternatively, you can specify a regular
+'auto-revert-use-notify' to nil. Alternatively, you can specify a regular
expression matching directories to be excluded from file notifications via
-`auto-revert-notify-exclude-dir-regexp'.
+'auto-revert-notify-exclude-dir-regexp'.
-*** The default values of `buffer-stale-function', `revert-buffer-function',
-and `revert-buffer-insert-file-contents-function' are no longer nil.
+*** The default values of 'buffer-stale-function', 'revert-buffer-function',
+and 'revert-buffer-insert-file-contents-function' are no longer nil.
Instead they default to functions that do what the nil value used to.
-*** `buffer-stale-function' is now used for buffers visiting files too.
+*** 'buffer-stale-function' is now used for buffers visiting files too.
-*** The new user option `auto-revert-remote-files' enables reversion
+*** The new user option 'auto-revert-remote-files' enables reversion
of remote files, if non-nil.
** Terminal
*** Functions to pop up menus and dialogs now work on all terminals,
-including TTYs. This includes `x-popup-menu', `x-popup-dialog',
-`message-box', `yes-or-no-p', etc.
+including TTYs. This includes 'x-popup-menu', 'x-popup-dialog',
+'message-box', 'yes-or-no-p', etc.
-The function `display-popup-menus-p' will now return non-nil for a
+The function 'display-popup-menus-p' will now return non-nil for a
display or frame whenever a mouse is supported on that display or frame.
-*** New hook `tty-setup-hook', run at the end of initializing a text terminal.
+*** New hook 'tty-setup-hook', run at the end of initializing a text terminal.
-*** The hook `term-setup-hook' is obsolete. It is entirely equivalent
-to `emacs-startup-hook'. See also the new `tty-setup-hook'.
+*** The hook 'term-setup-hook' is obsolete. It is entirely equivalent
+to 'emacs-startup-hook'. See also the new 'tty-setup-hook'.
** Minor internal changes to the details of lock files.
The lock for DIR/FILE is now _always_ DIR/.#FILE.
regular file with contents being what would have been in the symlink.
** New bool-vector set operation functions:
-*** `bool-vector-exclusive-or'
-*** `bool-vector-union'
-*** `bool-vector-intersection'
-*** `bool-vector-set-difference'
-*** `bool-vector-not'
-*** `bool-vector-subsetp'
-*** `bool-vector-count-consecutive'
-*** `bool-vector-count-population'
+*** 'bool-vector-exclusive-or'
+*** 'bool-vector-union'
+*** 'bool-vector-intersection'
+*** 'bool-vector-set-difference'
+*** 'bool-vector-not'
+*** 'bool-vector-subsetp'
+*** 'bool-vector-count-consecutive'
+*** 'bool-vector-count-population'
** New library subr-x.el with miscellaneous small utility functions:
-*** `hash-table-keys'
-*** `hash-table-values'
-*** `string-blank-p'
-*** `string-empty-p'
-*** `string-join'
-*** `string-reverse'
-*** `string-trim-left'
-*** `string-trim-right'
-*** `string-trim'
-*** `string-remove-prefix'
-*** `string-remove-suffix'
-
-** The `time-to-seconds' alias to `float-time' is no longer marked obsolete.
-
-** The spelling of the rx.el category `chinese-two-byte' has been
+*** 'hash-table-keys'
+*** 'hash-table-values'
+*** 'string-blank-p'
+*** 'string-empty-p'
+*** 'string-join'
+*** 'string-reverse'
+*** 'string-trim-left'
+*** 'string-trim-right'
+*** 'string-trim'
+*** 'string-remove-prefix'
+*** 'string-remove-suffix'
+
+** The 'time-to-seconds' alias to 'float-time' is no longer marked obsolete.
+
+** The spelling of the rx.el category 'chinese-two-byte' has been
corrected (the first 'e' was missing).
-** EIEIO namespace cleanup, obsolete-aliasing functions to use `eieio-' prefix:
+** EIEIO namespace cleanup, obsolete-aliasing functions to use 'eieio-' prefix:
*** object-name -> eieio-object-name
*** object-class -> eieio-object-class
*** object-class-fast -> eieio--object-class
*** class-direct-superclasses -> eieio-class-parents
** Obsoleted functions
-*** `log10'
-*** `dont-compile'
-*** `lisp-complete-symbol'
-*** `field-complete'
-*** `minibuffer-completion-contents'
-*** `isearch-nonincremental-exit-minibuffer'
-*** `isearch-filter-visible'
-*** `generic-make-keywords-list'
-*** `get-upcase-table' (use `case-table-get-table' instead).
-
-** `with-wrapper-hook' is obsoleted by `add-function'.
+*** 'log10'
+*** 'dont-compile'
+*** 'lisp-complete-symbol'
+*** 'field-complete'
+*** 'minibuffer-completion-contents'
+*** 'isearch-nonincremental-exit-minibuffer'
+*** 'isearch-filter-visible'
+*** 'generic-make-keywords-list'
+*** 'get-upcase-table' (use 'case-table-get-table' instead).
+
+** 'with-wrapper-hook' is obsoleted by 'add-function'.
The few hooks that used with-wrapper-hook are replaced as follows:
-*** `abbrev-expand-function' obsoletes `abbrev-expand-functions'.
-*** `completion-in-region-function' obsoletes `completion-in-region-functions'.
-*** `filter-buffer-substring-function' obsoletes `filter-buffer-substring-functions'.
+*** 'abbrev-expand-function' obsoletes 'abbrev-expand-functions'.
+*** 'completion-in-region-function' obsoletes 'completion-in-region-functions'.
+*** 'filter-buffer-substring-function' obsoletes 'filter-buffer-substring-functions'.
\f
* Changes in Emacs 24.4 on Non-Free Operating Systems
** Improved fullscreen support on Mac OS X 10.7 and newer, where the
default fullscreen method is now "native" fullscreen. To use the
-old style fullscreen, customize `ns-use-native-fullscreen' to nil.
+old style fullscreen, customize 'ns-use-native-fullscreen' to nil.
** On Mac OS X 10.7 and newer, Emacs can use sRGB colorspace, and does so
-by default. Customize `ns-use-srgb-colorspace' to go back to the old method.
+by default. Customize 'ns-use-srgb-colorspace' to go back to the old method.
Note that this does not apply to images.
** The procedure for building Emacs on MS-Windows has changed.
** Emacs on Windows 2000 and later can now access files and directories
whose names cannot be encoded in the current system codepage.
-The new variable `w32-unicode-filenames' controls this feature: if it
+The new variable 'w32-unicode-filenames' controls this feature: if it
is t, Emacs uses Unicode APIs to pass file names to system calls,
which lifts the limitation of file names to the current locale.
This helps to prevent losing your edits if the same file is being
edited in another Emacs session or by another user. See the node
"Interlocking" in the Emacs User Manual for the details. To disable
-file locking, customize `create-lockfiles' to nil.
+file locking, customize 'create-lockfiles' to nil.
** The "generate a backtrace on fatal error" feature now works on MS-Windows.
The backtrace is written to the 'emacs_backtrace.txt' file in the
directory where Emacs was running.
-** The `network-interface-list' and `network-interface-info' functions
+** The 'network-interface-list' and 'network-interface-info' functions
are now available on MS-Windows.
-** The variable `buffer-file-type' is no longer supported.
+** The variable 'buffer-file-type' is no longer supported.
Setting it has no effect, and %t in the mode-line format is ignored.
-Likewise, `file-name-buffer-file-type-alist' is now obsolete, and
+Likewise, 'file-name-buffer-file-type-alist' is now obsolete, and
modifying it has no effect.
\f
* Installation Changes in Emacs 24.3
** The default X toolkit is now Gtk+ version 3.
-If you don't pass `--with-x-toolkit' to configure, or if you use
-`--with-x-toolkit=gtk' or `--with-x-toolkit=yes', configure will try
+If you don't pass '--with-x-toolkit' to configure, or if you use
+'--with-x-toolkit=gtk' or '--with-x-toolkit=yes', configure will try
to build with Gtk+ version 3, and if that fails, try Gtk+ version 2.
You can explicitly require a specific version by passing
-`--with-x-toolkit=gtk2' or `--with-x-toolkit=gtk3' to configure.
+'--with-x-toolkit=gtk2' or '--with-x-toolkit=gtk3' to configure.
-** New configure option `--enable-link-time-optimization', to utilize
+** New configure option '--enable-link-time-optimization', to utilize
an appropriate feature provided by GCC since version 4.5.0.
-** New configure option `--without-all' to disable most of the optional
+** New configure option '--without-all' to disable most of the optional
features (image support, etc.) that are normally enabled by default.
-** New configure option `--enable-gcc-warnings' (for developing/debugging
+** New configure option '--enable-gcc-warnings' (for developing/debugging
Emacs). If building with GCC, this enables compile-time checks that
warn/give errors about possibly-questionable C code. On a recent GNU
system there should be no warnings; on older and on non-GNU systems
the results may be useful to developers.
-** The configure option `--enable-use-lisp-union-type' has been
-renamed to `--enable-check-lisp-object-type', as the resulting
+** The configure option '--enable-use-lisp-union-type' has been
+renamed to '--enable-check-lisp-object-type', as the resulting
Lisp_Object type no longer uses a union to implement the compile time
check that this option enables.
-** The configure option `--disable-maintainer-mode' has been removed,
+** The configure option '--disable-maintainer-mode' has been removed,
as it was confusingly-named and rarely useful.
-** The configure options `--program-prefix', `--program-suffix', and
-`--program-transform-name' apply to more than just the installed
+** The configure options '--program-prefix', '--program-suffix', and
+'--program-transform-name' apply to more than just the installed
binaries. Now they also affect the man pages, icons, and the
etc/emacs.desktop file; but not the info pages, since this would break
links between the various manuals.
-** You can use `NO_BIN_LINK=t make install' to prevent the installation
+** You can use 'NO_BIN_LINK=t make install' to prevent the installation
overwriting "emacs" in the installation bin/ directory with a link
to "emacs-VERSION".
/usr/pkg/lib to the linker search path. You must add them yourself if
you want them.
-** The standalone scripts `rcs-checkin' and `vcdiff' have been removed
+** The standalone scripts 'rcs-checkin' and 'vcdiff' have been removed
(from the bin and libexec directories, respectively). The former is
no longer relevant, the latter is replaced by lisp (in vc-sccs.el).
\f
* Startup Changes in Emacs 24.3
-** Emacs no longer searches for `leim-list.el' files beneath the standard
+** Emacs no longer searches for 'leim-list.el' files beneath the standard
lisp/ directory. There should not be any there anyway. If you have
been adding them there, put them somewhere else; e.g., site-lisp.
-** The `--no-site-lisp' command line option now works for Nextstep builds.
+** The '--no-site-lisp' command line option now works for Nextstep builds.
\f
* Changes in Emacs 24.3
** Help
-*** `C-h f' (`describe-function') can now perform autoloading.
+*** 'C-h f' ('describe-function') can now perform autoloading.
When this command is called for an autoloaded function whose docstring
contains a key substitution construct, that function's library is
automatically loaded, so that the documentation can be shown
-correctly. To disable this, set `help-enable-auto-load' to nil.
+correctly. To disable this, set 'help-enable-auto-load' to nil.
-*** `C-h f' now reports previously-autoloaded functions as "autoloaded",
+*** 'C-h f' now reports previously-autoloaded functions as "autoloaded",
even after their associated libraries have been loaded (and the
autoloads have been redefined as functions).
:background image specification property.
*** When available, ImageMagick support is automatically enabled.
-It is no longer necessary to call `imagemagick-register-types'
+It is no longer necessary to call 'imagemagick-register-types'
explicitly to install ImageMagick image types; that function is called
automatically at startup, or when customizing an imagemagick- option.
-*** Setting `imagemagick-types-inhibit' to t now disables the use of
-ImageMagick to view images. (You must call `imagemagick-register-types'
+*** Setting 'imagemagick-types-inhibit' to t now disables the use of
+ImageMagick to view images. (You must call 'imagemagick-register-types'
afterwards if you do not use customize to change this.)
-*** The new variable `imagemagick-enabled-types' also affects which
+*** The new variable 'imagemagick-enabled-types' also affects which
ImageMagick types are treated as images. The function
-`imagemagick-filter-types' returns the list of types that will be
+'imagemagick-filter-types' returns the list of types that will be
treated as images.
** Minibuffer
-*** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the
+*** In minibuffer filename prompts, 'C-M-f' and 'C-M-b' now move to the
next and previous path separator, respectively.
-*** `minibuffer-electric-default-mode' can shorten "(default ...)" to "[...]"
-in minibuffer prompts. Just set `minibuffer-eldef-shorten-default'
+*** 'minibuffer-electric-default-mode' can shorten "(default ...)" to "[...]"
+in minibuffer prompts. Just set 'minibuffer-eldef-shorten-default'
non-nil before enabling the mode.
** Mode line
-*** New option `mode-line-default-help-echo' specifies the help text
+*** New option 'mode-line-default-help-echo' specifies the help text
(shown in a tooltip or in the echo area) for any part of the mode line
that does not have its own specialized help text.
*** You can now click mouse-3 in the coding system indicator to invoke
-`set-buffer-file-coding-system'.
+'set-buffer-file-coding-system'.
** Server and client
-*** emacsclient now obeys string values for `initial-buffer-choice',
+*** emacsclient now obeys string values for 'initial-buffer-choice',
if it is told to open a new frame without specifying any file to visit
or expression to evaluate.
-*** New option `server-auth-key' specifies a shared server key.
+*** New option 'server-auth-key' specifies a shared server key.
** Emacs now generates backtraces on fatal errors.
On encountering a fatal error, Emacs now outputs a textual description
of the fatal signal, and a short backtrace on platforms like glibc
that support backtraces.
-** `C-x C-q' is now bound to the new minor mode `read-only-mode'.
-This minor mode replaces `toggle-read-only', which is now obsolete.
+** 'C-x C-q' is now bound to the new minor mode 'read-only-mode'.
+This minor mode replaces 'toggle-read-only', which is now obsolete.
-** Most `y-or-n' prompts now allow you to scroll the selected window.
-Typing `C-v' or `M-v' at a y-or-n prompt scrolls forward or backward
+** Most 'y-or-n' prompts now allow you to scroll the selected window.
+Typing 'C-v' or 'M-v' at a y-or-n prompt scrolls forward or backward
respectively, without exiting from the prompt.
** In the Package Menu, newly-available packages are listed as "new",
and sorted above the other "available" packages by default.
** If your Emacs was built from a repository checkout, the new variable
-`emacs-bzr-version' contains information about the bzr revision used.
+'emacs-bzr-version' contains information about the bzr revision used.
-** New option `create-lockfiles' specifies usage of lockfiles.
+** New option 'create-lockfiles' specifies usage of lockfiles.
It defaults to t. Changing it to nil inhibits the creation of lock
files (use this with caution).
-** New option `enable-remote-dir-locals', if non-nil, allows directory-local
+** New option 'enable-remote-dir-locals', if non-nil, allows directory-local
variables on remote hosts.
** The entry for PCL-CVS has been removed from the Tools menu.
** Using "unibyte: t" in Lisp source files is obsolete.
Use "coding: raw-text" instead.
-** In the buffer made by `M-x report-emacs-bug', the `C-c m' binding
-has been changed to `C-c M-i' (`report-emacs-bug-insert-to-mailer').
+** In the buffer made by 'M-x report-emacs-bug', the 'C-c m' binding
+has been changed to 'C-c M-i' ('report-emacs-bug-insert-to-mailer').
The previous binding, introduced in Emacs 24.1, was a mistake, because
-`C-c LETTER' bindings are reserved for user customizations.
+'C-c LETTER' bindings are reserved for user customizations.
** Internationalization
*** New language environment: Persian.
-*** New input method `vietnamese-vni'.
+*** New input method 'vietnamese-vni'.
** Nextstep (GNUstep / OS X) port
*** Non-regexp Isearch now performs "lax" space matching.
Each sequence of spaces in the supplied search string may match any
sequence of one or more whitespace characters, as specified by the
-variable `search-whitespace-regexp'. (This variable is also used by a
+variable 'search-whitespace-regexp'. (This variable is also used by a
similar existing feature for regexp Isearch.)
-*** New Isearch command `M-s SPC' toggles lax space matching.
+*** New Isearch command 'M-s SPC' toggles lax space matching.
This applies to both ordinary and regexp Isearch.
-*** New option `replace-lax-whitespace'.
-If non-nil, `query-replace' uses flexible whitespace matching too.
+*** New option 'replace-lax-whitespace'.
+If non-nil, 'query-replace' uses flexible whitespace matching too.
The default is nil.
-*** Global `M-s _' starts a symbol (identifier) incremental search,
-and `M-s _' in Isearch toggles symbol search mode.
-`M-s c' in Isearch toggles search case-sensitivity.
+*** Global 'M-s _' starts a symbol (identifier) incremental search,
+and 'M-s _' in Isearch toggles symbol search mode.
+'M-s c' in Isearch toggles search case-sensitivity.
** Navigation commands
-*** New binding `M-g c' for `goto-char'.
+*** New binding 'M-g c' for 'goto-char'.
-*** New binding `M-g TAB' for `move-to-column'.
+*** New binding 'M-g TAB' for 'move-to-column'.
-*** `M-g TAB' (`move-to-column') prompts for a column number if called
+*** 'M-g TAB' ('move-to-column') prompts for a column number if called
interactively with no prefix arg. Previously, it moved to column 1.
-** New option `yank-handled-properties' allows processing of text
+** New option 'yank-handled-properties' allows processing of text
properties on yanked text, in ways that are more general than just
-removing them (as is done by `yank-excluded-properties').
+removing them (as is done by 'yank-excluded-properties').
-** New option `delete-trailing-lines' specifies whether
+** New option 'delete-trailing-lines' specifies whether
M-x delete-trailing-whitespace should delete trailing lines at the end
of the buffer. It defaults to t.
-** `C-u M-=' now counts lines/words/characters in the entire buffer.
+** 'C-u M-=' now counts lines/words/characters in the entire buffer.
-** `C-x 8 RET' is now bound to `insert-char', which is now a command.
-`ucs-insert' is now an obsolete alias for `insert-char'.
+** 'C-x 8 RET' is now bound to 'insert-char', which is now a command.
+'ucs-insert' is now an obsolete alias for 'insert-char'.
-** The `z' key no longer has a binding in most special modes.
-It used to be bound to `kill-this-buffer', but `z' is too easy to
+** The 'z' key no longer has a binding in most special modes.
+It used to be bound to 'kill-this-buffer', but 'z' is too easy to
accidentally type.
-** New command `C-x r M-w' (`copy-rectangle-as-kill').
+** New command 'C-x r M-w' ('copy-rectangle-as-kill').
It copies the region-rectangle as the last rectangle kill.
** Registers
-*** `C-x r +' is now overloaded to invoke `append-to-register'.
+*** 'C-x r +' is now overloaded to invoke 'append-to-register'.
-*** New option `register-separator' specifies the register containing
+*** New option 'register-separator' specifies the register containing
the text to put between collected texts for use with
M-x append-to-register and M-x prepend-to-register.
** Common Lisp emulation (CL)
*** CL's main entry is now (require 'cl-lib).
-`cl-lib' is like the old `cl' except that it uses the namespace cleanly;
+'cl-lib' is like the old 'cl' except that it uses the namespace cleanly;
i.e., all its definitions have the "cl-" prefix (and internal definitions
use the "cl--" prefix).
-If `cl' provided a feature under the name `foo', then `cl-lib'
-provides it under the name `cl-foo' instead; with the exceptions of the
-few `cl' definitions that had to use `foo*' to avoid conflicts with
-pre-existing Elisp entities. These have been renamed to `cl-foo'
-rather than `cl-foo*'.
+If 'cl' provided a feature under the name 'foo', then 'cl-lib'
+provides it under the name 'cl-foo' instead; with the exceptions of the
+few 'cl' definitions that had to use 'foo*' to avoid conflicts with
+pre-existing Elisp entities. These have been renamed to 'cl-foo'
+rather than 'cl-foo*'.
-The old `cl' is now deprecated and is mainly just a bunch of aliases that
+The old 'cl' is now deprecated and is mainly just a bunch of aliases that
provide the old, non-prefixed names. Some exceptions are listed below:
-*** `cl-flet' is not like `flet' (which is deprecated).
-Instead it obeys the behavior of Common-Lisp's `flet'.
+*** 'cl-flet' is not like 'flet' (which is deprecated).
+Instead it obeys the behavior of Common-Lisp's 'flet'.
In particular, in cl-flet function definitions are lexically scoped,
whereas in flet the scoping is dynamic.
-*** `cl-labels' is slightly different from `labels'.
-The difference is that it relies on the `lexical-binding' machinery
-(as opposed to the `lexical-let' machinery used previously) to capture
-definitions in closures, so such closures will only work if `lexical-binding'
+*** 'cl-labels' is slightly different from 'labels'.
+The difference is that it relies on the 'lexical-binding' machinery
+(as opposed to the 'lexical-let' machinery used previously) to capture
+definitions in closures, so such closures will only work if 'lexical-binding'
is in use.
-*** `cl-letf' is not exactly like `letf'.
+*** 'cl-letf' is not exactly like 'letf'.
The only difference is in details that relate to some deprecated usage
-of `symbol-function' in place forms.
+of 'symbol-function' in place forms.
-*** `progv' was rewritten to use the `let' machinery.
+*** 'progv' was rewritten to use the 'let' machinery.
A side effect is that variables without corresponding values are bound
to nil rather than being made unbound.
-*** The following methods of extending `setf' are obsolete
+*** The following methods of extending 'setf' are obsolete
(use features from gv.el instead):
-`define-modify-macro' (use `gv-letplace')
-`defsetf' (use `gv-define-simple-setter' or `gv-define-setter')
-`define-setf-expander' (use `gv-define-setter' or `gv-define-expander')
-`get-setf-method' no longer exists (see "Incompatible Lisp Changes")
+'define-modify-macro' (use 'gv-letplace')
+'defsetf' (use 'gv-define-simple-setter' or 'gv-define-setter')
+'define-setf-expander' (use 'gv-define-setter' or 'gv-define-expander')
+'get-setf-method' no longer exists (see "Incompatible Lisp Changes")
** Diff mode
*** Changes are now highlighted using the same color scheme as in
modern VCSes. Deletions are displayed in red (new faces
-`diff-refine-removed' and `smerge-refined-removed', and new definition
-of `diff-removed'), insertions in green (new faces `diff-refine-added'
-and `smerge-refined-added', and new definition of `diff-added').
+'diff-refine-removed' and 'smerge-refined-removed', and new definition
+of 'diff-removed'), insertions in green (new faces 'diff-refine-added'
+and 'smerge-refined-added', and new definition of 'diff-added').
-*** The variable `diff-use-changed-face' defines whether to use the
-face `diff-changed', or `diff-removed' and `diff-added' to highlight
+*** The variable 'diff-use-changed-face' defines whether to use the
+face 'diff-changed', or 'diff-removed' and 'diff-added' to highlight
changes in context diffs.
-*** The new command `diff-delete-trailing-whitespace' removes trailing
+*** The new command 'diff-delete-trailing-whitespace' removes trailing
whitespace introduced by a diff.
** Ediff now uses the same color scheme as Diff mode.
*** Some user options have been removed, including:
-**** `python-indent-string-contents': Strings are never indented.
+**** 'python-indent-string-contents': Strings are never indented.
-**** `python-honour-comment-indentation':
+**** 'python-honour-comment-indentation':
Comments are always considered as indentation markers.
-**** `python-continuation-offset': Indentation is automatically
+**** 'python-continuation-offset': Indentation is automatically
calculated in a pep8 compliant way depending on the context.
-**** `python-shell-prompt-alist', `python-shell-continuation-prompt-alist':
+**** 'python-shell-prompt-alist', 'python-shell-continuation-prompt-alist':
Have no direct mapping as the shell interaction is completely different.
-**** `python-python-command', `python-jython-command':
-Replaced by `python-shell-interpreter'.
+**** 'python-python-command', 'python-jython-command':
+Replaced by 'python-shell-interpreter'.
-**** `inferior-python-filter-regexp', `python-remove-cwd-from-path',
-`python-pdbtrack-minor-mode-string', `python-source-modes':
+**** 'inferior-python-filter-regexp', 'python-remove-cwd-from-path',
+'python-pdbtrack-minor-mode-string', 'python-source-modes':
No longer relevant.
*** Some commands have been replaced (old -> new):
** D-Bus
-*** New variables `dbus-compiled-version' and `dbus-runtime-version'.
+*** New variables 'dbus-compiled-version' and 'dbus-runtime-version'.
*** The D-Bus object manager interface is implemented.
*** Variables of type :(u)int32 and :(u)int64 accept floating points,
if their value does not fit into Emacs's integer range.
-*** The function `dbus-call-method' is now non-blocking.
-It can be interrupted by `C-g'. `dbus-call-method-non-blocking' is obsolete.
+*** The function 'dbus-call-method' is now non-blocking.
+It can be interrupted by 'C-g'. 'dbus-call-method-non-blocking' is obsolete.
*** Signals can also be sent as unicast messages.
-*** The argument list of `dbus-register-signal' has been extended,
+*** The argument list of 'dbus-register-signal' has been extended,
according to the new match rule types of D-Bus.
-*** `dbus-init-bus' supports private connections.
+*** 'dbus-init-bus' supports private connections.
-*** There is a new function `dbus-setenv'.
+*** There is a new function 'dbus-setenv'.
-** `desktop-path' no longer includes the "." directory.
+** 'desktop-path' no longer includes the "." directory.
Desktop files are now located in ~/.emacs.d by default.
** Dired
-*** `dired-do-async-shell-command' executes each file sequentially
-if the command ends in `;' (when operating on multiple files).
+*** 'dired-do-async-shell-command' executes each file sequentially
+if the command ends in ';' (when operating on multiple files).
Otherwise, it executes the command on each file in parallel.
-*** Typing `M-n' in the minibuffer of `dired-do-chmod', `dired-do-chgrp',
-`dired-do-chown', and `dired-do-touch' yanks the attributes of the
+*** Typing 'M-n' in the minibuffer of 'dired-do-chmod', 'dired-do-chgrp',
+'dired-do-chown', and 'dired-do-touch' yanks the attributes of the
file at point.
-*** When the region is active, `m' (`dired-mark'), `u' (`dired-unmark'),
-`DEL' (`dired-unmark-backward'), and `d' (`dired-flag-file-deletion')
+*** When the region is active, 'm' ('dired-mark'), 'u' ('dired-unmark'),
+'DEL' ('dired-unmark-backward'), and 'd' ('dired-flag-file-deletion')
mark/unmark/flag all files in the active region.
-*** The minibuffer default for `=' (`dired-diff') has changed.
+*** The minibuffer default for '=' ('dired-diff') has changed.
It is now the backup file for the file at point, if one exists.
In Transient Mark mode the default is the file at the active mark.
-*** `M-=' is no longer bound to `dired-backup-diff' in Dired buffers.
-The global binding for `M-=', `count-words-region' is in effect.
+*** 'M-=' is no longer bound to 'dired-backup-diff' in Dired buffers.
+The global binding for 'M-=', 'count-words-region' is in effect.
** ERC
*** ERC will look up server/channel names via auth-source and use any
channel keys found.
-*** New option `erc-lurker-hide-list', similar to `erc-hide-list', but
+*** New option 'erc-lurker-hide-list', similar to 'erc-hide-list', but
only applies to messages sent by lurkers.
** reStructuredText mode
-*** Keybindings (see `C-c C-h'), TAB indentation, filling and auto-filling,
+*** Keybindings (see 'C-c C-h'), TAB indentation, filling and auto-filling,
fontification, comment handling, and customization have all been revised
and improved.
-*** Support for `imenu' and `which-function-mode'.
+*** Support for 'imenu' and 'which-function-mode'.
*** The reStructuredText syntax is more closely covered.
Sphinx support has been improved.
-*** `rst-insert-list' inserts new list or continues existing lists.
+*** 'rst-insert-list' inserts new list or continues existing lists.
-*** A negative prefix argument always works for `rst-adjust'.
+*** A negative prefix argument always works for 'rst-adjust'.
*** The window configuration is reset after displaying a TOC.
-*** The constant `rst-version' describes the rst.el package version.
+*** The constant 'rst-version' describes the rst.el package version.
** Ruby mode
*** Improved syntax highlighting and indentation.
-*** New command `ruby-toggle-block', bound to `C-c {'.
+*** New command 'ruby-toggle-block', bound to 'C-c {'.
*** Some non-standard keybindings/commands have been removed:
-**** `ruby-electric-brace'; use `electric-indent-mode' instead.
+**** 'ruby-electric-brace'; use 'electric-indent-mode' instead.
-**** `ruby-mark-defun'; use `mark-defun'.
+**** 'ruby-mark-defun'; use 'mark-defun'.
-**** `ruby-beginning-of-defun' and `ruby-end-of-defun' are replaced by
-appropriate settings for the variables `beginning-of-defun-function'
-and `end-of-defun-function'.
+**** 'ruby-beginning-of-defun' and 'ruby-end-of-defun' are replaced by
+appropriate settings for the variables 'beginning-of-defun-function'
+and 'end-of-defun-function'.
-**** Non-standard keybindings for `backward-kill-word', `comment-region',
-`reindent-then-newline-and-indent' and `newline' have been removed.
+**** Non-standard keybindings for 'backward-kill-word', 'comment-region',
+'reindent-then-newline-and-indent' and 'newline' have been removed.
** Shell Script mode
-*** Pairing of parens/quotes uses `electric-pair-mode' instead of skeleton-pair.
+*** Pairing of parens/quotes uses 'electric-pair-mode' instead of skeleton-pair.
-*** `sh-electric-here-document-mode' now controls auto-insertion of here-docs.
+*** 'sh-electric-here-document-mode' now controls auto-insertion of here-docs.
-*** `sh-use-smie' lets you choose a new indentation and navigation code.
+*** 'sh-use-smie' lets you choose a new indentation and navigation code.
** VHDL mode
** Apropos
*** The faces used by Apropos are now directly customizable.
-These faces are named `apropos-symbol', `apropos-keybinding', and so on;
-see the `apropos' Custom group for details.
+These faces are named 'apropos-symbol', 'apropos-keybinding', and so on;
+see the 'apropos' Custom group for details.
*** The old options whose values specified faces to use have been removed
-(i.e. `apropos-symbol-face', `apropos-keybinding-face', `apropos-label-face',
-`apropos-match-face' and `apropos-property-face'.).
+(i.e. 'apropos-symbol-face', 'apropos-keybinding-face', 'apropos-label-face',
+'apropos-match-face' and 'apropos-property-face'.).
** Buffer Menu
*** This package has been rewritten to use Tabulated List mode.
-*** Option `Buffer-menu-buffer+size-width' is now obsolete.
-Use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead.
+*** Option 'Buffer-menu-buffer+size-width' is now obsolete.
+Use 'Buffer-menu-name-width' and 'Buffer-menu-size-width' instead.
** Calc
*** Algebraic simplification mode is now the default.
To restrict to the limited simplifications given by the former
-default simplification mode, use `m I'.
+default simplification mode, use 'm I'.
** Calendar
*** You can customize the header text that appears above each calendar month.
-See the variable `calendar-month-header'.
+See the variable 'calendar-month-header'.
-*** New LaTeX calendar style, produced by `cal-tex-cursor-week2-summary'.
+*** New LaTeX calendar style, produced by 'cal-tex-cursor-week2-summary'.
*** The calendars produced by cal-html include holidays.
-Customize `cal-html-holidays' to change this.
+Customize 'cal-html-holidays' to change this.
** CEDET
*** The major modes from the parser generators "Bovine" and "Wisent"
are now properly integrated in Emacs. The file suffixes ".by" and ".wy"
-are in `auto-mode-alist', and the corresponding manuals are included.
+are in 'auto-mode-alist', and the corresponding manuals are included.
*** EDE
**** Menu support for the "Configuration" feature. This allows users to
choose the active configuration (such as debug or install) from the menu.
-**** New command `ede-set' to interactively set project-local variables.
+**** New command 'ede-set' to interactively set project-local variables.
**** Support for compiling, debugging, and running in "generic" projects.
**** Support for merging tables from multiple related modes, such as
default -> c++ -> arduino.
-** Compile has a new option `compilation-always-kill'.
+** Compile has a new option 'compilation-always-kill'.
** Customize
-*** `custom-reset-button-menu' now defaults to t.
+*** 'custom-reset-button-menu' now defaults to t.
-*** Non-option variables are never matched in `customize-apropos' and
-`customize-apropos-options' (i.e., the prefix argument does nothing for
+*** Non-option variables are never matched in 'customize-apropos' and
+'customize-apropos-options' (i.e., the prefix argument does nothing for
these commands now).
** Term
-*** The variables `term-default-fg-color' and `term-default-bg-color'
-are now deprecated in favor of the customizable face `term'.
+*** The variables 'term-default-fg-color' and 'term-default-bg-color'
+are now deprecated in favor of the customizable face 'term'.
*** You can customize how to display ANSI terminal colors and styles
-by customizing the corresponding `term-color-<COLOR>',
-`term-color-underline' and `term-color-bold' faces.
+by customizing the corresponding 'term-color-<COLOR>',
+'term-color-underline' and 'term-color-bold' faces.
** Tramp
** URL
-*** Structs made by `url-generic-parse-url' have nil `attributes' slot.
+*** Structs made by 'url-generic-parse-url' have nil 'attributes' slot.
Previously, this slot stored semicolon-separated attribute-value pairs
appended to some imap URLs, but this is not compatible with RFC 3986.
-So now the `filename' slot stores the entire path and query components,
-and the `attributes' slot is always nil.
+So now the 'filename' slot stores the entire path and query components,
+and the 'attributes' slot is always nil.
-*** New function `url-encode-url' for encoding a URI string.
-The `url-retrieve' function now uses this to encode its URL argument,
+*** New function 'url-encode-url' for encoding a URI string.
+The 'url-retrieve' function now uses this to encode its URL argument,
in case that is not properly encoded.
** notifications.el supports now version 1.2 of the Notifications API.
-The function `notifications-get-capabilities' returns the supported
+The function 'notifications-get-capabilities' returns the supported
server properties.
** Flymake uses fringe bitmaps to indicate errors and warnings.
-See `flymake-fringe-indicator-position', `flymake-error-bitmap' and
-`flymake-warning-bitmap'.
+See 'flymake-fringe-indicator-position', 'flymake-error-bitmap' and
+'flymake-warning-bitmap'.
-** The FFAP option `ffap-url-unwrap-remote' can now be a list of strings,
+** The FFAP option 'ffap-url-unwrap-remote' can now be a list of strings,
specifying URL types that should be converted to remote file names at
the FFAP prompt. The default is now '("ftp").
-** New Ibuffer `derived-mode' filter, bound to `/ M'.
-The old binding for `/ M' (filter by used-mode) is now bound to `/ m'.
+** New Ibuffer 'derived-mode' filter, bound to '/ M'.
+The old binding for '/ M' (filter by used-mode) is now bound to '/ m'.
-** New option `mouse-avoidance-banish-position' specifies where the
-`banish' mouse avoidance setting moves the mouse.
+** New option 'mouse-avoidance-banish-position' specifies where the
+'banish' mouse avoidance setting moves the mouse.
-** In Perl mode, new option `perl-indent-parens-as-block' causes non-block
+** In Perl mode, new option 'perl-indent-parens-as-block' causes non-block
closing brackets to be aligned with the line of the opening bracket.
-** In Proced mode, new command `proced-renice' renices marked processes.
+** In Proced mode, new command 'proced-renice' renices marked processes.
-** New option `async-shell-command-buffer' specifies the buffer to use
-for a new asynchronous `shell-command' when the default output buffer
-`*Async Shell Command*' is already in use.
+** New option 'async-shell-command-buffer' specifies the buffer to use
+for a new asynchronous 'shell-command' when the default output buffer
+'*Async Shell Command*' is already in use.
-** SQL mode has a new option `sql-db2-escape-newlines'.
+** SQL mode has a new option 'sql-db2-escape-newlines'.
If non-nil, newlines sent to the command interpreter will be escaped
by a backslash. The default does not escape the newlines and assumes
that the sql statement will be terminated by a semicolon.
-** New command `tabulated-list-sort', bound to `S' in Tabulated List mode
+** New command 'tabulated-list-sort', bound to 'S' in Tabulated List mode
(and modes that derive from it), sorts the column at point, or the Nth
column if a numeric prefix argument is given.
-** `which-func-modes' now defaults to t, so Which Function mode, when
+** 'which-func-modes' now defaults to t, so Which Function mode, when
enabled, applies to all applicable major modes.
-** `winner-mode-hook' now runs when the mode is disabled, as well as when
+** 'winner-mode-hook' now runs when the mode is disabled, as well as when
it is enabled.
** Follow mode no longer works by using advice.
-The option `follow-intercept-processes' has been removed.
+The option 'follow-intercept-processes' has been removed.
-** `javascript-generic-mode' is now an obsolete alias for `js-mode'.
+** 'javascript-generic-mode' is now an obsolete alias for 'js-mode'.
** Hooks renamed to avoid obsolete "-hooks" suffix:
-*** semantic-lex-reset-hooks -> semantic-lex-reset-functions
-*** semantic-change-hooks -> semantic-change-functions
-*** semantic-edits-new-change-hooks -> semantic-edits-new-change-functions
-*** semantic-edits-delete-change-hooks -> semantic-edits-delete-change-functions
-*** semantic-edits-reparse-change-hooks -> semantic-edits-reparse-change-functions
-*** semanticdb-save-database-hooks -> semanticdb-save-database-functions
-*** c-prepare-bug-report-hooks -> c-prepare-bug-report-hook
-*** rcirc-sentinel-hooks -> rcirc-sentinel-functions
-*** rcirc-receive-message-hooks -> rcirc-receive-message-functions
-*** rcirc-activity-hooks -> rcirc-activity-functions
-*** rcirc-print-hooks -> rcirc-print-functions
-*** dbus-event-error-hooks -> dbus-event-error-functions
-*** eieio-pre-method-execution-hooks -> eieio-pre-method-execution-functions
-*** checkdoc-style-hooks -> checkdoc-style-functions
-*** checkdoc-comment-style-hooks -> checkdoc-comment-style-functions
-*** archive-extract-hooks -> archive-extract-hook
-*** filesets-cache-fill-content-hooks -> filesets-cache-fill-content-hook
-*** hfy-post-html-hooks -> hfy-post-html-hook
-*** nndiary-request-create-group-hooks -> nndiary-request-create-group-functions
-*** nndiary-request-update-info-hooks -> nndiary-request-update-info-functions
-*** nndiary-request-accept-article-hooks -> nndiary-request-accept-article-functions
-*** gnus-subscribe-newsgroup-hooks -> gnus-subscribe-newsgroup-functions
+*** 'semantic-lex-reset-hooks' -> 'semantic-lex-reset-functions'
+*** 'semantic-change-hooks' -> 'semantic-change-functions'
+*** 'semantic-edits-new-change-hooks' -> 'semantic-edits-new-change-functions'
+*** 'semantic-edits-delete-change-hooks' -> 'semantic-edits-delete-change-functions'
+*** 'semantic-edits-reparse-change-hooks' -> 'semantic-edits-reparse-change-functions'
+*** 'semanticdb-save-database-hooks' -> 'semanticdb-save-database-functions'
+*** 'c-prepare-bug-report-hooks' -> 'c-prepare-bug-report-hook'
+*** 'rcirc-sentinel-hooks' -> 'rcirc-sentinel-functions'
+*** 'rcirc-receive-message-hooks' -> 'rcirc-receive-message-functions'
+*** 'rcirc-activity-hooks' -> 'rcirc-activity-functions'
+*** 'rcirc-print-hooks' -> 'rcirc-print-functions'
+*** 'dbus-event-error-hooks' -> 'dbus-event-error-functions'
+*** 'eieio-pre-method-execution-hooks' -> 'eieio-pre-method-execution-functions'
+*** 'checkdoc-style-hooks' -> 'checkdoc-style-functions'
+*** 'checkdoc-comment-style-hooks' -> 'checkdoc-comment-style-functions'
+*** 'archive-extract-hooks' -> 'archive-extract-hook'
+*** 'filesets-cache-fill-content-hooks' -> 'filesets-cache-fill-content-hook'
+*** 'hfy-post-html-hooks' -> 'hfy-post-html-hook'
+*** 'nndiary-request-create-group-hooks' -> 'nndiary-request-create-group-functions'
+*** 'nndiary-request-update-info-hooks' -> 'nndiary-request-update-info-functions'
+*** 'nndiary-request-accept-article-hooks' -> 'nndiary-request-accept-article-functions'
+*** 'gnus-subscribe-newsgroup-hooks' -> 'gnus-subscribe-newsgroup-functions'
** Obsolete packages
\f
* Incompatible Lisp Changes in Emacs 24.3
-** Docstrings starting with `*' no longer indicate user options.
-Only variables defined using `defcustom' are considered user options.
-The function `user-variable-p' is now an obsolete alias for
-`custom-variable-p'.
+** Docstrings starting with '*' no longer indicate user options.
+Only variables defined using 'defcustom' are considered user options.
+The function 'user-variable-p' is now an obsolete alias for
+'custom-variable-p'.
-** The return values of `defalias', `defun' and `defmacro' have changed,
-and are now undefined. For backwards compatibility, `defun' and
-`defmacro' currently return the name of the newly defined
+** The return values of 'defalias', 'defun' and 'defmacro' have changed,
+and are now undefined. For backwards compatibility, 'defun' and
+'defmacro' currently return the name of the newly defined
function/macro, but this should not be relied upon.
-** `random' by default now returns a different random sequence in
-every Emacs run. Use `(random S)', where S is a string, to set the
+** 'random' by default now returns a different random sequence in
+every Emacs run. Use '(random S)', where S is a string, to set the
random seed to a value based on S, in order to get a repeatable
sequence in later calls.
-** If the NEWTEXT arg to `replace-match' contains a substring "\?",
+** If the NEWTEXT arg to 'replace-match' contains a substring "\?",
that substring is inserted literally even if the LITERAL arg is
non-nil, instead of causing an error to be signaled.
-** `select-window' now always makes the window's buffer current.
+** 'select-window' now always makes the window's buffer current.
It does so even if the window was selected before.
-** The function `x-select-font' can return a font spec, instead of a
+** The function 'x-select-font' can return a font spec, instead of a
font name as a string. Whether it returns a font spec or a font name
depends on the graphical library.
-** `face-spec-set' no longer sets frame-specific attributes when the
+** 'face-spec-set' no longer sets frame-specific attributes when the
third argument is a frame (that usage was obsolete since Emacs 22.2).
-** `set-buffer-multibyte' now signals an error in narrowed buffers.
+** 'set-buffer-multibyte' now signals an error in narrowed buffers.
-** The CL package's `get-setf-method' function no longer exists.
+** The CL package's 'get-setf-method' function no longer exists.
Generalized variables are now part of core Emacs Lisp, and implemented
differently to the way cl.el used to do it. It is not possible to
-define a compatible replacement for `get-setf-method'. See the file
+define a compatible replacement for 'get-setf-method'. See the file
gv.el for internal details of the new implementation.
-** The arguments of `dbus-register-signal' are no longer just strings,
+** The arguments of 'dbus-register-signal' are no longer just strings,
but keywords or keyword-string pairs. The old argument list will
still be supported for Emacs 24.x.
or to be more consistent with standard Emacs terminology.
*** Renamed functions
-**** hangul-input-method-inactivate -> hangul-input-method-deactivate
-**** inactivate-input-method -> deactivate-input-method
-**** quail-inactivate -> quail-deactivate
-**** robin-inactivate -> robin-deactivate
-**** viper-inactivate-input-method -> viper-deactivate-input-method
-**** viper-inactivate-input-method-action ->
- viper-deactivate-input-method-action
-**** ucs-input-inactivate -> ucs-input-deactivate
+**** 'hangul-input-method-inactivate' -> 'hangul-input-method-deactivate'
+**** 'inactivate-input-method' -> 'deactivate-input-method'
+**** 'quail-inactivate' -> 'quail-deactivate'
+**** 'robin-inactivate' -> 'robin-deactivate'
+**** 'viper-inactivate-input-method' -> 'viper-deactivate-input-method'
+**** 'viper-inactivate-input-method-action' ->
+ 'viper-deactivate-input-method-action'
+**** 'ucs-input-inactivate' -> 'ucs-input-deactivate'
*** Renamed hooks
The old hooks are still supported for backward compatibility, but they
are deprecated and will be removed eventually.
-**** input-method-inactivate-hook -> input-method-deactivate-hook
-**** robin-inactivate-hook -> robin-deactivate-hook
-**** quail-inactivate-hook -> quail-deactivate-hook
+**** 'input-method-inactivate-hook' -> 'input-method-deactivate-hook'
+**** 'robin-inactivate-hook' -> 'robin-deactivate-hook'
+**** 'quail-inactivate-hook' -> 'quail-deactivate-hook'
*** Renamed variables
-**** follow-deactive-menu -> follow-inactive-menu
-**** inactivate-current-input-method-function ->
- deactivate-current-input-method-function
+**** 'follow-deactive-menu' -> 'follow-inactive-menu'
+**** 'inactivate-current-input-method-function' ->
+ 'deactivate-current-input-method-function'
** Some obsolete functions, variables, and faces have been removed:
-*** `last-input-char', `last-command-char', `unread-command-char'
-*** `facemenu-unlisted-faces'
-*** `rmail-decode-mime-charset'
-*** `iswitchb-read-buffer'
-*** `sc-version', `sc-submit-bug-report'
-*** `set-char-table-default'
-*** `string-to-sequence' (use `string-to-list' or `string-to-vector')
-*** `compile-internal'
-*** `modeline'
-*** `mode-line-inverse-video'
-*** `follow-mode-off-hook'
-*** `cvs-commit-buffer-require-final-newline'
-(use `log-edit-require-final-newline' instead)
-*** `cvs-changelog-full-paragraphs'
-(use `log-edit-changelog-full-paragraphs' instead)
-*** `cvs-diff-ignore-marks', `cvs-diff-buffer-name'
-*** `vc-ignore-vc-files' (use `vc-handled-backends' instead)
-*** `vc-master-templates' (use `vc-handled-backends' instead)
-*** `vc-checkout-carefully'
+*** 'last-input-char', 'last-command-char', 'unread-command-char'
+*** 'facemenu-unlisted-faces'
+*** 'rmail-decode-mime-charset'
+*** 'iswitchb-read-buffer'
+*** 'sc-version', 'sc-submit-bug-report'
+*** 'set-char-table-default'
+*** 'string-to-sequence' (use 'string-to-list' or 'string-to-vector')
+*** 'compile-internal'
+*** 'modeline'
+*** 'mode-line-inverse-video'
+*** 'follow-mode-off-hook'
+*** 'cvs-commit-buffer-require-final-newline'
+(use 'log-edit-require-final-newline' instead)
+*** 'cvs-changelog-full-paragraphs'
+(use 'log-edit-changelog-full-paragraphs' instead)
+*** 'cvs-diff-ignore-marks', 'cvs-diff-buffer-name'
+*** 'vc-ignore-vc-files' (use 'vc-handled-backends' instead)
+*** 'vc-master-templates' (use 'vc-handled-backends' instead)
+*** 'vc-checkout-carefully'
\f
* Lisp Changes in Emacs 24.3
** CL-style generalized variables are now in core Elisp.
-`setf' is autoloaded; `push' and `pop' accept generalized variables.
-You can define your own generalized variables using `gv-define-simple-setter',
-`gv-define-setter', etc.
+'setf' is autoloaded; 'push' and 'pop' accept generalized variables.
+You can define your own generalized variables using 'gv-define-simple-setter',
+'gv-define-setter', etc.
** Emacs tries to macroexpand interpreted (non-compiled) files during load.
This can significantly speed up execution of non-byte-compiled code,
When finished, use M-x profiler-stop. The sampling rate can be based on
CPU time or memory allocations.
-** `defun' also accepts a (declare DECLS) form, like `defmacro'.
-The interpretation of the DECLS is determined by `defun-declarations-alist'.
+** 'defun' also accepts a (declare DECLS) form, like 'defmacro'.
+The interpretation of the DECLS is determined by 'defun-declarations-alist'.
-** New macros `setq-local' and `defvar-local'.
+** New macros 'setq-local' and 'defvar-local'.
** Face underlining can now use a wave.
-** `read-regexp' has a new argument HISTORY; the first argument PROMPT
-of `read-regexp' accepts a string ending with a colon and space, and its
-second argument DEFAULTS can be a list of strings accessible via `M-n'
+** 'read-regexp' has a new argument HISTORY; the first argument PROMPT
+of 'read-regexp' accepts a string ending with a colon and space, and its
+second argument DEFAULTS can be a list of strings accessible via 'M-n'
in the minibuffer ahead of other hard-coded useful regexp-related values.
-More commands use `read-regexp' now to read their regexp arguments.
+More commands use 'read-regexp' now to read their regexp arguments.
** Completion
-*** New function `completion-table-with-quoting' to handle completion
+*** New function 'completion-table-with-quoting' to handle completion
in the presence of quoting, such as file completion in shell buffers.
-*** New function `completion-table-subvert' to use an existing completion
+*** New function 'completion-table-subvert' to use an existing completion
table, but with a different prefix.
** Debugger
-*** New error type and new function `user-error'.
+*** New error type and new function 'user-error'.
These do not trigger the debugger.
-*** New option `debugger-bury-or-kill', saying what to do with the
+*** New option 'debugger-bury-or-kill', saying what to do with the
debugger buffer when exiting debug.
-*** Set `debug-on-message' to enter the debugger when a certain
+*** Set 'debug-on-message' to enter the debugger when a certain
message is displayed in the echo area. This can be useful when trying
to work out which code is doing something.
-*** New var `inhibit-debugger', automatically set to prevent accidental
+*** New var 'inhibit-debugger', automatically set to prevent accidental
recursive invocations.
** Window handling
-*** New command `fit-frame-to-buffer' adjusts the frame height to
+*** New command 'fit-frame-to-buffer' adjusts the frame height to
fit the contents.
-*** The command `fit-window-to-buffer' can adjust the frame height
-if the new option `fit-frame-to-buffer' is non-nil.
+*** The command 'fit-window-to-buffer' can adjust the frame height
+if the new option 'fit-frame-to-buffer' is non-nil.
-*** New macro `with-temp-buffer-window', similar to
-`with-output-to-temp-buffer'.
+*** New macro 'with-temp-buffer-window', similar to
+'with-output-to-temp-buffer'.
-*** `temp-buffer-resize-mode' no longer resizes windows that have been
+*** 'temp-buffer-resize-mode' no longer resizes windows that have been
reused.
-*** New option `switch-to-buffer-preserve-window-point' to restore a
+*** New option 'switch-to-buffer-preserve-window-point' to restore a
window's point when switching buffers.
-*** New display action alist entries `window-height' and `window-width'
-specify the size of new windows created by `display-buffer'.
+*** New display action alist entries 'window-height' and 'window-width'
+specify the size of new windows created by 'display-buffer'.
-*** New display action alist entry `pop-up-frame-parameters', if
+*** New display action alist entry 'pop-up-frame-parameters', if
non-nil, specifies frame parameters to give any newly-created frame.
-*** New display action alist entry `inhibit-switch-frame', if non-nil,
+*** New display action alist entry 'inhibit-switch-frame', if non-nil,
tells display action functions to avoid changing which frame is
selected.
-*** New display action alist entry `previous-window', if non-nil,
-specifies window to reuse in `display-buffer-in-previous-window'.
+*** New display action alist entry 'previous-window', if non-nil,
+specifies window to reuse in 'display-buffer-in-previous-window'.
-*** New display action functions `display-buffer-below-selected',
-and `display-buffer-in-previous-window'.
+*** New display action functions 'display-buffer-below-selected',
+and 'display-buffer-in-previous-window'.
-*** The functions `get-lru-window', `get-mru-window' and `get-largest-window'
+*** The functions 'get-lru-window', 'get-mru-window' and 'get-largest-window'
now accept a third argument to avoid choosing the selected window.
-*** Additional values recognized for option `window-combination-limit'.
+*** Additional values recognized for option 'window-combination-limit'.
*** The following variables are obsolete, as they can be replaced by
-appropriate entries in the `display-buffer-alist' function introduced
+appropriate entries in the 'display-buffer-alist' function introduced
in Emacs 24.1:
-**** `dired-shrink-to-fit'
-**** `display-buffer-reuse-frames'
-**** `display-buffer-function'
-**** `special-display-buffer-names'
-**** `special-display-frame-alist'
-**** `special-display-function'
-**** `special-display-regexps'
+**** 'dired-shrink-to-fit'
+**** 'display-buffer-reuse-frames'
+**** 'display-buffer-function'
+**** 'special-display-buffer-names'
+**** 'special-display-frame-alist'
+**** 'special-display-function'
+**** 'special-display-regexps'
** Time
-*** `current-time-string' no longer requires that its argument's year
+*** 'current-time-string' no longer requires that its argument's year
must be in the range 1000..9999. It now works with any year supported
by the underlying C implementation.
-*** `current-time' now returns extended-format time stamps
+*** 'current-time' now returns extended-format time stamps
(HIGH LOW USEC PSEC), where the new PSEC slot specifies picoseconds.
PSEC is typically a multiple of 1000 on current machines. Other
-functions that use this format, such as `file-attributes' and
-`format-time-string', have been changed accordingly. Old-format time
+functions that use this format, such as 'file-attributes' and
+'format-time-string', have been changed accordingly. Old-format time
stamps are still accepted.
-*** The format of timers in `timer-list' and `timer-idle-list' is now
+*** The format of timers in 'timer-list' and 'timer-idle-list' is now
[TRIGGERED-P HI-SECS LO-SECS USECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY PSECS].
The PSECS slot is new, and uses picosecond resolution. It can be
-accessed via the new `timer--psecs' accessor.
+accessed via the new 'timer--psecs' accessor.
*** Last-modified time stamps in undo lists now are of the form
(t HI-SECS LO-SECS USECS PSECS) instead of (t HI-SECS . LO-SECS).
*** Improved security when handling persistent objects:
-**** `eieio-persistent-read' now features optional arguments for specifying
+**** 'eieio-persistent-read' now features optional arguments for specifying
the class to load, as well as a flag stating whether subclasses are allowed;
if provided, other classes will be rejected by the reader. For
compatibility with existing code, if the class is omitted only a
**** All slots that contain objects must have a :type. Slots with lists
of objects must use a new type predicate for a list of an object type.
-*** Support for `find-function' and similar utilities, through the addition
+*** Support for 'find-function' and similar utilities, through the addition
of filename support to generated symbols.
** Floating point functions now always return special values like NaN,
instead of signaling errors, if given invalid args; e.g., (log -1.0).
Previously, they returned NaNs on some platforms but signaled errors
-on others. The affected functions are acos, asin, tan, exp, expt,
-log, log10, sqrt, and mod.
+on others. The affected functions are 'acos', 'asin', 'tan', 'exp', 'expt',
+'log', 'log10', 'sqrt', and 'mod'.
-** New fringe bitmap `exclamation-mark'.
+** New fringe bitmap 'exclamation-mark'.
** Miscellaneous changes to special forms and macros
-*** `defun' and `defmacro' are now macros rather than special forms.
+*** 'defun' and 'defmacro' are now macros rather than special forms.
-*** `kbd' is now a function rather than a macro.
+*** 'kbd' is now a function rather than a macro.
** Miscellaneous new functions
-*** `set-temporary-overlay-map' sets up a temporary keymap that
+*** 'set-temporary-overlay-map' sets up a temporary keymap that
takes precedence over most other maps for a short while (normally one key).
-*** `autoloadp' tests if its argument is an autoloaded object.
+*** 'autoloadp' tests if its argument is an autoloaded object.
-*** `autoload-do-load' performs the autoloading operation.
+*** 'autoload-do-load' performs the autoloading operation.
-*** `buffer-narrowed-p' tests if the buffer is narrowed.
+*** 'buffer-narrowed-p' tests if the buffer is narrowed.
-*** `file-name-base' returns a file name sans directory and extension.
+*** 'file-name-base' returns a file name sans directory and extension.
-*** `function-get' fetches a function property, following aliases.
+*** 'function-get' fetches a function property, following aliases.
-*** `posnp' tests if an object is a `posn'.
+*** 'posnp' tests if an object is a 'posn'.
-*** `system-users' returns the user names on the system.
+*** 'system-users' returns the user names on the system.
-*** `system-groups' returns the group names on the system.
+*** 'system-groups' returns the group names on the system.
-*** `tty-top-frame' returns the topmost frame of a text terminal.
+*** 'tty-top-frame' returns the topmost frame of a text terminal.
** The following functions and variables are obsolete:
-*** `automount-dir-prefix' (use `directory-abbrev-alist')
-*** `buffer-has-markers-at'
-*** `macro-declaration-function' (use `macro-declarations-alist')
-*** `window-system-version' (provides no useful information)
-*** `dired-pop-to-buffer' (use `dired-mark-pop-up')
-*** `query-replace-interactive'
-*** `font-list-limit' (has had no effect since Emacs < 23)
+*** 'automount-dir-prefix' (use 'directory-abbrev-alist')
+*** 'buffer-has-markers-at'
+*** 'macro-declaration-function' (use 'macro-declarations-alist')
+*** 'window-system-version' (provides no useful information)
+*** 'dired-pop-to-buffer' (use 'dired-mark-pop-up')
+*** 'query-replace-interactive'
+*** 'font-list-limit' (has had no effect since Emacs < 23)
\f
* Changes in Emacs 24.3 on Non-Free Operating Systems
** Cygwin builds can use the native MS Windows user interface.
-Pass `--with-w32' to configure. The default remains the X11 interface.
+Pass '--with-w32' to configure. The default remains the X11 interface.
** Two new functions are available in Cygwin builds:
-`cygwin-convert-file-name-from-windows' and
-`cygwin-convert-file-name-to-windows'. These functions allow Lisp
+'cygwin-convert-file-name-from-windows' and
+'cygwin-convert-file-name-to-windows'. These functions allow Lisp
code to access the Cygwin file-name mapping machinery to convert
between Cygwin and Windows-native file and directory names.
** When invoked with the -nw switch to run on the Windows text-mode terminal,
-Emacs now supports `mouse-highlight', help-echo (in the echo area), and
-`mouse-autoselect-window'.
+Emacs now supports 'mouse-highlight', help-echo (in the echo area), and
+'mouse-autoselect-window'.
** On MS Windows Vista and later Emacs now supports symbolic links.
-** On MS Windows, you can pass `--without-libxml2' to configure.bat to omit
+** On MS Windows, you can pass '--without-libxml2' to configure.bat to omit
support for libxml2, even if its presence is detected.
** On OS X, the Nextstep port requires Mac OS X 10.4 or later.
** Emacs can be compiled with GnuTLS support.
This happens by default if a suitably recent version of the library is
found at build time. To prevent this, use the configure option
-`--without-gnutls'. See below for GnuTLS features.
+'--without-gnutls'. See below for GnuTLS features.
** Emacs can be compiled with SELinux support.
This happens by default if a suitably recent version of the library is
found at build time. To prevent this, use the configure option
-`--without-selinux'. See below for SELinux features.
+'--without-selinux'. See below for SELinux features.
** Emacs can be compiled with ImageMagick support.
This happens by default if a suitably recent version of the library is
found at build time. To prevent this, use the configure option
-`--without-imagemagick'. See below for ImageMagick features.
+'--without-imagemagick'. See below for ImageMagick features.
This feature is not available for the Nextstep or MS ports.
** Emacs can be compiled with libxml2 support.
This happens by default if a suitably recent version of the library is
found at build time. To prevent this, use the configure option
-`--without-xml2'. See below for libxml2 features.
+'--without-xml2'. See below for libxml2 features.
** By default, the installed Info and man pages are compressed.
You can disable this by configuring --without-compress-info.
This is not a new feature; only the configure flag is new.
** The standalone programs digest-doc and sorted-doc are removed.
-Emacs now uses Lisp commands `doc-file-to-man' and `doc-file-to-info'.
+Emacs now uses Lisp commands 'doc-file-to-man' and 'doc-file-to-info'.
-** The standalone program `fakemail' is removed.
+** The standalone program 'fakemail' is removed.
If you need it, feedmail.el provides a superset of the functionality.
\f
command line arguments, and the EMACS_UNIBYTE environment variable, no
longer have any effect. (They were declared obsolete in Emacs 23.)
-** New command line option `--no-site-lisp' removes site-lisp directories
+** New command line option '--no-site-lisp' removes site-lisp directories
from load-path. -Q now implies this. This option does not affect the
EMACSLOADPATH environment variable (and hence has no effect for
Nextstep builds).
** Completion
-*** Many packages now use the `completion-at-point' command,
+*** Many packages now use the 'completion-at-point' command,
rather than implementing separate completion commands.
-*** `completion-at-point' now handles tags and semantic completion.
+*** 'completion-at-point' now handles tags and semantic completion.
*** Completion in a non-minibuffer now tries to detect the end of completion
and pops down the *Completions* buffer accordingly.
-*** New option `completion-cycle-threshold' allows completion cycling.
+*** New option 'completion-cycle-threshold' allows completion cycling.
-*** New option `completion-category-overrides' for overriding the
+*** New option 'completion-category-overrides' for overriding the
default completion style in certain circumstances.
-*** New completion style `substring'.
+*** New completion style 'substring'.
-*** Completion of buffer names uses `substring' completion by default.
+*** Completion of buffer names uses 'substring' completion by default.
-*** The option `widget-complete-field' has been removed.
+*** The option 'widget-complete-field' has been removed.
** Mail changes
*** The first time you try sending mail, Emacs asks for a mail method.
-This is implemented by a new default for `send-mail-function', which
-is `sendmail-query-once'. This offers to use the smtpmail package, or
+This is implemented by a new default for 'send-mail-function', which
+is 'sendmail-query-once'. This offers to use the smtpmail package, or
to use the old defaults relying on external mail facilities
-(`sendmail-send-it' on GNU/Linux and other Unix-like systems, and
-`mailclient-send-it' on Windows).
+('sendmail-send-it' on GNU/Linux and other Unix-like systems, and
+'mailclient-send-it' on Windows).
-*** Typing `C-c m' in the buffer made by `M-x report-emacs-bug'
+*** Typing 'C-c m' in the buffer made by 'M-x report-emacs-bug'
transfers the report to your desktop's preferred mail client, if there
is one. This uses either the "xdg-email" utility, or Mac OS's "open"
command.
** Emacs server and client changes
-*** New option `server-port' specifies the port for TCP Emacs servers.
+*** New option 'server-port' specifies the port for TCP Emacs servers.
*** New emacsclient argument -q/--quiet suppresses some status messages.
implementation of the Unicode Bidirectional Algorithm (UBA). Buffers
with no RTL text should look exactly the same as before.
-**** New buffer-local variable `bidi-display-reordering'.
+**** New buffer-local variable 'bidi-display-reordering'.
To disable display reordering in a buffer, change this to nil.
-**** New buffer-local variable `bidi-paragraph-direction'.
+**** New buffer-local variable 'bidi-paragraph-direction'.
If nil (the default), Emacs determines the base direction of each
paragraph from its text, as specified by the UBA. Setting the value
-to `right-to-left' or `left-to-right' forces a base direction on each
+to 'right-to-left' or 'left-to-right' forces a base direction on each
paragraph.
Paragraphs with right-to-left base direction are displayed starting at
*** Enhanced support for characters with no glyphs in available fonts,
or, on text terminals, characters that cannot be encoded by the
-terminal coding system. The new option `glyphless-char-display-control'
+terminal coding system. The new option 'glyphless-char-display-control'
specifies how to display them: as a hexadecimal code in a box, a thin
1-pixel space, an empty box, etc.
*** New input methods for Farsi and Bulgarian
(farsi-isiri-9147, farsi-transliterate-banan, bulgarian-alt-phonetic).
-*** `nobreak-char-display' now also highlights Unicode hyphen chars
+*** 'nobreak-char-display' now also highlights Unicode hyphen chars
(U+2010 and U+2011).
*** New Hebrew translation of the Emacs Tutorial.
-Type `C-u C-h t' to choose it in case your language setup doesn't
+Type 'C-u C-h t' to choose it in case your language setup doesn't
automatically select it.
** An Emacs Lisp package manager is now included.
*** M-x list-packages shows a list of packages, which can be
selected for installation.
-*** New command `describe-package', bound to `C-h P'.
+*** New command 'describe-package', bound to 'C-h P'.
*** By default, all installed packages are loaded automatically when
-Emacs starts up. To disable this, set `package-enable-at-startup' to
-nil. To specify the packages to load, customize `package-load-list'.
+Emacs starts up. To disable this, set 'package-enable-at-startup' to
+nil. To specify the packages to load, customize 'package-load-list'.
** Custom theme changes
-*** New command `M-x customize-themes', which provides a convenient
+*** New command 'M-x customize-themes', which provides a convenient
interface for enabling and disabling Custom themes.
-*** New option `custom-theme-load-path' is the load path for themes.
-Emacs no longer looks for Custom themes in `load-path'. The default
-value of `custom-theme-load-path' says to look for themes in
-`custom-theme-directory', followed by a subdirectory of
-`data-directory' named "themes/", which contains a small selection of
+*** New option 'custom-theme-load-path' is the load path for themes.
+Emacs no longer looks for Custom themes in 'load-path'. The default
+value of 'custom-theme-load-path' says to look for themes in
+'custom-theme-directory', followed by a subdirectory of
+'data-directory' named "themes/", which contains a small selection of
built-in Custom themes.
-*** New option `custom-safe-themes' records known-safe theme files.
+*** New option 'custom-safe-themes' records known-safe theme files.
If a theme is not in this list, Emacs queries before loading it, and
-offers to save the theme to `custom-safe-themes' automatically. By
+offers to save the theme to 'custom-safe-themes' automatically. By
default, all themes included in Emacs are treated as safe.
** Improved GTK integration
*** GTK scroll-bars are now placed on the right by default.
-The function `set-scroll-bar-mode' can change this.
+The function 'set-scroll-bar-mode' can change this.
*** GTK tool bars can have just text, just images or images and text.
-Customize `tool-bar-style' to choose the style. On a Gnome desktop,
+Customize 'tool-bar-style' to choose the style. On a Gnome desktop,
the default is taken from desktop settings.
*** GTK tool bars can be placed on any edge of the frame.
values top, left, right or bottom. The Options => Show/Hide menu has
entries for this.
-*** The default colors for selected text (the `region' face) are taken
+*** The default colors for selected text (the 'region' face) are taken
from the GTK theme when Emacs is built with GTK.
*** Emacs uses GTK tooltips by default if built with GTK.
-You can disable this by changing `x-gtk-use-system-tooltips' to nil.
+You can disable this by changing 'x-gtk-use-system-tooltips' to nil.
** Graphical interface changes
Also, the first dash (which does not indicate anything) is just
displayed as a space.
-*** `menu-bar-select-buffer-function' lets you choose another operation
-instead of `switch-to-buffer' when selecting an item in the Buffers menu.
+*** 'menu-bar-select-buffer-function' lets you choose another operation
+instead of 'switch-to-buffer' when selecting an item in the Buffers menu.
*** Lucid menus and dialogs can display antialiased fonts if Emacs is
built with Xft. These fonts can be set via X resources, for example:
** Exiting changes
-*** Emacs now calls `kill-emacs' if it receives SIGTERM or SIGHUP,
+*** Emacs now calls 'kill-emacs' if it receives SIGTERM or SIGHUP,
or if it receives a SIGINT signal in batch mode.
-*** `kill-emacs-hook' is now also run in batch mode.
-Third-party code which adds to `kill-emacs-hook' should check if they
+*** 'kill-emacs-hook' is now also run in batch mode.
+Third-party code which adds to 'kill-emacs-hook' should check if they
do the right thing in batch mode.
** Scrolling changes
-*** New scrolling commands `scroll-up-command' and `scroll-down-command'
+*** New scrolling commands 'scroll-up-command' and 'scroll-down-command'
(bound to C-v/[next] and M-v/[prior]) do not signal errors at top/bottom
of buffer at first key-press (instead they move to top/bottom of buffer)
-when `scroll-error-top-bottom' is non-nil.
+when 'scroll-error-top-bottom' is non-nil.
-*** New option `scroll-error-top-bottom' (see above).
+*** New option 'scroll-error-top-bottom' (see above).
-*** New scrolling commands `scroll-up-line' and `scroll-down-line'
+*** New scrolling commands 'scroll-up-line' and 'scroll-down-line'
scroll a line instead of full screen.
-*** New property `scroll-command' should be set on a command's symbol to
-define it as a scroll command affected by `scroll-preserve-screen-position'.
+*** New property 'scroll-command' should be set on a command's symbol to
+define it as a scroll command affected by 'scroll-preserve-screen-position'.
-*** If you customize `scroll-conservatively' to a value greater than 100,
+*** If you customize 'scroll-conservatively' to a value greater than 100,
Emacs will never recenter point in the window when it scrolls due to
-cursor motion commands or commands that move point (e.f., `M-g M-g').
-Previously, you needed to use `most-positive-fixnum' as the value of
-`scroll-conservatively' to achieve the same effect.
+cursor motion commands or commands that move point (e.f., 'M-g M-g').
+Previously, you needed to use 'most-positive-fixnum' as the value of
+'scroll-conservatively' to achieve the same effect.
*** "Aggressive" scrolling now honors the scroll margins.
-If you customize `scroll-up-aggressively' or
-`scroll-down-aggressively' and move point off the window, Emacs now
+If you customize 'scroll-up-aggressively' or
+'scroll-down-aggressively' and move point off the window, Emacs now
scrolls the window so as to avoid positioning point inside the scroll
margin.
This requires Emacs to be linked with libselinux at build time.
*** Emacs preserves the SELinux file context when backing up.
-Also, the function `copy-file' has an extra optional argument for
-preserving SELinux context, and the return value of `backup-buffer'
+Also, the function 'copy-file' has an extra optional argument for
+preserving SELinux context, and the return value of 'backup-buffer'
now includes the SELinux context.
-*** New functions `file-selinux-context' and `set-file-selinux-context'
+*** New functions 'file-selinux-context' and 'set-file-selinux-context'
get and set the SELinux context of a file.
** Trash changes
-*** `delete-by-moving-to-trash' now only affects commands that specify
+*** 'delete-by-moving-to-trash' now only affects commands that specify
trashing. This avoids inadvertently trashing temporary files.
-*** Calling `delete-file' or `delete-directory' with a prefix argument
-now forces true deletion, regardless of `delete-by-moving-to-trash'.
+*** Calling 'delete-file' or 'delete-directory' with a prefix argument
+now forces true deletion, regardless of 'delete-by-moving-to-trash'.
** File- and directory-local variable changes
*** Directory local variables can apply to some file-less buffers.
Affected modes include dired, vc-dir, and log-edit. For example,
adding "(diff-mode . ((mode . whitespace)))" to .dir-locals.el will
-turn on `whitespace-mode' for *vc-diff* buffers. Modes should call
-`hack-dir-local-variables-non-file-buffer' to support this.
+turn on 'whitespace-mode' for *vc-diff* buffers. Modes should call
+'hack-dir-local-variables-non-file-buffer' to support this.
*** Using "mode: MINOR-MODE" to enable a minor mode is deprecated.
Instead, use "eval: (minor-mode 1)".
-*** The variable `inhibit-first-line-modes-regexps' has been renamed
-to `inhibit-local-variables-regexps'. As the name suggests, it now
+*** The variable 'inhibit-first-line-modes-regexps' has been renamed
+to 'inhibit-local-variables-regexps'. As the name suggests, it now
applies to ALL file local variables, not just -*- lines. The
-associated `inhibit-first-line-modes-suffixes' has been renamed in the
+associated 'inhibit-first-line-modes-suffixes' has been renamed in the
corresponding way.
** Window changes
-*** The `quit-window' command now restores the last buffer displayed
+*** The 'quit-window' command now restores the last buffer displayed
in the quitted window.
*** Resizing an Emacs frame now preserves proportional window sizes,
modulo restrictions like window minimum sizes and fixed-size windows.
-*** The behavior of `display-buffer' is now customizable in detail.
+*** The behavior of 'display-buffer' is now customizable in detail.
-**** New option `display-buffer-base-action' specifies a list of
+**** New option 'display-buffer-base-action' specifies a list of
user-determined display "actions" (functions and optional arguments
for choosing the displaying window).
This takes precedence over the default display action, which is
-specified by `display-buffer-fallback-action'.
+specified by 'display-buffer-fallback-action'.
-**** New option `display-buffer-alist' maps buffer name regexps to
-display actions, taking precedence over `display-buffer-base-action'.
+**** New option 'display-buffer-alist' maps buffer name regexps to
+display actions, taking precedence over 'display-buffer-base-action'.
-*** New option `window-combination-limit'.
-The new option `window-combination-limit' allows to return the space
+*** New option 'window-combination-limit'.
+The new option 'window-combination-limit' allows to return the space
obtained for resizing or creating a window more reliably to the window
from which such space was obtained.
-*** New option `window-combination-resize'.
-The new option `window-combination-resize' allows to split a window that
+*** New option 'window-combination-resize'.
+The new option 'window-combination-resize' allows to split a window that
otherwise cannot be split because it's too small by stealing space from
other windows in the same combination. Subsequent resizing or deletion
of the window will resize all windows in the same combination as well.
-*** New option `frame-auto-hide-function' lets you choose between
+*** New option 'frame-auto-hide-function' lets you choose between
iconifying or deleting a frame when burying a buffer in a dedicated
frame, or quitting a window showing a buffer in a frame of its own.
-*** New commands `maximize-window' and `minimize-window'.
+*** New commands 'maximize-window' and 'minimize-window'.
These maximize and minimize the size of a window within its frame.
-*** New commands `switch-to-prev-buffer' and `switch-to-next-buffer'.
+*** New commands 'switch-to-prev-buffer' and 'switch-to-next-buffer'.
These functions allow to navigate through the live buffers that have
been shown in a specific window.
** Minibuffer changes
-*** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'.
+*** The inactive minibuffer has its own major mode 'minibuffer-inactive-mode'.
This is handy for minibuffer-only frames, and is also used for the feature
where mouse-1 pops up *Messages*"', which can now easily be changed.
-*** Minibuffers set `truncate-lines' to nil.
+*** Minibuffers set 'truncate-lines' to nil.
If you want to change the value to something else, you could use
-for example `minibuffer-setup-hook'.
+for example 'minibuffer-setup-hook'.
-** `auto-mode-case-fold' is now enabled by default.
+** 'auto-mode-case-fold' is now enabled by default.
-** `backup-by-copying-when-mismatch' now defaults to t.
+** 'backup-by-copying-when-mismatch' now defaults to t.
-** New basic faces `error', `warning', `success'.
+** New basic faces 'error', 'warning', 'success'.
These are used to highlight text indicating failure, caution or
successful operation.
-** New option `list-colors-sort' defines the color sort order
-for `list-colors-display'.
+** New option 'list-colors-sort' defines the color sort order
+for 'list-colors-display'.
-** The variable `focus-follows-mouse' now always defaults to nil.
+** The variable 'focus-follows-mouse' now always defaults to nil.
\f
* Editing Changes in Emacs 24.1
** Search changes
-*** C-y in Isearch is now bound to `isearch-yank-kill', instead of
-`isearch-yank-line'.
+*** C-y in Isearch is now bound to 'isearch-yank-kill', instead of
+'isearch-yank-line'.
-*** M-y in Isearch is now bound to `isearch-yank-pop', instead of
-`isearch-yank-kill'.
+*** M-y in Isearch is now bound to 'isearch-yank-pop', instead of
+'isearch-yank-kill'.
-*** M-s C-e in Isearch is now bound to `isearch-yank-line'.
+*** M-s C-e in Isearch is now bound to 'isearch-yank-line'.
-** New commands `count-words-region' and `count-words'.
+** New commands 'count-words-region' and 'count-words'.
-*** M-= is bound to `count-words-region', not `count-lines-region'.
-The `count-words-region' command, when called interactively, reports
+*** M-= is bound to 'count-words-region', not 'count-lines-region'.
+The 'count-words-region' command, when called interactively, reports
the number of lines, words, and characters in the region. It is a
-superset of the old `count-lines-region', which is now an obsolete
+superset of the old 'count-lines-region', which is now an obsolete
alias for it.
-** The command `just-one-space' (M-SPC), if given a negative argument,
+** The command 'just-one-space' (M-SPC), if given a negative argument,
also deletes newlines around point.
** Deletion changes
-*** New option `delete-active-region'.
+*** New option 'delete-active-region'.
If non-nil, [delete] and DEL delete the region if it is active and no
-prefix argument is given. If set to `kill', those commands kill
+prefix argument is given. If set to 'kill', those commands kill
instead.
-*** New command `delete-forward-char', bound to [delete].
-This is meant for interactive use, and obeys `delete-active-region'.
-The command `delete-char' does not obey `delete-active-region'.
+*** New command 'delete-forward-char', bound to [delete].
+This is meant for interactive use, and obeys 'delete-active-region'.
+The command 'delete-char' does not obey 'delete-active-region'.
-*** `delete-backward-char' is now a Lisp function.
-Apart from obeying `delete-active-region', its behavior is unchanged.
+*** 'delete-backward-char' is now a Lisp function.
+Apart from obeying 'delete-active-region', its behavior is unchanged.
However, the byte compiler now warns if it is called from Lisp; Lisp
callers should use delete-char with a negative argument instead.
-*** The option `mouse-region-delete-keys' has been deleted.
+*** The option 'mouse-region-delete-keys' has been deleted.
** Selection changes.
In the following, we provide a list of these changes, followed by a
list of steps to get the old behavior back if you prefer that.
-*** `select-active-regions' now defaults to t.
+*** 'select-active-regions' now defaults to t.
Merely selecting text (e.g. with drag-mouse-1) no longer puts it in
the kill ring. The selected text is put in the primary selection, if
the system possesses a separate primary selection facility (e.g. X).
-**** `select-active-regions' also accepts a new value, `only'.
+**** 'select-active-regions' also accepts a new value, 'only'.
This means to only set the primary selection for temporarily active
regions (usually made by mouse-dragging or shift-selection);
"ordinary" active regions, such as those made with C-SPC followed by
point motion, do not alter the primary selection.
-**** `mouse-drag-copy-region' now defaults to nil.
+**** 'mouse-drag-copy-region' now defaults to nil.
-*** mouse-2 is now bound to `mouse-yank-primary'.
+*** mouse-2 is now bound to 'mouse-yank-primary'.
This pastes from the primary selection, ignoring the kill-ring.
-Previously, mouse-2 was bound to `mouse-yank-at-click'.
+Previously, mouse-2 was bound to 'mouse-yank-at-click'.
-*** `x-select-enable-clipboard' now defaults to t on all platforms.
+*** 'x-select-enable-clipboard' now defaults to t on all platforms.
-*** `x-select-enable-primary' now defaults to nil.
+*** 'x-select-enable-primary' now defaults to nil.
Thus, commands that kill text or copy it to the kill-ring (such as
M-w, C-w, and C-k) also use the clipboard---not the primary selection.
**** The "Copy", "Cut", and "Paste" items in the "Edit" menu are now
exactly equivalent to M-w, C-w, and C-y respectively.
-**** Note that on MS-Windows, `x-select-enable-clipboard' was already
+**** Note that on MS-Windows, 'x-select-enable-clipboard' was already
non-nil by default, as Windows does not support the primary selection
between applications.
*** To return to the previous behavior, do the following:
-**** Change `select-active-regions' to nil.
-**** Change `mouse-drag-copy-region' to t.
-**** Change `x-select-enable-primary' to t (on X only).
-**** Change `x-select-enable-clipboard' to nil.
-**** Bind `mouse-yank-at-click' to mouse-2.
+**** Change 'select-active-regions' to nil.
+**** Change 'mouse-drag-copy-region' to t.
+**** Change 'x-select-enable-primary' to t (on X only).
+**** Change 'x-select-enable-clipboard' to nil.
+**** Bind 'mouse-yank-at-click' to mouse-2.
*** Support for X cut buffers has been removed.
*** X clipboard managers are now supported.
-To inhibit this, change `x-select-enable-clipboard-manager' to nil.
+To inhibit this, change 'x-select-enable-clipboard-manager' to nil.
-** New command `C-x r N' (`rectangle-number-lines') numbers the lines
+** New command 'C-x r N' ('rectangle-number-lines') numbers the lines
in the current rectangle. With a prefix argument, this prompts for a
number to count from and for a format string.
-** `redisplay-dont-pause' now defaults to t.
+** 'redisplay-dont-pause' now defaults to t.
This makes Emacs feel more responsive to editing commands that arrive
at high rate, e.g. if you lean on some key, because stopping redisplay
in the middle (when this variable is nil) forces more expensive
updates later on, and Emacs appears to be unable to keep up.
** The behavior of <TAB> for active regions in Text mode has changed.
-In Text and related modes, typing <TAB> (`indent-for-tab-command')
+In Text and related modes, typing <TAB> ('indent-for-tab-command')
when the region is active causes Emacs to indent all the lines in the
region, aligning them with the line previous to the first line in the
region (or with the left margin if there is no previous line).
-** When `occur' is called with a prefix argument, matching strings are
-collected into the `*Occur*' buffer without line numbers. If there
-are parenthesized subexpressions in the specified regexp, `occur'
+** When 'occur' is called with a prefix argument, matching strings are
+collected into the '*Occur*' buffer without line numbers. If there
+are parenthesized subexpressions in the specified regexp, 'occur'
reads replacement text that may contain \\& and \\N whose convention
-follows `replace-match'.
+follows 'replace-match'.
\f
* Changes in Specialized Modes and Packages in Emacs 24.1
** BibTeX mode
*** BibTeX mode now supports biblatex.
-Use the variable `bibtex-dialect' to select different BibTeX dialects.
-`bibtex-entry-field-alist' is now an obsolete alias for
-`bibtex-BibTeX-entry-alist'.
+Use the variable 'bibtex-dialect' to select different BibTeX dialects.
+'bibtex-entry-field-alist' is now an obsolete alias for
+'bibtex-BibTeX-entry-alist'.
-*** New command `bibtex-search-entries', bound to C-c C-a.
+*** New command 'bibtex-search-entries', bound to C-c C-a.
-*** New `bibtex-entry-format' option `sort-fields', disabled by default.
+*** New 'bibtex-entry-format' option 'sort-fields', disabled by default.
-*** New variable `bibtex-search-entry-globally'.
+*** New variable 'bibtex-search-entry-globally'.
** Browse-url
-*** New option `browse-url-mailto-function' specifies how to handle "mailto:"s.
+*** New option 'browse-url-mailto-function' specifies how to handle "mailto:"s.
*** The default browser used by the package is now the "xdg-open" program,
on platforms that support it. This calls your desktop's preferred browser.
*** New option to highlight selections using faces.
-*** `calc-histogram' has the option of using a vector to determine the bins.
+*** 'calc-histogram' has the option of using a vector to determine the bins.
*** New "O" option prefix.
-*** Use the "O" prefix to "d r" (`calc-radix') to turn on twos-complement mode.
+*** Use the "O" prefix to "d r" ('calc-radix') to turn on twos-complement mode.
** Calendar, Diary, and Appt
*** Diary entries can contain non-printing "comments".
-See the variable `diary-comment-start'.
+See the variable 'diary-comment-start'.
*** Appointments can specify their individual warning times.
-See the variable `appt-warning-time-regexp'.
+See the variable 'appt-warning-time-regexp'.
-*** The function specified by `appt-disp-window-function' may be passed
+*** The function specified by 'appt-disp-window-function' may be passed
lists of arguments if multiple appointments are due at similar times.
If you are using a custom function for this, you should update it.
-*** New function `diary-hebrew-birthday'.
+*** New function 'diary-hebrew-birthday'.
-*** Elements of `calendar-day-abbrev-array' and `calendar-month-abbrev-array'
+*** Elements of 'calendar-day-abbrev-array' and 'calendar-month-abbrev-array'
may no longer be nil, but must all be strings.
*** The obsolete (since Emacs 22.1) method of enabling the appt
-package by adding `appt-make-list' to `diary-hook' has been removed.
-Use `appt-activate' instead.
+package by adding 'appt-make-list' to 'diary-hook' has been removed.
+Use 'appt-activate' instead.
*** Some appt variables (obsolete since Emacs 22.1) have been removed:
appt-issue-message (use the function appt-activate)
*** Java Mode now supports Java 5.0 (Tiger) and 6 (Mustang).
-*** `c-beginning-of-defun' and `c-end-of-defun' now respect nested scopes.
+*** 'c-beginning-of-defun' and 'c-end-of-defun' now respect nested scopes.
Thus C-M-a will, by default, go to the beginning of the immediate function,
not the top level.
** Compilation mode
*** Compilation mode can be used without Font Lock mode.
-`compilation-parse-errors-function' is now obsolete.
+'compilation-parse-errors-function' is now obsolete.
-*** New variable `compilation-filter-start', which is bound while
-`compilation-filter-hook' runs. It records the start position of the
-text inserted by `compilation-filter'.
+*** New variable 'compilation-filter-start', which is bound while
+'compilation-filter-hook' runs. It records the start position of the
+text inserted by 'compilation-filter'.
-*** `compilation-error-screen-columns' and `compilation-first-column'
+*** 'compilation-error-screen-columns' and 'compilation-first-column'
are obeyed in the editing buffer. So programming language modes can
set them, whereas previously only the value in the *Compilation*
buffer was used.
** Customize
*** Customize buffers now contain a search field.
-The search is performed using `customize-apropos'.
-To turn off the search field, set `custom-search-field' to nil.
+The search is performed using 'customize-apropos'.
+To turn off the search field, set 'custom-search-field' to nil.
*** Options in customize group buffers start out hidden if not customized.
Use the arrow to the left of the option name to toggle visibility.
-*** custom-buffer-sort-alphabetically now defaults to t.
+*** 'custom-buffer-sort-alphabetically' now defaults to t.
*** The color widget now has a "Choose" button, which allows you to
-choose a color via `list-colors-display'.
+choose a color via 'list-colors-display'.
** D-Bus
*** It is now possible to access buses other than the default system
or session bus.
-*** The `dbus-register-method' and `dbus-register-property' functions
+*** The 'dbus-register-method' and 'dbus-register-property' functions
optionally do not register names.
-*** The new function `dbus-register-service' registers a known service
+*** The new function 'dbus-register-service' registers a known service
name on a D-Bus without also registering a property or a method.
** Dired-x
-*** C-x C-j (`dired-jump') and C-x 4 C-j (`dired-jump-other-window'),
+*** C-x C-j ('dired-jump') and C-x 4 C-j ('dired-jump-other-window'),
if called with a prefix argument, read a file name from the minibuffer
instead of using the current buffer.
** ERC changes
-*** New options `erc-autojoin-timing' and `erc-autojoin-delay',
+*** New options 'erc-autojoin-timing' and 'erc-autojoin-delay',
controlling attempts to autojoin a channel.
-*** New variable `erc-coding-system-precedence': If we use `undecided'
+*** New variable 'erc-coding-system-precedence': If we use 'undecided'
as the server coding system, this variable will then be consulted.
The default is to decode strings that can be decoded as utf-8 as
-utf-8, and do the normal `undecided' decoding for the rest.
+utf-8, and do the normal 'undecided' decoding for the rest.
** Eshell changes
-*** The default value of `eshell-directory-name' has changed
-to be an "eshell" directory in `user-emacs-directory'.
+*** The default value of 'eshell-directory-name' has changed
+to be an "eshell" directory in 'user-emacs-directory'.
The old "~/.eshell/" directory is still used if it exists, though.
** gdb-mi
** Image mode
-*** RET (`image-toggle-animation') toggles animation, if applicable.
-Animation plays once, unless the option `image-animate-loop' is non-nil.
+*** RET ('image-toggle-animation') toggles animation, if applicable.
+Animation plays once, unless the option 'image-animate-loop' is non-nil.
** Info
buffers, and don't remember the name of the buffer visiting the manual
you want to consult.) Otherwise, it loads and displays the manual.
-*** `e' is now bound to `end-of-buffer' rather than to `Info-edit'.
+*** 'e' is now bound to 'end-of-buffer' rather than to 'Info-edit'.
This is for compatibility with the stand-alone Info reader program,
-and also because `Info-edit' is a rarely used command that is disabled
+and also because 'Info-edit' is a rarely used command that is disabled
by default.
** Mail mode changes (not Message mode)
** mpc.el: Can use pseudo tags of the form tag1|tag2 as a union of two tags.
-** nXML mode no longer binds C-RET to `nxml-complete'.
-Completion is now performed via `completion-at-point', bound to C-M-i
-or M-TAB. If `nxml-bind-meta-tab-to-complete-flag' is non-nil (the
+** nXML mode no longer binds C-RET to 'nxml-complete'.
+Completion is now performed via 'completion-at-point', bound to C-M-i
+or M-TAB. If 'nxml-bind-meta-tab-to-complete-flag' is non-nil (the
default), this performs tag completion.
** Org mode has been updated to version 7.8.09.
** Rmail
-*** The command `rmail-epa-decrypt' decrypts OpenPGP data
+*** The command 'rmail-epa-decrypt' decrypts OpenPGP data
in the Rmail incoming message.
-*** The variable `rmail-message-filter' no longer has any effect.
+*** The variable 'rmail-message-filter' no longer has any effect.
This change was made in Emacs 23.1 but was not advertised at the time.
-Try using `rmail-show-message-hook' instead.
+Try using 'rmail-show-message-hook' instead.
** Shell mode
*** M-x shell prompts for the shell path name if the default directory
is a remote file name and neither the environment variable $ESHELL nor
-the variable `explicit-shell-file-name' is set.
+the variable 'explicit-shell-file-name' is set.
-*** TAB is now bound to the standard `completion-at-point' command,
+*** TAB is now bound to the standard 'completion-at-point' command,
which now implements the pcomplete rules for shell command completion.
** SMTPmail
*** SMTPmail now uses encrypted connections (via STARTTLS) by default
if the mail server supports them. This uses either built-in GnuTLS
-support, or the starttls.el library. Customize `smtpmail-stream-type'
+support, or the starttls.el library. Customize 'smtpmail-stream-type'
to change this.
-*** The variable `smtpmail-auth-credentials' has been removed.
+*** The variable 'smtpmail-auth-credentials' has been removed.
By default, the information is now stored in the file ~/.authinfo.
This was the default value of smtpmail-auth-credentials. If you had
customized smtpmail-auth-credentials to a list of user names and
See the auth-source manual for more information, e.g. on encrypting
the credentials file.
-*** The variable `smtpmail-starttls-credentials' has been removed.
+*** The variable 'smtpmail-starttls-credentials' has been removed.
If you had that set, you need to put
machine smtp.whatever.foo port 25 key "~/.my_smtp_tls.key" cert "~/.my_smtp_tls.cert"
in your ~/.authinfo file instead.
*** SMTPmail defaults to using the address in the From: header as the
-SMTP MAIL FROM envelope. To override this, set `mail-envelope-from'
+SMTP MAIL FROM envelope. To override this, set 'mail-envelope-from'
to the address you wish to use instead.
** SQL mode
-*** New options `sql-port', `sql-connection-alist', `sql-send-terminator',
-and `sql-oracle-scan-on'.
+*** New options 'sql-port', 'sql-connection-alist', 'sql-send-terminator',
+and 'sql-oracle-scan-on'.
*** New options controlling prompting for login parameters.
-Each supported product has a custom variable `sql-*-login-params',
+Each supported product has a custom variable 'sql-*-login-params',
which is a list of the parameters to be prompted for before a
connection is established.
-*** The command `sql-product-interactive' now takes a prefix argument,
+*** The command 'sql-product-interactive' now takes a prefix argument,
which causes it to prompt for an SQL product.
*** Product-specific SQL interactive commands now take prefix arguments.
-These commands (`sql-sqlite', `sql-postgres', `sql-mysql', etc.),
+These commands ('sql-sqlite', 'sql-postgres', 'sql-mysql', etc.),
given a prefix argument, prompt for a name for the SQL interactive
-buffer. This reduces the need for calling `sql-rename-buffer'.
+buffer. This reduces the need for calling 'sql-rename-buffer'.
*** SQL interactive modes suppress command continuation prompts, and
replace tabs with spaces. The first change impacts multiple line SQL
statements entered with C-j between each line, statements yanked into
-the buffer and statements sent with `sql-send-*' functions. The
+the buffer and statements sent with 'sql-send-*' functions. The
second prevents the MySQL and Postgres interpreters from listing
-object name completions when sent text via `sql-send-*' functions.
+object name completions when sent text via 'sql-send-*' functions.
-*** New command `sql-connect' starts a predefined SQLi session,
-using the login parameters from `sql-connection-alist'.
+*** New command 'sql-connect' starts a predefined SQLi session,
+using the login parameters from 'sql-connection-alist'.
*** New "Save Connection" menu item in SQLi buffers.
This gathers the login params specified for the SQLi session, if it
*** The following access methods are discontinued: "ssh1_old",
"ssh2_old", "scp1_old", "scp2_old", "imap", "imaps" and "fish".
-*** The user option `remote-file-name-inhibit-cache' controls whether
+*** The user option 'remote-file-name-inhibit-cache' controls whether
remote file attributes are cached for better performance.
-*** The option `ange-ftp-binary-file-name-regexp' has changed its
+*** The option 'ange-ftp-binary-file-name-regexp' has changed its
default value to "".
-*** Handlers for `file-selinux-context' and `set-file-selinux-context'
+*** Handlers for 'file-selinux-context' and 'set-file-selinux-context'
for remote machines which support SELinux.
-** New function `url-queue-retrieve', which behaves like url-retrieve,
-but with limits (`url-queue-parallel-processes', `url-queue-timeout') on
+** New function 'url-queue-retrieve', which behaves like 'url-retrieve',
+but with limits ('url-queue-parallel-processes', 'url-queue-timeout') on
the degree of parallelism.
** VC and related modes
*** Support for pulling on distributed version control systems.
-The command C-x v + (`vc-pull') runs a "pull" operation, if it is
+The command C-x v + ('vc-pull') runs a "pull" operation, if it is
supported (currently with Bzr, Git, and Mercurial), to update the
current branch and working tree. A prefix argument means to prompt
the user for specifics, e.g. a pull location.
-*** `vc-update' is now an alias for `vc-pull'.
+*** 'vc-update' is now an alias for 'vc-pull'.
*** Support for merging on distributed version control systems.
-The command C-x v m (`vc-merge') now runs a "merge" operation, if it
+The command C-x v m ('vc-merge') now runs a "merge" operation, if it
is supported (currently with Bzr, Git, and Mercurial), to merge
changes from another branch into the current one. It prompts for
specifics, e.g. a merge source.
-*** New option `vc-revert-show-diff' controls whether `vc-revert'
+*** New option 'vc-revert-show-diff' controls whether 'vc-revert'
shows a diff while querying the user. It defaults to t.
*** Log entries in some Log View buffers can be toggled to display a
longer description by typing RET (log-view-toggle-entry-display).
This is currently supported for Bzr, Git, and Mercurial (to support
-another backend, define a `log-view-expanded-log-entry-function').
-In the Log View buffers made by C-x v L (`vc-print-root-log'), you can
+another backend, define a 'log-view-expanded-log-entry-function').
+In the Log View buffers made by C-x v L ('vc-print-root-log'), you can
use this to display the full log entry for the revision at point.
-*** New command `vc-ediff' allows visual comparison of two revisions
-of a file similar to `vc-diff', but using ediff backend.
+*** New command 'vc-ediff' allows visual comparison of two revisions
+of a file similar to 'vc-diff', but using ediff backend.
-*** The option `vc-initial-comment' was removed in Emacs 23.2, but
+*** The option 'vc-initial-comment' was removed in Emacs 23.2, but
this was not advertised at the time.
-*** `vc-toggle-read-only' is an obsolete alias for `toggle-read-only'.
-Since Emacs 23, it has done the same thing as `toggle-read-only', but
+*** 'vc-toggle-read-only' is an obsolete alias for 'toggle-read-only'.
+Since Emacs 23, it has done the same thing as 'toggle-read-only', but
this was not advertised at the time.
** Obsolete modes
*** partial-completion-mode (complete.el) is obsolete.
You can get a comparable behavior with:
-(setq completion-styles '(partial-completion initials))
-(setq completion-pcm-complete-word-inserts-delimiters t)
+ (setq completion-styles '(partial-completion initials))
+ (setq completion-pcm-complete-word-inserts-delimiters t)
*** pc-mode.el is obsolete (CUA mode is much more comprehensive).
** Miscellaneous
-*** The Landmark game is now invoked with `landmark', not `lm'.
+*** The Landmark game is now invoked with 'landmark', not 'lm'.
Its functions and variables have been similarly renamed.
-*** In `ido-file-completion-map', C-v is no longer bound to `ido-toggle-vc'.
+*** In 'ido-file-completion-map', C-v is no longer bound to 'ido-toggle-vc'.
(This interfered with cua-mode.)
*** f90.el has some support for Fortran 2008 syntax.
-*** `copyright-fix-years' can optionally convert consecutive years to ranges.
+*** 'copyright-fix-years' can optionally convert consecutive years to ranges.
-*** New command `nato-region' converts text to NATO phonetic alphabet.
+*** New command 'nato-region' converts text to NATO phonetic alphabet.
\f
* New Modes and Packages in Emacs 24.1
** Occur Edit mode applies edits made in *Occur* buffers to the
original buffers. It is bound to "e" in Occur mode.
-** New global minor mode electric-pair-mode.
+** New global minor mode 'electric-pair-mode'.
When enabled, typing an open parenthesis automatically inserts the
matching closing one.
-** New global minor mode electric-indent-mode.
+** New global minor mode 'electric-indent-mode'.
When enabled, typing certain characters triggers reindentation.
-Major modes wishing to use this can set electric-indent-chars or
-electric-indent-functions.
+Major modes wishing to use this can set 'electric-indent-chars' or
+'electric-indent-functions'.
-** New global minor mode electric-layout-mode.
+** New global minor mode 'electric-layout-mode'.
When enabled, typing certain characters automatically inserts newlines.
-Major modes wishing to use this can set electric-layout-rules.
+Major modes wishing to use this can set 'electric-layout-rules'.
** tabulated-list.el provides a generic major mode for tabulated data,
from which other modes can be derived.
-** pcase.el provides the ML-style pattern matching macro `pcase'.
+** pcase.el provides the ML-style pattern matching macro 'pcase'.
** secrets.el is an implementation of the Secret Service API, an
interface to password managers like GNOME Keyring or KDE Wallet. The
Secret Service API requires D-Bus for communication. The command
-`secrets-show-secrets' offers a buffer with a visualization of the
+'secrets-show-secrets' offers a buffer with a visualization of the
secrets.
** notifications.el provides an implementation of the Desktop
** New emacs-lock.el package.
The previous version has been moved to obsolete/old-emacs-lock.el.
-Now, there is a proper minor mode `emacs-lock-mode'. Protection
+Now, there is a proper minor mode 'emacs-lock-mode'. Protection
against exiting Emacs and killing the buffer can be set separately.
The mechanism for automatically turning off protection for buffers
with dead inferior processes has been generalized.
** Passing a nil argument to a minor mode function call now ENABLES
the minor mode unconditionally. This is so that you can write e.g.
- (add-hook 'text-mode-hook 'foo-mode)
+ (add-hook 'text-mode-hook #'foo-mode)
to enable foo-mode in Text mode buffers, removing the need for
-`turn-on-foo-mode' style functions. This affects all mode commands
-defined by `define-minor-mode'. If called interactively, the mode
+'turn-on-foo-mode' style functions. This affects all mode commands
+defined by 'define-minor-mode'. If called interactively, the mode
command still toggles the minor mode.
-** The return value of `backup-buffer' has changed.
+** The return value of 'backup-buffer' has changed.
It is now a list of three elements, where the second element is a list
describing the original file's SELinux context. If Emacs or the
system lacks SELinux support, the context list is (nil nil nil nil).
See "Basic SELinux support" above, under "Changes in Emacs 24.1".
-** `char-direction-table' and the `char-direction' function were deleted.
+** 'char-direction-table' and the 'char-direction' function were deleted.
They were buggy and inferior to the new support of bidirectional
editing introduced in Emacs 24. If you need the bidirectional
-properties of a character, use `get-char-code-property' with the last
-argument `bidi-class'.
+properties of a character, use 'get-char-code-property' with the last
+argument 'bidi-class'.
-** `copy-directory' now copies the source directory as a subdirectory
+** 'copy-directory' now copies the source directory as a subdirectory
of the target directory, if the latter is an existing directory. The
new optional arg COPY-CONTENTS, if non-nil, makes the function copy
the contents directly into a pre-existing target directory.
you should write [(control ?,)] and [(control ?')], which will work in
older Emacsen too.
-** The macro `eval-at-startup' was removed in Emacs 23.2, but this
-was not advertised at the time. The function `custom-initialize-delay'
+** The macro 'eval-at-startup' was removed in Emacs 23.2, but this
+was not advertised at the time. The function 'custom-initialize-delay'
replaced all known uses.
-** `view-buffer' now treats special mode-class in the same way that
-`view-file' has since Emacs 22 (i.e. it won't enable View mode if the
+** 'view-buffer' now treats special mode-class in the same way that
+'view-file' has since Emacs 22 (i.e. it won't enable View mode if the
major mode is special).
** Menu and tool bar changes
-*** During startup, Emacs no longer adds entries for `menu-bar-lines'
-and `tool-bar-lines' to `default-frame-alist' and `initial-frame-alist'.
-With these alist entries omitted, `make-frame' checks the value of the
-variable `menu-bar-mode'/`tool-bar-mode' to determine whether to create
+*** During startup, Emacs no longer adds entries for 'menu-bar-lines'
+and 'tool-bar-lines' to 'default-frame-alist' and 'initial-frame-alist'.
+With these alist entries omitted, 'make-frame' checks the value of the
+variable 'menu-bar-mode'/'tool-bar-mode' to determine whether to create
a menu-bar or tool-bar, respectively. If the alist entries are added,
-they override the value of `menu-bar-mode'/`tool-bar-mode'.
+they override the value of 'menu-bar-mode'/'tool-bar-mode'.
*** The menu bar bindings's caches are not used any more.
Use (where-is-internal <def> nil t) instead.
** Regions created by mouse dragging are now normal active regions,
similar to those created by shift-selection (see Selection changes
above). In previous Emacs versions, these regions were delineated by
-`mouse-drag-overlay'; that variable has been removed.
+'mouse-drag-overlay'; that variable has been removed.
-** The fourth argument of `filter-buffer-substring' has been removed.
+** The fourth argument of 'filter-buffer-substring' has been removed.
If you want to remove text properties from the final result, simply
pass the result through substring-no-properties.
-** cl.el no longer provides `cl-19'.
+** cl.el no longer provides 'cl-19'.
** The following obsolete functions and aliases have been removed
(the appropriate new function is given in parentheses; "not needed"
means you can just remove all calls to the function in question):
-*** `comint-kill-output' (`comint-delete-output')
-*** `decompose-composite-char' (`char-to-string')
-*** `outline-visible' (`outline-invisible-p')
-*** `internal-find-face' (`facep')
-*** `internal-get-face' (`facep and check-face')
-*** `frame-update-faces' (not needed)
-*** `frame-update-face-colors' (`frame-set-background-mode')
-*** `x-frob-font-weight' and `x-frob-font-slant' (`make-face-*' functions)
-*** `x-make-font-bold' and `x-make-font-demibold' (`make-face-bold')
-*** `x-make-font-italic' and `x-make-font-oblique' (`make-face-italic')
-*** `x-make-font-bold-italic' (`make-face-bold-italic')
-*** `x-make-font-unbold' (`make-face-unbold')
-*** `x-make-font-unitalic' (`make-face-unitalic')
-*** `mldrag-drag-mode-line' (`mouse-drag-mode-line')
-*** `mldrag-drag-vertical-line' (`mouse-drag-vertical-line')
-*** `iswitchb-default-keybindings' (`iswitchb-mode')
-*** `char-bytes' (== 1)
-*** `isearch-return-char' (`isearch-printing-char')
-*** `make-local-hook' (not needed)
-*** `set-screen-height' (`set-frame-height')
-*** `set-screen-width' (`set-frame-width')
+*** 'comint-kill-output' ('comint-delete-output')
+*** 'decompose-composite-char' ('char-to-string')
+*** 'outline-visible' ('outline-invisible-p')
+*** 'internal-find-face' ('facep')
+*** 'internal-get-face' ('facep' and 'check-face')
+*** 'frame-update-faces' (not needed)
+*** 'frame-update-face-colors' ('frame-set-background-mode')
+*** 'x-frob-font-weight' and 'x-frob-font-slant' ('make-face-*' functions)
+*** 'x-make-font-bold' and 'x-make-font-demibold' ('make-face-bold')
+*** 'x-make-font-italic' and 'x-make-font-oblique' ('make-face-italic')
+*** 'x-make-font-bold-italic' ('make-face-bold-italic')
+*** 'x-make-font-unbold' ('make-face-unbold')
+*** 'x-make-font-unitalic' ('make-face-unitalic')
+*** 'mldrag-drag-mode-line' ('mouse-drag-mode-line')
+*** 'mldrag-drag-vertical-line' ('mouse-drag-vertical-line')
+*** 'iswitchb-default-keybindings' ('iswitchb-mode')
+*** 'char-bytes' (== 1)
+*** 'isearch-return-char' ('isearch-printing-char')
+*** 'make-local-hook' (not needed)
+*** 'set-screen-height' ('set-frame-height')
+*** 'set-screen-width' ('set-frame-width')
** The following obsolete variables and varaliases have been removed
(the appropriate new variable is given in parentheses):
-*** `checkdoc-minor-keymap' (`checkdoc-minor-mode-map')
-*** `vc-header-alist' (`vc-BACKEND-header')
-*** `directory-sep-char' (== ?/)
-*** `font-lock-defaults-alist' (`font-lock-defaults')
-*** `e' (`float-e').
+*** 'checkdoc-minor-keymap' ('checkdoc-minor-mode-map')
+*** 'vc-header-alist' ('vc-BACKEND-header')
+*** 'directory-sep-char' (== ?/)
+*** 'font-lock-defaults-alist' ('font-lock-defaults')
+*** 'e' ('float-e').
** The following obsolete files were removed:
sc.el, x-menu.el, rnews.el, rnewspost.el
** The format of the finder-inf.el file has changed, since the Finder
mechanism is now based on the package system. The variable
-`finder-package-info' is replaced by `package--builtins' and
-`finder-keywords-hash'.
+'finder-package-info' is replaced by 'package--builtins' and
+'finder-keywords-hash'.
-** When generating autoloads, `update-directory-autoloads' no longer
-assumes every inspected file is in your `load-path'. It instead
-generates relative names according to the current `load-path'.
+** When generating autoloads, 'update-directory-autoloads' no longer
+assumes every inspected file is in your 'load-path'. It instead
+generates relative names according to the current 'load-path'.
\f
* Lisp Changes in Emacs 24.1
** Code can now use lexical scoping by default instead of dynamic scoping.
-The `lexical-binding' variable enables lexical scoping for local
+The 'lexical-binding' variable enables lexical scoping for local
variables. It is typically set via a file-local variable in the first
line of the file, in which case it applies to all the code in that
file.
-*** `eval' takes a new optional argument `lexical' to choose the new lexical
+*** 'eval' takes a new optional argument 'lexical' to choose the new lexical
binding instead of the old dynamic binding mode.
*** Lexically scoped interpreted functions are represented with a new form
of function value which looks like (closure ENV ARGS &rest BODY).
-*** New macro `letrec' to define recursive local functions.
+*** New macro 'letrec' to define recursive local functions.
-*** `defvar' and `defconst' now mark the variable as special (dynamic).
-So do `defcustom' and other forms that call `defvar' as a subroutine.
+*** 'defvar' and 'defconst' now mark the variable as special (dynamic).
+So do 'defcustom' and other forms that call 'defvar' as a subroutine.
-*** New function `special-variable-p' to check whether a variable is
+*** New function 'special-variable-p' to check whether a variable is
declared as dynamically bound.
*** The form ((lambda ...) ...) is deprecated.
** Changes for bidirectional display and editing
-*** New function `current-bidi-paragraph-direction'.
+*** New function 'current-bidi-paragraph-direction'.
This returns the base direction of the paragraph at point.
-*** New function `bidi-string-mark-left-to-right'.
+*** New function 'bidi-string-mark-left-to-right'.
Given a string containing characters from right-to-left scripts, this
function returns another string which can be safely inserted into a
buffer, such that any following text will be always displayed to the
of any window including internal windows (windows not associated with a
buffer) in the window tree.
-**** New function `window-valid-p' gives non-nil for live and internal
+**** New function 'window-valid-p' gives non-nil for live and internal
windows.
**** Window manipulation can deal with internal windows.
-Many window handling functions like `split-window', `delete-window', or
-`delete-other-windows' as well as the window resizing functions can now
+Many window handling functions like 'split-window', 'delete-window', or
+'delete-other-windows' as well as the window resizing functions can now
act on any window including internal ones.
*** window-total-height/-width vs window-body-height/-width.
-The function `window-height' has been renamed to `window-total-height'
-and `window-width' has been renamed to `window-body-width'. The old
-names are provided as aliases. Two new functions `window-total-width'
-and `window-body-height' are provided.
+The function 'window-height' has been renamed to 'window-total-height'
+and 'window-width' has been renamed to 'window-body-width'. The old
+names are provided as aliases. Two new functions 'window-total-width'
+and 'window-body-height' are provided.
*** Window parameters specific to window handling functions.
For each window you can specify a parameter to override the default
-behavior of a number of functions like `split-window', `delete-window'
-and `delete-other-windows'. The variable `ignore-window-parameters'
+behavior of a number of functions like 'split-window', 'delete-window'
+and 'delete-other-windows'. The variable 'ignore-window-parameters'
allows to ignore processing such parameters.
-*** New semantics of third argument of `split-window'.
-The third argument of `split-window' has been renamed to SIDE and can be
+*** New semantics of third argument of 'split-window'.
+The third argument of 'split-window' has been renamed to SIDE and can be
set to any of the values 'below, 'right, 'above, or 'left to make the
new window appear on the corresponding side of the window that shall be
-split. Any other value of SIDE will cause `split-window' to split the
+split. Any other value of SIDE will cause 'split-window' to split the
window into two side-by-side windows as before.
*** Window resizing functions.
-A new standard function for resizing windows called `window-resize' has
+A new standard function for resizing windows called 'window-resize' has
been introduced. This and all other functions for resizing windows no
longer delete any windows when they become too small.
*** Deleting the selected window now selects the most recently selected
live window on that frame instead.
-*** `adjust-window-trailing-edge' adjustments.
-`adjust-window-trailing-edge' can now deal with fixed-size windows and
+*** 'adjust-window-trailing-edge' adjustments.
+'adjust-window-trailing-edge' can now deal with fixed-size windows and
is able to resize other windows if a window adjacent to the trailing
edge cannot be shrunk any more. This makes its behavior more similar to
that of Emacs 21 without compromising, however, its inability to delete
positions. This also means that the same buffer may be automatically
shown twice even if it already appears in another window.
-*** `switch-to-buffer' has a new optional argument FORCE-SAME-WINDOW,
+*** 'switch-to-buffer' has a new optional argument FORCE-SAME-WINDOW,
which if non-nil requires the buffer to be displayed in the currently
selected window, signaling an error otherwise. If nil, another window
can be used, e.g. if the selected one is strongly dedicated.
-*** `split-window-vertically' and `split-window-horizontally' renamed
-to `split-window-below' and `split-window-right' respectively.
+*** 'split-window-vertically' and 'split-window-horizontally' renamed
+to 'split-window-below' and 'split-window-right' respectively.
The old names are kept as aliases.
*** Display actions
-**** The second arg to `display-buffer' and `pop-to-buffer' is now
+**** The second arg to 'display-buffer' and 'pop-to-buffer' is now
named ACTION, and takes a display action of the same form as
-`display-buffer-base-action' (see Changes, above). A non-nil,
+'display-buffer-base-action' (see Changes, above). A non-nil,
non-list value is treated specially, as the old meaning.
-**** New variable `display-buffer-overriding-action'.
+**** New variable 'display-buffer-overriding-action'.
-**** The procedure of `display-buffer' etc. to choose a window is
-determined by combining `display-buffer-overriding-action',
-`display-buffer-alist', the ACTION arg, `display-buffer-base-action',
-and `display-buffer-fallback-action'. The second and fourth of these
+**** The procedure of 'display-buffer' etc. to choose a window is
+determined by combining 'display-buffer-overriding-action',
+'display-buffer-alist', the ACTION arg, 'display-buffer-base-action',
+and 'display-buffer-fallback-action'. The second and fourth of these
are user-customizable variables.
-See the docstring of `display-buffer' for details.
+See the docstring of 'display-buffer' for details.
-*** New functions `window-state-get' and `window-state-put'.
+*** New functions 'window-state-get' and 'window-state-put'.
These functions allow to save and restore the state of an arbitrary
frame or window as an Elisp object.
** Completion
-*** New variable `completion-extra-properties' used to specify extra
+*** New variable 'completion-extra-properties' used to specify extra
properties of the current completion:
- :annotation-function, same as the old completion-annotate-function.
- :exit-function, function to call after completion took place.
-*** Functions on `completion-at-point-functions' can return any of the
-properties valid for `completion-extra-properties'.
+*** Functions on 'completion-at-point-functions' can return any of the
+properties valid for 'completion-extra-properties'.
-*** `completion-annotate-function' is obsolete.
+*** 'completion-annotate-function' is obsolete.
-*** New `metadata' method for completion tables. The metadata thus returned
-can specify various details of the data returned by `all-completions':
-- `category' is the kind of objects returned (e.g., `buffer', `file', ...),
+*** New 'metadata' method for completion tables. The metadata thus returned
+can specify various details of the data returned by 'all-completions':
+- 'category' is the kind of objects returned (e.g., 'buffer', 'file', ...),
used to select a style in completion-category-overrides.
-- `annotation-function' to add annotations in *Completions*.
-- `display-sort-function' to specify how to sort entries in *Completions*.
-- `cycle-sort-function' to specify how to sort entries when cycling.
+- 'annotation-function' to add annotations in *Completions*.
+- 'display-sort-function' to specify how to sort entries in *Completions*.
+- 'cycle-sort-function' to specify how to sort entries when cycling.
-*** `minibuffer-local-filename-must-match-map' is not used any more.
-Instead, the bindings in `minibuffer-local-filename-completion-map'
-are combined with `minibuffer-local-must-match-map'.
+*** 'minibuffer-local-filename-must-match-map' is not used any more.
+Instead, the bindings in 'minibuffer-local-filename-completion-map'
+are combined with 'minibuffer-local-must-match-map'.
-*** New variable `completing-read-function' allows overriding the
-behavior of `completing-read'.
+*** New variable 'completing-read-function' allows overriding the
+behavior of 'completing-read'.
-** `glyphless-char-display' can now distinguish between graphical and
+** 'glyphless-char-display' can now distinguish between graphical and
text terminal display, via a char-table entry that is a cons cell.
-** `pre-command-hook'/`post-command-hook' are not reset to nil on error.
+** 'pre-command-hook'/'post-command-hook' are not reset to nil on error.
Instead, the offending function is removed.
** New hook types
-*** New function `run-hook-wrapped' for running an abnormal hook by
+*** New function 'run-hook-wrapped' for running an abnormal hook by
passing the hook functions as arguments to a "wrapping" function.
-Like `run-hook-with-args-until-success', it stops at the first
+Like 'run-hook-with-args-until-success', it stops at the first
non-nil return value.
-*** New macro `with-wrapper-hook' for running an abnormal hook as a
+*** New macro 'with-wrapper-hook' for running an abnormal hook as a
set of "wrapping" filters, similar to around advice.
(A version of this macro was actually added in Emacs 23.2 but was not
advertised at the time.)
** Debugger changes
-*** New macro `condition-case-unless-debug'.
+*** New macro 'condition-case-unless-debug'.
(This was actually added in Emacs 23.1 as condition-case-no-debug, but
not advertised)
-*** The macro `with-demoted-errors'.
+*** The macro 'with-demoted-errors'.
It was also added in Emacs 23.1, but not advertised.
-*** Variable `stack-trace-on-error' removed.
+*** Variable 'stack-trace-on-error' removed.
*** The debugger can now "continue" from an error, which means it will
jump to the error handler as if the debugger had not been invoked
instead of jumping all the way to the top-level.
-*** Set `debug-on-event' to enter the debugger on events like SIGUSR1.
-This can be useful when `inhibit-quit' is set.
+*** Set 'debug-on-event' to enter the debugger on events like SIGUSR1.
+This can be useful when 'inhibit-quit' is set.
-** The new function `server-eval-at' allows evaluation of Lisp forms on
+** The new function 'server-eval-at' allows evaluation of Lisp forms on
named Emacs server instances.
-** `call-process' and `call-process-region' allow a `(:file "file")' spec
+** 'call-process' and 'call-process-region' allow a '(:file "file")' spec
to redirect STDOUT to a file.
-** The function `format-time-string' now supports the %N directive,
+** The function 'format-time-string' now supports the %N directive,
for higher-resolution time stamps.
** New input reading functions
-*** New function `read-char-choice' reads a restricted set of
+*** New function 'read-char-choice' reads a restricted set of
characters, discarding any inputs not inside the set.
-*** The command `read-color' now requires a match for a color name
+*** The command 'read-color' now requires a match for a color name
or RGB triplet, instead of signaling an error if the user provides
invalid input.
-**** `facemenu-read-color' is now an alias for `read-color'.
+**** 'facemenu-read-color' is now an alias for 'read-color'.
-** `image-library-alist' is renamed to `dynamic-library-alist'.
+** 'image-library-alist' is renamed to 'dynamic-library-alist'.
The variable is now used to load all kind of supported dynamic libraries,
not just image libraries. The previous name is still available as an
obsolete alias.
** Syntax parsing changes
-*** New variable `syntax-propertize-function'.
-This replaces `font-lock-syntactic-keywords' which is now obsolete.
+*** New variable 'syntax-propertize-function'.
+This replaces 'font-lock-syntactic-keywords' which is now obsolete.
This allows syntax-table properties to be set independently from font-lock:
-just call syntax-propertize to make sure the text is propertized.
+just call 'syntax-propertize' to make sure the text is propertized.
Together with this new variable come a new hook
-syntax-propertize-extend-region-functions, as well as two helper functions:
-syntax-propertize-via-font-lock to reuse old font-lock-syntactic-keywords
-as-is; and syntax-propertize-rules which provides a new way to specify
+'syntax-propertize-extend-region-functions', as well as two helper functions:
+'syntax-propertize-via-font-lock' to reuse old 'font-lock-syntactic-keywords'
+as-is; and 'syntax-propertize-rules' which provides a new way to specify
syntactic rules.
*** Syntax tables support a new "comment style c" additionally to style b.
-** New hook `post-self-insert-hook', run after `self-insert-command'.
+** New hook 'post-self-insert-hook', run after 'self-insert-command'.
** frame-local variables cannot be let-bound any more.
** Major and minor mode changes
-*** `set-auto-mode' now respects mode: local variables at the end of files,
+*** 'set-auto-mode' now respects mode: local variables at the end of files,
as well as those in the -*- line.
-*** `prog-mode' is a new major mode from which programming modes
+*** 'prog-mode' is a new major mode from which programming modes
should be derived.
-**** `prog-mode-hook' can be used to enable features for programming
-modes, e.g. (add-hook 'prog-mode-hook 'flyspell-prog-mode) to enable
+**** 'prog-mode-hook' can be used to enable features for programming
+modes, e.g. (add-hook 'prog-mode-hook #'flyspell-prog-mode) to enable
on-the-fly spell checking for comments and strings.
-*** New hook `change-major-mode-after-body-hook', run by
-`run-mode-hooks' just before any other mode hooks.
+*** New hook 'change-major-mode-after-body-hook', run by
+'run-mode-hooks' just before any other mode hooks.
*** Enabled globalized minor modes can be disabled in specific major modes.
If the global mode is global-FOO-mode, then run (FOO-mode -1) in the
major mode's hook, where FOO-mode toggles the mode on a per-buffer basis.
-*** `define-minor-mode' accepts new keywords :variable, :after-hook.
+*** 'define-minor-mode' accepts new keywords :variable, :after-hook.
** File-handling changes
-*** `delete-file' and `delete-directory' now accept optional arg TRASH.
-Trashing is performed if TRASH and `delete-by-moving-to-trash' are
+*** 'delete-file' and 'delete-directory' now accept optional arg TRASH.
+Trashing is performed if TRASH and 'delete-by-moving-to-trash' are
both non-nil. Interactively, TRASH defaults to t, unless a prefix
argument is supplied (see Trash changes, above).
-*** New file predicates: `file-equal-p', `file-in-directory-p'.
+*** New file predicates: 'file-equal-p', 'file-in-directory-p'.
-*** New function `file-size-human-readable'.
+*** New function 'file-size-human-readable'.
** Tool-bars can display separators.
Tool-bar separators are handled like menu separators in menu-bar maps,
-i.e. via menu entries of the form `(menu-item "--")'.
+i.e. via menu entries of the form '(menu-item "--")'.
** Image API
*** Animated images support (currently animated gifs only).
-**** `image-animated-p' returns non-nil if an image can be animated.
+**** 'image-animated-p' returns non-nil if an image can be animated.
-**** `image-animate' animates a supplied image spec.
+**** 'image-animate' animates a supplied image spec.
-**** `image-animate-timer' returns the timer object for an image that
+**** 'image-animate-timer' returns the timer object for an image that
is being animated.
-*** `image-extension-data' has been renamed to `image-metadata'.
+*** 'image-extension-data' has been renamed to 'image-metadata'.
The old name is an obsolete alias to the new one.
*** Image mode can view any image type that ImageMagick supports.
This requires Emacs to be built with ImageMagick support.
-**** New function `imagemagick-types', defined if ImageMagick support
+**** New function 'imagemagick-types', defined if ImageMagick support
is enabled, returns a list of image file extensions that your
ImageMagick installation supports.
-**** New function `imagemagick-register-types' enables ImageMagick
-image types in Image mode and in `create-image' and other helper
+**** New function 'imagemagick-register-types' enables ImageMagick
+image types in Image mode and in 'create-image' and other helper
functions.
-**** New option `imagemagick-types-inhibit' excludes certain
-ImageMagick image types from `imagemagick-register-types'.
+**** New option 'imagemagick-types-inhibit' excludes certain
+ImageMagick image types from 'imagemagick-register-types'.
**** With ImageMagick support, there are extra Image mode commands to
-resize and rotate images: `image-transform-fit-to-height',
-`image-transform-fit-to-width', `image-transform-set-rotation', and
-`image-transform-set-scale'.
+resize and rotate images: 'image-transform-fit-to-height',
+'image-transform-fit-to-width', 'image-transform-set-rotation', and
+'image-transform-set-scale'.
-** `compose-mail' now accepts an optional 8th arg, RETURN-ACTION, and
+** 'compose-mail' now accepts an optional 8th arg, RETURN-ACTION, and
passes it to the mail user agent function. This argument specifies an
action for returning to the caller after finishing with the mail. For
example, this is used by Rmail to optionally delete a mail window.
** XML and HTML parsing
If Emacs is compiled with libxml2 support, there are two new
-functions: `libxml-parse-html-region' (which parses "real world" HTML)
-and `libxml-parse-xml-region' (which parses XML). Both return an
+functions: 'libxml-parse-html-region' (which parses "real world" HTML)
+and 'libxml-parse-xml-region' (which parses XML). Both return an
Emacs Lisp parse tree.
** Networking and encryption changes
-*** `open-network-stream' can now be used to open an encrypted stream.
-It now accepts an optional `:type' parameter for initiating a TLS
+*** 'open-network-stream' can now be used to open an encrypted stream.
+It now accepts an optional ':type' parameter for initiating a TLS
connection, directly or via STARTTLS. To do STARTTLS, additional
-parameters (`:end-of-command', `:success', `:capabilities-command')
+parameters (':end-of-command', ':success', ':capabilities-command')
must also be supplied.
*** New library gnutls.el.
-The new function `gnutls-available-p' returns non-nil if Emacs is
+The new function 'gnutls-available-p' returns non-nil if Emacs is
built with GnuTLS support. The main entry points are
-`open-gnutls-stream' and `gnutls-negotiate'. It's easiest to use
-these functions through `open-network-stream', because that can
+'open-gnutls-stream' and 'gnutls-negotiate'. It's easiest to use
+these functions through 'open-network-stream', because that can
upgrade connections through STARTTLS opportunistically or use plain
-SSL, depending on your needs. For debugging, set `gnutls-log-level'
+SSL, depending on your needs. For debugging, set 'gnutls-log-level'
greater than 0.
-*** New primitive `secure-hash' that supports many secure hash algorithms:
+*** New primitive 'secure-hash' that supports many secure hash algorithms:
md5, sha1, sha2, sha224, sha256, sha384, and sha512. The lisp library
-sha1.el has been removed. The `sha1' feature is provided by default.
+sha1.el has been removed. The 'sha1' feature is provided by default.
** Isearch
-*** New hook `isearch-update-post-hook' that runs in `isearch-update'.
+*** New hook 'isearch-update-post-hook' that runs in 'isearch-update'.
** Progress reporters can now "spin".
-The MIN-VALUE and MAX-VALUE arguments of `make-progress-reporter' can
+The MIN-VALUE and MAX-VALUE arguments of 'make-progress-reporter' can
now be nil, or omitted. This makes a "non-numeric" reporter. Each
-time you call `progress-reporter-update' on that progress reporter,
+time you call 'progress-reporter-update' on that progress reporter,
with a nil or omitted VALUE argument, the reporter message is
displayed with a "spinning bar".
-** New variable `revert-buffer-in-progress-p' is true while a buffer is
-being reverted, even if the buffer has a local `revert-buffer-function'.
+** New variable 'revert-buffer-in-progress-p' is true while a buffer is
+being reverted, even if the buffer has a local 'revert-buffer-function'.
-** New variables `delayed-warnings-list' and `delayed-warnings-hook'.
+** New variables 'delayed-warnings-list' and 'delayed-warnings-hook'.
If delayed-warnings-list is non-nil, the command loop calls
-`delayed-warnings-hook' after `post-command-hook'. At present, this
+'delayed-warnings-hook' after 'post-command-hook'. At present, this
is only used by Emacs on some platforms to display warnings during
startup, which might otherwise not be noticed. This uses the
-functions `display-delayed-warnings' and `collapse-delayed-warnings'.
+functions 'display-delayed-warnings' and 'collapse-delayed-warnings'.
-** rx.el has a new `group-n' construct for explicitly numbered groups.
+** rx.el has a new 'group-n' construct for explicitly numbered groups.
-** New function `make-composed-keymap' that constructs a new keymap
+** New function 'make-composed-keymap' that constructs a new keymap
from multiple input maps. You can use this to make a keymap that
inherits from multiple maps, eg:
- (set-keymap-parent newmap (make-composed-keymap othermap parent))
+ (set-keymap-parent newmap (make-composed-keymap othermap parent))
-** New function `string-prefix-p'.
+** New function 'string-prefix-p'.
(This was actually added in Emacs 23.2 but was not advertised at the time.)
** New reader macro ## that stands for the empty symbol.
(when not immediately followed by a possible symbol character) stands for
an empty uninterned symbol.
-** New math functions `isnan', `copysign', `frexp', `ldexp'.
+** New math functions 'isnan', 'copysign', 'frexp', 'ldexp'.
** The following functions and variables are obsolete:
-*** `tooltip-use-echo-area' is obsolete.
+*** 'tooltip-use-echo-area' is obsolete.
Rather than setting this to t, disable Tooltip mode instead.
*** buffer-substring-filters is obsolete.
-Use `filter-buffer-substring-functions' instead.
+Use 'filter-buffer-substring-functions' instead.
-*** `byte-compile-disable-print-circle' is obsolete.
+*** 'byte-compile-disable-print-circle' is obsolete.
-*** `deferred-action-list' and `deferred-action-function' are obsolete.
-Use `post-command-hook' instead.
+*** 'deferred-action-list' and 'deferred-action-function' are obsolete.
+Use 'post-command-hook' instead.
-*** `font-lock-maximum-size' is obsolete.
+*** 'font-lock-maximum-size' is obsolete.
\f
* Changes in Emacs 24.1 on Non-Free Operating Systems
*** --lib for general library linkage, works with the USER_LIBS build variable.
-** New make target `dist' to create binary distribution for MS Windows.
+** New make target 'dist' to create binary distribution for MS Windows.
-** The Lisp function `w32-default-color-map' is now obsolete.
+** The Lisp function 'w32-default-color-map' is now obsolete.
(It is only used internally in the Emacs C code.)
** Customize ns-auto-hide-menu-bar to have the menu-bar hidden, but
display in a new window. However, you can customize this behavior via
the 'display-buffer-alist' variable. For example, to get
the old behavior -- '*shell*' buffer displays in current window -- use
-(add-to-list 'display-buffer-alist
- '("^\\*shell\\*$" . (display-buffer-same-window))).
+ (add-to-list 'display-buffer-alist
+ '("\\`\\*shell\\*\\'" . (display-buffer-same-window))).
** EIEIO
*** The ':protection' slot option is not obeyed any more.
** window-configurations no longer record the buffers' marks.
-** 'inhibit-modification-hooks' now also inhibits lock-file checks, as
+** 'inhibit-modification-hooks' now also inhibits 'lock-file' checks, as
well as active region handling.
** 'deactivate-mark' is now buffer-local.
** html2text is now marked obsolete.
-** smerge-refine-regions can refine regions in separate buffers.
+** 'smerge-refine-regions' can refine regions in separate buffers.
** Info menu and index completion uses substring completion by default.
This can be customized via the 'info-menu' category in
** Emacs now supports records for user-defined types, via the new
functions 'make-record', 'record', and 'recordp'. Records are now
-used internally to represent cl-defstruct and defclass instances, for
+used internally to represent 'cl-defstruct' and 'defclass' instances, for
example.
If your program defines new record types, you should use
creating a new window when opening man pages when there's already one,
use
-(add-to-list 'display-buffer-alist
- '("\\`\\*Man .*\\*\\'" .
- (display-buffer-reuse-mode-window
- (inhibit-same-window . nil)
- (mode . Man-mode))))
+ (add-to-list 'display-buffer-alist
+ '("\\`\\*Man .*\\*\\'" .
+ (display-buffer-reuse-mode-window
+ (inhibit-same-window . nil)
+ (mode . Man-mode))))
*** New window parameter 'no-delete-other-windows' prevents that
its window gets deleted by 'delete-other-windows'.
be removed. Alternatively, if you want to ensure that your init file
is still compatible with earlier versions of Emacs, change it to:
-(when (< emacs-major-version 27)
- (package-initialize))
+ (when (< emacs-major-version 27)
+ (package-initialize))
However, if your init file changes the values of 'package-load-list'
or 'package-user-dir', or sets 'package-enable-at-startup' to nil then
It can be used to set any buffer as the next one to be used by
'next-error' and 'previous-error'.
-** nxml-mode
+** 'nxml-mode'
*** The default value of 'nxml-sexp-element-flag' is now t.
This means that pressing 'C-M-SPACE' now selects the entire tree by
Login name: was %u, now %l
User's full name: was %U, now %L
-Merely having '(add-hook 'before-save-hook 'time-stamp)' in your
+Merely having '(add-hook 'before-save-hook #'time-stamp)' in your
Emacs init file does not expose you to this change. However,
if you set 'time-stamp-format' or 'time-stamp-pattern' with a
file-local variable, you may need to update the value.
and ERT. See the node "(elisp) Backtraces" in the Elisp manual for
documentation of the new mode and its commands.
-** so-long.el helps to mitigate performance problems with long lines.
+** 'so-long' helps to mitigate performance problems with long lines.
When 'global-so-long-mode' has been enabled, visiting a file with very
long lines will (subject to configuration) cause the user's preferred
'so-long-action' to be automatically invoked (by default, the buffer's
To get the old behavior back, customize the user option
'mouse-wheel-scroll-amount', or add the following to your init file:
-(customize-set-variable 'mouse-wheel-scroll-amount
- '(5 ((shift) . 1) ((control) . nil)))
+ (customize-set-variable 'mouse-wheel-scroll-amount
+ '(5 ((shift) . 1) ((control) . nil)))
By default, the font size will be changed in the window that the mouse
pointer is over. To change this behavior, you can customize the user
*** Lisp mode now uses 'common-lisp-indent-function'.
To revert to the previous behavior,
-'(setq lisp-indent-function 'lisp-indent-function)' from 'lisp-mode-hook'.
+'(setq lisp-indent-function #'lisp-indent-function)' from 'lisp-mode-hook'.
** Change Logs and VC
*** 'mspools-show' is now autoloaded.
-*** Loading dunnet.el in batch mode doesn't start the game any more.
+*** Loading 'dunnet' in batch mode doesn't start the game any more.
Instead you need to do "emacs --batch -f dunnet" to start the game in
batch mode.
(function-get function 'disabled))
(insert " This function is disabled.\n")))
+(defun help-fns--first-release-regexp (symbol)
+ (let* ((name (symbol-name symbol))
+ (quoted (regexp-quote name)))
+ ;; We used to use just (concat "\\_<" (regexp-quote name) "\\_>"),
+ ;; which had the advantage of adapting to the various notational
+ ;; conventions we've used over the years in etc/NEWS*, but it was also
+ ;; leading to many false positives. So we use a more restrictive regexp
+ ;; now (which can still lead to false positives, e.g. because we don't
+ ;; distinguish between occurrences of the same symbol for
+ ;; different purposes, such as function name, var name, face name,
+ ;; property name, ...).
+ (concat
+ ;; The main "canonical" occurence of symbols is within '...'.
+ "'" quoted "'"
+ ;; Commands can also occur as `M-x blabla'.
+ "\\|M-x[ \t\n]+" quoted "\\_>"
+ ;; Other times we do '<key>' (<cmdname>).
+ "\\|(" quoted ")"
+ ;; Finally other times we just include sample code, which we will
+ ;; only recognize if it's indented by at least 2 spaces and start with
+ ;; an open paren.
+ "\\|^\\(?: \\|\t\\)[ \t]*(\\(.*[( ']\\)?" quoted "\\_>")
+ ))
+
+
(defun help-fns--first-release (symbol)
"Return the likely first release that defined SYMBOL, or nil."
;; Code below relies on the etc/NEWS* files.
;; FIXME: Maybe we should also use the */ChangeLog* files when available.
;; FIXME: Maybe we should also look for announcements of the addition
;; of the *packages* in which the function is defined.
- (let* ((name (symbol-name symbol))
- (re (concat "\\_<" (regexp-quote name) "\\_>"))
+ (let* ((re (help-fns--first-release-regexp symbol))
(news (directory-files data-directory t "\\`NEWS\\(\\'\\|\\.\\)"))
+ (case-fold-search nil)
(place nil)
(first nil))
(with-temp-buffer
;; Almost all entries are of the form "* ... in Emacs NN.MM."
;; but there are also a few in the form "* Emacs NN.MM is a bug
;; fix release ...".
- (if (not (re-search-backward "^\\* .* Emacs \\([0-9.]+[0-9]\\)"
- nil t))
- (message "Ref found in non-versioned section in %S"
- (file-name-nondirectory f))
+ (if (not (re-search-backward
+ "^\\* \\(?:.* \\)?Emacs \\([0-9.]+[0-9]\\)"
+ nil t))
+ (message "Ref to %S found in non-versioned section in %S"
+ symbol (file-name-nondirectory f))
(let ((version (match-string 1)))
(when (or (null first) (version< version first))
(setq place (list f pos))
(when first
(make-text-button first nil 'type 'help-news 'help-args place))))
+;; (defun help-fns--check-first-releases ()
+;; "Compare the old liberal regexp to the new more restrictive one."
+;; (interactive)
+;; (let* ((quoted nil)
+;; (rx-fun (lambda (orig-fun symbol)
+;; (if quoted
+;; (funcall orig-fun symbol)
+;; (format "\\_<%s\\_>"
+;; (regexp-quote (symbol-name symbol))))))
+;; (count
+;; (let ((count 0))
+;; (obarray-map (lambda (sym)
+;; (when (or (fboundp sym) (boundp sym))
+;; (cl-incf count)))
+;; obarray)
+;; count))
+;; (p (make-progress-reporter "Check first releases..." 0 count)))
+;; (with-current-buffer (get-buffer-create "*Check-first-release*")
+;; (unwind-protect
+;; (progn
+;; (advice-add 'help-fns--first-release-regexp :around rx-fun)
+;; (erase-buffer)
+;; (setq count 0)
+;; (obarray-map
+;; (lambda (sym)
+;; (when (or (fboundp sym) (boundp sym))
+;; (cl-incf count)
+;; (progress-reporter-update p count)
+;; (let ((vt (progn (setq quoted t)
+;; (help-fns--first-release sym)))
+;; (vnil (progn (setq quoted nil)
+;; (help-fns--first-release sym))))
+;; (when (and vnil (not (equal vt vnil)))
+;; (insert (symbol-name sym)
+;; "\nnot-quoted: " (or vnil "nil")
+;; "\nquoted: " (or vt "nil")
+;; "\n\n")))))
+;; obarray)
+;; (progress-reporter-done p))
+;; (advice-remove 'help-fns--first-release-regexp rx-fun))
+;; (display-buffer (current-buffer)))))
+
(add-hook 'help-fns-describe-function-functions
#'help-fns--mention-first-release)
(add-hook 'help-fns-describe-variable-functions
(unless (memq 'help-fns--customize-variable-version
help-fns--activated-functions)
(when-let ((first (and (symbolp object)
- ;; Weed out things that probably aren't
- ;; official things (so that we don't say
- ;; "Introduced in version 1.1" if the user
- ;; has done `(setq a 42)').
- (or (string-search "-" (symbol-name object))
- (and (boundp object)
- (get object 'variable-documentation))
- (and (fboundp object)
- (documentation object)))
(help-fns--first-release object))))
(with-current-buffer standard-output
(insert (format " Probably introduced at or before Emacs version %s.\n"