]> git.eshelyaron.com Git - emacs.git/log
emacs.git
6 years agoUse thread-live-p instead of obsolete thread-alive-p
Gemini Lasswell [Sat, 8 Sep 2018 00:41:24 +0000 (17:41 -0700)]
Use thread-live-p instead of obsolete thread-alive-p

* lisp/thread.el (thread-list--get-status)
(thread-list--send-signal, thread-list-pop-to-backtrace)
(thread-list-backtrace--revert-hook-function)
(thread-list-backtrace--insert-header): Use thread-live-p instead of
thread-alive-p.

6 years agoImprove documentation of thread list buffer
Gemini Lasswell [Wed, 5 Sep 2018 23:55:45 +0000 (16:55 -0700)]
Improve documentation of thread list buffer

* 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.

6 years agoAdd tests for list-threads and the *Threads* buffer
Gemini Lasswell [Sun, 12 Aug 2018 02:19:23 +0000 (19:19 -0700)]
Add tests for list-threads and the *Threads* buffer

* test/lisp/thread-tests.el: New file.

6 years agoAdd check in list-threads for --without-threads configuration
Gemini Lasswell [Thu, 23 Aug 2018 19:19:04 +0000 (12:19 -0700)]
Add check in list-threads for --without-threads configuration

* lisp/thread.el (list-threads): Signal an error if the Emacs configuration
doesn't have threads.

6 years agoDocument list-threads and its buffer
Gemini Lasswell [Tue, 14 Aug 2018 18:08:28 +0000 (11:08 -0700)]
Document list-threads and its buffer

* doc/lispref/threads.texi (Threads): Add menu item.
(The Thread List): New node.
* doc/lispref/elisp.texi (Top): Add menu item.

6 years agoShow backtraces of threads from thread list buffer
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.

6 years agoMake small fixes to Edebug and debugger documentation
Gemini Lasswell [Tue, 14 Aug 2018 18:06:04 +0000 (11:06 -0700)]
Make small fixes to Edebug and debugger documentation

* doc/lispref/elisp.texi (Top): Update menu.
* doc/lispref/edebug.texi (Edebug Misc): Index
edebug-backtrace-show-instrumentation and
edebug-backtrace-hide-instrumentation.

6 years agoMake list-threads refresh the *Threads* buffer if it already exists
Gemini Lasswell [Mon, 13 Aug 2018 22:45:11 +0000 (15:45 -0700)]
Make list-threads refresh the *Threads* buffer if it already exists

* lisp/thread.el (list-threads): Call revert-buffer instead of waiting
for the timer function to do it.

6 years agoImprove docstrings of thread-list 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.

6 years agoMake lisp/thread.el the new home for thread-related Lisp functions
Gemini Lasswell [Wed, 1 Aug 2018 16:22:32 +0000 (09:22 -0700)]
Make lisp/thread.el the new home for thread-related Lisp functions

* lisp/emacs-lisp/thread-list.el: Remove.
* lisp/emacs-lisp/thread.el: Remove.
* lisp/thread.el: New file.

6 years agoAdd list-threads command and thread-list-mode
Gemini Lasswell [Sat, 28 Jul 2018 22:18:49 +0000 (15:18 -0700)]
Add list-threads command and thread-list-mode

* lisp/emacs-lisp/thread-list.el: New file.

6 years agoFix documentation for conversion to bignums
Eli Zaretskii [Sat, 8 Sep 2018 09:20:55 +0000 (12:20 +0300)]
Fix documentation for conversion to bignums

* src/xselect.c (selection_data_to_lisp_data):
* src/w32fns.c (Fw32_read_registry):
* src/process.c (Fprocess_id):
* src/font.c (Ffont_variation_glyphs, Finternal_char_font):
* src/fns.c (Fsafe_length):
* src/editfns.c (Fuser_uid, Fuser_real_uid, Fgroup_gid)
(Fgroup_real_gid, Femacs_pid):
* src/dired.c (Ffile_attributes):
* src/charset.c (Fencode_char): Update commentary and doc
strings for recent changes that produce bignums where
previously cons cells of integers were produced.

6 years ago* src/puresize.h (BASE_PURESIZE): Bump to 2000000.
Paul Eggert [Fri, 7 Sep 2018 18:16:45 +0000 (11:16 -0700)]
* src/puresize.h (BASE_PURESIZE): Bump to 2000000.

Needed on Fedora 28 x86.

6 years agoOne more GC-aligned struct
Paul Eggert [Fri, 7 Sep 2018 16:50:19 +0000 (09:50 -0700)]
One more GC-aligned struct

* src/lisp.h (struct Lisp_Sub_Char_Table):
Mark this with GCALIGNED_STRUCT, too.

6 years agoFix overenthusiastic header size check
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.

6 years agoRead Windows OS info for report-emacs-bug from Registry
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.

6 years agoShrink pseudovectors a bit
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.

6 years agoFix Bug#31704
Michael Albinus [Thu, 6 Sep 2018 10:16:00 +0000 (12:16 +0200)]
Fix Bug#31704

* lisp/eshell/esh-proc.el (eshell-gather-process-output): Do not
let `expand-file-name' prefix remote file names with MS Windows
volume letter.

* lisp/net/tramp.el (tramp-eshell-directory-change):
Use `path-separator' as it does eshell.  (Bug#31704)

6 years ago* test/lisp/autorevert-tests.el
Michael Albinus [Thu, 6 Sep 2018 08:12:02 +0000 (10:12 +0200)]
* test/lisp/autorevert-tests.el

(auto-revert-test02-auto-revert-deleted-file): Extend test.

6 years agoFix timer.el minor rounding error
Paul Eggert [Wed, 5 Sep 2018 23:19:47 +0000 (16:19 -0700)]
Fix timer.el minor rounding error

* lisp/emacs-lisp/timer.el (timer-next-integral-multiple-of-time):
Fix rounding error by using integers rather than floats.
* test/lisp/emacs-lisp/timer-tests.el (timer-test-multiple-of-time):
New test.

6 years agoDo not call mh-next-msg from mh-junk-process-* fns
Stephen Gildea [Mon, 3 Sep 2018 00:06:29 +0000 (17:06 -0700)]
Do not call mh-next-msg from mh-junk-process-* fns

* mh-junk.el (mh-junk-process-blacklist, mh-junk-process-whitelist): Do
not call mh-next-msg.  Now that these functions are called from
mh-execute-commands, they should not change the current message pointer.
The calls to mh-next-msg are probably left over from when blacklist and
whitelist message processing was done immediately.

