d28d54c (origin/emacs-26) More accurate docs for 'text-char-description' b3baf99 Document synchronous behavior of eshell/make (Bug#32513) 98544ea Fix bs-show with wide characters (Bug#17822) 85af51b Improve Custom menu labels for 2 options 72a2a36 Improve wording of last change in dired-x.texi d4fa83b Fix GnuTLS test suite with GnuTLS versions 3.4.x b5bee6b Fix build with gnutls versions 3.0 to 3.2 (Bug#32446) 67eb80e ; * etc/enriched.txt (hanging-indents): Remove extra indent. c71cfb7 Fix the Bubbles game on TTY frames 3bbf21b Add choice to reshow certificate information (Bug#31877) 6f2c471 * src/alloc.c (Fbool_vector, Flist, Fvector): Doc tweak. 39eecb3 * src/alloc.c (vector): Fix grammatical error in doc string: ...
Eli Zaretskii [Thu, 20 Sep 2018 06:41:55 +0000 (09:41 +0300)]
More accurate docs for 'text-char-description'
* src/keymap.c (Ftext_char_description):
* doc/lispref/help.texi (Describing Characters): More accurate
description of 'text-char-description'. Remove incorrect
examples from the ELisp manual. (Bug#32743)
Document synchronous behavior of eshell/make (Bug#32513)
* doc/misc/eshell.texi (Built-ins):
* lisp/eshell/em-unix.el (eshell/make): Mention that it falls back to
the external 'make' command when called synchronously.
Store the region and orig line into the *Occur* header line.
Retrieve this information in `occur-revert-function'.
* lisp/replace.el (occur--parse-occur-buffer): New defun.
(occur-revert-function): Use it.
(occur-engine): Store region and original position as text properties
into the *Occur* header line.
* lisp/replace.el (occur-engine): Add sensible default values for
(occur--orig-line and nlines.
Eli Zaretskii [Tue, 18 Sep 2018 10:24:29 +0000 (13:24 +0300)]
Fix GnuTLS test suite with GnuTLS versions 3.4.x
* src/gnutls.c (gnutls_cipher_get_tag_size): Make it return
zero only for versions of GnuTLS < 3.2.2, where
gnutls_cipher_get_tag_size was introduced. This fixes the
GnuTLS test suite, which assumes that any cipher whose tag
size is non-zero is AEAD-capable, and doesn't test such ciphers
if AEAD is not available, i.e. for GnuTLS < 3.5.1. (Bug#32446)
Fix build with gnutls versions 3.0 to 3.2 (Bug#32446)
We previously used functions available only in 3.2+ for all 3.x
versions.
* src/gnutls.c [GNUTLS_VERSION_NUMBER < 0x030501]: Replace calls to
gnutls_cipher_get_tag_size with 0.
[GNUTLS_VERSION_NUMBER < 0x030200]: Alias gnutls_cipher_get_iv_size
to gnutls_cipher_get_block_size, gnutls_digest_list to
gnutls_mac_list, and gnutls_digest_get_name to gnutls_mac_get_name.
[WINDOWSNT]: Adjust DLL function definitions and declarations
accordingly.
Stefan Monnier [Mon, 17 Sep 2018 18:02:05 +0000 (14:02 -0400)]
* lisp/emacs-lisp/advice.el: Only use defmacro when needed
(ad-get-advice-info): Mark it inlinable.
(ad-get-advice-info-macro): Make it an obsolete alias.
(ad-copy-advice-info, ad-is-advised, ad-get-advice-info-field)
(ad-find-advice, ad-macrofy, ad-lambdafy, ad-lambda-p, ad-advice-p)
(ad-compiled-p, ad-compiled-code, ad-get-cache-definition)
(ad-get-cache-id, ad-set-cache): Turn macros into defsubsts.
(ad-defadvice-flags): Make it into a plain list.
(ad-set-advice-info-field): Apply a bit of CSE.
Stefan Monnier [Mon, 17 Sep 2018 17:46:21 +0000 (13:46 -0400)]
* lisp/emacs-lisp/advice.el (ad-advised-functions): Make it a plain list
(ad-read-advised-function, ad-do-advised-functions): Adjust accordingly.
(ad-pushnew-advised-function, ad-pop-advised-function): Also make them
into functions.
Eli Zaretskii [Mon, 17 Sep 2018 14:34:31 +0000 (17:34 +0300)]
Fix the Bubbles game on TTY frames
* lisp/play/bubbles.el (bubbles--col-offset)
(bubbles--row-offset): Doc fixes.
(bubbles--compute-offsets): Conflate the GUI and TTY code into
a single common version. Set the offsets to simple numbers,
not to lists.
(bubbles--initialize, bubbles--show-scores): Wrap offset
values in a list, so that they are interpreted as pixel
values, not as units of character width. This fixes the game
on TTY frames. (Bug#32744)
Paul Eggert [Mon, 17 Sep 2018 04:24:04 +0000 (21:24 -0700)]
Move current_timespec decl to timespec.h
This change was motivated by the desire to remove the weird
dependency of lib-src/profile.o on src/systime.h. profile.c
included systime.h only for current_timespec, and this
inclusion required systime.h to have #ifdef emacs in multiple
places and complicated further changes I have in mind.
The current_timespec decl belongs in timespec.h anyway,
and the main effect of this change is to move it there.
* lib-src/profile.c (INLINE): Remove.
Include timespec.h, not systime.h.
* lib/gettime.c (gettime): Prefer clock_gettime to nanotime,
and don’t worry about it failing on a CLOCK_REALTIME arg.
POSIX requires it to succeed and I don’t know of any
counterexamples where the fallbacks would work.
(current_timespec): Move here from src/systime.h.
Nowadays it seems to be better to not have this function
be inline.
* lib/timespec.h: Include arg-nonnull.h.
(current_timespec): New declaration.
(gettime, settime): Declare args to be nonnull.
* lib/gettime.c, lib/timespec.h: Copy from Gnulib.
* src/systime.h: Simplify by assuming ‘emacs’ is defined,
which it always is now.
(current_timespec): Move to lib/timespec.h.
Allen Li [Wed, 1 Aug 2018 10:04:26 +0000 (03:04 -0700)]
Add choice to reshow certificate information (Bug#31877)
In various situations, the window displaying the certificate
information can be hidden (such as if the user accidentally presses ?,
which causes the read-multiple-choice help window to replace it).
Instead of leaving the user to make a choice blindly, add a choice to
reshow the certification information.
Paul Eggert [Sun, 16 Sep 2018 15:52:16 +0000 (08:52 -0700)]
Don’t assume obsolescent setitimer function
* src/atimer.c (start_atimer, debug_timer_callback):
Don’t assume support for setitimer merely because struct
itimerspec works. POSIX no longer requires support for the
obsolescent setitimer function.
Paul Eggert [Sat, 15 Sep 2018 22:00:54 +0000 (15:00 -0700)]
Go back to old method for nnmaildir names
* lisp/gnus/nnmaildir.el (nnmaildir-request-accept-article):
Omit leading 0s after "M" in file name.
Problem reported by Glenn Morris in:
https://lists.gnu.org/r/emacs-devel/2018-09/msg00660.html
Paul Eggert [Sat, 15 Sep 2018 21:10:49 +0000 (14:10 -0700)]
Fix icalendar tests to match new behavior
* test/lisp/calendar/icalendar-tests.el (icalendar--create-uid):
Do not intrude into or rely upon undocumented internal
implementation details of icalendar--create-uid.
Problem reported by Glenn Morris in:
https://lists.gnu.org/r/emacs-devel/2018-09/msg00660.html
This is a mess. This function was added in master in afba4ccb8b8,
undocumented. It was then tweaked and documented in 9824885fabe.
Much later in cc233365a92 the original untweaked and undocumented
version was backported to emacs-26. This was independently
redocumented in emacs-26 in cc8f334d2da, which conflicted with the
interface changes that had been made on master.
Inhibit modification hooks when performing message coalescing because
in that case, we aren't doing the necessary preparation for running
modification hooks (i.e., we pass PREPARE=false for the insert_1_both
and del_range_both calls). See also Bug#30823 and Bug#21824.
* src/xdisp.c (message_dolog): Let-bind inhibit-modification-hooks
to t around del_range_both calls.
Make 'filesets-save-config' save filesets added by 'filesets-add-buffer'
* lisp/filesets.el (filesets-set-config): Use 'customize-set-variable'
so that filesets are saved by 'customize-save-customized' in
'filesets-save-config'. (Bug#20630)
Eli Zaretskii [Sat, 15 Sep 2018 09:21:12 +0000 (12:21 +0300)]
Avoid adverse side effects of fixing bug#21824
* test/src/buffer-tests.el
(overlay-modification-hooks-deleted-overlay): New test.
* src/buffer.c (report_overlay_modification): Don't bypass all
the overlay-modification hooks; instead, invoke each function
only if the buffer associated with the overlay is the current
buffer. (Bug#30823)
Leo Liu [Fri, 14 Sep 2018 14:31:50 +0000 (22:31 +0800)]
Fix (thing-at-point 'list) regression (Bug#31772)
* lisp/thingatpt.el (thing-at-point-bounds-of-list-at-point): Revert
to pre 26.1 behavior. Return whole sexp at point if no enclosing
list.
(list-at-point): New optional arg to ignore comments and strings.
* test/lisp/thingatpt-tests.el
(thing-at-point-bounds-of-list-at-point): Fix and augment tests.
Paul Eggert [Fri, 14 Sep 2018 00:31:58 +0000 (17:31 -0700)]
Simplify use of timestamps
* lisp/calendar/icalendar.el (icalendar--create-uid):
* lisp/gnus/nnmaildir.el (nnmaildir-request-accept-article):
Simplify by using format-time-string.
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
Simplify by using float-time and time-less-p.
* src/floatfns.c (rounding_driver): Fix rounding error
that can occur when both args have values exactly
representable as integers but at least one arg is a float.
* test/src/floatfns-tests.el (big-round): New test.
Stephen Berman [Thu, 13 Sep 2018 20:19:22 +0000 (22:19 +0200)]
Fix wdired handling of symlinks when restoring filename property
* lisp/wdired.el (wdired--restore-dired-filename-prop): Use
dired-permission-flags-regexp instead of dired-filename to test
whether the file is a symlink, since calling file-symlink-p on the
latter may fail in wdired-mode (bug#32673).
Paul Eggert [Tue, 11 Sep 2018 18:30:48 +0000 (11:30 -0700)]
Fix (round 1e+INF) core dump
* src/bignum.c (double_to_integer): Signal an error
if D cannot be converted, instead of dumping core.
* test/src/floatfns-tests.el (special-round): New test.
Paul Eggert [Tue, 11 Sep 2018 18:21:11 +0000 (11:21 -0700)]
Use overflow-error for bignum overflow
This better corresponds to what emacs-26 did in the
rare cases where it checked for integer overflow.
* src/alloc.c (range_error): Remove.
All uses changed to overflow_error.
* src/eval.c (overflow_error): New function.
Paul Eggert [Tue, 11 Sep 2018 04:22:05 +0000 (21:22 -0700)]
Adjust to TIMESPEC_HZ renaming
Adjust to lib/timespec.h’s renaming of TIMESPEC_RESOLUTION and
LOG10_TIMESPEC_RESOLUTION to TIMESPEC_HZ and
LOG10_TIMESPEC_HZ. The old names were misnomers.
All uses changed.
7efcdf7 (origin/emacs-26) Clarify completion text in the ELisp manual 30b0b0e Fix handling of abbreviated control command in gdb-mi.el 5cf282d Clarify documentation of functions reading character events 96281c5 Record :version for built-in variables while dumping 82160cf * src/process.c (connect_network_socket): Fix memory leak. (... 6c616e4 * Makefile.in (appdatadir): Use the non-obsolete location "me... 9618e16 Better fix for bug#32550 30d94e4 Fix Bug#32550 57bcdc7 Don't call XGetGeometry for frames without outer X window (Bu... 82fc6b6 * lisp/calculator.el: Fix doc typo. ddc7c64 Standardize calc bug reporting instructions
Karl Fogel [Mon, 10 Sep 2018 17:17:06 +0000 (12:17 -0500)]
Fix build error: use string :version in defcustom
* lisp/textmodes/flyspell.el (flyspell-case-fold-duplications): Use a
string value for the :version keyword to `defcustom'. Otherwise,
building Emacs will fail with an error like this:
Scanning ./textmodes for custom
Scanning ./url for custom
Scanning ./vc for custom
Generating ./cus-load.el...
Version must be a string
make[2]: *** [Makefile:152: cus-load.el] Error 255
This follows up to Reuben Thomas's commit 61f3a4b4fc of 10 Sep 2018.
Martin Rudalics [Mon, 10 Sep 2018 12:07:05 +0000 (14:07 +0200)]
Fix last change of 'run_window_size_change_functions'
* src/window.c (run_window_size_change_functions): Fix two
type mixups in last change. Reported by Michael Albinus
<michael.albinus@gmx.de> on emacs-devel.
Eli Zaretskii [Mon, 10 Sep 2018 09:46:22 +0000 (12:46 +0300)]
Clarify documentation of functions reading character events
* doc/lispref/help.texi (Describing Characters):
* doc/lispref/commands.texi (Keyboard Events)
(Reading One Event, Classifying Events): Make the distinction
between characters and character events more explicit.
* src/keymap.c (Ftext_char_description)
(Fsingle_key_description):
* src/lread.c (Fread_char, Fread_char_exclusive): Doc fixes,
to make a clear distinction between a character input event
and a character code. (Bug#32562)
* src/window.c (run_window_size_change_functions): Run a
buffer-local value once per each frame and only if at least
one window showing the buffer on that frame has changed its
size. (Bug#32637)
* doc/lispref/windows.texi (Window Hooks): Describe new
behavior of buffer-local 'window-size-change-functions'.
* doc/lispref/threads.texi (The Thread List): Cross-reference
'Basic Thread Functions'. Use defvar for thread-list-refresh-seconds.
Improve descriptions of the backtrace and signal commands.
Gemini Lasswell [Thu, 9 Aug 2018 21:21:57 +0000 (14:21 -0700)]
Show backtraces of threads from thread list buffer
* src/eval.c (backtrace_thread_p, backtrace_thread_top)
(backtrace_thread_next, Fbacktrace_frames_from_thread): New functions.
* lisp/thread.el (thread-list-mode-map): Add keybinding and
menu item for 'thread-list-pop-to-backtrace'.
(thread-list-mode): Make "Thread Name" column wide enough
for the result of printing a thread with no name with 'prin1'.
(thread-list--get-entries): Use 'thread-list--name'.
(thread-list--send-signal): Remove unnecessary calls to 'threadp'.
(thread-list-backtrace--thread): New variable.
(thread-list-pop-to-backtrace): New command.
(thread-list-backtrace--revert-hook-function)
(thread-list--make-backtrace-frame)
(thread-list-backtrace--insert-header, thread-list--name): New
functions.
Gemini Lasswell [Wed, 1 Aug 2018 16:25:28 +0000 (09:25 -0700)]
Improve docstrings of thread-list functions
* lisp/thread.el (thread-list--timer-func): Change
argument from 'buf' to 'buffer'.
(thread-list--get-entries, thread-list--get-status): Improve
docstring.
(thread-list--send-signal): Change argument from 'sgnl' to
'signal'. Tell the user when the thread is no longer alive.
Paul Eggert [Fri, 7 Sep 2018 16:17:25 +0000 (09:17 -0700)]
Fix overenthusiastic header size check
Problem reported by Eli Zaretskii in:
https://lists.gnu.org/r/emacs-devel/2018-09/msg00222.html
* doc/lispref/internals.texi (Garbage Collection):
Document vector sizes and slot counts more accurately.
* src/lisp.h: Omit header_size sanity check that was too picky.
Add some less-picky checks.
Eli Zaretskii [Fri, 7 Sep 2018 14:41:21 +0000 (17:41 +0300)]
Read Windows OS info for report-emacs-bug from Registry
* lisp/w32-fns.el (w32--os-description): New function.
* lisp/mail/emacsbug.el (report-emacs-bug--os-description):
Use 'w32--os-description' instead of launching the
'systeminfo' program, which can be very slow, and is also
missing on versions of Windows before XP Professional.
Eli Zaretskii [Fri, 7 Sep 2018 07:35:59 +0000 (10:35 +0300)]
Record :version for built-in variables while dumping
* lisp/cus-start.el (standard): Record the ':version; of the
symbols when dumping, so that 'describe-variable' could tell
which built-in variables were added/changed in recent
versions.
Paul Eggert [Fri, 7 Sep 2018 02:17:14 +0000 (19:17 -0700)]
Shrink pseudovectors a bit
sizeof (struct Lisp_Marker) was 32 on x86, where 24 would do.
Problem noted by Stefan Monnier in:
https://lists.gnu.org/r/emacs-devel/2018-09/msg00165.html
* src/bignum.h (struct Lisp_Bignum):
* src/frame.h (struct frame):
* src/lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector)
(struct Lisp_Char_Table, struct Lisp_Hash_Table)
(struct Lisp_Marker, struct Lisp_Overlay)
(struct Lisp_Misc_Ptr, struct Lisp_User_Ptr)
(struct Lisp_Finalizer, struct Lisp_Float)
(struct Lisp_Module_Function):
* src/process.h (struct Lisp_Process):
* src/termhooks.h (struct terminal):
* src/thread.h (struct thread_state, struct Lisp_Mutex)
(struct Lisp_CondVar):
* src/window.c (struct save_window_data):
* src/window.h (struct window):
* src/xterm.h (struct scroll_bar):
* src/xwidget.h (struct xwidget, struct xwidget_view):
Add GCALIGNED_STRUCT attribute.
* src/lisp.h (GCALIGNED_UNION_MEMBER): Renamed from GCALIGNED_UNION.
All uses changed.
(GCALIGNED_STRUCT_MEMBER, GCALIGNED_STRUCT, GCALIGNED): New macros.
All uses of open-coded GCALIGNED changed to use GCALIGNED.
(union vectorlike_header): No longer GC-aligned.
(PSEUDOVECSIZE): Yield 0 for pseudovectors without Lisp
objects that place a member before where the first Lisp object
member would be.