1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-14 19:01:45 -07:00
Commit graph

40079 commits

Author SHA1 Message Date
Eli Zaretskii
acaebed014 ; * src/ftfont.c (ftfont_spec_pattern): Fix whitespace. 2018-06-05 14:08:08 +02:00
Paul Eggert
97d61f878e Port FC_COLOR change to older fontconfig
Problem reported by John ff in:
https://lists.gnu.org/r/emacs-devel/2018-04/msg00058.html
* src/ftfont.c (ftfont_spec_pattern) [!FC_COLOR]:
Don’t use FC_COLOR on older fontconfigs that don’t have it.
2018-06-05 14:08:08 +02:00
Robert Pluim
f21fa142ac Ignore color fonts when using Xft
* src/font.c (syms_of_font): New configuration variable
xft-ignore-color-fonts, default t.
* src/ftfont.c (ftfont_spec_pattern): Tell fontconfig to ignore
color fonts if xft-ignore-color-fonts is t.  (Bug#30874, Bug#30045)
* etc/NEWS: Document xft-ignore-color-fonts.
2018-06-05 14:08:08 +02:00
Stefan Monnier
ed962f2b8a Fix bug#30846, along with misc cleanups found along the way
* test/src/data-tests.el (data-tests-kill-all-local-variables): New test.

* src/buffer.c (swap_out_buffer_local_variables): Remove.
Fuse the body of its loop into that of reset_buffer_local_variables.
(Fkill_buffer, Fkill_all_local_variables): Don't call it any more.
(reset_buffer_local_variables): Make sure the buffer's local binding
is swapped out before removing it from the alist (bug#30846).
Call watchers before actually killing the var.

* src/data.c (Fmake_local_variable): Simplify.
Use swap_in_global_binding to swap out any local binding, instead of
a mix of find_symbol_value followed by messing with where&found.
Don't call swap_in_symval_forwarding since the currently swapped
binding is never one we've modified.
(Fkill_local_variable): Use swap_in_global_binding rather than messing
with where&found to try and trick find_symbol_value into doing the same.

* src/alloc.c (mark_localized_symbol): 'where' can't be a frame any more.

(cherry picked from commit 3ddff08034)
2018-06-03 12:48:14 -04:00
Paul Eggert
51ee8bc448 Centralize Bug#30931 fix
* src/marker.c (detach_marker): New function.
* src/editfns.c (save_restriction_restore):
* src/insdel.c (signal_before_change): Use it.

(cherry picked from commit 6f66a43d7a)
2018-06-03 12:48:13 -04:00
Noam Postavsky
daa602338f Fix another case of freed markers in the undo-list (Bug#30931)
* src/alloc.c (free_marker): Remove.
* src/editfns.c (save_restriction_restore):
* src/insdel.c (signal_before_change): Detach the markers from the
buffer when we're done with them instead of calling free_marker on
them.
* test/src/editfns-tests.el (delete-region-undo-markers-1)
(delete-region-undo-markers-2): New tests.

(cherry picked from commit 96b8747d5c)
2018-06-03 12:48:13 -04:00
Paul Eggert
7460840a6c Fix CHECK_ALLOCATED_AND_LIVE abort during GC
* src/editfns.c (save_restriction_restore):
Wait for the GC to free the temporary markers (Bug#30931).

(cherry picked from commit 670f2ffae7)
2018-06-03 12:48:13 -04:00
Noam Postavsky
71192e0b7e Don't wait for visible frames to become visible
For discussion, see thread starting at
https://lists.gnu.org/archive/html/emacs-devel/2018-03/msg00807.html.
* src/xterm.c (x_make_frame_visible): Check FRAME_VISIBLE_P before
calling x_wait_for_event.

(cherry picked from commits 2a192e21cf
and 00c1f771f2)
2018-06-03 12:48:13 -04:00
Alan Third
defd53a56c Set accessibility subroles for child frame (bug#31324)
; Depends on patch in bug#31440.

* src/nsterm.m (x_set_parent_frame): Set subrole depending on whether
frame is a child or not.
2018-06-02 15:31:59 +01:00
Alan Third
de6a876373 Fix redefinition of child frames on NS
* src/nsterm.m (x_set_parent_frame): If the NSWindow has an existing
parent frame, remove it.
2018-06-02 15:31:59 +01:00
Eli Zaretskii
9089b0239f Improve documentation of 'inhibit-message'
* src/xdisp.c (syms_of_xdisp) <inhibit-message>: Warn against
setting it non-nil globally.  (Bug#31627)
2018-06-02 14:09:11 +03:00
Eli Zaretskii
6e0ff4cc1f Fix decoding of directories when "~" includes non-ASCII chars
* src/fileio.c (Fexpand_file_name): Don't build multibyte strings
from unibyte non-ASCII strings when NAME and DEFAULT_DIRECTORY
have different multibyteness, as this adds bytes to the byte
sequence, and in some situations, e.g., when the home directory
includes non-ASCII characters, can fail file APIs.  (Bug#30755)

* lisp/startup.el (normal-top-level): Make sure default-directory
is set to a multibyte string when decoded on MS-Windows.

(cherry picked from commit 3aab8626ba)
2018-06-02 12:37:19 +03:00
Ari Roponen
aac541e75e Fix some problems in the Cairo build
* src/xterm.c (x_begin_cr_clip): Create image surface.
(x_update_end) [USE_CAIRO]: Remove GTK3-specific code.
(x_scroll_run) [USE_CAIRO]: Implement scrolling.
* src/image.c (lookup_rgb_color) [USE_CAIRO]: Support Cairo.
(jpeg_load_body) [USE_CAIRO]: Support Cairo.  Use USE_CAIRO
instead of CAIRO for #ifdef's.
(imagemagick_load_image) [USE_CAIRO]: Support Cairo.
(Bug#31288)

(cherry picked from commit 2d0eff42b8)
2018-06-02 12:33:13 +03:00
Eli Zaretskii
e96245a549 Avoid infloops in font_open_entity
* src/font.c (font_open_entity): Fail after 15 iterations through
the loop that looks for a font whose average_width and height are
both positive.  This avoids infinite loops for fonts that, e.g.,
report average_width of zero for any possible size we try.
(Bug#31316)

(cherry picked from commit e2879c1f83)
2018-06-02 12:30:30 +03:00
Eli Zaretskii
7782550b3f Fix C-p and C-n when wrap-prefix is too wide
* src/xdisp.c (move_it_in_display_line_to): Avoid looping in
previous/next-line when wrap-prefix is set to a too-wide
stretch of whitespace.  (Bug#30432)

(cherry picked from commit 842b3d7412)
2018-06-02 12:27:22 +03:00
Eli Zaretskii
9804482b02 Avoid redisplay problems with too wide wrap-prefix
* src/xdisp.c (display_line): Avoid looping in redisplay when
wrap-prefix is set to a too-wide stretch of whitespace.
(Bug#30432)

(cherry picked from commit 2a1fe08307)
2018-06-02 12:25:50 +03:00
Eli Zaretskii
5ee9ccf5c9 Fix 'posn-at-point' when line numbers are displayed
* src/xdisp.c (pos_visible_p): For the leftmost glyph, adjust the X
coordinate due to line-number display.  (Bug#30834)

(cherry picked from commit 4a20174d79)
2018-06-02 12:23:49 +03:00
Eli Zaretskii
c4db7662bb Another followup to fixing 'window-text-pixel-width'
* src/xdisp.c (Fwindow_text_pixel_size): Adjust the return value
when we stop one buffer position short of TO.  (Bug#30746)

(cherry picked from commit 33cba5405c)
2018-06-02 12:21:23 +03:00
Eli Zaretskii
a6cf7be3f0 Fix mouse-set-point when line numbers are displayed
* src/xdisp.c (move_it_to): Initialize the line_number_produced_p
flag before iterating on a new line.  (Bug#30818)

(cherry picked from commit 5c585b8b99)
2018-06-02 12:19:42 +03:00
Eli Zaretskii
ae78b14290 * src/xdisp.c (Fwindow_text_pixel_size): Fix last change.
(cherry picked from commit 06911714ef)
2018-06-02 12:18:56 +03:00
Eli Zaretskii
f1f12d8be3 Fix 'window-text-pixel-size' when display properties are around
* src/xdisp.c (Fwindow_text_pixel_size): Correct the result when
there's a display property at the  TO position, and the call to
move_it_to overshoots.  (Bug#30746)

(cherry picked from commit 50e2c0fb51)
2018-06-02 12:17:16 +03:00
Eli Zaretskii
8b2b4b580c Fix display of TABs in hscrolled windows with line numbers
* src/dispextern.h (struct it): New members tab_offset and
line_number_produced_p.
* src/xdisp.c (display_line): Don't set row->x to a negative value
if line numbers are being displayed.  (Bug#30582)
Reset the line_number_produced_p flag before laying out the glyph
row.
(x_produce_glyphs): Use the line_number_produced_p flag to decide
whether to offset the X coordinate due to line-number display.
Use the tab_offset member to restore the original TAB width for
alignment purposes.
(move_it_in_display_line_to): Don't produce line numbers when moving
in hscrolled window to the left of first_visible_x.
(maybe_produce_line_number): Set the line_number_produced_p flag.
(Bug#30584)
* src/term.c (produce_glyphs): Correct TAB width only when
line_number_produced_p flag is set.

(cherry picked from commit 1ac1905538)
2018-06-02 12:15:14 +03:00
Matthias Dahl
de69d28458 Fix wait_reading_process_output wait_proc hang
* src/process.c (read_process_output): Track bytes read from
a process.
(wait_reading_process_output): If called recursively through
timers and/or process filters via accept-process-output, it is
possible that the output of wait_proc has already been read by
one of those recursive calls, leaving the original call hanging
forever if no further output arrives through that fd and no
timeout has been set.  Fix that by using the process read
accounting to keep track of how many bytes have been read and
use that as a condition to break out of the infinite loop and
return to the caller as well as to calculate the proper return
value (if a wait_proc is given that is).

* src/process.h (struct Lisp_Process): Add nbytes_read to track
bytes read from a process.

(cherry picked from commit 4ba32858d6)
2018-06-02 12:13:12 +03:00
Eli Zaretskii
ddd1b957e9 Fix posn-at-point in Flycheck buffers
* src/dispnew.c (buffer_posn_from_coords): Improve commentary.

* src/xdisp.c (move_it_in_display_line_to): Don't exit the loop
under truncate-lines if the glyph at TO_CHARPOS was not yet
produced.  This avoids bailing out too early when we are at
TO_CHARPOS, but didn't yet produce glyphs for that buffer
position, because the last call to PRODUCE_GLYPHS at this position
was for an object other than the buffer.  For further details, see
http://lists.gnu.org/archive/html/emacs-devel/2018-01/msg00537.html.

(cherry picked from commit c0154ac7c3)
2018-06-02 12:08:48 +03:00
Robert Pluim
9188291f7a Add detailed documentation about lock files
* doc/emacs/files.texi (Interlocking): Point user at detailed
file locking description in lisp reference manual.  Add index
entry for '.#' to improve disoverability of information about locking.

* doc/lispref/files.texi (File Locks): Describe in detail what
the form of the lock file is.  Add index entry for '.#' to
improve disoverability of information about locking.

* src/filelock.c (create-lockfiles): Add cross reference to
file locking in user manual and to 'lock-buffer'.  Add string
'.#' to help users find the doc string.
2018-06-01 15:06:20 +02:00
Eli Zaretskii
99f92dab3d Improve documentation of 'directory-files-and-attributes'
* doc/lispref/files.texi (Contents of Directories): Fix inaccurate
description of the return value of directory-files-and-attributes.

* src/dired.c (Fdirectory_files_and_attributes): Describe the
function's value in more detail.
2018-06-01 11:27:29 +03:00
Noam Postavsky
2f44d2d5b1 Note caveat for backward regexp searching in docstring (Bug#31584)
* src/search.c (Fre_search_backward): Emphasize that backwards
searches may give shorter than expected matches.
* doc/lispref/searching.texi (Regexp Search): Add an anchor for
re-search-backward to reference.
2018-05-25 07:54:30 -04:00
Noam Postavsky
1d9e66aea1 Don't check non-X frames for z order (Bug#31373)
* src/xfns.c (x_frame_list_z_order): Only use frames with
`output_method' set to `output_x_window'.
2018-05-07 21:35:25 -04:00
Alan Third
7dc028e250 Check NSWindow is actually a frame
* src/nsfns.m (Fns_frame_list_z_order): Check NSWindow is an instance
of EmacsView before treating it as one.
2018-05-07 22:58:42 +01:00
Noam Postavsky
b90ce66d32 Handle selected_window change in prepare_menu_bars (Bug#31312)
* src/xdisp.c (redisplay_internal): Check selected_window after
calling prepare_menu_bars, since it can call lisp hooks.
2018-05-03 20:58:06 -04:00
Paul Eggert
65ac27783a Port --enable-gcc-warnings to GCC 8
Backport from master.
* lib-src/emacsclient.c (fail):
Do not dereference a null pointer.
* src/frame.c (delete_frame):
Add a decl with UNINIT to work around GCC bug 85563.
* src/menu.h (finish_menu_items):
Do not use attribute const.
* src/regex.c (analyze_first): Use FALLTHROUGH, not a comment.
2018-04-30 17:17:54 -07:00
Andreas Schwab
3fa472b487 Fix undefined behaviour while looking for lexical-binding file variable (bug 31186)
* src/lread.c (lisp_file_lexically_bound_p): Reset
beg_end_state before reading variable or value.
2018-04-17 11:43:14 +02:00
Eli Zaretskii
6c2e21e1ca Avoid segfault in processes of type 'pipe'
* src/process.c (Fmake_pipe_process): Set up the decoding and
encoding buffers.  For the details, see
http://lists.gnu.org/archive/html/emacs-devel/2018-04/msg00295.html.
2018-04-13 15:48:04 +03:00
Eli Zaretskii
6afa8682e9 ; * src/dispextern.h (struct it): Fix a typo in a comment. 2018-04-07 17:24:01 +03:00
Aaron Jensen
95ccf50e37 Fix crash after frame is freed on macOS (bug#30800)
* src/nsterm.m (x_free_frame_resources): Clear represented_frame.
(bug#30800)
2018-03-25 20:13:05 +01:00
Noam Postavsky
b8ebf5fb64 * src/lisp.h (struct Lisp_Buffer_Local_Value): Update commentary. 2018-03-23 08:19:42 -04:00
Paul Eggert
d09c488cb5 Port to 32-bit sparc64
Backport from master.
Problem reported by Ulrich Mueller; fix suggested by Eli Zaretskii
and Andreas Schwab (Bug#30855).
* src/alloc.c (mark_memory): Call mark_maybe_object only on
pointers that are properly aligned for Lisp_Object.
2018-03-20 14:39:12 -07:00
Paul Eggert
23527013c7 ; Rewrap doc string 2018-03-20 08:58:02 -07:00
Robert Pluim
4328d5f744 Correct Info link markup
* lisp/gnus/gnus-agent.el (gnus-agent-auto-agentize-methods):
Correct markup for Info link.
* src/minibuf.c (Fcompleting_read): Likewise.
2018-03-20 14:30:37 +02:00
Noam Postavsky
10bd3b3af8 Improve word motion docs (Bug#30815)
* doc/lispref/positions.texi (Word Motion): Fix reference to
`char-script-table'.
* lisp/simple.el (backward-word):
* src/syntax.c (forward-word): Mention `char-script-table' and add
link to the 'Word Motion' manual section.
2018-03-16 19:51:28 -04:00
Eli Zaretskii
36a1d52814 Fix problems caused by fontconfig-2.13.0
* src/xterm.c (x_term_init): Call fixup_locale after
xg_initialize, to countermand the call to setlocale in some
versions of fontconfig.  (Bug#30788)
2018-03-14 20:11:16 +02:00
Eli Zaretskii
3e39897cd0 Avoid assertion violation under visual-order-cursor-movement
* src/xdisp.c (Fmove_point_visually): Don't let point exceed the
BEGV..ZV range.  Signal Beginning of buffer error when there's a
before-string at BEGV.  (Bug#30787)
2018-03-13 18:00:23 +02:00
Paul Eggert
5c91ca8f30 Fix create_process bug breaking eudc-expand-inline
Problem reported by Thomas Fitzsimmons (Bug#30762).
* src/process.c (create_process) [HAVE_PTYS]:
Call setsid even if !PTY_FLAG.
2018-03-10 18:27:42 -08:00
Glenn Morris
19afff31c9 Replace some obsolete aliases in documentation
* doc/emacs/text.texi (Nroff Mode):
* doc/misc/efaq.texi (How to add fonts):
* lisp/gnus/nnheader.el (nnheader-insert-file-contents):
* lisp/progmodes/pascal.el (pascal-outline-mode):
Doc fixes re obsolete aliases.
; * src/frame.c (do_switch_frame): Comment.
2018-03-06 20:13:51 -05:00
Eli Zaretskii
82f12b2f13 * src/window.c (Frecenter): Improve commentary. 2018-03-02 11:24:24 +02:00
Paul Eggert
ca8afa7672 Require a larger stack size for threads on macOS (bug#30364)
* src/systhread.c (sys_thread_create)
[THREADS_ENABLED && HAVE_PTHREAD && DARWIN_OS]:
Require at least 8MB stack size for x64 and 4MB for x86 on macOS.
Do not merge to master.
2018-02-28 16:31:20 -08:00
Eli Zaretskii
c87d04e05e Avoid aborts in 'md5'
* src/fns.c (extract_data_from_object): Don't crash if called with
an invalid object.  (Bug#30627)
2018-02-27 18:44:15 +02:00
Eli Zaretskii
7e7f2ea644 * src/keyboard.c (syms_of_keyboard): Doc fix. (Bug#30588) 2018-02-24 11:30:02 +02:00
Martin Rudalics
83187cd900 Skip mouse-face overlap check when mouse-face is hidden (Bug#30519)
* src/xdisp.c (note_mouse_highlight): Skip check whether
mouse-face highlighting overlay overlaps other mouse-face
overlays when mouse-face highlighting is hidden (Bug#30519).
2018-02-22 08:50:47 +01:00
Eli Zaretskii
f0d6a16d74 Fix documentation of 'x-underline-at-descent-line'
* doc/emacs/display.texi (Display Custom):
* src/nsterm.m (syms_of_nsterm):
* src/xterm.c (syms_of_xterm):
* src/w32term.c (syms_of_w32term): Mention the effect of
'line-spacing' on the underline position.  (Bug#30553)
2018-02-21 06:20:58 +02:00