1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-05 07:01:11 -08:00
Commit graph

39987 commits

Author SHA1 Message Date
Eli Zaretskii
7890864413 Improve documentation of 'invisible-p'
* doc/lispref/display.texi (Invisible Text): Document the return
value of 'invisible-p'.

* src/xdisp.c (Finvisible_p): Rename the argument POS.  Doc fix.
(Bug#29721)
2017-12-16 12:15:06 +02:00
Martin Rudalics
a1327bbc64 Remove one more check that Vframe_list is non-nil
* src/dispnew.c (check_glyph_memory): Remove no-longer-needed
check that Vframe_list is non-nil, as FOR_EACH_FRAME no longer
assumes that.
2017-12-16 10:14:29 +01:00
Paul Eggert
e019c35df6 FOR_EACH_FRAME no longer assumes frame-list
This cleans up a recent fix related to Bug#29661.
Suggested by Stefan Monnier in:
https://lists.gnu.org/r/emacs-devel/2017-12/msg00544.html
* src/frame.c (next_frame, prev_frame, delete_frame):
Restore debugging checks that Vframe_list is non-nil,
as FOR_EACH_FRAME no longer has these checks.
(delete_frame): Remove no-longer-needed checks that Vframe_list is
non-nil, as FOR_EACH_FRAME no longer assumes that.
* src/frame.h (FOR_EACH_FRAME): Do not assume Vframe_list is non-nil.
2017-12-15 09:08:27 -08:00
Eli Zaretskii
d64b88da2f * src/font.c (Ffont_info): Doc fix. (Bug#29682) 2017-12-15 12:30:30 +02:00
Martin Rudalics
9bf66c6bee Don't run FOR_EACH_FRAME when there's no frame left (Bug#29961)
This does not fix Bug#29961 but avoids that Emacs segfaults when
trying to shut down because it lost connection to the X server.

* src/dispnew.c (check_glyph_memory):
* src/frame.c (delete_frame): Don't run FOR_EACH_FRAME when
there's no frame left (Bug#29961).
2017-12-15 08:30:09 +01:00
Charles A. Roelli
aa66da220c * src/data.c (Fadd_variable_watcher): Doc fix. 2017-12-14 20:53:35 +01:00
Martin Rudalics
232c6465ce Fix doc-string of Fbuffer_list
* src/buffer.c (Fbuffer_list): Fix doc-string.
2017-12-14 09:38:06 +01:00
Alan Third
45099bb90f Remove ObjC blocks (Bug#23753)
* src/macfont.m (macfont_get_glyph_for_character):
(mac_font_get_glyphs_for_variants): Inline Objective-C blocks.

(cherry picked from commit 4590f1d768)
2017-12-12 20:36:40 +00:00
Eli Zaretskii
b0369d0536 Import the latest IVD_Sequences.txt
* admin/unidata/IVD_Sequences.txt: New version from
http://www.unicode.org/ivd/, the 2017-12-12 version of the Unicode
Ideographic Variation Database.

* src/macuvs.h: Regenerated.
2017-12-12 21:41:23 +02:00
Eli Zaretskii
ad491c80e4 Avoid crashes in 'font-at' after 'set-fontset-font'
* src/fontset.c (free_realized_fontsets): Call
recompute_basic_faces, so that the basic faces are available to
any Lisp that calls this function, e.g. via set-fontset-font.
(Bug#29632)
2017-12-10 10:42:34 +02:00
Eli Zaretskii
122e7264b8 Fix tool-tip display when display margins are non-zero by default
* src/buffer.h (bset_left_margin_cols, bset_right_margin_cols):
New inline functions.
* src/xfns.c (Fx_show_tip):
* src/w32fns.c (Fx_show_tip): Force display margins of the tip
buffer to zero, as it will be displayed in a pseudo-window, which
doesn't support display margins.  (Bug#29627)
2017-12-09 22:06:19 +02:00
Eli Zaretskii
cda219c3df Improve interactive debugging commands in xdisp.c
* src/xdisp.c (Fdump_glyph_row, Fdump_tool_bar_row): Allow to
specify ROW via prefix argument.  Fix the doc strings.
2017-12-09 15:21:21 +02:00
Eli Zaretskii
1056b3cbcd Fix calculation of continuation_pixel_width in display engine
* src/xdisp.c (display_line): Remove incorrect increment of
it->continuation_pixel_width when word-wrap is used.  (Bug#29594)
2017-12-09 14:45:31 +02:00
Eli Zaretskii
1ef1dbdbc5 Avoid compilation warning in xterm.c
* src/xterm.c (x_draw_underwave): Move the declaration of
'thickness' to the non-USE_CAIRO branch, to avoid compiler
warning.  (Bug#29567)
2017-12-04 21:59:28 +02:00
Paul Eggert
04e5b28ff1 Fix bug in i18n/l10n optimization
This fixes a off-by-one buffer overrun bug introduced in
2017-06-04T15:39:37Z!eggert@cs.ucla.edu.  Problem uncovered by an
experimental version of Emacs built with -fcheck-pointer-bounds
and running on Intel MPX hardware.
* src/editfns.c (styled_format): Avoid overrunning internal buffers.
2017-12-02 21:32:26 -08:00
Yuuki Harano
ac316634e4 Fix buffer overflow in fontname conversion (Bug#29523)
* src/nsterm.m (ns_xlfd_to_fontname): Fix sscanf format.

Copyright-paperwork-exempt: yes
2017-12-02 13:45:51 +00:00
Eli Zaretskii
bdbcdbac43 Avoid assertions in find-composition
* src/font.c (font_range): If called with STRING non-nil and FACE
a NULL pointer, compute face by calling face_at_string_position.
(Bug#29506)

* lisp/composite.el (find-composition): Doc fix.
2017-11-30 19:55:41 +02:00
Noam Postavsky
340f74daa8 * src/w32heap.c (DUMPED_HEAP_SIZE) [_WIN64]: Bump to 22 MiB. 2017-11-27 16:53:55 -05:00
Stefan Monnier
37f3a6b216 * src/lread.c (syms_of_lread): Fix thinko in commit b1573a97e1 2017-11-27 13:53:23 -05:00
Paul Eggert
ac64fdb248 Harden exec_byte_code against redefining 'error'
Problem discovered by configuring with --enable-gcc-warnings on
Ubuntu 17.10 x86-64 with gcc (Ubuntu 7.2.0-8ubuntu3).
* src/bytecode.c (exec_byte_code): Call the C error function
instead of the Lisp one, so that the Emacs interpreter does not go
haywire if the user redefines the Lisp error function.
2017-11-26 19:16:47 -08:00
Eli Zaretskii
16358d4fcb Improve documentation of "constant" symbols
* src/font.c (syms_of_font) <font-weight-table, font-slant-table>
<font-width-table>:
* src/data.c (syms_of_data) <most-positive-fixnum>
<most-negative-fixnum>:
* src/buffer.c (syms_of_buffer) <enable-multibyte-characters>:
Mention in the doc strings that these variables are read-only.

* doc/lispref/variables.texi (Creating Buffer-Local): Document
that making a constant variable buffer-local signals an error.
* doc/lispref/variables.texi (Constant Variables):
* doc/lispref/errors.texi (Standard Errors): More accurate and
up-to-date documentation of which symbols cannot be assigned
values.
2017-11-26 20:23:15 +02:00
Paul Eggert
a89f0b6f33 maint: shorten https://lists.gnu.org/archive/html/... links 2017-11-25 22:48:12 -08:00
Paul Eggert
265cee553f Work around GCC bug 80776 on Fedora 27 x86
* src/buffer.c (Fgenerate_new_buffer_name): Pacify GCC 7.2.1
20170915 (Red Hat 7.2.1-2) on i686 with -Wformat-overflow -O2 by
using XINT rather than XFASTINT and by adding an eassume.  This
works around GCC bug 80776.
2017-11-25 22:48:09 -08:00
Paul Eggert
dc7a97fb84 Tweak copy-file, rename-file doc
* src/fileio.c (Fcopy_file, Frename_file): Tweak the recent change
slightly, as NEWNAME is treated as a directory name depending only
on the contents of the NEWNAME string, and independently of
whether NEWNAME names a directory (i.e., whether the directory
exists) (Bug#29362).
2017-11-25 13:05:05 -08:00
Eli Zaretskii
f7fdaea4c0 A better solution for bug#29347
* src/thread.c (really_call_select): Don't try to take the global
lock if the same thread is already holding it.  (Bug#29347)
2017-11-24 23:37:42 +02:00
Eli Zaretskii
86e6ed8521 ; * src/thread.c (acquire_global_lock): Fix thinko in last change. 2017-11-24 23:11:55 +02:00
Eli Zaretskii
f300852037 Avoid a hang after C-g while sit-for on a Unix TTY
* src/thread.c (acquire_global_lock): Don't try to take the global
lock if the same thread is already holding it.  (Bug#29347)
2017-11-24 18:13:57 +02:00
Eli Zaretskii
e6e41dac87 Reflect changes in copy-file and rename-file in doc strings
* src/fileio.c (Fcopy_file, Frename_file): Mention in the doc
strings that directory names must end in a slash.  (Bug#29362)
2017-11-24 10:49:29 +02:00
Eli Zaretskii
b081ec9dd7 Fix backward scrolling in buffers with header-line
* src/window.c (window_scroll_pixel_based): Account for the
header-line when comparing Y coordinate with the last_visible_y.
(Bug#29325)
2017-11-23 22:29:59 +02:00
Glenn Morris
8e40429c96 ; Fix some doc typos 2017-11-22 17:52:11 -05:00
Glenn Morris
ed2c542920 * lisp/bindings.el (buffer-file-coding-system):
Add explicit permanent-local mark.

; * src/buffer.c (init_buffer_once): Comment.
2017-11-22 16:36:07 -05:00
Glenn Morris
d82474e452 * src/fns.c (syms_of_fns) <overriding-plist-environment>: Doc fix. 2017-11-22 14:58:55 -05:00
Alan Third
292c09ff6d Fix incorrect interaction of drag/drop and double click (bug#29121)
* src/nsterm.m (EmacsView::performDragOperation): Drag and drop
doesn't use ns-input-file.
2017-11-22 16:46:49 +00:00
Alan Third
6c312605bf Add window divider faces to NS (bug#29353)
* src/nsterm.m (ns_draw_window_divider): Use
window-divider-first-pixel and window-divider-last-pixel faces.
2017-11-20 20:38:05 +00:00
Stefan Monnier
eb335c97b2 * src/keyboard.c: Undo last change, meant for master only 2017-11-20 12:45:20 -05:00
Martin Rudalics
4da87999c2 Fix misbehavior when drawing three-pixel high horizontal dividers (Bug#29353)
* src/xterm.c (x_draw_window_divider):
* src/w32term.c (w32_draw_window_divider): Fix misbehavior when
drawing three-pixel high horizontal dividers (Bug#29353).

The misbehavior was noted by Keith David Bershatsky and analyzed by Alan
Third.
2017-11-20 09:18:59 +01:00
Alan Third
d14923b4d4 Fix divider frame params on NS (bug#29352)
* src/nsfns.m (Fx_create_frame): Set right-divider-width and
bottom-divider-width parameters.
2017-11-19 11:02:56 +00:00
Olaf Rogalsky
18b2359411 * src/keyboard.c: Make xterm-mouse clicks on mode-line work
(read_key_sequence): Recompute first_event
after replay_sequence, since it might have changed (bug#29104).
2017-11-18 23:23:58 -05:00
Martin Rudalics
6e6bf60eab Don't let delete_frame select a tooltip frame (Bug#27647)
* src/frame.c (delete_frame): Don't select a tooltip
frame. (Bug#27647)
2017-11-18 19:19:32 +01:00
Eli Zaretskii
319c2de9da Avoid assertion violations in echo_area_display
* src/xdisp.c (echo_area_display): Don't try redisplaying the echo
area if the selected-frame's mini-window is nil.  (Bug#27647)
2017-11-18 13:41:03 +02:00
Eli Zaretskii
90add182a4 Prevent aborts in line-move-visual
* src/indent.c (line_number_display_width): Avoid assertion
violations in init_iterator when the window's buffer was
temporarily switched without updating window-start.  (Bug#29326)
2017-11-17 21:37:04 +02:00
Eli Zaretskii
648c128b5f More fixes in src/.gdbinit
* src/.gdbinit (pwinx): Update to match 'struct window'.
(pcursorx): Use "." instead of "->" because the argument is a
struct, not a pointer.
2017-11-17 17:41:23 +02:00
Eli Zaretskii
42c8768134 Fix .gdbinit following lisp.h changes
* src/.gdbinit (xsymname, pwinx, pgx, xbuffer, xcar, xcdr, xlist)
(xprintstr): Adapt to latest changes in Lisp object C structures.
(Bug#29332)
2017-11-17 12:08:06 +02:00
Paul Eggert
79108894db Port to IBM xlc 12.01
Work around a compiler bug by using a separate enum for alignment.
* src/alloc.c (roundup_size): Declare in a separate enum.
2017-11-13 10:16:52 -08:00
Paul Eggert
d14956099d Simplify by removing HAVE_STRUCT_ATTRIBUTE_ALIGNED
* configure.ac (HAVE_STRUCT_ATTRIBUTE_ALIGNED): Remove.  No longer
needed, since we no longer rely on __attribute__ ((aligned (8))).
All uses removed.
* src/emacs-module.c (HAVE_STRUCT_ATTRIBUTE_ALIGNED): Remove.
(lisp_to_value): Simplify now that we no longer need to worry
whether HAVE_STRUCT_ATTRIBUTE_ALIGNED is false.
2017-11-13 10:16:52 -08:00
Paul Eggert
b1573a97e1 Use alignas to fix GCALIGN-related bugs
Use alignas and unions to specify alignments of objects needing
addresses that are at least a multiple of GCALIGNMENT.  Using
these standard C facilities should be safer than relying on ad hoc
and poorly-understood features like GCC’s __attribute__
((aligned (N))), the root cause for recent porting bugs like
Bug#29040.  The alignas macro was standardized by C11 and Gnulib
supports alignas for pre-C11 platforms.  I have tested this on Sun
Studio 12 sparc (2007) and GCC 4.4.7 x86-64 (2012) as well as on
more recent platforms like GCC 7.2.1 (2017) on Fedora 26 (both
x86-64 and x86).
* lib-src/make-docfile.c (close_emacs_globals): lispsym is now
just an array of struct Lisp_Symbol, since struct Lisp_Symbol is
now properly aligned.  All uses changed.
* src/alloc.c (NEXT_FREE_LISP_STRING): Just use the new u.next
member; this is simpler and safer than casting a pointer that
might not be aligned properly.
(aligned_Lisp_Symbol): Remove.  No longer needed, now that struct
Lisp_Symbol is aligned properly.  All uses replaced with struct
Lisp_Symbol.
* src/lisp.h (GCALIGNED): Remove, as it does not work as expected:
it can cause the natural alignment to be ignored.  All uses
replaced by unions with a ‘char alignas (GCALIGNMENT)’ member as
described below.
(struct Lisp_Symbol, struct Lisp_Cons, struct Lisp_String):
Change definition from ‘struct TAG { MEMBERS };’ to
‘struct TAG { union { struct { MEMBERS } s; char alignas
(GCALIGNMENT) gcaligned; } u; };’.  This guarantees ‘struct TAG’
to have an alignment that at least max (GCALIGNMENT, N) where N is
its old alignment.  All uses like ‘PTR->MEMBER’ changed to
‘PTR->u.s.MEMBER’; these uses were supposed to be mostly private
anyway.  Verify that the resulting ‘struct TAG’ is properly
aligned for Emacs.
(union vectorlike_header): New member ‘gcaligned’ to guarantee
that this type, and its containing types like ‘struct Lisp_Subr’,
‘struct buffer’ and ‘struct thread_state’, are all properly
aligned for Emacs.
(struct Lisp_String): New union member ‘next’, for the benefit
of NEXT_FREE_LISP_STRING.
(union Aligned_Cons, union Aligned_String): Remove.  All uses
replaced by struct Lisp_Cons and struct Lisp_String, since they
are now properly aligned.
(USE_STACK_CONS, USE_STACK_STRING): Simplify now that we can
assume struct Lisp_Cons and struct Lisp_String are properly
aligned.
2017-11-13 10:16:51 -08:00
Paul Eggert
5d68dc9a2f Change vectorlike from struct to union
* src/lisp.h (vectorlike_headed): Change from struct to union.
All uses changed.  Since it has only one member, this does not
change semantics.  This is designed to simplify future changes
needed to fix bugs like Bug#29040.  All uses changed.
2017-11-13 10:16:51 -08:00
Michael Albinus
48ad00390d Fix Bug#29225
* src/fileio.c (Fset_file_acl): Report error only when
acl_errno_valid returns true.  (Bug#29225)

* test/lisp/net/tramp-tests.el (tramp-test24-file-acl)
(tramp-test25-file-selinux): New tests.
(tramp-test26-file-name-completion, tramp-test27-load)
(tramp-test28-process-file, tramp-test29-start-file-process)
(tramp-test30-interrupt-process, tramp-test31-shell-command)
(tramp-test32-environment-variables)
(tramp-test32-environment-variables-and-port-numbers)
(tramp-test33-explicit-shell-file-name)
(tramp-test34-vc-registered)
(tramp-test35-make-auto-save-file-name)
(tramp-test36-find-backup-file-name)
(tramp-test37-make-nearby-temp-file)
(tramp-test38-special-characters)
(tramp-test38-special-characters-with-stat)
(tramp-test38-special-characters-with-perl)
(tramp-test38-special-characters-with-ls, tramp-test39-utf8)
(tramp-test39-utf8-with-stat, tramp-test39-utf8-with-perl)
(tramp-test39-utf8-with-ls, tramp-test40-file-system-info)
(tramp-test41-asynchronous-requests)
(tramp-test42-recursive-load, tramp-test43-remote-load-path)
(tramp-test44-delay-load, tramp-test45-unload): Rename.
2017-11-12 13:06:09 +01:00
Paul Eggert
e470d16448 Pacify GCC when configured --with-x-toolkit=no
Without these changes, Emacs does not build on Fedora 26 x86-64
when configured --with-x-toolkit=no --enable-gcc-warnings.
* oldXMenu/Activate.c (XMenuActivate): Add FALLTHROUGH.
* src/xterm.c (x_dispatch_event): Define only if
USE_X_TOOLKIT || USE_MOTIF || USE_GTK.
2017-11-11 23:00:31 -08:00
Eli Zaretskii
7657a86709 Fix comparisons with tip_frame in GTK builds
* src/xterm.c (x_update_begin, x_new_font):
* src/xfns.c (Fx_display_monitor_attributes_list):
* src/frame.c (Fframe_list) [USE_GTK]: Don't consider tip_frame a
tooltip frame unless its 'tooltip' parameter is non-nil.  (Bug#26747)
2017-11-11 14:42:30 +02:00