1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-08 08:43:52 -08:00
Commit graph

138154 commits

Author SHA1 Message Date
Paul Eggert
2b552f3489 Don’t debug fset by default
This GC bug seems to have been fixed, so the check is no longer
needed in production code.  From a suggestion by Pip Cet in:
https://lists.gnu.org/r/emacs-devel/2019-08/msg00316.html
* src/alloc.c (SUSPICIOUS_OBJECT_CHECKING) [!ENABLE_CHECKING]:
Do not define.
(find_suspicious_object_in_range, detect_suspicious_free):
Expand to proper dummy expressions if !SUSPICIOUS_OBJECT_CHECKING.
* src/data.c (Ffset): Convert test to an eassert.
2019-08-21 22:30:18 -07:00
Paul Eggert
ceebf3efbe Fix clrhash bug when hash table needs rehashing
Problem reported by Pip Cet in:
https://lists.gnu.org/r/emacs-devel/2019-08/msg00316.html
* src/fns.c (maybe_resize_hash_table): Prefer ASET to gc_aset
where either will do.  Simplify appending of Qunbound values.
Put index_size calculation closer to where it’s needed.
(hash_clear): If hash_rehash_needed_p (h), don’t clear the
nonexistent hash vector.  Use memclear to speed up clearing.
* src/lisp.h (HASH_TABLE_SIZE): Check that the size is positive,
and tell that to the compiler.
2019-08-21 19:01:49 -07:00
Paul Eggert
c64c0230d6 * src/buffer.c: Fix comment typo. 2019-08-21 17:21:06 -07:00
Paul Eggert
951ea375d5 Don’t hard-loop on cycles in ‘read’ etc.
Problem for ‘read’ reported by Pip Cet in:
https://lists.gnu.org/r/emacs-devel/2019-08/msg00316.html
* src/fns.c (Frequire): Protect against circular current-load-list.
* src/lread.c (Fget_load_suffixes):
Protect against circular load-suffixes or load-file-rep-suffixes.
(Fload): Protect against circular loads-in-progress.
(openp): Protect against circular PATH and SUFFIXES.
(build_load_history): Protect against circular load-history or
current-load-list.
(readevalloop_eager_expand_eval): Protect against circular SUBFORMS.
(read1): Protect against circular data.
* test/src/lread-tests.el (lread-circular-hash): New test.
2019-08-21 17:21:06 -07:00
Lars Ingebrigtsen
11de1155f8 Make hide-ifdef-mode-prefix-key customisable
* lisp/progmodes/hideif.el (hide-ifdef-mode-prefix-key): Make into
a defcustom since it seems like this is something that should be
user-customisable (bug#8922).
2019-08-21 13:49:57 -07:00
Lars Ingebrigtsen
08dd4b9f0c Use `quit-window-hook' in Info instead of having its own command
* doc/misc/info.texi (Help-Q): Info now uses `quit-window'.

* lisp/info.el (info-standalone): Adjust doc string.
(Info-exit): Made into obsolete alias.
(Info-mode-map): Bind "q" to `quit-window'.
(Info-mode-menu): Adjust.
(info-tool-bar-map): Ditto.
(Info-mode): Adjust doc string.
(Info-mode): If Info is standalone, kill Emacs on "q".
2019-08-21 13:36:59 -07:00
Lars Ingebrigtsen
b60bdfcd4c Adjust quit-window-hook documentation
* doc/lispref/windows.texi (Quitting Windows): Adjust
documentation of quit-window-hook (bug#9867).
2019-08-21 13:22:56 -07:00
Lars Ingebrigtsen
ab9cb08ebb Mention quit-window-hook in "Standard Hooks"
* doc/lispref/hooks.texi (Standard Hooks): Mention
quit-window-hook (bug#9867).
2019-08-21 13:21:52 -07:00
Lars Ingebrigtsen
2e8bbd5881 Call quit-window-hook' in the quit-window' command only
* lisp/window.el (quit-restore-window): Don't run quit-window-hook
here...
(quit-window): ... but here instead.  Callers that call the former
programmatically can decide themselves whether to call the hook.
(quit-window-hook): Fix doc string.
2019-08-21 13:18:47 -07:00
Lars Ingebrigtsen
6224fce0d4 Fix the interactive spec for set-frame-width/height
* src/frame.c (Fset_frame_width):
(Fset_frame_height): Use `prefix-numeric-value' to get the proper
numeric value (bug#9970).
2019-08-21 13:05:18 -07:00
Stefan Kangas
6c1cf80721 * lisp/mail/flow-fill.el: Change todo comment to not mention XEmacs. 2019-08-21 19:16:20 +02:00
Michael Albinus
0f801d4a5e ; Fix typo introduced by last autorevert-tests patch 2019-08-21 11:03:34 +02:00
Martin Rudalics
9a28cb5a87 ; Fix typos in commentary section of xdisp.c 2019-08-21 10:24:25 +02:00
Michael Albinus
c2abe6abba ; Add traces to auto-revert-test02-auto-revert-deleted-file 2019-08-21 09:19:28 +02:00
Paul Eggert
39fee20994 Be more careful about pointers to bignum vals
This uses ‘const’ to be better at catching bugs that
mistakenly attempt to modify a bignum value.
Lisp bignums are supposed to be immutable.
* src/alloc.c (make_pure_bignum):
* src/fns.c (sxhash_bignum):
Accept Lisp_Object instead of struct Lisp_Bignum *, as that’s
simpler now.  Caller changed.
* src/bignum.h (bignum_val, xbignum_val): New inline functions.
Prefer them to &i->value and XBIGNUM (i)->value, since they
apply ‘const’ to the result.
* src/timefns.c (lisp_to_timespec): Use mpz_t const *
to point to a bignum value.
2019-08-21 00:11:45 -07:00
Paul Eggert
3881542ede Update mini-gmp
* src/mini-gmp.c: Sync from upstream.  This incorporates:
2019-08-13 Silence a couple of warnings
2019-08-20 18:11:34 -07:00
Paul Eggert
396ed88a50 Avoid some excess precision in time arithmetic
* doc/misc/emacs-mime.texi (time-date):
Adjust example to match new behavior.
* etc/NEWS: Mention this.
* lisp/calendar/time-date.el (decoded-time-add)
(decoded-time--alter-second):
Don’t lose underestimate precision of seconds component.
* src/bignum.c (mpz): Grow by 1.
* src/timefns.c (trillion_factor): New function.
(timeform_sub_ps_p): Remove.
(time_arith): Avoid unnecessarily-large hz, by reducing the hz
to a value no worse than the worse hz of the two arguments.
The result is always exact unless an error is signaled.
* test/src/timefns-tests.el (timefns-tests--decode-time):
New function.
(format-time-string-with-zone): Test (decode-time LOOK ZONE t)
resolution as well as its numeric value.
2019-08-20 17:36:46 -07:00
Noam Postavsky
7e2090ee80 Respect global-eldoc-mode in minibuffers (Bug#36886)
* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Accept
a BODY parameter.
* doc/lispref/modes.texi (Defining Minor Modes): Document new
parameter.
* etc/NEWS: Announce it.

* lisp/simple.el (read--expression): Move eldoc-mode setup to...
* lisp/emacs-lisp/eldoc.el (eldoc--eval-expression-setup): ... here,
new function.
(global-eldoc-mode): Add or remove it to
eval-expression-minibuffer-setup-hook when enabling or disabling
global-eldoc-mode.  This enables eldoc in the minibuffer (solving
Bug#27202), only when global-eldoc-mode is enabled.
2019-08-20 20:20:52 -04:00
Paul Eggert
5a95521282 Support larger TIMEs in (time-convert TIME t)
Also, improve the doc to match current behavior.
* doc/lispref/os.texi (Time Conversion): Document that
time-convert signals an error for infinite or NaN args,
and that (time-convert TIME t) is exact otherwise.
Mention float-time as an alternative to time-convert.
(Time Calculations): Document that time-add and time-subtract
are exact and do not decrease HZ below the minimum of their args.
* src/timefns.c (decode_float_time): Don’t signal an error for
floating-point arguments whose base-FLT_RADIX exponent is not less
than DBL_MANT_DIG.  Instead, convert them to (TICKS . 1) values.
Use two (instead of three) integer exponent comparisons in the
typical case.
* test/src/timefns-tests.el (time-arith-tests):
Add more floating-point tests, including some tests
that the old code fails.
2019-08-20 15:45:59 -07:00
Stephen Leake
a13c64204c Delete built-in ada-mode; Gnu ELPA is a good replacement
* doc/misc/Makefile.in (INFO_COMMON): Delete ada-mode.

* doc/misc/ada-mode.texi: Delete.

* etc/NEWS: Mention ada-mode deleted.

* lisp/progmodes/ada-mode.el: Delete.

* lisp/progmodes/ada-prj.el: Delete.

* lisp/progmodes/ada-stmt.el: Delete.

* lisp/progmodes/ada-xref.el: Delete.
2019-08-20 15:36:08 -07:00
Michael Albinus
fde614f4cc Another attempt to fix bug#32645
* test/lisp/autorevert-tests.el ()
(auto-revert-test02-auto-revert-deleted-file):
* test/lisp/filenotify-tests.el (file-notify-test04-autorevert):
Check `file-notify-valid-p', not that the descriptor is nil.
2019-08-20 21:32:34 +02:00
Stefan Kangas
68f086e669 ; * etc/NEWS: Move one incorrectly placed item. 2019-08-20 18:41:44 +02:00
Glenn Morris
af103ef3c9 Merge from origin/emacs-26
615cff4 (origin/emacs-26) Fix process filter documentation (Bug#13400)
beb1d22 Fix query-replace-regexp undo feature

# Conflicts:
#	test/lisp/replace-tests.el
2019-08-20 09:04:53 -07:00
Glenn Morris
989c85e799 ; Merge from origin/emacs-26
The following commit was skipped:

190565b Support the new Japanese era name
2019-08-20 09:01:55 -07:00
Glenn Morris
8f68449c94 Merge from origin/emacs-26
0b810eb Fix a typo in char-width-table
3f00db7 Minor update in admin/notes/unicode
bcd0115 Fix lisp indent infloop on unfinished strings (Bug#37045)
5f992d1 Improve commentary in composite.el
3a04be2 ; Improve commentary in xdisp.c
15de1d1 Fix markup in dired-x.texi
bda7fc7 ; Fix typo in a doc string of speedbar.el
6f57ef9 * src/callproc.c (Fcall_process): Doc fix.

# Conflicts:
#	doc/misc/dired-x.texi
#	lisp/international/characters.el
#	src/callproc.c
2019-08-20 09:01:55 -07:00
Ulrich Müller
65dc07f563 * configure.ac (HAVE_JPEG): Test for window system. (Bug#36995) 2019-08-20 17:04:26 +02:00
Mauro Aranda
4e0c5830da Don't display wrong ElDoc information when inside ELisp strings or comments
* lisp/progmodes/elisp-mode.el (elisp--fnsym-in-current-sexp): Since
forward-sexp assumes point is not in a string or comment, avoid
calling it and then checking if point is inside a string, since that
sometimes will fail with awkward results.  (Bug#35567)
2019-08-20 08:34:23 -04:00
Lars Ingebrigtsen
08d7cabc92 Output auto-coding-alist' in describe-current-coding-system'
* lisp/international/mule-diag.el
(describe-current-coding-system): Also output the contents of
`auto-coding-alist', which take precedence over
`file-coding-system-alist' (bug#9575).
2019-08-19 19:39:05 -07:00
Lars Ingebrigtsen
afdf679841 Add a new hook: `quit-window-hook'
* doc/lispref/windows.texi (Quitting Windows): Mention in.

* lisp/window.el (quit-restore-window): Run the new
`quit-window-hook' before doing anything else (bug#9867).
(quit-window): Note that the hook will be run in the doc string.

* lisp/window.el (quit-window-hook): New variable.
2019-08-19 19:21:53 -07:00
Paul Eggert
221a3272ad Fix org-table 65536-second bug
* lisp/org/org-table.el (org-table-message-once-per-second):
Fix bug when clock difference goes past a 65536-second boundary.
Don’t assume particular format for current-time result.
2019-08-19 18:05:15 -07:00
Paul Eggert
2197ea89bf Fix time-add/time-sub validity checking
* src/timefns.c (time_arith): Check the first arg for
validity even if the second arg is not finite.
* test/src/timefns-tests.el (time-arith-tests): Test this.
2019-08-19 18:05:15 -07:00
Noam Postavsky
615cff4258 Fix process filter documentation (Bug#13400)
* doc/lispref/processes.texi (Asynchronous Processes): Note that input
may read when sending data as well.
(Output from Processes): Note that functions which send data may also
trigger reading from processes.
(Input to Processes, Filter Functions): Note that filter functions may
be called recursively.
2019-08-19 19:49:50 -04:00
Tino Calancha
beb1d22260 Fix query-replace-regexp undo feature
Ensure that non-regexp strings used with `looking-at' are quoted.
* lisp/replace.el (perform-replace): Quote regexp (Bug#37073).
* test/lisp/replace-tests.el (replace-tests-perform-replace-regexp-flag):
New variable.
(replace-tests-with-undo): Use it.
(query-replace-undo-bug37073): Add tests.
2019-08-19 17:32:09 +02:00
Stefan Monnier
50dc4ca8d0 * lisp/erc/erc-stamp.el: Fix erc-echo-timestamp (bug#22700)
Use lexical-binding.
(erc-add-timestamp): Store the timestamp in a closure placed in
cursor-sensor-functions rather than stashing it in an ad-hoc
`timestamp` property.
(erc-echo-timestamp): Simplify accordingly.
2019-08-19 05:44:43 -04:00
Lars Ingebrigtsen
1b96e022b6 Allow set-frame-height/set-frame-width to be used interactively
* doc/lispref/frames.texi (Frame Size): Document it.

* src/frame.c (Fset_frame_height):
(Fset_frame_width): Make into commands that use the numeric prefix
to set height/width (bug#9970).
2019-08-18 16:50:08 -07:00
Štěpán Němec
b8c4a9e0f8 Add an advice-add/interactive spec example
* doc/lispref/functions.texi (Core Advising Primitives): Add an
advice-add example that extends the `interactive' spec (bug#17871).
2019-08-18 16:05:48 -07:00
Johan Claesson
b82adee1f6 Invalidate dir-locals-directory-cache when writing dir-local file
* lisp/files-x.el (modify-dir-local-variable): Remove file from
the cache when writing to ensure that we load the new version
later (bug#13860).
2019-08-18 15:49:29 -07:00
Noam Postavsky
f9464020d4 Handle more subprocess chunking in M-x man (Bug#36927)
* lisp/man.el (Man-bgproc-filter): Make sure not to chop man sections
by narrowing.
(Man-highlight-references0): Revert previous fix, as it's no longer
needed.
* test/lisp/man-tests.el (man-tests-filter-strings): New function.
(man-bgproc-filter-buttonize-includes): New test.
2019-08-18 18:19:21 -04:00
Paul Eggert
780509f29f Improve bignum_integer static checking
* src/bignum.h (bignum_integer): Now returns pointer-to-const,
to catch trivial mistakes where the caller might try to modify
a Lisp bignum.  Lisp bignums are supposed to be immutable.
All callers changed.
2019-08-18 12:12:45 -07:00
Eli Zaretskii
190565b239 Support the new Japanese era name
* admin/unidata/NormalizationTest.txt:
* admin/unidata/UnicodeData.txt: Add U+32FF SQUARE ERA NAME REIWA.
Do not merge to master.

* test/lisp/international/ucs-normalize-tests.el
(ucs-normalize-tests--failing-lines-part1)
(ucs-normalize-tests--failing-lines-part2): Update.  Do not
merge to master.

* etc/NEWS: Mention the change.
2019-08-18 19:36:31 +03:00
Eli Zaretskii
0b810ebc9f Fix a typo in char-width-table
* lisp/international/characters.el (char-width-table): Fix a
typo in zero-width characters.
2019-08-18 18:23:06 +03:00
Eli Zaretskii
f92d61c06c Attempt to fix assertion violation in eval.c
* src/eval.c (Fautoload): Fix an assertion violation in
make_fixnum.  Reported by martin rudalics <rudalics@gmx.at>.
2019-08-18 17:46:19 +03:00
Lars Ingebrigtsen
ee1c638cff Make `browse-url-of-buffer' work from zip files
* lisp/net/browse-url.el (browse-url-of-buffer): Make `C-c C-v'
work in HTML buffers visited from zip files and the like
(bug#10318).
2019-08-17 17:30:47 -07:00
Paul Eggert
3d1c9a77c5 Fix org-timer-show-remaining-time > 1 hour
* lisp/org/org-timer.el (org-timer-show-remaining-time):
Don’t assume the remaining time is less than one hour.
Simplify.  The simplification removes the need for a
decode-time, and fixes a typo I introduced recently.
2019-08-17 17:22:25 -07:00
Lars Ingebrigtsen
f38a16ee89 Make `describe-function' say that disabled functions are disabled
* lisp/help-fns.el (help-fns--disabled): New function (bug#10853).
(help-fns-describe-function-functions): Add it to the list of
function help functions.
2019-08-17 16:56:13 -07:00
Lars Ingebrigtsen
3efe59a8dd Make newline-and-indent take a numeric prefix
* lisp/simple.el (newline-and-indent): Take a prefix argument to
say how many times to perform its action (bug#10927).
2019-08-17 16:47:16 -07:00
Lars Ingebrigtsen
2b9145312c Issue a message on `C-x o' and there's no other window
* lisp/window.el (other-window): Issue a message when the user
types `C-x o' and there's no other window to select (bug#10999).
2019-08-17 16:36:00 -07:00
Lars Ingebrigtsen
78541163c6 Issue a message on `C-x 1' when there's nothing to do
* lisp/window.el (delete-other-windows): Make `C-x 1' issue a
message when there's no other windows to delete (bug#10999).
2019-08-17 16:36:00 -07:00
Lars Ingebrigtsen
669599b0f4 Doc clarification in two comment-* functions
* lisp/newcomment.el (comment-padright, comment-padleft): Note
that `comment-normalize-vars' must be called first (bug#11944).
2019-08-17 16:35:59 -07:00
Paul Eggert
c90a420779 Add FIXMEs for subsecond support
This adds FIXMEs to areas where Lisp code should support
subsecond information in broken-down timestamps.
It also fixes some unnecessary truncation of timestamps, and
ports the code to a hypothetical future Emacs version where
(decode-time) returns subsecond timestamps by default.
* lisp/calc/calc-forms.el (calc-time, math-iso-dt-to-date)
(calcFunc-now):
* lisp/calendar/icalendar.el (icalendar--add-decoded-times):
* lisp/calendar/iso8601.el (iso8601-parse-interval):
Truncate seconds to an integer, and add a FIXME about
subseconds support.
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime)
(icalendar--decode-isoduration):
Add a FIXME about subseconds support.
* lisp/gnus/gnus-delay.el (gnus-delay-article):
Don’t truncate seconds to an integer, as there’s no need
to do that here.
* lisp/gnus/gnus-util.el (gnus-seconds-today)
(gnus-seconds-month, gnus-seconds-year):
* lisp/gnus/message.el (message-make-expires-date):
* lisp/org/org-timer.el (org-timer-show-remaining-time):
* lisp/vc/ediff-mult.el (ediff-format-date):
Truncate seconds to an integer, as that’s what’s wanted here.
* lisp/midnight.el (midnight-next):
Ceiling seconds to an integer, as that’s what wanted here.
2019-08-17 15:43:05 -07:00