Commit 9f2f14a0 authored by John Wiegley's avatar John Wiegley
Browse files

Merge emacs-25 into master (using imerge)

parents d259328f e823c340
......@@ -42,6 +42,7 @@ InfoPlist.strings
Makefile
makefile
!etc/refcards/Makefile
!modules/mod-test/Makefile
!test/lisp/progmodes/flymake-resources/Makefile
!test/manual/indent/Makefile
!test/manual/etags/Makefile
......@@ -139,6 +140,8 @@ src/stamp-h1
*.elc
*.o
*.res
*.so
*.dll
[0-9]*.core
core
core.*[0-9]
......@@ -209,6 +212,7 @@ lisp/international/uni-*.el
*.cms
*.cp
*.cps
*.doc
*.dvi
*.fn
*.fns
......
......@@ -186,10 +186,12 @@ branch later.
However, if you know that the change will be difficult to merge to the
trunk (eg because the trunk code has changed a lot), you can apply the
change to both trunk and branch yourself. Indicate in the release
branch commit log that there is no need to merge the commit to the
trunk; start the commit message with "Backport:". gitmerge.el will
then exclude that commit from the merge to trunk.
change to both trunk and branch yourself. It could also happen that a
change is cherry-picked from master to the release branch, and so
doesn't need to be merged back. In these cases, indicate in the
release branch commit log that there is no need to merge the commit to
the trunk; start the commit message with "Backport:". gitmerge.el
will then exclude that commit from the merge to trunk.
** Other process information
......
......@@ -3180,14 +3180,6 @@
* lisp/net/tramp-compat.el (tramp-compat-delete-dups): New defun.
* lisp/net/tramp-smb.el (tramp-smb-handle-directory-files): Use it.
 
2015-10-28 Anders Lindgren <andlind@gmail.com>
Merge branch 'master' of /Volumes/HD2/build/emacs-git-ssh
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/emacs
Merge branch 'master' of /Volumes/HD2/build/emacs-git-ssh
2015-10-28 Michael Albinus <michael.albinus@gmx.de>
 
* lisp/net/tramp-smb.el (tramp-smb-handle-directory-files):
......@@ -3207,10 +3199,6 @@
* nsterm.m (ns_constrain_all_frames, ns_init_term): Block input.
* nsterm.m (ns_send_appdefined, EmacsApp): Trace output.
 
2015-10-28 Anders Lindgren <andlind@gmail.com>
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/emacs
2015-10-28 Artur Malabarba <bruce.connor.am@gmail.com>
 
