[Tcsh] various color ls-F fixes

Luke Mewburn luke at mewburn.net
Wed Apr 12 12:41:26 UTC 2023

On 23-04-10 12:39, Kimmo Suominen wrote:
  | On Thu, 23 Mar 2023 at 15:38, Luke Mewburn <luke at mewburn.net> wrote:
  | > Regarding the unsetenv issue below. I experimented with this,
  | > but decided the behaviour was a bit weird if you did something like:
  | >         $ setenv LSCOLORS bad
  | >         Unknown colorls variable '?o'.
  | >         $ setenv LS_COLORS ln=target
  | >         $ unsetenv LS_COLORS
  | >         Unknown colorls variable '?o'.
  | > This last error is from re-parsing the previously errorneous LSCOLORS.
  | >
  | > So I decided not to proceed with that (I have the diff around if
  | > people want it).
  | I think I would like this behaviour but suppress errors in the
  | unsetenv case. Would that be possible? Would it make sense to others?
  | My thinking is that the error was already issued when LSCOLORS was
  | set. If we are "reusing" a bad value, we don't need the error message.

That's a good idea, and I implemented it. See pull request:
as at commit a759e51.

I also extended the ls-F testsuite to exercise more of the parsing
of LSCOLORS and LS_COLORS, and identified & fixed a crash 
when LSCOLORS was >22 chars (11 color pairs).

An example:

	env -i HOME=$HOME TERM=$TERM ./tcsh -f
	> set color printexitvalue
	Unknown LSCOLORS color variable 'Z?'.
	Exit 1

CB was applied, so ls-F shows directories as bold red on bold green.

	> setenv LS_COLORS ln=target:ZZ=0
	Unknown LS_COLORS color variable 'ZZ'.
	Exit 1

Default colors with ln=target worked, so ls-F shows directories in
default blue foreground.

	> unsetenv LS_COLORS

Colors set back to LSCOLORS CBZZ, without a warning for invalid 'ZZ' this time.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://mailman.astron.com/pipermail/tcsh/attachments/20230412/863bda37/attachment.asc>

More information about the Tcsh mailing list