Merge from origin/emacs-27

06364316e0 (origin/emacs-27) * lisp/net/tramp.el (tramp-file-local-na...
d3884f50e0 Adapt commentary in Tramp persistency file
2d82f5a44e Change Tramp version to 2.4.3.27.1
09b65707cc ; * src/dispnew.c (adjust_glyph_matrix): Fix last change.
37f9182b68 Fix redisplay when mode-line-format changes mode-line's he...
1420906b81 * src/fileio.c (Fwrite_region): Improve the doc string.
01dfcb7c87 Fix removal of frame decorations on Windows (Bug#38705)
This commit is contained in:
Glenn Morris 2020-01-03 07:50:15 -08:00
commit fa7148fd5a
10 changed files with 84 additions and 30 deletions

View file

@ -8,7 +8,7 @@
@c In the Tramp GIT, the version numbers are auto-frobbed from
@c tramp.el, and the bug report address is auto-frobbed from
@c configure.ac.
@set trampver 2.4.3
@set trampver 2.4.3.27.1
@set tramp-bug-report-address tramp-devel@@gnu.org
@set emacsver 24.4

View file

@ -2725,6 +2725,9 @@ See also `toggle-frame-maximized'."
line-prefix
wrap-prefix
truncate-lines
mode-line-format
header-line-format
tab-line-format
display-line-numbers
display-line-numbers-width
display-line-numbers-current-absolute

View file

@ -474,7 +474,7 @@ used to cache connection properties of the local machine."
tramp-persistency-file-name))
(error "\n"))
";; Tramp connection history. Don't change this file.\n"
";; You can delete it, forcing Tramp to reapply the checks.\n\n"
";; Run `M-x tramp-cleanup-all-connections' instead.\n\n"
(with-output-to-string
(pp (read (format "(%s)" (tramp-cache-print cache)))))))))))

View file

@ -1329,6 +1329,25 @@ entry does not exist, return nil."
(string-match-p tramp-file-name-regexp name)
t))
;; This function bypasses the file name handler approach. It is NOT
;; recommended to use it in any package if not absolutely necessary,
;; because it won't work for remote file names not supported by Tramp.
;; However, it is more performant than `file-local-name', and might be
;; useful where performance matters, like in operations over a bulk
;; list of file names.
(defun tramp-file-local-name (name)
"Return the local name component of NAME.
This function removes from NAME the specification of the remote
host and the method of accessing the host, leaving only the part
that identifies NAME locally on the remote system. NAME must be
a string that matches `tramp-file-name-regexp'. The returned
file name can be used directly as argument of process-file,
start-file-process, or shell-command."
(save-match-data
(and (tramp-tramp-file-p name)
(string-match (nth 0 tramp-file-name-structure) name)
(match-string (nth 4 tramp-file-name-structure) name))))
(defun tramp-find-method (method user host)
"Return the right method string to use depending on USER and HOST.
This is METHOD, if non-nil. Otherwise, do a lookup in

View file

@ -39,7 +39,7 @@
(defvar inhibit-message)
;;;###tramp-autoload
(defconst tramp-version "2.4.3"
(defconst tramp-version "2.4.3.27.1"
"This version of Tramp.")
;;;###tramp-autoload
@ -73,7 +73,7 @@
;; Check for Emacs version.
(let ((x (if (not (string-lessp emacs-version "24.4"))
"ok"
(format "Tramp 2.4.3 is not fit for %s"
(format "Tramp 2.4.3.27.1 is not fit for %s"
(replace-regexp-in-string "\n" "" (emacs-version))))))
(unless (string-equal "ok" x) (error "%s" x)))
@ -92,7 +92,8 @@
("2.2.13.25.1" . "25.1") ("2.2.13.25.2" . "25.2")
("2.2.13.25.2" . "25.3")
("2.3.3" . "26.1") ("2.3.3.26.1" . "26.1") ("2.3.5.26.2" . "26.2")
("2.3.5.26.3" . "26.3")))
("2.3.5.26.3" . "26.3")
("2.4.3.27.1" . "27.1")))
(add-hook 'tramp-unload-hook
(lambda ()

View file

@ -534,6 +534,14 @@ adjust_glyph_matrix (struct window *w, struct glyph_matrix *matrix, int x, int y
eassert (left >= 0 && right >= 0);
matrix->left_margin_glyphs = left;
matrix->right_margin_glyphs = right;
/* If we are resizing a window, make sure the previous mode-line
row of the window's current matrix is no longer marked as such. */
if (w && matrix == w->current_matrix
&& matrix->nrows > 0
&& dim.height != matrix->nrows
&& matrix->nrows <= matrix->rows_allocated)
MATRIX_MODE_LINE_ROW (matrix)->mode_line_p = false;
}
/* Number of rows to be used by MATRIX. */

View file

@ -4975,6 +4975,7 @@ Optional fourth argument APPEND if non-nil means
Optional fifth argument VISIT, if t or a string, means
set the last-save-file-modtime of buffer to this file's modtime
and mark buffer not modified.
If VISIT is t, the buffer is marked as visiting FILENAME.
If VISIT is a string, it is a second file name;
the output goes to FILENAME, but the buffer is marked as visiting VISIT.
VISIT is also the file name to lock and unlock for clash detection.

View file

@ -2146,6 +2146,9 @@ w32_set_undecorated (struct frame *f, Lisp_Object new_value, Lisp_Object old_val
| SWP_FRAMECHANGED);
FRAME_UNDECORATED (f) = false;
}
f->output_data.w32->dwStyle = GetWindowLong (hwnd, GWL_STYLE);
unblock_input ();
}

