Updated list of Cygwin options for CYGWIN env var.
authorOleksandr Gavenko <gavenkoa@gmail.com>
Thu, 31 Dec 2020 23:19:59 +0200
changeset 2485 7c39b8da8353
parent 2484 fcb00dfa7e23
child 2486 796bbf279e20
Updated list of Cygwin options for CYGWIN env var.
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.