1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-29 07:58:28 +00:00

Merge from origin/emacs-24

216c6aa * 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.
20cfd24 Improve indexing on the chapter/section/subsection levels.
14c3739 * lisp/progmodes/js.el (js-syntax-propertize): "return" can't be divided.
ea78112 * 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.
012479a * lisp/progmodes/sh-script.el: Don't set global indent-line-function
75e114f Fix line numbers on Python shell.
d0fd23c doc/emacs/buffers.texi (Kill Buffer): Improve indexing.
8e818d1 Keep maximized when going fullscreen.
749813e python.el: Fix electric colon behavior
936d5e5 Fix last patch.
74d3b20 Fixes: debbugs:18623

Conflicts:
	doc/emacs/ChangeLog
	doc/lispref/ChangeLog
	doc/lispref/functions.texi
	lisp/ChangeLog
	src/ChangeLog
	src/xterm.c
	test/ChangeLog
This commit is contained in:
Fabián Ezequiel Gallina 2014-12-27 13:21:17 -03:00
commit 411c1c6531
43 changed files with 533 additions and 171 deletions

View File

@ -1,3 +1,8 @@
2014-12-27 Eli Zaretskii <eliz@gnu.org>
* buffers.texi (Kill Buffer): Improve indexing.
2014-12-27 Paul Eggert <eggert@cs.ucla.edu>
2014-12-24 Stephen Leake <stephen_leake@stephe-leake.org>
* trouble.texi: Move user-level information from CONTRIBUTE here.

View File

@ -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}

View File

@ -1,3 +1,105 @@
2014-12-27 Eli Zaretskii <eliz@gnu.org>
* 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
sections.
* markers.texi (Predicates on Markers, Creating Markers)
(Information from Markers, Moving Markers): Index subject of
sections.
* 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
sections.
* 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 <monnier@iro.umontreal.ca>
2014-12-25 Martin Rudalics <rudalics@gmx.at>
* windows.texi (Windows): Resync @menu order with @node order.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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}

View File

@ -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.

View File

@ -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

View File

@ -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,

View 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

View File

@ -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

View File

@ -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:

View 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
minibuffer-window}).
@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

View File

@ -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 defadvice
@cindex old advices, porting
A lot of code uses the old @code{defadvice} mechanism, which is largely made
obsolete by the new @code{advice-add}, whose implementation and semantics is

View File

@ -188,6 +188,8 @@ Such objects may be added to the hash table after it is created.
@node Hash Access
@section Hash Table Access
@cindex accessing hash tables
@cindex hash table access
This section describes the functions for accessing and storing
associations in a hash table. In general, any Lisp object can be used

View File

@ -90,6 +90,7 @@ hyperlinks in the @file{*Help*} buffer.)
@node Accessing Documentation
@section Access to Documentation Strings
@cindex accessing documentation strings
@defun documentation-property symbol property &optional verbatim
This function returns the documentation string recorded in
@ -507,6 +508,7 @@ non-@code{nil}, the return value is always a vector.
@node Help Functions
@section Help Functions
@cindex help functions
Emacs provides a variety of built-in help functions, all accessible to
the user as subcommands of the prefix @kbd{C-h}. For more information

View File

@ -782,6 +782,7 @@ Lookup}.
@node Controlling Active Maps
@section Controlling the Active Keymaps
@cindex active keymap, controlling
@defvar global-map
This variable contains the default global keymap that maps Emacs
@ -1806,6 +1807,8 @@ local map.
@node Scanning Keymaps
@section Scanning Keymaps
@cindex scanning keymaps
@cindex keymaps, scanning
This section describes functions used to scan all the current keymaps
for the sake of printing help information.
@ -2775,6 +2778,7 @@ function keys.
@node Modifying Menus
@subsection Modifying Menus
@cindex menu modification
When you insert a new item in an existing menu, you probably want to
put it in a particular place among the menu's existing items. If you

View File

@ -84,6 +84,8 @@ structure made out of cons cells as a @dfn{list structure}.
@node List-related Predicates
@section Predicates on Lists
@cindex predicates for lists
@cindex list predicates
The following predicates test whether a Lisp object is an atom,
whether it is a cons cell or is a list, or whether it is the
@ -662,6 +664,8 @@ Some examples:
@node List Variables
@section Modifying List Variables
@cindex modify a list
@cindex list modification
These functions, and one macro, provide convenient ways
to modify a list which is stored in a variable.
@ -818,6 +822,8 @@ new @sc{car} or @sc{cdr}.
@node Setcar
@subsection Altering List Elements with @code{setcar}
@cindex replace list element
@cindex list, replace element
Changing the @sc{car} of a cons cell is done with @code{setcar}. When
used on a list, @code{setcar} replaces one element of a list with a
@ -923,6 +929,7 @@ x2: |
@node Setcdr
@subsection Altering the CDR of a List
@cindex replace part of list
The lowest-level primitive for modifying a @sc{cdr} is @code{setcdr}:
@ -1759,6 +1766,8 @@ and later discarded; this is not possible with a property list.
@node Plist Access
@subsection Property Lists Outside Symbols
@cindex plist access
@cindex accessing plist properties
The following functions can be used to manipulate property lists.
They all compare property names using @code{eq}.

