Community Packages

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#21235 - [rxvt-unicode-256color] 9.07-9 default backspace key conflict with terminfo ($TERM) as rxvt-256color

Attached to Project: Community Packages
Opened by Linus Arver (firepotion) - Wednesday, 13 October 2010, 18:00 GMT
Last edited by Sergej Pupykin (sergej) - Monday, 18 October 2010, 08:49 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Sergej Pupykin (sergej)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:
See https://bbs.archlinux.org/viewtopic.php?id=106469

rxvt-unicode-256color uses the '^?' key (ASCII DEL) as its default backspace key. See urxvt(1) (backspace key is '^?' if that resource is not set in ~/.Xdefaults) and also urxvt(7) (stating that urxvt follows the debian policy of using '^?' when unsure).

The terminfo entry for rxvt-unicode also reflects this:
"infocmp rxvt-unicode" gives kbs=\177 (ASCII DEL).

However, rxvt-unicode-256color uses the terminfo entry for rxvt-256color (it is compiled with the "--with-term=rxvt-256color" option), which uses '^H' as its backspace key.

The result is that ncurses programs that depend on a proper terminfo (and other programs that rely solely on the terminfo file) fail to detect the correct backspace key, unless the user changes the backspace key to '^H' by adding the entry "URxvt.backspacekey: ^H" in his ~/.Xdefaults.

I have created a simple patch "terminfo-256color.patch" that changes just 2 lines in the official urxvt terminfo file (idea from http://scie.nti.st/2008/10/13/get-rxvt-unicode-with-256-color-support-on-ubunut). I also just went ahead and created a new, working PKGBUILD to test it out. The tarball is attached.

By using the patched rxvt-unicode terminfo file, we not only solve the backspace key conflict problem, but also correctly tell all other ncurses/terminfo applications that we are using rxvt-unicode, and not rxvt. A simple visual check between "infocmp rxvt-256color" and "infocmp rxvt-unicode" reveals big featurewise differences that raise other conflict issues as well.

Additional info:
rxvt-unicode-256color 9.07-9

Steps to reproduce:
Do fresh install of rxvt-unicode-256color. Compile and run the following code with "gcc -o testkey -lncurses testkey.c":
#include <ncurses.h>
int main()
{
int ch;
initscr();
raw();
noecho();
clear();

printw("Press the backspace key now.");
ch = getch();
if (ch == KEY_BACKSPACE)
printw("You pressed the backspace key.");
else
printw("Unrecognized key.");

endwin();
return 0;
}

The if-statement will fail, because of aforementioned backspace key definition conflict from incorrect terminfo.
This task depends upon

Closed by  Sergej Pupykin (sergej)
Monday, 18 October 2010, 08:49 GMT
Reason for closing:  Fixed
Comment by Daniel Micay (thestinger) - Wednesday, 13 October 2010, 21:22 GMT
the patch works here (terminfo correct and 256 colors correctly detected and working)
Comment by Sergej Pupykin (sergej) - Friday, 15 October 2010, 10:38 GMT
What upstream developers think about it? Did you report this bug to upstream?
Comment by Linus Arver (firepotion) - Friday, 15 October 2010, 17:13 GMT
The 256 color patch that comes with the official urxvt sources is actually an unsupported patch. urxvt(7) says, regarding 256 colors:

"Are you sure you need 256 colors? 88 colors should be enough for most purposes. If you really need more, there is an unsupported patch for it in the doc directory, but please do not ask for it to be applied."

The fact that urxvt only comes with 1 terminfo entry (just "rxvt-unicode") seems to imply that they do not care about 256 colors support at all.

EDIT: I should add that the line "--with-term=rxvt-256color" that is in the PKGBUILD is itself a hack to get the 256 colors working. So my patch just changes the existing hack.

Loading...