20 |
20 |
21 set PATH=c:\opt\cygwin\bin;%PATH% |
21 set PATH=c:\opt\cygwin\bin;%PATH% |
22 |
22 |
23 Cygwin behavior can be altered via ``CYGWIN`` env var:: |
23 Cygwin behavior can be altered via ``CYGWIN`` env var:: |
24 |
24 |
25 set CYGWIN=nodosfilewarning noglob |
25 set CYGWIN=noglob wincmdln |
26 |
26 |
27 Currently only ``noglob`` is useful. It disables interpreting special shell wildcard characters |
27 * ``noglob`` disable reinterpreting positional arguments native Windows application as if they |
28 passed verbatim from native Windows apps. So you will unable to do ``ls *`` from ``cmd.exe``. But |
28 contain shell wildcards. With ``glob`` running ``ls *`` from ``cmd`` works as if it is run from |
29 without this option (``glob`` is default) Mercurial patterns, like ``{rev}`` are broken. For me |
29 Unix shell. |
30 native Windows Emacs can't determine file revision with my ``hg`` wrapper. |
30 |
|
31 When I used native Emacs & Cygwin wrapper for ``hg`` default option ``glob`` broke Emacs VC mode |
|
32 because Emacs is using ``{rev}`` as one of the arguments and it was replaced by empty string when |
|
33 ``glob`` is active. |
|
34 |
|
35 ``noglob`` enshures that there are no any magical replacement. |
|
36 |
|
37 * ``wincmdln`` helps during process invocation troubleshooting. Cygwin maintains own structures for |
|
38 program positional arguments so argument list is invisible to Windows programs like Process |
|
39 Monitor. The option ``wincmdln`` tells Cygwin program to copy internal structure for arguments to |
|
40 Windows managed structure making arguments visible. |
31 |
41 |
32 https://cygwin.com/cygwin-ug-net/using-cygwinenv.html |
42 https://cygwin.com/cygwin-ug-net/using-cygwinenv.html |
33 The ``CYGWIN`` environment variable. Available options. |
43 The ``CYGWIN`` environment variable. Available options. |
34 |
44 |
35 Set ``HOME`` env var:: |
45 Set ``HOME`` env var:: |