From unknown Mon Aug 18 09:06:12 2025 X-Loop: help-debbugs@gnu.org Subject: bug#52561: 28.0.50; [PATCH] Tall characters create scrolling stasis Resent-From: dick.r.chiang@gmail.com Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 16 Dec 2021 23:02:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 52561 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 52561@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs Received: via spool by submit@debbugs.gnu.org id=B.16396956851133 (code B ref -1); Thu, 16 Dec 2021 23:02:01 +0000 Received: (at submit) by debbugs.gnu.org; 16 Dec 2021 23:01:25 +0000 Received: from localhost ([127.0.0.1]:37147 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mxzka-0000IC-L7 for submit@debbugs.gnu.org; Thu, 16 Dec 2021 18:01:25 -0500 Received: from lists.gnu.org ([209.51.188.17]:59492) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mxzkY-0000I4-E3 for submit@debbugs.gnu.org; Thu, 16 Dec 2021 18:01:23 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46400) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxzkY-0003ef-3Q for bug-gnu-emacs@gnu.org; Thu, 16 Dec 2021 18:01:22 -0500 Received: from [2607:f8b0:4864:20::735] (port=38909 helo=mail-qk1-x735.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mxzkN-0005oF-HJ for bug-gnu-emacs@gnu.org; Thu, 16 Dec 2021 18:01:14 -0500 Received: by mail-qk1-x735.google.com with SMTP id l25so478945qkl.5 for ; Thu, 16 Dec 2021 15:01:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:user-agent:mime-version; bh=gskrqvWdoI+/P/l8or7VAhf9075KVSsUMSy203uTPTA=; b=LBzgM82bgmA7xlzc3g1naufPOuKOQt6KuZUaS18BUiTylZr9Q958T+UmmZpq8hBOZK w0YX0qGMFc9SEM1WvIABUvy8AKzXCpvWwPaCWvGtO99iIQGTS/eZ7h+KlR0QYkgp7H1s xVetRU9IYG0rvqbol4SIZA9+VfMxr82Oqh0tqXao6lDs3OsLebgPijxe5G+AkwH76G3j O1hj2A1a056/HExfogAg7s9N+fm4TyAQYI4CAXfAG7QFBIYub5EV0tonwNaCO1awznlt 4b0mDtxWdyYDG2z16rlWG+hAbfTz/YR78iLDViPHOhMpXC30/JYgvws0zw2I6+SaJ0J3 t/ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:user-agent :mime-version; bh=gskrqvWdoI+/P/l8or7VAhf9075KVSsUMSy203uTPTA=; b=0NE8BxRyetwfK+vrp8Zzr1UdIJplBMQ1qGACdS5x9luOi4kouiZJJ9z/yiBzRcNGMX qQyrxWXRRdI8Qs00KZioW9hFTNNKGn1eK5oRrBQ7Q8i46uoTj2sJDsUI4gSlF5MIOgbV AK0iS8U+JUqaOV4RK7pCifLw7hXazLwCWgGbWZims9zm1SQI9N49VUHKW2UFCYjSoKWX IGYCWeIzdVc7olOv1m2U4OQIzBYu4iMK2WruwEirRdMKsFs2Vn1c1Xn/kQe5aUWjbjTJ j6+xfzvNOoOO+Fn5LSsliQSergE6nU369n24O3qKazmi97oD8O4wBIpAgYOAKqowCu9o Jwcg== X-Gm-Message-State: AOAM533W6IQCmuV0uMeQM/VOkASVuWe8zbKxBTQeKGPH1rGtf+8Ub3oU B9yOdxZquQ5LiOqNbdV66/Sf2w3O5KM= X-Google-Smtp-Source: ABdhPJyOv/Q/Kdtr6gVBeiqa0DOe5oz+FjXpPNLfuObrHu998I8LAjzKrvEQ+iMFBo0NydS6VaxNQA== X-Received: by 2002:a37:70d:: with SMTP id 13mr178410qkh.399.1639695670373; Thu, 16 Dec 2021 15:01:10 -0800 (PST) Received: from localhost ([68.237.93.126]) by smtp.gmail.com with ESMTPSA id g5sm3845907qko.12.2021.12.16.15.01.09 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 16 Dec 2021 15:01:09 -0800 (PST) From: dick.r.chiang@gmail.com Date: Thu, 16 Dec 2021 18:01:08 -0500 Message-ID: <87mtl0b1e3.fsf@dick> User-Agent: Gnus/5.14 (Gnus v5.14) Commercial/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::735 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::735; envelope-from=dick.r.chiang@gmail.com; helo=mail-qk1-x735.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.9 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable After this prints "all bad", try M-v (scroll-down). emacs-27.2 -Q --eval \ "(progn \ (switch-to-buffer \"xdisp-tests--scroll-down-leaves-cursor-behind\") \ (insert \"=C3=93scar\" \"\n\") \ (dotimes (_ (/ (1+ (window-pixel-height)) (line-pixel-height))) \ (insert \"line\" \"\n\")) \ (goto-char (point-max)) \ (redisplay) \ (scroll-down) \ (redisplay) \ (princ (format \"all %s\n\" (if (=3D (window-start) 1) \"good\" \"bad\= ")) \ (function external-debugging-output)))" --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: inline; filename=0001-Tall-characters-create-scrolling-stasis.patch Content-Transfer-Encoding: quoted-printable >From 8c6b54f2853d21f52fb729688436c0f765d7cbfe Mon Sep 17 00:00:00 2001 From: dickmao Date: Thu, 16 Dec 2021 17:55:05 -0500 Subject: [PATCH] Tall characters create scrolling stasis * lisp/emacs-lisp/multisession.el (multisession--set-value-sqlite): You gotta do what you gotta do. * src/xdisp.c (redisplay_window): VPOS is a screen line measure; Y is a pixel measure. * test/lisp/emacs-lisp/multisession-tests.el (multi-test--on-conflict-p): You gotta do what you gotta do. (multi-test-sqlite-simple): You gotta do what you gotta do. (multi-test-sqlite-busy): You gotta do what you gotta do. (multi-test-files-simple): You gotta do what you gotta do. (multi-test-files-busy): You gotta do what you gotta do. (multi-test-files-some-values): You gotta do what you gotta do. * test/src/xdisp-tests.el (xdisp-tests--scroll-down-leaves-cursor-behind): Test scrolling stasis bug. --- lisp/emacs-lisp/multisession.el | 2 + src/xdisp.c | 33 ++++------ test/lisp/emacs-lisp/multisession-tests.el | 77 ++++++++++++++-------- test/src/xdisp-tests.el | 18 +++++ 4 files changed, 81 insertions(+), 49 deletions(-) diff --git a/lisp/emacs-lisp/multisession.el b/lisp/emacs-lisp/multisession= .el index 17c9384134..5c77ac9a81 100644 --- a/lisp/emacs-lisp/multisession.el +++ b/lisp/emacs-lisp/multisession.el @@ -223,6 +223,8 @@ multisession--set-value-sqlite (condition-case nil (ignore (read-from-string pvalue)) (error (error "Unable to store unreadable value: %s" pvalue))) + ;; I get near "ON" syntax error with 3.22.0 + ;; https://stackoverflow.com/a/51531835/5132008 (sqlite-execute multisession--db "insert into multisession(package, key, sequence, value) values(?, = ?, 1, ?) on conflict(package, key) do update set sequence =3D sequence + 1,= value =3D ?" diff --git a/src/xdisp.c b/src/xdisp.c index 5e549c9c63..65632ff167 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -18921,7 +18921,7 @@ redisplay_window (Lisp_Object window, bool just_thi= s_one_p) if (w->force_start) { /* We set this later on if we have to adjust point. */ - int new_vpos =3D -1; + int new_y =3D -1; =20 w->force_start =3D false; w->vscroll =3D 0; @@ -18991,28 +18991,16 @@ redisplay_window (Lisp_Object window, bool just_t= his_one_p) NULL, 0); } if (r) - new_vpos =3D MATRIX_ROW_BOTTOM_Y (r); + new_y =3D MATRIX_ROW_BOTTOM_Y (r); else /* Give up and just move to the middle of the window. */ - new_vpos =3D window_box_height (w) / 2; + new_y =3D window_box_height (w) / 2; } =20 if (!cursor_row_fully_visible_p (w, false, false, false)) { /* Point does appear, but on a line partly visible at end of window. Move it back to a fully-visible line. */ - new_vpos =3D window_box_height (w); - /* But if window_box_height suggests a Y coordinate that is - not less than we already have, that line will clearly not - be fully visible, so give up and scroll the display. - This can happen when the default face uses a font whose - dimensions are different from the frame's default - font. */ - if (new_vpos >=3D w->cursor.y) - { - w->cursor.vpos =3D -1; - clear_glyph_matrix (w->desired_matrix); - goto try_to_scroll; - } + new_y =3D WINDOW_BOX_HEIGHT_NO_MODE_LINE (w); } else if (w->cursor.vpos >=3D 0) { @@ -19052,13 +19040,18 @@ redisplay_window (Lisp_Object window, bool just_t= his_one_p) =20 /* If we need to move point for either of the above reasons, now actually do it. */ - if (new_vpos >=3D 0) + if (new_y >=3D 0) { struct glyph_row *row; =20 - row =3D MATRIX_FIRST_TEXT_ROW (w->desired_matrix); - while (MATRIX_ROW_BOTTOM_Y (row) < new_vpos) - ++row; + for (row =3D MATRIX_FIRST_TEXT_ROW (w->desired_matrix); + row < MATRIX_BOTTOM_TEXT_ROW (w->desired_matrix, w); + ++row) + if (MATRIX_ROW_BOTTOM_Y (row) - row->extra_line_spacing > new_y) + { + row--; + break; + } =20 TEMP_SET_PT_BOTH (MATRIX_ROW_START_CHARPOS (row), MATRIX_ROW_START_BYTEPOS (row)); diff --git a/test/lisp/emacs-lisp/multisession-tests.el b/test/lisp/emacs-l= isp/multisession-tests.el index 41fcde04f2..8160f9115a 100644 --- a/test/lisp/emacs-lisp/multisession-tests.el +++ b/test/lisp/emacs-lisp/multisession-tests.el @@ -26,6 +26,13 @@ (require 'ert-x) (require 'cl-lib) =20 +(defsubst multi-test--on-conflict-p () + (when (bound-and-true-p multisession--db) + (let ((result (with-sqlite-transaction multisession--db + (sqlite-select multisession--db "select sqlite_version()")))) + (version-list-<=3D (version-to-list "3.24.0") + (version-to-list (seq-find #'stringp (cl-first resu= lt))))))) + (ert-deftest multi-test-sqlite-simple () (skip-unless (sqlite-available-p)) (ert-with-temp-file dir @@ -38,6 +45,7 @@ multi-test-sqlite-simple (define-multisession-variable foo 0 "" :synchronized t) + (skip-unless (multi-test--on-conflict-p)) (should (=3D (multisession-value foo) 0)) (cl-incf (multisession-value foo)) (should (=3D (multisession-value foo) 1)) @@ -56,11 +64,12 @@ multi-test-sqlite-simple :synchronized t) (cl-incf (multisession-value foo)))))) (should (=3D (multisession-value foo) 2))) - (sqlite-close multisession--db) + (when multisession--db + (sqlite-close multisession--db)) (setq multisession--db nil))))) =20 (ert-deftest multi-test-sqlite-busy () - (skip-unless (and t (sqlite-available-p))) + (skip-unless (sqlite-available-p)) (ert-with-temp-file dir :directory t (let ((user-init-file "/tmp/foo.el") @@ -72,6 +81,7 @@ multi-test-sqlite-busy (define-multisession-variable bar 0 "" :synchronized t) + (skip-unless (multi-test--on-conflict-p)) (should (=3D (multisession-value bar) 0)) (cl-incf (multisession-value bar)) (should (=3D (multisession-value bar) 1)) @@ -93,45 +103,53 @@ multi-test-sqlite-busy (cl-incf (multisession-value bar))))))= )) (while (process-live-p proc) (ignore-error 'sqlite-locked-error - (message "bar %s" (multisession-value bar)) - ;;(cl-incf (multisession-value bar)) - ) - (sleep-for 0.1)) + (message "bar %s" (multisession-value bar))) + (accept-process-output nil 0.1)) (message "bar ends up as %s" (multisession-value bar)) (should (< (multisession-value bar) 1003))) - (sqlite-close multisession--db) + (when (process-live-p proc) + (kill-process proc)) + (when multisession--db + (sqlite-close multisession--db)) (setq multisession--db nil))))) =20 (ert-deftest multi-test-files-simple () + (skip-unless (sqlite-available-p)) (ert-with-temp-file dir :directory t (let ((user-init-file "/tmp/sfoo.el") (multisession-storage 'files) (multisession-directory dir)) - (define-multisession-variable sfoo 0 - "" - :synchronized t) - (should (=3D (multisession-value sfoo) 0)) - (cl-incf (multisession-value sfoo)) - (should (=3D (multisession-value sfoo) 1)) - (call-process - (concat invocation-directory invocation-name) - nil t nil - "-Q" "-batch" - "--eval" (prin1-to-string - `(progn - (require 'multisession) - (let ((multisession-directory ,dir) - (multisession-storage 'files) - (user-init-file "/tmp/sfoo.el")) - (define-multisession-variable sfoo 0 - "" - :synchronized t) - (cl-incf (multisession-value sfoo)))))) - (should (=3D (multisession-value sfoo) 2))))) + (unwind-protect + (progn + (define-multisession-variable sfoo 0 + "" + :synchronized t) + (skip-unless (multi-test--on-conflict-p)) + (should (=3D (multisession-value sfoo) 0)) + (cl-incf (multisession-value sfoo)) + (should (=3D (multisession-value sfoo) 1)) + (call-process + (concat invocation-directory invocation-name) + nil t nil + "-Q" "-batch" + "--eval" (prin1-to-string + `(progn + (require 'multisession) + (let ((multisession-directory ,dir) + (multisession-storage 'files) + (user-init-file "/tmp/sfoo.el")) + (define-multisession-variable sfoo 0 + "" + :synchronized t) + (cl-incf (multisession-value sfoo)))))) + (should (=3D (multisession-value sfoo) 2))) + (when multisession--db + (sqlite-close multisession--db)) + (setq multisession--db nil))))) =20 (ert-deftest multi-test-files-busy () - (skip-unless (and t (sqlite-available-p))) + (skip-unless (sqlite-available-p)) (ert-with-temp-file dir :directory t (let ((user-init-file "/tmp/foo.el") @@ -168,6 +186,7 @@ multi-test-files-busy (should (< (multisession-value sbar) 2000))))) =20 (ert-deftest multi-test-files-some-values () + (skip-unless (sqlite-available-p)) (ert-with-temp-file dir :directory t (let ((user-init-file "/tmp/sfoo.el") diff --git a/test/src/xdisp-tests.el b/test/src/xdisp-tests.el index ae4aacd9c7..f79406e531 100644 --- a/test/src/xdisp-tests.el +++ b/test/src/xdisp-tests.el @@ -170,4 +170,22 @@ test-get-display-property (should (equal (get-display-property 2 'height) 2.0)) (should (equal (get-display-property 2 'space-width) 20)))) =20 +(ert-deftest xdisp-tests--scroll-down-leaves-cursor-behind () + "When first line contains accented, and therefore taller +character, e.g., =C3=93scar, scrolling down (moving window-start up) +has resulted in a no-op." + (skip-unless (not noninteractive)) + (switch-to-buffer "xdisp-tests--scroll-down-leaves-cursor-behind") + + (insert "=C3=93scar" "\n") + (dotimes (_ (/ (1+ (window-pixel-height)) (line-pixel-height))) + (insert "line" "\n")) + (goto-char (point-max)) + (redisplay) + (scroll-down) + (redisplay) + (should (=3D (window-start) 1)) + (let (kill-buffer-query-functions) + (kill-buffer "xdisp-tests--scroll-down-leaves-cursor-behind"))) + ;;; xdisp-tests.el ends here --=20 2.26.2 --=-=-= Content-Type: text/plain In Commercial Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30, cairo version 1.15.10) of 2021-12-16 built on dick Repository revision: 2eb60be235d820a7e37ef37c23b6f5b10849f11c Repository branch: dev Windowing system distributor 'The X.Org Foundation', version 11.0.11906000 System Description: Ubuntu 18.04.4 LTS Configured using: 'configure --prefix=/home/dick/.local --with-tree-sitter --enable-dumping-overwrite 'CFLAGS=-g3 -O2 -I/home/dick/.local/include/' LDFLAGS=-L/home/dick/.local/lib' Configured features: CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON TREE_SITTER LCMS2 LIBSELINUX LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM XPM GTK3 ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Magit Minor modes in effect: async-bytecomp-package-mode: t global-git-commit-mode: t shell-dirtrack-mode: t projectile-mode: t flx-ido-mode: t override-global-mode: t winner-mode: t tooltip-mode: t show-paren-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /home/dick/gomacro-mode/gomacro-mode hides /home/dick/.emacs.d/elpa/gomacro-mode-20200326.1103/gomacro-mode /home/dick/.emacs.d/elpa/hydra-20170924.2259/lv hides /home/dick/.emacs.d/elpa/lv-20191106.1238/lv /home/dick/.emacs.d/elpa/magit-3.3.0/magit-section-pkg hides /home/dick/.emacs.d/elpa/magit-section-3.3.0/magit-section-pkg /home/dick/org-gcal.el/org-gcal hides /home/dick/.emacs.d/elpa/org-gcal-0.3/org-gcal /home/dick/.emacs.d/elpa/tree-sitter-20211211.1220/tree-sitter hides /home/dick/.local/share/emacs/28.0.50/lisp/tree-sitter /home/dick/.emacs.d/lisp/json hides /home/dick/.local/share/emacs/28.0.50/lisp/json /home/dick/.emacs.d/elpa/transient-0.3.6/transient hides /home/dick/.local/share/emacs/28.0.50/lisp/transient /home/dick/.emacs.d/elpa/hierarchy-20171221.1151/hierarchy hides /home/dick/.local/share/emacs/28.0.50/lisp/emacs-lisp/hierarchy /home/dick/.local/share/emacs/28.0.50/lisp/emacs-lisp/eieio-compat hides /home/dick/.local/share/emacs/28.0.50/lisp/obsolete/eieio-compat Features: (shadow bbdb-message footnote emacsbug sendmail sh-script executable multisession sqlite ag vc-svn find-dired pulse help-fns radix-tree cl-print debug backtrace find-func tramp-archive tramp-gvfs tramp-cache zeroconf rect magit-extras mule-util face-remap magit-patch-changelog magit-patch magit-submodule magit-obsolete magit-popup async-bytecomp async magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff smerge-mode diff git-commit log-edit pcvs-util add-log magit-core magit-margin magit-transient magit-process with-editor server magit-mode transient misearch multi-isearch vc-git diff-mode vc vc-dispatcher bug-reference cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs sort smiley qp mail-extr gnus-async gnus-ml gnus-notifications gnus-fun notifications gnus-kill gnus-dup disp-table utf-7 mm-archive shr-color jka-compr url-cache eww xdg url-queue nnrss nnfolder nndiscourse benchmark rbenv nnhackernews nntwitter nntwitter-api bbdb-gnus gnus-demon nntp nnmairix nnml nnreddit gnus-topic url-http url-auth url-gw network-stream gnutls nsm request virtualenvwrapper gud s json-rpc python tramp-sh tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat shell pcomplete ls-lisp format-spec gnus-score score-mode gnus-bcklg gnus-srvr gnus-cite anaphora bbdb-mua bbdb-com bbdb bbdb-site timezone gnus-delay gnus-draft gnus-cache gnus-agent gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr pixel-fill kinsoku svg dom nndraft nnmh gnus-group mm-url gnus-undo use-package use-package-delight use-package-diminish gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time iso8601 gnus-spec gnus-int gnus-range message yank-media rmc puny dired-x dired dired-loaddefs rfc822 mml mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader gnus-win paredit-ext paredit subed subed-vtt subed-srt subed-common subed-mpv subed-debug subed-config inf-ruby ruby-mode smie company pcase haskell-interactive-mode haskell-presentation-mode haskell-process haskell-session haskell-compile haskell-mode haskell-cabal haskell-utils haskell-font-lock haskell-indentation haskell-string haskell-sort-imports haskell-lexeme haskell-align-imports haskell-complete-module haskell-ghc-support noutline outline flymake-proc flymake warnings etags fileloop generator xref project dabbrev haskell-customize hydra lv use-package-ensure solarized-theme solarized-definitions projectile lisp-mnt mail-parse rfc2231 ibuf-ext ibuffer ibuffer-loaddefs thingatpt magit-autorevert autorevert filenotify magit-git magit-section magit-utils crm dash rx grep compile comint ansi-color gnus nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils text-property-search time-date flx-ido flx google-translate-default-ui google-translate-core-ui facemenu color ido google-translate-core google-translate-tk google-translate-backend use-package-bind-key bind-key auto-complete easy-mmode advice edmacro kmacro popup cus-edit pp cus-load wid-edit emms-player-mplayer emms-player-simple emms emms-compat cl-extra help-mode use-package-core derived winner ring finder-inf json-reformat-autoloads json-snatcher-autoloads sml-mode-autoloads tornado-template-mode-autoloads info package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json map url-vars seq gv subr-x byte-opt bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tree-sitter tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 888365 168035) (symbols 48 41336 1) (strings 32 183253 37994) (string-bytes 1 5901118) (vectors 16 103243) (vector-slots 8 2785892 156279) (floats 8 1879 1890) (intervals 56 9658 1445) (buffers 992 41)) --=-=-=-- From unknown Mon Aug 18 09:06:12 2025 X-Loop: help-debbugs@gnu.org Subject: bug#52561: 28.0.50; [PATCH] Tall characters create scrolling stasis Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 17 Dec 2021 13:44:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 52561 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: dick.r.chiang@gmail.com Cc: 52561@debbugs.gnu.org Received: via spool by 52561-submit@debbugs.gnu.org id=B52561.163974859915716 (code B ref 52561); Fri, 17 Dec 2021 13:44:02 +0000 Received: (at 52561) by debbugs.gnu.org; 17 Dec 2021 13:43:19 +0000 Received: from localhost ([127.0.0.1]:38286 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1myDVz-00045J-6t for submit@debbugs.gnu.org; Fri, 17 Dec 2021 08:43:19 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52404) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1myDVy-000457-BM for 52561@debbugs.gnu.org; Fri, 17 Dec 2021 08:43:14 -0500 Received: from [2001:470:142:3::e] (port=44356 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1myDVq-0005lw-Aj; Fri, 17 Dec 2021 08:43:09 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=YXU2fcoQSBk8Aj9jCZNDrKbFdUw8PItruq8cYNfAf+s=; b=aogl5eWTnLHD Vex9BYMO6axi4DexboTxOU2IQTiRTiF2Sf9hb83cKQY7iWGUMajkMlRYbKKDg1XUH7JuAKjtAemHK yffoPVVLTJ8k3nrk7E03s/8S/1UqQCW0Tdx2+CO+kpnbBzRAHU458adnzwd4FThR0YPN6jbthnPQM 4gOp8vBeEcOPAR2ojZSOO7SrllBu8zJ4zC6FqhpZ7V8WrJKEuhl71wNSAVd1YfUrM+zCQ8YwUORmd 3/tSsZN2hB/mNjME9iIUdBA1JwE/iAhmsADZP8BzTSvx73P9Jc90VJmbVm18vu/Er6X0Rg6I0cYSx pR3lCA2ptPy72Vm2g2yWSg==; Received: from [87.69.77.57] (port=4979 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1myDVm-0002jN-Nl; Fri, 17 Dec 2021 08:43:06 -0500 Date: Fri, 17 Dec 2021 15:42:46 +0200 Message-Id: <831r2be4a1.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87mtl0b1e3.fsf@dick> (dick.r.chiang@gmail.com) References: <87mtl0b1e3.fsf@dick> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: dick.r.chiang@gmail.com > Date: Thu, 16 Dec 2021 18:01:08 -0500 > > After this prints "all bad", try M-v (scroll-down). It never prints "all bad" in my testing, neither in Emacs 27.2 nor in Emacs 29. But the first line is not taller here, so I also tried to copy the Hindu line from etc/HELLO (which does display taller here) to try reproducing the issue, and I still get "all good". > diff --git a/src/xdisp.c b/src/xdisp.c > index 5e549c9c63..65632ff167 100644 > --- a/src/xdisp.c > +++ b/src/xdisp.c > @@ -18921,7 +18921,7 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) > if (w->force_start) > { > /* We set this later on if we have to adjust point. */ > - int new_vpos = -1; > + int new_y = -1; > > w->force_start = false; > w->vscroll = 0; > @@ -18991,28 +18991,16 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) > NULL, 0); > } > if (r) > - new_vpos = MATRIX_ROW_BOTTOM_Y (r); > + new_y = MATRIX_ROW_BOTTOM_Y (r); > else /* Give up and just move to the middle of the window. */ > - new_vpos = window_box_height (w) / 2; > + new_y = window_box_height (w) / 2; > } > > if (!cursor_row_fully_visible_p (w, false, false, false)) > { > /* Point does appear, but on a line partly visible at end of window. > Move it back to a fully-visible line. */ > - new_vpos = window_box_height (w); > - /* But if window_box_height suggests a Y coordinate that is > - not less than we already have, that line will clearly not > - be fully visible, so give up and scroll the display. > - This can happen when the default face uses a font whose > - dimensions are different from the frame's default > - font. */ > - if (new_vpos >= w->cursor.y) > - { > - w->cursor.vpos = -1; > - clear_glyph_matrix (w->desired_matrix); > - goto try_to_scroll; > - } > + new_y = WINDOW_BOX_HEIGHT_NO_MODE_LINE (w); > } > else if (w->cursor.vpos >= 0) > { > @@ -19052,13 +19040,18 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) > > /* If we need to move point for either of the above reasons, > now actually do it. */ > - if (new_vpos >= 0) > + if (new_y >= 0) > { > struct glyph_row *row; > > - row = MATRIX_FIRST_TEXT_ROW (w->desired_matrix); > - while (MATRIX_ROW_BOTTOM_Y (row) < new_vpos) > - ++row; > + for (row = MATRIX_FIRST_TEXT_ROW (w->desired_matrix); > + row < MATRIX_BOTTOM_TEXT_ROW (w->desired_matrix, w); > + ++row) > + if (MATRIX_ROW_BOTTOM_Y (row) - row->extra_line_spacing > new_y) > + { > + row--; > + break; > + } > > TEMP_SET_PT_BOTH (MATRIX_ROW_START_CHARPOS (row), > MATRIX_ROW_START_BYTEPOS (row)); If this is supposed to fix the problem shown by the recipe, then I don't understand the rationale. For starters, a breakpoint set in the while/for loop of the last hunk never breaks for me when I run the recipe, so it seems unrelated. row->extra_line_spacing is supposed to be zero (and your recipe doesn't change that), so the original inequality and the one you propose are equivalent, I think. As for replacing window_box_height with WINDOW_BOX_HEIGHT_NO_MODE_LINE: are you saying that this could move point too much down the window, when we have a header-line and/or a tab-line? That could be true (though it's mostly harmless in the use cases this code is supposed to support), but again, it's unrelated to the recipe, which specifies neither header-line nor tab-line. And the part you propose to remove, viz.: - /* But if window_box_height suggests a Y coordinate that is - not less than we already have, that line will clearly not - be fully visible, so give up and scroll the display. - This can happen when the default face uses a font whose - dimensions are different from the frame's default - font. */ - if (new_vpos >= w->cursor.y) - { - w->cursor.vpos = -1; - clear_glyph_matrix (w->desired_matrix); - goto try_to_scroll; - } was added to fix a bug, bug#17095. Did you try the recipes provided there to make sure this doesn't reintroduce that bug back? Finally, the patch seems to contain unrelated changes to multisession.el and its test suite? In general, please make a point of better explaining the rationale for the changes you propose, and, if you remove code added to fix specific bugs, please describe the testing you have done to verify those bugs are not re-introduced. Without that, how can we possibly accept changes that potentially make Emacs worse? Thanks. From unknown Mon Aug 18 09:06:12 2025 X-Loop: help-debbugs@gnu.org Subject: bug#52561: 28.0.50; [PATCH] Tall characters create scrolling stasis Resent-From: dick Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 17 Dec 2021 17:05:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 52561 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: 52561@debbugs.gnu.org Received: via spool by 52561-submit@debbugs.gnu.org id=B52561.163976064524137 (code B ref 52561); Fri, 17 Dec 2021 17:05:02 +0000 Received: (at 52561) by debbugs.gnu.org; 17 Dec 2021 17:04:05 +0000 Received: from localhost ([127.0.0.1]:40542 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1myGeL-0006HE-50 for submit@debbugs.gnu.org; Fri, 17 Dec 2021 12:04:05 -0500 Received: from mail-qv1-f41.google.com ([209.85.219.41]:43969) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1myGeI-0006GW-T3 for 52561@debbugs.gnu.org; Fri, 17 Dec 2021 12:04:03 -0500 Received: by mail-qv1-f41.google.com with SMTP id m6so2966508qvh.10 for <52561@debbugs.gnu.org>; Fri, 17 Dec 2021 09:04:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-transfer-encoding; bh=P8G/F9TW/TsU8fei3uA5S7USaU8qnGoT/viq1kqMssQ=; b=Xs5GaNl7sTAD2nqG3VINdbwmqe3VyD51fWbApjdi+FPsx/54ZtkyO6XXY8kLFcFqG/ KNJK1QZAz+aV0CQ5WYpAcpnL842GmONUI1K45Scmx8IfoGmWw8m53QMflK7jyL8PUoCA 01rSGzzJWJBVGDWulGWViHWdYGzjPMe5sDQ+DvW6STi6waHPKbYe3CicAvkCxOXAHqHF 23XwQLZHG4qELZVCEwJgTsSZYf+heJR3mfAlc/OEKhyBbRbYiVo1QHs/QHItLcIfAjLp IgQx5S5lqMOQtLq3aXPtupGhfzbLEmDt5rhOzyUB8iaErY7byLy5F8KKuoweSctpEiD+ TITQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=P8G/F9TW/TsU8fei3uA5S7USaU8qnGoT/viq1kqMssQ=; b=RAKmfLzjsjDBHLJO6+hURQvjWtGSM2fF6BdaoDbTGELkYX+TvwQdEDapdm3FyLboHz CDPG7Q1bbhBVl24Yyd9qr2O4o2qM0TumfvCYxCy2+kUVCiITIPpTSH6Paq2JN/xK8WBR iye7DEDwOut+lwh5IcziOUIVVfZpeV4ydk3k2TkBGuYWFb4Tiqo46K11KwNhbCFdDhE4 S7LGCxkO1dEOV1yY9zZzCJN4/BiMoNQzWeQHeiVeTZav9qbkVBmi5cdLjLrvAo2Y//1s NZxf62JfOXvuOlOSgYavFJ/NymMgObMUYwqGytTTXa2xC62brMu1EWq2/irN8hxcrw7y A/7g== X-Gm-Message-State: AOAM533i4B6ePegJJNUVfxssFvbCM5gyol+DdXJ8S7iNCGwfTZak7QPq SFnmxiWrvRhKuafb9KQEiMhhzNAzUJM= X-Google-Smtp-Source: ABdhPJwQS5okTcOyyO/IugVOEg94bFz5CHB3TeJ8sj326sjhNUcBsplEnwD1x9S88b48wVNC1O0FAw== X-Received: by 2002:a05:6214:5018:: with SMTP id jo24mr3413075qvb.114.1639760637402; Fri, 17 Dec 2021 09:03:57 -0800 (PST) Received: from localhost ([68.237.93.126]) by smtp.gmail.com with ESMTPSA id y11sm7673443qta.6.2021.12.17.09.03.55 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 17 Dec 2021 09:03:56 -0800 (PST) From: dick References: <87mtl0b1e3.fsf@dick> <831r2be4a1.fsf@gnu.org> Date: Fri, 17 Dec 2021 12:03:54 -0500 In-Reply-To: <831r2be4a1.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 17 Dec 2021 15:42:46 +0200") Message-ID: <87h7b7cged.fsf@dick> User-Agent: Gnus/5.14 (Gnus v5.14) Commercial/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > It never prints "all bad" in my testing, neither in Emacs 27.2 nor in My `M-x version` is GNU Emacs (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.22.30). The bug would seem very sensitive to fonts and X toolkits. With =C3=93scar on the first line, I delete the accented "O", I can very clearly see the rest of the buffer shift up. With =C3=93scar on the second line, I delete the accented "O", I do not see the shift-up. As you can guess, I can only get the bug to trigger for first-line. And I cannot get it to trigger at all with Hindi. So it's not a taller-character thing. It's a combination of that accent and the fringe spacing up top. I'll close this for incomplete diagnosis. From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 17 12:04:36 2021 Received: (at control) by debbugs.gnu.org; 17 Dec 2021 17:04:36 +0000 Received: from localhost ([127.0.0.1]:40545 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1myGeq-0006Is-Ee for submit@debbugs.gnu.org; Fri, 17 Dec 2021 12:04:36 -0500 Received: from mail-qk1-f176.google.com ([209.85.222.176]:43770) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1myGep-0006IT-LZ for control@debbugs.gnu.org; Fri, 17 Dec 2021 12:04:35 -0500 Received: by mail-qk1-f176.google.com with SMTP id 193so2717888qkh.10 for ; Fri, 17 Dec 2021 09:04:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:to:from:subject; bh=ir2Dtz5wKR55435W/mzzJoBAQyx7jpJzBiF2lfTN3Xk=; b=jhWfAhFYuCkbyzd/9Yy6l8CzHrQbd3aMmelCIEd53qMvMe/GwKnLe0Z2VxWOeAspcB uIHh6QT29bWuU3FjoIuytBSh0tGkWoVGkYcRbc4SoNeVD1mWMoEszO1mBCV7iSoYlciH gzNqAuLJ4hgn/aBOci5v1i0w2xRRqQRBg5MdURDppU+DnrhLIcaOijduir8EJar8+Fy0 z3zl4ZHXh5Haeye94Xzne243kfyOyWzIIU0PoYl6cG5a5KbkHAvlc8bnkVSmTqXjzRe5 3xS/TTJn5aYGUDzY+ssIgVEhdqImIEOkbB69nggByhaKa+Kj1M3gd8LVToHgTvB14LeE WQeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:to:from:subject; bh=ir2Dtz5wKR55435W/mzzJoBAQyx7jpJzBiF2lfTN3Xk=; b=VkUrgxa0W/Dq8NJ9YQwLSoz7RBQxSBCucFTChp7tL2QlLdHHq1aB9hbzc7BKc5aAtl yA1WOPHoiyGSaHwrkBSTmuiWTGDs6PczqQxRoXqmMAe2j1I84DNvdO/m9H5CCvZmxW6H xn+dUtiHO97i3FlnNSwQQ/Woj2WgSc8KpJHrQgjdJ8Bnp0PBCjclmsGw9pozHM0jEkff 6RwO6zjWT057rACXNB/oaj7vaT0xwi8/gigKRDqOpQyo/ZqrpJa+BRU5U6m4+dStlyyQ ZYfm0fSMoSLMG3tTaW7XE2ujdZmjhl/eCxD3sbSBinOyi0D7eW0j26yRrJtwtt0HeofB t5zA== X-Gm-Message-State: AOAM532zzuZY8i7c19SIIvH3l1ztggrfrtrI5I94p8AEJiSUC4aZcW9j 4Gn4r9UYFAJXvRW6wf7ll6pcobwbpug= X-Google-Smtp-Source: ABdhPJwY0gVbjullU2JCXkwLpyFLNKFO99Ho6CxjOi4Ok5yOu8UtYPdCTyOJi/4UuF7uuAtSbIKb6Q== X-Received: by 2002:ae9:ef48:: with SMTP id d69mr2379064qkg.163.1639760669972; Fri, 17 Dec 2021 09:04:29 -0800 (PST) Received: from localhost ([68.237.93.126]) by smtp.gmail.com with ESMTPSA id b9sm7470027qtb.53.2021.12.17.09.04.28 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 17 Dec 2021 09:04:28 -0800 (PST) Message-ID: <61bcc31c.1c69fb81.d8870.fcee@mx.google.com> Date: Fri, 17 Dec 2021 12:04:28 -0500 To: control@debbugs.gnu.org From: dick Subject: control message for bug #52561 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) close 52561 28.1 quit From unknown Mon Aug 18 09:06:12 2025 X-Loop: help-debbugs@gnu.org Subject: bug#52561: 28.0.50; [PATCH] Tall characters create scrolling stasis Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 17 Dec 2021 19:05:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 52561 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: dick Cc: 52561@debbugs.gnu.org Received: via spool by 52561-submit@debbugs.gnu.org id=B52561.163976787613223 (code B ref 52561); Fri, 17 Dec 2021 19:05:01 +0000 Received: (at 52561) by debbugs.gnu.org; 17 Dec 2021 19:04:36 +0000 Received: from localhost ([127.0.0.1]:40638 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1myIWx-0003RD-PK for submit@debbugs.gnu.org; Fri, 17 Dec 2021 14:04:35 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52294) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1myIWv-0003Qy-Lq for 52561@debbugs.gnu.org; Fri, 17 Dec 2021 14:04:34 -0500 Received: from [2001:470:142:3::e] (port=34684 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1myIWq-0004IS-GN; Fri, 17 Dec 2021 14:04:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=8Jy3hdNNVcH0zEWxIMMsaW144qgwyAoldlaMrp8qp24=; b=pYkK4booCPMue9Eq93KI J/GmgIBjVovcR9y4fiwmv/r72EoPUfOJ6hqizh1CpJroXuGLuIrGe31Xg7uoayPbgZhuhNkgeyZ7f 0YdmN/Xvtde5uhtu8GZVMzavtd3R9n4lRzQFuWIy3ErBTYTwZ9CxiBdtY/4Y2rAavDUgMaCyEZh67 /Nw/XuWtS5e4zuGa6S8HpZ6zuQG0y/C904pjwcgA4lXmx4jEWrnWKEDhLw9z2VDSHd3DCON/EaNSI reD6doQtSOoe6LKQjW91CWIYiof/k7kTjckdDtsHQsD6kSrKyxmw8M95CXehNz3nUEUl8WGGPvpJc 7z39+8aX47IS6Q==; Received: from [87.69.77.57] (port=4838 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1myIWq-00051V-9e; Fri, 17 Dec 2021 14:04:28 -0500 Date: Fri, 17 Dec 2021 21:04:15 +0200 Message-Id: <83o85fcats.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87h7b7cged.fsf@dick> (message from dick on Fri, 17 Dec 2021 12:03:54 -0500) References: <87mtl0b1e3.fsf@dick> <831r2be4a1.fsf@gnu.org> <87h7b7cged.fsf@dick> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: dick > Cc: 52561@debbugs.gnu.org > Date: Fri, 17 Dec 2021 12:03:54 -0500 > > > It never prints "all bad" in my testing, neither in Emacs 27.2 nor in > > My `M-x version` is GNU Emacs (build 2, x86_64-pc-linux-gnu, GTK+ > Version 3.22.30). > > The bug would seem very sensitive to fonts and X toolkits. > > With Óscar on the first line, I delete the accented "O", I can very > clearly see the rest of the buffer shift up. Not here, because Ó comes from the same font as the ASCII characters, > With Óscar on the second line, I delete the accented "O", I do not see > the shift-up. > > As you can guess, I can only get the bug to trigger for first-line. > > And I cannot get it to trigger at all with Hindi. I used Hindi because it made the line taller than other lines. I thought that was the trigger for the problem you see. > I'll close this for incomplete diagnosis. If you can describe what you see in redisplay_window, which causes the problem, we could take it from there, perhaps.