Bash-completion is very slow on MSYS2 when the current user is a domain user. This describes the cause and the solutions.
Expansion of ~* is very slow when you use a domain user. For example:
| --- Tmain/alias-for-unknown-language.d/stderr-actual.txt 2015-08-08 16:01:59.918759200 +0900 | |
| +++ Tmain/alias-for-unknown-language.d/stderr-expected.txt 2015-07-09 22:37:01.408106900 +0900 | |
| @@ -1 +1 @@ | |
| -C:\WORK\universal-ctags\ctags.exe: Unknown language "nosuchlang" in "alias-nosuchlang" option | |
| +ctags: Unknown language "nosuchlang" in "alias-nosuchlang" option |
| From 0d28151eb1de2b3f8196c611d488be8496ad02c0 Mon Sep 17 00:00:00 2001 | |
| From: MURAOKA Taro <koron.kaoriya@gmail.com> | |
| Date: Thu, 2 Feb 2012 01:14:15 +0900 | |
| Subject: [PATCH 1/7] make compilable for 32bit Windows | |
| --- | |
| src/.gitignore | 8 +++++ | |
| src/Attrib.c | 2 +- | |
| src/Make_msvc.mak | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
| src/RdFToI.c | 1 + |
| From f0627cd357082ba27e914810bdfbc47e80e37c92 Mon Sep 17 00:00:00 2001 | |
| From: "K.Takata" <kentkt@csc.jp> | |
| Date: Sat, 25 Jul 2015 21:09:11 +0900 | |
| Subject: [PATCH] Support MSVC | |
| Based on Ruby 2.2's patch: | |
| https://github.com/ruby/ruby/blob/ruby_2_2/ext/fiddle/win32/libffi-3.2.1-mswin.patch | |
| --- | |
| src/x86/ffi.c | 21 +++++++++++++++------ | |
| src/x86/ffitarget.h | 2 ++ |
| REGEDIT4 | |
| [HKEY_CURRENT_USER\Software\Microsoft\Command Processor] | |
| "DisableUNCCheck"=dword:00000001 | |
| #include <cstdio> | |
| #include <iostream> | |
| #include <windows.h> | |
| class Foo { | |
| public: | |
| Foo() { | |
| OutputDebugStringA("Foo::Foo()\n"); | |
| //std::cout << "Foo::Foo()\n"; | |
| //std::printf("Foo::Foo()\n"); |
| #!/bin/bash | |
| # | |
| # check_unused_bash_completion.sh | |
| # | |
| # Check unused bash_completion files and moves them into "unused" | |
| # subdirectory. Loading many completion files makes Cygwin/MSYS bash | |
| # very slow. | |
| # |
| let pathext = ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.tcl" | |
| let s:path_separator = ";" | |
| " Time of split | |
| let stime = reltime() | |
| for i in range(1, 1000) | |
| let s:path_extensions = split(tolower(pathext), s:path_separator) | |
| endfor | |
| echo reltimestr(reltime(stime)) . " (split) " . len(s:path_extensions) | |
| echo s:path_extensions |
| --- a/autoload/proc_w32.c | |
| +++ b/autoload/proc_w32.c | |
| @@ -43,6 +43,7 @@ | |
| #include <windows.h> | |
| #include <winbase.h> | |
| #include <shellapi.h> | |
| +#include <shlobj.h> | |
| #include <shobjidl.h> | |
| #if 0 | |
| # include <winsock2.h> |
| #!/bin/bash | |
| version=7.4 | |
| #unstable=unstable/ | |
| unstable= | |
| patch_url=http://ftp.vim.org/pub/vim/${unstable}patches/${version} | |
| # Get start and end version | |
| version_esc=${version//./\\.} # Escape dots | |
| start=$(gawk '{l = gensub(/'${version_esc}'\.([0-9]+)/, "\\1", 1, $2)} END {printf "%03d", l+1}' README 2> /dev/null || echo 001) |