Weber, Mark | 20 Mar 22:10 2014

patch for command line containing equals sign

and related.

Thanks for posting how the new behavior is different from the old.
I am having a related issue, with C++ code that parses the command line.

The command line we support is something like -
  program_name   arg1  -option1=val1  -option2=val2  ...

You get the idea.

Now, with the above mentioned Cygwin patch, we are seeing the input arguments

arg1  "-option1=val1"   "-option2=val2"  ...

If this were the extent of the issue, it would be no big deal to strip off the quotes. However, the user may have
put quotes on the command line himself, which Cygwin now moves around.
Such as:
  program_name  arg1  -option1="file name with spaces in it"

Is there any way to reliably tell what the user entered on the command line?

Oleg Kravtsov | 3 Mar 19:34 2014

[PATCH] Fix errno codes set by opendir() in case of problems with the path argument

Currently cygwin has a problem with errno code set by opendir() 
function. It always sets errno to ENOENT.
After applying the path opendir() sets errno to 'ENAMETOOLONG' when path 
or a path component is too long,
'ELOOP' when a loop of symbolic links exits in the path.

Best regards,

2014-02-18  Oleg Kravtsov <Oleg.Kravtsov <at>>

        * (opendir): Set errno code depending on the type of an error
        instead of always setting it to ENOENT.

Attachment (opendir_errno_fix.patch): text/x-diff, 858 bytes
Ray Donnelly | 9 Feb 01:25 2014

[PATCH] Expand $CYGWIN error_start processing

I want to use QtCreator as my debugger but the hardcoded
nature of error_start makes that impossible.

This change allows a formatted commandline to be used where
'|' is used to represent spaces and <program-name> and
<process-id> are special tokens.

In my case, I set my CYGWIN env. var to

.. note, QtCreator doesn't work if passed the program name
and must be invoked with the -debug option.

Ray Donnelly (1):
  * winsup/cygwin/ Expand $CYGWIN error_start          
    processing so that custom commandlines can be passed to          
    the debugger program using '|' as an argument delimiter          
    and <program-name> and <process-id> as special tokens.

 winsup/cygwin/ | 50 +++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 46 insertions(+), 4 deletions(-)



Jon TURNEY | 7 Feb 17:36 2014

[PATCH] Add minidump write utility

This patch adds a 'minidumper' utility, which functions identically to
'dumper' except it writes a Windows minidump, rather than a core file.
I'm not sure if this is of use to anyone but me, but since I've had the patch
sitting around for a couple of years, here it is...

2014-02-07  Jon TURNEY  <jon.turney <at>>

	* New file.
	* (CYGWIN_BINS): Add minidumper.
	* utils.xml (minidumper): New section.
Index: utils/
RCS file: /cvs/src/src/winsup/utils/,v
retrieving revision 1.113
diff -u -u -p -r1.113
--- utils/	19 Nov 2013 11:14:36 -0000	1.113
+++ utils/	14 Jan 2014 00:01:13 -0000
 <at>  <at>  -56,7 +56,7  <at>  <at>  MINGW_CXX      :=  <at> MINGW_CXX <at> 

 # List all binaries to be linked in Cygwin mode.  Each binary on this list
 # must have a corresponding .o of the same name.
