* etc/NEWS: Mention support of remote file browsing.
* lisp/net/browse-url.el (browse-url-of-buffer): Revert last change.
(browse-url-of-file): Use temporary file in case of remote file.
(Bug#48397)
* lisp/progmodes/grep.el (grep-compute-defaults):
Add '-H' to grep-find-template (bug#48471).
* lisp/cedet/semantic/symref/grep.el (semantic-symref-perform-search):
Pass the root directory name without the trailing slash.
* lisp/progmodes/xref.el (xref-matches-in-directory): Ditto.
* test/lisp/progmodes/xref-tests.el (xref--xref-file-name-display-is-abs)
(xref--xref-file-name-display-is-relative-to-project-root):
Make tests more strict again.
* lisp/progmodes/etags.el (tags-search, tags-query-replace): Link
to 'fileloop-continue' instead of 'tags-loop-continue', for
continuing TAGS-based search/replace commands.
* lisp/fileloop.el (fileloop-continue): Reset
'switch-to-buffer-preserve-window-point' to nil when switching to
another buffer, so as to make sure a new search always restarts
from point-min in each buffer it searches. (Bug#48628)
Tag declarations starting lines with ':-'.
By default, all declarations are tagged. Optionally, first
predicate or functions in clauses can be tagged as in Prolog
support using '--declarations'. (Bug#47408).
* lib-src/etags.c (test_objc_is_mercury, Mercury_functions)
(mercury_skip_comment, mercury_decl, mercury_pr):
Implement Mercury support. As Mercury and Objective-C have
the same file extension .m, a heuristic test tries to detect
the language.
* doc/man/etags.1: Document the change. Add Mercury-specific
behavior for '--declarations'. This option tags first
predicates or functions in clauses in addition to declarations.
* src/nsterm.m: remove NSWindowTabbingModeDisallowed to respect
system-wide preferences
* etc/NEWS: add mention of native tab support in macOS and where
to specify system-wide setting
* lisp/gnus/gnus-sum.el (gnus-summary-limit-to-recipient):
* lisp/gnus/gnus-sum.el (gnus-summary-limit-to-subject):
(gnus-summary-limit-to-address, gnus-summary-limit-to-extra):
Don't claim that there aren't any matches when everything matches
an exclusion (bug#48834).
See discussion starting at
https://lists.gnu.org/archive/html/emacs-devel/2021-06/msg00034.html
for the details.
* src/keyboard.c (read_decoded_event_from_main_queue): For
raw-text encoed input, if Meta bit is encoded, apply the Meta
modifier to single-byte characters that have the 0x80 bit set.
For input encoded otherwise, if the Meta bit is encoded, remove
the 0x80 bit after decoding the characters.
(tty_read_avail_input): Reset the 0x80 bit only if Meta bit is not
encoded.
(Fset_input_meta_mode): Support 'encoded' as the value of META.
(Fset_input_mode): Document 'encoded' for META.
(Fcurrent_input_mode): Support and document 'encoded' as the value
of META.
(syms_of_keyboard): DEFSYM 'encoded'.
* src/composite.c (find_automatic_composition): Accept one
additional argument BACKLIM; don't look back in buffer or string
farther than that. Add an assertion for BACKLIM.
(composition_adjust_point, Ffind_composition_internal): Callers
adjusted.
* src/composite.h (find_automatic_composition): Adjust prototype.
* src/character.c (lisp_string_width): Call
'find_automatic_composition' with the value of BACKLIM equal to POS,
to avoid costly and unnecessary search back in the string, since
those previous characters were already checked for automatic
compositions. (Bug#48734) (Bug#48839)
* lisp/icomplete.el (icomplete-pre-command-hook, icomplete-tidy):
Remove, update the callers
(https://lists.gnu.org/archive/html/emacs-devel/2021-06/msg00111.html).
(icomplete-compute-delay): Change the default to 150ms.
(icomplete-max-delay-chars): Change the default to 2.
Previously, when you've had dired buffers
~/foo/
~/foo/bar/
~/foo/bar/baz/
and then deleted ~/foo/, dired (with dired-clean-up-buffers-too set to
non-nil) would only ask to delete the dired buffer of ~/foo/. Now it
will offer to delete all three buffers.
* lisp/dired.el (dired-buffers-for-dir): Add optional argument SUBDIRS
which makes the function return also dired buffers showing a subdir of
DIR.
(dired-in-this-tree-p): Make obsolete in favor of file-in-directory-p
which actually does what the name suggest whereas dired-in-this-tree-p
is just string-matching on filenames which will fail with symlinks
filenames including ./ or ../.
* lisp/dired.el (dired-do-flagged-delete, dired-do-delete): Use
point-marker instead of point to record each file name position.
Clean up the markers before returning.
(dired-internal-do-deletions): Move to the file name marker, and
then move point to the file name to visually emphasize which file
is being operated on (bug#48805).
* doc/emacs/misc.texi (Invoking emacsclient): Document it (bug#11358).
* lisp/server.el (server-edit): Mention it in the doc string.
(server-edit-abort): New command.
Copyright-paperwork-exempt: yes
* windmove.el (windmove-mode-map): Add special map for windmove commands.
(windmove-mode): Add minor mode for activating windmove-mode-map.
(windmove-install-defaults): Add general function for manipulating
windmove-mode-map.
(windmove-default-keybindings): Use windmove-install-defaults.
(windmove-display-default-keybindings): Use windmove-install-defaults.
(windmove-delete-default-keybindings): Use windmove-install-defaults.
(windmove-swap-states-default-keybindings): Use windmove-install-defaults.
* src/xdisp.c (extend_face_to_end_of_line): Fix calculation of
fill-column-indicator on TTY frames. Suggested by Jimmy Aguilar
Mena <spacibba@aol.com>.
(hide-ifdef-verbose, hide-ifdef-evalulate-enter-hook)
(hide-ifdef-evalulate-leave-hook): Fix initial version to 28.1.
(hide-ifdef-expand-reinclusion-protection): Obsolete since 28.1,
rename to `hide-ifdef-expand-reinclusion-guard' instead.