1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 12:21:25 -08:00
Commit graph

43936 commits

Author SHA1 Message Date
Mattias Engdegård
7c22aa36cd Eliminate some GCC warnings
* src/doprnt.c (exprintf, evxprintf):
* src/lisp.h (exprintf, evxprintf): Don't use a pointer-to-const type
for the `nonheapbuf` argument: although it is never dereferenced, GCC
will warn when passing a pointer to uninitialised memory otherwise.
* src/fns.c (sort_vector_copy, realize_face, realize_gui_face)
(realize_tty_face): Use the same signatures in the prototypes as in
the actual function definitions.
2021-06-16 18:05:41 +02:00
Mattias Engdegård
706e186581 * src/xdisp.c (gui_draw_bottom_divider): Fix misleading indentation. 2021-06-16 11:37:00 +02:00
Pip Cet
d9698faa34 Prepare pdumper dump file in memory, write it in one go (Bug#46881)
* src/pdumper.c (struct dump_context): Add buf, buf_size, max_offset fields.
(dump_grow_buffer): New function.
(dump_write): Use memcpy, not an actual emacs_write.
(dump_seek): Keep track of maximum seen offset. Don't actually seek.
(Fdump_emacs_portable): Write out the file contents when done.
2021-06-16 09:44:32 +02:00
Lars Ingebrigtsen
81fd5603ce Add a new function syntax-class-to-char
* doc/lispref/syntax.texi (Syntax Table Internals): Document it.
* src/syntax.c (Fsyntax_class_to_char): New function (bug#37452).
2021-06-15 17:01:57 +02:00
Eli Zaretskii
bad87a162c ; * src/fileio.c (Fsubstitute_in_file_name): Doc fix. 2021-06-13 15:52:17 +03:00
Lars Ingebrigtsen
c4fcf2fc6f Fsubstitute_in_file_name doc string clarification
* src/fileio.c (Fsubstitute_in_file_name): Mention that undefined
variables aren't replaced (as opposed to what happens in a shell
substitution) (bug#40949).
2021-06-13 14:14:32 +02:00
Matt Beshara
57950515ec Add ability to bring only the selected frame to the front (bug#48865)
Causes ‘ns-hide-emacs’ to layer the selected frame in front of every other
application’s windows, and give that frame keyboard focus, when called with
'activate-front.

* src/nsfns.m (Fns_hide_emacs): Allow activating only selected frame.
2021-06-12 10:10:51 +01:00
Martin Rudalics
b3dd0ce75b Provide new option `delete-window-set-selected' (Bug#47300)
When `delete-window' deletes its frame's selected window, this new
option allows to choose another window as replacement.

* lisp/window.el (get-lru-window, get-mru-window)
(get-largest-window): New optional argument NO-OTHER.
(window-at-pos): New function.
(delete-window-set-selected): New option.
(delete-window): Handle `delete-window-set-selected'.
* src/window.c (Fdelete_window_internal): Set the selected
window of WINDOW's frame to the first window on that frame and
let `delete-window' choose a more suitable window instead.
* doc/lispref/windows.texi (Deleting Windows): Describe new
option `delete-window-set-selected'.
(Cyclic Window Ordering): Describe new NO-OTHER argument for
`get-lru-window', `get-mru-window' and `get-largest-window'.
* etc/NEWS: Mention `delete-window-set-selected' and the NO-OTHER
argument.
2021-06-10 09:14:21 +02:00
Alan Third
ff65ea932c Remove pause on fullscreening in NS (bug#48406)
* src/nsterm.m (ns_make_frame_visible):
(ns_set_parent_frame):
([EmacsView windowWillEnterFullScreen:]):
([EmacsView windowDidEnterFullScreen:]):
([EmacsView windowWillExitFullScreen:]):
([EmacsView initFrameFromEmacs:]): Remove references to
in_fullscreen_transition.
([EmacsView toggleFullScreen:]): Remove calls to removed methods.
([EmacsView inFullScreenTransition]):
([EmacsView waitFullScreenTransition]): Remove Methods.
* src/nsterm.h (EmacsView): Remove defintions of removed methods, and
the in_fullscreen_transition variable.
2021-06-09 19:22:03 +01:00
Alan Third
fb62846b68 Fix image filename encoding issues (bug#48902)
* src/image.c (image_find_image_fd): Don't return an encoded filename
string.
* src/nsfns.m: ([NSString stringWithLispString:]): Clarify usage
comment.
* src/nsimage.m ([EmacsImage allocInitFromFile:]): No need to encode
the filename when converting to NSString.
2021-06-09 12:54:58 +01:00
Glenn Morris
bef3070ab8 Merge from origin/emacs-27
37f4457994 (origin/emacs-27) ; Fix typo in dynamic module functions d...
f7d4bbceee ; * src/composite.h: Improve comments for LGSTRING and LGL...
2021-06-08 07:50:36 -07:00
Alan Third
f7d98dbba0 Revert "src/nsterm.m: fix window tabbing on macOS"
This reverts commit 2207f9adcc.
2021-06-07 23:16:15 +01:00
Eli Zaretskii
69a65212a2 * src/xdisp.c (Fwindow_text_pixel_size): Plug memory leak. (Bug#48884) 2021-06-07 15:03:06 +03:00
Paul W. Rankin
2207f9adcc src/nsterm.m: fix window tabbing on macOS
* src/nsterm.m: remove NSWindowTabbingModeDisallowed to respect
  system-wide preferences
* etc/NEWS: add mention of native tab support in macOS and where
  to specify system-wide setting
2021-06-06 10:08:54 +01:00
Stefan Monnier
c9424189fc * src/keyboard.c (read_decoded_event_from_main_queue): Fix paren typo 2021-06-05 11:57:57 -04:00
Max Mikhanosha
515eb69895 Support terminal emulators that encode the Meta modifier as 8th bit
See discussion starting at

 https://lists.gnu.org/archive/html/emacs-devel/2021-06/msg00034.html

for the details.
* src/keyboard.c (read_decoded_event_from_main_queue): For
raw-text encoed input, if Meta bit is encoded, apply the Meta
modifier to single-byte characters that have the 0x80 bit set.
For input encoded otherwise, if the Meta bit is encoded, remove
the 0x80 bit after decoding the characters.
(tty_read_avail_input): Reset the 0x80 bit only if Meta bit is not
encoded.
(Fset_input_meta_mode): Support 'encoded' as the value of META.
(Fset_input_mode): Document 'encoded' for META.
(Fcurrent_input_mode): Support and document 'encoded' as the value
of META.
(syms_of_keyboard): DEFSYM 'encoded'.
2021-06-05 16:57:43 +03:00
Eli Zaretskii
f93f3b80dd Fix slow operation of 'string-width'
* src/composite.c (find_automatic_composition): Accept one
additional argument BACKLIM; don't look back in buffer or string
farther than that.  Add an assertion for BACKLIM.
(composition_adjust_point, Ffind_composition_internal): Callers
adjusted.
* src/composite.h (find_automatic_composition): Adjust prototype.
* src/character.c (lisp_string_width): Call
'find_automatic_composition' with the value of BACKLIM equal to POS,
to avoid costly and unnecessary search back in the string, since
those previous characters were already checked for automatic
compositions.  (Bug#48734)  (Bug#48839)
2021-06-05 14:16:06 +03:00
Eli Zaretskii
c3b44858dc Fix fill-column-indicator on TTY frames
* src/xdisp.c (extend_face_to_end_of_line): Fix calculation of
fill-column-indicator on TTY frames.  Suggested by Jimmy Aguilar
Mena <spacibba@aol.com>.
2021-06-03 17:45:12 +03:00
Lars Ingebrigtsen
d08067d362 Cross-reference the message/error control variables
* src/keyboard.c (syms_of_keyboard): Mention set-message-function
in the command-error-function doc string...

* src/xdisp.c (syms_of_xdisp): ... and vice versa (bug#13752).
2021-06-03 09:29:55 +02:00
Eli Zaretskii
f7d4bbceee ; * src/composite.h: Improve comments for LGSTRING and LGLYPH. 2021-06-02 17:50:57 +03:00
Eli Zaretskii
09081ca119 Fix a typo in 'produce_glyphless_glyph'
* src/xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
Remove workaround for lack of its initialization.  (Bug#8215)
2021-06-02 16:14:14 +03:00
Alan Third
246e107d73 Improve performance of NS port's display on macOS
* src/nsterm.h: Update EmacsSurface definition.
* src/nsterm.m ([EmacsView focusOnDrawingBuffer]): Don't change the
CGContext's settings directly.
([EmacsView unfocusDrawingBuffer]): Don't release the context here.
(CACHE_MAX_SIZE): Add maximum cache size.
([EmacsView updateLayer]): Send a request for getContext, which will
copy the buffer and create the context if it doesn't already exist, to
the NS run loop.
([EmacsSurface initWithSize:ColorSpace:Scale:]): Add the scale factor
and if there's already a CGContext available, reuse it.
([EmacsSurface dealloc]): No longer need to release lastSurface
separately.
([EmacsSurface getContext]): Don't create more surfaces than we have
spaces for in the cache.
([EmacsSurface releaseContext]): If there's no context don't try to
release it and put currentSurface back on the cache instead of
lastSurface.
([EmacsSurface copyContentsTo:]): Don't try to copy if the source and
destination are actually the same surface.
2021-06-01 19:51:21 +01:00
Alan Mackenzie
2ee5ce208f Make frames record when their selected window was the mini-window
When a frame in this state is selected again by Fselect_frame (but not by
Fselect_window), the mini-window rather than the frame's currently selected
window, is chosen for selection, should there still be an active minibuffer in
it.

This fixes bug #48674.

* src/frame.h (struct frame): Add new boolean field select_mini_window_flag.

* src/frame.c (make_frame): Initialize select_mini_window_flag to false.
(do_switch_frame): Set the new flag appropriately for the old frame, and
process the new frame's setting of this flag, before setting it to false.

* src/window.c (select_window): Set f->select_mini_window_flag to false.
(Fset_frame_selected_window, Fdelete_other_windows_internal)
(Fdelete_window_internal): Add comments clarifying that there is no clearing
of f->select_mini_window_flag in these functions.
2021-05-31 16:24:11 +00:00
Glenn Morris
63e9a4b1e1 * src/keyboard.c (make_lispy_event): Fix previous. 2021-05-31 08:40:26 -07:00
Alan Mackenzie
6e2d3bce08 Correct mouse handling when window origin changes between down and up events
Do this by using frame relative positions rather than window relative ones,
which gave rise to spurious drag events when the origin of the window changed
between the mouse down and up events.  This fixes bug #48409.

* keyboard.c (frame_relative_event_pos): New static variable.
(make_lispy_event): Record frame relative position of down event.  When the up
event is in the same position, "move" this event into the window of the down
event when this window (typically a mini-window) is no longer under the mouse.
Call make_lispy_position a second time to generate this changed event.
(syms_of_keyboard): Declare Qwindow_edges.  static_pro
frame_relative_event_pos.
2021-05-31 10:33:10 +00:00
Lars Ingebrigtsen
77f67d12f6 Add new convenience function `buffer-local-boundp'
* doc/lispref/variables.texi (Creating Buffer-Local): Document it.
* lisp/subr.el (buffer-local-boundp): New function.

* src/data.c (Flocal_variable_p): Mention it.
2021-05-31 07:21:09 +02:00
Eli Zaretskii
23ad0f0c5a Don't account for character compositions in 'format' and friends
'lisp_string_width' is called from 'format' and 'format-message',
which can be called both very early into Emacs initialization and in
other contexts where using the font backend is impossible or
undesirable.  So this commit changes 'lisp_string_width' to try
accounting for automatic compositions only when explicitly requested,
and only 'string-width' does that; 'format' and 'format-message'
don't.
* src/character.c (lisp_string_width): Accept an additional
argument AUTO_COMP; attempt accounting for auto-compositions only
if that argument is non-zero.  (Bug#48732)
* src/editfns.c (styled_format):
* src/character.c (Fstring_width): Callers of 'lisp_string_width'
adjusted.
2021-05-30 11:16:59 +03:00
Lars Ingebrigtsen
fdfb3df92a `minibuffer-exit-hook' doc string clarification
* src/minibuf.c (syms_of_minibuf): `minibuffer-exit-hook' is run
in the minubuffer usually, so don't claim that it's run after
(bug#16524).
2021-05-30 07:06:48 +02:00
Gregory Heytings
bd5c740419 Fix key recording bug when an input method is activated
* lisp/international/quail.el (quail-add-unread-command-events):
New function.
(quail-start-translation, quail-start-conversion)
(quail-update-translation, quail-next-translation)
(quail-prev-translation, quail-next-translation-block)
(quail-prev-translation-block, quail-minibuffer-message): Use
'quail-add-unread-command-events' (and partly revert commit
03e3440dbb).  (Bug#48042)

* lisp/subr.el (inhibit--record-char): Now obsolete.

* lisp/term/xterm.el (xterm--init): New function, with most of the
code of former 'terminal-init-xterm'.
(terminal-init-xterm): Clear the lossage after terminal
initialization (see Bug#44908).
(xterm--read-event-for-query): Do not use 'inhibit--record-char'
anymore (revert commit 3e6525d69f).

* src/keyboard.c (syms_of_keyboard): Remove 'inhibit--record-char'
(partly revert 03e3440dbb).
(record_char, syms_of_keyboard_for_pdumper): Do not use
'inhibit_record_char anymore'.
2021-05-29 11:05:33 +03:00
Lars Ingebrigtsen
cee502ea18 Improve the file-accessible-directory-p doc strin
* src/fileio.c (Ffile_accessible_directory_p): Don't use the
phrase "directory name spec", which isn't defined (bug#18201).
2021-05-29 06:02:13 +02:00
Philipp Stephani
a52f572e62 ; * src/Makefile.in: Fix typo. 2021-05-28 16:56:17 +02:00
Eli Zaretskii
6d916bfb37 Another stability fix in 'lisp_string_width'
* src/character.c (lisp_string_width): Compute C pointer to data
of STRING immediately before using it, since STRING could be
relocated by GC triggered by processing compositions.  (Bug#48711)
2021-05-28 14:03:16 +03:00
Eli Zaretskii
3fe2f482bd Attempt to fix segfaults caused by changes in 'lisp_string_width'
* src/character.c (lisp_string_width): Validate the value of TO
argument before passing it to 'composition_gstring_width'.
(Bug#48711)
2021-05-28 10:25:26 +03:00
Eli Zaretskii
f1c3b82d40 ; * src/character.c (lisp_string_width): Another defensive fix. 2021-05-27 17:15:53 +03:00
Eli Zaretskii
0d0e6143e7 * src/character.c (lisp_string_width): Fix a typo in recent change. 2021-05-27 16:51:56 +03:00
Eli Zaretskii
d3817ad6ce Fix resolution of symlinks during dumping
* src/comp.c (Fcomp_el_to_eln_rel_filename): Don't use
'file-truename', as it is only available once files.el is loaded,
which doesn't work during dumping, until loadup loads files.el.
Instead, use 'realpath'.  (Bug#48578)
* src/w32.c (realpath): New function.
* src/w32.h (realpath): Add prototype.

* nt/mingw-cfg.site (ac_cv_func_realpath)
(gl_cv_func_realpath_works): Define to "yes", as this function is
now implemented in w32.c.
2021-05-27 16:31:14 +03:00
Eli Zaretskii
b8e8f13383 * src/character.c (lisp_string_width): Fix last change. 2021-05-27 15:29:12 +03:00
Mattias Engdegård
de45864cf7 Fix lexing of numbers with trailing decimal point and exponent
Numbers with a trailing dot and an exponent were incorrectly read as
integers (with the exponent ignored) instead of the floats they should
be.  For example, 1.e6 was read as the integer 1, not 1000000.0 as
every sane person would agree was meant. (Bug#48678)

Numbers with a trailing dot but no exponent are still read as
integers.

* src/lread.c (string_to_number): Fix float lexing.
* test/src/lread-tests.el (lread-float): Add test.
* doc/lispref/numbers.texi (Float Basics): Clarify syntax.
2021-05-27 14:16:28 +02:00
Philipp Stephani
501296f994 * src/character.c (lisp_string_width): Add missing type checks. 2021-05-27 12:44:09 +02:00
Eli Zaretskii
c82afdcc88 A better fix for 'string-width'
* src/character.c (lisp_string_width): Compute the width when
automatic compositions can happen more accurately, by using the
pixel widths of the grapheme clusters, divided by the default
face's font width.  Disregard the current state of
'auto-composition-mode', for consistency with 'current-column' .
2021-05-27 12:24:29 +03:00
Eli Zaretskii
85da7b57bc Make 'string-width' auto-composition aware
* src/composite.c (find_automatic_composition): Now extern.
(char_composable_p): Don't assume 'unicode-category-table' is
always available.
* src/composite.h (find_automatic_composition): Add prototype.
* src/character.c (lisp_string_width): Support automatic
compositions; call 'find_automatic_composition' when
'auto-composition-mode' is ON.
2021-05-26 20:08:47 +03:00
Filipp Gunbin
d5d4e82691 * src/sysdep.c (system_process_attributes): Fix misspelled Qttname for FreeBSD 2021-05-26 17:20:55 +03:00
Filipp Gunbin
6d51805154 Improve system_process_attributes on macOS (Bug#48548)
* src/sysdep.c (system_process_attributes): Fix misprint in 'tty' attr
- should be 'ttname' instead.  Change 'utime', 'stime', 'time',
'majflt' attrs to obtain them from proc_pid_rusage, as sysctl call
used before doesn't give correct values; remove 'minflt' because it's
not available.  Obtain 'vsize' / 'rss' / 'thcount' from proc_pidinfo.
Use sysctl with KERN_PROCARGS2 to obtain args: value contains both
argc and argv, so argv can be reliably cut out.
2021-05-26 16:15:03 +03:00
Eli Zaretskii
dd79a5050a Fix documentation of a recent change
* src/process.c (syms_of_process) <process-prioritize-lower-fds>:
Doc fix.

* etc/NEWS: Reword the entry for 'process-prioritize-lower-fds'.
2021-05-25 22:29:11 +03:00
Miha Rihtaršič
0c7a7433dc Try to not prioritise reading from lower file descriptors
* src/process.c (wait_reading_process_output): When looping through
fds, continue from where we left off.
(syms_of_process): Vprocess_prioritize_lower_fds: New variable
(bug#48118).
2021-05-25 21:01:58 +02:00
Gregory Heytings
740d424547 Consider all user-defined bitmaps in gui_init_fringe()
* src/fringe.c (gui_init_fringe): Consider user-defined bitmaps
that override default ones (bug#47832).
2021-05-25 06:21:03 +02:00
Juri Linkov
c60d707f2c * src/editfns.c (Finsert_char): Add docstring reference to read-char-by-name. 2021-05-22 23:52:19 +03:00
Glenn Morris
048dc9441e Merge from origin/emacs-27
30e5d93ee1 (origin/emacs-27) Improve documentation of display tables
8804ac857b * src/buffer.c (syms_of_buffer) <ctl-arrow>: Doc fix.  (Bu...
2021-05-22 09:19:01 -07:00
Andrea Corallo
3f207753a0 * Fix ahead-of-time native compilation for out-of-tree builds (bug#48497)
* src/comp.c (Fcomp_el_to_eln_rel_filename): Expand
'PATH_DUMPLOADSEARCH' while computing 'loadsearch_re_list'.
2021-05-21 08:49:25 +02:00
Eli Zaretskii
8804ac857b * src/buffer.c (syms_of_buffer) <ctl-arrow>: Doc fix. (Bug#48539) 2021-05-21 09:37:47 +03:00