# HG changeset patch # User Oleksandr Gavenko # Date 1609449599 -7200 # Node ID 7c39b8da8353b517abb271aa4498f6b84f2f3ea1 # Parent fcb00dfa7e23f057a9349ea105c7e03ce29cd5e0 Updated list of Cygwin options for CYGWIN env var. diff -r fcb00dfa7e23 -r 7c39b8da8353 cygwin.rst --- a/cygwin.rst Wed Dec 30 23:13:56 2020 +0200 +++ b/cygwin.rst Thu Dec 31 23:19:59 2020 +0200 @@ -22,12 +22,22 @@ Cygwin behavior can be altered via ``CYGWIN`` env var:: - set CYGWIN=nodosfilewarning noglob + set CYGWIN=noglob wincmdln + +* ``noglob`` disable reinterpreting positional arguments native Windows application as if they + contain shell wildcards. With ``glob`` running ``ls *`` from ``cmd`` works as if it is run from + Unix shell. -Currently only ``noglob`` is useful. It disables interpreting special shell wildcard characters -passed verbatim from native Windows apps. So you will unable to do ``ls *`` from ``cmd.exe``. But -without this option (``glob`` is default) Mercurial patterns, like ``{rev}`` are broken. For me -native Windows Emacs can't determine file revision with my ``hg`` wrapper. + When I used native Emacs & Cygwin wrapper for ``hg`` default option ``glob`` broke Emacs VC mode + because Emacs is using ``{rev}`` as one of the arguments and it was replaced by empty string when + ``glob`` is active. + + ``noglob`` enshures that there are no any magical replacement. + +* ``wincmdln`` helps during process invocation troubleshooting. Cygwin maintains own structures for + program positional arguments so argument list is invisible to Windows programs like Process + Monitor. The option ``wincmdln`` tells Cygwin program to copy internal structure for arguments to + Windows managed structure making arguments visible. https://cygwin.com/cygwin-ug-net/using-cygwinenv.html The ``CYGWIN`` environment variable. Available options.