Fix bug#22891: wrong terminal width when a fringe width is zero.
When either fringe width is zero, Emacs reserved one column for a continuation glyph. Terminal windows does not take this into account when the frame is resized. * lisp/window.el (window-adjust-process-window-size): Use `window-max-chars-per-line' instead of `window-body-width'. * lisp/term.el (term-window-width): Remove function. (It does the same as `window-max-chars-per-line' but without recent bug fixes.) (term-mode): Use `window-max-chars-per-line' instead of `term-window-width'.
This commit is contained in:
parent
07d729130e
commit
5b54032898
2 changed files with 3 additions and 16 deletions
15
lisp/term.el
15
lisp/term.el
|
@ -919,19 +919,6 @@ is buffer-local."
|
|||
|
||||
(term-set-escape-char (or term-escape-char ?\C-c))
|
||||
|
||||
(defvar overflow-newline-into-fringe)
|
||||
|
||||
(defun term-window-width ()
|
||||
(if (and (not (featurep 'xemacs))
|
||||
(display-graphic-p)
|
||||
overflow-newline-into-fringe
|
||||
;; Subtract 1 from the width when any fringe has zero width,
|
||||
;; not just the right fringe. Bug#18601.
|
||||
(/= (frame-parameter nil 'left-fringe) 0)
|
||||
(/= (frame-parameter nil 'right-fringe) 0))
|
||||
(window-body-width)
|
||||
(1- (window-body-width))))
|
||||
|
||||
|
||||
(put 'term-mode 'mode-class 'special)
|
||||
|
||||
|
@ -1018,7 +1005,7 @@ Entry to this mode runs the hooks on `term-mode-hook'."
|
|||
(setq buffer-display-table term-display-table)
|
||||
(set (make-local-variable 'term-home-marker) (copy-marker 0))
|
||||
(set (make-local-variable 'term-height) (1- (window-height)))
|
||||
(set (make-local-variable 'term-width) (term-window-width))
|
||||
(set (make-local-variable 'term-width) (window-max-chars-per-line))
|
||||
(set (make-local-variable 'term-last-input-start) (make-marker))
|
||||
(set (make-local-variable 'term-last-input-end) (make-marker))
|
||||
(set (make-local-variable 'term-last-input-match) "")
|
||||
|
|
|
@ -8560,10 +8560,10 @@ WINDOWS is a list of windows associated with PROCESS. REDUCER is
|
|||
a two-argument function used to combine the widths and heights of
|
||||
the given windows."
|
||||
(when windows
|
||||
(let ((width (window-body-width (car windows)))
|
||||
(let ((width (window-max-chars-per-line (car windows)))
|
||||
(height (window-body-height (car windows))))
|
||||
(dolist (window (cdr windows))
|
||||
(setf width (funcall reducer width (window-body-width window)))
|
||||
(setf width (funcall reducer width (window-max-chars-per-line window)))
|
||||
(setf height (funcall reducer height (window-body-height window))))
|
||||
(cons width height))))
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue