diff options
author | Anders Lindgren <andlind@gmail.com> | 2016-04-26 20:58:52 +0200 |
---|---|---|
committer | Anders Lindgren <andlind@gmail.com> | 2016-04-26 20:58:52 +0200 |
commit | 5b5403289888efe8783ae6a405845b925f544ec1 (patch) | |
tree | 1fb6846e55de662653e8af049154a1af4c1a2953 | |
parent | 07d729130e5774fc484ba324d9149d4c6f008260 (diff) | |
download | emacs-5b5403289888efe8783ae6a405845b925f544ec1.tar.gz |
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'.
-rw-r--r-- | lisp/term.el | 15 | ||||
-rw-r--r-- | lisp/window.el | 4 |
2 files changed, 3 insertions, 16 deletions
diff --git a/lisp/term.el b/lisp/term.el index 2d5d3e96000..28be8c8c530 100644 --- a/lisp/term.el +++ b/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) "") diff --git a/lisp/window.el b/lisp/window.el index e086efb594d..9f63e86ce95 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -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)))) |