Merge from origin/emacs-27
06364316e0
(origin/emacs-27) * lisp/net/tramp.el (tramp-file-local-na...d3884f50e0
Adapt commentary in Tramp persistency file2d82f5a44e
Change Tramp version to 2.4.3.27.109b65707cc
; * 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:
commit
fa7148fd5a
10 changed files with 84 additions and 30 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))))))))))
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ()
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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 ();
|
||||
}
|
||||
|
||||
|
|
|
@ -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. */
|
||||
|
|
65
src/xdisp.c
65
src/xdisp.c
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue