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 behavior936d5e5
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:
commit
411c1c6531
@ -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.
|
||||
|
@ -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}
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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}.
|
||||
|
@ -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}.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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))
|
||||
|
@ -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
|
||||
|
@ -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)))
|
||||
|
@ -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.
|
||||
|
@ -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)
|
||||
|
@ -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.
|
||||
|
10
src/xterm.c
10
src/xterm.c
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 "
|
||||
|
Loading…
Reference in New Issue
Block a user