1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-09 13:10:57 -08:00
Commit graph

42041 commits

Author SHA1 Message Date
Eli Zaretskii
fbd49f969e * src/xdisp.c (Fwindow_text_pixel_size): Doc fix. (Bug#41737) 2020-06-06 19:53:08 +03:00
Eli Zaretskii
30a7ee505a Fix Arabic shaping when eww/shr fill the text to be rendered
* src/hbfont.c (hbfont_shape): Don't use DIRECTION if the current
buffer has bidi reordering disabled.  (Bug#41005)
2020-06-05 10:56:01 +03:00
Eli Zaretskii
0260d2d2db Don't call 'mbrtowc' on WINDOWSNT
* src/emacs.c (using_utf8): Don't call 'mbrtowc' on WINDOWSNT
systems, as it's not available on Windows 9X.
2020-06-01 18:57:39 +03:00
Paul Eggert
68b6dad1d8 Be more aggressive in marking objects during GC
Simplified version of a patch from Pip Cet (Bug#41321#299).
* src/alloc.c (maybe_lisp_pointer): Remove.  All uses removed.
(mark_memory): Also look at the pointer offset by ‘lispsym’,
for symbols.
2020-05-31 16:30:54 -07:00
Eli Zaretskii
36f508f589 ; * src/xdisp.c (find_last_unchanged_at_beg_row): Fix a typo. 2020-05-31 20:34:00 +03:00
Eli Zaretskii
41232e6797 Avoid crashes due to bidi cache being reset during redisplay
If automatic character composition triggers GC, and
'garbage-collection-messages' are turned on, we could have the
bidi cache reset while processing RTL text, which would then
consistently crash.
* src/xdisp.c (display_echo_area_1): Protect the bidi cache
against changes inside 'try_window'.
2020-05-31 17:23:11 +03:00
Eli Zaretskii
df91c94ca8 Fix access to single-byte characters in buffer text
* src/xdisp.c (get_visually_first_element)
(Fbidi_find_overridden_directionality):
* src/cmds.c (Fend_of_line): Use FETCH_BYTE instead of FETCH_CHAR,
and byte position instead of character position, to access
individual bytes of buffer text.  This avoids producing invalid
characters and accessing wrong buffer positions.  (Bug#41520)
2020-05-25 17:07:22 +03:00
Eli Zaretskii
a10254dd46 Fix accessing files on networked drives on MS-Windows
* src/w32.c (acl_get_file): Set errno to ENOTSUP if
get_file_security returns ERROR_NOT_SUPPORTED.  (Bug#41463)
2020-05-23 08:50:22 +03:00
Paul Eggert
62a5e890d7 Redo RCS Id for pdumper
* lisp/version.el: Don’t put an RCS Id style string into the
executable via purecopy, as this does not work with the pdumper.
* src/emacs.c (RCS_Id): New constant, for 'ident'.

(cherry picked from commit 3d1bcfba5e)
2020-05-21 19:17:36 +03:00
Clément Pit-Claudel
48830c73e7 Fix a crash in handle_display_spec
* src/xdisp.c (handle_display_spec): Check that the cdr of the
disable-eval spec is a cons before taking its car.  (Bug#41232)
2020-05-13 18:53:25 +03:00
Martin Rudalics
a37290a6f9 In x_hide_tip reset tip_last_frame for GTK+ tooltips only (Bug#41200)
* src/xfns.c (x_hide_tip): Reset tip_last_frame only when
using GTK+ system tooltips (Bug#41200).
2020-05-13 10:31:50 +02:00
Philipp Stephani
d5c184aa3e Refer to fill column indicator Info node in some places.
* src/xdisp.c (syms_of_xdisp): Add reference to manual in
documentation strings for variables related to fill column indicators.

* lisp/display-fill-column-indicator.el (display-fill-column-indicator)
(display-fill-column-indicator-mode): Add reference to manual.
2020-05-09 10:22:01 +02:00
Eli Zaretskii
a76cafea0d Fix handling of FROM = t and TO = t by 'window-text-pixel-size'
* src/xdisp.c (Fwindow_text_pixel_size): Use byte position for
accessing buffer text, not character positions.  (Bug#41125)
2020-05-08 13:35:34 +03:00
Philipp Stephani
95fde1a851 * src/editfns.c (Fformat): Small documentation fix. 2020-05-05 14:59:27 +02:00
Stefan Kangas
f9fa726ced Improve doc strings of makunbound and fmakunbound
* src/data.c (Fmakunbound, Ffmakunbound): Improve doc
strings.  (Bug#41026)
2020-05-03 22:01:23 +02:00
Eli Zaretskii
274ec97e3c Make sure alist-related functions say so in their doc
* src/fns.c (Fassq, assq_no_quit, Fassoc, assoc_no_quit, Frassq)
(Frassoc): Rename argument LIST to ALIST.  Doc strings updated.
2020-04-29 17:52:53 +03:00
Eli Zaretskii
16fed05ba8 Avoid crashes on TTY frames with over-long compositions
* src/term.c (encode_terminal_code): Each character from an
automatic composition is a multibyte character, so its multibyte
representation can take up to MAX_MULTIBYTE_LENGTH bytes.
Account for that when allocating storage for characters to be
encoded.  (Bug#40913)
2020-04-28 11:57:16 +03:00
Eli Zaretskii
369761b36d ; * src/xdisp.c: Improve the introductory commentary. 2020-04-24 18:09:20 +03:00
Stefan Monnier
d5ec18c66b * src/regex-emacs.c (re_match_2_internal): Rework comment in last change
Explain why we don't need to worry about Lisp modifying the buffer.

* src/syntax.c (parse_sexp_propertize): Fix name in error message.
2020-04-18 23:01:43 -04:00
Štěpán Němec
067b070598 ; Fix some typos and doc issues (bug#40695) 2020-04-18 17:10:02 +02:00
Eli Zaretskii
f3b62b6c62 Avoid crashes in regex-emacs.c due to GC
* src/regex-emacs.c (re_match_2_internal): Prevent GC from
invalidating C pointers to buffer text.  (Bug#40661)
2020-04-18 14:53:13 +03:00
YAMAMOTO Mitsuharu
d87a4d1f4e Limit RLIMIT_NOFILE to FD_SETSIZE on macOS
* src/nsterm.m ([EmacsApp applicationDidFinishLaunching:]): Call
CoreFoundation functions that increase RLIMIT_NOFILE behind our back
during startup, and then set RLIMIT_NOFILE back to FD_SETSIZE to avoid
crashes in setup_process_coding_system  (Bug#39164).
2020-04-15 11:55:16 +02:00
Štěpán Němec
f84aed5fd2 Clarify documentation on inhibit-modification-hooks intended usage
Cf. bug#40332 and the discussion at
https://lists.gnu.org/archive/html/emacs-devel/2020-03/msg00921.html

* doc/lispref/text.texi (Change Hooks):
* src/insdel.c (syms_of_insdel): Clarify the intended usage of
'inhibit-modification-hooks'.
2020-04-13 12:15:13 +02:00
Martin Rudalics
1482a75efa Fix build failure with Fx_gtk_debug
* src/xfns.c (Fx_gtk_debug, Sx_gtk_debug): Define only for GTK
versions >= 3.14.0 so gtk_window_set_interactive_debugging is
defined.  Reported by Andreas Schwab  <schwab@linux-m68k.org>.
2020-04-12 10:00:28 +02:00
Eli Zaretskii
17a1bb5a03 Fix redisplay when scrolling under redisplay-dont-pause
* src/dispnew.c (update_window): Reset the window's
'must_be_updated_p' flag if the window's update was completed
without interruption.  This fixes redisplay glitches when
'redisplay-dont-pause' is nil, at least on MS-Windows, because
'expose_window' doesn't redraw the exposed rectangle when the
window's 'must_be_updated_p' flag is set.
2020-04-10 18:30:21 +03:00
Eli Zaretskii
d5750af151 Avoid assertion violation in intervals.c
* src/intervals.c (delete_interval): Allow negative values of
LENGTH (i).  This happens when delete_interval is called from
set_intervals_multibyte_1, because the caller zeroes out the
total_length field of the interval to be deleted.  See
https://lists.gnu.org/archive/html/emacs-devel/2020-04/msg00131.html
for more details.  See also a related old discussion at
https://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00399.html.
2020-04-09 11:21:18 +03:00
Dmitry Gutov
08486f4cae Speed up 'resize-mode' child frames a little
* src/gtkutil.c (xg_frame_set_char_size): Skip resizing if the
target dimensions are unchanged for child frames with
'resize-mode' resize policy as well.
2020-04-08 13:52:40 +03:00
Martin Rudalics
c49d379f17 Fix some problems with moving and resizing child frames
(1) Provide new option 'x-gtk-resize-child-frames' which allows
to either hide a child frame during resizing or asks GTK to
resize it "immediately".  This is needed because desktops like
GNOME shell otherwise won't allow resizing child frames at all.
(2) Do not try to synchronize the position of a child frame
after moving it.  Needed because the present implementation
introduces a 0.5 secs delay which makes dragging child frames
virtually impossible with Lucid and Motif toolkits on desktops
like GNOME shell that use invisible outer frame borders.

For further information see the thread starting with
https://lists.gnu.org/archive/html/emacs-devel/2020-01/msg00343.html

* src/frame.c (syms_of_frame): New symbol Qxg_frame_set_char_size_4.
* src/gtkutil.c (xg_frame_set_char_size): Hide child frame
during resizing when 'x-gtk-resize-child-frames' equals 'hide'.
* src/xfns.c (x_set_parent_frame, Fx_create_frame): Set
gtk_container_resize_mode to GTK_RESIZE_IMMEDIATE for child
frames when'x-gtk-resize-child-frames' equals 'resize-mode'.
(Fx_gtk_debug): New function to toggle interactive GTK debugging
from within Emacs.
(syms_of_xfns): New symbols Qhide and Qresize_mode.
(x-gtk-resize-child-frames): New option that allows to resize
child frames on desktops like GNOME shell (with the mutter WM)
that otherwise refuse to resize them.
* src/xterm.c (x_set_offset): Don't x_sync_with_move for child
frames, it makes moving child frames virtually impossible with
the Lucid and Motif toolkits.
2020-04-06 09:22:36 +02:00
Philipp Stephani
452d776a5d Fix small bug in copy_string_contents.
* src/emacs-module.c (module_copy_string_contents): Fix incorrect
variable use.  In this branch 'lisp_str_utf8' is always nil, so it
makes little sense to add it as error data.
2020-04-03 21:49:59 +02:00
Martin Rudalics
d4f51d0a2e Don't draw GTK's internal border and tab bar on top of each other
* src/xterm.c (x_clear_under_internal_border): For GTK builds
have 'margin' count in the height of the tab bar to avoid that
tab bar and internal border are drawn on top of each other.
2020-04-03 10:31:35 +02:00
Eli Zaretskii
38731d504e ; * src/buffer.c (syms_of_buffer) <inhibit-read-only>: Doc fix. 2020-04-03 09:58:20 +03:00
Eli Zaretskii
f3ccfb1926 ; * src/decompress.c: Fix comment style. 2020-03-29 19:14:13 +03:00
Eli Zaretskii
1af03e7e92 ; * src/xfaces.c (syms_of_xfaces): Fix wording and typo. 2020-03-29 16:14:34 +03:00
Noam Postavsky
ee47e00f4e Don't suggest setting face-remapping-alist to a literal (Bug#39812)
* src/xfaces.c (syms_of_xfaces) <face-remapping-alist>: Use copy-tree
in the costring example code, and note why.
2020-03-28 21:22:49 -04:00
Noam Postavsky
8944310d7c Don't signal during backtrace unrewind (Bug#40088)
backtrace_eval_unrewind is used to temporarily reverse
let-bindings (it's called with a positive argument to reverse
bindings, and then a negative argument to re-apply them) by
backtrace--locals and backtrace-eval.  For the SPECPDL_LET_DEFAULT and
SPECPDL_LET_LOCAL cases (which occur for let-bindings on buffer-local
variables), the code calls Fdefault_value and Fbuffer_local_value on
the symbol.

For symbols which are unbound at top-level, the first (with positive
argument) call to backtrace_eval_unrewind will set the symbol's value
to unbound (putting the current value in the specpdl's "old value"
slot).  On the second (with negative argument) call,
backtrace_eval_unrewind attempts to retrieve the symbol's value with
Fdefault_value or Fbuffer_local_value, but that raises a void-variable
signal.  This interrupts the restoration of the let-bindings, so any
other variables more recent on the stack will now have the wrong
value.

* src/data.c (default_value): Make non-static.
* src/lisp.h: Declare it.
* src/eval.c (backtrace_eval_unrewind): Replace the calls to
Fdefault_value and Fbuffer_local_value with default_value and
buffer_local_value, respectively.  The latter do exactly the same as
the former, except if the symbol's value is Qunbound they just return
it instead of signaling void-variable.
2020-03-22 23:06:31 -04:00
Robert Pluim
bed04c502c Use correct registry name for windows-1251 charset
* src/ftfont.c (fc_charset_table): The registry to use to lookup
windows-1251 charset is microsoft-cp1251, not windows-1251.
(Bug#40097)
2020-03-19 09:21:52 +01:00
Robert Pluim
5747a59a88 Recalculate default font when switching font backend
This is an updated version of the patch by Dmitry Antipov
<dmantipov@yandex.ru> in
<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=23386#43>.

Fixes Bug#23386

* src/dispextern.h (struct redisplay_interface): New member
default_font_parameter.
* src/xterm.h: Add prototype for x_default_font_parameter.
* src/xterm.c (x_redisplay_interface): Initialize
default_font_parameter member.
* src/xfns.c (x_default_font_parameter): Make non-static.
* src/w32term.h: Add prototype for w32_default_font_parameter
* src/w32fns.c (w32_default_font_parameter): Make non-static.
* src/w32term.c (w32_redisplay_interface): Initialize
default_font_parameter member.
* src/nsterm.m (ns_redisplay_interface): Add dummy
ns_default_font_parameter (there is currently only one possible font
backend on macOS).  Initialize default_font_parameter member.
* src/frame.c (gui_set_font_backend): Recalculate default font using
RIF default_font_parameter to avoid crash when changing font backend.
2020-03-17 16:58:09 +01:00
Eli Zaretskii
8d28c98ae0 Fix display of Big5 characters when using Fontconfig
* src/ftfont.c (fc_charset_table): Fix the value of the big-5
representative codepoint.  Reported by Brian Schack
<bschack-cocoa@usa.net>.  (Bug#40057)

* src/macfont.m (cf_charset_table): Adjust the comment.
2020-03-14 10:31:01 +02:00
Paul Eggert
4537976afd Port .gdbinit to clang with -gdwarf-4
* src/.gdbinit (xgetsym): Port to clang with -gdwarf-4, which
doesn’t output the type of lispsym anywhere other than emacs.o
(Bug#39962).
2020-03-09 12:25:56 -07:00
Paul Eggert
cf223dc928 ; * src/timefns.c: Fix typo in previous change. 2020-03-08 16:49:32 -07:00
Paul Eggert
20d3d3a950 * src/timefns.c: Add comments. 2020-03-08 16:44:49 -07:00
Paul Eggert
0a3682a566 * src/timefns.c: Add comments. 2020-03-08 00:16:49 -08:00
Eli Zaretskii
33b31dc314 Attempt to avoid rare segfaults in show_mouse_face
* src/xdisp.c (show_mouse_face): Don't display the active region
if called on a frame different from the one recorded in HLINFO.
(Bug#37671)
2020-03-06 09:48:10 +02:00
Eli Zaretskii
88c6db9196 Avoid crashes when a fontset has strange entries
* src/fontset.c (reorder_font_vector): Skip nil entries in the
loop that assigns scores to rfont_def's.
(fontset_compare_rfontdef): Cope with nil.  This has the effect of
moving any nil entries to the end of the font-group, and avoids
crashing if an element other than the last in the font-group is
nil.  (Bug#39892)
2020-03-05 17:57:21 +02:00
Andreas Schwab
add0610ec9 Fix implicit declaration of getenv and atol
* src/gtkutil.c: Include <stdlib.h>.
2020-03-03 19:42:17 +01:00
Eli Zaretskii
a4e4510ccd Fix handling MS-Windows keyboard input above the BMP
* src/w32term.c (w32_read_socket): If we get a WM_UNICHAR message
with a surrogate codepoint, assemble the corresponding character
code above the BMP from its UTF-16 encoding, communicated in two
consecutive WM_UNICHAR messages.
2020-03-03 18:40:28 +02:00
Robert Pluim
fe1a447d52 Don't attempt to cache glyph metrics for FONT_INVALID_CODE
This was causing massive slowdown in redisplay when eg #xfe0f
(VARIATION SELECTOR-16) was present, as the cache ended up very large,
unused, and being recreated on every call to font_fill_lglyph_metrics
(Bug#39133).

* src/composite.c (fill_gstring_body): Hoist FONT_OBJECT_P check out
of loop.  Calculate glyph code and check for FONT_INVALID_CODE before
calling font_fill_lglyph_metrics.  Pass glyph code to it.

* src/font.c (font_fill_lglyph_metrics): Add code parameter, move
glyph code calculation up the call stack into fill_gstring_body.

* src/font.h: Adjust font_fill_lglyph_metrics prototype.
2020-03-02 09:59:34 +01:00
Paul Eggert
5cca73dd82 * src/timefns.c (time_arith): Omit incorrect comment. 2020-02-28 12:59:16 -08:00
Robert Pluim
999d75c0c1 Range-check width passed to define-fringe-bitmap
This prevents a crash when attempting to create a zero-width bitmap.

* src/fringe.c (Fdefine_fringe_bitmap): Check value of width,
signal an error if outside documented range (Bug#39662).
2020-02-26 19:18:54 +01:00
Noam Postavsky
af519a6348 Define libgnutls-version properly
* src/gnutls.c (syms_of_gnutls) <libgnutls-version>: Define with
DEFVAR_LISP and add docstring, so that this variable will accessible by
help facilities.
2020-02-25 20:12:57 -05:00