1 2 [Home] WishList 3 4 Home | RecentChanges | Preferences 5 _________________________________________________________________ 6 7 Surprised by this behavior...is this a bug? 8 9 (Goal: e.g. distinguish between completely numeric args/names and 10 those containing non-numerics) 11 12 % touch 1023 pex103 pex103a 104a z101 16a02 1999 2001 2001_A_Space_Odyssey 13 % ls -1 *[^0-9]* 14 104a 15 16a02 16 2001_A_Space_Odyssey 17 pex103 18 pex103a 19 z101 20 # (great, looks good to me. Got everything containing a nonnumeric, no more, n 21o less.) 22 23 % foreach p ( 1023 pex103 pex103a 104a z101 16a02 1999 2001 2001_A_Space_Odyss 24ey ) 25 foreach? if ( $p !~ *[^0-9]* ) echo $p 26 foreach? end 27 # (no output. Huh?) 28 29 % foreach p ( 1023 pex103 pex103a 104a z101 16a02 1999 2001 2001_A_Space_Odyss 30ey ) 31 foreach? if ( $p =~ *[^0-9]* ) echo $p 32 foreach? end 33 1023 (!) 34 pex103 35 pex103a 36 104a 37 z101 38 16a02 39 1999 (!) 40 2001 (!) 41 2001_A_Space_Odyssey 42 # (Huh?) 43 44 The [MAN page description] for =~ and !~ just refer to "(see [Filename 45 substitution])', but evidently there is a (unexplained) difference. 46 The actual filename globbing looks correct to me, but the pattern 47 matching operator behavior is unexpected, if I'm not missing 48 something. 49 50 tcsh 6.09.00 51 52 - bhooglan 53 _________________________________________________________________ 54 55 Wish "tcsh -l" would accept other flags. At least "-c". 56 57 Currently I can't get ssh to have the right environment unless it is a 58 login shell. The .ssh/environment doesn't work for me because I login 59 to different machines with different environments. One thing to do 60 would be to not have the different environment for login compared to 61 other shells, but what I would really like is something like... 62 63 ssh remote_application_server "tcsh -l -c application" 64 65 The "ssh -t" doesn't work for me and I don't know why. 66 67 Thanks Tim 68 69 Fix limit vmemoryuse in Linux 70 71 In Linux tcsh is unable to limit vmemoryuse. This is because 72 RLIMIT_VMEM isn't defined, instead Linux has RLIMIT_AS which means the 73 same. On Google groups I found patches suggested by Komazaki at 74 http://groups.google.com/groups?hl=sv&lr=&ie=UTF-8&oe=ISO-2022-JP&selm 75 =m3snmczvfc.wl%40thinkpad.osk.3web.ne.jp.osk.3web.ne.jp and Ogawa 76 Hirofumi suggests a patch at 77 http://groups.google.com/groups?hl=sv&lr=&ie=UTF-8&selm=87snmba4id.fsf 78 %40devron.myhome.or.jp None of these patches seems to have been 79 included in version 6.12 as 6.12 still has this problem. 80 81 /Henrik?? 82 83 New idea: use last line (or n'th line) of output as input to new 84 command. 85 86 I often find myself typing something like: 87 88 >locate lshort 89 /usr/local/stow/share/texmf/doc/latex/general/lshort.dvi . . . 90 /usr/local/store/share/texmf/doc/latex/general/lshort.dvi 91 92 >xdvi /usr/local/store/share/texmf/doc/latex/general/lshort.dvi 93 94 Now the way I accomplish writing the last line, is by moving the mouse 95 over the last line, and the copy paste it. It would be very nice, if 96 the shell could keep the last n lines of output in a buffer. This way 97 one could avoid using the mouse by typing something like: 98 99 >xdvi <M-1> 100 101 which would insert the last line of output, similarly <M-2> could 102 insert the second last line of output. (the exact commands used is of 103 course configured via bindkey). 104 105 This could save me a couple of times to the mouse everyday - 106 di010070@diku.dk 107 108 The shell does not capture any output from commands it runs, so 109 this is really more a feature for the terminal (be it hardware 110 or software). --Kim 111 112 Fix memory leak related to aliasrun(). Precmd, Cwdcmd etc. leak 113 memory. 114 115 Fix migrate -site $$... Seems to hang... (aix370) 116 117 Fix history in loops. 118 119 New idea: sed operations on variables. 120 121 Lots of people seem to like the idea to be able to do sed type 122 operations on shell variables. Maybe we can extend the syntax of the 123 variable editing to understand string operations. So I would like to 124 be able to use: 125 126> set a="this is a STRING" 127> echo $a:[3-] 128is is a STRING 129> echo $a:[#] 13016 131> echo $a:[6-7] 132is 133> echo $a:[-2] 134ng 135> echo $a:[-20] 136Subscript out of bounds. 137> echo $a:[2-20] 138Subscript out of bounds. 139> echo $a:[1-1]:u$a:[2-]. 140This is a string. 141 142 </blockquote> 143 144 Fix pipelines that contain builtins so that they behave correctly. 145 146 I tried to fix that (most of the code is in sh.sem.c, but it works 147 only for non POSIX machines cause otherwise the setpgid() I added 148 fails). 149 150 Fix the correct code... How to do that involves A.I.... 151 152 Rewrite the whole thing. It has taken to much beating over the 153 years... 154 155 Add another hook like precmd to be executed after the prompt but 156 before the command. 157 158 Add instructions for using configure in the README file. 159 160 Make manual page references links in the HTML version of the manual. 161 162 It is possible to match the words with ([0-9]) after them. Links could 163 be using the manual page CGI at http://www.tac.eu.org/cgi-bin/man-cgi 164 for content. 165 166 Add OpenBSD?? to the Makefile, etc. 167 168 A Csh compatability mode would be nice: I know tcsh is supposed to be 169 fully csh compatible, but csh scripts containing such constructs as 170 '$<' , 'if ( -d $file ) cd $file' or any of a great number of other 171 valid csh commands, will produce syntax errors or the like with tcsh, 172 which is frustrating when writing/maintaining csh scripts which have 173 to run on systems with only tcsh and systems with only csh. If such a 174 thing exists, I couldn't find it after searching the man page for two 175 hours, and it should be better documented 176 177 Add hooks for command completion Either for a dynamically loaded 178 library, or a callback to another program that allows another pass to 179 complete the command. As a trivial example, the module could duplicate 180 the functionality of aliases. A tcsh_mud.so could define sigh, groan, 181 cheer, lol, etc to produce output if they weren't actually valid 182 commands. 183 184 Properly deal with : in filename substitution 185 186 Given something like 187 188 blah.foo:*.foo 189 190 expand it properly to something like 191 192 blah.foo:baz.foo:bob.foo:bar.foo 193 194 It already does this, if you have a file named like that... --Kim 195 196 Directory commands don't handle blanks in filenames. If I have an 197 environment variable such as: 198 199% setenv TOMCAT '/c/Program? Files/Apache? Software Foundation/Tomcat? 5.0' 200and then do the following, setenv complains that it has too many arguments. 201% cd /tmp 202% cd "$TOMCAT" 203setenv: Too many arguments 204% dirs 205/c/Program? Files/Apache? Software Foundation/Tomcat? 5.0 /tmp 206% pushd "$TOMCAT" 207/c/Program? Files/Apache? Software Foundation/Tomcat? 5.0 208setenv: Too many arguments. 209% pushd /tmp 210/tmp /c/Program? Files/Apache? Software Foundation/Tomcat? 5.0 211% pushd 212/c/Program? Files/Apache? Software Foundation/Tomcat? 5.0 /tmp 213setenv: Too many arguments. 214 215 Wish tcsh would feature fc (fix command) as in bash !Wish tcsh would 216 featuer fc (fix command) as in bash ! 217 218 i wish for read-only CVS access to the sources (as i am on the 219 bleeding egde) 220 221 Functions would be useful! As would being able to redirect stderr (or 222 other file descriptors) independently of stdout! -- Rohan Talip 223 224 Don't complete commands with non-executable files. For example if I 225 have a file called README in a directory in the PATH, and I type R TAB 226 tcsh will complete README as a command. But README does not have the x 227 bit set, so it's kind of pointless to have that completion. 228 229 --> Setting the shell variable "recognize_only_executables" will give 230 you this behavior. --Waz 231 232 If I have in my .tcshrc: complete {cd,pushd} p/1/d/ and I type 233 "complete cd" at the shell prompt nothing is printed. It would be nice 234 if {cd,pushd} p/1/d/ was printed. 235 236 --> I had programmed this feature a while ago but have not submitted 237 it because the implementation is not robust enough to keep TCSH from 238 crashing when special characters are part of the pattern. I'll get 239 back to it at some point! --Waz 240 241 It would be nice if "set autolist" would be on by default. 242 243 --- 244 245 Unicode (UTF-8) doesn't seem to work. It's not even possible to "make 246 catalogs" in unicode environment. Also unicode support (and other 247 multibyte encodings) should depend on environment variables 248 (LC_CTYPE), not on "set dspmbyte". On unicode terminal translations 249 show empty characters instead of messages. 250 251 In addition to message catalogs, there are more problems: 252ipi:~/test/tcsh/bin> ls 253tcsh ��� 254ipi:~/test/tcsh/bin> set dspmbyte utf8 255ipi:~/test/tcsh/bin> ls ??? 256ls: No match. 257 258 Unicode is used more and more, and is default on many environments, so 259 this really should be fixed. --mpaananen 260 _________________________________________________________________ 261 262 When I have a script called from complete I would like to have the the 263 existing text from the command line passed to that script so that it 264 can look at all existing words to detemine what it should output as 265 the completion list. 266 267 For example: 268 269 complete prog 'n/-x/`myscript`' 270 271 Then when I do this: 272 273 > prog -a A -b B -x <TAB> 274 275 The script would get 'prog -a A -b B -x ' which would allow the script 276 to base its -x completions on the options given for -a and -b (or if 277 they aren't present give nothing - or a message saying that they are 278 required). Setting a temporary environment variable before executing 279 the command would also work and would probably be safer. 280 281 Perhaps this info is already available as a special variable that can 282 be manually passed to the script: complete prog 'n/-x/`myscript 283 $cmd_line`'? 284 285 Update: I looked into this further by actually downloading the code 286 and looking through it. It doesn't seem that this information is 287 available anywhere, but I did manage to achieve what I wanted by 288 adding the following two lines around the call to tw_complete (line 289 278, tw.parse.c 6.12.00): 290 291 added> tsetenv(STRCURRCMDLINE, (Char *)&qline); 292 looking = tw_complete(cmd_start, &wordp, &pat, looking, &suf); 293 294 added> Unsetenv(STRCURRCMDLINE); 295 296 And I added a definition for STRCURRCMDLINE to be "CURRCMDLINE". 297 298 This provides the environment variable CURRCMDLINE to any 299 script/program running under complete. The only issue I see is picking 300 a sufficiently obscure environment variable that noone else is likely 301 to use, but have it readable enough to understand what it is for. It 302 also shouldn't overwrite an existing ENV variable if it is already in 303 use. 304 _________________________________________________________________ 305 306 Home | RecentChanges | Preferences 307 Edit text of this page | View other revisions 308 Last edited March 25, 2004 10:27 (diff) 309 Search: ____________________ 310