1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-31 04:41:23 -08:00
Commit graph

41881 commits

Author SHA1 Message Date
Eli Zaretskii
4f6980ad6b Fix file notifications on macOS
* src/kqueue.c (Fkqueue_add_watch): Don't use encoded file
names in objects and APIs that expect decoded multibyte
strings.  (Bug#38287)
2019-11-21 16:39:15 +02:00
Paul Eggert
9ca40c4e70 * src/sysdep.c: Improve comment wording. 2019-11-20 11:57:17 -08:00
Paul Eggert
0fce8e9391 Make .pdmp file more reproducible
Problem reported by Ulrich Müller
<https://lists.gnu.org/r/emacs-devel/2019-11/msg00757.html>
and diagnosed by Andreas Schwab
<https://lists.gnu.org/r/emacs-devel/2019-11/msg00774.html>.
* src/sysdep.c (maybe_disable_address_randomization):
Disable ASLR if any kind of dumping, instead of merely if
unexec dumping.  Omit first arg for simplicity; all uses changed.
2019-11-19 18:27:10 -08:00
Robert Pluim
b6db2ed1ea Remember the full GTK font description
Remember the full font description instead of just the family so that
size/style/weight settings are preserved.

* gtkutil.c (xg_get_font) [HAVE_GTK3]: Use the pango font
description to set/get the current font (Bug#28901).
2019-11-19 13:36:07 +01:00
Robert Pluim
ed52618e70 ; Fix previous commit 2019-11-18 16:36:21 +01:00
Robert Pluim
899bd78c4f Check for HAVE_GTK3 instead of a specific version
Our minimum GTK3 version is 3.10, the font filter functions appeared
in 3.2.

* gtkutil.c (xg_font_filter) [HAVE_GTK3]: Just check for HAVE_GTK3.
(xg_get_font) [HAVE_GTK3]: Same here.
2019-11-18 15:49:31 +01:00
Lars Ingebrigtsen
1c29ba0340 Handle FC_CHARCELL in xftfont_open
* src/xftfont.c (xftfont_open): FC_CHARCELL is apparently an alias
for FC_DUAL used in some east Asian fonts (bug#35079).  Modelled
after a patch suggested by Kenichi Handa.
2019-11-17 17:32:37 +01:00
Eli Zaretskii
b31f1987eb Support more font weight values on MS-Windows
* src/w32font.c (w32_to_fc_weight): Support a few more weight
values, for compatibility with the GTK font selection widget
(see gtkutil.c:XG_WEIGHT_TO_SYMBOL).  (Bug#24226)
2019-11-17 18:19:18 +02:00
Eli Zaretskii
99271ea8de Fix display of R2L text
* src/xdisp.c (extend_face_to_end_of_line): Fix padding of R2L
screen lines with stretch glyph on the left.  (Bug#38233)
2019-11-16 21:37:41 +02:00
Martin Rudalics
d8f03d8276 Do not report move frame events for tooltip frames (Bug#38213)
* src/w32term.c (w32_read_socket):
* src/xterm.c (handle_one_xevent): Do not report move frame events
for tooltip frames (Bug#38213).
2019-11-16 09:04:53 +01:00
Paul Eggert
5ed66f10ec Port new float-scaling code to Solaris
* src/floatfns.c (double_integer_scale): Simplify, so that the
function works when (FP_ILOGBNAN == INT_MAX && FP_ILOGB0 == INT_MIN),
as on Solaris.
2019-11-15 18:41:35 -08:00
Paul Eggert
e68912ea6b Port hexdigit init to non-GCC + pdumper
The old code assumed that hexdigit initialization (needed by
non-GCC) could be done in syms_of_character, but that is no longer
true with pdumper.  Instead, simplify hexdigit init so that it can
be done statically on all C99 platforms.  Problem discovered on
Solaris 10 sparc + Oracle Solaris Studio 12.6.
* src/character.c (hexdigit): Add 1 to every value; all uses
changed.  This simplifies the initialization so that it can be
done statically on any C99 compiler.  hexdigit is now always const.
(syms_of_character): Omit no-longer-necessary initialization.
* src/character.h (HEXDIGIT_CONST, HEXDIGIT_IS_CONST):
Remove.  All uses removed.
2019-11-15 01:29:52 -08:00
Eli Zaretskii
0114bb964a Improve documentation of 'add-variable-watcher'
* doc/lispref/variables.texi (Watching Variables): Clarify the
documentation of 'add-variable-watcher' and fix markup.

* src/data.c (Fadd_variable_watcher): Clarify the doc string.
(Bug#38205)
2019-11-15 11:16:09 +02:00
Eli Zaretskii
81d3f1b6b1 Fix a recent change in xdisp.c
* src/xdisp.c (tty_handle_tab_bar_click): Revert the last
change which made this work only in the HAVE_NTGUI build.
This function is needed by any build which supports a  mouse
on TTY frames.
2019-11-15 09:54:43 +02:00
Paul Eggert
8b848def9b Handle weird cases like (ceil 0 0.0)
* src/floatfns.c (double_integer_scale): Distinguish Inf from NaN.
(rounding_driver): Handle (ceil 0 0.0) and (ceil 0 1.0e+INF).
* test/src/floatfns-tests.el (special-round): Add tests for
weird cases like this.

Avoid crash with (floor 0 0.0)
* src/floatfns.c (rounding_driver): Signal an arithmetic
error if divisor is 0.0 or -0.0, instead of crashing.
2019-11-14 18:52:48 -08:00
Paul Eggert
c2cd8e6265 Fix byte-counting error in ‘format’
Problem reported by Paul Pogonyshev (Bug#38191).
* src/editfns.c (styled_format): When checking for adjacent
%-sequences, use byte position rather than character position.
* test/src/editfns-tests.el (format-properties): Test for fix.
2019-11-14 14:44:42 -08:00
Paul Eggert
2241f7ca7a In Cairo builds, omit some unnecessary functions
* src/font.c (fset_font_data, font_put_frame_data)
(font_get_frame_data):
* src/ftfont.c (ftfont_open, ftfont_close)
(ftfont_encode_char, ftfont_glyph_metrics)
(ftfont_text_extents, ftfont_driver):
Define only if USE_CAIRO.
* src/xdisp.c (tty_handle_tab_bar_click):
Define only if HAVE_NTGUI && !CYGWIN.
2019-11-14 14:02:03 -08:00
Robert Pluim
30e944b66b Remove unneeded font_is_ignored prototype
* src/gtkutil.h: Remove unneeded prototype for font_is_ignored,
it's in font.h now.
2019-11-14 15:40:12 +01:00
Robert Pluim
99550f20a0 ; Add explanation for face-ignored-fonts defaults 2019-11-14 13:20:39 +01:00
Eli Zaretskii
ab36b56e40 ; * src/font.h (font_is_ignored): Add prototype to avoid warnings. 2019-11-14 13:50:45 +02:00
Robert Pluim
ca44f33be2 Make GTK font chooser respect face-ignored-fonts
* src/font.c (font_delete_unmatched): Move Vface_ignored_fonts
matching to...
(font_is_ignored): ..Here.  New function.
* src/gtkutil.c (xg_font_filter): New function, uses font_is_ignored
to filter fonts.
(xg_get_font): Set GTK font chooser filter to xg_font_filter.
* src/gtkutil.h: Add prototype for font_is_ignored.
2019-11-14 10:23:37 +01:00
Paul Eggert
bede598424 Fix double-rounding bug in ceiling etc.
This is doable now that we have bignums.
* src/floatfns.c (integer_value): Remove; no longer used.
(rescale_for_division): New function.
(rounding_driver): Use it to divide properly (by using bignums)
even when arguments are float, fixing a double-rounding FIXME.
* src/lisp.h (LOG2_FLT_RADIX): Move here ...
* src/timefns.c (frac_to_double): ... from here.
* test/src/floatfns-tests.el (big-round):
Add a test to catch the double-rounding bug.
2019-11-13 13:10:09 -08:00
Paul Eggert
02e637ecca Refactor bignum multiplication, exponentiation
This doesn’t alter behavior, and simplifies the next commit.
* src/bignum.c (GMP_NLIMBS_MAX, NLIMBS_LIMIT, emacs_mpz_size)
(emacs_mpz_mul, emacs_mpz_mul_2exp, emacs_mpz_pow_ui): Move here ...
* src/data.c: ... from here.
2019-11-13 13:10:09 -08:00
Paul Eggert
ff10e9517d Refactor double integer scaling
This doesn’t alter behavior, and simplifies a future commit.
* src/floatfns.c (double_integer_scale): New function,
with body adapted from the old timefns.c.
* src/timefns.c (decode_float_time): Use it.
2019-11-13 13:10:08 -08:00
Robert Pluim
eae50e88ef Add "Noto Color Emoji" to face-ignored-fonts
* src/xfaces.c (syms_of_xfaces) [HAVE_XFT]: Add "Noto Color Emoji" to
face-ignored-fonts (Bug#37786).
2019-11-13 15:02:50 +01:00
Martin Rudalics
1e5392a4ae Make sure buffer is live before retrieving underline properties (Bug#38038)
* src/window.h (WINDOW_BUFFER_LOCAL_VALUE): New macro.
* src/nsterm.m (ns_draw_text_decoration):
* src/w32term.c (w32_draw_glyph_string):
* src/xterm.c (x_draw_glyph_string): Make sure buffer is live
before retrieving underline properties from it (Bug#38038).
2019-11-12 16:44:30 +01:00
Juri Linkov
898cdc67f1 Run scroll/recenter commands from minibuffer in original window (bug#38076)
* lisp/minibuffer.el (with-minibuffer-selected-window): New macro.
(minibuffer-recenter-top-bottom, minibuffer-scroll-up-command)
(minibuffer-scroll-down-command, minibuffer-scroll-other-window):
(minibuffer-scroll-other-window-down): New commands.
(minibuffer-local-map): Remap recenter/scroll symbols to their
minibuffer wrappers: recenter-top-bottom to minibuffer-recenter-top-bottom.

* src/window.c (Fother_window_for_scrolling): Use 'lambda' value for
MINIBUF arg of Fnext_window, so minibuffer-scroll-other-window and
minibuffer-scroll-other-window-down doesn't try to scroll the
minibuffer window.
2019-11-09 23:32:46 +02:00
Eli Zaretskii
f2019fc676 Fix case-insensitive completion of buffer names
* test/src/minibuf-tests.el (test-try-completion-ignore-case):
New test, suggested by Stefan Monnier <monnier@iro.umontreal.ca>.

* src/minibuf.c (Ftry_completion): Don't treat strings that
are identical but for the case as if they were identical for
the purposes of not counting the same string twice.  This
fixes case-insensitive completion when all the candidates are
identical but for the letter-case.  (Bug#11339)
2019-11-09 21:56:30 +02:00
Nick Helm
6daa80d04e Fix unresponsive Help menu in macOS
* src/nsterm.m (ns_check_menu_open): Don't postpone mouse drag and
non-user-generated mouse down events (Bug#31371).
2019-11-09 10:57:59 +01:00
Paul Eggert
f8284f1e40 Fix some quoting glitches in doc strings
This also fixes a misplaced "only".
2019-11-08 17:11:01 -08:00
Robert Pluim
063277c5ec Ensure building and running on non-IPv6 capable hosts works
* src/process.c (Fmake_network_process) [AF_INET6]: Only build ::1
localhost when IPv6 is supported.
(Fnetwork_lookup_address_info) [AF_INET6]: Move check for Qipv6 inside
ifdef, since its definition depends on AF_INET6.  Don't return IPv6
addresses when they're not supported.

* test/src/process-tests.el (lookup-family-specification,
lookup-google): Only do IPv6 lookup if IPv6 is supported.
2019-11-08 10:04:13 +01:00
Jimmy Aguilar Mena
8232325337 Handle case where a face's :extend attribute is unspecified (Bug#37774)
* src/xfaces.c (merge_face_vectors, merge_named_face): Handle case
where the :extend attribute's value is 'unspecified' (Bug#37774).
2019-11-08 09:31:33 +01:00
Robert Pluim
8ce2ec15f4 Describe IPv6 format in docstring for 'make-network-process'
* src/process.c (Fmake_network_process): Add description of IPv6
address format.
2019-11-07 18:16:07 +01:00
Paul Eggert
b5bcc6f9ea Simplify fixnum division slightly
* src/data.c (arith_driver): Streamline fixnum division a bit
more, and add a comment about why overflow is impossible.
This responds to a private comment by Stefan Monnier.
2019-11-06 11:48:23 -08:00
Paul Eggert
6039acb861 Remove unneeded overflow check in integer division
* src/data.c (arith_driver): Remove unnecessary runtime test,
since integer overflow is impossible on division of fixnums,
given that the worst case is MOST_NEGATIVE_FIXNUM / -1 which is
representable as an EMACS_INT (albeit not as a fixnum).
2019-11-05 22:55:51 -08:00
Paul Eggert
799d738bc7 Overflow errors are range errors
* etc/NEWS: Mention this.
* doc/lispref/errors.texi (Standard Errors):
Document overflow-error, which was formerly undocumented.
It is a range error, not a domain error.
* src/data.c (syms_of_data): overflow-error and (undocumented)
underflow-error are subtypes range-error, not domain-error.
This fixes bugs in timezone-time-from-absolute and in
erc-ctcp-reply-PING.
2019-11-04 23:39:55 -08:00
Paul Eggert
5ab29400a4 Don’t signal overflow for (expt 1 bignum)
Similarly for (expt 0 bignum) and (expt -1 bignum).
The result is always a -1, 0 or 1, so do not signal overflow.
* src/data.c (expt_integer): Do not signal an overflow if
-1 <= X <= 1.  Be clearer about when overflow is signaled.
* test/src/floatfns-tests.el (bignum-expt): Test this.
2019-11-04 23:39:54 -08:00
Eli Zaretskii
a256e03bd9 Fix last change in dired.c
* src/dired.c (file_name_completion): Fix arguments to
Fcompare_strings.  (Bug#38056)
2019-11-04 17:39:12 +02:00
Stephen Gildea
1d4862e8c1 Fix English grammar in some doc strings and comments
(files.el subr.el): Fix some grammar errors in doc strings and comments.
(frame.c fringe.c image.c xfns.c xterm.c): Fix some English grammar
errors in doc strings.
2019-11-03 18:36:45 -08:00
Eli Zaretskii
0b21ecdb5e Fix case-insensitive completion of non-ASCII file names
* src/dired.c (scmp): Comment on (non)applicability to
comparisons of  non-ASCII strings case-insensitively.
(file_name_completion): Decode early the file names read from
the directory, and use the decoded names for comparison when
letter-case should be ignored.  (Bug#11339)
2019-11-03 18:08:45 +02:00
Eli Zaretskii
3c86424a18 ; * src/font.c (Ffont_info): Minor fix of doc string. 2019-11-03 17:58:31 +02:00
Lars Ingebrigtsen
5c8375bd68 describe-font/font-info works with unloaded fonts
* lisp/international/mule-diag.el (describe-font): This function
can be used on unloaded fonts, so remove that restriction from the
doc string (bug#16815).  Also allow completion over all fonts on
the system.

* src/font.c (Ffont_info): Ditto for the doc string.
2019-11-03 16:33:15 +01:00
Óscar Fuentes
e6b806f29e Fix data-directory when executing from an out-of-source build
Fixes #36828.

* src/callproc.c (init_callproc): detect out-of-source build.
2019-11-02 18:04:00 +01:00
Paul Eggert
3a1e7624ed Fix insert-file-contents file error regression
Problem reported for dired-view-file (Bug#37950).
* src/fileio.c (Finsert_file_contents): When visiting,
signal an error if the file could not be opened for any reason,
rather than signaling an error only for nonexistent files, fixing
a bug introduced in 2019-09-16T03:17:43!eggert@cs.ucla.edu.
2019-10-31 23:32:05 -07:00
Alan Third
fd1b720028 Prevent text flicker with macOS input methods (bug#23412)
* src/nsterm.m ([EmacsView setMarkedText:selectedRange:]): Don't
always delete the working text as ns-put-working-text does that.
2019-10-31 20:40:56 +00:00
Paul Eggert
e65be8cc5b Fix bug with lock file on nonstandard filesystem
* src/filelock.c (create_lock_file):
Don’t disable user write access to the lock file (Bug#37884).
2019-10-30 18:15:53 -07:00
Paul Eggert
f2a72bb8ed Fix print.c infloop on circular lists
Fix infinite loops in print.c when a circular list is passed
to command-error-default-function or to error-message-string.
* src/print.c (print_error_message):
Use FOR_EACH_TAIL to avoid infloop on circular lists.
(print_object): Use FOR_EACH_TAIL_SAFE, as it uses
Brent’s teleporting tortoise-hare algorithm which is
asymptotically better than the classic tortoise-hare
algorithm that the code wsas using.
* test/src/print-tests.el (print-circle-2): When print-circle
is nil, do not insist on a particular cycle-detection heuristic.
(error-message-string-circular): New test.
2019-10-30 14:43:14 -07:00
Paul Eggert
581601e650 Fix keyboard.c infloops on circular lists
Fix infinite loops in keyboard.c when a circular list is
found in a hook, or in help-event-list, or in the argument
of event-convert-list, or in a keymap where a Lucid event
type list is expected, or in a menu or tab spec.
* src/keyboard.c (safe_run_hooks_error, menu_bar_items)
(parse_menu_item, parse_tab_bar_item, parse_tool_bar_item):
Use FOR_EACH_TAIL to avoid infloop on circular lists.
(help_char_p, Fevent_convert_list, lucid_event_type_list_p):
Use FOR_EACH_TAIL_SAFE to avoid infloop on circular lists,
when the action is idempotent so a circular list can be
treated as a noncircular one.
2019-10-30 14:43:14 -07:00
Paul Eggert
40ae02ff50 Fix fileio.c infloops on circular lists
Fix infinite loops in fileio.c when a circular list is the
value of after_insert_file_functions,
buffer-auto-save-file-format, buffer-file-format, or
write-region-annotate-functions.
* src/fileio.c (Finsert_file_contents, build_annotations):
Use FOR_EACH_TAIL to avoid infloop on circular lists.
(build_annotations): Use an EMACS_INT, not an int, to count
nesting level.
* test/src/fileio-tests.el:
(fileio-tests--circular-after-insert-file-functions): New test.
2019-10-30 14:43:14 -07:00
Lars Ingebrigtsen
77d4491391 Revert "Move description of value to syntax-ppss function."
This reverts commit 305dbc7e2b.

Both of the functions in question are used a lot in the sources, so move it back to the more basic function.
2019-10-30 21:26:22 +01:00