bug-readline
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-readline] Issue with colored-stats option with readline-6.3-rc1 on


From: Martin Wesdorp
Subject: [Bug-readline] Issue with colored-stats option with readline-6.3-rc1 on Ubuntu 10.04.4LTS
Date: Tue, 10 Dec 2013 22:39:31 +0100
User-agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130330 Thunderbird/17.0.5

Hi,

I am doing some tests with the new colored-stats feature in readline-6.3-rc1 on an Ubuntu 10.04 LTS system. The new feature is enabled by adding "set colored-stats on" in the inputrc file. When readline() is then called from my app (sqsh) and initalizes, it throws an error:

readline: LS_COLORS: unrecognized prefix: hl
readline: unparsable value for LS_COLORS environment variable

When I use filename completion then, the output is garbled with some strange control characters after the printed filenames. The problem is that my system uses the prefix "hl" for hardlinked files in LS_COLORS instead of "mh". The output of dircolors shows:

LS_COLORS='rs=0:di=01;34:ln=01;36:hl=44;37:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:';
export LS_COLORS

So the fourth entry specifies the "hl" prefix for hardlinked files that should be shown as white on blue. However, readline-6.3-rc1 expects the prefix "mh" for hardlinked filenames. When I modify the $LS_COLORS environment variable and change "hl" to "mh", then readline works great, but then 'ls' starts to complain that it doesn't understand the "mh" prefix. When I modify the code of readline and change the occurences of "mh" to "hl" in the appropriate places then everything works fine again. But on some of my other systems like Cygwin and CentOS the "mh" prefix is correct and "hl" is unknown. So probably the best solution would be to add an additional "hl" entry to the _rl_color_indicator[] array and indicator_name[] lists.

The reason that I get garbage data when I use filename completion after _rl_parse_colors() fails, is due to the fact that this function frees the _rl_color_ext_list of $LS_COLORS entries when it runs into an unknown entry, but does not disable the feature by setting _rl_colored_stats to 0. In file complete.c the function print_filename() still makes calls to colored_stat_start() and colored_stat_end() then and does not print the correct LEFT and RIGHT combination of colorcode control characters, I think. Wouldn't it be better by the way for _rl_parse_colors() to just ignore an unknown entry in $LS_COLORS instead of discarding all?

Thanks in advance for considering a fix for this issue.

Best regards,
Martin Wesdorp.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]