Entering and removing combining characters messes up terminal display
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
GNOME Terminal |
Invalid
|
Low
|
|||
Gnome Virtual Terminal Emulator |
Fix Released
|
Medium
|
|||
vte (Ubuntu) |
Fix Released
|
Low
|
Ubuntu Desktop Bugs |
Bug Description
Binary package hint: gnome-terminal
Open a gnome-terminal instance using en_US.UTF-8 encoding. Enter U+05D1 (you can do this by holding CTRL-SHIFT and typing the code), a Hebrew letter bet. Hit backspace; it will disappear. Now enter U+05D1 U+05BC (Hebrew letter bet with combining dagesh). The characters will not combine correctly; there will appear to be a bet followed by a center-dot. Hit backspace; the center-dot will vanish. Hit backspace again; the bet will not vanish. Hitting enter reveals that the prompt was empty; the character displayed was not actually entered.
Each combining dagesh appears to advance the cursor by one space which cannot be backed up past, even though the shell appears to be unable to see the stuck character.
-- System Information:
Debian Release: testing/unstable
APT prefers dapper-updates
APT policy: (500, 'dapper-updates'), (500, 'dapper-security'), (500, 'dapper')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15-28-386
Locale: LANG=en_US.UTF-8, LC_CTYPE=
Versions of packages gnome-terminal depends on:
ii gnome-control-
ii gnome-terminal-data 2.14.2-0ubuntu1 Data files for the GNOME terminal
ii libatk1.0-0 1.11.4-0ubuntu1 The ATK accessibility toolkit
ii libbonobo2-0 2.14.0-0ubuntu2 Bonobo CORBA interfaces library
ii libc6 2.3.6-0ubuntu20.5 GNU C Library: Shared libraries an
ii libgconf2-4 2.14.0-1ubuntu2 GNOME configuration database syste
ii libglade2-0 1:2.5.1-2ubuntu2 library to load .glade files at ru
ii libglib2.0-0 2.10.3-0ubuntu1 The GLib library of C routines
ii libgnome2-0 2.14.1-0ubuntu2 The GNOME 2 library - runtime file
ii libgnomeui-0 2.14.1-0ubuntu3 The GNOME 2 libraries (User Interf
ii libgnomevfs2-0 2.14.2-0ubuntu1 GNOME virtual file-system (runtime
ii libgtk2.0-0 2.8.20-0ubuntu1.1 The GTK+ graphical user interface
ii liblaunchpad-
ii liborbit2 1:2.14.0-0ubuntu1 libraries for ORBit2 - a CORBA ORB
ii libpango1.0-0 1.12.3-0ubuntu3 Layout and rendering of internatio
ii libpopt0 1.7-5 lib for parsing cmdline parameters
ii libstartup-
ii libvte4 1:0.12.2-0ubuntu1 Terminal emulator widget for GTK+
ii libx11-6 2:1.0.0-0ubuntu9.1 X11 client-side library
ii libxrender1 1:0.9.0.2-0ubuntu2 X Rendering Extension client libra
ii scrollkeeper 0.3.14-11ubuntu6 A free electronic cataloging syste
Versions of packages gnome-terminal recommends:
ii yelp 2.14.3-0ubuntu1 Help browser for GNOME 2
-- no debconf information
Changed in gnome-terminal: | |
assignee: | nobody → desktop-bugs |
importance: | Undecided → Low |
status: | New → Triaged |
Changed in gnome-terminal: | |
status: | Unknown → New |
Changed in gnome-terminal: | |
status: | New → Invalid |
Changed in gnome-terminal: | |
status: | Unknown → Confirmed |
Changed in gnome-terminal: | |
status: | Unknown → Invalid |
Changed in vte: | |
status: | Unknown → Confirmed |
Changed in vte: | |
status: | Confirmed → Fix Released |
Changed in vte: | |
importance: | Unknown → Medium |
Changed in gnome-terminal: | |
importance: | Unknown → Low |
status: | Invalid → Unknown |
Changed in gnome-terminal: | |
status: | Unknown → Invalid |
This actually happens with all combining characters, not just the dagesh.
For example, if in terminal you enter a letter "s" followed by U+0300 (COMBINING GRAVE ACCENT) and U+0327 (COMBINING CEDILLA), you see these three chars in a row, like this:
s`¸
. If you now press Enter, you'll see a 'command not found' statement. Now if you just press backspace ONCE, the view become like this:
s`
, and if you press Enter now, bash doesn't complain. Furthermore, you cannot erase these two characters. However, to make things just more funny, if you start continuously pressing up and down arrows (previous/next cmd), you'll see the number of s` peers growing by one after each press of the arrow down button. However, no matter how many of them are displayed, pressing Enter is just as effective as pressing it with a blank command.
It seems to me like bash now actually knows what a combining character is, and upon pressing backspace erases all combining characters and the one they are combined with, however, gnome-terminal doesn't expect that.