Po Lu [Sat, 3 Sep 2022 13:39:30 +0000 (21:39 +0800)]
Work around another X server bug in crossing event dispatch
* src/xterm.c (xi_focus_handle_for_device): Clear implicit focus
along with FocusOut. (bug#57468)
(x_mouse_leave): Avoid invalid reads of
dpyinfo->x_focus_event_frame on input extension builds.
Po Lu [Sat, 3 Sep 2022 11:55:31 +0000 (19:55 +0800)]
Work around potential X server bug
* src/xterm.c (handle_one_xevent): Ignore core crossing events
on input extension builds. The X server is not actually
supposed to deliver them to us, and it messes up MPX focus
tracking. (bug#57468)
Stefan Kangas [Wed, 31 Aug 2022 03:59:35 +0000 (05:59 +0200)]
Add new defgroup image-dired-dired
* lisp/image/image-dired-dired.el
(image-dired-dired-append-when-browsing): Rename from
'image-dired-append-when-browsing'. Update all uses.
(image-dired-dired): New defgroup.
(image-dired-dired-append-when-browsing)
(image-dired-dired-disp-props): Use above new defgroup.
Stefan Kangas [Wed, 31 Aug 2022 03:52:11 +0000 (05:52 +0200)]
image-dired: Minor cleanups
* lisp/image/image-dired-dired.el
(image-dired-dired-after-readin-hook, image-dired-minor-mode):
Minor doc fixes.
(image-dired-dired-display-image): Don't accept ineffectual prefix
argument.
* lisp/image/image-dired-util.el
(image-dired-file-name-at-point): Use when-let.
(image-dired-display-thumb-properties): Redefine as obsolete function
alias for 'image-dired-update-header-line'.
* lisp/image/image-dired-util.el
(image-dired-window-width-pixels): Make obsolete in favor of
window-body-width.
* lisp/image/image-dired.el (image-dired-line-up-dynamic)
(image-dired-display-window-width): Don't use above obsolete function.
Stefan Kangas [Fri, 19 Aug 2022 19:14:13 +0000 (21:14 +0200)]
Split image-dired.el into several files (part 2/2)
Use a git trick to split a file while preserving line history (for
"git blame", "git log --follow", etc.):
1) Make exact copies of the original file, in the same commit as
moving it.
2) Next, trim down the extra copies to contain only the relevant
parts. [this commit]
* lisp/image-dired.el:
* lisp/image/image-dired-dired.el:
* lisp/image/image-dired-external.el:
* lisp/image/image-dired-tags.el:
* lisp/image/image-dired-util.el:
* lisp/image/image-dired.el: Trim files down to keep only one copy of
each definition.
Stefan Kangas [Thu, 1 Sep 2022 09:04:21 +0000 (11:04 +0200)]
Make some versions in docs match package version
* doc/emacs/misc.texi (Interactive Shell): Bump Emacs version.
* doc/misc/ediff.texi:
* doc/misc/flymake.texi:
* doc/misc/viper.texi: Fix version to match package.
* lisp/emulation/viper.el: Make version match variable.
Display a warning for some uses of nil in face attributes.
* src/xfaces.c (HANDLE_INVALID_NIL_VALUE): New macro, which displays
a warning for invalid uses of nil as a face attribute value.
(Finternal_set_lisp_face_attribute): Use the macro for the attributes
:foreground, :distant-foreground and :background.
Stefan Monnier [Fri, 2 Sep 2022 13:54:13 +0000 (09:54 -0400)]
* lisp/help-fns.el: Minor fixes
(describe-mode--minor-modes): Don't burp on minor modes that lack a docstring.
(describe-mode--minor-modes): Simplify eta-redex.
(find-lisp-object-file-name): Use `autoload-file`.
(help-fns--describe-function-or-command-prompt): Allow the user to
insist on choosing a function even if it appears not to exist.
* lisp/textmodes/ispell.el (ispell-look-p): Make obsolete.
(ispell-lookup-words): Look up the look command at run time
instead (bug#50852).
(ispell-have-new-look): Make obsolete.
(ispell-look-options): Adjust. Apparently the version of "look"
that had a "-r" (regexp interface) never took off -- it's not
present in GNU/Linux or Macos, at least, as far as we can tell.
Robert Pluim [Fri, 2 Sep 2022 09:15:43 +0000 (11:15 +0200)]
Use frame-monitor-attributes in gamegrid
* lisp/play/gamegrid.el (gamegrid-calculate-glyph-size): Use
`frame-monitor-attributes' to get the frame attributes directly
instead of iterating over `display-monitor-attributes-list'.
Po Lu [Fri, 2 Sep 2022 09:19:29 +0000 (17:19 +0800)]
Prevent crashes when embedding Emacs in a nonexistent parent
* src/xfns.c (x_window, Fx_create_frame): Handle X errors while
trying to reparent the frame onto an explicitly specified
parent.
* src/xterm.c (handle_one_xevent): Handle unparenting embedded
windows correctly. This only works if the embedder is aware of
the fixes extension and has put the window into the right save
set.
(x_embed_frame): New function.
* src/xterm.h (FRAME_X_EMBEDDED_P): Fix coding style.
Robert Pluim [Thu, 1 Sep 2022 16:10:58 +0000 (18:10 +0200)]
Make single char entry easier for `describe-char-fold-equivalences'
* lisp/char-fold.el (describe-char-fold-equivalences): Improve
docstring. Pass t for 'allow-single' arg in call to
`read-char-by-name' so that single characters can be entered directly.
Stefan Kangas [Thu, 1 Sep 2022 09:04:21 +0000 (11:04 +0200)]
Make some versions in docs match package version
* doc/emacs/misc.texi (Interactive Shell): Bump Emacs version.
* doc/misc/ediff.texi:
* doc/misc/flymake.texi:
* doc/misc/viper.texi: Fix version to match package.
* lisp/emulation/viper.el: Make version match variable.
Stefan Kangas [Thu, 1 Sep 2022 04:17:37 +0000 (06:17 +0200)]
Merge from origin/emacs-28
8807a4f532 Enable 256 colors in fbterm. bbc23ca8ab One more fix for find-file.el 0cbcaf5119 ; Yet another doc fix for 'ff-other-file-alist' (bug#57325) 2d9a391727 Recommend using fbterm in the Linux console. a5a92e577c ; * src/window.c (syms_of_window) <window-point-insertion-... 4d52fe6b96 * lisp/find-file.el (ff-other-file-alist): Doc fix. (Bug#... d111b5b651 * lisp/info.el (Info-mode): Support the Linux console better. cc945ec0ed ; Fix doc strings in latin1-disp.el 195fcc932e Improve the documentation of glyphless-character display 72ae02377e ; * lisp/jit-lock.el (jit-lock-chunk-size): Doc fix. 3fb69fad49 Fix documentation of 'glyphless-char-display'
Jim Porter [Wed, 31 Aug 2022 16:47:43 +0000 (09:47 -0700)]
Don't fail Eshell ERT tests when an internal signal gets raised
* test/lisp/eshell/esh-proc-tests.el
(esh-proc-test/pipeline-connection-type/middle)
(esh-proc-test/pipeline-connection-type/last): Set 'debug-on-error' to
nil.
Alan Mackenzie [Wed, 31 Aug 2022 18:46:06 +0000 (18:46 +0000)]
C++ Mode: Fontify functions correctly with commas in template expressions
This fixes bug #57318.
Also apply an optimization which marks generic expressions as already
analyzed, thus avoiding repeating this analysis when not needed. This
optimization prevents the fix slowing down scrolling when the C++ source has
lots of template structures.
* lisp/progmodes/cc-engine.el (top-level) Near the beginning of the file, add
a comment describing the new text property c-<>-c-types-set.
(c-update-brace-stack): Bind c-restricted-<>-arglists to nil rather than t
around the call to c-forward-<>-arglist.
(c-forward-<>-arglist-recur): Allow the abbreviated analysis of a generic
expression also when the opening < is marked with a c-<>-c-types-set text
property. Set this property at the same time as the c-type properties are set
on the commas inside the template structure.
* lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare): Clear the
c-<>-c-types-set text property, along with c-type, from the region being
fontified.
Robert Pluim [Wed, 31 Aug 2022 16:08:49 +0000 (18:08 +0200)]
Fix describe-char-fold-equivalences for composed characters
* lisp/char-fold.el (describe-char-fold-equivalences): Map
`get-char-code-property' across all the component codepoints of the
equivalent character rather than just the first one.
Po Lu [Wed, 31 Aug 2022 02:17:20 +0000 (10:17 +0800)]
Gently nudge Xt into always setting size hints
* src/widget.c (update_wm_hints): Force a resource to change
every time this function is called. (bug#57475)
(EmacsFrameInitialize): Initialize new field.
* src/widgetprv.h (EmacsFramePart): New field `size_switch'.
* src/xterm.c (x_wm_set_size_hint): Don't change flags if flags
is 0.
Stefan Monnier [Tue, 30 Aug 2022 21:55:03 +0000 (17:55 -0400)]
t-mouse.el: Make sure we apply the setting to new terminals
* lisp/t-mouse.el (gpm-mouse-tty-setup): New function.
(gpm-mouse-mode): Use it as well as `tty-setup-hook`.
* lisp/term/linux.el (terminal-init-linux): Remove gpm-specific code,
not neded any more.
Eli Zaretskii [Tue, 30 Aug 2022 16:09:00 +0000 (19:09 +0300)]
One more fix for find-file.el
* lisp/find-file.el (ff-get-file-name): Use 'expand-file-name'
instead of 'concat', which doesn't DTRT with absolute file names.
(ff-other-file-alist): Yet another doc fix. (Bug#57325)
Po Lu [Tue, 30 Aug 2022 11:27:39 +0000 (19:27 +0800)]
Fix junk data being returned with incremental selection transfers
* src/xselect.c (receive_incremental_selection): New arg
REAL_BYTES_RET. Set it to the actual size instead of using the
size of the array after it was grown by xpalloc.
(x_get_window_property_as_lisp_data): Adjust call to
receive_incremental_selection.
Juri Linkov [Tue, 30 Aug 2022 07:28:34 +0000 (10:28 +0300)]
* lisp/char-fold.el (describe-char-fold-equivalences): New command.
(char-fold--no-regexp): New internal variable.
(char-fold--make-table): Use it to skip translation to regexp.
Suggested by Robert Pluim <rpluim@gmail.com>.
https://lists.gnu.org/archive/html/emacs-devel/2022-07/msg00864.html
Eli Zaretskii [Mon, 29 Aug 2022 13:52:07 +0000 (16:52 +0300)]
Fix point adjustment in recreated *Messages* buffers
* lisp/startup.el (normal-top-level): Move setting of
'window-point-insertion-type' from here...
* lisp/simple.el (messages-buffer-mode): ...to here. This is so
any *Messages* buffers we create instead of the original one, if
it's killed, will have the same type of the window-point marker.
(Bug#57466)