View file

@ -371,6 +371,10 @@ struct w32_output
/* Non-hourglass cursor that is currently active. */
HCURSOR current_cursor;
/* The window style for this frame. Set up when the frame is
created and updated when adding/removing decorations in
w32_set_undecorated. Used by w32_set_window_size to adjust the
frame's window rectangle. */
DWORD dwStyle;
/* This is the Emacs structure for the display this frame is on. */

View file

@ -1093,44 +1093,59 @@ window_box_height (struct window *w)
/* Note: the code below that determines the mode-line/header-line/tab-line
height is essentially the same as that contained in the macro
CURRENT_{MODE,HEADER}_LINE_HEIGHT, except that it checks whether
the appropriate glyph row has its `mode_line_p' flag set,
and if it doesn't, uses estimate_mode_line_height instead. */
CURRENT_{MODE,HEADER,TAB}_LINE_HEIGHT, except that it checks whether
the appropriate glyph row has its `mode_line_p' flag set, and if
it doesn't, uses estimate_mode_line_height instead. */
if (window_wants_mode_line (w))
{
struct glyph_row *ml_row
= (w->current_matrix && w->current_matrix->rows
? MATRIX_MODE_LINE_ROW (w->current_matrix)
: 0);
if (ml_row && ml_row->mode_line_p)
height -= ml_row->height;
if (w->mode_line_height >= 0)
height -= w->mode_line_height;
else
height -= estimate_mode_line_height (f, CURRENT_MODE_LINE_FACE_ID (w));
{
struct glyph_row *ml_row
= (w->current_matrix && w->current_matrix->rows
? MATRIX_MODE_LINE_ROW (w->current_matrix)
: 0);
if (ml_row && ml_row->mode_line_p)
height -= ml_row->height;
else
height -= estimate_mode_line_height (f,
CURRENT_MODE_LINE_FACE_ID (w));
}
}
if (window_wants_tab_line (w))
{
struct glyph_row *tl_row
= (w->current_matrix && w->current_matrix->rows
? MATRIX_TAB_LINE_ROW (w->current_matrix)
: 0);
if (tl_row && tl_row->mode_line_p)
height -= tl_row->height;
if (w->tab_line_height >= 0)
height -= w->tab_line_height;
else
height -= estimate_mode_line_height (f, TAB_LINE_FACE_ID);
{
struct glyph_row *tl_row
= (w->current_matrix && w->current_matrix->rows
? MATRIX_TAB_LINE_ROW (w->current_matrix)
: 0);
if (tl_row && tl_row->mode_line_p)
height -= tl_row->height;
else
height -= estimate_mode_line_height (f, TAB_LINE_FACE_ID);
}
}
if (window_wants_header_line (w))
{
struct glyph_row *hl_row
= (w->current_matrix && w->current_matrix->rows
? MATRIX_HEADER_LINE_ROW (w->current_matrix)
: 0);
if (hl_row && hl_row->mode_line_p)
height -= hl_row->height;
else
height -= estimate_mode_line_height (f, HEADER_LINE_FACE_ID);
if (w->header_line_height >= 0)
height -= w->header_line_height;
{
struct glyph_row *hl_row
= (w->current_matrix && w->current_matrix->rows
? MATRIX_HEADER_LINE_ROW (w->current_matrix)
: 0);
if (hl_row && hl_row->mode_line_p)
height -= hl_row->height;
else
height -= estimate_mode_line_height (f, HEADER_LINE_FACE_ID);
}
}
/* With a very small font and a mode-line that's taller than