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

41504 commits

Author SHA1 Message Date
Lars Ingebrigtsen
b7946afe25 open-dribble-file doc string clarification
* src/keyboard.c (Fopen_dribble_file): Clarify when the file is
closed, and when events are written to the file (bug#27996).
2019-07-15 19:55:26 +02:00
Robert Pluim
b34c6d2c96 Don't delete GnuTLS boot parameters too early
* src/process.c (connect_network_socket): Don't delete the GnuTLS
boot parameters until after we've managed to connect at the IP
level (bug#36660).
2019-07-15 13:30:11 +02:00
Alan Third
ac57c50938 Use correct colorspace for XBM images
* src/nsimage.m ([EmacsImage setXBMColor:]): Use 'generic RGB' color
space.
2019-07-14 17:41:19 +01:00
Stefan Monnier
8ff09154a2 ; Add comment to hash_table_rehash (Bug#36447)
* src/fns.c (hash_table_rehash): Add a comment to explain that
hash_table_rehash is not used in "normal" rehashing, but only in the
rare case of rehashing on the first access to a preloaded hash-table.
2019-07-14 10:04:22 -04:00
Eli Zaretskii
474bd9d4a0 Fix recent changes
* src/sysstdio.h: Include stdarg.h, for va_list.
2019-07-14 08:59:49 +03:00
Pip Cet
1542d17324 Avoid returning negative numbers from `hash-table-count'
* src/fns.c (Fhash_table_count): Rehash argument if necessary.
2019-07-13 21:45:27 -07:00
Paul Eggert
61a79e88e4 * src/lisp.h (struct Lisp_Hash_Table.count): Improve comment. 2019-07-13 21:45:27 -07:00
Paul Eggert
34810ab4f9 Avoid interleaving stderr lines when shutting down
* src/emacs.c (shut_down_emacs) [!DOS_NT]: Avoid interleaving
to stderr in the usual case, by using a single write and by
appending a newline.
* src/sysdep.c (emacs_backtrace) [HAVE_BACKTRACE_SYMBOLS_FD]:
Omit newline since shut_down_emacs now does that.
2019-07-13 16:53:21 -07:00
Paul Eggert
9a34591ddd Use a better buffer size in emacs_perror
* src/sysdep.c (emacs_perror): Since the buffer is for avoiding
interleaving, size it via PIPE_BUF not BUFSIZ.
* src/sysstdio.h (PIPE_BUF): Provide a default.
2019-07-13 16:53:21 -07:00
Paul Eggert
1178f98f2c Avoid interleaving stderr in dump_fingerprint
* src/fns.c (hexbuf_digest): New function, containing most of
the old make_digest_string.
(make_digest_string): Use it.
* src/pdumper.c (dump_fingerprint): Rewrite to use a single
fprintf call, to avoid interleaving on GNU/Linux.
2019-07-13 16:53:21 -07:00
Paul Eggert
a8ffbb20da Avoid interleaving stderr in a few cases
* src/sysdep.c (buferr): New static var.
(init_standard_fds) [_PC_PIPE_BUF]: Initialize it.
(errstream, errputc, verrprintf, errwrite): New functions.
(close_output_streams): Check buferr status too.
* src/xdisp.c: Include sysstdio.h instead of stdio.h.
(message_to_stderr, vmessage): Use the new functions
to avoid interleaving stderr.
2019-07-13 16:53:21 -07:00
Lars Ingebrigtsen
8620e07a35 Doc fix for Finteractive (only %s is allowed)
* src/callint.c (Finteractive): Any other format spec than %s will
bug out with "Format specifier doesn’t match argument type", so
say explicitly that only %s is supported (bug#31314).
2019-07-13 17:18:11 +02:00
Lars Ingebrigtsen
d4c2b3ca64 plist-get/lax-plist-get doc fix
* src/fns.c (Fplist_get): Mention that comparison is done with eq
(bug#31441).
(Flax_plist_get): Refer to plist-get for details.
2019-07-13 16:44:03 +02:00
Paul Eggert
04cbdde94d Replace Vdead with tagged pointer
This speeds up ‘make compile-always’ by 0.1% on my platform.
Suggested by Pip Cet in:
https://lists.gnu.org/r/emacs-devel/2019-07/msg00257.html
* src/.gdbinit (pwinx, pgx, xbuffer, xprintstr):
Output dead_object () as "DEAD".
* src/alloc.c (Vdead, DEADP): Remove.
All uses replaced by dead_object () / deadp.
(deadp): New function.
(init_alloc_once_for_pdumper): Remove no-longer-needed
initialization.
* src/lisp.h (dead_object): New function.
2019-07-12 22:29:57 -07:00
Paul Eggert
77a4cc9f1a Avoid duplicate comparison in describe_map_compare
* src/fns.c (string_version_cmp): New function.
This has most of the old Fstring_version_lessp,
with an assertion to make things a bit clearer.
* src/fns.c (Fstring_version_lessp):
* src/keymap.c (describe_map_compare): Use it (Bug#33237).
2019-07-11 17:04:55 -07:00
Lars Ingebrigtsen
aecc82d7eb Clarify the expand-file-name doc string
* src/fileio.c (Fexpand_file_name): Clarify that "~" in NAME is
expanded, and not just "~/".  Also clarify that ~USER is not
expanded if USER doesn't exist (bug#36490).
2019-07-11 17:10:52 +02:00
Lars Ingebrigtsen
1c3b320614 Tweak the order keystrokes are sorted in keymap listings
* src/keymap.c (describe_map_compare): Change the sorting order of
keystrokes, so that we get the order <f1> <f2> <f11> instead of
<f1> <f11> <f2> (bug#33237).
2019-07-11 16:53:43 +02:00
Eli Zaretskii
60fc771ac6 Resurrect SVG support on MS-Windows
* src/image.c (syms_of_image) <Qgio> [HAVE_NTGUI]: New DEFSYM.
(init_svg_functions) [LIBRSVG_CHECK_VERSION >= 2.32.0]: Load
g_file_new_for_path and g_memory_input_stream_new_from_data
from libgio, not from libglib.  (Bug#35548)

* lisp/term/w32-win.el (dynamic-library-alist): Add the libgio
DLL.
2019-07-11 16:28:41 +03:00
Eli Zaretskii
2581513abe Avoid assertion violations when resize-mini-windows is nil
* src/xdisp.c (resize_mini_window): Always reset the
mini-window's start point to the beginning of the buffer, even
if resizing is not needed.  This avoids assertion violations
when resize-mini-windows is nil.  (Bug#36595)
2019-07-11 16:03:33 +03:00
Paul Eggert
40cd6278ba Avoid functions deprecated in librsvg 2.45.1
* src/image.c (init_svg_functions) [WINDOWSNT]:
Load the pre-2.32 or 2.32 functions,
depending on LIBRSVG_CHECK_VERSION.
(svg_load_image): In librsvg 2.32 or later, use
g_memory_input_stream_new_from_data, g_file_new_for_path and
rsvg_handle_new_from_stream_sync rather than the
deprecated-in-2.45 rsvg_handle_write and rsvg_handle_close.
From a patch by YAMAMOTO Mitsuharu (Bug#35548#11).
2019-07-10 12:41:13 -07:00
Stefan Monnier
fec111c9ee * src/fileio.c: Fix bug#36431
(decide_coding_unwind): Re-introduce.  Move text back to the gap.
Return the new `inserted` via the unwind_data.
(Finsert_file_contents): Use it.
Make sure `inserted` is always 0 when we jump straight to `notfound`.
Don't insert the text in the buffer until we know it's properly decoded
for the byteness of the buffer.

* test/src/fileio-tests.el (fileio-tests--insert-file-interrupt):
Allow insert-file-contents to return an empty buffer in case of
non-local exit in set-auto-coding-function.
2019-07-09 17:04:24 -04:00
Paul Eggert
4c619758b2 Defend fingerprint against even-smarter LTO
* src/pdumper.c (Fdump_emacs_portable, pdumper_load):
Don’t cast volatile to non-volatile pointer, as that does not in
general suffice to prevent a compiler from optimizing away memcmp
and/or memcpy calls.  Instead, copy the fingerprint by hand.
2019-07-09 13:56:45 -07:00
Pip Cet
de229df09c Don't alter shared structure in dumped purecopied hash tables.
* src/fns.c (hash_table_rehash): Make sure we're operating on
fresh copies of ->next, ->index, ->hash.
2019-07-09 16:15:29 -04:00
Paul Eggert
412139f1be Do not alter match data in Fcapitalize etc.
Without this patch, (capitalize "x") can alter the match data,
which is not what users expect.  Problem found by running
morse-tests-unnato-region in a stripped-down Emacs.
Perhaps ‘load’ should also save and restore the match data?
That would be a simpler fix, though arguably incompatible.
* src/lread.c (save_match_data_load): New function.
* src/chartab.c (uniprop_table):
* src/doc.c (reread_doc_file):
* src/eval.c (Fautoload_do_load):
* src/fns.c (Frequire): Use it.
2019-07-09 13:11:45 -07:00
Andreas Schwab
fc41b0610e Make fingerprint handling compatible with LTO
Tell the compiler that the fingerprint variable is modified unpredictably.

* lib/fingerprint.h (fingerprint): Remove const.
* lib/fingerprint.c (fingerprint): Likewise.
* src/pdumper.c (Fdump_emacs_portable): Cast fingerprint variable.
(pdumper_load): Likewise.
* lib-src/make-fingerprint.c (main): Likewise.
2019-07-09 21:41:24 +02:00
Mattias Engdegård
a9d6ba49d5 Rename font_driver member close -> close_font
* src/alloc.c (cleanup_vector):
* src/xftfont.c (xftfont_driver):
* src/xfont.c (xfont_driver):
* src/nsfont.m (nsfont_driver):
* src/macfont.m (macfont_driver):
* src/ftxfont.c (ftxfont_driver):
* src/ftfont.c (ftfont_driver):
* src/ftcrfont.c (ftcrfont_driver):
* src/font.h (struct font_driver):
* src/font.c (font_clear_cache, font_close_object):
Rename `close' member to `close_font', to avoid clash with preprocessor
define of `close' in nt/inc/ms-w32.h and for consistency with `open_font'.
2019-07-09 18:40:57 +02:00
Lars Ingebrigtsen
1ffa65cea5 Mention call-process-region' in the call-process' doc string
* src/callproc.c (Fcall_process): Mention `call-process-region'
(bug#35187).
2019-07-09 18:00:52 +02:00
Mattias Engdegård
ec72340647 Rename font_driver member open -> open_font
* src/xftfont.c (xftfont_driver):
* src/xfont.c (xfont_driver):
* src/nsfont.m (nsfont_driver):
* src/macfont.m (macfont_driver):
* src/ftxfont.c (ftxfont_driver):
* src/ftfont.c (ftfont_driver):
* src/ftcrfont.c (ftcrfont_driver):
* src/font.h (struct font_driver):
* src/font.c (font_open_entity):
Rename `open' member to `open_font', to avoid clash with preprocessor
define of `open' in lib/fcntl.h and nt/inc/ms-w32.h.  Remove earlier
#undef hack.
2019-07-09 17:34:44 +02:00
Eli Zaretskii
93bd422ece Unbreak the MS-Windows build
* src/font.c (open): Don't undef on WINDOWSNT, as ms-w32.h
redirects it to sys_open.
2019-07-09 18:04:29 +03:00
Mattias Engdegård
fdea0e602b Repair macOS build
Avoid macro redefinition of `open' in lib/fcntl.h to break use of it as
a struct member in src/font.c.

* src/font.c: #undef open
2019-07-09 13:38:10 +02:00
Paul Eggert
cebea291d9 Avoid some unnecessary stdio.h includes
* src/atimer.c, src/callproc.c, src/coding.c, src/dired.c, src/eval.c:
* src/fringe.c, src/ftcrfont.c, src/ftfont.c, src/ftxfont.c:
* src/gfilenotify.c, src/indent.c, src/kqueue.c, src/menu.c:
* src/scroll.c, src/terminal.c, src/unexcoff.c, src/window.c:
* src/xfont.c, src/xftfont.c:
Do not include stdio.h since it is unused.
2019-07-08 17:50:39 -07:00
Paul Eggert
f8ab90839f Use fewer locks when accessing stdio
* src/alloc.c, src/bidi.c, src/emacs-module.c, src/pdumper.c:
* src/regex-emacs.c, src/unexhp9k800.c, src/unexmacosx.c:
* src/widget.c, src/xdisp.c, src/xselect.c, src/xterm.c:
Include sysstdio.h instead of stdio.h, to avoid locking
stdio streams in many cases.
* src/alloc.c (test_setjmp):
* src/bidi.c (bidi_dump_cached_states):
* src/cm.c (calccost):
* src/dispnew.c (init_display_interactive):
* src/emacs.c (main):
* src/image.c (convert_mono_to_color_image):
* src/minibuf.c (read_minibuf_noninteractive):
* src/nsfont.m (ns_descriptor_to_entity)
(ns_dump_glyphstring):
* src/nsterm.h (NSTRACE_MSG_NO_DASHES):
* src/nsterm.m (ns_mouse_position)
(sendEvent:, keyDown:, performDragOperation:):
* src/pdumper.c (dump_fingerprint, print_paths_to_root_1):
* src/print.c (debug_print):
* src/regex-emacs.c (debug_putchar, print_fastmap)
(print_partial_compiled_pattern, print_compiled_pattern)
(print_double_string, regex_compile):
* src/term.c (vfatal):
* src/unexhp9k800.c (read_header):
* src/unexmacosx.c (unexec_error):
* src/widget.c (EmacsFrameInitialize):
* src/xdisp.c (message_to_stderr, vmessage, dump_glyph_row)
(Fdump_glyph_matrix, Fdump_frame_glyph_matrix, dump_glyph_string):
* src/xfaces.c (Fdump_colors, Fdump_face):
* src/xselect.c (x_clipboard_manager_error_2):
* src/xterm.c (x_initialize):
* src/xwidget.c (WEBKIT_FN_INIT):
Prefer unlocked calls like fputs to locked calls like fprintf.
* src/charset.c (read_hex):
* src/cm.c (cmputc, cmcheckmagic):
* src/dispnew.c (update_frame, update_frame_with_menu)
(update_frame_1, Fsend_string_to_terminal, Fding)
(bitch_at_user):
* src/emacs.c (main, Fdump_emacs):
* src/emacs-module.c (module_abort):
* src/fileio.c (Fdo_auto_save):
* src/image.c (slurp_file)
(png_read_from_file, png_load_body, our_stdio_fill_input_buffer):
* src/keyboard.c (record_char, kbd_buffer_get_event)
(handle_interrupt):
* src/lread.c (readbyte_from_stdio, read1):
* src/minibuf.c (read_minibuf_noninteractive):
* src/print.c (printchar_to_stream, strout)
(Fredirect_debugging_output):
* src/sysdep.c (reset_sys_modes, close_output_streams)
(procfs_ttyname, procfs_get_total_memory):
* src/term.c (tty_ring_bell, tty_send_additional_strings)
(tty_set_terminal_modes, tty_reset_terminal_modes)
(tty_update_end, tty_clear_end_of_line, tty_write_glyphs)
(tty_write_glyphs_with_face, tty_insert_glyphs)
(tty_menu_activate):
* src/xfaces.c (Fx_load_color_file):
Simplify by using ordinary calls like putc to explicitly-unlocked
calls like putc_unlocked, since the ordinary calls are now
unlocked anyway.
* src/emacs.c (main, Fdump_emacs):
* src/pdumper.c (Fdump_emacs_portable):
Coalesce adjacent printfs.
* src/nsterm.h: Include sysstdio.h as this file’s macros rely on it.
* src/regex-emacs.c (print_compiled_pattern):
Omit redundant fflush.
* src/sysstdio.h: Include unlocked-io.h.
(clearerr_unlocked, feof_unlocked, ferror_unlocked)
(fflush_unlocked, fgets_unlocked, fputc_unlocked)
(fputs_unlocked, fread_unlocked, fwrite_unlocked)
(getc_unlocked, getchar_unlocked, putc_unlocked)
(putchar_unlocked): Remove these macros; now done by unlocked-io.h.
* src/xwidget.c: Include sysstdio.h.
2019-07-08 17:50:39 -07:00
Ken Brown
0528a7c872 Ensure that expand-file-name returns an absolute file name
* src/fileio.c (Fexpand_file_name): Don't directly use the current
buffer's default-directory if it is relative.  Instead replace it
by its expansion relative to invocation-directory.  (Bug#36502)
* test/src/fileio-tests.el
(fileio-tests--relative-default-directory): New test.
2019-07-08 18:37:33 -04:00
Paul Eggert
ee883189d4 * src/xselect.c: Fix comment. 2019-07-07 23:22:28 -07:00
Paul Eggert
b5e0dfacad * src/dispnew.c (init_display_interactive): Fix comment to match code. 2019-07-07 20:00:19 -07:00
Paul Eggert
1b6e9423b4 Fix typo in previous patch
* src/editfns.c (styled_format): Fix stray ‘pMd’.
2019-07-07 12:38:34 -07:00
Paul Eggert
8f522efe9a Remove printmax_t etc.
printmax_t etc. were needed only for platforms that lacked
support for printing intmax_t.  These platforms are now so
obsolete that they are no longer practical porting targets.
* src/image.c (gs_load): Fix unlikely buffer overrun
discovered while making these changes.  It was introduced in
2011-07-17T00:34:43!eggert@cs.ucla.edu.
* src/lisp.h (printmax_t, uprintmax_t, pMd, pMu, pMx):
Remove.  All uses replaced by their standard counterparts
intmax_t, uintmax_t, PRIdMAX, PRIuMAX, PRIxMAX.
2019-07-07 12:33:35 -07:00
Paul Eggert
b39f5e6c9c Don’t ignore stderr failure when ADDRESS_SANITIZER
* src/emacs.c (close_output_streams): Move from here ...
* src/sysdep.c: ... to here, where it really belongs anyway.
When ADDRESS_SANITIZER, fflush stderr and check for ferror,
to catch stderr output errors even in this case.
2019-07-06 17:43:11 -07:00
Glenn Morris
d8732a8245 Merge from origin/emacs-26
1e6d8e0 (origin/emacs-26) ; * doc/emacs/killing.texi (Secondary Selec...
e2344a7 * lisp/svg.el, lisp/progmodes/ada-mode.el: Fix bug#36360.
ff738ab Minor copyedit of "Font Lock" in user manual
faf99dc Improve description of image descriptors
21351cc ; * src/lread.c (Fread): Make the comment wording more accurate.
d176090 Improve documentation of secondary selections
8910fe1 * src/fns.c (Fmapconcat): Doc fix.  (Bug#36418)

# Conflicts:
#	lisp/svg.el
2019-07-06 12:52:12 -07:00
Glenn Morris
16a8a7695f Merge from origin/emacs-26
316f5a3 Fix typo in doc string of file-exists-p (bug#36408)
bfc7c6e * test/lisp/url/url-file-tests.el (url-file): Fix for POSIX f...
13b95e1 Fix typo in windows.texi
8b775c3 Clarify & update (elisp) Writing Emacs Primitives
7648c12 Clarify a subtle issue in the Internals chapter of lispref
2019-07-06 12:51:30 -07:00
Pip Cet
c16a8fc180 Update current buffer when changing text properties
* src/textprop.c (add_text_properties_1, set_text_properties)
(set_text_properties_1, Fremove_text_properties): Switch buffer if
necessary.  (Bug#36190)

* doc/lispref/text.texi (Examining Properties): Document performance
FIXME.
2019-07-06 19:20:53 +03:00
Eli Zaretskii
21351ccc00 ; * src/lread.c (Fread): Make the comment wording more accurate. 2019-07-06 11:40:49 +03:00
Eli Zaretskii
8910fe1db0 * src/fns.c (Fmapconcat): Doc fix. (Bug#36418) 2019-07-06 10:31:06 +03:00
YAMAMOTO Mitsuharu
814b509b1d Add HarfBuzz fallbacks for libotf functions used in ftfont_list
* src/ftfont.c [!HAVE_LIBOTF && HAVE_HARFBUZZ]: Include hb-ot.h.
(OTF, OTF_tag) [!HAVE_LIBOTF && HAVE_HARFBUZZ]: New typedefs.
(hbotf_open, hbotf_check_features) [!HAVE_LIBOTF && HAVE_HARFBUZZ]: New
functions.
(OTF_open, OTF_close, OTF_check_features) [!HAVE_LIBOTF && HAVE_HARFBUZZ]:
New macros.
(ftfont_list) [!HAVE_LIBOTF && HAVE_HARFBUZZ]: Use them.
2019-07-06 14:35:58 +09:00
YAMAMOTO Mitsuharu
f0db687a28 Avoid crash inside CFCharacterSetIsLongCharacterMember (Bug#36507)
* src/macfont.m (macfont_supports_charset_and_languages_p)
(macfont_has_char): Don't pass integers outside the Unicode codespace to
CFCharacterSetIsLongCharacterMember.  Do not merge to master.
2019-07-06 14:24:34 +09:00
YAMAMOTO Mitsuharu
0e15bd11dc Avoid crash inside CFCharacterSetIsLongCharacterMember
* src/macfont.m (macfont_supports_charset_and_languages_p)
(macfont_has_char): Don't pass integers outside the Unicode codespace to
CFCharacterSetIsLongCharacterMember.
2019-07-06 14:08:47 +09:00
Stefan Monnier
2bc90e0ce0 * src/coding.c (decode_coding): Improve doc. 2019-07-04 10:13:57 -04:00
Eli Zaretskii
ecd7d40a3b Fix rotation validity test in image.c
* src/image.c (compute_image_rotation): Fix the validity test
for :rotation values.  This avoids logging error messages when
no :rotation was provided in the image spec.
2019-07-03 10:31:48 +03:00
Eli Zaretskii
b5de191e87 Fix compiler warnings due to a recent commit
* src/xdisp.c (expose_window, expose_frame): Avoid compilation
warnings about printing unsigned values with %d.
2019-07-03 10:20:20 +03:00
Paul Eggert
52d0d4feac Replace TRACE with redisplay_trace, etc.
This simplifies callers and catches trace printf format errors
even with typical (non-debugging) compiles.
* src/dispextern.h (TRACE) [GLYPH_DEBUG]:
Move definitions to xdisp.c if it’s used only there.
* src/xdisp.c (redisplay_trace): New function, replacing TRACE macro.
(move_trace): New function, replacing TRACE_MOVE macro.
All uses changed.
(dump_glyph): When tracing, don’t use %d to format ptrdiff_t,
or %x to format a pointer.
(expose_frame): Redo trace printfs to avoid interleaved output
on GNU/Linux.
2019-07-02 23:02:28 -07:00