1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-17 16:41:17 -08:00
Commit graph

42973 commits

Author SHA1 Message Date
Alan Mackenzie
7c2ebf6e23 Prevent open minibuffers getting lost when their frame gets deleted
This happened with minibuffer-follows-selected-frame set to t.

* doc/emacs/mini.texi (Basic Minibuffer): State where a command's action takes
place when a minibuffer's frame has been deleted.

* lisp/window.el (window--before-delete-windows, record-window-buffer): Take
into account that minibuffers are now recorded on w->prev_buffers field.

* src/fns.c (merge_c): New version of `merge' taking a C function, rather than
a Lisp function as the comparison function.

* src/frame.c (do_switch_frame): Pass arguments sf and for_deletion to
move_minibuffers_onnto_frame.

* src/lisp.h (top level): Declare merge_c and
move_minibuffers_onto_selected_frame.

* src/minibuf.c (MB_frame): New Lisp_Object recording the minibuffer's frame.
(choose_minibuf_frame): Remove all code except that which sets minibuf_window
to the current frame's minibuffer.
(minibuffer_ent_greater): New comparison function, passed to merge_c.
(zip_minibuffer_stacks): New function.
(move_minibuffers_onto_frame): Renamed from `move_minibuffer_onto_frame' given
two arguments, the old frame and for_deletion, and simplified.  Minibuffers
are now stacked in the mini-window's ->prev_buffers field.
(read_minibuf): Several detailed amendments.
(exp_MB_frame): New Lisp_Object, the expired minibuffer's frame.
(read_minibuf_unwind): Search for the expired minibuffer's frame, rather than
taking it from (unreliable) variables.  Switch temporarily to this frame for
tidying up operations.
(minibuffer_unwind): New function which pops a stacked minibuffer.
(syms_of_minibuf): Call staticpro for the two new Lisp variables.

* src/window.c (Fset_window_configuration): Don't record minibuffers with
record-window-buffer.

