View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000081||tcsh||[All Projects] General||public||2019-05-17 13:58||2019-05-17 14:04|
|Target Version||Fixed in Version|
|Summary||0000081: Filename expansion inside square brackets is apparently broken|
|Description||I have been running TCSH version 6.21.00 on my Slackware system since Patrick Volkderding made the new build of TCSH part of Slackware-current on May 10.|
However, I ran into a really nasty issue with this new version of TCSH that breaks filename pattern matching within square brackets, specifically, I tried upgrading (via upgradepkg) several of my Slackware packages selectively by excluding some of the packages that I had downloaded so that I could install the excluded packages as additions instead of upgrading them.
I excluded the kernel packages, using the following command: upgradepkg [b-c,l-z]*.t?z
However, much to my dismay, it went ahead and upgraded the kernel-* packages anyway, deleting my three already installed kernel packages that I wanted to keep in place as secondary bootup and backups.
Sure enough, when I type "ls [b-c,l-z]*.t?z, it includes the kernel-* files in the list of files, too.
Obviously, this is not the way it should work, so I downloaded version 6.21.00 from source, then compiled it using the Slackware build script (called a SlackBuild) to see if reverting the previous kernel would correct the error, and Shazam! yes it works as it should, properly excluding the kernel-* files in my filespec.
I'm certain that this is a bug, and a very bad one at that, so I'll be using the previous version of TCSH for now, but I wanted to let you know about my problem with the current version so that maybe something could be done before someone unintentionally wipes out an entire file system or something else because of this bug.
|Steps To Reproduce||Here is the list of files I'm trying to exclude, with no other files in the directory where they are:|
Using Bash, I get the proper response with this command: ls [a-d,l-z]*
ls: cannot access '[a-d,l-z]*': No such file or directory
Using version 6.20.00 of TCSH: ls [a-d,l-z]*
/bin/ls: No match.
Using the buggy version 6.21.00 version of TCSH: ls [a-d,l-z]*
Clearly something is not right.
|Tags||No tags attached.|
I made a typo, and I can't find a way to edit my original bug report, so I'm writing my correction down here in the note box to explain that I downloaded the source and built version 6.20.00, NOT 6.21.00 to see if the bug went away by using the previous TCSH.
Sorry about my error.