Fix NS crash on invalid frame title string (bug#42904)
Instead of blindly assuming that all Emacs strings are valid UTF-8,
which they are not, use a more careful conversion going via UTF-16
which is what NSString uses internally. Unpaired surrogates will
still go through to the NSString objects, but the NS libs handle them
gracefully.
* src/nsterm.h (EmacsString): New category.
* src/nsfns.m (all_nonzero_ascii): New helper function.
([NSString stringWithLispString:]): New method.
(ns_set_name_internal): Use new conversion method.
Don't message the hunk status when just going to it
* lisp/vc/diff-mode.el (diff-goto-source): Don't output a status
about the hunk just when jumping to it (bug#38370). This would
output "Hunk already applied" when browsing diffs.
Stefan Kangas [Wed, 19 Aug 2020 18:31:29 +0000 (20:31 +0200)]
Fix minor issues after recent world-clock rename
* lisp/time.el (world-clock-mode): Set 'revert-buffer-function'
buffer-locally rather than globally.
(display-time-world): Unobsolete alias for 'world-clock'. Some users
might be used to the old name.
Juri Linkov [Wed, 19 Aug 2020 13:52:08 +0000 (15:52 +0200)]
Allow searching interactively over completions in `M-x'
* lisp/simple.el (read-extended-command): Allow doing interactive
searches over the completions (bug#12490). This restores the
behaviour from Emacs 23 that was lost in Emacs 24.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-check-1)
(test-byte-opt-arithmetic, bytecomp-lexbind-check-1)
(bytecomp-lexbind-explain-1):
When comparing interpreted with compiled results, don't consider all
errors to be equal; take the error type into account. (The error
arguments may differ, but there may be good reasons for that.)
* test/lisp/emacs-lisp/bytecomp-tests.el
(test-byte-comp-macro-expand-lexical-override): Remove functions
before testing so that the test can be run twice without failing.
Signal an end-of-file error upon errors when reading from stdin
* src/minibuf.c (read_minibuf_noninteractive): Signal an
`end-of-file' error when reading from stdin instead of a general
error (bug#34123). This makes it easier to write code that
recovers from this situation.
Noam Postavsky [Wed, 19 Aug 2020 10:49:11 +0000 (12:49 +0200)]
Let ido-everywhere turn on ido-mode
* lisp/ido.el (ido-everywhere): Turn on ido-mode, if it's not already
on. Otherwise, having ido-everywhere enabled messes all file and
buffer reading interactive commands (bug#34292).
* lisp/emulation/viper-util.el (viper-check-minibuffer-overlay):
* lisp/emulation/viper-cmd.el (viper-minibuffer-standard-hook)
(viper-minibuffer-real-start, viper-submit-report): No need to
check whether minibuffer-prompt-end is defined.
Stefan Kangas [Sat, 2 May 2020 14:08:33 +0000 (16:08 +0200)]
Rename 'display-time-world' to 'world-clock' (Bug#40863)
* lisp/time.el (world-clock-list, world-clock-time-format)
(world-clock-buffer-name, world-clock-timer-enable)
(world-clock-timer-second, world-clock-label, world-clock-mode)
(world-clock-display, world-clock, world-clock-update): Rename
from 'display-time-world-*' and update all uses.
(world-clock): New defgroup.
(zoneinfo-style-world-list, legacy-style-world-list): Use :group
'world-clock'.
(display-time-world-list, display-time-world-time-format)
(display-time-world-buffer-name)
(display-time-world-timer-enable)
(display-time-world-timer-second): Make into obsolete variable
aliases for the new names.
* lisp/time.el (display-time-world-mode)
(display-time-world-display, display-time-world)
(display-time-world-timer): Make into obsolete function aliases
for the new names.
Stefan Kangas [Tue, 18 Aug 2020 18:16:06 +0000 (20:16 +0200)]
Remove the "Recent message" section from the bug reports
* lisp/mail/emacsbug.el (report-emacs-bug): Don't include "Recent
messages" since it has privacy implications. Problem reported by
Lars Ingebrigtsen in:
https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg01099.html
(bug#39185).
* test/lisp/cedet/srecode-utest-template.el
(srecode-utest-project): Set the current directory in the project
so that we'll find it later (bug#42533). The in-project directory
is /tmp, which is not actually what it is on many machines that
have the temporary directory somewhere else.
Pip Cet [Tue, 18 Aug 2020 16:27:05 +0000 (18:27 +0200)]
Fix minor bugs in image.c
* test/src/image-tests.el (image-test-circular-specs): New file.
* src/image.c (parse_image_spec): Return failure for circular lists.
(valid_image_p): Don't look at odd-numbered list elements expecting to
find a property name.
(image_spec_value): Handle circular lists.
(equal_lists): Introduce.
(search_image_cache): Use `equal_lists' (bug#36403).
Glenn Morris [Tue, 18 Aug 2020 14:51:08 +0000 (07:51 -0700)]
Merge from origin/emacs-27
362ca83a3b (origin/emacs-27) Let Emacs start even if curdir is inacce... dd989c0ea0 * etc/NEWS: Mention GnuPG 2.0 through 2.1.5 issue (Bug#428... 4542b750cc Fix bug with ~/Emacs file not being read at init 9b403d624e ; Fix last change 6bff65a626 ; * doc/lispref/sequences.texi (Sequence Functions): Typo ... 3c4edfd85e Prevent from frozen frame after `C-z' in Lucid builds 98e8241992 Document the 'flex' completion style 19fa8b7ca3 Note that Emacs needs systemd support if systemd is used t...
* lisp/image/gravatar.el (gravatar-automatic-caching): Made obsolete.
(gravatar-cache-ttl): Ditto.
(gravatar--cache): New variable to cache gravatars in-memory.
(gravatar-retrieve): Maintain the cache.
(gravatar--prune-cache): Remove old entries.
(gravatar-retrieved): Remove use of the old-style cache (bug#40355).
Stefan Kangas [Tue, 18 Aug 2020 10:43:16 +0000 (12:43 +0200)]
Rename new option to flyspell-use-mouse-3-for-menu
* lisp/textmodes/flyspell.el (flyspell-use-mouse-3-for-menu): Rename
from 'flyspell-correct-on-mouse-3'. The previous name did not make it
clear that it's about opening a menu. (Bug#11680)
(flyspell--set-use-mouse-3-for-menu): Rename from
'flyspell--set-correct-on-mouse-3'. Bind menu to 'down-mouse-3'
instead of 'mouse-3' to be more in line with user expectations.
(flyspell-mode): Use the above new names.
* doc/emacs/fixit.texi (Spelling):
* etc/NEWS: Update documentation to use the new name.
Suggested by Stefan Monnier <monnier@iro.umontreal.ca>.
Paul Eggert [Tue, 18 Aug 2020 00:54:44 +0000 (17:54 -0700)]
Fix glitch uncovered by gcc -fsanitize=undefined
* src/ccl.c (ccl_driver): Defend against signed integer
overflow (Bug#42660). Perhaps some of this is unnecessary,
but it is safe and ccl.c is low-priority these days.
Paul Eggert [Mon, 17 Aug 2020 23:21:36 +0000 (16:21 -0700)]
Let Emacs start even if curdir is inaccessible
* lisp/startup.el (normal-top-level): Also delete PWD if
file-attributes fails for either $PWD or default-directory,
instead of failing out of the top level.
This fixes a regression from Emacs 26 (Bug#42903).
Eli Zaretskii [Mon, 17 Aug 2020 16:30:02 +0000 (09:30 -0700)]
Fix assertion violation in pdumper.c
* src/pdumper.c (pdumper_find_object_type_impl): When checking
last_mark_bits, require the offset to be less than
discardable_start, not cold_start. This fixes a typo introduced in
2020-08-14T21:33:21Z!eggert@cs.ucla.edu (Bug#42832).
* lisp/simple.el (read--expression): No longer bind
read--expression-try-read here.
* lisp/simple.el (read-expression-map): Bind
read--expression-try-read here (bug#42893).
This new specialized command was recently added in [1: 4a6dd13fa4].
It reestablishes the bindings every time `read--expression' is
invoked, which is wrong because it makes it impossible for users
to remove these bindings.