This recently added behavior is quite annoying to the people used to it being case insensitive. Furthermore, the setting is unable to be adjusted in the .tcsh.config of the user, but rather has to be globally edited in the /etc/profile.d/tcsh-settings (and only by root). I've edited the .tcsh-settings to allow a user to choose to have this changed feature or not, via setting a TCSH_IGNORE_CASE variable in .tcsh.config. I personally would suggest that the enhanced autocomplete (with case insensitivity and such) be turned OFF by default (as before), but if higher powers have deemed it necessary, at least now it can be chosen by the user. My coding skills are severely lacking, so if you guys have a more elegant way of doing what I have, please do. Thanks. diff /etc/profile.d/tcsh-settings.original /etc/profile.d/tcsh-settings 87c87,91 < set complete=enhance --- > if ( $?TCSH_IGNORE_CASE ) then > set complete=enhance > else > unset complete > endif diff ~/.tcsh.config.original ~/.tcsh.config 65a66,73 > > # > # Ignore case? > # > # Value: set to enable, unset to disable. (Default: enabled) > # > setenv TCSH_IGNORE_CASE 1 >
Autocorrection is also annoying and unable to be changed by the user...the following fixes that (and also contains fixes for my above bug). With what's below, the defaults are same as they come now, but now they are at least user modifiable... diff /etc/profile.d/tcsh-settings.original /etc/profile.d/tcsh-settings 87c87,91 < set complete=enhance --- > if ( $?TCSH_SHELL_IGNORE_CASE ) then > set complete=enhance > else > unset complete > endif 90c94,98 < set correct=all --- > if ( $?TCSH_SHELL_SPELLING_COMPLETION ) then > set correct=all > else > unset correct > endif diff ~/.tcsh.config.original ~/.tcsh.config 65a66,79 > > # > # Ignore case? > # > # Value: set to enable, unset to disable. (Default: enabled) > # > #setenv TCSH_SHELL_IGNORE_CASE 1 > > # > # Perform both completion and spelling correction of command line? > # > # Value: set to enable, unset to disable. (Default: enabled) > # > setenv TCSH_SHELL_SPELLING_COMPLETION 1
I'll look into adding this in the next days, however, I want to point out two issues: - The user can *always* override settings simply by entering them in his .tcshrc. - complete=enhance does more than just making command line completion case insensitive, so controlling it with TCSH_SHELL_IGNORE_CASE isn't 100% accurate.
Oh, I completely agree about the .cshrc/.tcshrc being able to override this behavior, but since it looks like .tcsh.config is trying to be the centralized tcsh configuration file for the user (with conveinent descriptions of what each setting does), I suggest it would be best for users to allow all the defaults given in /etc/profile.d/tcsh-settings to be easily modified in ~/.tcsh.config. My tcsh behavior changed after updating and nothing in the ~/.tcsh.config could return my behavior to normal. As for the complete=enhance, I am only casually familiar with this setting based off of its description in tcsh-settings, so I agree it may not be 100% accurate.
Ah yes... understood. The previous tcsh config files were very simplistic and did things in the wrong place causing some bugs that people have been reporting. I figured it was best to just replace them altogether with a more feature-complete set, and provide the config file to give those people who don't know much about tcsh a chance to easily change them. And those people who use TCSH enough to care about it's exact behaviour can easily enough create their own .tcshrc. Anyway, I'll try to add your suggestions in a backward compatible way. Thanks!
note to self: done
Fixed in 6.14-r1