-CYGWIN_BINS := ${addsuffix .exe,cygpath getconf getfacl ldd locale kill mkgroup \
+CYGWIN_BINS := ${addsuffix .exe,cygpath getconf getfacl ldd locale kill minidumper mkgroup \
         mkpasswd mount passwd pldd ps regtool setfacl setmetamode ssp tzset umount}

 # List all binaries to be linked in MinGW mode.  Each binary on this list
(Continue reading)

Adam Dinwoodie | 29 Jan 17:46 2014

[PATCH] Snapshot install instructions use bz2, not xz


I've attached a minor correction to the FAQ entry on installing
snapshots, to note that snapshots are now .xz archives, rather than

I've not been able to build this: the docs build requires "fop", which
isn't available in the main Cygwin repositories, and I don't
particularly want to set up this machine to start pulling packages from
Cygwin Ports.

2014-01-29  Adam Dinwoodie

	* faq-setup.xml (faq.setup.snapshots): Use .xz not .bz2.
Attachment (faq-patch.diff): text/x-diff, 1396 bytes
Daniel Dai | 20 Jan 07:02 2014

[PATCH] Fix parameter passing containing quote/equal to Windows batch command

We notice one issue when running a Windows batch command inside
cygwin. Here is one example.

Simple batch file:
echo %1

Run it under cygwin:
./a.bat a=b

./a.bat "a=b"

If we pass additional \"
./a.bat "\"a=b\""

There seems no way to pass a=b into bat.

Attach quote.patch contains a fix. It does two things:
1. If the parameter contains a equal sign, automatically add quote
(similar to space, tab, new line, quote cygwin already do)
2. If the parameter is already quoted, don't quote again

Index: cygwin/
RCS file: /cvs/src/src/winsup/cygwin/,v
(Continue reading)

Christopher Faylor | 8 Jan 06:47 2014

Some of my email didn't go through in December

I changed my email configuration in December and that resulted in some mailing lists not thinking I was subscribed.  So some of
my timely responses to messages here are showing up here in an untimely

I noticed this when Corinna made the same observation that I thought I
had and then realized that my messages had never shown up.



Ray Donnelly | 7 Jan 17:31 2014

Request for feedback on 3 patches I posted in December.


Could someone please look over these and give me some feedback?



Corinna Vinschen | 7 Jan 16:12 2014

Re: [PATCH] Reattach trailing dirsep on existing directories too.

On Dec 22 01:03, Ray Donnelly wrote:
> I hope this is OK and I've done it in the best place. Please advise if
> it needs any changes.

I have no idea if this is ok.  This is a patch to a very crucial
function in terms of path handling, and it's not clear that this isn't
doing the wrong thing.  What is this patch trying to accomplish?  Do you
have example user space code which is failing for this very reason?



Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat
Mark Geisert | 31 Dec 06:35 2013

[PATCH] FAQ update: packages needed to build Cygwin

Hope I'm doing this correctly.  Here is the ChangeLog entry followed by 
the patch.  I wasn't sure if patch originator or patch committer, if 
different, gets their name in the ChangeLog entry.  Patch rationale 
available on request.



2013-12-31  Mark Geisert  <mark <at>>

 	* faq-programming.xml: Update packages needed to build Cygwin.


Index: faq-programming.xml
RCS file: /cvs/src/src/winsup/doc/faq-programming.xml,v
retrieving revision 1.27
diff -u -r1.27 faq-programming.xml
--- faq-programming.xml 5 Jun 2013 07:57:39 -0000       1.27
+++ faq-programming.xml 31 Dec 2013 05:25:33 -0000
 <at>  <at>  -693,11 +693,19  <at>  <at> 

  <para>First, you need to make sure you have the necessary build tools
-installed; you at least need <literal>gcc</literal>, <literal>make</literal>,
-<literal>perl</literal>, and <literal>cocom</literal>. If you want to run
-the tests, <literal>dejagnu</literal> is also required.
(Continue reading)

James Johnston | 25 Dec 00:01 2013

Patch to optionally disable overlapped pipes


As I have recently mentioned on the main Cygwin mailing list, Cygwin by
default creates FILE_FLAG_OVERLAPPED named pipes for the standard file
handles (stdin/stdout/stderr).  These overlapped pipes require all programs
using ReadFile/WriteFile to use overlapped I/O when using the pipes.  Since
standard runtimes in Win32 programs don't normally use overlapped I/O on the
standard file handles, most Win32 programs will exhibit undefined behavior
when called by Cygwin.  In my case, it has resulted in a problem with
calling .NET Framework 4.0 programs from Cygwin (which, coincidentally,
NETFX 4.0 also probably has a bug resulting in undefined behavior that
definitely clashes with overlapped pipes).

The attached patch creates a new "pipe_nooverlap" flag in the CYGWIN
environment variable (similar to the existing pipe_byte flag).  By default,
the flag would not be set and Cygwin will continue to make overlapped pipes
by default, because I did not know if this will result in any breakages
elsewhere in some Cygwin packages.

If the new "pipe_nooverlap" flag is set, then Cygwin won't make overlapped
pipes by default (i.e. pipes made by the pipe or pipe2 functions).  For me,
this got NETFX 4.0 programs working again.  I've been using it all day today
with no ill effects noted.  It seems safe to use.  But I made it a flag
because I am not 100% certain that some package won't break, and it isn't
needed if you are only running Cygwin programs (which presumably use
Cygwin1.dll which presumably is using overlapped I/O everywhere).

If the maintainers feel that a CYGWIN flag isn't necessary and it is safe to
always remove FILE_FLAG_OVERLAPPED, then I can submit a patch that doesn't
have the "pipe_nooverlap" flag - i.e. just assumes the flag is always set.
(Continue reading)