View File

@ -419,6 +419,8 @@ the shadowed files as a string.
@node Loading Non-ASCII
@section Loading Non-@acronym{ASCII} Characters
@cindex loading, and non-ASCII characters
@cindex non-ASCII characters in loaded files
When Emacs Lisp programs contain string constants with non-@acronym{ASCII}
characters, these can be represented within Emacs either as unibyte
@ -907,6 +909,8 @@ with a call to @code{provide}. The order of the elements in the
@node Where Defined
@section Which File Defined a Certain Symbol
@cindex symbol, where defined
@cindex where was a symbol defined
@defun symbol-file symbol &optional type
This function returns the name of the file that defined @var{symbol}.

View File

@ -194,6 +194,8 @@ During Compile}).
@node Defining Macros
@section Defining Macros
@cindex defining macros
@cindex macro, how to define
A Lisp macro object is a list whose @sc{car} is @code{macro}, and
whose @sc{cdr} is a function. Expansion of the macro works
@ -253,6 +255,7 @@ Form}.
@node Problems with Macros
@section Common Problems Using Macros
@cindex macro caveats
Macro expansion can have counterintuitive consequences. This
section describes some important consequences that can lead to

View File

@ -118,6 +118,8 @@ m1
@node Predicates on Markers
@section Predicates on Markers
@cindex predicates for markers
@cindex markers, predicates for
You can test an object to see whether it is a marker, or whether it is
either an integer or a marker. The latter test is useful in connection
@ -141,6 +143,8 @@ integer or floating point) or a marker, @code{nil} otherwise.
@node Creating Markers
@section Functions that Create Markers
@cindex creating markers
@cindex marker creation
When you create a new marker, you can make it point nowhere, or point
to the present position of point, or to the beginning or end of the
@ -269,6 +273,7 @@ if they both point nowhere.
@node Information from Markers
@section Information from Markers
@cindex marker information
This section describes the functions for accessing the components of a
marker object.
@ -342,6 +347,8 @@ specify the insertion type, create them with insertion type
@node Moving Markers
@section Moving Marker Positions
@cindex moving markers
@cindex marker, how to move position
This section describes how to change the position of an existing
marker. When you do this, be sure you know whether the marker is used

View File

@ -107,6 +107,7 @@ are available in batch mode.
@node Text from Minibuffer
@section Reading Text Strings with the Minibuffer
@cindex minibuffer input, reading text strings
The most basic primitive for minibuffer input is
@code{read-from-minibuffer}, which can be used to read either a string
@ -390,6 +391,7 @@ following bindings, in addition to those of @code{minibuffer-local-map}:
@node Object from Minibuffer
@section Reading Lisp Objects with the Minibuffer
@cindex minibuffer input, reading lisp objects
This section describes functions for reading Lisp objects with the
minibuffer.
@ -2044,6 +2046,7 @@ Do you really want to remove everything? (yes or no)
@node Multiple Queries
@section Asking Multiple Y-or-N Questions
@cindex multiple yes-or-no questions
When you have a series of similar questions to ask, such as ``Do you
want to save this buffer'' for each buffer in turn, you should use
@ -2285,6 +2288,8 @@ default value is 0.25.
@node Minibuffer Contents
@section Minibuffer Contents
@cindex access minibuffer contents
@cindex minibuffer contents, accessing
These functions access the minibuffer prompt and contents.

View File

@ -783,6 +783,8 @@ of them is @code{nil}, it defaults to the first or last codepoint of
@node Scanning Charsets
@section Scanning for Character Sets
@cindex scanning for character sets
@cindex character set, searching
Sometimes it is useful to find out which character set a particular
character belongs to. One use for this is in determining which coding
@ -1620,6 +1622,9 @@ contents (as it usually does), it should examine the contents of
@node Specifying Coding Systems
@subsection Specifying a Coding System for One Operation
@cindex specify coding system
@cindex force coding system for operation
@cindex coding system for operation
You can specify the coding system for a specific operation by binding
the variables @code{coding-system-for-read} and/or

View File

