Bram, The code in src/os_unix.c:mch_expand_wildcards which detects what shell is being used doesn't work properly if 'shell' has been set to a shell and arguments (e.g., "/bin/tcsh -f").
5354 else if ((len = STRLEN(p_sh)) >= 3) 5355 { 5356 if (STRCMP(p_sh + len - 3, "csh") == 0) 5357 shell_style = STYLE_GLOB; 5358 else if (STRCMP(p_sh + len - 3, "zsh") == 0) 5359 shell_style = STYLE_PRINT; 5360 } 5361 if (shell_style == STYLE_ECHO && strstr((char *)gettail(p_sh), 5362 "sh") != NULL) 5363 shell_style = STYLE_VIMGLOB; Vim checks whether the last 3 characters of 'shell' are "csh". Since the last 3 characters of p_sh in this case are " -f", Vim then checks whether "sh" is in gettail(p_sh) and uses sh-compatible shell expansion. It looks like a safer approach would be to grab p_sh up to the first whitespace and then use gettail() on that to get the shell name. That should reduce the false-positive rate for setting STYLE_VIMGLOB in line 5363. Although, it'll still fail with shells like fish which will pass the strstr(..., "sh") check but not work with STYLE_VIMGLOB. fish does work with STYLE_ECHO, so we could add that to the special-case list. -- James GPG Key: 1024D/61326D40 2003-09-02 James Vega <james...@debian.org> -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org