Merge from origin/emacs-26

070e82b ; * src/window.c (window_scroll): Improve commentary.
60457d7 Improve documentation of the window tree
ea1a014 Fix window scrolling on TTY frames when there's no mode line
df7ed10 Fix decoding XML files encoded in ISO-8859
7851ae8 (tag: emacs-26.1.90) ; ChangeLog.3 update
1958808 * etc/AUTHORS: Update.
7252507 Fix description of some window hooks
88762b4 Run 'window--adjust-process-windows' when frame size changes ...
d6542ea Avoid errors in zone.el when there's overlay at EOB
This commit is contained in:
Glenn Morris 2018-11-20 09:38:42 -08:00
commit bb7b75d711
8 changed files with 160 additions and 47 deletions

View file

@ -1,3 +1,104 @@
2018-11-18 Martin Rudalics <rudalics@gmx.at>
Fix description of some window hooks
* doc/lispref/windows.texi (Window Hooks): Remove text that
warns against using 'save-window-excursion' while running
'window-size-change-functions', it's no more relevant.
Clarify description of 'window-configuration-change-hook'.
2018-11-18 Gary Fredericks <fredericksgary@gmail.com> (tiny change)
Run 'window--adjust-process-windows' when frame size changes (Bug#32720)
* lisp/window.el (window-size-change-functions): Run
'window--adjust-process-windows' from
'window-size-change-functions' too (Bug#32720, "another issue"
in Bug#33230).
2018-11-16 Eli Zaretskii <eliz@gnu.org>
Avoid errors in zone.el when there's overlay at EOB
* lisp/play/zone.el (zone): Make sure the window-end position
is calculated accurately, to avoid errors from
buffer-substring. (Bug#33384)
2018-11-16 Eli Zaretskii <eliz@gnu.org>
Document Emacs 26 behavior of Dired's 'Z' on directories
* doc/emacs/dired.texi (Operating on Files): Document behavior
of 'Z' on directories.
* etc/NEWS: Belatedly announce the new behavior of Dired's 'Z'
on directory names and on .tar.gz archives.
2018-11-15 Eli Zaretskii <eliz@gnu.org>
Fix a typo in the Emacs manual
* doc/emacs/rmail.texi (Rmail Deletion): Fix a typo.
Reported by Jorge P. de Morais Neto <jorge+list@disroot.org>
in emacs-manual-bugs@gnu.org
2018-11-15 Paul Eggert <eggert@cs.ucla.edu>
Fix tempfile creation when byte compiling
This improves on the recent fix for master failing to build
on FreeBSD. Suggested by Stefan Monnier in:
https://lists.gnu.org/r/emacs-devel/2018-01/msg00600.html
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
Put tempfile next to the target file, as was the original intent.
(cherry picked from commit 64c846738617d1d037eac0cefb6586c04317b0a1)
2018-11-14 Markus Triska <triska@metalevel.at>
Small documentation correction.
* doc/lispref/windows.texi (Textual Scrolling): In the description of
scroll-up-aggressively, refer to scroll-down-aggressively instead of
a recursive reference to scroll-up-aggressively. (Bug#33369)
2018-11-14 Eli Zaretskii <eliz@gnu.org>
* src/coding.c (Fcheck_coding_systems_region): Doc fix. (Bug#33372)
2018-11-14 Michael Albinus <michael.albinus@gmx.de>
Fix Bug#33364
* lisp/net/tramp.el (tramp-parse-sconfig-group): Support also
"Host host1 host2 ..." syntax. (Bug#33364)
2018-11-13 Michael Albinus <michael.albinus@gmx.de>
* test/README: Explain $REMOTE_TEMPORARY_FILE_DIRECTORY.
2018-11-12 Glenn Morris <rgm@gnu.org>
Avoid kill-emacs-hook errors hanging batch mode
* src/emacs.c (Fkill_emacs): Prevent errors from kill-emacs-hook
hanging Emacs in batch mode. (Bug#29955)
(cherry picked from commit 109da684c5124e22505917fe0255ca66f2a6bfc9)
2018-11-12 Nicolas Petton <nicolas@petton.fr>
Bump Emacs version to 26.1.90
* README:
* configure.ac:
* msdos/sed2v2.inp:
* nt/README.W32: Bump Emacs version to 26.1.90.
2018-11-12 Nicolas Petton <nicolas@petton.fr>
* etc/AUTHORS: Update.
2018-11-12 Paul Eggert <eggert@cs.ucla.edu>
Work around dumping bug on GNU/Linux ppc64le
@ -63347,7 +63448,7 @@
This file records repository revisions from
commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to
commit 1d79c2ebd9bd9aa36586e57463502373c0296d11 (inclusive).
commit 72525076996cd709086b1afb47ab0d095322e9b7 (inclusive).
See ChangeLog.1 for earlier changes.
;; Local Variables:

View file

@ -198,12 +198,13 @@ relationships between live windows. The root node of a window tree is
called the @dfn{root window}. It can be either a live window (if the
frame has just one window), or an internal window.
A minibuffer window (@pxref{Minibuffer Windows}) is not part of its
frame's window tree unless the frame is a minibuffer-only frame.
Nonetheless, most of the functions in this section accept the
minibuffer window as an argument. Also, the function
@code{window-tree} described at the end of this section lists the
minibuffer window alongside the actual window tree.
A minibuffer window (@pxref{Minibuffer Windows}) that is not alone
on its frame does not have a parent window, so it strictly speaking is
not part of its frame's window tree. Nonetheless, it is a sibling
window of the frame's root window, and thus can be reached via
@code{window-next-sibling}. Also, the function @code{window-tree}
described at the end of this section lists the minibuffer window
alongside the actual window tree.
@defun frame-root-window &optional frame-or-window
This function returns the root window for @var{frame-or-window}. The
@ -6037,26 +6038,24 @@ size and has to check out these windows by using the method described
in the previous paragraph.
These function are usually only called when at least one window was
added or has changed size since the last time this hook was run for the
associated frame. In some rare cases this hook also runs when a window
that was added intermittently has been deleted afterwards. In these
cases none of the windows on the frame will appear to have changed its
size.
You may use @code{save-selected-window} in these functions
(@pxref{Selecting Windows}). However, do not use
@code{save-window-excursion} (@pxref{Window Configurations}); exiting
that macro counts as a size change, which would cause these functions to
be called again.
added or has changed size since the last time this hook was run for
the associated frame. In some rare cases this hook also runs when a
window that was added intermittently has been deleted afterwards. In
these cases none of the windows on the frame will appear to have
changed its size.
@end defvar
@defvar window-configuration-change-hook
A normal hook that is run every time the window configuration of a frame
changes. Window configuration changes include splitting and deleting
windows, and the display of a different buffer in a window. Resizing the
frame or individual windows do not count as configuration changes. Use
@code{window-size-change-functions}, see above, when you want to track
size changes that are not caused by the deletion or creation of windows.
A normal hook that is run every time the window configuration of a
frame changes. Window configuration changes include splitting and
deleting windows, and the display of a different buffer in a window.
The hook can be also used for tracking changes of window sizes. It
is, however, not run when the size of a frame changes or automatic
resizing of a minibuffer window (@pxref{Minibuffer Windows}) changes
the size of another window. As a rule, adding a function to
@code{window-size-change-functions}, see above, is the recommended way
for reliably tracking size changes of any window.
The buffer-local value of this hook is run once for each window on the
affected frame, with the relevant window selected and its buffer

View file

@ -1658,6 +1658,8 @@ Gary Delp: wrote mailpost.el (public domain)
Gary D. Foster: wrote crisp.el scroll-all.el
and changed gnus-group.el gnus-topic.el
Gary Fredericks: changed window.el
Gary Howell: changed server.el
Gary Oberbrunner: changed gud.el
@ -3124,7 +3126,7 @@ Markus Triska: wrote linum.el
and changed bytecomp.el byte-opt.el doctor.el image-mode.el
processes.texi calc-math.el emacs.c expand.el flymake.el flymake.texi
flyspell.el handwrite.el internals.texi proced.el prolog.el ps-mode.el
speedbar.el subr.el tumme.el widget.texi xterm.c
speedbar.el subr.el tumme.el widget.texi windows.texi xterm.c
Mark W. Eichin: changed keyboard.c xterm.c
@ -3584,8 +3586,8 @@ Nicolas Graner: changed message.el
Nicolas Petton: wrote map-tests.el map.el seq-tests.el seq.el
thunk-tests.el thunk.el
and co-wrote auth-source-pass.el auth-source-tests.el subr-tests.el
and changed sequences.texi README configure.ac sed2v2.inp authors.el
emacs.png README.W32 emacs23.png arc-mode.el cl-extra.el emacs.svg
and changed README sequences.texi configure.ac sed2v2.inp authors.el
README.W32 emacs.png emacs23.png arc-mode.el cl-extra.el emacs.svg
manoj-dark-theme.el Emacs.icns HISTORY Makefile.in auth-source.el
emacs.ico fns.c make-tarball.txt obarray-tests.el obarray.el
and 35 other files

View file

@ -2501,7 +2501,11 @@ This function is intended to be added to `auto-coding-functions'."
(let ((sym-type (coding-system-type sym))
(bfcs-type
(coding-system-type buffer-file-coding-system)))
(if (and (coding-system-equal 'utf-8 sym-type)
;; 'charset' will signal an error in
;; coding-system-equal, since it isn't a
;; coding-system. So test that up front.
(if (and (not (equal sym-type 'charset))
(coding-system-equal 'utf-8 sym-type)
(coding-system-equal 'utf-8 bfcs-type))
buffer-file-coding-system
sym))

View file

@ -109,7 +109,7 @@ If the element is a function or a list of a function and a number,
(save-window-excursion
(let ((f (selected-frame))
(outbuf (get-buffer-create "*zone*"))
(text (buffer-substring (window-start) (window-end)))
(text (buffer-substring (window-start) (window-end nil t)))
(wp (1+ (- (window-point)
(window-start)))))
(put 'zone 'orig-buffer (current-buffer))

View file

@ -9353,8 +9353,15 @@ displaying that processes's buffer."
(when size
(set-process-window-size process (cdr size) (car size))))))))))
;; Remove the following call in Emacs 27, running
;; 'window-size-change-functions' should suffice.
(add-hook 'window-configuration-change-hook 'window--adjust-process-windows)
;; Catch any size changes not handled by
;; 'window-configuration-change-hook' (Bug#32720, "another issue" in
;; Bug#33230).
(add-hook 'window-size-change-functions (lambda (_frame)
(window--adjust-process-windows)))
;; Some of these are in tutorial--default-keys, so update that if you
;; change these.

View file

@ -4970,25 +4970,21 @@ window_wants_header_line (struct window *w)
: 0);
}
/* Return number of lines of text (not counting mode lines) in W. */
/* Return number of lines of text in window W, not counting the mode
line and header line, if any. Do NOT use this for windows on GUI
frames; use window_body_height instead. This function is only for
windows on TTY frames, where it is much more efficient. */
int
window_internal_height (struct window *w)
{
int ht = w->total_lines;
if (!MINI_WINDOW_P (w))
{
if (!NILP (w->parent)
|| WINDOWP (w->contents)
|| !NILP (w->next)
|| !NILP (w->prev)
|| window_wants_mode_line (w))
--ht;
if (window_wants_mode_line (w))
--ht;
if (window_wants_header_line (w))
--ht;
}
if (window_wants_header_line (w))
--ht;
return ht;
}
@ -5017,8 +5013,8 @@ window_scroll (Lisp_Object window, EMACS_INT n, bool whole, bool noerror)
if (whole && Vfast_but_imprecise_scrolling)
specbind (Qfontification_functions, Qnil);
/* If we must, use the pixel-based version which is much slower than
the line-based one but can handle varying line heights. */
/* On GUI frames, use the pixel-based version which is much slower
than the line-based one but can handle varying line heights. */
if (FRAME_WINDOW_P (XFRAME (XWINDOW (window)->frame)))
window_scroll_pixel_based (window, n, whole, noerror);
else

View file

@ -93,12 +93,14 @@ struct window
/* The frame this window is on. */
Lisp_Object frame;
/* Following (to right or down) and preceding (to left or up) child
at same level of tree. */
/* Following (to right or down) and preceding (to left or up)
child at same level of tree. Whether this is left/right or
up/down is determined by the 'horizontal' flag, see below.
A minibuffer window has the frame's root window pointed by 'prev'. */
Lisp_Object next;
Lisp_Object prev;
/* The window this one is a child of. */
/* The window this one is a child of. For a minibuffer window: nil. */
Lisp_Object parent;
/* The normal size of the window. These are fractions, but we do
@ -113,7 +115,9 @@ struct window
Lisp_Object new_normal;
Lisp_Object new_pixel;
/* May be buffer, window, or nil. */
/* For a leaf window: a buffer; for an internal window: a window;
for a pseudo-window (such as menu bar or tool bar): nil. It is
a buffer for a minibuffer window as well. */
Lisp_Object contents;
/* A marker pointing to where in the text to start displaying.