@ -1208,6 +1208,7 @@ return value is @code{nil}.
@node Time of Day
@section Time of Day
@cindex time of day
This section explains how to determine the current time and time
zone.
@ -1320,6 +1321,7 @@ time zone.
@node Time Conversion
@section Time Conversion
@cindex calendrical information
@cindex time conversion
These functions convert time values (@pxref{Time of Day}) into
calendrical information and vice versa.
@ -1415,6 +1417,9 @@ on others, years as early as 1901 do work.
@node Time Parsing
@section Parsing and Formatting Times
@cindex time parsing
@cindex time formatting
@cindex formatting time values
These functions convert time values to text in a string, and vice versa.
Time values are lists of two to four integers (@pxref{Time of Day}).
@ -1643,6 +1648,9 @@ interactively, it prints the duration in the echo area.
@node Time Calculations
@section Time Calculations
@cindex time calculations
@cindex comparing time values
@cindex calendrical computations
These functions perform calendrical computations using time values
(@pxref{Time of Day}).
@ -1823,6 +1831,7 @@ cause anything special to happen.
@node Idle Timers
@section Idle Timers
@cindex idle timers
Here is how to set up a timer that runs when Emacs is idle for a
certain length of time. Aside from how to set them up, idle timers

View File

@ -465,6 +465,7 @@ beginning or end of a line.
@node Screen Lines
@subsection Motion by Screen Lines
@cindex screen lines, moving by
The line functions in the previous section count text lines, delimited
only by newline characters. By contrast, these functions count screen

View File

@ -63,6 +63,8 @@ Processes}.
@node Subprocess Creation
@section Functions that Create Subprocesses
@cindex create subprocess
@cindex process creation
There are three primitives that create a new subprocess in which to run
a program. One of them, @code{start-process}, creates an asynchronous
@ -734,6 +736,7 @@ happen sooner or later).
@node Process Information
@section Process Information
@cindex process information
Several functions return information about processes.

View File

@ -257,6 +257,8 @@ it easier to verify even very complex regexps.
@node Syntax of Regexps
@subsection Syntax of Regular Expressions
@cindex regexp syntax
@cindex syntax of regular expressions
Regular expressions have a syntax in which a few characters are
special constructs and the rest are @dfn{ordinary}. An ordinary
@ -294,6 +296,7 @@ need to use one of the special regular expression constructs.
@node Regexp Special
@subsubsection Special Characters in Regular Expressions
@cindex regexp, special characters in
Here is a list of the characters that are special in a regular
expression.
@ -894,6 +897,7 @@ beyond the minimum needed to end a sentence.
These functions operate on regular expressions.
@cindex quote special characters in regexp
@defun regexp-quote string
This function returns a regular expression whose only exact match is
@var{string}. Using this regular expression in @code{looking-at} will
@ -924,6 +928,7 @@ whitespace:
@end example
@end defun
@cindex optimize regexp
@defun regexp-opt strings &optional paren
This function returns an efficient regular expression that will match
any of the strings in the list @var{strings}. This is useful when you

View File