* src/process.c (Fget_buffer_process): Improve docstring.
......
......@@ -309,6 +309,8 @@ Use --with-wide-int to implement Emacs values with the type 'long long',
even on hosts where a narrower type would do. With this option, on a
typical 32-bit host, Emacs integers have 62 bits instead of 30.
Use --with-cairo to compile Emacs with Cairo drawing.
Use --enable-gcc-warnings to enable compile-time checks that warn
about possibly-questionable C code. This is intended for developers
and is useful with GNU-compatible compilers. On a recent GNU system
......
......@@ -10,18 +10,30 @@ The first phase of the release schedule is the "heads-down" working
period for new features, on the `master' branch and several feature
branches.
** Phase two: bugfixes
** Phase two: fixing and stabilizing the release branch
Shortly before this phase, Emacs developers will be devoted to
figuring out what features to include in the next release and what
features to defer to a later release.
This phase is mostly spent fixing bugs and documenting new features
and changes on the "emacs-NN" branch. Actually, the default branch
for pushing any work in this phase should be "emacs-NN", except for
new features.
At the beginning of this phase, a release branch called "emacs-NN"
("NN" represents the major version number of the new Emacs release)
will be cut from `master'.
This phase is spent fixing bugs and eliminating undocumented new
features on the "emacs-NN" branch.
will be cut from `master'. When that happens, the version number on
`master' should be incremented; use admin/admin.el's `set-version'
command to do that, then commit the changes it made and push to
`master'. For major releases, also update the value of
`customize-changed-options-previous-release'.
The 2 main manuals, the User Manual and the Emacs Lisp Manual, need to
be proofread, preferably by at least 2 different persons, and any
uncovered problems fixed. This is a lot of work, so it is advisable
to divide the job between several people (see the checklist near the
end of this file).
In parallel to this phase, `master' can receive new features, to be
released in the next release cycle. From time to time, the master
......@@ -48,8 +60,16 @@ files. See `admin/notes/years' for information about maintaining
copyright years for GNU Emacs.
** Make sure the necessary sources and scripts for any generated files
are included in the source tarfile. (They don't need to be installed,
so eg admin/ is fine.)
are included in the source tarball. (They don't need to be installed,
so e.g. admin/ is fine.)
** Regenerate AUTHORS by using admin/authors.el
(The instructions are at the beginning of that file.)
** Remove temporary +++/--- lines in NEWS.
But first make sure there are no unmarked entries, and update the
documentation (or decide no updates are necessary) for those that
aren't.
** Manuals
Check for node names using problematic characters:
......@@ -60,7 +80,15 @@ Check for major new features added since the last release (e.g. new
lisp files), and add the relevant authors to the Acknowledgments in
doc/emacs/ack.texi and emacs.texi.
Check cross-references between the manuals (eg from emacs to elisp)
For major releases, rewrite the "Antinews" appendix of the User Manual
(doc/emacs/anti.texi) to describe features lost by downgrading to the
previous version. The way to do that is read NEWS, pick up the more
significant changes and new features in the upcoming release, then
describe the "benefits" from losing those features. Be funny, use
humor. The text written for the previous major release can serve as
good example.
Check cross-references between the manuals (e.g. from emacs to elisp)
are correct. You can use something like the following in the info
directory in the Emacs build tree:
......@@ -78,32 +106,31 @@ Redirect /software/emacs/manual/html_node/automake/ /software/automake/manual/ht
Another tool you can use to check links is gnu.org's linc.py:
http://www.gnu.org/server/source/
You run this something like:
You run this with something like:
cd /path/to/cvs/emacs-www
linc.py -o /path/to/output-dir --url http://www.gnu.org/software/emacs/ .
Be warned that it is really, really slow (as in, can take ~ a full day
to check the manual/ directory). It is probably best to run it on a
single directory at a time from eg manual/html_node. It is very
single directory at a time from e.g. manual/html_node. It is very
inefficient, but may reveal a few things that info-xref does not.
make emacs.dvi, elisp.dvi, and deal with any errors (undefined
references etc) in the output. Break any overfull lines.
Underfull hboxes are not serious, but it can be nice to get rid of
them if a simple rephrasing or rearrangement will work.
Update the master menu and detailed menu (eg the antinews version).
Update the master menu and detailed menu (e.g. the antinews version).
The command texinfo-multiple-files-update can do this, but you
probably want to apply the results selectively (eg the current master
probably want to apply the results selectively (e.g. the current master
menu has better line-breaks than the automatic version). It includes
the menu-entry name (if there is one) as well as the node name - using
only the latter looks better. Also, it doesn't seem to handle nested
includes, so will miss edebug.texi etc.
Check for widow and orphan lines in the printed manual; make sure all
the pages really look ok in the manual as formatted. Orphans/widows
the pages really look OK in the manual as formatted. Orphans/widows
are cases where the first/last line of a paragraph is on its own at
the end/start of a page, or where the last word in a paragraph is on
its own at the start of a line. It looks better if you reword/respace
......@@ -117,9 +144,13 @@ pages of the manuals, and even if they do, the resulting page breaks
depend on what paper and font size they use. This also means that if
you _are_ going to do this, it should be done with the paper and font
size that the GNU Press are going to use when they print the manuals.
I think this is different to what you get if you just use eg 'make
I think this is different to what you get if you just use e.g. 'make
emacs.pdf' (e.g., enable "smallbook").
** Try to reorder NEWS: most important things first, related items together.
** For a major release, add a "New in Emacs XX" section to faq.texi.
** Check the keybindings in the refcards are correct, and add any new ones.
What paper size are the English versions supposed to be on?
On Debian testing, the packages texlive-lang-czechslovak and
......@@ -141,14 +172,6 @@ pt-br Rodrigo Real
ru Alex Ott
sk Miroslav Vaško
** For a major release, add a "New in Emacs XX" section to faq.texi.
** Remove temporary +++/--- lines in NEWS.
** Try to reorder NEWS: most important things first, related items together.
** Consider bumping customize-changed-options-previous-release.
** cusver-check from admin.el can help find new defcustoms missing
:version tags.
......
......@@ -77,7 +77,7 @@ test -d .git || {
# Maybe we should skip all "Merge branch 'master'" messages.
# See eg the cairo-related ones.
./build-aux/gitlog-to-changelog \
--ignore-matching="^; |^Merge branch 'master' of git\.(savannah|sv)\.gnu\.org:/srv/git/emacs$|^Merge remote-tracking branch '.*'$" \
--ignore-matching="^; |^Merge branch '(master|emacs-[0-9][0-9])' of git\.(savannah|sv)\.gnu\.org:/srv/git/emacs$|^Merge remote-tracking branch '.*'$" \
--ignore-line='^; ' --format='%B' \
"$gen_origin..$new_origin" >"ChangeLog.tmp" || exit
......
......@@ -316,7 +316,7 @@ this option's value should be 'yes', 'no', 'lucid', 'athena', 'motif', 'gtk',
with_x_toolkit=$val
])
OPTION_DEFAULT_OFF([wide-int], [prefer wide Emacs integers (typically 62-bit)])
OPTION_DEFAULT_OFF([wide-int], [prefer wide Emacs integers (typically 62-bit); allows buffer and string size up to 2GB on 32-bit hosts, at the cost of 10% to 30% slowdown of Lisp interpreter and larger memory footprint])
if test "$with_wide_int" = yes; then
AC_DEFINE([WIDE_EMACS_INT], 1, [Use long long for EMACS_INT if available.])
fi
......@@ -353,6 +353,7 @@ OPTION_DEFAULT_ON([gsettings],[don't compile with GSettings support])
OPTION_DEFAULT_ON([selinux],[don't compile with SELinux support])
OPTION_DEFAULT_ON([gnutls],[don't use -lgnutls for SSL/TLS support])
OPTION_DEFAULT_ON([zlib],[don't compile with zlib decompression support])
OPTION_DEFAULT_OFF([modules],[compile with dynamic modules support])
AC_ARG_WITH([file-notification],[AS_HELP_STRING([--with-file-notification=LIB],
[use a file notification library (LIB one of: yes, inotify, kqueue, gfile, w32, no)])],
......@@ -2103,8 +2104,8 @@ AC_CACHE_CHECK(
[[malloc_set_state (malloc_get_state ());
__after_morecore_hook = hook;
__malloc_initialize_hook = hook;]])],
[emacs_cv_var_doug_lea_malloc=yes])])
fi
[emacs_cv_var_doug_lea_malloc=yes])
fi])
doug_lea_malloc=$emacs_cv_var_doug_lea_malloc
system_malloc=$emacs_cv_sanitize_address
......@@ -2199,7 +2200,6 @@ if test "$ac_cv_header_pthread_h" && test "$opsys" != "mingw32"; then
AC_CACHE_CHECK([for pthread library],
[emacs_cv_pthread_lib],
[emacs_cv_pthread_lib=no
OLD_CPPFLAGS=$CPPFLAGS
OLD_LIBS=$LIBS
for emacs_pthread_lib in 'none needed' -lpthread; do
case $emacs_pthread_lib in
......@@ -2228,8 +2228,7 @@ if test "$ac_cv_header_pthread_h" && test "$opsys" != "mingw32"; then
if test "$emacs_cv_pthread_lib" != no; then
break
fi
done
CPPFLAGS=$OLD_CPPFLAGS])
done])
if test "$emacs_cv_pthread_lib" != no; then
AC_DEFINE([HAVE_PTHREAD], 1, [Define to 1 if you have POSIX threads.])
case $emacs_cv_pthread_lib in
......@@ -3305,6 +3304,52 @@ if test "${HAVE_ZLIB}" = "yes"; then
fi
AC_SUBST(LIBZ)
### Dynamic modules support
LIBMODULES=
HAVE_MODULES=no
MODULES_OBJ=
MODULES_SUFFIX=
if test "${with_modules}" != "no"; then
if test "$opsys" = "gnu-linux"; then
LIBMODULES="-ldl"
MODULES_SUFFIX=".so"
HAVE_MODULES=yes
elif test "$opsys" = "cygwin"; then
MODULES_SUFFIX=".dll"
HAVE_MODULES=yes
elif test "$opsys" = "darwin"; then
MODULES_SUFFIX=".so"
HAVE_MODULES=yes
elif test "$opsys" = "mingw32"; then
MODULES_SUFFIX=".dll"
HAVE_MODULES=yes
else
# BSD system have dlopen in the libc
AC_CHECK_FUNC(dlopen, [MODULES_SUFFIX=".so"]
[HAVE_MODULES=yes], [])
fi
if test "${HAVE_MODULES}" = no; then
AC_MSG_ERROR([Dynamic modules are not supported on your system])
else
SAVE_LIBS=$LIBS
LIBS="$LIBS $LIBMODULES"
AC_CHECK_FUNCS([dlfunc])
LIBS=$SAVE_LIBS
fi
fi
if test "${HAVE_MODULES}" = yes; then
MODULES_OBJ="dynlib.o emacs-module.o"
AC_DEFINE(HAVE_MODULES, 1, [Define to 1 if dynamic modules are enabled])
AC_DEFINE_UNQUOTED(MODULES_SUFFIX, "$MODULES_SUFFIX",
[System extension for dynamic libraries])
fi
AC_SUBST(MODULES_OBJ)
AC_SUBST(LIBMODULES)
AX_GCC_VAR_ATTRIBUTE(cleanup)
AC_CHECK_FUNCS(dladdr)
### Use -lpng if available, unless '--with-png=no'.
HAVE_PNG=no
LIBPNG=
......@@ -5195,7 +5240,7 @@ optsep=
emacs_config_features=
for opt in XAW3D XPM JPEG TIFF GIF PNG RSVG CAIRO IMAGEMAGICK SOUND GPM DBUS \
GCONF GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT \
LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS X_TOOLKIT X11 NS; do
LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS X_TOOLKIT X11 NS MODULES; do
case $opt in
NOTIFY|ACL) eval val=\${${opt}_SUMMARY} ;;
......@@ -5243,6 +5288,7 @@ AS_ECHO([" Does Emacs use -lXaw3d? ${HAVE_XAW3D
Does Emacs use -lotf? ${HAVE_LIBOTF}
Does Emacs use -lxft? ${HAVE_XFT}
Does Emacs directly use zlib? ${HAVE_ZLIB}
Does Emacs have dynamic modules support? ${HAVE_MODULES}
Does Emacs use toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}
"])
......
......@@ -407,7 +407,7 @@ you are expanding.
in this search; if it is @code{nil}, the word and the expansion must
match in case. If the value is @code{case-fold-search} (the default),
then the variable @code{case-fold-search} controls whether to ignore
case while searching for expansions (@pxref{Search Case}).
case while searching for expansions (@pxref{Lax Search}).
@vindex dabbrev-case-replace
Normally, dynamic abbrev expansion preserves the case pattern
......@@ -421,7 +421,7 @@ the dynamic abbrev's case pattern is preserved in most cases; if it is
@code{nil}, the expansion is always copied verbatim. If the value is
@code{case-replace} (the default), then the variable
@code{case-replace} controls whether to copy the expansion verbatim
(@pxref{Replacement and Case}).
(@pxref{Replacement and Lax Matches}).
However, if the expansion contains a complex mixed case pattern, and
the dynamic abbrev matches this pattern as far as it goes, then the
......
......@@ -63,6 +63,10 @@ Ralf Angeli wrote @file{scroll-lock.el}, a minor mode which keeps the
point vertically fixed by scrolling the window when moving up and down
in the buffer.
@item
Aurélien Aptel added dynamic module support to Emacs. Philipp
Stephani and others also worked on the dynamic module code.
@item
Joe Arceneaux wrote the original text property implementation, and
implemented support for X11.
......
......@@ -703,5 +703,6 @@ C-b}. To customize this buffer list, use the @code{bs} Custom group
MSB global minor mode (``MSB'' stands for ``mouse select buffer'')
provides a different and customizable mouse buffer menu which you may
prefer. It replaces the bindings of @code{mouse-buffer-menu},
normally on @kbd{C-Down-Mouse-1}, and the menu bar buffer menu. You
can customize the menu in the @code{msb} Custom group.
normally on @kbd{C-Down-Mouse-1} and @kbd{C-@key{F10}}, and the menu
bar buffer menu. You can customize the menu in the @code{msb} Custom
group.
......@@ -403,6 +403,8 @@ customizations in your initialization file. This is because saving
customizations from such a session would wipe out all the other
customizations you might have on your initialization file.
@cindex unsaved customizations, reminder to save
@findex custom-prompt-customize-unsaved-options
Please note that any customizations you have not chosen to save for
future sessions will be lost when you terminate Emacs. If you'd like
to be prompted about unsaved customizations at termination time, add
......@@ -1131,6 +1133,12 @@ won't confuse other programs that the file is intended for. The
example above is for the C programming language, where comments start
with @samp{/*} and end with @samp{*/}.
If some unrelated text might look to Emacs as a local variables list,
you can countermand that by inserting a form-feed character (a page
delimiter, @pxref{Pages}) after that text. Emacs only looks for
file-local variables in the last page of a file, after the last page
delimiter.
@findex add-file-local-variable
@findex delete-file-local-variable
@findex copy-dir-locals-to-file-locals
......
......@@ -188,6 +188,7 @@ Advanced Features
* Sending Mail:: Sending mail in Emacs.
* Rmail:: Reading mail in Emacs.
* Gnus:: A flexible mail and news reader.
* Host Security:: Security issues on a single computer.
* Network Security:: Managing the network security.
* Document View:: Viewing PDF, PS and DVI files.
* EWW:: A web browser in Emacs.
......@@ -392,18 +393,20 @@ Searching and Replacement
* Regexps:: Syntax of regular expressions.
* Regexp Backslash:: Regular expression constructs starting with `\'.
* Regexp Example:: A complex regular expression explained.
* Search Case:: To ignore case while searching, or not.
* Lax Search:: Search ignores some distinctions between
similar characters, like letter-case.
* Replace:: Search, and replace some or all matches.
* Other Repeating Search:: Operating on all matches for some regexp.
* Search Customizations:: Various search customizations.
Incremental Search
* Basic Isearch:: Basic incremental search commands.
* Repeat Isearch:: Searching for the same string again.
* Error in Isearch:: When your string is not found.
* Special Isearch:: Special input in incremental search.
* Isearch Yank:: Commands that grab text into the search string
or else edit the search string.
* Error in Isearch:: When your string is not found.
* Special Isearch:: Special input in incremental search.
* Not Exiting Isearch:: Prefix argument and scrolling commands.
* Isearch Minibuffer:: Incremental search of the minibuffer history.
......@@ -411,7 +414,8 @@ Replacement Commands
* Unconditional Replace:: Replacing all matches for a string.
* Regexp Replace:: Replacing all matches for a regexp.
* Replacement and Case:: How replacements preserve case of letters.
* Replacement and Lax Matches::
Lax searching for text to replace.
* Query Replace:: How to use querying.
Commands for Fixing Typos
......@@ -534,6 +538,7 @@ Frames and Graphical Displays
* Multiple Displays:: How one Emacs instance can talk to several displays.
* Frame Parameters:: Changing the colors and other modes of frames.
* Scroll Bars:: How to enable and disable scroll bars; how to use them.
* Window Dividers:: Window separators that can be dragged with the mouse.
* Drag and Drop:: Using drag and drop to open files and insert text.
* Menu Bars:: Enabling and disabling the menu bar.
* Tool Bars:: Enabling and disabling the tool bar.
......@@ -589,6 +594,7 @@ Commands for Human Languages
* Sentences:: Moving over and killing sentences.
* Paragraphs:: Moving over paragraphs.
* Pages:: Moving over pages.
* Quotation Marks:: Inserting quotation marks.
* Filling:: Filling or justifying text.
* Case:: Changing the case of text.
* Text Mode:: The major modes for editing text files.
......@@ -1164,6 +1170,11 @@ Reporting Bugs
* Checklist:: Steps to follow for a good bug report.
* Sending Patches:: How to send a patch for GNU Emacs.
Contributing to Emacs Development
* Coding Standards:: Gnu Emacs coding standards.
* Copyright Assignment:: Assigning copyright to the FSF.
Command Line Arguments for Emacs Invocation
* Action Arguments:: Arguments to visit files, load libraries,
......
......@@ -1295,11 +1295,12 @@ would make to the file if you save the buffer.
@findex compare-windows
The command @kbd{M-x compare-windows} compares the text in the
current window with that in the next window. (For more information
about windows in Emacs, @ref{Windows}.) Comparison starts at point in
each window, after pushing each initial point value on the mark ring
in its respective buffer. Then it moves point forward in each window,
one character at a time, until it reaches characters that don't match.
current window with that in the window that was the selected window
before you selected the current one. (For more information about
windows in Emacs, @ref{Windows}.) Comparison starts at point in each
window, after pushing each initial point value on the mark ring in its
respective buffer. Then it moves point forward in each window, one
character at a time, until it reaches characters that don't match.
Then the command exits.
If point in the two windows is followed by non-matching text when
......
......@@ -1265,10 +1265,11 @@ Some text terminals support mouse clicks in the terminal window.
In a terminal emulator which is compatible with @command{xterm}, you
can use @kbd{M-x xterm-mouse-mode} to give Emacs control over simple
uses of the mouse---basically, only non-modified single clicks are
supported. The normal @command{xterm} mouse functionality for such
clicks is still available by holding down the @kbd{SHIFT} key when you
press the mouse button. Xterm Mouse mode is a global minor mode
(@pxref{Minor Modes}). Repeating the command turns the mode off
supported. Newer versions of @command{xterm} also support
mouse-tracking. The normal @command{xterm} mouse functionality for
such clicks is still available by holding down the @kbd{SHIFT} key
when you press the mouse button. Xterm Mouse mode is a global minor
mode (@pxref{Minor Modes}). Repeating the command turns the mode off
again.
@findex gpm-mouse-mode
......
......@@ -175,11 +175,22 @@ corresponding Control character. @xref{User Input,C-M-}.
Case conversion means changing text from upper case to lower case or
vice versa. @xref{Case}.
@item Case Folding
Case folding means ignoring the differences between case variants of
the same letter: upper-case, lower-case, and title-case. Emacs
performs case folding by default in text search. @xref{Lax Search}.
@item Character
Characters form the contents of an Emacs buffer. Also, key sequences
(q.v.@:) are usually made up of characters (though they may include
other input events as well). @xref{User Input}.
@item Character Folding
Character folding means ignoring differences between similarly looking
characters, such as between @code{a}, and @code{@:a} and @code{@'a}.
Emacs performs character folding by default in text search. @xref{Lax
Search}.
@item Character Set
Emacs supports a number of character sets, each of which represents a
particular alphabet or script. @xref{International}.
......
......@@ -126,6 +126,10 @@ Display documentation of the current major mode and minor modes
(@code{describe-mode}).
@item C-h n
Display news of recent Emacs changes (@code{view-emacs-news}).
@item C-h o @var{symbol}
Display documentation of the Lisp symbol named @var{symbol}
(@code{describe-symbol}). This will show the documentation of all
kinds of symbols: functions, variables, and faces.
@item C-h p
Find packages by topic keyword (@code{finder-by-keyword}). This lists
packages using a package menu buffer. @xref{Packages}.
......@@ -272,6 +276,14 @@ source files installed (@pxref{Hyperlinking}).
(@code{Info-goto-emacs-command-node}). This knows about various
manuals, not just the Emacs manual, and finds the right one.
@kindex C-h o
@findex describe-symbol
@kbd{C-h o} (@code{describe-symbol}) is like @kbd{C-h f} and
@kbd{C-h v}, but it describes any symbol, be it a function, a
variable, or a face. If the symbol has more than one definition, like
it has both definition as a function and as a variable, this command
will show the documentation of all of them, one after the other.
@node Apropos
@section Apropos
@cindex apropos
......@@ -524,8 +536,9 @@ command works depend on the major mode.
@findex view-lossage
If something surprising happens, and you are not sure what you typed,
use @kbd{C-h l} (@code{view-lossage}). @kbd{C-h l} displays your last
300 input keystrokes. If you see commands that you don't know, you can
use @kbd{C-h c} to find out what they do.
300 input keystrokes and the commands they invoked. If you see
commands that you are not familiar with, you can use @kbd{C-h k} or
@kbd{C-h f} to find out what they do.
@kindex C-h e
@findex view-echo-area-messages
......
......@@ -504,9 +504,9 @@ does not alter the clipboard. However, if you change
@code{yank-pop-change-selection} to @code{t}, then @kbd{M-y} saves the
new yank to the clipboard.
@vindex x-select-enable-clipboard
@vindex select-enable-clipboard
To prevent kill and yank commands from accessing the clipboard,
change the variable @code{x-select-enable-clipboard} to @code{nil}.
change the variable @code{select-enable-clipboard} to @code{nil}.
@cindex clipboard manager
@vindex x-select-enable-clipboard-manager
......@@ -519,14 +519,14 @@ when exiting Emacs; if you wish to prevent Emacs from transferring
data to the clipboard manager, change the variable
@code{x-select-enable-clipboard-manager} to @code{nil}.
@vindex x-select-enable-primary
@vindex select-enable-primary
@findex clipboard-kill-region
@findex clipboard-kill-ring-save
@findex clipboard-yank
Prior to Emacs 24, the kill and yank commands used the primary
selection (@pxref{Primary Selection}), not the clipboard. If you
prefer this behavior, change @code{x-select-enable-clipboard} to
@code{nil}, @code{x-select-enable-primary} to @code{t}, and
prefer this behavior, change @code{select-enable-clipboard} to
@code{nil}, @code{select-enable-primary} to @code{t}, and
@code{mouse-drag-copy-region} to @code{t}. In this case, you can use
the following commands to act explicitly on the clipboard:
@code{clipboard-kill-region} kills the region and saves it to the
......@@ -853,6 +853,19 @@ so in a rectangular fashion, and killing and yanking operate on the
rectangle. @xref{Killing}. The mode persists only as long as the
region is active.
Unlike the standard region, the region-rectangle can have its corners
extended past the end of buffer, or inside stretches of white space
that point normally cannot enter, like the TAB.
@findex rectangle-exchange-point-and-mark
@findex exchange-point-and-mark@r{, in rectangle-mark-mode}
@kindex C-x C-x@r{, in rectangle-mark-mode}
When the region is in rectangle-mark-mode, @kbd{C-x C-x} runs the
command @code{rectangle-exchange-point-and-mark}, which cycles between
the four corners of the region-rectangle. This comes in handy if you
want to modify the dimensions of the region-rectangle before invoking
an operation on the marked text.
@node CUA Bindings
@section CUA Bindings
@findex cua-mode
......
......@@ -43,6 +43,13 @@ Note that @code{forward-char} is the same command that you invoke with
the key @kbd{C-f}. The existence of a key binding does not stop you
from running the command by name.
@cindex obsolete command
When @kbd{M-x} completes on commands, it ignores the commands that
are declared @dfn{obsolete}; for these, you will have to type their
full name. Obsolete commands are those for which newer, better
alternatives exist, and which are slated for removal in some future
Emacs release.
To cancel the @kbd{M-x} and not run a command, type @kbd{C-g} instead
of entering the command name. This takes you back to command level.
......@@ -57,7 +64,16 @@ mentions this in the echo area after running the command. For
example, if you type @kbd{M-x forward-word}, the message says that you
can run the same command by typing @kbd{M-f}. You can turn off these
messages by setting the variable @code{suggest-key-bindings} to
@code{nil}.
@code{nil}. The value of @code{suggest-key-bindings} can also be a
number, in which case Emacs will show the binding for that many
seconds before removing it from display. The default behavior is to
display the binding for 2 seconds.
Commands that don't have key bindings, can still be invoked after
typing less than their full name at the @samp{M-x} prompt. Emacs
mentions such shorthands in the echo area if they are significantly
shorter than the full command name. The setting of
@code{suggest-key-bindings} affects these hints as well.
In this manual, when we speak of running a command by name, we often