Commit graph

42649 commits

Author SHA1 Message Date
Glenn Morris
d4e436e080 Merge from origin/emacs-27
ac1a2b2160 Add more doc-view requirements
109eb1e7e2 Fix undefined behavior when fetching glyphs from the displ...

# Conflicts:
#	lisp/doc-view.el
2020-11-13 09:00:26 -08:00
Glenn Morris
e3e1cd733e Merge from origin/emacs-27
75384bd155 Update the doc-view header line
13ab70c80e Avoid breaking Arabic shaping in 'window-text-pixel-size'
e693d97e50 doc-view.el comment clarification
968e85a2ce Update erc documentation about C-c C-b
2020-11-13 08:58:06 -08:00
Alan Third
7970610d48 Fix error with fn key in NS port (bug#44533)
* src/nsterm.m ([EmacsView keyDown:]): Move the correction for fn key
handling to before the modifiers are calculated.
2020-11-13 16:15:00 +00:00
Stefan Kangas
ccf2576081 Fix mistake in describe-buffer-bindings
* src/keymap.c (Fdescribe_buffer_bindings): Fix a call in
describe-buffer-bindings.  This fixes a mistake in my previous commit
to prefer the Lisp version of describe-map-tree (8a1441310a), where
0 was accidentally converted to Qt in two places.
2020-11-12 02:58:02 +01:00
Eli Zaretskii
621bb79b70 New debugging command 'malloc-info'
* src/alloc.c (Fmalloc_info) [GNU_LINUX]: New command.
(syms_of_alloc): Defsubr it.  (Bug#43389)
2020-11-10 19:41:04 +02:00
Eli Zaretskii
f1eca59dfa Fix a recent change in image.c for MS-Windows
* src/image.c: Fix DEF_DLL_FN of
rsvg_handle_get_intrinsic_dimensions.  Reported by Andy Moreton
<andrewjmoreton@gmail.com>.
2020-11-10 17:06:46 +02:00
Philipp Stephani
109eb1e7e2 Fix undefined behavior when fetching glyphs from the display vector.
You can trigger this rather obscure bug by enabling selective display
if the second glyph in its display vector has an invalid face.  For
example, evaluate

(set-display-table-slot standard-display-table
                        'selective-display [?A (?B . invalid)])

and then enable selective display.

* src/xdisp.c (next_element_from_display_vector): Check whether next
glyph code is valid before accessing it.
2020-11-09 22:14:39 +01:00
Stefan Kangas
95c04675ab Simplify getting value of text-quoting-style (Bug#44471)
* src/doc.c (text_quoting_style): Remove function by merging it...
(Ftext_quoting_style): ...here.  Rename from Fget_quoting_style.
(syms_of_doc): Update defsubr for Ftext_quoting_style.
* src/lisp.h (enum text_quoting_style): Remove enum.
* src/doprnt.c (doprnt):
* src/editfns.c (styled_format):
* lisp/help.el (substitute-command-keys): Update callers to use
text-quoting-style.
2020-11-09 21:08:28 +01:00
Alan Third
5293795806 Fix css length calculations
* src/image.c (svg_css_length_to_pixels): Put in missing breaks where
necessary.
2020-11-09 16:23:24 +00:00
Eli Zaretskii
3de31e7b71 Fix compilation of image.c on MS-Windows
This is a followup to last change in image.c.
* src/image.c (rsvg_handle_get_intrinsic_dimensions): Define to
call fn_rsvg_handle_get_intrinsic_dimensions.
(svg_css_length_to_pixels): Compile only for librsvg >= 2.46.0, as
RsvgLength type was not defined before.
2020-11-09 17:35:52 +02:00
Eli Zaretskii
13ab70c80e Avoid breaking Arabic shaping in 'window-text-pixel-size'
* src/xdisp.c (CHAR_COMPOSED_P): If the bidi_p flag is not set,
pass -1 to composition_reseat_it, so that the shaping engine will
figure out the directionality of the text.  This is important,
e.g., when using move_it_* functions in some context that is not
redisplay, such as 'window-text-pixel-size'.  (Bug#44521)
2020-11-09 17:22:25 +02:00
Eli Zaretskii
bffd5d3a9d Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs 2020-11-09 16:57:03 +02:00
Alan Third
18a7267c32 Fix crash in ns_mouse_position (bug#44313)
* src/nsterm.m (ns_destroy_window): Close the window before freeing
the frame resources so we don't end up accessing the frame struct
after it's been freed.
2020-11-09 14:49:52 +00:00
Alan Third
4469e0de01 Calculate SVG image sizes more accurately (bug#44206)
* src/image.c (svg_css_length_to_pixels): New function.
(svg_load_image): Try more methods to work out the image size.
2020-11-09 14:49:51 +00:00
Akira Kyle
a05810b2d5 Fix xwidget's webkitgtk widget overriding of Emacs SIGCHLD handler
* src/xwidget.c (make-xwidget): Save and restore Emacs SIGCHLD signal
handler since glib doesn't (but should) do this.
Copyright-paperwork-exempt: yes
2020-11-09 14:51:48 +01:00
Eli Zaretskii
b83e31bf95 Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs 2020-11-08 16:51:13 +02:00
Alan Mackenzie
cfe8a73cab Don't set the selected window to the miniwindow on a frame change.
Intended to fix bug #44502.

* src/minibuf.c (move_minibuffer_onto_frame): Remove the lines of code which
set the selected window to the minibuffer.
2020-11-08 13:28:55 +00:00
Glenn Morris
33e8116fc2 Merge from origin/emacs-27
f5d7fb3a2d (origin/emacs-27) Fix 'uudecode-decode-region-internal' in...
d4242177da Fix 'send-string-to-terminal' writing very long strings
9da0f4026c * lisp/subr.el (read-char-from-minibuffer): Doc fix.  (Bug...
9899f74e4e Merge branch 'emacs-27' of git.savannah.gnu.org:/srv/git/e...
a6fcba783e Fix documentation of 'windmove-swap-states-default-keybind...
f4acd7a924 Split windows evenly when 'min-margins' parameter was set ...
2020-11-07 09:57:56 -08:00
Glenn Morris
6b63b6669d Merge from origin/emacs-27
53933cdf5c ; * lisp/international/mule.el (define-coding-system): Doc...
e90ffcf759 * src/w32fns.c (Fw32_register_hot_key): Doc fix.  (Bug#44456)
89740e9cb5 Prevent redisplay from moving point behind user's back
5932df7435 Document that the :match function for a widget takes an ex...
1b7ab9d0ac Don't render XML declaration of an HTML document (bug#44348)

# Conflicts:
#	lisp/international/mule.el
2020-11-07 09:57:56 -08:00
Eli Zaretskii
a5867ddfbd Don't leave lock files after 'replace-buffer-contents'
* src/editfns.c (Freplace_buffer_contents): Unlock the buffer's
file if no changes have been made.  (Bug#44303)
2020-11-07 12:29:41 +02:00
Eli Zaretskii
d4242177da Fix 'send-string-to-terminal' writing very long strings
* src/dispnew.c (Fsend_string_to_terminal): Prevent partial writes
by blocking SIGIO while 'fwrite' runs.  (Bug#44320)
2020-11-07 11:19:44 +02:00
Eli Zaretskii
bc76afd355 ; * src/xdisp.c (redisplay_window): Add comment for a recent change. 2020-11-07 10:44:30 +02:00
Eli Zaretskii
33e2418a7c Fix scrolling problems with misc-fixed fonts under Cairo
* src/ftcrfont.c (ftcrfont_glyph_extents): Avoid rounding up the
glyph ascent to a higher value than needed due to floating-point
roundoff errors.  (Bug#44284)
2020-11-07 10:27:15 +02:00
Pip Cet
0cdd6c9218 Handle Cairo errors in ftcrfont_open
* src/ftcrfont.c (ftcrfont_open): Handle Cairo errors (bug#41627).

(cherry picked from commit 954a4decfc)
2020-11-07 10:13:07 +02:00
Glenn Morris
6b77ad6e77 Fix --enable-check-lisp-object-type build
* src/print.c (syms_of_print) <print-integers-as-characters>:
Fix type.
2020-11-06 08:00:54 -08:00
Mattias Engdegård
0c5eb1c7e7 Reduce integer-output-format to print-integers-as-characters
The variable now only controls whether characters are printed, not
the radix.  Control chars are printed in human-readable syntax
only when special escapes such as ?\n are available.  Spaces,
formatting and combining chars are excluded (bug#44155).
Done in collaboration with Juri Linkov.

* src/character.c (graphic_base_p):
* src/print.c (named_escape): New functions.
(print_object): Change semantics as described above.
(syms_of_print): Rename integer-output-format.  Update doc string.
* doc/lispref/streams.texi (Output Variables):
* etc/NEWS:
* test/src/print-tests.el (print-integers-as-characters):
Rename and update according to new semantics.  The test now passes.
2020-11-06 13:55:32 +01:00
Philipp Stephani
5d0da63f00 * src/minibuf.c (move_minibuffer_onto_frame): Fix comparison 2020-11-05 21:11:14 +01:00
Alan Mackenzie
2ecbf4cfae Allow minibuffer to stay in its original frame. Tidy up this area.
* doc/emacs/mini.texi (Basic Minibuffer): Add an entry for
minibuffer-follows-selected-frame.

* doc/lispref/minibuf.texi (Minibuffer Misc): Describe the new parameter to
minibufferp, LIVE.

* etc/NEWS: Add an entry describing the new minibuffer strategy.

* lisp/cus-start.el (minibuffer-prompt-properties--setter): Add an entry for
minibuffer-follows-selected-frame.

* lisp/minibuffer.el (minibuffer-message): Check for the current buffer being
an _active_ minibuffer rather than merely a minibuffer.

* src/frame.c (do_switch_frame): Call move_minibuffer_onto_frame.

* src/lisp.h (Top level): Add prototypes for move_minibuffer_onto_frame and
is_minibuffer.

* src/minibuf.c (minibuf_follows_frame): New function which ignores local and
let-bound values of minibuffer-follows-selected-frame.
(choose_minibuf_frame): Reformulate this function to reuse a minibuffer window
where possible, and to ensure no other frame has its minibuffer current, but
only when `minibuffer-follows-selected-frame'.
(move_minibuffer_onto_frame): New function.
(live_minibuffer_p): New function.
(Fminibufferp): Add a new &optional parameter LIVE.  Reformulate, possibly
calling live_minibuffer_p.
(read_minibuf): move the incrementation of minibuf_level to before the call of
choose_minibuf_frame.  Empty the miniwindows of frames without an active
minibuffer, rather than of all but the current frame.
(is_minibuffer): New function.
(read_minibuf_unwind): Note the miniwindow being restored and resize all other
miniwindows to zero size.
(minibuffer-follows-selected-frame): New configuration variable.

* src/window.c (candidate_window_p): In some scenarios, check the miniwindow
holds an active minibuffer.

* src/xdisp.c (get_window_cursor_type): Suppress the cursor for non-active
miniwindows, regardless of minibuf_level.
2020-11-05 19:27:43 +00:00
Eli Zaretskii
e90ffcf759 * src/w32fns.c (Fw32_register_hot_key): Doc fix. (Bug#44456) 2020-11-05 19:46:50 +02:00
Eli Zaretskii
89740e9cb5 Prevent redisplay from moving point behind user's back
* src/bidi.c (bidi_at_paragraph_end, bidi_find_paragraph_start):
Bind inhibit-quit to a non-nil value around calls to
fast_looking_at, to prevent breaking out of redisplay_window,
which temporarily moves point in buffers shown in non-selected
windows.  (Bug#44448)
2020-11-04 22:10:06 +02:00
Stefan Monnier
1c9500da66 * src/term.c (handle_one_term_event): Simplify.
Remove the `hold_quit` argument which was never used.
Streamline the control flow.
Thanks to Jared Finder <jared@finder.org> for pointing it out.

* src/keyboard.c (tty_read_avail_input): Simplify accordingly.
2020-11-04 13:44:51 -05:00
Mattias Engdegård
4445cb76db Add missing argument to directory_files_internal calls
* src/kqueue.c (kqueue_compare_dir_list, Fkqueue_add_watch):
Pass the new seventh argument.
2020-11-02 18:58:01 +01:00
Eli Zaretskii
5f6dcb1c66 Fix a recent change in dired.c
* src/dired.c (directory_files_internal): Fix type of integer
variables to avoid overflow in 32-bit builds --with-wide-int.
2020-11-02 19:55:48 +02:00
Glenn Morris
c1565cc3b9 Merge from origin/emacs-27
4e6104ea0b ; * src/xdisp.c (display_string): Fix a typo in a comment.
7162228815 Improve indexing of check-declare
d218b28ab5 ; * lisp/autoinsert.el (auto-insert-alist): Fix texinfo URL.
2020-11-02 09:27:40 -08:00
Glenn Morris
018e0c36fb Merge from origin/emacs-27
1fc9de4b81 Improve reproducibility of generated -pkg.el files
da6234e2df Make sure pixel sizes are zero when setting window size fo...
2d15296db1 Fix failure of 'emacs --daemon' on Cygwin
8abce5b0c6 CC Mode: Only recognize foo (*bar) as a function pointer w...
85d1d8d768 Fix NEWS entry for fix of Bug#44080
2443b15a91 * src/buffer.c (syms_of_buffer) <fill-column>: Improve doc...

# Conflicts:
#	etc/NEWS
2020-11-02 09:27:40 -08:00
Michael Albinus
e654b41c6f Fix some glitches in recent directory-files-* changes
* doc/lispref/files.texi (Contents of Directories):
Fix description of directory-files, directory-empty-p and
directory-files-and-attributes.

* etc/NEWS: Fix entry for directory-files-and-attributes.  Fix typos.

* lisp/dired.el (directory-empty-p): Move function from here ...

* lisp/files.el (directory-empty-p): ... to here.

* lisp/net/ange-ftp.el (ange-ftp-directory-files): Call `nreverse' later.

* lisp/net/tramp.el (tramp-handle-directory-files):
* lisp/net/tramp-adb.el
(tramp-adb-handle-directory-files-and-attributes): Do not call
`nreverse'.

* src/dired.c (Fdirectory_files)
(Fdirectory_files_and_attributes): Fix docstrings.

* test/src/dired-tests.el: Removed.  Tests moved to
test/lisp/dired-tests.el.

* test/lisp/dired-tests.el (dired-test-bug27899): Tag it :unstable.
(dired-test-directory-files)
(dired-test-directory-files-and-attributes): New tests.
2020-11-02 17:56:06 +01:00
Arthur Miller
0806075520 Add directory-empty-p and new argument COUNT for directory-files-*
* doc/lispref/files.texi (Contents of Directories): Mention COUNT
argument of directory-files.  Add directory-empty-p.

* etc/NEWS: Mention directory-empty-p and directory-files changes.

* lisp/dired.el (directory-empty-p): New defun.

* lisp/net/ange-ftp.el (ange-ftp-directory-files)
(ange-ftp-directory-files-and-attributes):
* lisp/net/tramp.el (tramp-handle-directory-files)
(tramp-handle-directory-files-and-attributes):
* lisp/net/tramp-adb.el
(tramp-adb-handle-directory-files-and-attributes):
* lisp/net/tramp-rclone.el (tramp-rclone-handle-directory-files):
* lisp/net/tramp-sh.el (tramp-sh-handle-directory-files-and-attributes):
* lisp/net/tramp-smb.el (tramp-smb-handle-directory-files): Add new COUNT
argument.

* src/dired.c (directory_files_internal): Implement new
RETURN_COUNT argument.
(Fdirectory_files, Fdirectory_files_and_attributes): Add new COUNT
argument.

* src/lisp.h (directory_files_internal): Add RETURN_COUNT to declaration.

* src/sysdep.c (list_system_processes): Add Qnil to
directory_files_internal call.

* test/src/dired-tests.el (directory-files-and-attributes-tests):
New file.
2020-11-02 12:38:27 +01:00
Eli Zaretskii
4e6104ea0b ; * src/xdisp.c (display_string): Fix a typo in a comment. 2020-11-01 21:49:35 +02:00
Lars Ingebrigtsen
9405cd84a6 Fix a segfault in the new svg code
* src/image.c (svg_load_image): Don't pass in a NULL for the
logical rect, because that will sometimes segfault.
2020-11-01 00:10:30 +01:00
Juri Linkov
5d9e456c3e New variable integer-output-format to print integers as characters (bug#44155)
* doc/lispref/streams.texi (Output Variables): Add integer-output-format.

* src/print.c (print_object): In case of Lisp_Int, print integers
as characters when Vinteger_output_format is Qt, and in hex format
when Vinteger_output_format is 16.
(Vinteger_output_format): New variable.

* test/src/print-tests.el (print-integer-output-format): New test.
2020-10-31 22:11:02 +02:00
Stefan Monnier
7103192cd2 * src/xdisp.c (syms_of_xdisp) <"scroll-minibuffer-conservatively">: New var
Fix bug#44070, which causes the minibuffer display to jump upon minor edit

(redisplay_window): Obey it.
* lisp/simple.el (end-of-buffer): Obey it.

* test/src/xdisp-tests.el (xdisp-tests--in-minibuffer): New macro,
extracted from `xdisp-tests--minibuffer-resizing`.
(xdisp-tests--minibuffer-resizing): Use it.
(xdisp-tests--minibuffer-scroll): New test.
2020-10-31 09:07:53 -04:00
Neil Roberts
f018cffca0 Use nobreak-space on all non-ASCII whitespace characters
* doc/emacs/display.texi (Text Display): Document it.

* src/xdisp.c (get_next_display_element): Use blankp to test whether
to use the nobreak_space face (bug#44236).
2020-10-30 13:13:31 +01:00
Noah Friedman
da6234e2df Make sure pixel sizes are zero when setting window size for ptys.
* sysdep.c (set_window_size): Initialize data to zero to avoid
passing any garbage from the stack to ioctl.
2020-10-29 14:55:37 -07:00
Michael Albinus
372739b406 Handle several children of PATH in dbus-managed-objects-handler
* lisp/net/dbus.el (dbus-managed-objects-handler): Handle several
children of PATH.  (Bug#44298)

* src/dbusbind.c (xd_signature, xd_append_arg): Check object path.

* test/lisp/net/dbus-tests.el (dbus-test09-get-managed-objects):
Tag it :expensive-test.  Remove superfluous check.
2020-10-29 16:56:40 +01:00
Ken Brown
2d15296db1 Fix failure of 'emacs --daemon' on Cygwin
* src/emacs.c (DAEMON_MUST_EXEC): Define unconditionally on
Cygwin, not just if HAVE_NTGUI is defined.  This fixes the failure
of 'emacs --daemon' to start on the non-w32 Cygwin builds.
(Bug#44285)
2020-10-29 08:45:29 -04:00
Eli Zaretskii
2443b15a91 * src/buffer.c (syms_of_buffer) <fill-column>: Improve doc string. 2020-10-27 17:43:29 +02:00
Glenn Morris
0dfb896be2 Merge from origin/emacs-27
e0de9f3295 (origin/emacs-27) Don't skip empty lines when fitting mini...
a4ec03fa9b ; * etc/tutorials/TUTORIAL.de: Fix grammar (Bug#44246)
20c02e628c Improve documentation of display-fill-column-indicator
e2005f1f2a * INSTALL: Mention efaq.texi for installation of intlfonts.
71661b2872 Use WebKit sandboxing

# Conflicts:
#	etc/NEWS
2020-10-27 08:24:56 -07:00
Glenn Morris
30ba1fcd1b Merge from origin/emacs-27
8b87ea6844 Recommend lexical-binding in Coding Conventions
e29cace60a Avoid rare crashes while producing line numbers
2020-10-27 08:18:05 -07:00
Clemens Radermacher
e0de9f3295 Don't skip empty lines when fitting mini frame to buffer (Bug#44080)
* lisp/window.el (fit-mini-frame-to-buffer,
window--resize-mini-frame, fit-frame-to-buffer,
fit-frame-to-buffer-1): By default, fit a mini frame without skipping its
buffer's leading or trailing empty lines.
* src/frame.c (resize-mini-frames): Update doc-string.
* lisp/cus-start.el (resize-mini-frames): Update for customize.
* doc/lispref/minibuf.texi (resize-mini-frames): Update description.
2020-10-27 09:45:25 +01:00
Eli Zaretskii
634bbb61f2 Avoid segfaults due to using fonts that were closed
* src/composite.c (composition_gstring_cache_clear_font): New
function.
* src/composite.h (composition_gstring_cache_clear_font): Add
prototype.
* src/font.c (font_clear_cache): When we are about to close a
font, remove from the gstring cache any lgstring that uses this
font.  (Bug#42943)
2020-10-26 18:14:32 +02:00