@ -92,6 +92,8 @@ representations and to encode and decode character codes.
@node Predicates for Strings
@section Predicates for Strings
@cindex predicates for strings
@cindex string predicates
For more information about general sequence and array predicates,
see @ref{Sequences Arrays Vectors}, and @ref{Arrays}.
@ -113,6 +115,8 @@ character (i.e., an integer), @code{nil} otherwise.
@node Creating Strings
@section Creating Strings
@cindex creating strings
@cindex string creation
The following functions create strings, either from scratch, or by
putting strings together, or by taking them apart.
@ -367,6 +371,8 @@ usual value is @w{@code{"[ \f\t\n\r\v]+"}}.
@node Modifying Strings
@section Modifying Strings
@cindex modifying strings
@cindex string modification
The most basic way to alter the contents of an existing string is with
@code{aset} (@pxref{Array Functions}). @code{(aset @var{string}
@ -400,6 +406,7 @@ zeros. It may also change @var{string}'s length.
@node Text Comparison
@section Comparison of Characters and Strings
@cindex string equality
@cindex text comparison
@defun char-equal character1 character2
This function returns @code{t} if the arguments represent the same

View File

@ -592,6 +592,8 @@ in turn, repeatedly, until they all return @code{nil}.
@node Motion and Syntax
@section Motion and Syntax
@cindex moving across syntax classes
@cindex skipping characters of certain syntax
This section describes functions for moving across characters that
have certain syntax classes.
@ -631,6 +633,8 @@ expression prefix syntax class, and characters with the @samp{p} flag.
@node Parsing Expressions
@section Parsing Expressions
@cindex parsing expressions
@cindex scanning expressions
This section describes functions for parsing and scanning balanced
expressions. We will refer to such expressions as @dfn{sexps},
@ -673,6 +677,7 @@ result, Emacs treats them as four consecutive empty string constants.
@node Motion via Parsing
@subsection Motion Commands Based on Parsing
@cindex motion based on parsing
This section describes simple point-motion functions that operate
based on parsing expressions.
@ -738,6 +743,7 @@ cannot exceed that many.
@node Position Parse
@subsection Finding the Parse State for a Position
@cindex parse state for a position
For syntactic analysis, such as in indentation, often the useful
thing is to compute the syntactic state corresponding to a given buffer
@ -919,6 +925,7 @@ nicely.
@node Control Parsing
@subsection Parameters to Control Parsing
@cindex parsing, control parameters
@defvar multibyte-syntax-as-symbol
If this variable is non-@code{nil}, @code{scan-sexps} treats all

View File

@ -162,6 +162,7 @@ the end of a line.
@node Buffer Contents
@section Examining Buffer Contents
@cindex buffer portion as string
This section describes functions that allow a Lisp program to
convert any portion of the text in the buffer into a string.
@ -2679,6 +2680,8 @@ along with the characters; this includes such diverse functions as
@node Examining Properties
@subsection Examining Text Properties
@cindex examining text properties
@cindex text properties, examining
The simplest way to examine text properties is to ask for the value of
a particular property of a particular character. For that, use
@ -2770,6 +2773,8 @@ used instead. Here is an example:
@node Changing Properties
@subsection Changing Text Properties
@cindex changing text properties
@cindex text properties, changing
The primitives for changing properties apply to a specified range of
text in a buffer or string. The function @code{set-text-properties}
@ -2933,6 +2938,8 @@ buffer but does not copy its properties.
@node Property Search
@subsection Text Property Search Functions
@cindex searching text properties
@cindex text properties, searching
In typical use of text properties, most of the time several or many
consecutive characters have the same value for a property. Rather than
@ -3991,6 +3998,8 @@ coalesced whenever possible. @xref{Property Search}.
@node Substitution
@section Substituting for a Character Code
@cindex replace characters in region
@cindex substitute characters
The following functions replace characters within a specified region
based on their character codes.

View File

@ -1951,6 +1951,7 @@ foo
@node Variables with Restricted Values
@section Variables with Restricted Values
@cindex lisp variables defined in C, restrictions
Ordinary Lisp variables can be assigned any value that is a valid
Lisp object. However, certain Lisp variables are not defined in Lisp,
@ -1987,6 +1988,8 @@ Attempting to assign them any other value will result in an error:
@node Generalized Variables
@section Generalized Variables
@cindex generalized variable
@cindex place form
A @dfn{generalized variable} or @dfn{place form} is one of the many places
in Lisp memory where values can be stored. The simplest place form is
a regular Lisp variable. But the @sc{car}s and @sc{cdr}s of lists, elements

View File

@ -1252,6 +1252,8 @@ are the opposite of what they are in those other functions.
@node Recombining Windows
@section Recombining Windows
@cindex recombining windows
@cindex windows, recombining
When deleting the last sibling of a window @var{W}, its parent window
is deleted too, with @var{W} replacing it in the window tree. This

View File

@ -1,3 +1,48 @@
2014-12-27 Michael Albinus <michael.albinus@gmx.de>
* 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.
2014-12-27 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/js.el (js-syntax-propertize): "return" can't be divided
(bug#19397).
2014-12-27 Michael Albinus <michael.albinus@gmx.de>
* net/tramp.el (tramp-read-passwd): Ignore errors from `auth-source-*'.
* 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.
2014-12-27 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/sh-script.el (sh-set-shell): Don't change the global value
of indent-line-function (bug#19433).
2014-12-27 Fabián Ezequiel Gallina <fgallina@gnu.org>
Fix line numbers on Python shell.
* progmodes/python.el (python-shell--save-temp-file): Do not
append coding cookie.
(python-shell-send-string): Generalize for
python-shell-send-region.
(python--use-fake-loc): Delete var.
(python-shell-buffer-substring): Cleanup fake-loc logic.
(python-shell-send-region): Remove fake-loc logic, simplify.
2014-12-27 Fabián Ezequiel Gallina <fgallina@gnu.org>
* progmodes/python.el (python-indent-post-self-insert-function):
Make colon to re-indent only for dedenters, handling
multiline-statements gracefully.
2014-12-27 Michael Albinus <michael.albinus@gmx.de>
* net/tramp.el (tramp-handle-insert-file-contents):
Set `find-file-not-found-functions' in case of errors. (Bug#18623)
2014-12-27 Michael Albinus <michael.albinus@gmx.de>
2014-12-27 Michael Albinus <michael.albinus@gmx.de>
* net/tramp-sh.el (tramp-send-command-and-read): New optional

View File

@ -2471,8 +2471,12 @@ The method used must be an out-of-band method."
(mapconcat 'identity (process-command p) " "))
(tramp-set-connection-property p "vector" orig-vec)
(tramp-compat-set-process-query-on-exit-flag p nil)
(tramp-process-actions
p v nil tramp-actions-copy-out-of-band)
;; We must adapt `tramp-local-end-of-line' for
;; sending the password.
(let ((tramp-local-end-of-line tramp-rsh-end-of-line))
(tramp-process-actions
p v nil tramp-actions-copy-out-of-band))
;; Check the return code.
(goto-char (point-max))

View File

@ -3086,115 +3086,118 @@ User is always nil."
(setq filename (expand-file-name filename))
(let (result local-copy remote-copy)
(with-parsed-tramp-file-name filename nil
(with-tramp-progress-reporter
v 3 (format "Inserting `%s'" filename)
(unwind-protect
(if (not (file-exists-p filename))
(progn
;; We don't raise a Tramp error, because it might be
;; suppressed, like in `find-file-noselect-1'.
(tramp-message
v 1 "File not `%s' found on remote host" filename)
(signal 'file-error
(list "File not found on remote host" filename)))
(unwind-protect
(if (not (file-exists-p filename))
(tramp-error
v 'file-error "File `%s' not found on remote host" filename)
(if (and (tramp-local-host-p v)
(let (file-name-handler-alist)
(file-readable-p localname)))
;; Short track: if we are on the local host, we can
;; run directly.
(setq result
(tramp-run-real-handler
'insert-file-contents
(list localname visit beg end replace)))
(with-tramp-progress-reporter
v 3 (format "Inserting `%s'" filename)
(condition-case err
(if (and (tramp-local-host-p v)
(let (file-name-handler-alist)
(file-readable-p localname)))
;; Short track: if we are on the local host, we can
;; run directly.
(setq result
(tramp-run-real-handler
'insert-file-contents
(list localname visit beg end replace)))
;; When we shall insert only a part of the file, we
;; copy this part. This works only for the shell file
;; name handlers.
(when (and (or beg end)
(tramp-get-method-parameter
(tramp-file-name-method v) 'tramp-login-program))
(setq remote-copy (tramp-make-tramp-temp-file v))
;; This is defined in tramp-sh.el. Let's assume
;; this is loaded already.
(tramp-compat-funcall
'tramp-send-command
v
(cond
((and beg end)
(format "dd bs=1 skip=%d if=%s count=%d of=%s"
beg (tramp-shell-quote-argument localname)
(- end beg) remote-copy))
(beg
(format "dd bs=1 skip=%d if=%s of=%s"
beg (tramp-shell-quote-argument localname)
remote-copy))
(end
(format "dd bs=1 count=%d if=%s of=%s"
end (tramp-shell-quote-argument localname)
remote-copy))))
(setq tramp-temp-buffer-file-name nil beg nil end nil))
;; When we shall insert only a part of the file, we
;; copy this part. This works only for the shell file
;; name handlers.
(when (and (or beg end)
(tramp-get-method-parameter
(tramp-file-name-method v)
'tramp-login-program))
(setq remote-copy (tramp-make-tramp-temp-file v))
;; This is defined in tramp-sh.el. Let's assume
;; this is loaded already.
(tramp-compat-funcall
'tramp-send-command
v
(cond
((and beg end)
(format "dd bs=1 skip=%d if=%s count=%d of=%s"
beg (tramp-shell-quote-argument localname)
(- end beg) remote-copy))
(beg
(format "dd bs=1 skip=%d if=%s of=%s"
beg (tramp-shell-quote-argument localname)
remote-copy))
(end
(format "dd bs=1 count=%d if=%s of=%s"
end (tramp-shell-quote-argument localname)
remote-copy))))
(setq tramp-temp-buffer-file-name nil beg nil end nil))
;; `insert-file-contents-literally' takes care to
;; avoid calling jka-compr. By let-binding
;; `inhibit-file-name-operation', we propagate that
;; care to the `file-local-copy' operation.
(setq local-copy
(let ((inhibit-file-name-operation
(when (eq inhibit-file-name-operation
'insert-file-contents)
'file-local-copy)))
(cond
((stringp remote-copy)
(file-local-copy
(tramp-make-tramp-file-name
method user host remote-copy)))
((stringp tramp-temp-buffer-file-name)
(copy-file filename tramp-temp-buffer-file-name 'ok)
tramp-temp-buffer-file-name)
(t (file-local-copy filename)))))
;; `insert-file-contents-literally' takes care to
;; avoid calling jka-compr. By let-binding
;; `inhibit-file-name-operation', we propagate that
;; care to the `file-local-copy' operation.
(setq local-copy
(let ((inhibit-file-name-operation
(when (eq inhibit-file-name-operation
'insert-file-contents)
'file-local-copy)))
(cond
((stringp remote-copy)
(file-local-copy
(tramp-make-tramp-file-name
method user host remote-copy)))
((stringp tramp-temp-buffer-file-name)
(copy-file
filename tramp-temp-buffer-file-name 'ok)
tramp-temp-buffer-file-name)
(t (file-local-copy filename)))))
;; When the file is not readable for the owner, it
;; cannot be inserted, even if it is readable for the
;; group or for everybody.
(set-file-modes
local-copy (tramp-compat-octal-to-decimal "0600"))
;; When the file is not readable for the owner, it
;; cannot be inserted, even if it is readable for the
;; group or for everybody.
(set-file-modes
local-copy (tramp-compat-octal-to-decimal "0600"))
(when (and (null remote-copy)
(tramp-get-method-parameter
method 'tramp-copy-keep-tmpfile))
;; We keep the local file for performance reasons,
;; useful for "rsync".
(setq tramp-temp-buffer-file-name local-copy))
(when (and (null remote-copy)
(tramp-get-method-parameter
method 'tramp-copy-keep-tmpfile))
;; We keep the local file for performance reasons,
;; useful for "rsync".
(setq tramp-temp-buffer-file-name local-copy))
;; We must ensure that `file-coding-system-alist'
;; matches `local-copy'. We must also use `visit',
;; otherwise there might be an error in the
;; `revert-buffer' function under XEmacs.
(let ((file-coding-system-alist
(tramp-find-file-name-coding-system-alist
filename local-copy)))
(setq result
(insert-file-contents
local-copy visit beg end replace)))))
;; We must ensure that `file-coding-system-alist'
;; matches `local-copy'. We must also use `visit',
;; otherwise there might be an error in the
;; `revert-buffer' function under XEmacs.
(let ((file-coding-system-alist
(tramp-find-file-name-coding-system-alist
filename local-copy)))
(setq result
(insert-file-contents
local-copy visit beg end replace))))
(error
(add-hook 'find-file-not-found-functions
`(lambda () (signal ',(car err) ',(cdr err)))
nil t)
(signal (car err) (cdr err))))))
;; Save exit.
(progn
(when visit
(setq buffer-file-name filename)
(setq buffer-read-only (not (file-writable-p filename)))
(set-visited-file-modtime)
(set-buffer-modified-p nil))
(when (and (stringp local-copy)
(or remote-copy (null tramp-temp-buffer-file-name)))
(delete-file local-copy))
(when (stringp remote-copy)
(delete-file
(tramp-make-tramp-file-name method user host remote-copy)))))))
;; Save exit.
(progn
(when visit
(setq buffer-file-name filename)
(setq buffer-read-only (not (file-writable-p filename)))
(set-visited-file-modtime)
(set-buffer-modified-p nil))
(when (and (stringp local-copy)
(or remote-copy (null tramp-temp-buffer-file-name)))
(delete-file local-copy))
(when (stringp remote-copy)
(delete-file
(tramp-make-tramp-file-name method user host remote-copy)))))
;; Result.
(list (expand-file-name filename)
(cadr result))))
;; Result.
(list (expand-file-name filename)
(cadr result)))))
(defun tramp-handle-load (file &optional noerror nomessage nosuffix must-suffix)
"Like `load' for Tramp files."
@ -4188,25 +4191,27 @@ Invokes `password-read' if available, `read-passwd' else."
;; it's bound. `auth-source-user-or-password' is an
;; obsoleted function, it has been replaced by
;; `auth-source-search'.
(and (boundp 'auth-sources)
(tramp-get-connection-property
v "first-password-request" nil)
;; Try with Tramp's current method.
(if (fboundp 'auth-source-search)
(setq auth-info
(tramp-compat-funcall
'auth-source-search
:max 1
:user (or tramp-current-user t)
:host tramp-current-host
:port tramp-current-method)
auth-passwd (plist-get (nth 0 auth-info) :secret)
auth-passwd (if (functionp auth-passwd)
(funcall auth-passwd)
auth-passwd))
(tramp-compat-funcall
'auth-source-user-or-password
"password" tramp-current-host tramp-current-method)))
(ignore-errors
(and (boundp 'auth-sources)
(tramp-get-connection-property
v "first-password-request" nil)
;; Try with Tramp's current method.
(if (fboundp 'auth-source-search)
(setq auth-info
(tramp-compat-funcall
'auth-source-search
:max 1
:user (or tramp-current-user t)
:host tramp-current-host
:port tramp-current-method)
auth-passwd (plist-get
(nth 0 auth-info) :secret)
auth-passwd (if (functionp auth-passwd)
(funcall auth-passwd)
auth-passwd))
(tramp-compat-funcall
'auth-source-user-or-password
"password" tramp-current-host tramp-current-method))))
;; Try the password cache.
(when (functionp 'password-read)
(let ((password

View File

@ -1673,7 +1673,7 @@ This performs fontification according to `js--class-styles'."
;; We can probably just add +, -, !, <, >, %, ^, ~, |, &, ?, : at which
;; point I think only * and / would be missing which could also be added,
;; but need care to avoid affecting the // and */ comment markers.
("\\(?:^\\|[=([{,:;]\\)\\(?:[ \t]\\)*\\(/\\)[^/*]"
("\\(?:^\\|[=([{,:;]\\|\\_<return\\_>\\)\\(?:[ \t]\\)*\\(/\\)[^/*]"
(1 (ignore
(forward-char -1)
(when (or (not (memq (char-after (match-beginning 0)) '(?\s ?\t)))

View File

@ -1206,12 +1206,18 @@ the line will be re-indented automatically if needed."
(eolp)
;; Avoid re-indenting on extra colon
(not (equal ?: (char-before (1- (point)))))
(not (python-syntax-comment-or-string-p))
;; Never re-indent at beginning of defun
(not (save-excursion
(python-nav-beginning-of-statement)
(python-info-looking-at-beginning-of-defun))))
(python-indent-line)))))
(not (python-syntax-comment-or-string-p)))
;; Just re-indent dedenters
(let ((dedenter-pos (python-info-dedenter-statement-p))
(current-pos (point)))
(when dedenter-pos
(save-excursion
(goto-char dedenter-pos)
(python-indent-line)
(unless (= (line-number-at-pos dedenter-pos)
(line-number-at-pos current-pos))
;; Reindent region if this is a multiline statement
(python-indent-region dedenter-pos current-pos)))))))))
;;; Navigation
@ -2608,9 +2614,12 @@ there for compatibility with CEDET.")
(concat (file-remote-p default-directory) "/tmp")
temporary-file-directory))
(temp-file-name (make-temp-file "py"))
;; XXX: Python's built-in compile function accepts utf-8 as
;; input so there's no need to enforce a coding cookie. In
;; the future making `coding-system-for-write' match the
;; current buffer's coding may be a good idea.
(coding-system-for-write 'utf-8))
(with-temp-file temp-file-name
(insert "# -*- coding: utf-8 -*-\n") ;Not needed for Python-3.
(insert string)
(delete-trailing-whitespace))
temp-file-name))
@ -2620,8 +2629,9 @@ there for compatibility with CEDET.")
(interactive "sPython command: ")
(let ((process (or process (python-shell-get-or-create-process))))
(if (string-match ".\n+." string) ;Multiline.
(let* ((temp-file-name (python-shell--save-temp-file string)))
(python-shell-send-file temp-file-name process temp-file-name t))
(let* ((temp-file-name (python-shell--save-temp-file string))
(file-name (or (buffer-file-name) temp-file-name)))
(python-shell-send-file file-name process temp-file-name t))
(comint-send-string process string)
(when (or (not (string-match "\n\\'" string))
(string-match "\n[ \t].*\n?\\'" string))
@ -2697,12 +2707,6 @@ Returns the output. See `python-shell-send-string-no-output'."
(define-obsolete-function-alias
'python-send-string 'python-shell-internal-send-string "24.3")
(defvar python--use-fake-loc nil
"If non-nil, use `compilation-fake-loc' to trace errors back to the buffer.
If nil, regions of text are prepended by the corresponding number of empty
lines and Python is told to output error messages referring to the whole
source file.")
(defun python-shell-buffer-substring (start end &optional nomain)
"Send buffer substring from START to END formatted for shell.
This is a wrapper over `buffer-substring' that takes care of
@ -2715,8 +2719,7 @@ the python shell:
3. Wraps indented regions under an \"if True:\" block so the
interpreter evaluates them correctly."
(let ((substring (buffer-substring-no-properties start end))
(fillstr (unless python--use-fake-loc
(make-string (1- (line-number-at-pos start)) ?\n)))
(fillstr (make-string (1- (line-number-at-pos start)) ?\n))
(toplevel-block-p (save-excursion
(goto-char start)
(or (zerop (line-number-at-pos start))
@ -2728,11 +2731,6 @@ the python shell:
(if fillstr (insert fillstr))
(insert substring)
(goto-char (point-min))
(unless python--use-fake-loc
;; python-shell--save-temp-file adds an extra coding line, which would
;; throw off the line-counts, so let's try to compensate here.
(if (looking-at "[ \t]*[#\n]")
(delete-region (point) (line-beginning-position 2))))
(when (not toplevel-block-p)
(insert "if True:")
(delete-region (point) (line-end-position)))
@ -2756,26 +2754,14 @@ the python shell:
(line-number-at-pos if-name-main-start)) ?\n)))))
(buffer-substring-no-properties (point-min) (point-max)))))
(declare-function compilation-fake-loc "compile"
(marker file &optional line col))
(defun python-shell-send-region (start end &optional nomain)
"Send the region delimited by START and END to inferior Python process."
(interactive "r")
(let* ((python--use-fake-loc
(or python--use-fake-loc (not buffer-file-name)))
(string (python-shell-buffer-substring start end nomain))
(let* ((string (python-shell-buffer-substring start end nomain))
(process (python-shell-get-or-create-process))
(_ (string-match "\\`\n*\\(.*\\)" string)))
(message "Sent: %s..." (match-string 1 string))
(let* ((temp-file-name (python-shell--save-temp-file string))
(file-name (or (buffer-file-name) temp-file-name)))
(python-shell-send-file file-name process temp-file-name t)
(unless python--use-fake-loc
(with-current-buffer (process-buffer process)
(compilation-fake-loc (copy-marker start) temp-file-name
2)) ;; Not 1, because of the added coding line.
))))
(python-shell-send-string string process)))
(defun python-shell-send-buffer (&optional arg)
"Send the entire buffer to inferior Python process.

View File

@ -2374,7 +2374,7 @@ Calls the value of `sh-set-shell-hook' if set."
(sh-make-vars-local))
(message "Indentation setup for shell type %s" sh-shell))
(message "No indentation for this shell type.")
(setq indent-line-function 'sh-basic-indent-line))
(setq-local indent-line-function 'sh-basic-indent-line))
(when font-lock-mode
(setq font-lock-set-defaults nil)
(font-lock-set-defaults)

View File

@ -1,3 +1,7 @@
2014-12-27 Jan Djärv <jan.h.d@swipnet.se>
* xterm.c (do_ewmh_fullscreen): Don't remove maximized_horz/vert
when going to fullscreen (Bug#0x180004f).
2014-12-27 Stefan Monnier <monnier@iro.umontreal.ca>
* buffer.c (syms_of_buffer) <Vafter_change_functions>: fix docstring.

View File

@ -9230,13 +9230,9 @@ do_ewmh_fullscreen (struct frame *f)
switch (f->want_fullscreen)
{
case FULLSCREEN_BOTH:
if (cur == FULLSCREEN_WIDTH || cur == FULLSCREEN_MAXIMIZED
|| cur == FULLSCREEN_HEIGHT)
set_wm_state (frame, false,
dpyinfo->Xatom_net_wm_state_maximized_horz,
dpyinfo->Xatom_net_wm_state_maximized_vert);
set_wm_state (frame, true,
dpyinfo->Xatom_net_wm_state_fullscreen, None);
if (cur != FULLSCREEN_BOTH)
set_wm_state (frame, true, dpyinfo->Xatom_net_wm_state_fullscreen,
None);
break;
case FULLSCREEN_WIDTH:
if (cur == FULLSCREEN_BOTH || cur == FULLSCREEN_HEIGHT

View File

@ -1,3 +1,9 @@
2014-12-27 Fabián Ezequiel Gallina <fgallina@gnu.org>
* automated/python-tests.el (python-indent-electric-colon-2)
(python-indent-electric-colon-3): New tests.
2014-12-27 João Távora <joaotavora@gmail.com>
2014-12-27 João Távora <joaotavora@gmail.com>
* automated/electric-tests.el (autowrapping-7): Tests for

View File

@ -740,6 +740,39 @@ def b()
(python-tests-self-insert ":")
(should (= (current-indentation) 0))))
(ert-deftest python-indent-electric-colon-2 ()
"Test indentation case for dedenter."
(python-tests-with-temp-buffer
"
if do:
something()
else
"
(python-tests-look-at "else")
(goto-char (line-end-position))
(python-tests-self-insert ":")
(should (= (current-indentation) 0))))
(ert-deftest python-indent-electric-colon-3 ()
"Test indentation case for multi-line dedenter."
(python-tests-with-temp-buffer
"
if do:
something()
elif (this
and
that)
"
(python-tests-look-at "that)")
(goto-char (line-end-position))
(python-tests-self-insert ":")
(python-tests-look-at "elif" -1)
(should (= (current-indentation) 0))
(python-tests-look-at "and")
(should (= (current-indentation) 6))
(python-tests-look-at "that)")
(should (= (current-indentation) 6))))
(ert-deftest python-indent-region-1 ()
"Test indentation case from Bug#18843."
(let ((contents "