Updated: mingw-runtime-3.15

Chris Sutcliffe ir0nh34d@gmail.com
Mon Sep 15 16:47:00 GMT 2008

I've made a new version of the mingw-runtime available for download.
For a list of changes see:


New features in release 3.15

* A replacement implementation for MinGW's snprintf() and vsnprintf()
 functions; this further extends the scope of replacement to include
 printf(), fprintf(), sprintf(), vprintf(), vfprintf() and vsprintf()

 - Full support for *all* of the *standard* format conversion specs
  mandated by ISO-C99 and POSIX, (excluding POSIX-XSI extensions).

 - Microsoft's non-standard format conversion specs also supported.

 - Correct formatting of values with MinGW's long double data type.

 As in previous releases, the MinGW implementations of snprintf() and
 vsnprintf() are the default for these two functions, with the MSVCRT
 alternatives being called as _snprintf() and _vsnprintf().

 In the case of the other six replacement functions, MSVCRT provides
 no underscore decorated name by which they may be invoked; thus, the
 MSVCRT implementation for these remains the default.  To enable the
 MinGW replacements for these six functions, users may employ any one
 (or more) of the following, (and *must* #include stdio.h):--

 - Include the `-posix' option, in the GCC command, when compiling.

 - Compile with the `-ansi' option, or any of the `std' options
  which causes __STRICT_ANSI__ to be defined.

 - Define any of __STRICT_ANSI__, _ISOC99_SOURCE, _POSIX_SOURCE,
  _XOPEN_SOURCE or _XOPEN_SOURCE_EXTENDED, *before* including
  *any* system header file, and in particular stdio.h, (which
  *must* be included).

 - Define __USE_MINGW_ANSI_STDIO with a non-zero value, *before*
  including *any* system header file.

 - Define __MINGW_FEATURES__ to represent any odd valued unsigned
  long long integer, (i.e. __MINGW_FEATURES__ & 0x1ULL == 0x1ULL),
  *before* including *any* system header file.

 - Microsoft's convention of printing at least three exponent digits,
  for "%e" format, (and for "%g" when appropriate), is retained as
  default; support for _set_output_format(_TWO_DIGIT_EXPONENT) is
  included, for users of MSVCR80.DLL (and later).

 - Users preferring the ISO-C99/POSIX standard of only two exponent
  digits may set PRINTF_EXPONENT_DIGITS=2, in the environment; this
  capability is supported by all of the MinGW replacement functions
  named above, for users of all versions of MSVCRT.

 N.B. *All* of the above techniques, which induce the selection of
 the MinGW replacement functions may be overridden, by *explicitly*
 defining __USE_MINGW_ANSI_STDIO as zero, *before* including *any*
 system header file.

 When the MinGW replacement functions have been selected, by any of
 the above methods, the original MSVCRT function may be invoked by
 prefixing `__msvcrt_' to the function name, e.g. __msvcrt_printf().

* A replacement implementation for the getopt() family of functions,
 adding support for the GNU getopt_long_only() function.  Users
 should note that this intentionally *removes* support for the BSD
 or Mac OS-X specific, and non-standard, `optreset' global variable;
 to reset the getopt() scanner, use `optind = 0;' instead of relying
 on this non-standard, non-portable and now-unsupported feature.

To update your installation, click on the "Install Cygwin now" link on
the http://cygwin.com/ web page.  This downloads setup.exe to your
system.  Then, run setup and answer all of the questions.

If you have questions or comments, please send them to the Cygwin
mailing list at: cygwin@cygwin.com .


If you want to unsubscribe from the cygwin-announce mailing list, look
at the "List-Unsubscribe: " tag in the email header of this message.
Send email to the address specified there.  It will be in the format:


If you need more information on unsubscribing, start reading here:


Please read *all* of the information on unsubscribing that is
available starting at this URL.


Chris Sutcliffe

More information about the Cygwin-announce mailing list