Package: crawl
Version: 2:0.2.7-1
Severity: normal

I have built xterm with 256 colour support from upstream xterm-227
source.  Now when I run crawl in that, with TERM=xterm-256color,
everything that should have a light foreground colour instead gets
displayed in bold with the corresponding dark foreground colour.
Most importantly, things that should be dark grey become black
and thus invisible.  This affects for instance those parts of the
map that are not in sight.

The cause appears to be this xterm vs. xterm-256color difference
in terminfo:

        setaf: '\E[3%p1%dm', '\E[38;5;%p1%dm'.

If I run printf "\033[0;30;1ma\033[0;38;5;0;1mb\033[mc\n",
then the "a" is dark grey but the "b" is black.  Apparently, the
boldColors resource of xterm affects only SGR values 30 to 37,
and not colours set with the 38;5 syntax.

Possible fixes:

(a) Change Crawl to detect that the terminal directly supports 16
    or more colours, and then use those colours via the setaf
    capability, instead of assuming that the bold attribute also
    changes the colour.

(b) Change Crawl to send "\E[30m" for black if the terminfo
    indicates "\E[38;5;0m".  Not a good idea: I normally run things
    in Screen, which would map the "\E[30m" to "\E[38;5;0m" anyway.

(c) Change xterm to respect the boldColors resource also when the
    foreground colour is set with SGR 38;5.  I think boldColors is
    really a hack and its effects should not be extended like this.

I could try patching Crawl for solution (a) in a few weeks,
but it would be nice if you could first comment on whether
you consider that a reasonable way to fix the problem.

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 
'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.21-1-k7
Locale: LANG=fi_FI.UTF-8, LC_CTYPE=fi_FI.UTF-8 (charmap=UTF-8)

Versions of packages crawl depends on:
ii  libc6                         2.3.6-7    GNU C Library: Shared libraries
ii  libgcc1                       1:4.1.2-4  GCC support library
ii  libncurses5                   5.5-2      Shared libraries for terminal hand
ii  libstdc++6                    4.1.2-4    The GNU Standard C++ Library v3

crawl recommends no packages.

-- no debconf information

Attachment: pgpk9ncNbJkwq.pgp
Description: PGP signature

Reply via email to