6 years agoImprove (round FIXNUM FIXNUM) performance
Paul Eggert [Wed, 5 Sep 2018 07:21:02 +0000 (00:21 -0700)]
Improve (round FIXNUM FIXNUM) performance

* src/floatfns.c (rounding_driver):
New arg fixnum_divide.  All callers changed.
(ceiling2, floor2, truncate2, round2): New functions.
Not that new, actually; these are essentially taken from Emacs 26.
(Fceiling, Ffloor, Fround, Ftruncate): Use them.

6 years agoFix format-time-string bignum bug
Paul Eggert [Wed, 5 Sep 2018 02:14:01 +0000 (19:14 -0700)]
Fix format-time-string bignum bug

The problem can occur on 32-bit platforms with current timestamps.
* src/editfns.c (disassemble_lisp_time, decode_time_components):
Support seconds counts that are bignums.
* test/src/editfns-tests.el (editfns-tests--have-leap-seconds):
New function.
(format-time-string-with-bignum-on-32-bit): New test.

6 years agoSimplify bignum->intmax conversion
Paul Eggert [Wed, 5 Sep 2018 02:14:01 +0000 (19:14 -0700)]
Simplify bignum->intmax conversion

* src/lisp.h (integer_to_intmax, integer_to_uintmax): New functions.
* src/data.c (cons_to_unsigned, cons_to_signed)
(arith_driver):
* src/dbusbind.c (xd_extract_signed, xd_extract_unsigned):
* src/dispnew.c (sit_for):
* src/editfns.c (styled_format):
* src/emacs-module.c (module_extract_integer):
* src/fileio.c (file_offset):
* src/font.c (font_unparse_xlfd, Fopen_font):
* src/xdisp.c (calc_line_height_property):
* src/process.c (handle_child_signal):

6 years agoAdd variable vc-git-grep-template
Federico Tedin [Sat, 1 Sep 2018 21:46:16 +0000 (18:46 -0300)]
Add variable vc-git-grep-template

