Subject: bug#32177: Current line number shifts one column to the left.

From: Keith David Bershatsky <[email-masked]>
Date: Mon, 16 Jul 2018 10:36:12 -0700

1.  Launch a newly built GUI version of Emacs master branch (07/16/2018).

2.  WINDOWS XP -- GUI Emacs:  From the *GNU Emacs* welcome screen, type M-: and evaluate the following:

    (progn
      (switch-to-buffer (get-buffer-create "foo"))
      (setq header-line-format "foo")
      (display-line-numbers-mode 1)
      (setq bidi-display-reordering nil)
      (dotimes (i 57)
        (insert "\n"))
      (recenter 1)
      (sit-for 1)
      (insert "@"))

[OR]

2.  OSX 10.6.8 GUI Emacs:  From the *GNU Emacs* welcome screen, type M-: and evaluate the following:

    (progn
      (switch-to-buffer (get-buffer-create "foo"))
      (setq header-line-format "foo")
      (display-line-numbers-mode 1)
      (setq bidi-display-reordering nil)
      (dotimes (i 50)
        (insert "\n"))
      (recenter 1)
      (sit-for 1)
      (insert "@"))

3.  Observe that line number 58 (on Windows XP), or line number 51 (on OSX 10.6.8), shifts one column to the left of where it should be.  Here is a link to a screenshot depicting the bug with both versions of Emacs (Windows / OSX):

https://www.lawlist.com/images/bug_07_16_2018.png

A modification of the current line is necessary to reproduce this bug.  In my case, I notice the bug a few times each day when I place an overlay on the current line.  The bug is rather elusive and requires just the right circumstances to see it happen.  For example, if I _first_ kill the *GNU Emacs* buffer, then the code above in Step #2 is insufficient to reproduce the bug.

On OSX 10.6.8, my build configuration is:

CFLAGS='-O0 -g3' ./configure \
--with-ns \
--enable-checking='yes,glyphs' \
--enable-check-lisp-object-type \
--without-compress-install \
--without-makeinfo \
--with-gnutls=no \
--with-mailutils \
--without-makeinfo

On Windows XP, my build configuration is:

CFLAGS='-O0 -g3' ./configure \
--prefix=/c/docume~1/admini~1/desktop/trunk \
--enable-checking='yes,glyphs' \
--enable-check-lisp-object-type \
--without-compress-install \
--without-makeinfo \
--with-gnutls=no \
--with-mailutils \
--without-makeinfo