* src/xdisp.c (gui_consider_frame_title): Remove redundant Fselect_window,
which caused an unwanted frame switch.  Amend the arguments to
format_mode_line_unwind_data to match.
2021-03-21 16:54:31 +00:00
Paul Eggert
31544bc908 Don’t convert pointer to bool
Without this patch, Oracle Studio 12.6 complains about converting
pointer to bool.
* src/editfns.c (styled_format): Use !!.
2021-03-19 17:48:00 -07:00
Michael Albinus
ce1b4acd71 Extend handled events in 'while-no-input-ignore-events' (Bug#47205)
* etc/NEWS: Mention changes to 'while-no-input-ignore-events'.

* src/keyboard.c (kbd_buffer_store_buffered_event): Handle also
Qfile_notify and Qdbus_event as ignore_event.  (Bug#47205)
2021-03-18 12:43:35 +01:00
Lars Ingebrigtsen
60af754170 Document that `buffer-string' retains text properties
* doc/lispref/text.texi (Buffer Contents): Mention text properties
in the `buffer-string' documentation.
* src/editfns.c (Fbuffer_string): Mention text properties in the
doc string (bug#47220).
2021-03-18 05:59:12 +01:00
Daniel Martín
ef122bf45d Add minibuffer input support to commands that set the frame size
* lisp/frame.el (set-frame-property--interactive): Internal function to
produce the interactive form of `set-frame-width' and
`set-frame-height'.  Offer the current size as default.  (Bug#9970)
* src/frame.c (Fset_frame_height): Modify to call
`set-frame-property--interactive'.
(Fset_frame_width): Modify to call `set-frame-property--interactive'.
* doc/lispref/frames.texi (Frame Size): Update the manuals.
* etc/NEWS: Advertise the change (bug#9970).
2021-03-16 01:29:28 +01:00
Alan Third
ebc3b25409 Fix buffer overflow in xbm_scan (bug#47094)
* src/image.c (xbm_scan): Ensure reading a string doesn't overflow the
buffer.
2021-03-13 22:01:31 +00:00
Eli Zaretskii
1f0fb1f6fa Fix rare redisplay glitches when image has been removed from display
* src/dispnew.c (update_window): Make sure all glyph rows below
the last visible one are marked as invalid, even when the loop
which "updates the rest of the lines" didn't examine the last
visible row.  (Bug#47093)
2021-03-13 17:00:15 +02:00
Stefan Monnier
82e3acc9cd * src/keyboard.c parse_solitary_modifier): Accept click modifier 2021-03-12 14:33:41 -05:00
Glenn Morris
7c3ec4ef35 Merge from origin/emacs-27
fc83f37951 Fix initialization of 'while-no-input-ignore-events'
8f603da44c Update documentation of reading passwords
2021-03-12 08:47:41 -08:00
Glenn Morris
74c389526f Merge from origin/emacs-27
2c5f215419 Avoid crashes in Mew due to corrupted tool-bar label
7a23915618 * lisp/tooltip.el (tooltip): Doc fix for GTK.
c4bbe02cc4 * lisp/help.el (help-for-help-internal): Doc fix; use impe...

# Conflicts:
#	lisp/help.el
#	lisp/tooltip.el
2021-03-12 08:47:41 -08:00
Juri Linkov
b90c658492 Update docstrings of 'delete'/'remove' to interlink each other (bug#47054)
* lisp/subr.el (remove): Add xref to 'delete'.
* src/fns.c (Fdelete): Add xref to 'remove'.
2021-03-11 21:08:09 +02:00
Paul Eggert
b8bf62b60a On MS-Windows, fflush stderr after newline
Problem reported by Ioannis Kappas (Bug#46388).
* src/sysdep.c (errputc) [WINDOWSNT]: Flush stderr after newline.
2021-03-11 10:43:33 -08:00
Philipp Stephani
222d70333f * src/image.c (image_set_transform): Don't use ! for Lisp object. 2021-03-11 11:05:32 +01:00
Philipp Stephani
9ab51428cd * src/image.c (FRAME_SCALE_FACTOR): Define only when needed. 2021-03-11 11:04:57 +01:00
Basil L. Contovounesios
f695fdfef7 ; Fix US spelling in last change. 2021-03-10 23:28:28 +00:00
Alan Third
c93447eac6 Enable selectable image smoothing (bug#38394)
* lisp/doc-view.el (doc-view-insert-image): Always use smoothing in
docview.
* lisp/image-mode.el (image-transform-smoothing): New variable.
(image-mode-map): Add smoothing binding.
(image-transform-properties): Apply smoothing when requested.
(image-transform-set-smoothing): New function.
(image-transform-reset): Reset smoothing.
* src/image.c (image_set_transform): Use new :transform-smoothing
attribute.
(syms_of_image): Add :transform-smoothing attribute.
* doc/lispref/display.texi (Image Descriptors): Document new
:transform-smoothing property.
2021-03-10 21:40:42 +00:00
Paul Eggert
f97e07ea80 Port alternate signal stack to upcoming glibc 2.34
* src/sysdep.c (sigsegv_stack): Increase size to 64 KiB and align
it to max_align_t.  This copies from Gnulib’s c-stack.c, and works
around a portability bug in draft glibc 2.34, which no longer
defines SIGSTKSZ when _GNU_SOURCE is defined.
2021-03-09 11:26:33 -08:00
Stefan Monnier
c6ed17cc70 * src/buffer.c (Fbuffer_swap_text): Swap mark-active as well
This avoids undesirable situations where `mark-active` is set even
though the `mark` isn't.
2021-03-09 13:04:14 -05:00
Stefan Kangas
4a112fd7a6 Add new face 'help-key-binding' for keybindings in help
* lisp/faces.el (help-key-binding): New face.
* lisp/help.el
(help-for-help): Rename from 'help-for-help-internal'.  Use
'substitute-command-keys' syntax.
(help): Make into alias for 'help-for-help'.
(help-for-help-internal): Make into obsolete alias for
'help-for-help'.
(help--key-description-fontified): New function to add the
'help-key-binding' face.
(help-key-description, substitute-command-keys)
(describe-map-tree, help--describe-command)
(help--describe-translation, describe-map):
* lisp/help-fns.el (help-fns--key-bindings, describe-mode):
Use above new function.
* lisp/isearch.el (isearch-help-for-help-internal): Use
`substitute-command-keys' syntax.
* lisp/help-macro.el (make-help-screen): Use
'substitute-command-keys' and 'help--key-description-fontified'.
Simplify.
* src/keymap.c (describe_key_maybe_fontify): New function to add
the 'help-key-binding' face to keybindings.
(describe_vector): Use above new keybinding.
(syms_of_keymap) <Qfont_lock_face, Qhelp_key_binding>: New
DEFSYMs.
(fontify_key_properties): New static variable.
* lisp/tooltip.el (tooltip-show): Avoid overriding faces in
specified tooltip text.
* test/lisp/help-tests.el (with-substitute-command-keys-test):
Don't test for text properties.
(help-tests-substitute-command-keys/add-key-face)
(help-tests-substitute-command-keys/add-key-face-listing):
New tests.
2021-03-08 04:23:08 +01:00
Glenn Morris
d632622b5a Simplify silent-rules build machinery
* src/verbose.mk.in: New file.
* configure.ac (AM_V, AM_DEFAULT_V): Remove output variables.
(src/verbose.mk): New output file.
* Makefile.in, admin/charsets/Makefile.in:
* admin/grammars/Makefile.in, admin/unidata/Makefile.in:
* doc/emacs/Makefile.in, doc/lispintro/Makefile.in:
* doc/lispref/Makefile.in, doc/misc/Makefile.in, leim/Makefile.in:
* lib-src/Makefile.in, lib/Makefile.in, lisp/Makefile.in:
* lwlib/Makefile.in, nt/Makefile.in, oldXMenu/Makefile.in:
* src/Makefile.in, src/verbose.mk.in, test/Makefile.in:
Include src/verbose.mk rather than repeatedly defining AM_V_at etc.
2021-03-06 16:28:46 -08:00
Glenn Morris
9cbdf20316 * src/Makefile.in (base_obj): Remove GMP_OBJ, undefined since 202007. 2021-03-06 11:37:11 -08:00
Stefan Monnier
d582356a7f * src/fns.c (Frandom): Handle bignum limits
(ccall2, get_random_bignum): New functions.
2021-03-05 12:09:50 -05:00
Eli Zaretskii
fc83f37951 Fix initialization of 'while-no-input-ignore-events'
* src/keyboard.c (syms_of_keyboard_for_pdumper): Don't reset
'while-no-input-ignore-events' after loading the dump file.
(Bug#46940)
2021-03-05 14:42:22 +02:00
Matt Armstrong
6ff90ef0bb Call the set_buffer_overlays_ setters
* src/buffer.c (Fkill_buffer): Call set_buffer_overlays_before and
set_buffer_overlays_after instead of setting the fields directly
(bug#46914).
2021-03-04 21:12:00 +01:00
Stefan Monnier
6ad9b8d677 * src/eval.c (init_eval_once): Bump max_specpdl_size (bug46818)
Further testing seems to confirm my suspicion that the increase in the
specpdl comes from the recent change to `pcase--if`.

* lisp/international/mule-cmds.el (update-leim-list-file): Revert workaround.
2021-03-01 11:42:04 -05:00
Matt Armstrong
70514c6374 Clean up obsolete comment
* src/marker.c (unchain_marker): Clean up obsolete comment
(bug#46836).

Commit cf3164523b (* src/alloc.c: Avoid O(N²) complexity when
unchaining markers (bug#24548)., 2018-03-23) removed the call from GC
into unchain_marker, so there is no need to warn about it.
2021-03-01 14:26:21 +01:00
Eli Zaretskii
2c5f215419 Avoid crashes in Mew due to corrupted tool-bar label
* src/gtkutil.c (update_frame_tool_bar): Don't keep around a
'char *' pointer to a Lisp string's contents when calling Lisp,
because that could relocate string data; keep the Lisp string
itself instead.  This avoids crashes in Mew.  (Bug#46791)
2021-02-27 09:26:55 +02:00
Eli Zaretskii
6bf56a3614 Fix documentation of a recent change
* src/fns.c (Fyes_or_no_p): Don't use braces around one-line
block.
(syms_of_fns) <use-short-answers>: Improve the wording of the doc
string.
* etc/NEWS: Improve wording of the entry about 'use-short-answers'.
2021-02-25 20:58:44 +02:00
Juri Linkov
297c0e0306 New variable 'use-short-answers' to use 'y-or-n-p' instead of 'yes-or-no-p'
* lisp/cus-start.el: Add use-short-answers.

* lisp/emacs-lisp/map-ynp.el (read-answer): Handle use-short-answers.
(read-answer-short): Add use-short-answers to docstring.

* src/fns.c (Fyes_or_no_p): Call y-or-n-p if use_short_answers is true.
(syms_of_fns): Add DEFVAR_BOOL use-short-answers (bug#46594).
2021-02-25 20:45:40 +02:00
Alan Third
056b468f74 Fix freeze on older macOS's (bug#46687)
* src/nsterm.m ([EmacsView windowDidChangeBackingProperties:]):
([EmacsView viewWillDraw]): Only run this code when actually drawing
to an offscreen bitmap.
2021-02-25 17:58:59 +00:00
Robert Pluim
d84d69dfbc Don't crash if gnutls_handshake fails
In some situations involving Internet access not being fully
functional, gnutls_handshake returns a fatal error, which we were
ignoring, causing us to call gnutls_handshake again.  Now we check for
the error and return it to the caller.

* src/gnutls.c (gnutls_try_handshake): Return immediately if
gnutls_handshake returns a fatal error (Bug#46709).
2021-02-25 16:44:43 +01:00
Robert Pluim
a1673d3296 ; * src/xfaces.c (realize_gui_face): Correct formatting
* src/xfaces.c (realize_gui_face): Correct code formatting.
2021-02-25 16:44:43 +01:00
Eli Zaretskii
ac45f31454 Fix dangerous code in xdisp.c
* src/xdisp.c (move_it_to, display_line): Make sure ZV_BYTE is
greater than 1 before fetching previous byte.
2021-02-24 17:55:28 +02:00
Eli Zaretskii
eef185dfc8 Better support for 'truncate-line' non-nil in the mini-window
* src/xdisp.c (resize_mini_window): Resize the mini-window
when multi-line text is displayed under	truncate-lines
non-nil in the minibuffer.  (Bug#46718)
2021-02-24 17:43:08 +02:00
Stefan Kangas
7466b10346 Improve wrong number of args error message in propertize
* src/editfns.c (Fpropertize): Improve error message.
(syms_of_editfns) <Qpropertize>: New DEFSYM.
* test/src/editfns-tests.el
(propertize/error-wrong-number-of-args): New test.
2021-02-22 11:56:12 +01:00
Mattias Engdegård
d0c47652e5 Faster, more compact, and readable closure creation
Simplify closure creation by calling a single function at run time
instead of putting it together from small pieces.  This is faster
(by about a factor 2), takes less space on disk and in memory, and
makes internal functions somewhat readable in disassembly listings again.

This is done by creating a prototype function at compile-time whose
closure variables are placeholder values V0, V1... which can be seen
in the disassembly.  The prototype is then cloned at run time using
the new make-closure function that replaces the placeholders with
the actual closure variables.

* lisp/emacs-lisp/bytecomp.el (byte-compile-make-closure):
Generate call to make-closure from a prototype function.
* src/alloc.c (Fmake_closure): New function.
(syms_of_alloc): Defsubr it.
* src/data.c (syms_of_data): Defsym byte-code-function-p.
2021-02-21 21:58:25 +01:00
Alan Third
e6842038c9 Fix memory leak
* src/nsterm.m ([EmacsSurface dealloc]): Release will remove all
objects and free the memory.
2021-02-20 20:42:11 +00:00
Lars Ingebrigtsen
12578d6aca Change how (declare (modes store the data
* lisp/emacs-lisp/byte-run.el (byte-run--set-modes): Change from
being a predicate to storing the modes.  This allows using the
modes for positive command discovery, too.
* src/data.c (Fcommand_modes): Look at the `command-modes' symbol
property, too.
2021-02-20 14:29:41 +01:00
Alan Third
283f98353f Fix frame contents scaling bug on macOS (bug#46155)
Discussion in bug#46406.

* src/nsterm.m ([EmacsView focusOnDrawingBuffer:]): Set the scale
factor for the backing layer.
2021-02-19 19:37:02 +00:00
Glenn Morris
1d50050af7 Merge from origin/emacs-27
8e8b46ef81 (origin/emacs-27) More accurate documentation of the "r" i...
dcb2015a5b Mention the GNU Kind Communications Guidelines in the FAQ
9882e63eea ; * CONTRIBUTE: Another wording change regarding tiny chan...
850f18ef23 Allow newlines in password prompts again in comint
c977370dd7 Avoid point movement when visiting image files
da64a257a4 ; * CONTRIBUTE: Yet another clarification of significant c...
d03f2a6ee9 Avoid assertion violation in callproc.c
dcc00bbb19 ; * CONTRIBUTE: Clarify the "15-lines" rule a bit more.
2021-02-19 08:36:56 -08:00
Glenn Morris
07b22b6b5d Merge from origin/emacs-27
4712c75ab8 Clarify when activate-mark-hook is run
abedf3a865 Fix language-environment and font selection on MS-Windows
8b8708eadd Fix example in Sequence Functions node in the manual
2021-02-19 08:36:55 -08:00
Mattias Engdegård
de15ca7d00 Fix typos
* doc/lispref/display.texi (Size of Displayed Text):
* doc/lispref/windows.texi (Buffer Display Action Functions):
* etc/NEWS:
* etc/ORG-NEWS (Org-Attach has been refactored and extended):
* lisp/battery.el (display-battery-mode, battery--upower-subsribe):
* lisp/calendar/parse-time.el:
* lisp/dired-x.el:
* lisp/emacs-lisp/chart.el (chart-sequece, chart-bar-quickie):
* lisp/emacs-lisp/eldoc.el (eldoc-echo-area-use-multiline-p)
(eldoc-documentation-strategy):
* lisp/emacs-lisp/pcase.el (pcase--split-pred, pcase--u1):
* lisp/gnus/gnus-search.el (gnus-search-expandable-keys)
(gnus-search-parse-query, gnus-search-query-return-string)
(gnus-search-imap, gnus-search-imap-search-command)
(gnus-search-transform-expression):
* lisp/gnus/nnselect.el:
* lisp/isearch.el (isearch-lazy-count-format):
* lisp/mh-e/mh-show.el (mh-show-msg):
* lisp/net/dictionary-connection.el (dictionary-connection-open):
* lisp/net/dictionary.el (dictionary-default-popup-strategy)
(dictionary, dictionary-split-string, dictionary-do-select-dictionary)
(dictionary-display-dictionarys, dictionary-search)
(dictionary-tooltip-mode):
* lisp/net/eudcb-macos-contacts.el (eudc-macos-contacts-set-server):
* lisp/net/mailcap.el (mailcap-mime-data):
* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
* lisp/nxml/nxml-mode.el (nxml-mode):
* lisp/progmodes/cc-engine.el:
* lisp/progmodes/cperl-mode.el (cperl-mode)
(cperl-fontify-syntaxically):
* lisp/progmodes/flymake.el (flymake-diagnostic-functions):
* lisp/progmodes/verilog-mode.el (verilog--supressed-warnings)
(verilog-preprocess):
* lisp/simple.el (self-insert-uses-region-functions):
* lisp/textmodes/bibtex.el (bibtex-copy-summary-as-kill):
* lisp/textmodes/texnfo-upd.el (texinfo-insert-master-menu-list):
* src/dispnew.c:
* src/font.c (Ffont_get):
* src/indent.c (compute_motion):
* src/process.c (init_process_emacs):
* src/w32fns.c (deliver_wm_chars):
* test/lisp/jsonrpc-tests.el (deferred-action-complex-tests):
Fix typos in documentation, comments, and internal identifiers.
2021-02-18 16:50:55 +01:00
Basil L. Contovounesios
1abf3ae854 Pacify unused function warning in xfns.c with GTK2
* src/xfns.c (x_get_net_workarea, x_get_monitor_for_frame)
(x_make_monitor_attribute_list, x_get_monitor_attributes_fallback):
[HAVE_XINERAMA] (x_get_monitor_attributes_xinerama)
[HAVE_XRANDR] (x_get_monitor_attributes_xrandr)
(x_get_monitor_attributes): Fix #ifdefs around definitions to avoid
unused function warnings regardless of GTK use (bug#46509).
[HAVE_XRANDR] (x_get_monitor_attributes_xrandr): Undefine
RANDR13_LIBRARY after it's been used.
2021-02-16 16:46:53 +00:00
Lars Ingebrigtsen
0bd846c174 Rename minor-modes to local-minor-modes
* doc/lispref/modes.texi (Minor Modes): Update documentation.
* lisp/simple.el (completion-with-modes-p): Change usage.

* lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Change usage.

* src/buffer.c: Rename from minor_modes to local_minor_modes
throughout.
(syms_of_buffer): Rename minor-modes to local-minor-modes.

* src/buffer.h (struct buffer): Rename minor_modes_.

* src/pdumper.c (dump_buffer): Update hash and usage.
2021-02-15 13:08:21 +01:00
Eli Zaretskii
1c229d939b * src/xdisp.c (move_it_to): Fix last change. (Bug#46316) 2021-02-14 22:11:05 +02:00
Lars Ingebrigtsen
a4c8b6e7c6 Fix dumping of buffers after minor_modes was added
* src/pdumper.c (dump_buffer): Set minor_modes to nil before dumping.
2021-02-14 14:00:51 +01:00
Lars Ingebrigtsen
8cdb61679e Revert the bit about command_modes in previous patch set
* src/data.c (Fcommand_modes): Remove the subr bit -- it's not
necessary since it can just use a predicate.
* src/lisp.h (GCALIGNED_STRUCT): Remove command_modes.

* src/lread.c (defsubr): Remove command_modes.
2021-02-14 13:57:59 +01:00
Lars Ingebrigtsen
58e0c8ee86 Extend the syntax of `interactive' to list applicable modes
* doc/lispref/commands.texi (Using Interactive): Document the
extended `interactive' form.
* doc/lispref/loading.texi (Autoload): Document list-of-modes
form.

* lisp/emacs-lisp/autoload.el (make-autoload): Pick the list of
modes from `interactive' out of the functions.

* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Allow for the
extended `interactive' form.

* src/callint.c (Finteractive): Document the extended form.

* src/data.c (Finteractive_form): Return the interactive form in
the old format (even when there's an extended `interactive') to
avoid having other parts of Emacs be aware of this.
(Fcommand_modes): New defun.

* src/emacs-module.c (GCALIGNED_STRUCT): Allow for modules to
return command modes.

* src/lisp.h: New function module_function_command_modes.
2021-02-14 13:21:24 +01:00
Lars Ingebrigtsen
760910f491 Add a new buffer-local variable `minor-modes'
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Keep
`minor-modes' updated.
* src/buffer.c (bset_minor_modes, Fmake_indirect_buffer)
(reset_buffer, init_buffer_once): Initialise `minor-modes'.
(syms_of_buffer): Add `minor-modes' as a new permanently-local
variable.

* src/buffer.h (struct buffer): Add minor_modes_.
2021-02-14 12:37:44 +01:00
Alan Third
68bd6f3ea9 Fix flicker when resizing NS frame programmatically (bug#46155)
; Incidentally fixes bug#21326.

* src/nsterm.m ([EmacsView viewWillDraw]): New function.
([EmacsView viewDidResize:]): We now have to mark the frame for
display on resize.
([EmacsView initFrameFromEmacs:]): Retain frame contents on resize.
([EmacsView updateLayer]): Don't update the layer if the frame is
still garbaged.
2021-02-13 22:41:25 +00:00