* doc/lispref/windows.texi (Basic Windows): Add an @anchor for "Window
Groups". Correct example function to `window-group-start'.
(Window Start and End, Textual scrolling): Point to the new anchor. State
that (most of) the args in window group functions have the same meaning as for
the corresponding window primitives.
* doc/lispref/positions.texi (Screen Lines). Same as above.
* doc/lispref/windows.texi (Window Start and End, Textual Scrolling)
* doc/lispref/positions.texi (Screen Lines): Remove optional GROUP argument
from description of six window functions. Add in description of new functions
window-group-start, window-group-end, set-window-group-start,
pos-visible-in-window-group-p, recenter-group and move-to-window-group-line,
together with the six variables indirecting to the pertinent group
functions.
* src/window.c
* src/keyboard.c: Revert the commit from 2015-11-11 12:02:48, in so far as it
applies to these two files, which added the GROUP argument to six window
primitives.
* lisp/follow.el (follow-mode): Use updated variable names for the indirected
functions.
* lisp/isearch.el (isearch-update, isearch-done, isearch-string-out-of-window)
(isearch-back-into-window, isearch-lazy-highlight-new-loop)
(isearch-lazy-highlight-search, isearch-lazy-highlight-update): Replace calls
to window primitives (e.g. window-start) with a GROUP argument by calls to
new functions (e.g. window-group-start).
* lisp/ispell.el (ispell-command-loop): Replace call to
pos-visible-in-window-p with pos-visible-in-window-group-p.
* lisp/window.el (window-group-start, window-group-end)
(set-window-group-start, recenter-group, pos-visible-in-window-group-p)
(selected-window-group, move-to-window-group-line): New functions.
(window-group-start-function, window-group-end-function)
(set-window-group-start-function, recenter-group-function)
(pos-visible-in-window-group-p-function, selected-window-group-function)
(move-to-window-group-line-function): New variables.
* doc/lispref/functions.texi (Mapping Functions): Amend the doc of `mapconcat'
to say that SEPARATOR and the results from FUNCTION may be any character
sequences, not just strings. Add an @xref to "Sequences Arrays Vectors".
doc/lispref/window.texi (Basic Windows): Add paragraph defining "Group of
Windows" and new @defun selected-window-group.
(Window Start and End): Describe new &optional parameter GROUP and
...-group-function for window-start, window-end, set-window-start, and
pos-visible-in-window-p.
(Textual Scrolling) Describe the same for recenter.
doc/lispref/positions.texi (Screen Lines): Describe the same for
move-to-window-line.
src/window.c (Fwindow_start, Fwindow_end, Fset_window_start)
(Fpos_visible_in_window_p, Frecenter, Fmove_to_window_line): To each, add ar
new optional parameter "group". At the beginning of each, check whether the
corresponding ...-group-function is set to a function, and if so execute this
function in place of the normal processing.
(syms_of_window): Define symbols for the six new variables below.
(window-start-group-function, window-end-group-function)
(set-window-start-group-function, recenter-group-function)
(pos-visible-in-window-p-group-function, move-to-window-line-group-function):
New permanent local buffer local variables.
src/keyboard.c (Fposn_at_point): Add extra parameter in call to
Fpos_visible_in_window_p.
lisp/window.el (selected-window-group-function): New permanent local buffer
local variable.
(selected-window-group): New function.
lisp/follow.el (follow-mode): Set the ...-group-function variables at mode
enable, kill them at mode disable. Add/remove follow-after-change to/from
after-change-functions.
(follow-start-end-invalid): New variable.
(follow-redisplay): Manipulate follow-start-end-invalid.
(follow-after-change, follow-window-start, follow-window-end)
(follow-set-window-start, follow-pos-visible-in-window-p)
(follow-move-to-window-line, follow-sit-for): New functions.
lisp/isearch.el (isearch-call-message): New macro.
(isearch-update, with-isearch-suspended, isearch-del-char)
(isearch-search-and-update, isearch-ring-adjust): Invoke above new macro.
(with-isearch-suspended): Rearrange code such that isearch-call-message is
invoked before point is moved.
(isearch-message): Add comment about where point must be at function call.
(isearch-search): Remove call to isearch-message.
(isearch-lazy-highlight-window-group): New variable.
(isearch-lazy-highlight-new-loop): Unconditionally start idle timer. Move
the battery of tests to ...
(isearch-lazy-highlight-maybe-new-loop): New function, started by idle timer.
Note: (sit-for 0) is still called.
(isearch-lazy-highlight-update): Check membership of
isearch-lazy-highlight-window-group. Don't set the `window' overlay
property.
(isearch-update, isearch-done, isearch-string-out-of-window)
(isearch-back-into-window, isearch-lazy-highlight-maybe-new-loop)
(isearch-lazy-highlight-search, isearch-lazy-highlight-update)
(isearch-lazy-highlight-update): Call the six amended primitives (see
src/window.c above) with the new `group' argument set to t, to cooperate
with Follow Mode.
* doc/lispref/display.texi (Low-Level Font): Document
'default-font-width', 'default-font-height', 'window-font-width',
and 'window-font-height'.
* etc/NEWS: Move entries for 'default-font-width',
'default-font-height', 'window-font-width', and 'window-font-height'
to their place and mark them documented.
* lisp/files.el (directory-name-p): Modify to recognize
backslashes on MS-Windows and MS-DOS. Adjust the doc string
accordingly. Use '=', not char-equal, for comparison, as
letter-case cannot possibly be an issue here.
* doc/lispref/files.texi (Directory Names): Move the documentation
of directory-name-p here from "Relative File Names". Update the
description per the changes in implementation.
* etc/NEWS: Move the entry for 'directory-name-p' to its proper
place and mark it documented.
* lisp/isearch.el (isearch-forward-word, isearch-forward-symbol)
(word-search-backward, word-search-forward)
(word-search-backward-lax, word-search-forward-lax): Mention in
doc strings that toggling lax whitespace matching has no effect on
these commands.
* doc/emacs/search.texi (Word Search, Symbol Search): Clarify that
lax whitespace matching has no effect on these commands.
* lisp/files.el (directory-files-recursively): Doc fix. Rename
the argument MATCH to REGEXP, to be more explicit about its form.
* doc/lispref/files.texi (Contents of Directories): Improve the
documentation of 'directory-files-recursively'. Add
cross-references.
* etc/NEWS: Move the entry for 'directory-files-recursively' to
its place and mark it documented.
* doc/lispref/text.texi (Special Properties): Describe the new
'inhibit-read-only' text property. Add cross-reference to where
read-only buffers are described.
* doc/lispref/buffers.texi (Read Only Buffers): Mention that
'inhibit-read-only' property exempts text from being read-only.
Add cross-reference to "Special Properties".
* etc/NEWS: Move the entry about 'inhibit-read-only' property to
its place and mark it documented.
* doc/emacs/search.texi (Word Search, Symbol Search)
(Regexp Search): Document commands that don't support lax
whitespace matching or character folding.
(Nonincremental Search): Mention the search commands that can be
invoked from the menu bar.
* lisp/isearch.el (isearch-define-mode-toggle-word)
(isearch-define-mode-toggle-symbol)
(isearch-define-mode-toggle-character-fold): Note in the doc
string that turning these on exits the regexp mode.
(isearch-forward-regexp, isearch-forward-word)
(isearch-forward-symbol, isearch-backward-regexp)
(word-search-backward, word-search-forward)
(word-search-backward-lax, word-search-forward-lax): State in the
doc string which commands don't support character folding and/or
lax-whitespace matching.
* doc/lispref/strings.texi (Text Comparison): Improve wording and
indexing of 'string-collate-equalp' and 'string-collate-lessp'.
* etc/NEWS: Move the entry of 'string-collate-equalp' and
'string-collate-lessp' to "Lisp Changes" section and mark it as
documented.
* doc/lispref/display.texi (Size of Displayed Text): Document
'truncate-string-ellipsis'.
* lisp/international/mule-util.el (truncate-string-ellipsis): Doc fix.
(truncate-string-to-width): Mention in the doc string that the
default for ELLIPSIS comes from 'truncate-string-ellipsis'.
* etc/NEWS: Move the 'truncate-string-ellipsis' entry to the "Lisp
Changes" section.
* doc/emacs/search.texi (Nonincremental Search, Regexp Search):
Document that invoking search-forward/backward and
re-search-forward/backward supports only case folding, but not the
rest of the lax-search features. Reported by Mike Kupfer
<m.kupfer@acm.org>.
* doc/emacs/killing.texi (Clipboard): Rename
x-select-enable-clipboard to select-enable-clipboard and
x-select-enable-primary to select-enable-primary. Update index
entries.
* etc/NEWS: Mark entry as documented.
* doc/emacs/m-x.texi (M-x): Document the numeric meaning of
suggest-key-bindings. Document the shorthand hints for commands
that have no key bindings. Document that M-x completion ignores
obsolete commands.
* etc/NEWS: Move the M-x entry to "Editing Changes" and mark it as
documented.
* doc/emacs/custom.texi (Saving Customizations): Index the new
function 'custom-prompt-customize-unsaved-options'.
* etc/NEWS: Mention when 'custom-prompt-customize-unsaved-options'
is useful.
* doc/lispref/tips.texi (Tips, Library Headers): Document the
keyword-checking features of checkdoc and the commands
'checkdoc-file' and 'checkdoc-current-buffer'.
* etc/NEWS: Move the checkdoc-related entries to their own
section.
* doc/emacs/search.texi (Replacement and Lax Matches): Document
which commands are affected by 'replace-character-fold'.
(Lax Search): Add a cross reference to "Replacement and Lax
Matches". Improve wording. Fix lost extra whitespace.
(Search Customizations): Improve wording. (Bug#22036)
See also comments in
http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02376.html.
* lisp/replace.el (query-replace, query-replace-regexp)
(query-replace-regexp-eval, replace-string, replace-regexp):
Mention 'replace-character-fold' in the doc strings.
* doc/emacs/search.texi (Lax Search): Renamed from "Search Case";
all references changed. Move the description of lax-whitespace
here. Add description of the new character folding features and
additional customizable options.
(Isearch Yank): Move before "Error in Search".
(Basic Isearch): Improve wording. Add index entries. Add short
description of how to abandon search, making this subsection a
complete introduction to search basics.
(Repeat Isearch): Add index entries. Describe additional
customizable options. Describe mouse clicks.
(Isearch Yank): Add index entries. Describe mouse-2 click in echo
area. Describe more customizable options.
(Error in Isearch): Add index entries.
(Special Isearch): Move actual description of some isearch
commands to other sections, leaving here just the summary of the
commands. Add command that toggles character folding. Describe
commands, like "C-h C-h", that were previously omitted for some
reason.
(Not Exiting Isearch): Describe search-exit-option. Add index
entries.
(Word Search): Describe eww-search-word and eww-search-prefix.
(Symbol Search): Add index entries.
(Regexp Search): Describe regexp-search-ring-max.
(Replacement and Lax Matches): Renamed from "Replacement and
Case"; all references changed. Describe lax-whitespace matching
in replace commands and related options. Describe character
folding in replace commands and related options.
(Query Replace): Describe query-replace-from-to-separator and the
new history features. Add index entries for highlighted text.
Describe query-replace-skip-read-only. Describe more keys
accepted by query-replace.
(Other Repeating Search): More index entries for Occur. Describe
list-matching-lines-default-context-lines.
(Search Customizations): New section, documents customizable
options that were not documented until now.
* doc/emacs/glossary.texi (Glossary): Add "Case Folding" and
"Character Folding".
* etc/NEWS: Move search- and replace-related entries to a single
parent section.
* lisp/replace.el (query-replace-show-replacement): Doc fix.
* lisp/isearch.el (search-nonincremental-instead)
(isearch-hide-immediately): Doc fixes.
* src/window.c (grow_mini_window, shrink_mini_window): Set the
frame's 'window_sizes_changed' flag.
* src/xdisp.c (redisplay_internal): Call the hooks on
'window-size-change-functions' if the call to 'echo_area_display'
sets the frame's 'window_sizes_changed' flag.
(syms_of_xdisp) <window-size-change-functions>:
Update doc string to indicate the mini-window resizes trigger a
call to the hooks, and don't promise that will happen "before
redisplay". (Bug#19576, Bug#21333)
* doc/lispref/windows.texi (Window Hooks): Update the description
of 'window-size-change-functions'.
* src/w32fns.c (Fw32_notification_notify): Delete the code that
supports ':timeout'.
(syms_of_w32fns): Don't DEFSYM ':timeout'. This avoids clashes
with dbusbind.c when D-Bus is compiled in.
* doc/lispref/os.texi (Desktop Notifications): Don't mention
':timeout'.
Backport.
lisp/progmodes/cc-engine.el (c-backward-single-comment, c-backward-comments)
(c-invalidate-state-cache-1, c-parse-state-1, c-guess-basic-syntax):
remove bindings of open-paren-in-column-0-is-defun-start to nil.
(c-get-fallback-scan-pos): "New" function (existed several years ago).
(c-parse-state-get-strategy): Reintroduce the 'BOD strategy, using
c-get-fallback-scan-pos.
(c-parse-state-1): Handle 'BOD strategy.
lisp/progmodes/cc-mode.el (c-before-change, c-after-change)
c-font-lock-fontify-region): remove bindings of
open-paren-in-column-0-is-defun-start to nil.
cc-mode.texi (Performance Issues, Limitations and Known Bugs): Fix mix up
between @chapter and @appendix.
* lisp/emacs-lisp/seq.el (seqp): New name.
* lisp/emacs-lisp/map.el (mapp): New name.
* doc/lispref/sequences.texi: Update the documentation for seqp.
* test/automated/map-tests.el: Update the tests for mapp.