missing or duplicate lines caused by a wrapped line with wide characters
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
less (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Xenial |
Fix Released
|
Medium
|
Unassigned | ||
Yakkety |
Fix Released
|
Medium
|
Unassigned |
Bug Description
[Impact]
Currently less doesn't work correctly with UTF-8 encoded Japanese characters, wrapping the lines in an invalid manner, missing or duplicating them (see original description below for exact error cases). For locale like these it breaks the general workflow, making the tool unreliable.
[Test Case]
1. Open xterm.
2. Set the geometory of xterm to 71x22.
3. Open the attached lesstest.
environment variable LANG=ja_JP.UTF-8)
4. Type "j", then you will see "003" at the top and only the first part of
the wrapped line should be shown.
5. Type "k", then you will see "001", "002" and "003" at the top.
[Regression Potential]
Rather low as the fix is present in the beta version of less for over 5 months already, which seems to be enough time for general audience testing. But since the width tables are modified potentially this could lead to other similar breakages related to wide-character handling.
[Original 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.
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.
Changed in less (Ubuntu): | |
status: | Confirmed → In Progress |
tags: | added: xenial |
Changed in less (Ubuntu): | |
importance: | Undecided → Medium |
Changed in less (Ubuntu): | |
status: | In Progress → Confirmed |
Changed in less (Ubuntu Xenial): | |
importance: | Undecided → Medium |
Changed in less (Ubuntu Yakkety): | |
importance: | Undecided → Medium |
Status changed to 'Confirmed' because the bug affects multiple users.