Subject: bug#23805: 24.5; strange behavior by line-height property

From: [email-masked]
Date: Mon, 20 Jun 2016 11:07:35 +0900

(let ((buf (get-buffer-create "*Test*"))
      (newline (propertize "\n" 'line-height t)))
  (set-buffer buf)
  (dotimes (i 1000)
    (insert (format "%9d" i) newline))
  (switch-to-buffer buf))

Evaluating this form, I expect the window displays numbers near 999
and the cursor is displayed at the end of the buffer.
But the window displays numbers from 864 to 896
and the cursor is displayed after 864.

Althouth texts are displayed after the cursor,
C-x C-= shows "point=10001 of 10000 (EOB) column=0".

Also point motion commands work strangely in the buffer.
M-v moves cursor from after 864 to before 415,
from before 415 to before 16.

C-v signals "End of buffer" even if the cursor is at the beginning of
the buffer.

M-> moves the cursor before 581.

Typing many C-n to scroll the window from before 581,
the cursor jumps to after 461.
Then typing more C-n, the window scrolls by one line for each input.

In GNU Emacs 24.5.1 (i686-pc-mingw32)
 of 2015-04-11 on LEG570
Windowing system distributor `Microsoft Corp.', version 6.0.6002
Configured using:
 `configure --prefix=/c/usr --host=i686-pc-mingw32'

Important settings:
  value of $LANG: JPN
  locale-coding-system: cp932

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-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
  line-number-mode: t
  transient-mark-mode: t

Recent messages:

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils advice debug help-fns mule-util pp wid-edit
cl-loaddefs cl-lib descr-text help-mode easymenu time-date japan-util
tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel
dos-w32 ls-lisp w32-common-fns disp-table w32-win w32-vars tool-bar dnd
fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
w32notify w32 multi-tty emacs)

Memory information:
((conses 8 170409 10095)
 (symbols 32 28066 0)
 (miscs 32 91 280)
 (strings 16 24011 6040)
 (string-bytes 1 563530)
 (vectors 8 19745)
 (vector-slots 4 694480 6806)
 (floats 8 64 606)
 (intervals 28 2401 336)
 (buffers 508 18))