Commit graph

880 commits

Author SHA1 Message Date
Rahul Martim Juliato a8736d5f88 Improve where the replacement is previewed (bug#81583)
* lisp/replace.el (replace-preview--input): New function.
(replace-preview-update): Add optional START and END, and
preview only the matches between them.
(replace-preview-setup): Accept a nil FROM, read from the
minibuffer along with the replacement, and add optional
BACKWARD.  Limit the preview to the part of the buffer that the
replacement will cover.
(query-replace-read-to): Add optional BACKWARD and pass it on.
(query-replace-read-args): Preview the replacement while reading
FROM as well, and preview nothing when the caller asks for no
highlighting.
* lisp/isearch.el (isearch-query-replace): Pass BACKWARD to
`query-replace-read-to'.
* test/lisp/replace-tests.el (replace-tests--preview): Add START
and END.
(replace-tests-preview-bounds, replace-tests-preview-input): New
tests.
* doc/emacs/search.texi (Replace): Document the above.
2026-09-09 20:54:04 +03:00
Stefan Monnier 1de92cc3ec Delete redundant "" arguments to 'mapconcat'
* lisp/xml.el (xml--entity-replacement-text, xml-substitute-special):
* lisp/vc/vc-hg.el (vc-hg--pushpull):
* lisp/vc/vc-git.el (vc-git-escape-file-name):
* lisp/vc/emerge.el (emerge-hash-string-into-string):
* lisp/url/url.el (url-do-setup):
* lisp/url/url-expand.el (url-expand-file-name):
* lisp/url/url-cache.el (url-cache-create-filename-human-readable):
* lisp/textmodes/tildify.el (tildify--find-env):
* lisp/textmodes/rst.el (rst-re):
* lisp/textmodes/reftex.el (reftex-compile-variables):
* lisp/textmodes/reftex-ref.el (reftex-latin1-to-ascii):
* lisp/textmodes/reftex-index.el (reftex-index-make-replace-string)
(reftex-index-select-phrases-macro):
* lisp/textmodes/ispell.el (ispell--make-\\w-expression):
* lisp/textmodes/enriched.el (enriched-make-annotation):
* lisp/textmodes/bibtex.el (bibtex-summary):
* lisp/tab-bar.el (tab-bar-format-align-right):
* lisp/shell.el (shell--unquote&requote-argument)
(shell--parse-pcomplete-arguments):
* lisp/proced.el (proced-format):
* lisp/play/decipher.el (decipher-show-alphabet)
(decipher--digram-counts):
* lisp/pcomplete.el (pcomplete-entries):
* lisp/pcmpl-x.el (pcmpl-x-ack-short-options):
* lisp/obsolete/pgg-parse.el (pgg-format-key-identifier):
* lisp/newcomment.el (comment-padright):
* lisp/net/webjump.el (webjump-url-encode):
* lisp/net/newst-backend.el (newsticker--unxml-node):
* lisp/net/mairix.el (mairix-widget-make-query-from-widgets):
* lisp/net/eudcb-ldap.el (eudc-ldap-format-query-as-rfc1558):
* lisp/net/dbus.el (dbus-introspect-get-signature):
* lisp/mh-e/mh-utils.el (mh-help):
* lisp/mh-e/mh-alias.el (mh-alias-apropos):
* lisp/mail/supercite.el (sc-attribs-strip-initials):
* lisp/mail/rfc2231.el (rfc2231-parse-string):
* lisp/mail/ietf-drums.el (ietf-drums-parse-address):
* lisp/mail/footnote.el (footnote-roman-lower-regexp):
* lisp/language/lao.el:
* lisp/isearch.el (with-isearch-suspended, isearch-edit-string)
(isearch-repeat, word-search-regexp, isearch-symbol-regexp)
(isearch-del-char, isearch-yank-string, isearch-yank-from-kill-ring)
(isearch-char-by-name, isearch-emoji-by-name)
(isearch-post-command-hook, isearch-process-search-char)
(isearch-ring-adjust1, isearch-complete):
* lisp/international/quail.el (quail-title):
* lisp/international/isearch-x.el
(isearch-process-search-multibyte-characters):
* lisp/info.el (Info-url-for-node):
* lisp/ido.el (ido-set-matches-1):
* lisp/htmlfontify.el (hfy-default-header):
* lisp/gnus/nnmairix.el (nnmairix-widget-make-query-from-widgets):
* lisp/gnus/mm-url.el (mm-url-form-encode-xwfu):
* lisp/gnus/mm-decode.el (mm-mailcap-command):
* lisp/gnus/gnus-art.el (article-lapsed-string)
(article-verify-x-pgp-sig, gnus-article-extend-url-button):
* lisp/gnus/canlock.el (canlock-make-cancel-key):
* lisp/forms.el (forms--update, forms--debug):
* lisp/find-cmd.el (find-cmd):
* lisp/eshell/esh-arg.el (eshell-quote-argument):
* lisp/emulation/viper-util.el (viper-array-to-string)
(viper-key-press-events-to-chars):
* lisp/emulation/viper-macs.el (viper-display-macro):
* lisp/emulation/viper-init.el (viper-charlist-to-string):
* lisp/emulation/cua-rect.el (cua--copy-rectangle-as-kill)
(cua-copy-rectangle-as-text):
* lisp/emacs-lisp/elp.el (elp-results):
* lisp/calendar/solar.el (solar-time-string):
* lisp/calendar/icalendar.el (icalendar--create-ical-alarm)
(icalendar--do-create-ical-alarm):
* lisp/calendar/diary-lib.el (diary-remind)
(diary-font-lock-date-forms, diary-fancy-date-pattern):
* lisp/calendar/calendar.el (calendar-make-temp-face)
(calendar-date-string):
* lisp/calendar/cal-persia.el (calendar-persian-date-string):
* lisp/calendar/cal-coptic.el (calendar-coptic-date-string):
* lisp/calendar/cal-bahai.el (calendar-bahai-date-string):
* lisp/arc-mode.el (archive-summarize-files):
* lisp/allout.el (allout-latex-verb-quote):
* admin/unidata/unidata-gen.el (unidata-gen-table-word-list):
Delete redundant "" argument to 'mapconcat'.
2026-08-17 15:42:12 -04:00
Rahul Martim Juliato 765411f0cd Preview the replacement text while it is typed (bug#81583)
* lisp/replace.el (query-replace-show-preview): New user option.
(query-replace-preview): New face.
(query-replace-eval-replacement-regexp): New constant, extracted
from...
(query-replace-compile-replacement): ...here.
(replace-preview-overlays): New variable.
(replace-preview-cleanup, replace-preview-update)
(replace-preview-setup): New functions.
(query-replace-read-to): New optional argument DELIMITED-FLAG.
(query-replace-read-args): Pass the delimited flag to
'query-replace-read-to'.
* lisp/isearch.el (isearch-query-replace): Pass the delimited
flag to 'query-replace-read-to'.
* test/lisp/replace-tests.el (replace-tests--preview): New
helper.
(replace-tests-preview-update, replace-tests-preview-cleanup)
(replace-tests-preview-disabled): New tests.
* doc/emacs/search.texi (Replace): Document the preview.
* etc/NEWS: Announce it.
2026-08-11 20:22:56 +03:00
Juri Linkov 33a9d230ee Update momentary message in isearch-toggle-invisible
* lisp/isearch.el (isearch-toggle-invisible):
Improve wording of message (bug#81287).
2026-06-24 18:19:07 +03:00
Eli Zaretskii 7df8604ea6 ; Improve documentation of lazy-highlight in search and replace commands
* lisp/isearch.el (lazy-highlight, lazy-highlight-initial-delay)
(lazy-highlight-buffer, isearch-lazy-highlight, isearch-forward):
* lisp/replace.el (query-replace, query-replace-lazy-highlight)
(query-replace, query-replace-regexp): Doc fixes.

* doc/emacs/search.texi (Search Customizations): Document
'lazy-highlight-buffer' and 'lazy-highlight-buffer-max-at-a-time'.
Use @vtable to avoid the need of indexing each variable
separately.
2026-05-22 14:46:13 +03:00
Eli Zaretskii abcd0d3c8d ; * lisp/isearch.el (isearch-occur): Doc fix. (Bug#80785) 2026-04-16 08:26:33 +03:00
Juri Linkov 4ad8bd9b48 Handle the symbol property 'isearch-exit' in 'isearch-occur' (bug#80785)
* lisp/isearch.el (isearch-occur): When the command has
a non-nil symbol property 'isearch-exit', exit the search
before running the command.
2026-04-15 20:40:23 +03:00
Stefan Monnier 53bc4a2cb6 isearch.el: Remove autoloads hacks
* lisp/isearch.el (char-fold-to-regexp): Remove redundant autoload.
(emoji--read-emoji): Use `declare-function` rather than autoload.
2026-02-02 17:42:40 -05:00
Sean Whitton c31f6adc31 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
Juri Linkov 2b9c7f9508 Make 'isearch-mode' more idempotent (bug#79368).
* lisp/isearch.el (isearch-mode): Don't override
'isearch--saved-local-map' when 'overriding-terminal-local-map'
was already set to 'isearch-mode-map' in a previous call.
(with-isearch-suspended): Don't call the function 'isearch-mode'
when the variable 'isearch-mode' is already non-nil.
2025-09-03 09:45:34 +03:00
Juri Linkov e28ac4eca6 Allow code outside Isearch delete overlays in 'isearch-opened-overlays'
* lisp/isearch.el (isearch-open-necessary-overlays)
(isearch-close-unnecessary-overlays): Use 'overlay-buffer'
to check if overlays in 'isearch-opened-overlays' are still
not deleted (bug#79115).
(with-isearch-suspended): Call 'isearch-clean-overlays'
after 'isearch-done'.  Otherwise 'isearch-mode' called later
just resets 'isearch-opened-overlays' to nil, causing "overlay leak".
2025-08-10 20:50:05 +03:00
Juri Linkov 295f73d23d * lisp/isearch.el (search-within-boundaries): Optimize (bug#78520).
For non-subregexp case, search for the first match and continue
from its position.  This avoids unnecessary scan for all text properties
until the first match.  When nothing is found, skip the entire body.
2025-05-28 20:15:21 +03:00
Eli Zaretskii 6bb3c6f9e1 Merge from origin/emacs-30
cc5b1a01a2 ; * doc/misc/efaq-w32.texi (Location of init file): Fix a...
6c2aaedfce Fix compilation errors in emacsclient.c with MinGW GCC 15
d56e5ba97e ; * etc/DEBUG: Add link to GCC bug #78685.
80cbd1e31c ; Fix key notation in Introduction to Emacs Lisp
1224e5fd96 ; * lisp/files.el (revert-buffer-restore-functions): Doc ...
79e7eeb329 ; Improve documentation of 'format-time-string'
2838b64fc8 ; * lisp/textmodes/text-mode.el (text-mode-variant): Fix ...
9adb05422e ; Improve obsolescence of 'text-mode-variant'
4858d81848 ; * lisp/files.el (revert-buffer-restore-functions): Doc ...
2a8e223b8d ; Mention early-init file in Emacs FAQ for Windows
14c707b42d ; Isearch: Fix key bindings in docstrings
2025-04-30 07:14:23 -04:00
Juri Linkov 9d0595d879 Fix invalid search bound in 'search-within-boundaries'.
* lisp/isearch.el (search-within-boundaries): Don't go over BOUND.

* test/lisp/isearch-tests.el (isearch--test-search-within-boundaries):
Test with the BOUND arg as well (bug#78116).
2025-04-29 19:41:44 +03:00
Juri Linkov 6228259952 Respect point when changing direction after isearch scrolling.
* lisp/isearch.el (isearch-repeat): Don't go to isearch-other-end
on changing direction after scrolling (bug#78074).
2025-04-29 19:35:30 +03:00
Jake Forster 14c707b42d ; Isearch: Fix key bindings in docstrings
* lisp/isearch.el (isearch-allow-motion)
(isearch-motion-changes-direction): Use isearch-mode-map for
commands in docstrings (bug#78118).

Copyright-paperwork-exempt: yes
2025-04-29 09:10:30 +08:00
Stefan Monnier f66c92a793 Expose some lambdas currently hidden in quoted data
* lisp/language/chinese.el ("Chinese-GB", "Chinese-BIG5")
("Chinese-CNS", "Chinese-EUC-TW", "Chinese-GBK"):
* lisp/isearch.el (isearch-menu-bar-map):
* lisp/international/mule-cmds.el (language-info-custom-alist):
* lisp/font-lock.el (cpp-font-lock-keywords):
* lisp/cus-start.el (<toplevel>): Expose lambda-expressions to the compiler.
2025-03-24 17:14:26 -04:00
Sora Takai 893c40c63e Make isearch lazy-highlights non-sticky at both ends (bug#77121)
Copyright-paperwork-exempt: yes
2025-03-22 21:16:46 +02:00
Eli Zaretskii 5d4056c765 Fix a recent change in isearch.el
* lisp/isearch.el (isearch-yank-x-selection): Ignore errors
signaled by 'gui-get-primary-selection', to better emulate what
'gui-get-selection' was doing.  In particular,
'gui-get-primary-selection' can signal an error on MS-Windows.
2025-03-14 14:00:16 +02:00
Eli Zaretskii 0e93029353 ; * lisp/isearch.el (isearch-yank-x-selection): Doc fix. 2025-03-14 13:52:54 +02:00
Po Lu 1437fc2bca Enable yanking non-Latin-1 primary selections in I-Search
* lisp/isearch.el (isearch-yank-x-selection): Call
`gui-get-primary-selection', which accounts for non-Latin-1
encodings.
2025-03-14 15:54:01 +08:00
Stefan Kangas 515542b653 Prefer oddp/evenp to open-coding in a few more cases
* lisp/arc-mode.el (archive-zip-summarize):
* lisp/cus-edit.el (setopt):
* lisp/isearch.el (isearch-backslash):
* lisp/simple.el (blink-paren-post-self-insert-function):
* lisp/subr.el (setq-local, buffer-local-set-state):
* lisp/term.el (term-within-quotes):
* test/src/data-tests.el (test-bool-vector-bv-from-hex-string): Use
oddp/evenp instead of open-coding them.
Reported by Pip Cet <pipcet@protonmail.com>.
2025-02-18 00:00:31 +01:00
Po Lu b236a2529d Adapt query-replace and lazy highlighting to text conversion
* lisp/isearch.el (isearch-lazy-highlight-new-loop): Rather call
redisplay to guarantee a valid window-start than sit-for, to
account for cases where this function is called from an
after-change-function bound to a special input event quickly
followed by another event that does not modify the buffer.

* lisp/progmodes/prog-mode.el (treesit-node-at): Declare
function before references.

* lisp/replace.el (perform-replace): When querying, suppress
text conversion around the input loop.
2025-02-17 16:47:09 +08:00
Stefan Kangas 0e76716c5f Delete redundant lambdas around unary functions
This is not just stylistic, but also slightly faster.  These are all
regular defuns, of course, as this won't work with macros and defsubsts.

* lisp/calc/calc-nlfit.el (math-nlfit-fit-curve)
(calc-fit-hubbert-linear-curve):
* lisp/calendar/cal-tex.el (cal-tex-latexify-list):
* lisp/calendar/todo-mode.el (todo-sort):
* lisp/cedet/semantic/ctxt.el (semantic-ctxt-end-of-symbol-default)
(semantic-ctxt-current-symbol-default):
* lisp/cedet/semantic/symref.el (semantic-symref-result-get-files):
* lisp/cedet/semantic/texi.el (semantic-texi-command-completion-list):
* lisp/descr-text.el (describe-char):
* lisp/emacs-lisp/eieio-datadebug.el
(data-debug-add-specialized-thing):
* lisp/emacs-lisp/rmc.el (read-multiple-choice--short-answers):
* lisp/eshell/em-pred.el (eshell-modifier-alist):
* lisp/gnus/gnus-cache.el (gnus-cache-articles-in-group):
* lisp/gnus/gnus-dired.el (gnus-dired-attach):
* lisp/help-mode.el (help-package-def):
* lisp/ibuf-ext.el (ibuffer-mark-modified-buffers):
* lisp/image/image-dired.el:
* lisp/international/quail.el (quail-keyseq-translate)
(quail-get-translations):
* lisp/isearch.el (isearch-pre-command-hook)
(search-within-boundaries):
* lisp/mail/supercite.el (sc-ask):
* lisp/mh-e/mh-e.el (mh-variant-set):
* lisp/net/rcirc.el (rcirc-nick-channels, rcirc-channel-nicks):
(rcirc-browse-url):
* lisp/obsolete/thumbs.el (thumbs-cleanup-thumbsdir):
* lisp/org/org-agenda.el (org-agenda-filter-completion-function):
* lisp/org/org-table.el (org-table-eval-formula):
* lisp/org/org.el (org-set-regexps-and-options):
* lisp/org/ox.el (org-export--get-inbuffer-options):
* lisp/ses.el (ses-range):
* lisp/textmodes/emacs-news-mode.el (emacs-news--buttonize):
* lisp/textmodes/ispell.el (ispell-begin-tex-skip-regexp):
* lisp/vc/vc-cvs.el (vc-cvs-stay-local-p):
* lisp/window.el (window--state-get-1):
* test/lisp/emacs-lisp/shortdoc-tests.el (shortdoc-all-groups-work):
Delete redundant lambdas around unary functions.  (Bug#66816)
2025-02-11 19:04:00 +01:00
Stefan Kangas bf97946d7d Merge branch 'scratch/no-purespace' into 'master' 2025-02-01 04:56:52 +01:00
Stefan Kangas 7fa975adbc Update copyright year to 2025
Run "TZ=UTC0 admin/update-copyright".
2025-01-02 18:39:42 +01:00
Paul Eggert 4da38c6321 Update copyright year to 2025
Run "TZ=UTC0 admin/update-copyright".
2025-01-01 07:39:17 +00:00
Stefan Kangas d6aeb1a260 Delete remaining calls to purecopy
* lisp/button.el (default-button):
* lisp/calendar/holidays.el (holiday-solar-holidays)
(holiday-bahai-holidays, holiday-islamic-holidays)
(holiday-christian-holidays, holiday-hebrew-holidays)
(holiday-oriental-holidays, holiday-general-holidays):
* lisp/comint.el (comint-file-name-prefix):
* lisp/composite.el (unicode-category-table):
* lisp/cus-face.el (custom-declare-face):
* lisp/custom.el (custom-add-load, custom-add-package-version)
(custom-add-version, custom-add-link, custom-declare-group)
(custom-declare-variable):
* lisp/dired.el (dired-listing-switches):
* lisp/epa-hook.el (epa-file-name-regexp):
* lisp/faces.el (x-font-regexp, x-font-regexp-head)
(x-font-regexp-slant, x-font-regexp-weight, )
(set-face-attribute, set-face-documentation, face-x-resources)
(face-font-registry-alternatives, face-font-family-alternatives)
(term-file-prefix):
* lisp/find-file.el (ff-special-constructs):
* lisp/format.el (format-alist):
* lisp/help.el (help-for-help):
* lisp/image-file.el (image-file-name-extensions):
* lisp/info.el:
* lisp/isearch.el (isearch-help-for-help-internal)
(search-whitespace-regexp):
* lisp/jka-cmpr-hook.el (jka-compr-load-suffixes)
(jka-compr-mode-alist-additions)
(jka-compr-compression-info-list, jka-compr-build-file-regexp):
* lisp/language/ethiopic.el (font-ccl-encoder-alist):
* lisp/language/korea-util.el (default-korean-keyboard):
* lisp/language/tibetan.el (tibetan-precomposition-rule-regexp)
(tibetan-precomposed-regexp):
* lisp/locate.el (locate-ls-subdir-switches):
* lisp/lpr.el (lpr-command):
* lisp/mail/rmail.el (rmail-secondary-file-regexp)
(rmail-secondary-file-directory, rmail-highlighted-headers)
(rmail-ignored-headers, rmail-spool-directory, rmail-file-name):
* lisp/mail/sendmail.el (mail-default-directory)
(mail-signature-file, mail-citation-prefix-regexp)
(mail-personal-alias-file, mail-header-separator):
* lisp/menu-bar.el (yank-menu):
* lisp/net/eudc.el (eudc-tools-menu):
* lisp/newcomment.el (comment-padding, comment-end):
* lisp/obsolete/autoload.el (autoload-generate-file-autoloads):
* lisp/progmodes/hideshow.el (hs-special-modes-alist):
* lisp/ps-print.el (ps-page-dimensions-database):
* lisp/rfn-eshadow.el (file-name-shadow-tty-properties):
* lisp/shell.el (shell-dumb-shell-regexp):
* lisp/simple.el (overwrite-mode-binary, overwrite-mode-textual)
(mark-inactive, shell-command-switch)
(next-error-overlay-arrow-position):
* lisp/subr.el (package--builtin-versions, eval-after-load):
* lisp/tab-bar.el ([tab-bar]):
* lisp/term/pgtk-win.el (x-gtk-stock-map):
* lisp/term/x-win.el (x-gtk-stock-map):
* lisp/tool-bar.el ([tool-bar]):
* lisp/widget.el (define-widget): Remove calls to purecopy.
2024-12-12 22:48:19 +01:00
Juri Linkov 19a18e487b * lisp/isearch.el: Exit Isearch after deleting the frame (bug#41338).
(isearch-mode): Add 'isearch-done' to 'delete-frame-functions'.
(isearch-done): Remove 'isearch-done' from 'delete-frame-functions'.
2024-07-23 21:00:23 +03:00
Juri Linkov 6760cedc5e * lisp/isearch.el: Preserve original value of overriding-terminal-local-map.
(isearch--saved-local-map): New variable (bug#72229).
(isearch-mode): Set isearch--saved-local-map to
overriding-terminal-local-map.
(isearch-done): Set overriding-terminal-local-map back to
isearch--saved-local-map.
(isearch-mouse-2): Let-bind overriding-terminal-local-map to
isearch--saved-local-map.
(isearch-done): Move comment intended to be docstring to docstring.
2024-07-23 20:51:43 +03:00
Stefan Kangas e4760109ac Miscellaneous checkdoc fixes
* lisp/ansi-color.el (ansi-color--ensure-context):
* lisp/doc-view.el (doc-view-svg-face):
* lisp/external-completion.el (external-completion-table):
* lisp/ffap.el (ffap-ro-mode-hook, ffap-gnus-hook):
* lisp/find-file.el:
* lisp/flow-ctrl.el (flow-control-c-s-replacement)
(flow-control-c-q-replacement):
* lisp/forms.el (forms-multi-line):
* lisp/help.el (search-forward-help-for-help):
* lisp/hi-lock.el (hi-lock-use-overlays):
* lisp/image.el (find-image):
* lisp/isearch.el (isearch-forward, isearch-forward-regexp)
(isearch-lazy-count-format):
* lisp/jsonrpc.el (jsonrpc--continue, initialize-instance):
* lisp/mouse-copy.el (mouse-kill-preserving-secondary):
* lisp/pixel-scroll.el (pixel-bob-at-top-p)
(pixel-scroll-down-and-set-window-vscroll):
* lisp/printing.el (pr-gv-command, pr-gs-command)
(pr-gs-switches):
* lisp/register.el (register-use-preview):
* lisp/repeat.el (repeat-check-key):
* lisp/saveplace.el (save-place-abbreviate-file-names):
* lisp/select.el (gui--clipboard-selection-unchanged-p):
* lisp/ses.el (ses-header-row):
* lisp/simple.el (transpose-sexps-default-function)
(normal-erase-is-backspace, normal-erase-is-backspace-mode):
* lisp/sqlite-mode.el (sqlite-mode):
* lisp/tempo.el (tempo-insert-region):
* lisp/term.el (term-mode-map, term-mode, term-char-mode):
Checkdoc fixes.
2024-07-20 02:42:08 +02:00
Po Lu e0993f5169 Don't permit C-x 8 RET &c in isearch.el to contaminate search string
* lisp/isearch.el (isearch-char-by-name, isearch-emoji-by-name):
Concatenate new character to the query string saved by
with-isearch-suspended, not the current string, which might have
been modified by recursive I-search sessions within
completing-read.
2024-05-05 09:49:09 +08:00
Stefan Kangas 5c12e988ab doc: Delete extraneous quotes around keys
* lisp/allout.el (allout-outlinify-sticky):
* lisp/auth-source.el (auth-sources):
* lisp/buff-menu.el (Buffer-menu-delete)
(Buffer-menu-delete-backwards, Buffer-menu-save)
(Buffer-menu-execute, Buffer-menu-select):
* lisp/calendar/todo-mode.el (todo-show)
(todo-show-categories-table, todo-top-priorities-overrides):
* lisp/desktop.el (desktop-save-mode):
* lisp/dired-aux.el (dired-do-kill-lines, dired-do-copy):
* lisp/edmacro.el (edit-kbd-macro):
* lisp/emulation/viper-cmd.el (viper-ask-level):
* lisp/emulation/viper-init.el (viper-expert-level):
* lisp/filesets.el (filesets-add-buffer):
* lisp/follow.el (follow-mode):
* lisp/gnus/gnus-group.el (gnus-group-mode):
* lisp/gnus/gnus-sum.el (gnus-summary-mode):
* lisp/ibuffer.el (ibuffer-mode):
* lisp/international/ogonek.el (ogonek-informacja)
(ogonek-information):
* lisp/isearch.el (search-default-mode):
* lisp/macros.el (apply-macro-to-region-lines):
* lisp/mail/supercite.el (sc-mail-field-query)
(sc-insert-reference, sc-insert-citation):
* lisp/play/decipher.el (decipher-make-checkpoint):
(decipher-restore-checkpoint):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/idlwave.el (idlwave-store-inquired-class):
* lisp/progmodes/prolog.el (prolog-mode, prolog-inferior-mode):
* lisp/progmodes/sh-script.el (sh-set-shell):
* lisp/progmodes/vhdl-mode.el (vhdl-compiler-alist)
(vhdl-modify-date-prefix-string)
(vhdl-modify-date-on-saving, vhdl-mode):
* lisp/server.el (server-start):
* lisp/subr.el (locate-library):
* lisp/tempo.el (tempo-marks, tempo-use-tag-list):
* lisp/time.el (world-clock):
* lisp/vc/vc-hooks.el (vc-mode):
* lisp/whitespace.el (whitespace-report-region):
* lisp/windmove.el (windmove-delete-in-direction): Doc fix: Delete
extraneous quotes around keys.
2024-01-21 14:09:34 +01:00
Eli Zaretskii 5256b8dd4e Merge from origin/emacs-29
bf7034048c ; * doc/emacs/custom.texi (Changing a Variable): Update e...
466d1c98a9 Fix icons.el when icon does not exist as a file
2a861124e8 ; Improve documentation of 'buffer-match-p'
dc9d02f8a0 * lisp/isearch.el (isearch-search-and-update): Let-bind '...
9308d9a74a * src/comp.c (Fcomp__compile_ctxt_to_file): Fix hash tabl...
a2a6619b28 Provide decent documentation for 'help-quick'
ab66b749a2 ; * src/window.c (Fset_window_margins): Doc fix.
1a677d1429 treesit--pre-syntax-ppss: Fix args-out-of-range in intern...
2024-01-06 08:20:19 -05:00
Juri Linkov dc9d02f8a0 * lisp/isearch.el (isearch-search-and-update): Let-bind 'isearch-cmds'.
When 'isearch-wrap-pause' is 'no' or 'no-ding', let-bind 'isearch-cmds'
to avoid changing it by 'isearch-push-state' in 'isearch-repeat',
so that a later DEL (isearch-delete-char) doesn't stop at the
intermediate failing state (bug#68158).
2024-01-05 09:40:05 +02:00
Po Lu ecf08f0621 Merge from savannah/emacs-29
dc4e6b1329 ; Update copyright years in more files
64b3777631 ; Run set-copyright from admin.el
8e1c56ae46 ; Add 2024 to copyright years

# Conflicts:
#	doc/misc/modus-themes.org
#	doc/misc/texinfo.tex
#	etc/NEWS
#	etc/refcards/ru-refcard.tex
#	etc/themes/modus-operandi-theme.el
#	etc/themes/modus-themes.el
#	etc/themes/modus-vivendi-theme.el
#	lib/alloca.in.h
#	lib/binary-io.h
#	lib/c-ctype.h
#	lib/c-strcasecmp.c
#	lib/c-strncasecmp.c
#	lib/careadlinkat.c
#	lib/cloexec.c
#	lib/close-stream.c
#	lib/diffseq.h
#	lib/dup2.c
#	lib/filemode.h
#	lib/fpending.c
#	lib/fpending.h
#	lib/fsusage.c
#	lib/getgroups.c
#	lib/getloadavg.c
#	lib/gettext.h
#	lib/gettime.c
#	lib/gettimeofday.c
#	lib/group-member.c
#	lib/malloc.c
#	lib/md5-stream.c
#	lib/md5.c
#	lib/md5.h
#	lib/memmem.c
#	lib/memrchr.c
#	lib/nanosleep.c
#	lib/save-cwd.h
#	lib/sha1.c
#	lib/sig2str.c
#	lib/stdlib.in.h
#	lib/strtoimax.c
#	lib/strtol.c
#	lib/strtoll.c
#	lib/time_r.c
#	lib/xalloc-oversized.h
#	lisp/auth-source-pass.el
#	lisp/emacs-lisp/lisp-mnt.el
#	lisp/emacs-lisp/timer.el
#	lisp/info-look.el
#	lisp/jit-lock.el
#	lisp/loadhist.el
#	lisp/mail/rmail.el
#	lisp/net/ntlm.el
#	lisp/net/webjump.el
#	lisp/progmodes/asm-mode.el
#	lisp/progmodes/project.el
#	lisp/progmodes/sh-script.el
#	lisp/textmodes/flyspell.el
#	lisp/textmodes/reftex-toc.el
#	lisp/textmodes/reftex.el
#	lisp/textmodes/tex-mode.el
#	lisp/url/url-gw.el
#	m4/alloca.m4
#	m4/clock_time.m4
#	m4/d-type.m4
#	m4/dirent_h.m4
#	m4/dup2.m4
#	m4/euidaccess.m4
#	m4/fchmodat.m4
#	m4/filemode.m4
#	m4/fsusage.m4
#	m4/getgroups.m4
#	m4/getloadavg.m4
#	m4/getrandom.m4
#	m4/gettime.m4
#	m4/gettimeofday.m4
#	m4/gnulib-common.m4
#	m4/group-member.m4
#	m4/inttypes.m4
#	m4/malloc.m4
#	m4/manywarnings.m4
#	m4/mempcpy.m4
#	m4/memrchr.m4
#	m4/mkostemp.m4
#	m4/mktime.m4
#	m4/nproc.m4
#	m4/nstrftime.m4
#	m4/pathmax.m4
#	m4/pipe2.m4
#	m4/pselect.m4
#	m4/pthread_sigmask.m4
#	m4/readlink.m4
#	m4/realloc.m4
#	m4/sig2str.m4
#	m4/ssize_t.m4
#	m4/stat-time.m4
#	m4/stddef_h.m4
#	m4/stdint.m4
#	m4/stdio_h.m4
#	m4/stdlib_h.m4
#	m4/stpcpy.m4
#	m4/strnlen.m4
#	m4/strtoimax.m4
#	m4/strtoll.m4
#	m4/time_h.m4
#	m4/timegm.m4
#	m4/timer_time.m4
#	m4/timespec.m4
#	m4/unistd_h.m4
#	m4/warnings.m4
#	nt/configure.bat
#	nt/preprep.c
#	test/lisp/register-tests.el
2024-01-02 10:28:14 +08:00
Po Lu 8e1c56ae46 ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
Juri Linkov 9d292262f5 Improve invisibility handling in isearch-lazy-highlight (bug#40808)
* lisp/isearch.el (isearch-lazy-highlight-invisible): New variable.
(isearch-lazy-highlight-new-loop, isearch-lazy-highlight-search)
(isearch-lazy-highlight-match, isearch-lazy-highlight-buffer-update): Use it.

* lisp/replace.el (replace-highlight): Let-bind isearch-invisible
to search-invisible.

* test/lisp/isearch-tests.el (isearch--test-invisible): New test.
2023-11-20 19:57:57 +02:00
Jens Schmidt a563ea8963 * lisp/isearch.el (isearch-resume): Add isearch-push-state (bug#65379). 2023-08-20 20:36:49 +03:00
Po Lu caa3bc8aa8 Don't signal when I-search occurs within a kbd macro
* lisp/isearch.el (isearch-mode): Check last-event-frame is not
`macro' before providing it to `device-class'.  (bug#65175)
2023-08-09 20:43:37 +08:00
Po Lu 2e644fc13c Merge remote-tracking branch 'origin/master' into feature/android 2023-05-19 08:55:42 +08:00
Jens Schmidt dc1a437d46 Clarify misleading comment in isearch.el
Clarify a misleading comment in isearch.el as to whether frame events
should exit an isearch or not (Bug#62032, Bug#41338 for background
information).
* lisp/isearch.el (isearch-mode-map): Replace the misleading comment.
(Bug#62032)

Copyright-paperwork-exempt: yes
2023-05-18 13:43:12 +03:00
Po Lu 2dcce30290 Update Android port
* doc/emacs/android.texi (Android Fonts):
* doc/emacs/input.texi (On-Screen Keyboards):
* doc/lispref/commands.texi (Misc Events): Update documentation.
* java/org/gnu/emacs/EmacsInputConnection.java (setSelection):
New function.
* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView)
(reconfigureFrontBuffer): Make bitmap references weak
references.
* java/org/gnu/emacs/EmacsView.java (handleDirtyBitmap): Don't
clear surfaceView bitmap.
* lisp/comint.el (comint-mode):
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Improve detection of CJK fonts.
* lisp/isearch.el (set-text-conversion-style): New variable.
(isearch-mode, isearch-done): Save and restore the text
conversion style.
* lisp/minibuffer.el (minibuffer-mode): Set an appropriate text
conversion style.
* lisp/simple.el (analyze-text-conversion): Run
post-self-insert-hook properly.
* lisp/subr.el (read-char-from-minibuffer): Disable text
conversion when reading character.
* src/androidterm.c (show_back_buffer): Don't check that F is
not garbaged.
(android_update_selection, android_reset_conversion): Use the
ephemeral last point and handle text conversion being disabled.
* src/buffer.c (syms_of_buffer): Convert old style DEFVAR.
* src/keyboard.c (kbd_buffer_get_event): Handle text conversion
first.
* src/lisp.h: Update prototypes.
* src/lread.c (read_filtered_event): Temporarily disable text
conversion.
* src/sfnt.c (sfnt_decompose_glyph_1, sfnt_decompose_glyph_2):
New functions.
(sfnt_decompose_glyph, sfnt_decompose_instructed_outline):
Refactor contour decomposition to those two functions.
(main): Update tests.
* src/sfntfont-android.c (system_font_directories): Add empty
field.
(Fandroid_enumerate_fonts, init_sfntfont_android): Enumerate
fonts in a user fonts directory.
* src/sfntfont.c (struct sfnt_font_desc): New field
`num_glyphs'.
(sfnt_enum_font_1): Set num_glyphs and avoid duplicate fonts.
(sfntfont_glyph_valid): New function.
(sfntfont_lookup_char, sfntfont_list_1): Make sure glyphs found
are valid.

* src/textconv.c (sync_overlay, really_commit_text)
(really_set_composing_text, really_set_composing_region)
(really_delete_surrounding_text, really_set_point_and_mark)
(handle_pending_conversion_events_1)
(handle_pending_conversion_events, conversion_disabled_p)
(disable_text_conversion, resume_text_conversion)
(Fset_text_conversion_style, syms_of_textconv): Update to
respect new options.
* src/textconv.h:
* src/window.h (GCALIGNED_STRUCT): New field
`ephemeral_last_point'.
* src/xdisp.c (mark_window_display_accurate_1): Set it.
2023-02-16 23:57:01 +08:00
Po Lu 2c5e36e00b Merge remote-tracking branch 'origin/master' into feature/android 2023-02-08 22:41:46 +08:00
Eli Zaretskii bb999df5d6 ; Fix whitespace of last change 2023-02-05 18:52:59 +02:00
Eli Zaretskii d7b4a8487f ; * lisp/isearch.el (emoji--read-emoji): Avoid compilation warning. 2023-02-05 18:51:11 +02:00
Jonas Bernoulli 58dc03ba7e
No longer use transient in isearch-emoji-by-name
* lisp/isearch.el (isearch-emoji-by-name): Use 'emoji--read-emoji'
and if that returns derivations, 'completing-read' to select one
of them.  This fixes bug#60740.
* lisp/international/emoji.el (emoji--init): Autoload.
(emoji--read-emoji): New function, which doesn't use transient
and returns a list of the glyph and all derivations, if any.
(emoji--choose-emoji): Use 'emoji--read-emoji'.
2023-02-05 14:54:27 +01:00
Po Lu 7b43566a28 Merge remote-tracking branch 'origin/master' into feature/android 2023-02-02 10:11:32 +08:00
Juri Linkov 2f3683cd4d * lisp/isearch.el (isearch-emoji-by-name): Disable derived emoji (bug#60740).
Let-bind emoji--derived to nil to avoid the subsequent selection
of derived emoji that fails in transient.el.
2023-01-30 19:39:33 +02:00
Po Lu e3b50ec8ec Update Android port
* INSTALL.android: Document support for gnutls and libgmp.
* build-aux/ndk-build-helper-1.mk (NDK_SO_NAMES, NDK_INCLUDES)
(SYSTEM_LIBRARIES):
* build-aux/ndk-build-helper-2.mk: Recursively resolve and add
shared library dependencies; even those of static libraries.
* build-aux/ndk-module-extract.awk: Fix makefile_imports code.
* configure.ac (ANDROID_SDK_18_OR_EARLIER, XCONFIGURE)
(LIBGMP_CFLAGS): Enable GMP and gnutls on Android.

* cross/ndk-build/Makefile.in (LOCAL_EXPORT_C_INCLUDES):
* cross/ndk-build/ndk-build-shared-library.mk: ($(call
objname,$(LOCAL_MODULE),$(basename $(1))))::($$(error
Unsupported suffix)::($(LOCAL_MODULE_FILENAME)):
* cross/ndk-build/ndk-build-static-library.mk: ($(call
objname,$(LOCAL_MODULE),$(basename $(1))))::($$(error
Unsupported suffix):
* cross/ndk-build/ndk-clear-vars.mk:
* cross/ndk-build/ndk-resolve.mk (NDK_SYSTEM_LIBRARIES):
(NDK_LOCAL_EXPORT_C_INCLUDES_$(LOCAL_MODULE)):
(NDK_SO_EXTRA_FLAGS_$(LOCAL_MODULE)):
Implement ``LOCAL_ASM_RULE'' and ``LOCAL_C_ADDITIONAL_FLAGS''
extensions for libgmp.

* doc/emacs/input.texi (Touchscreens): Document how to
horizontally scroll.
* java/org/gnu/emacs/EmacsActivity.java (attachWindow): Give the
view focus again if necessary.
(onPause): Call right super function.
* java/org/gnu/emacs/EmacsPreferencesActivity.java (onClick):
Clear dumpFileName lest Emacs try to load a nonexistent dump
file.
* java/org/gnu/emacs/EmacsView.java (onDetachedFromWindow)
(onAttachedToWindow): Call super functions.
(onCreateInputConnection): Make sure the IME never obscures
Emacs.
* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow, onKeyDown)
(onKeyUp): Improve tracking of quit keys.

* lisp/isearch.el (isearch-mode): Bring up the onscreen
keyboard.
* lisp/touch-screen.el (touch-screen-current-tool): Add three
fields.
(touch-screen-handle-scroll): Allow hscrolling as well.
(touch-screen-handle-touch): Add additional fields to
`touch-screen-current-tool'.
* src/Makefile.in (LIBGMP_CFLAGS, EMACS_CFLAGS): Add new
variable.
* src/android.c (android_run_select_thread):
(android_write_event): Use pthread_cond_broadcast because
pthread_cond_signal does nothing on some Android
versions/devices?
2023-01-28 14:29:51 +08:00