* lisp/vc/vc-git.el (vc-git-grep-template): New variable, allows
changing the default arguments passed to git-grep when using
'vc-git-grep'.
* etc/NEWS: Mention 'vc-git-grep-template'.  (Bug#32549)

6 years agoHandle non-error signals in emacsclient --eval (Bug#10989)
Noam Postavsky [Sun, 2 Sep 2018 22:56:38 +0000 (18:56 -0400)]
Handle non-error signals in emacsclient --eval (Bug#10989)

* lisp/server.el (server-process-filter): Handle any signal, not just
errors.

6 years agoAllow t as a catch-all condition-case handler (Bug#24618)
Noam Postavsky [Fri, 10 Aug 2018 01:26:30 +0000 (21:26 -0400)]
Allow t as a catch-all condition-case handler (Bug#24618)

* src/eval.c (find_handler_clause): Accept a handler of t as always
matching.
(Fcondition_case):
* doc/lispref/control.texi (Handling Errors): Document this.
* etc/NEWS: Announce it.

6 years agoFix (round FLOAT BIGNUM) bug
Paul Eggert [Tue, 4 Sep 2018 18:49:41 +0000 (11:49 -0700)]
Fix (round FLOAT BIGNUM) bug

* src/floatfns.c (rounding_driver): Fix bug when one
argument is a float and the other is a bignum.
* test/src/floatfns-tests.el (bignum-round): Test for the bug.

6 years agoTweak nthcdr for bignum efficiency
Paul Eggert [Tue, 4 Sep 2018 17:24:51 +0000 (10:24 -0700)]
Tweak nthcdr for bignum efficiency

* src/fns.c (Fnthcdr): Use mpz_tdiv_ui and mpz_tdiv_r
instead of mpz_mod_ui and mpz_mod, as they are more efficient.
Suggested by Pip Cet in:
https://lists.gnu.org/r/emacs-devel/2018-09/msg00073.html

6 years agoFix bignum initialization
Paul Eggert [Tue, 4 Sep 2018 16:30:57 +0000 (09:30 -0700)]
Fix bignum initialization

Problem reported by Andy Moreton in:
https://lists.gnu.org/r/emacs-devel/2018-09/msg00072.html
and crystal-ball diagnosis by Eli Zaretskii in:
https://lists.gnu.org/r/emacs-devel/2018-09/msg00075.html
* src/alloc.c (xrealloc_for_gmp, xfree_for_gmp): Move to bignum.c.
(init_alloc): Move bignum initialization to init_bignum.
* src/bignum.c (init_bignum): Rename from init_bignum_once.
All users changed.
* src/emacs.c (main): Call init_bignum after init_alloc,
instead of calling init_bignum_once after init_bignum.

6 years agoSpeed up (+ 2 2) by a factor of 10
Paul Eggert [Tue, 4 Sep 2018 01:37:40 +0000 (18:37 -0700)]
Speed up (+ 2 2) by a factor of 10

Improve arithmetic performance by avoiding bignums until needed.
Also, simplify bignum memory management, fixing some unlikely leaks.
This patch improved the performance of (+ 2 2) by a factor of ten
on a simple microbenchmark computing (+ x 2), byte-compiled,
with x a local variable initialized to 2 via means the byte
compiler could not predict: performance improved from 135 to 13 ns.
The platform was Fedora 28 x86-64, AMD Phenom II X4 910e.
Performance also improved 0.6% on ‘make compile-always’.
* src/bignum.c (init_bignum_once): New function.
* src/emacs.c (main): Use it.
* src/bignum.c (mpz): New global var.
(make_integer_mpz): Rename from make_integer.  All uses changed.
* src/bignum.c (double_to_bignum, make_bignum_bits)
(make_bignum, make_bigint, make_biguint, make_integer_mpz):
* src/data.c (bignum_arith_driver, Frem, Flogcount, Fash)
(expt_integer, Fadd1, Fsub1, Flognot):
* src/floatfns.c (Fabs, rounding_driver, rounddiv_q):
* src/fns.c (Fnthcdr):
Use mpz rather than mpz_initting and mpz_clearing private
temporaries.
* src/bignum.h (bignum_integer): New function.
* src/data.c (Frem, Fmod, Fash, expt_integer):
* src/floatfns.c (rounding_driver):
Use it to simplify code.
* src/data.c (FIXNUMS_FIT_IN_LONG, free_mpz_value):
Remove.  All uses removed.
(floating_point_op): New function.
(floatop_arith_driver): New function, with much of the guts
of the old float_arith_driver.
(float_arith_driver): Use it.
(floatop_arith_driver, arith_driver):
Simplify by assuming NARGS is at least 2.
All callers changed.
(float_arith_driver):
New arg, containing the partly converted value of the next arg.
Reorder args for consistency.  All uses changed.
(bignum_arith_driver): New function.
(arith_driver): Use it.  Do fixnum-only integer calculations
in intmax_t instead of mpz_t, when they fit.
Break out mpz_t calculations into bignum_arith_driver.
(Fquo): Use floatop_arith_driver instead of float_arith_driver,
since the op is known to be valid.
(Flogcount, Fash): Simplify by coalescing bignum and fixnum code.
(Fadd1, Fsub1): Simplify by using make_int.

6 years agoMake todo-show work when adding and deleting a new todo file
Stephen Berman [Mon, 3 Sep 2018 20:40:24 +0000 (22:40 +0200)]
Make todo-show work when adding and deleting a new todo file

* lisp/calendar/todo-mode.el (todo-add-file): Since
todo-current-todo-file must be set before calling todo-show, but
the buffer is not yet in todo-mode, which makes it buffer local,
explicitly set it buffer locally (bug#32627).

* test/lisp/calendar/todo-mode-tests.el (todo-test--add-file)
(todo-test--delete-file): New functions.
(todo-test-add-and-delete-file): New test.

6 years ago* src/lisp.h: Add explanation in a comment
Stefan Monnier [Sat, 1 Sep 2018 22:51:26 +0000 (18:51 -0400)]
* src/lisp.h: Add explanation in a comment

6 years ago; Auto-commit of loaddefs files.
Glenn Morris [Sat, 1 Sep 2018 11:22:46 +0000 (07:22 -0400)]
; Auto-commit of loaddefs files.

6 years ago* src/process.c (send_process): Fix typo in commentary.
Charles A. Roelli [Sat, 1 Sep 2018 11:00:28 +0000 (13:00 +0200)]
* src/process.c (send_process): Fix typo in commentary.

6 years agoRename Emacs-specific INFINITY constants
Paul Eggert [Fri, 31 Aug 2018 16:13:31 +0000 (09:13 -0700)]
Rename Emacs-specific INFINITY constants

Although these constants were not erroneous, as they were
used only in modules that did not include <math.h>, it's
less confusing to names that cannot be confused with
the now-standard INFINITY macro.
* src/dispextern.h (SCROLL_INFINITY): New constant.
* src/dispnew.c, src/scroll.c (INFINITY):
Remove.  All uses replaced with SCROLL_INFINITY.
* src/process.c (wait_reading_process_output):
Rename private constant.

6 years agoPort better to non-IEEE platforms
Paul Eggert [Fri, 31 Aug 2018 15:50:45 +0000 (08:50 -0700)]
Port better to non-IEEE platforms

* src/lread.c (string_to_number) [!IEEE_FLOATING_POINT]:
Do not use the INFINITY macro, since the C standard requires
it to provoke a compile-time error on platforms that do not
support infinities.

6 years agoMark thread-alive-p as obsolete
Michael Albinus [Fri, 31 Aug 2018 09:45:37 +0000 (11:45 +0200)]
Mark thread-alive-p as obsolete

* etc/NEWS (thread-alive-p):
* lisp/emacs-lisp/thread.el (thread-alive-p): Mark it as obsolete.

* test/src/thread-tests.el (threads-join-error)
(threads-signal-main-thread): Use `thread-live-p'.

6 years agoMerge from origin/emacs-26
Michael Albinus [Fri, 31 Aug 2018 09:15:48 +0000 (11:15 +0200)]
Merge from origin/emacs-26

ac7936cb8f Rename thread-alive-p to thread-live-p
3d09d533d1 rcirc: Document /reconnect as a built-in command (Bug#29656)
a1e615618d * test/lisp/calc/calc-tests.el (calc-imaginary-i): New test.

6 years agoRename thread-alive-p to thread-live-p
Michael Albinus [Fri, 31 Aug 2018 08:47:03 +0000 (10:47 +0200)]
Rename thread-alive-p to thread-live-p

* doc/lispref/threads.texi (Basic Thread Functions): Use thread-live-p.

* etc/NEWS: 'thread-alive-p' has been renamed to 'thread-live-p'.

* src/thread.c (thread_live_p): Rename from thread_alive_p.  Adapt
all callees.
(Fthread_live_p): Rename from Fthread_alive_p.
(syms_of_threads): Make thread-alive-p an alias of thread-live-p.

* test/src/thread-tests.el (all): Replace `thread-alive-p' by
`thread-live-p'.
(threads-live): Rename from `threads-alive'.

6 years agoSeveral fixes for formatting bignums
Paul Eggert [Fri, 31 Aug 2018 07:25:07 +0000 (00:25 -0700)]
Several fixes for formatting bignums

* src/bignum.c: Include stdlib.h, for abs.
(bignum_bufsize, bignum_to_c_string): New functions.
* src/bignum.c (bignum_to_string):
* src/print.c (print_vectorlike): Use them.
* src/editfns.c (styled_format): Instead of having a separate
buffer for sprintf (which does not work for bignums), just append
to the main buffer.  When formatting bignums, add support for the
standard integer flags -, #, 0, + and space.  Fix some comments.
Capitalize properly when formatting bignums with %X.  Use
functions like c_isdigit rather than reinventing the wheel.
Simplify computation of excess precision.
* src/print.c: Do not include bignum.h; no longer needed.
(print_vectorlike): Avoid recalculating string length.
* test/src/editfns-tests.el (format-bignum):
Test some of the above fixes.

6 years ago* src/alloc.c (sweep_vectors): Simplify.
Paul Eggert [Fri, 31 Aug 2018 07:22:15 +0000 (00:22 -0700)]
* src/alloc.c (sweep_vectors): Simplify.

6 years agoConstruct a thread_event only if THREADS_ENABLED
Michael Albinus [Fri, 31 Aug 2018 07:04:13 +0000 (09:04 +0200)]
Construct a thread_event only if THREADS_ENABLED

* src/thread.c (Fthread_signal): Construct a thread_event only if
THREADS_ENABLED.

6 years agoFix bignum FIXME in emacs-module.c
Paul Eggert [Fri, 31 Aug 2018 01:10:18 +0000 (18:10 -0700)]
Fix bignum FIXME in emacs-module.c

* src/emacs-module.c: Do not include bignum.h; no longer needed.
(module_extract_integer): Use bignum_to_intmax to avoid
incorrectly signaling overflow on platforms where intmax_t
is wider than long int.

6 years ago* lisp/vc/vc.el (vc-log-internal-common): Reuse the buffer object.
Juri Linkov [Thu, 30 Aug 2018 22:20:14 +0000 (01:20 +0300)]
* lisp/vc/vc.el (vc-log-internal-common): Reuse the buffer object.

(Bug#32475)

6 years ago* lisp/gnus/mm-view.el (mm-display-inline-fontify): Carry diff-mode overlays
Juri Linkov [Thu, 30 Aug 2018 22:15:56 +0000 (01:15 +0300)]
* lisp/gnus/mm-view.el (mm-display-inline-fontify): Carry diff-mode overlays

to inline MIME attachments from the temp buffer along with text properties.
(Bug#32474)

6 years agoFix off-by-1 typo in recent bignum changes
Paul Eggert [Thu, 30 Aug 2018 21:28:19 +0000 (14:28 -0700)]
Fix off-by-1 typo in recent bignum changes

Problem reported by Yuri D’Elia in:
https://lists.gnu.org/r/emacs-devel/2018-08/msg00977.html
and crucial clue provided by Michael Heerdegen in:
https://lists.gnu.org/r/emacs-devel/2018-08/msg01043.html
* src/font.c (font_unparse_xlfd): Fix off-by-1 typo.

6 years agoHandle thread-signal towards the main thread (Bug#32502)
Michael Albinus [Thu, 30 Aug 2018 19:29:04 +0000 (21:29 +0200)]
Handle thread-signal towards the main thread  (Bug#32502)

* doc/lispref/threads.texi (Basic Thread Functions):
* etc/NEWS: Document thread-signal towards the main thread.

* lisp/emacs-lisp/thread.el: New package.

* src/keyboard.c (read_char): Check for Qthread_event.
(kbd_buffer_get_event, make_lispy_event): Handle THREAD_EVENT.
(syms_of_keyboard): Declare Qthread_event.
(keys_of_keyboard): Add thread-handle-event to special-event-map.

* src/termhooks.h (enum event_kind): Add THREAD_EVENT.

* src/thread.c: Include "keyboard.h".
(poll_suppress_count) Don't declare extern.
(Fthread_signal): Raise event if THREAD is the main thread.  (Bug#32502)

* test/src/thread-tests.el (thread): Require it.
(threads-signal-main-thread): New test.

6 years ago* configure.ac: Fix goofs in my recent ImageMagick change.
Glenn Morris [Thu, 30 Aug 2018 17:56:08 +0000 (13:56 -0400)]
* configure.ac: Fix goofs in my recent ImageMagick change.

6 years agoPacify -Wdouble-promotion in ImageMagick code
Paul Eggert [Thu, 30 Aug 2018 17:03:43 +0000 (10:03 -0700)]
Pacify -Wdouble-promotion in ImageMagick code

* src/image.c (imagemagick_load_image): Use double division, and
eliminate a cast.  This avoids a -Wdouble-promotion warning with
GCC 7.3 on Ubuntu 18.04.

6 years agorcirc: Document /reconnect as a built-in command (Bug#29656)
Miciah Masters [Mon, 11 Dec 2017 00:56:48 +0000 (19:56 -0500)]
rcirc: Document /reconnect as a built-in command (Bug#29656)

The change "New command rcirc-cmd-reconnect" from 2014-04-09 (shipped
in Emacs 25.1) added a /reconnect command to rcirc but did not
document it and did not delete the example /reconnect command
definition in the manual.
* doc/misc/rcirc.texi (rcirc commands): Document the built-in /reconnect
command.
(Hacking and Tweaking): Delete example reconnect command.

Copyright-paperwork-exempt: yes

6 years ago* test/lisp/calc/calc-tests.el (calc-imaginary-i): New test.
Noam Postavsky [Thu, 30 Aug 2018 02:47:00 +0000 (22:47 -0400)]
* test/lisp/calc/calc-tests.el (calc-imaginary-i): New test.

6 years agoMerge from origin/emacs-26
Glenn Morris [Wed, 29 Aug 2018 15:24:03 +0000 (08:24 -0700)]
Merge from origin/emacs-26

2670cbf (origin/emacs-26) ; * configure.ac: Remove outdated comment (...
3b71bef admin.el: respect environment settings for makeinfo etc
3764ab4 * etc/PROBLEMS: New entry about GTK+ 3 crash with some X serv...
9d61344 Index profiler commands in elisp manual
f088817 Fix math-imaginary-i check
fca935e ; Let pre-commit git hook check merged in changes (Bug#29197)
fe06fcc Avoid infinite hscrolling loops when line numbers are displayed
63e59c8 Avoid crashes in malformed defvar
785682c * configure.ac (emacs_config_features): Add GLIB, XDBE, XIM.
2695b7e * configure.ac: Doc fixes related to --with-xim.
d0d162c Small checkdoc quoting fix (bug#32546)

Conflicts:
configure.ac

6 years ago* src/keymap.c: Make better use of access_keymap's functionality
Stefan Monnier [Wed, 29 Aug 2018 14:43:41 +0000 (10:43 -0400)]
* src/keymap.c: Make better use of access_keymap's functionality

(Flookup_key): Allow `keymap' to be a list of keymaps.
(Fcommand_remapping, Fkey_binding): Simplify accordingly.
(shadow_lookup, describe_map_tree): Simplify.

6 years agoImprove tramp-convert-file-attributes backward compatibility
Michael Albinus [Wed, 29 Aug 2018 08:05:34 +0000 (10:05 +0200)]
Improve tramp-convert-file-attributes backward compatibility

* lisp/net/tramp-sh.el (tramp-convert-file-attributes):
Use `seconds-to-time' for {access, modification, status change}
time.  Simplify check for inode.

* test/lisp/net/tramp-tests.el (tramp-test22-file-times):
Use `seconds-to-time'.

6 years ago* lisp/mail/emacsbug.el (report-emacs-bug--os-description): Add BSD.
Glenn Morris [Wed, 29 Aug 2018 01:22:37 +0000 (21:22 -0400)]
* lisp/mail/emacsbug.el (report-emacs-bug--os-description): Add BSD.

6 years ago; * configure.ac: Remove outdated comment (it was about CRT_DIR).
Glenn Morris [Wed, 29 Aug 2018 01:03:12 +0000 (21:03 -0400)]
; * configure.ac: Remove outdated comment (it was about CRT_DIR).

6 years ago* lisp/mail/emacsbug.el (report-emacs-bug--os-description):
Glenn Morris [Wed, 29 Aug 2018 00:35:09 +0000 (20:35 -0400)]
* lisp/mail/emacsbug.el (report-emacs-bug--os-description):
Add MS Windows.

6 years agoadmin.el: respect environment settings for makeinfo etc
Glenn Morris [Tue, 28 Aug 2018 20:34:25 +0000 (16:34 -0400)]
admin.el: respect environment settings for makeinfo etc

* admin/admin.el (manual-makeinfo, manual-texi2pdf, manual-texi2dvi):
New variables.
(manual-html-mono, manual-html-node, manual-pdf, manual-ps): Use them.

6 years ago* etc/PROBLEMS: New entry about GTK+ 3 crash with some X servers.
Glenn Morris [Tue, 28 Aug 2018 20:05:04 +0000 (16:05 -0400)]
* etc/PROBLEMS: New entry about GTK+ 3 crash with some X servers.

6 years agoImprove (format "%g" bignum) precision
Paul Eggert [Tue, 28 Aug 2018 18:59:21 +0000 (11:59 -0700)]
Improve (format "%g" bignum) precision

* src/editfns.c (styled_format): When formatting bignums with
floating-point conversions like %g, use long double if that
would lose less information than double, which is what the
code was already doing for fixnums.  On Fedora 28 x86-64, for
example, (format "%.100g" (1- (ash 1 64))) now yields
"18446744073709551615" instead of the numerically incorrect
"18446744073709549568".  Also, fix a stray INTEGERP that
can just be FIXNUMP, since bignums are not possible there.

6 years agoFix Fnatnump typos
Paul Eggert [Tue, 28 Aug 2018 16:51:49 +0000 (09:51 -0700)]
Fix Fnatnump typos

Problem reported by Glenn Morris in:
https://lists.gnu.org/r/emacs-devel/2018-08/msg00946.html
* src/floatfns.c (Fexpt):
* src/xselect.c (cons_to_x_long):
Don't assume Lisp_Object values are scalars.

6 years agoFix a recent change
Eli Zaretskii [Tue, 28 Aug 2018 16:36:02 +0000 (19:36 +0300)]
Fix a recent change

* src/dispnew.c (sit_for): Don;t treat nil as zero.  Reported
by Glenn Morris <rgm@gnu.org>.

6 years agoAdd bignum support in Tramp
Michael Albinus [Tue, 28 Aug 2018 14:27:02 +0000 (16:27 +0200)]
Add bignum support in Tramp

* lisp/net/tramp-adb.el (tramp-adb-handle-file-system-info):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-system-info):
* lisp/net/tramp-sh.el (tramp-do-file-attributes-with-stat)
(tramp-do-directory-files-and-attributes-with-stat)
(tramp-sh-handle-file-system-info):
* lisp/net/tramp-smb.el (tramp-smb-handle-file-system-info): Do
not add "e0" to integers.

* lisp/net/tramp-sh.el (tramp-perl-file-attributes)
(tramp-convert-file-attributes): Do not use a consp for the inode
if there is bignum support.

6 years agoIndex profiler commands in elisp manual
Noam Postavsky [Tue, 28 Aug 2018 11:49:49 +0000 (07:49 -0400)]
Index profiler commands in elisp manual

* doc/lispref/debugging.texi (Profiling): Add index entries for
profiler-start, profiler-report, profiler-stop.

6 years agoFix math-imaginary-i check
Noam Postavsky [Wed, 15 Aug 2018 03:26:50 +0000 (23:26 -0400)]
Fix math-imaginary-i check

Reported by Bastian Erdnüß at
<https://lists.gnu.org/archive/html/emacs-devel/2018-08/msg00300.html>.
* lisp/calc/calc-cplx.el (math-imaginary-i): Check for a value
of (polar 1 <quarter-circle>).

6 years ago; Let pre-commit git hook check merged in changes (Bug#29197)
Noam Postavsky [Thu, 15 Feb 2018 00:58:07 +0000 (19:58 -0500)]
; Let pre-commit git hook check merged in changes (Bug#29197)

* build-aux/git-hooks/pre-commit: If GIT_MERGE_CHECK_OTHER is 'true',
check changes against the merge target, rather than the current
branch.  Include file name when giving error message about
non-standard characters.

6 years agoAvoid infinite hscrolling loops when line numbers are displayed
Eli Zaretskii [Tue, 28 Aug 2018 11:11:12 +0000 (14:11 +0300)]
Avoid infinite hscrolling loops when line numbers are displayed

* src/xdisp.c (maybe_produce_line_number): Don't produce line
numbers if we don't have enough screen estate.  (Bug#32351)

6 years agoAvoid crashes in malformed defvar
Eli Zaretskii [Tue, 28 Aug 2018 07:20:46 +0000 (10:20 +0300)]
Avoid crashes in malformed defvar

* src/eval.c (Fdefvar): Don't call XSYMBOL on something that
might not be a symbol.  This avoids crashes due to malformed
'defvar' forms.  (Bug#32552)

6 years agoImprove bignum support for system types
Paul Eggert [Tue, 28 Aug 2018 04:27:50 +0000 (21:27 -0700)]
Improve bignum support for system types

Use bignums when Emacs converts to and from system types like
off_t for file sizes whose values can exceed fixnum range.
Formerly, Emacs sometimes generted floats and sometimes ad-hoc
conses of integers.  Emacs still accepts floats and conses for
these system types, in case some stray Lisp code is generating
them, though this usage is obsolescent.
* doc/lispref/files.texi (File Attributes):
* doc/lispref/hash.texi (Defining Hash):
* doc/lispref/nonascii.texi (Character Sets):
* doc/lispref/os.texi (User Identification):
* doc/lispref/processes.texi (System Processes):
* etc/NEWS:
Document changes.
* src/bignum.c (mpz_set_uintmax, make_biguint)
(mpz_set_uintmax_slow, bignum_to_intmax, bignum_to_uintmax):
New functions.
(mpz_set_intmax_slow): Implement via mpz_limbs_write,
to avoid the need for an extra pass through a negative number.
* src/charset.c (Fencode_char):
* src/composite.h (LGLYPH_SET_CODE):
* src/dired.c (file_attributes):
* src/dosfns.c, src/w32.c (list_system_processes)
(system_process_attributes):
* src/editfns.c (init_editfns, Fuser_uid, Fuser_real_uid)
(Fgroup_gid, Fgroup_real_gid, Femacs_pid):
* src/emacs-module.c (check_vec_index):
* src/fns.c (Fsafe_length):
* src/process.c (record_deleted_pid, Fprocess_id):
* src/sysdep.c (list_system_processes, system_process_attributes):
* src/xselect.c (x_own_selection, selection_data_to_lisp_data):
* src/xterm.c (set_wm_state):
* src/inotify.c (inotifyevent_to_event, add_watch)
(inotify_callback):
If an integer is out of fixnum range, use a bignum
instead of converting it to a float or a cons of integers.
* src/coding.c (Fdefine_coding_system_internal):
* src/frame.c (frame_windows_min_size)
(x_set_frame_parameters):
* src/fringe.c (Fdefine_fringe_bitmap):
* src/nsterm.m (mouseDown:):
* src/syntax.c (find_defun_start):
* src/w32fns.c (x_set_undecorated, w32_createwindow)
(w32_wnd_proc, Fx_create_frame, Fx_show_tip)
(w32_console_toggle_lock_key):
* src/w32inevt.c (key_event):
* src/w32proc.c (Fw32_get_locale_info):
Do not mishandle floats by treating their addresses as their
values.
* src/data.c (store_symval_forwarding):
* src/gnutls.c (Fgnutls_error_fatalp, Fgnutls_error_string):
* src/keyboard.c (command_loop_1, make_lispy_event):
* src/lread.c (read_filtered_event, read1)
(substitute_object_recurse):
* src/window.c (Fcoordinates_in_window_p, Fwindow_at)
(window_resize_apply, Fset_window_vscroll):
* src/xdisp.c (handle_single_display_spec, try_scrolling)
(redisplay_window, calc_pixel_width_or_height)
(calc_line_height_property, on_hot_spot_p):
* src/xfaces.c (check_lface_attrs):
* src/xselect.c (x_get_local_selection, cons_to_x_long)
(lisp_data_to_selection_data, clean_local_selection_data)
(x_check_property_data, x_fill_property_data):
(x_send_client_event):
Do not reject bignums.
* src/data.c (INTBIG_TO_LISP, intbig_to_lisp)
(uintbig_to_lisp):
Remove.  All uses removed.
* src/data.c (cons_to_unsigned, cons_to_signed):
* src/dbusbind.c (xd_signature, xd_extract_signed)
(xd_extract_unsigned):
* src/dispnew.c (sit_for):
* src/dosfns.c, src/w32.c (system_process_attributes):
* src/editfns.c (Fuser_full_name):
* src/fileio.c (file_offset):
* src/fileio.c (write_region):
* src/font.c (font_unparse_xlfd, font_open_for_lface, Fopen_font):
* src/frame.c (x_set_screen_gamma):
* src/frame.h (NUMVAL, FRAME_PIXEL_X_FROM_CANON_X)
(FRAME_PIXEL_Y_FROM_CANON_Y):
* src/image.c (parse_image_spec, x_edge_detection)
(compute_image_size):
* src/json.c (json_to_lisp):
* src/lcms.c (PARSE_LAB_LIST_FIELD, Flcms_cie_de2000)
(PARSE_XYZ_LIST_FIELD, PARSE_JCH_LIST_FIELD)
(PARSE_JAB_LIST_FIELD, PARSE_VIEW_CONDITION_FLOAT)
(Flcms_temp_to_white_point):
* src/nsimage.m (ns_load_image, setSizeFromSpec):
* src/process.c (Fsignal_process, handle_child_signal):
* src/sysdep.c (system_process_attributes):
* src/xdisp.c (calc_line_height_property):
Handle bignums.
* src/data.c (Fnumber_to_string): Use proper predicate name in
signal if the argument is not a number.
* src/lisp.h (make_uint): New function.
(INT_TO_INTEGER): New macro.
(FIXED_OR_FLOATP, CHECK_FIXNUM_OR_FLOAT)
(CHECK_FIXNUM_OR_FLOAT_COERCE_MARKER, INTEGER_TO_CONS)
(make_fixnum_or_float): Remove; no longer used.
* src/nsfns.m, src/w32fns.c, src/xfns.c (Fx_create_frame):
Reject floating-point min-width or min-height.
* src/process.c (handle_child_signal): Do not worry
about floating-point pids, as they are no longer generated.

6 years agoModularize bignums better
Paul Eggert [Tue, 28 Aug 2018 04:27:50 +0000 (21:27 -0700)]
Modularize bignums better

* src/bignum.c, src/bignum.h: New files.  Only modules that
need to know how bignums are implemented should include
bignum.h.  Currently these are alloc.c, bignum.c (of course),
data.c, emacs.c, emacs-module.c, floatfns.c, fns.c, print.c.
* src/Makefile.in (base_obj): Add bignum.o.
* src/alloc.c (make_bignum_str): Move to bignum.c.
(make_number): Remove; replaced by bignum.c’s make_integer.
All callers changed.
* src/conf_post.h (ARG_NONNULL): New macro.
* src/json.c (json_to_lisp): Use it.
* src/data.c (Fnatnump):
Move NATNUMP’s implementation here from lisp.h.
* src/data.c (Fnumber_to_string):
* src/editfns.c (styled_format):
Move conversion of string to bignum to bignum_to_string, and
call it here.
* src/emacs-module.c (module_make_integer):
* src/floatfns.c (Fabs):
Simplify by using make_int.
* src/emacs.c: Include bignum.h, to expand its inline fns.
* src/floatfns.c (Ffloat): Simplify by using XFLOATINT.
(rounding_driver): Simplify by using double_to_bignum.
(rounddiv_q): Clarify use of temporaries.
* src/lisp.h: Move decls that need to know bignum internals to
bignum.h.  Do not include gmp.h or mini-gmp.h; that is now
bignum.h’s job.
(GMP_NUM_BITS, struct Lisp_Bignum, XBIGNUM, mpz_set_intmax):
Move to bignum.h.
(make_int): New function.
(NATNUMP): Remove; all callers changed to use Fnatnump.
(XFLOATINT): If arg is a bignum, use bignum_to_double, so that
bignum internals are not exposed here.
* src/print.c (print_vectorlike): Use SAFE_ALLOCA to avoid the
need for a record_unwind_protect_ptr.

6 years ago* configure.ac, src/image.c: Tweak previous ImageMagick change.
Glenn Morris [Tue, 28 Aug 2018 02:03:25 +0000 (22:03 -0400)]
* configure.ac, src/image.c: Tweak previous ImageMagick change.

6 years agoSupport ImageMagick version 7 (bug#25967)
Karl Otness [Tue, 28 Aug 2018 01:57:44 +0000 (21:57 -0400)]
Support ImageMagick version 7 (bug#25967)

* configure.ac, src/image.c: Add support for ImageMagick version 7.

Copyright-paperwork-exempt: yes

6 years agoUpdate from Gnulib
Paul Eggert [Tue, 28 Aug 2018 01:59:46 +0000 (18:59 -0700)]
Update from Gnulib

* build-aux/config.sub, lib/intprops.h, lib/regex_internal.c:
* lib/regex_internal.h, lib/unistd.in.h, m4/limits-h.m4:
* m4/stdint.m4, m4/unistd_h.m4:
Copy from Gnulib.
* lib/gnulib.mk.in: Regenerate.

6 years ago* configure.ac (emacs_config_features): Add GLIB, XDBE, XIM.
Glenn Morris [Tue, 28 Aug 2018 01:46:14 +0000 (21:46 -0400)]
* configure.ac (emacs_config_features): Add GLIB, XDBE, XIM.

6 years ago* configure.ac: Doc fixes related to --with-xim.
Glenn Morris [Tue, 28 Aug 2018 01:44:29 +0000 (21:44 -0400)]
* configure.ac: Doc fixes related to --with-xim.

6 years agoNew commands bibtex-next/previous-entry (Bug#32378)
Alex Branham [Tue, 21 Aug 2018 15:21:39 +0000 (10:21 -0500)]
New commands bibtex-next/previous-entry (Bug#32378)

* lisp/textmodes/bibtex.el (bibtex-next-entry)
(bibtex-previous-entry): New commands.
(bibtex-mode-map): Bind to to forward-paragraph and
backward-paragraph.  Add to menu under "Moving inside an Entry".

6 years agoshr: Allow skipping tags with aria-hidden (Bug#32348)
Noam Postavsky [Wed, 8 Aug 2018 00:40:56 +0000 (20:40 -0400)]
shr: Allow skipping tags with aria-hidden (Bug#32348)

* lisp/net/shr.el (shr-discard-aria-hidden): New option.
(shr-descend): Suppress aria-hidden=true tags if it's set.
* doc/misc/eww.texi (Advanced): Document shr-discard-aria-hidden.
* etc/NEWS: Announce it.

6 years agoAllow setf of buffer-modified-p without argument (Bug#21201)
Noam Postavsky [Tue, 17 Jul 2018 02:14:32 +0000 (22:14 -0400)]
Allow setf of buffer-modified-p without argument (Bug#21201)

* lisp/emacs-lisp/cl-lib.el (setf buffer-modified-p): Take current
buffer if optional argument BUF is not passed.

6 years agoSmall checkdoc quoting fix (bug#32546)
Glenn Morris [Mon, 27 Aug 2018 22:27:01 +0000 (18:27 -0400)]
Small checkdoc quoting fix (bug#32546)

* lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
Fix quoting thinko.

6 years agoCC Mode: Fix syntactic context of BOD sometimes being 'topmost-intro-cont
Alan Mackenzie [Mon, 27 Aug 2018 20:37:49 +0000 (20:37 +0000)]
CC Mode: Fix syntactic context of BOD sometimes being 'topmost-intro-cont

This happened when the type of the previous function was a struct, etc.,
declaration.

* lisp/progmodes/cc-mode (c-guess-basic-syntax CASE 5N): Check here (for
'topmost-intro-cont) that the first opening brace after BOD is the opening
brace preceding the starting point.

6 years agoc-where-wrt-brace-construct: deal with point following a struct's semicolon.
Alan Mackenzie [Mon, 27 Aug 2018 19:49:25 +0000 (19:49 +0000)]
c-where-wrt-brace-construct: deal with point following a struct's semicolon.

More precisely, when point is right after the terminating semicolon of a
construct like "struct foo { .... } bar;", the function must return
'at-function-end.

* lisp/progmodes/cc-cmds.el (c-where-wrt-brace-construct): Surround an
existing test for 'at-function-end with an `or' form, the other arm testing
for being after the semicolon above.

6 years agoFix links in backtraces to work on advised built-ins (Bug#25393)
Gemini Lasswell [Wed, 8 Aug 2018 02:39:06 +0000 (19:39 -0700)]
Fix links in backtraces to work on advised built-ins (Bug#25393)

* lisp/emacs-lisp/backtrace.el (backtrace--print-func-and-args): Make
links to the original definition of advised functions.  Handle the
case when the function slot of the backtrace frame contains the
definition of a built-in function.

6 years agoBump Tramp version to 2.4.1-pre
Michael Albinus [Mon, 27 Aug 2018 14:45:50 +0000 (16:45 +0200)]
Bump Tramp version to 2.4.1-pre

* doc/misc/trampver.texi:
* lisp/net/trampver.el: Change version to "2.4.1-pre".

* lisp/net/tramp.el: Add "Package-Requires" header.

6 years agoMerge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Michael Albinus [Mon, 27 Aug 2018 10:51:44 +0000 (12:51 +0200)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs

6 years agoMerge from origin/emacs-26
Glenn Morris [Sun, 26 Aug 2018 22:10:50 +0000 (15:10 -0700)]
Merge from origin/emacs-26

54fb383 (origin/emacs-26) Fix detection of freed emacs_values (Bug#32...
769d0cd ; Fix out-of-tree build for mod-test.so
9a1329e Avoid crashes with very wide TTY frames on MS-Windows
9a613d3 Prevent `modify-file-local-variable-prop-line' from adding ex...
624e7dc Update GNOME bugtracker URLs
51ef6d5 Clarify in the Emacs manual that ChangeLog files are not used
6e08019 Recognize codepage 65001 as a valid encoding
1a350d7 ; * etc/NEWS: Fix format of first lines of some entries.
22d1f53 Avoid compilation warning in nt/addpm.c
7bc9ce7 Fix duplicate custom group names in bibtex.el
a9cf938 Fix outdated text in the Calc manual

Conflicts:
etc/NEWS
etc/PROBLEMS
src/emacs-module.c
src/gtkutil.c
src/image.c
src/xterm.c
test/Makefile.in

6 years agoFix a typo in alloc.c
Eli Zaretskii [Sun, 26 Aug 2018 14:53:05 +0000 (17:53 +0300)]
Fix a typo in alloc.c

* src/alloc.c (Fmemory_use_counts): The list we return now has
only 7 elements, not 8.  (Bug#32531)

6 years agoCC Mode: make c-display-defun-name work with a pointer return type.
Alan Mackenzie [Sun, 26 Aug 2018 11:05:22 +0000 (11:05 +0000)]
CC Mode: make c-display-defun-name work with a pointer return type.

Fixes bug #32403.

* lisp/progmodes/cc-cmds.el (c-in-function-trailer-p): No longer insist on
c-beginning-of-decl-1 returning 'same.
(c-where-wrt-brace-construct): Tighten up the test for looking at a symbol by
excluding keywords.  When point is after a }, do not return 'at-function-end
for a struct/union/class/...
(c-defun-name-1): Considerably simplify, by amalgamating the two cond arms
which find structs etc., and by using functions like c-forward-declarator
rather than the faulty analysis of the source by hand.

6 years ago* lisp/net/tramp.el: Add "Version" header.
Stefan Monnier [Sun, 26 Aug 2018 08:33:09 +0000 (10:33 +0200)]
* lisp/net/tramp.el: Add "Version" header.

6 years agoImprove format-seconds accuracy
Paul Eggert [Sun, 26 Aug 2018 02:03:26 +0000 (19:03 -0700)]
Improve format-seconds accuracy

* doc/lispref/os.texi (Time Parsing): It works with bignums.
* lisp/calendar/time-date.el (format-seconds):
Take the floor so that the resulting arithmetic is exact.

6 years agoFix detection of freed emacs_values (Bug#32479)
Sergey Vinokurov [Sun, 19 Aug 2018 20:31:01 +0000 (21:31 +0100)]
Fix detection of freed emacs_values (Bug#32479)

* src/emacs-module.c (module_free_global_ref): Compare a value to be
freed with all entries of the list.

* test/data/emacs-module/mod-test.c (Fmod_test_globref_free): New
function.
(emacs_module_init): Make it accessible from Lisp.
* test/src/emacs-module-tests.el (mod-test-globref-free-test): New
test which uses it.

6 years ago; Fix out-of-tree build for mod-test.so
Noam Postavsky [Sat, 25 Aug 2018 22:55:11 +0000 (18:55 -0400)]
; Fix out-of-tree build for mod-test.so

* test/Makefile.in: Don't look for emacs-module.h in $(srcdir), since
it is generated.

6 years agoPrefer CONSP etc. to XTYPE
Paul Eggert [Sat, 25 Aug 2018 21:20:02 +0000 (14:20 -0700)]
Prefer CONSP etc. to XTYPE

* src/nsmenu.m (process_dialog:):
(initFromContents:isQuestion:):
Prefer CONSP (x) to XTYPE (x) == Lisp_Cons,
and similarly for STRINGP (x).

6 years agoImprove performance of CONSP, FIXNUMP, etc.
Paul Eggert [Sat, 25 Aug 2018 20:39:18 +0000 (13:39 -0700)]
Improve performance of CONSP, FIXNUMP, etc.

Optimization opportunity noted by Pip Cet in:
https://lists.gnu.org/r/emacs-devel/2018-08/msg00828.html
On my platform (Fedora 28 x86-64, AMD Phenom II X4 910e,
user+system time), this improved ‘make compile-always’
performance by 0.4% and shrank text size by a similar amount.
* src/lisp.h (TAGGEDP, lisp_h_TAGGEDP): New macros and function.
(lisp_h_CONSP, lisp_h_FLOATP, lisp_h_SYMBOLP)
(lisp_h_VECTORLIKEP, make_lisp_ptr, STRINGP): Use them.
(lisp_h_FIXNUMP): Use the same idea that lisp_h_TAGGEDP uses.

6 years agoAvoid crashes with very wide TTY frames on MS-Windows
Eli Zaretskii [Sat, 25 Aug 2018 12:26:41 +0000 (15:26 +0300)]
Avoid crashes with very wide TTY frames on MS-Windows

* src/w32console.c <glyph_base>: Reduce the number of elements
to 80.
<glyphs, glyphs_len>: New static variables.
(w32con_clear_end_of_line): If the line is wider than the
current size of the "empty row" in 'glyphs', reallocate
'glyphs' to support the full width of the frame.  This
avoids segfaults when the frame is wider than 256 columns.
(Bug#32445)

6 years agoPrevent `modify-file-local-variable-prop-line' from adding extra ';'
Wenjamin Petrenko [Tue, 14 Aug 2018 08:44:18 +0000 (11:44 +0300)]
Prevent `modify-file-local-variable-prop-line' from adding extra ';'

* lisp/files-x.el (modify-file-local-variable-prop-line): Handle
whitespace when checking if there's already a ';' before the
variable (Bug#23294).

Copyright-paperwork-exempt: yes

6 years agoUpdate GNOME bugtracker URLs
Glenn Morris [Fri, 24 Aug 2018 17:13:08 +0000 (13:13 -0400)]
Update GNOME bugtracker URLs

* configure.ac, admin/notes/multi-tty, etc/PROBLEMS:
* src/emacs.c (main):
* src/xterm.c (x_connection_closed): Update GNOME bugtracker URLs.
; * src/gtkutil.c (xg_display_close):
; * src/image.c (svg_load_image): Update URLs in comments.

6 years agoDetect Chinese sudo password prompts (Bug#31075)
Noam Postavsky [Mon, 25 Jun 2018 23:11:41 +0000 (19:11 -0400)]
Detect Chinese sudo password prompts (Bug#31075)

* lisp/comint.el (comint-password-prompt-regexp): Allow text between
the prompt prefix and password equivalent.
* lisp/eshell/esh-mode.el (eshell-password-prompt-regexp): Accept some
unicode alternatives to ":".
* test/lisp/comint-tests.el (comint-testsuite-password-strings): Add
test case.

6 years agoFix comint-password-prompt-regexp
Noam Postavsky [Fri, 17 Aug 2018 10:29:35 +0000 (06:29 -0400)]
Fix comint-password-prompt-regexp

The change from 2017-12-22 "Support French password prompts in shell"
tried to allow nonbreaking space in addition to whitespace syntax
characters around the colon, but used square brackets which cause "\s"
to be interpreted literally rather than as a backslash construct.
* lisp/comint.el (comint-password-prompt-regexp): Use [[:blank:]]
instead, which also has the benefit of not relying on the major mode's
whitespace syntax setting.
* test/lisp/comint-tests.el (comint-testsuite-password-strings):
Update French localized entry to have a space before the colon, as
reported in Bug#29729.

6 years agoReplace 2 checks in rmailsum.el with 'pos-visible-in-window-p'
Charles A. Roelli [Thu, 23 Aug 2018 20:10:08 +0000 (22:10 +0200)]
Replace 2 checks in rmailsum.el with 'pos-visible-in-window-p'

* lisp/mail/rmailsum.el (rmail-summary-scroll-msg-up)
(rmail-summary-scroll-msg-down): Use 'pos-visible-in-window-p'
instead of checking the condition by hand.