Commit 411c1c65 authored by Fabián Ezequiel Gallina's avatar Fabián Ezequiel Gallina

Merge from origin/emacs-24

216c6aad * net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band): Use `tramp-rsh-end-of-line', it ought to be more robust.
20cfd248 Improve indexing on the chapter/section/subsection levels.
14c37390 * lisp/progmodes/js.el (js-syntax-propertize): "return" can't be divided.
ea78112b * net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band): Use "\n" as end-of-line delimeter for passwords, when running on MS Windows.
012479a7 * lisp/progmodes/sh-script.el: Don't set global indent-line-function
75e114fa Fix line numbers on Python shell.
d0fd23c5 doc/emacs/buffers.texi (Kill Buffer): Improve indexing.
8e818d17 Keep maximized when going fullscreen.
749813e9 python.el: Fix electric colon behavior
936d5e5b Fix last patch.
74d3b20c Fixes: debbugs:18623

parents c3c51ec2 216c6aad
2014-12-27 Eli Zaretskii <>
* buffers.texi (Kill Buffer): Improve indexing.
2014-12-27 Paul Eggert <>
2014-12-24 Stephen Leake <>
* trouble.texi: Move user-level information from CONTRIBUTE here.
......@@ -269,11 +269,16 @@ can also be used to copy text from one buffer to another.
@section Killing Buffers
@cindex killing buffers
@cindex close buffer
@cindex close file
If you continue an Emacs session for a while, you may accumulate a
large number of buffers. You may then find it convenient to @dfn{kill}
the buffers you no longer need. On most operating systems, killing a
buffer releases its space back to the operating system so that other
programs can use it. Here are some commands for killing buffers:
the buffers you no longer need. (Some other editors call this
operation @dfn{close}, and talk about ``closing the buffer'' or
``closing the file'' visited in the buffer.) On most operating
systems, killing a buffer releases its space back to the operating
system so that other programs can use it. Here are some commands for
killing buffers:
@table @kbd
@item C-x k @var{bufname} @key{RET}
2014-12-27 Eli Zaretskii <>
* windows.texi (Recombining Windows): Index subject of sections.
* variables.texi (Variables with Restricted Values)
(Generalized Variables): Index subject of sections.
* text.texi (Buffer Contents, Examining Properties)
(Changing Properties, Property Search, Substitution): Index
subject of sections.
* syntax.texi (Motion and Syntax, Parsing Expressions)
(Motion via Parsing, Position Parse, Control Parsing): Index
subject of sections.
* strings.texi (Predicates for Strings, Creating Strings)
(Modifying Strings, Text Comparison): Index subject of sections.
* searching.texi (Syntax of Regexps, Regexp Special)
(Regexp Functions, Regexp Functions): Index subject of sections.
* processes.texi (Subprocess Creation, Process Information): Index
subject of sections.
* positions.texi (Screen Lines): Index subject of sections.
* nonascii.texi (Scanning Charsets, Specifying Coding Systems):
Index subject of sections.
* minibuf.texi (Text from Minibuffer, Object from Minibuffer)
(Multiple Queries, Minibuffer Contents): Index subject of
* markers.texi (Predicates on Markers, Creating Markers)
(Information from Markers, Moving Markers): Index subject of
* macros.texi (Defining Macros, Problems with Macros): Index
subject of sections.
* loading.texi (Loading Non-ASCII, Where Defined): Index subject
of sections.
* lists.texi (List-related Predicates, List Variables, Setcar)
(Setcdr, Plist Access): Index subject of sections.
* keymaps.texi (Controlling Active Maps, Scanning Keymaps)
(Modifying Menus): Index subject of sections.
* help.texi (Accessing Documentation, Help Functions): Index
subject of sections.
* hash.texi (Hash Access): Index subject of sections.
* functions.texi (Core Advising Primitives)
(Advising Named Functions, Porting old advices): Index subject of
* frames.texi (Creating Frames, Initial Parameters)
(Position Parameters, Buffer Parameters, Minibuffers and Frames)
(Pop-Up Menus, Drag and Drop): Index subject of sections.
* files.texi (Visiting Functions, Kinds of Files)
(Unique File Names): Index subject of sections.
* display.texi (Refresh Screen, Echo Area Customization)
(Warning Variables, Warning Options, Delayed Warnings)
(Temporary Displays, Managing Overlays, Overlay Properties)
(Finding Overlays, Size of Displayed Text, Defining Faces)
(Attribute Functions, Displaying Faces, Face Remapping)
(Basic Faces, Font Lookup, Fontsets, Replacing Specs)
(Defining Images, Showing Images): Index subject of sections.
* debugging.texi (Debugging, Explicit Debug)
(Invoking the Debugger, Excess Open, Excess Close): Index subject
of sections.
* customize.texi (Defining New Types, Applying Customizations)
(Custom Themes): Index subject of sections.
* control.texi (Sequencing, Combining Conditions)
(Processing of Errors, Cleanups): Index subject of sections.
* compile.texi (Eval During Compile): Index subject of sections.
* commands.texi (Using Interactive, Distinguish Interactive)
(Command Loop Info, Classifying Events, Event Mod)
(Invoking the Input Method): Index subject of sections.
* buffers.texi (Buffer List, Buffer Gap): Index subject of sections.
* backups.texi (Making Backups, Numbered Backups, Backup Names)
(Reverting): Index subject of sections.
* abbrevs.texi (Abbrev Tables, Defining Abbrevs, Abbrev Files)
(Abbrev Expansion, Standard Abbrev Tables, Abbrev Properties)
(Abbrev Table Properties): Index subject of sections.
* os.texi (Time of Day, Time Conversion, Time Parsing)
(Time Calculations, Idle Timers): Index subject of sections.
2014-12-27 Stefan Monnier <>
2014-12-25 Martin Rudalics <>
* windows.texi (Windows): Resync @menu order with @node order.
......@@ -59,6 +59,7 @@ expanded in the buffer. For the user-level commands for abbrevs, see
@node Abbrev Tables
@section Abbrev Tables
@cindex abbrev tables
This section describes how to create and manipulate abbrev tables.
......@@ -126,6 +127,7 @@ to add these to @var{name} separately.)
@node Defining Abbrevs
@section Defining Abbrevs
@cindex defining abbrevs
@code{define-abbrev} is the low-level basic function for defining an
abbrev in an abbrev table.
......@@ -181,6 +183,7 @@ callers.
@node Abbrev Files
@section Saving Abbrevs in Files
@cindex save abbrevs in files
A file of saved abbrev definitions is actually a file of Lisp code.
The abbrevs are saved in the form of a Lisp program to define the same
......@@ -232,6 +235,9 @@ define the same abbrevs. If @var{filename} is @code{nil} or omitted,
@node Abbrev Expansion
@section Looking Up and Expanding Abbreviations
@cindex looking up abbrevs
@cindex expanding abbrevs
@cindex abbrevs, looking up and expanding
Abbrevs are usually expanded by certain interactive commands,
including @code{self-insert-command}. This section describes the
......@@ -367,6 +373,7 @@ definitions of @code{local-abbrev-table} and @code{text-mode-abbrev-table}.
@node Standard Abbrev Tables
@section Standard Abbrev Tables
@cindex standard abbrev tables
Here we list the variables that hold the abbrev tables for the
preloaded major modes of Emacs.
......@@ -409,6 +416,7 @@ Properties}.
@node Abbrev Properties
@section Abbrev Properties
@cindex abbrev properties
Abbrevs have properties, some of which influence the way they work.
You can provide them as arguments to @code{define-abbrev}, and
......@@ -449,6 +457,7 @@ modifies the capitalization of the expansion.
@node Abbrev Table Properties
@section Abbrev Table Properties
@cindex abbrev table properties
Like abbrevs, abbrev tables have properties, some of which influence
the way they work. You can provide them as arguments to
......@@ -50,6 +50,7 @@ don't want them any more, or Emacs can delete them automatically.
@node Making Backups
@subsection Making Backup Files
@cindex making backup files
@defun backup-buffer
This function makes a backup of the file visited by the current
......@@ -238,6 +239,7 @@ The default is 200.
@node Numbered Backups
@subsection Making and Deleting Numbered Backup Files
@cindex numbered backups
If a file's name is @file{foo}, the names of its numbered backup
versions are @file{foo.~@var{v}~}, for various integers @var{v}, like
......@@ -299,6 +301,7 @@ file. The default is@tie{}2.
@node Backup Names
@subsection Naming Backup Files
@cindex naming backup files
The functions in this section are documented mainly because you can
customize the naming conventions for backup files by redefining them.
......@@ -668,6 +671,7 @@ not initialize @code{auto-save-list-file-name}.
@node Reverting
@section Reverting
@cindex reverting buffers
If you have made extensive changes to a file and then change your mind
about them, you can get rid of them by reading in the previous version
......@@ -762,6 +762,7 @@ signal an error if the current buffer is read-only.
@node Buffer List
@section The Buffer List
@cindex buffer list
@cindex listing all buffers
The @dfn{buffer list} is a list of all live buffers. The order of the
buffers in this list is based primarily on how recently each buffer has
......@@ -1215,6 +1216,7 @@ in the text it is swapped with will not interfere with auto-saving.
@node Buffer Gap
@section The Buffer Gap
@cindex buffer gap
Emacs buffers are implemented using an invisible @dfn{gap} to make
insertion and deletion faster. Insertion works by filling in part of
......@@ -147,6 +147,7 @@ code.
@node Using Interactive
@subsection Using @code{interactive}
@cindex arguments, interactive entry
@cindex interactive spec, using
This section describes how to write the @code{interactive} form that
makes a Lisp function an interactively-callable command, and how to
......@@ -747,6 +748,8 @@ part of the prompt.
@node Distinguish Interactive
@section Distinguish Interactive Calls
@cindex distinguish interactive calls
@cindex is this call interactive
Sometimes a command should display additional visual feedback (such
as an informative message in the echo area) for interactive calls
......@@ -835,6 +838,7 @@ Here is another example that contrasts direct and indirect calls to
@node Command Loop Info
@section Information from the Command Loop
@cindex command loop variables
The editor command loop sets several Lisp variables to keep status
records for itself and for commands that are run. With the exception of
......@@ -1859,6 +1863,7 @@ bind it to the @code{signal usr1} event sequence:
@node Classifying Events
@subsection Classifying Events
@cindex event type
@cindex classifying events
Every event has an @dfn{event type}, which classifies the event for
key binding purposes. For a keyboard event, the event type equals the
......@@ -2584,6 +2589,9 @@ then continues to wait for a valid input character, or keyboard-quit.
@node Event Mod
@subsection Modifying and Translating Input Events
@cindex modifiers of events
@cindex translating input events
@cindex event translation
Emacs modifies every event it reads according to
@code{extra-keyboard-modifiers}, then translates it through
......@@ -2665,6 +2673,7 @@ at the level of @code{read-key-sequence}.
@node Invoking the Input Method
@subsection Invoking the Input Method
@cindex invoking input method
The event-reading functions invoke the current input method, if any
(@pxref{Input Methods}). If the value of @code{input-method-function}
......@@ -347,6 +347,7 @@ it does nothing. It always returns @var{function}.
@node Eval During Compile
@section Evaluation During Compilation
@cindex eval during compilation
These features permit you to write code to be evaluated during
compilation of a program.
......@@ -44,6 +44,8 @@ structure constructs (@pxref{Macros}).
@node Sequencing
@section Sequencing
@cindex sequencing
@cindex sequential execution
Evaluating forms in the order they appear is the most common way
control passes from one form to another. In some contexts, such as in a
......@@ -405,6 +407,7 @@ the variable @code{x}.
@node Combining Conditions
@section Constructs for Combining Conditions
@cindex combining conditions
This section describes three constructs that are often used together
with @code{if} and @code{cond} to express complicated conditions. The
......@@ -962,6 +965,7 @@ concept of continuable errors.
@node Processing of Errors
@subsubsection How Emacs Processes Errors
@cindex processing of errors
When an error is signaled, @code{signal} searches for an active
@dfn{handler} for the error. A handler is a sequence of Lisp
......@@ -1367,6 +1371,7 @@ and their conditions.
@node Cleanups
@subsection Cleaning Up from Nonlocal Exits
@cindex nonlocal exits, cleaning up
The @code{unwind-protect} construct is essential whenever you
temporarily put a data structure in an inconsistent state; it permits
......@@ -1227,6 +1227,8 @@ arguments, which will be used when creating the @code{radio-button} or
@node Defining New Types
@subsection Defining New Types
@cindex customization types, define new
@cindex define new customization types
In the previous sections we have described how to construct elaborate
type specifications for @code{defcustom}. In some cases you may want
......@@ -1296,6 +1298,7 @@ its @code{:type} argument only when needed.
@node Applying Customizations
@section Applying Customizations
@cindex applying customizations
The following functions are responsible for installing the user's
customization settings for variables and faces, respectively. When
......@@ -1353,6 +1356,7 @@ evaluated. @var{comment} is a string describing the customization.
@node Custom Themes
@section Custom Themes
@cindex custom themes
@dfn{Custom themes} are collections of settings that can be enabled
or disabled as a unit. @xref{Custom Themes,,, emacs, The GNU Emacs
Manual}. Each Custom theme is defined by an Emacs Lisp source file,
......@@ -5,6 +5,7 @@
@c See the file elisp.texi for copying conditions.
@node Debugging
@chapter Debugging Lisp Programs
@cindex debugging lisp programs
There are several ways to find and investigate problems in an Emacs
Lisp program.
......@@ -284,6 +285,8 @@ not currently set up to break on entry.
@node Explicit Debug
@subsection Explicit Entry to the Debugger
@cindex debugger, explicit entry
@cindex force entry to debugger
You can cause the debugger to be called at a certain point in your
program by writing the expression @code{(debug)} at that point. To do
......@@ -456,6 +459,7 @@ Toggle the display of local variables of the current stack frame.
@node Invoking the Debugger
@subsection Invoking the Debugger
@cindex invoking lisp debugger
Here we describe in full detail the function @code{debug} that is used
to invoke the debugger.
......@@ -707,6 +711,7 @@ find the mismatch.)
@node Excess Open
@subsection Excess Open Parentheses
@cindex excess open parentheses
The first step is to find the defun that is unbalanced. If there is
an excess open parenthesis, the way to do this is to go to the end of
......@@ -741,6 +746,7 @@ anything.
@node Excess Close
@subsection Excess Close Parentheses
@cindex excess close parentheses
To deal with an excess close parenthesis, first go to the beginning
of the file, then type @kbd{C-u -1 C-M-u} to find the end of the first
......@@ -39,6 +39,8 @@ that Emacs presents to the user.
@node Refresh Screen
@section Refreshing the Screen
@cindex refresh the screen
@cindex screen refresh
The function @code{redraw-frame} clears and redisplays the entire
contents of a given frame (@pxref{Frames}). This is useful if the
......@@ -534,6 +536,7 @@ are logged that share a common prefix ending in @samp{...}.
@node Echo Area Customization
@subsection Echo Area Customization
@cindex echo area customization
These variables control details of how the echo area works.
......@@ -661,6 +664,7 @@ specify a specific warning type.
@node Warning Variables
@subsection Warning Variables
@cindex warning variables
Programs can customize how their warnings appear by binding
the variables described in this section.
......@@ -738,6 +742,7 @@ all.
@node Warning Options
@subsection Warning Options
@cindex warning options
These variables are used by users to control what happens
when a Lisp program reports a warning.
......@@ -771,6 +776,7 @@ that warning is not logged.
@node Delayed Warnings
@subsection Delayed Warnings
@cindex delayed warnings
Sometimes, you may wish to avoid showing a warning while a command is
running, and only show it only after the end of the command. You can
......@@ -1094,6 +1100,8 @@ You can use a display table to substitute other text for the ellipsis
@node Temporary Displays
@section Temporary Displays
@cindex temporary display
@cindex temporary buffer display
Temporary displays are used by Lisp programs to put output into a
buffer and then present it to the user for perusal rather than for
......@@ -1305,6 +1313,8 @@ inside the overlay or outside, and likewise for the end of the overlay.
@node Managing Overlays
@subsection Managing Overlays
@cindex managing overlays
@cindex overlays, managing
This section describes the functions to create, delete and move
overlays, and to examine their contents. Overlay changes are not
......@@ -1465,6 +1475,7 @@ faster if you do @code{(overlay-recenter (point-max))} first.
@node Overlay Properties
@subsection Overlay Properties
@cindex overlay properties
Overlay properties are like text properties in that the properties that
alter how a character is displayed can come from either source. But in
......@@ -1717,6 +1728,8 @@ Properties}.
@node Finding Overlays
@subsection Searching for Overlays
@cindex searching for overlays
@cindex overlays, searching for
@defun overlays-at pos &optional sorted
This function returns a list of all the overlays that cover the character at
......@@ -1784,6 +1797,8 @@ changes.
@node Size of Displayed Text
@section Size of Displayed Text
@cindex size of text on display
@cindex character width on display
Since not all characters have the same width, these functions let you
check the width of a character. @xref{Primitive Indent}, and
......@@ -2274,6 +2289,7 @@ suitable for use with @code{:stipple} (see above). It returns
@node Defining Faces
@subsection Defining Faces
@cindex defining faces
@cindex face spec
The usual way to define a face is through the @code{defface} macro.
......@@ -2448,6 +2464,7 @@ Any other value of @var{spec-type} is reserved for internal use.
@node Attribute Functions
@subsection Face Attribute Functions
@cindex face attributes, access and modification
This section describes functions for directly accessing and
modifying the attributes of a named face.
......@@ -2649,6 +2666,8 @@ a non-@code{nil} @code{:inverse-video} attribute.
@node Displaying Faces
@subsection Displaying Faces
@cindex displaying faces
@cindex face merging
When Emacs displays a given piece of text, the visual appearance of
the text may be determined by faces drawn from different sources. If
......@@ -2704,6 +2723,7 @@ at the next level of face merging.
@node Face Remapping
@subsection Face Remapping
@cindex face remapping
The variable @code{face-remapping-alist} is used for buffer-local or
global changes in the appearance of a face. For instance, it is used
......@@ -2901,6 +2921,7 @@ usually assign faces to around 400 to 600 characters at each call.
@node Basic Faces
@subsection Basic Faces
@cindex basic faces
If your Emacs Lisp program needs to assign some faces to text, it is
often a good idea to use certain existing faces or inherit from them,
......@@ -3067,6 +3088,8 @@ nominal heights and widths would suggest.
@node Font Lookup
@subsection Looking Up Fonts
@cindex font lookup
@cindex looking up fonts
@defun x-list-fonts name &optional reference-face frame maximum width
This function returns a list of available font names that match
......@@ -3124,6 +3147,7 @@ encoding of the font.
@node Fontsets
@subsection Fontsets
@cindex fontset
A @dfn{fontset} is a list of fonts, each assigned to a range of
character codes. An individual font cannot display the whole range of
......@@ -4237,6 +4261,7 @@ display specifications and what they mean.
@node Replacing Specs
@subsection Display Specs That Replace The Text
@cindex replacing display specs
Some kinds of display specifications specify something to display
instead of the text that has the property. These are called
......@@ -5113,6 +5138,7 @@ Supports the @code{:index} property. @xref{Multi-Frame Images}.
@node Defining Images
@subsection Defining Images
@cindex define image
The functions @code{create-image}, @code{defimage} and
@code{find-image} provide convenient ways to create image descriptors.
......@@ -5240,6 +5266,7 @@ Here is an example of using @code{image-load-path-for-library}:
@node Showing Images
@subsection Showing Images
@cindex show image
You can use an image descriptor by setting up the @code{display}
property yourself, but it is easier to use the functions in this
......@@ -81,6 +81,8 @@ computer program, however, it is good to keep the distinction in mind.
@node Visiting Functions
@subsection Functions for Visiting Files
@cindex visiting files, functions for
@cindex how to visit files
This section describes the functions normally used to visit files.
For historical reasons, these functions have names starting with
......@@ -948,6 +950,8 @@ Unix. These conventions are also followed by @code{file-attributes}
@node Kinds of Files
@subsection Distinguishing Kinds of Files
@cindex file classification
@cindex classification of file types
This section describes how to distinguish various kinds of files, such
as directories, symbolic links, and ordinary files.
......@@ -2300,6 +2304,8 @@ through the immediately preceding @samp{/}).
@node Unique File Names
@subsection Generating Unique File Names
@cindex unique file names
@cindex temporary files
Some programs need to write temporary files. Here is the usual way to
construct a name for such a file:
......@@ -106,6 +106,7 @@ for @code{framep} above.
@node Creating Frames
@section Creating Frames
@cindex frame creation
To create a new frame, call the function @code{make-frame}.
......@@ -484,6 +485,7 @@ parameter values to frames that will be created henceforth.
@node Initial Parameters
@subsection Initial Frame Parameters
@cindex parameters of initial frame
You can specify the parameters for the initial startup frame by
setting @code{initial-frame-alist} in your init file (@pxref{Init
......@@ -623,6 +625,7 @@ named, this parameter will be @code{nil}.
@node Position Parameters
@subsubsection Position Parameters
@cindex window position on display
@cindex frame position
Position parameters' values are normally measured in pixels, but on
text terminals they count characters or lines instead.
......@@ -833,6 +836,8 @@ integer). @xref{Line Height}, for more information.
@node Buffer Parameters
@subsubsection Buffer Parameters
@cindex frame, which buffers to display
@cindex buffers to display on frame
These frame parameters, meaningful on all kinds of terminals, deal
with which buffers have been, or should, be displayed in the frame.
......@@ -1663,6 +1668,7 @@ is used whenever that frame is selected. If the frame has a minibuffer,
you can get it with @code{minibuffer-window} (@pxref{Definition of
@cindex frame without a minibuffer
However, you can also create a frame with no minibuffer. Such a frame
must use the minibuffer window of some other frame. When you create the
frame, you can explicitly specify the minibuffer window to use (in some
......@@ -2070,6 +2076,7 @@ allows to know if the pointer has been hidden.
@node Pop-Up Menus
@section Pop-Up Menus
@cindex menus, popup
A Lisp program can pop up a menu so that the user can choose an
alternative with the mouse. On a text terminal, if the mouse is not
......@@ -2334,6 +2341,7 @@ clipboard as empty.
@node Drag and Drop
@section Drag and Drop
@cindex drag and drop
@vindex x-dnd-test-function
@vindex x-dnd-known-types
......@@ -1214,7 +1214,8 @@ ways to do it. The added function is also called a piece of @emph{advice}.
@end menu
@node Core Advising Primitives
@subsection Primitives to manipulate advice
@subsection Primitives to manipulate advices
@cindex advice, add and remove
@defmac add-function where place function &optional props
This macro is the handy way to add the advice @var{function} to the function
......@@ -1316,6 +1317,7 @@ the current prefix argument.
@node Advising Named Functions
@subsection Advising Named Functions
@cindex advising named functions
A common use of advice is for named functions and macros.
You could just use @code{add-function} as in:
......@@ -1508,6 +1510,7 @@ More specifically, the composition of the two functions behaves like:
@node Porting old advice
@subsection Adapting code using the old d