I just investigated the same bug. "less" loses input lines because it
does not count output lines correctly. The problem is that it assumes
that east asian wide characters have width 1, but in reality, e.g. on
xterm, these characters take 2 positions. In other words, the routine
pwidth() in less-481:line.c is broken (since the is_wide_char(ch)
returns false for characters that take two screen positions).

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to less in Ubuntu.
https://bugs.launchpad.net/bugs/1562308

Title:
  missing or duplicate lines caused by a wrapped line with wide
  characters

Status in less package in Ubuntu:
  Confirmed

Bug description:
  When you scroll down text with "j" key and encounter a wrapped line
  with wide characters (such as UTF8-encoded Japanese characters),
  "less" seems to show the whole wrapped line at a single "j" key,
  causing the view scroll down by 2 lines at once. Strangely, if you
  type "k" to scroll up, it does that by only 1 line. As a result, there
  is a missing line that should have been shown.

  Even stranger stuff (i.e., duplicate lines) happens when you type "j"
  and "k" alternately when a wrapped line with wide characters is at the
  bottom of the view.

  
  # Steps to reproduce

  1. Open xterm.
  2. Set the geometory of xterm to 71x22.
  3. Open the attached lesstest.long_jap.txt with less (maybe you need
     environment variable LANG=ja_JP.UTF-8)
  4. Type "j", then you will see "003" at the top, and a long wrapped
     line with Japanese characters at the bottom.
  5. Type "k", then you will see "001" and "003" at the top. "002" is
     missing.

  # Expected behavior

  In step 4, only the first part of the wrapped line should be shown.

  In step 5, all "001", "002" and "003" should be shown.

  
  # Test Environment

  - Xubuntu 16.04 (Xenial) beta (in VirtualBox on Xubuntu 14.04)
  - less: 481-2.1
  - xterm: 322-1ubuntu1
  - Japanese environment (LANG=ja_JP.UTF-8)

  
  # Note

  - The same problem happens on xfce4-terminal (0.6.3-2ubuntu1)
  - lv (4.51-2.3build1) doesn't have such problem.
  - In "less" in Xubuntu 14.04 (version 458-2), this problem didn't
    exist.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/less/+bug/1562308/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to