diff options
-rw-r--r-- | winsup/mingw/ChangeLog | 1560 | ||||
-rw-r--r-- | winsup/mingw/include/stdio.h | 418 | ||||
-rw-r--r-- | winsup/mingw/include/wchar.h | 325 |
3 files changed, 2303 insertions, 0 deletions
diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog new file mode 100644 index 00000000000..9e4ebf608e5 --- /dev/null +++ b/winsup/mingw/ChangeLog @@ -0,0 +1,1560 @@ +2002-09-19 Danny Smith <dannysmith@users.sourceforge.net> + + * include/wchar.h: Don't #include sys/types.h, stdlib.h, + string.h. + Guard only non-ANSI names with #ifndef __STRICT_ANSI__, + * include/stdio.h: Add __STRICT_ANSI__ guard for underscored + wide char functions and oldnames. + (__mingw_fseek, __mingw_fwrite): __STRICT_ANSI__ guard. + +2002-09-18 Danny Smith <dannysmith@users.sourceforge.net> + + * mingwex/math/files.txt: Remove inadvertantly added file. + +2002-09-18 Danny Smith <dannysmith@users.sourceforge.net> + + * include/string.h (_strerror): Move into #ifndef + __STRICT_ANSI__ block. + +2002-09-17 Danny Smith <dannysmith@users.sourceforge.net> + + * include/time.h (__need_NULL): Define before including + stddef.h. Thanks to: Rüdiger Dehmel <de@lmnet.de>. + +2002-09-16 Ranjit Matthew <rmathew@hotmail.com> + + * include/stdio.h: Correct comment about directory separator. + +2002-09-12 Danny Smith <dannysmith@users.sourceforge.net> + + * include/sys/time.h (timeval): Add struct definition and + associated macros (copied from w32api/include/winsock.h). + +2002-09-05 Earnie Boyd <earnie@users.sf.net> + + * include/_mingw.h: Increment version to 2.3. + Makefile.in: Ditto. + +2002-09-05 Earnie Boyd <earnie@users.sf.net> + + * mingwex/fegetenv.c: Change to \n line endings. + * mingwex/vsnprintf.c: Ditto. + * mingwex/vsnwprintf.c: Ditto. + +2002-09-02 Danny Smith <dannysmith@users.sourceforge.net> + + * mingwex/math/hypotl.c: Replace with version based on cephes + library. + +2002-08-28 Danny Smith <dannysmith@users.sourceforge.net> + + * include/sys/param.h: Add ENDIAN defines. + * test_headers.c: Include sys/param.h. + +2002-08-28 Danny Smith <dannysmith@users.sourceforge.net> + + * test_headers.c: Don't include varargs.h. + * Makefile.in (test_headers): Don't use -std=xx + with -xc++. + +2002-08-21 Earnie Boyd <earnie@users.sf.net> + + * include/sys/param.h: New File. + +2002-08-21 Danny Smith <dannysmith@users.sourceforge.net> + + * include/math.h (asm): Change to __asm__ throughout. + Expose ISO C99 functions if __GLIPCPP__. + (hypotf): Use hypot, not _hypot in stub. + +2002-08-20 Danny Smith <dannysmith@users.sourceforge.net> + + * include/tchar.h: Ansi-fy another comment. + +2002-08-20 Danny Smith <dannysmith@users.sourceforge.net> + + * include/tchar.h: Ansi-fy comment. + +2002-08-20 Danny Smith <dannysmith@users.sourceforge.net> + + * test_headers.c : New file. + * Makefile.in (test_headers): New target, using it, + (SRCDIST_FILES): Distribute it. + +2002-08-20 Earnie Boyd <earnie@users.sf.net> + + * include/_mingw.h: Increment version to 2.2. + Makefile.in: Ditto. + +2002-08-14 Earnie Boyd <earnie@users.sf.net> + + * include/unistd.h: Add include of process.h. + +2002-08-03 Danny Smith <dannysmith@users.sourceforge.net> + + * include/stdio.h (_fcloseall): Add prototype. + +2002-07-29 Danny Smith <dannysmith@users.sourceforge.net> + + * include/tchar.h (_tfdopen): Correct typo. + +2002-07-29 Danny Smith <dannysmith@users.sourceforge.net> + + * moldname.def.in (chgsign,scalb,finite,fpclass,logb, + nextafter): Add non-underscored stubs. + * moldname-msvcrt.def: Regenerate. + * moldname-crtdll.def: Regenerate. + * mingwex/math: New directory. + * mingwex/rint.c: Move to mingwex/math. + * mingwex/rintf.c: Ditto. + * mingwex/rintl.c: Ditto. + * mingwex/round.c: Ditto. + * mingwex/roundf.c: Ditto. + * mingwex/roundl.c: Ditto. + * mingwex/rint.c: Ditto. + * mingwex/rintf.c: Ditto. + * mingwex/rintl.c: Ditto. + * mingwex/trunc.c: Ditto. + * mingwex/truncf.c: Ditto. + * mingwex/truncl.c: Ditto. + * mingwex/signbit.c: Ditto. + * mingwex/signbitf.c: Ditto. + * mingwex/signbitl.c: Ditto. + * mingwex/copysignl.S: Ditto. + * mingwex/fdim.c: Ditto. + * mingwex/fdimf.c: Ditto. + * mingwex/fdiml.c: Ditto. + * mingwex/fmin.c: Ditto. + * mingwex/fminf.c: Ditto. + * mingwex/fminl.c: Ditto. + * mingwex/fmax.c: Ditto. + * mingwex/fmaxf.c: Ditto. + * mingwex/fmaxl.c: Ditto. + * mingwex/fma.c: Ditto. + * mingwex/fmaf.c: Ditto. + * mingwex/fmal.c: Ditto. + * mingwex/fpclassify.c: Ditto. + * mingwex/fpclassifyl.c: Ditto. + * mingwex/fpclassifyl.c: Ditto. + * mingwex/isnan.c: Ditto. + * mingwex/isnanf.c: Ditto. + * mingwex/isnanl.c: Ditto. + * mingwex/fucom.c: Ditto. + * mingwex/fp_consts.c: Ditto. Split out float and long double + definitions. + * mingwex/math_stubs.c: Remove. + * mingwex/log2.c: Remove. Replaced by math/log2.S + * mingwex/log2f.c: Remove. Replaced by math/log2f.S + * mingwex/log2l.c: Remove. Replaced by math/log2l.S + * mingwex/math/acosf.c : New file. + * mingwex/math/acosl.c: New file. + * mingwex/math/asinf.c: New file. + * mingwex/math/asinl.c: New file. + * mingwex/math/atan2f.c: New file. + * mingwex/math/atan2l.c: New file. + * mingwex/math/atanf.c: New file. + * mingwex/math/atanl.c: New file. + * mingwex/math/cbrt.c: New file. + * mingwex/math/cbrtf.c: New file. + * mingwex/math/cbrtl.c: New file. + * mingwex/math/ceilf.S: New file. + * mingwex/math/ceill.S: New file. + * mingwex/math/cephes_ld.h: New file. + * mingwex/math/copysign.S: New file. + * mingwex/math/copysignf.S: New file. + * mingwex/math/cosf.S: New file. + * mingwex/math/coshf.c: New file. + * mingwex/math/coshl.c: New file. + * mingwex/math/cosl.S: New file. + * mingwex/math/exp2.S: New file. + * mingwex/math/exp2f.S: New file. + * mingwex/math/exp2l.S: New file. + * mingwex/math/expf.c: New file. + * mingwex/math/expl.c: New file. + * mingwex/math/fabs.c: New file. + * mingwex/math/fabsf.c: New file. + * mingwex/math/fabsl.c: New file. + * mingwex/math/floorf.S: New file. + * mingwex/math/floorl.S: New file. + * mingwex/math/fmodf.c: New file. + * mingwex/math/fmodl.c: New file. + * mingwex/math/fp_consts.h: Ditto. + * mingwex/math/fp_constsf.c: Ditto. + * mingwex/math/fp_constsl.c: Ditto. + * mingwex/math/frexpf.c: New file. + * mingwex/math/frexpl.S: New file. + * mingwex/math/hypotf.c: New file. + * mingwex/math/hypotl.c: New file. + * mingwex/math/ilogb.S: New file. + * mingwex/math/ilogbf.S: New file. + * mingwex/math/ilogbl.S: New file. + * mingwex/math/ldexpf.c: New file. + * mingwex/math/ldexpl.c: New file. + * mingwex/math/llrint.c: New file. + * mingwex/math/llrintf.c: New file. + * mingwex/math/llrintl.c: New file. + * mingwex/math/llround.c: New file. + * mingwex/math/llroundf.c: New file. + * mingwex/math/llroundl.c: New file. + * mingwex/math/log10f.S: New file. + * mingwex/math/log10l.S: New file. + * mingwex/math/log1p.S: New file. + * mingwex/math/log1pf.S: New file. + * mingwex/math/log1pl.S: New file. + * mingwex/math/log2.S: New file. + * mingwex/math/log2f.S: New file. + * mingwex/math/log2l.S: New file. + * mingwex/math/logb.c: New file. + * mingwex/math/logbf.c: New file. + * mingwex/math/logbl.c: New file. + * mingwex/math/logf.S: New file. + * mingwex/math/logl.S: New file. + * mingwex/math/lrint.c: New file. + * mingwex/math/lrintf.c: New file. + * mingwex/math/lrintl.c: New file. + * mingwex/math/lround.c: New file. + * mingwex/math/lroundf.c: New file. + * mingwex/math/lroundl.c: New file. + * mingwex/math/modff.c: New file. + * mingwex/math/modfl.c: New file. + * mingwex/math/nearbyint.S: New file. + * mingwex/math/nearbyintf.S: New file. + * mingwex/math/nearbyintl.S: New file. + * mingwex/math/nextafterf.c: New file. + * mingwex/math/powf.c: New file. + * mingwex/math/powl.c: New file. + * mingwex/math/powil.c: New file. + * mingwex/math/remainder.S: New file. + * mingwex/math/remainderf.S: New file. + * mingwex/math/remainderl.S: New file. + * mingwex/math/remquo.S: New file. + * mingwex/math/remquof.S: New file. + * mingwex/math/remquol.S: New file. + * mingwex/math/scalbn.S: New file. + * mingwex/math/scalbnf.S: New file. + * mingwex/math/scalbnl.S: New file. + * mingwex/math/sinf.S: New file. + * mingwex/math/sinhf.c: New file. + * mingwex/math/sinhl.c: New file. + * mingwex/math/sinl.S: New file. + * mingwex/math/sqrt.c: New file. + * mingwex/math/sqrtf.c: New file. + * mingwex/math/sqrtl.c: New file. + * mingwex/math/tanf.S: New file. + * mingwex/math/tanhf.c: New file. + * mingwex/math/tanhl.c: New file. + * mingwex/math/tanl.S: New file. + * mingwex/Makefile.in: Adjust VPATH for source files in + mingwex/math. + Adjust MATH_OBJS. + Add MATH_DISTFILES and use it to build source distro. + * include/ math.h: Add protypes for new functions and + reorganise to reflect ANSI,C99 status. + +2002-06-19 Danny Smith <dannysmith@users.sourceforge.net> + + * include/tchar.h (_getts): Define as _getws for _UNICODE. + (_putts): Define as _putws for _UNICODE. + Thanks to: Tomasz Pona <cochisek@poczta.onet.pl> for report. + +2002-06-18 Danny Smith <dannysmith@users.sourceforge.net> + + * include/float.h: #include_next<float.h> before header guard. + +2002-06-18 Casper S. Hornstrup <chorns@users.sourceforge.net> + + * include/_mingw.h (__MINGW_IMPORT): Check for prior definition before + defining. + * include/excpt.h (): Include windef.h not windows.h. + * include/fcntl.h (_O_SHORT_LIVED): Add define. + (_chmod): Add prototype. + (_creat): Correct prototype. + (SH_DENY*): Rename defines to _SH_DENY*. + (SH_DENY*): Add Non-ANSI names for _SH_DENY*. + include/stdio.h (_IOMYBUF, _IOEOF, _IOERR, _IOSTRG, + _IOAPPEND): Add defines. + (_wfindfirst): Correct prototype. + (_wfdopen): Add prototype. + * include/stdlib.h (_rotl, _rotr, _lrotl, _lrotr): Add + prototypes. + * include/string.h (_mbschr, _mbstok, _mbsncat): Remove + prototypes. + (_wcsdup): Correct prototype. + * include/mbstring.h: Remove comments about _mbschr, _mbstok, + _mbsncat being in string.h. + * include/wchar.h (_wfindfirst): Correct prototype. + * include/tchar.h (_tfdopen): Add _UNICODE mappings. + +2002-06-15 Earnie Boyd <earnie@users.sf.net> + + * include/_mingw.h: Increment to version 2.1. + * Makefile.in: Ditto. + +2002-06-15 Earnie Boyd <earnie@users.sf.net> + + * Makefile.in (conf_prefix): New variable. + (dist_prefix): Ditto. Conditionally set to $(conf_prefix). + (bindist): Use dist_prefix. + +2002-06-13 Danny Smith <dannysmith@users.sourceforge.net> + + * include/_mingw.h: Increment version to 2.0. + * Makefile.in: Ditto. + + Merge in mingwex branch. + + 2002-06-11 Danny Smith <dannysmith@users.sourceforge.net> + * include/math.h (fdim, fdimf, fdiml): Add prototypes. + * mingwex/fdim.c: New file. + * mingwex/fdimf.c: New file. + * mingwex/fdiml.c: New file. + * mingwex/Makefile.in (DISTFILES): Add fdim.c, fdimf.c, + fdiml.c. + (MATHOBJS):Add fdim.o, fdimf.o. fdiml.o. + + 2002-05-23 Danny Smith <dannysmith@users.sourceforge.net> + * mingwex/Makefile.in (DISTFILES): Add truncf.c, truncl.c. + + 2002-05-22 Danny Smith <dannysmith@users.sourceforge.net> + * mingwex/isnanl.c: New file. + + 2002-05-21 Danny Smith <dannysmith@users.sourceforge.net> + * include/stdint.h: Include stddef.h to get + wchar_t and wint_t. + (WINT_MAX): Define to ((wint_t)-1). + + 2002-05-21 Danny Smith <dannysmith@users.sourceforge.net> + * include/wctype.h: Replace 'inline' with '__inline__'. + * include/inttypes.h: Likewise. + + 2002-05-16 Danny Smith <dannysmith@users.sourceforge.net> + * include/_mingw.h (__MINGW_IMPORT): Put extern at start + to avoid warnings. Thanks to: Oscar Fuentes <ofv@wanadoo.es>. + + 2002-05-16 Danny Smith <dannysmith@users.sourceforge.net> + * mingwex/snprintf.c: Split out vsnprintf to.... + * mingwex/vsnprintf.c: New file. + * mingwex/snwprintf.c: Split out vsnwprintf to... + * mingwex/vsnwprintf.c: New file. + * mingwex/Makefile.in: Adjust DISTFILES and STDIO_STUB_OBJS. + + 2002-05-15 Pascal Obry <obry@gnat.com> + * include/dirent.h (DIR): Change dd_stat type to int. + (_WDIR): Likewise. + + 2002-05-07 Danny Smith <dannysmith@users.sourceforge.net> + * include/stdio.h (vsnprintf): Change inline to __inline__; + (vsnwprintf): Likewise. + * include/wchar.h (vsnwprintf): Likewise. + (wcstof): Likewise. + (fwide): Likewise. + (mbsinit): Likewise. + + 2002-04-29 Danny Smith <dannysmith@users.sourceforge.net> + Change FP default precison from 53 to 64-bit mantissa. + * Makefile.in (CRT0S): Add CRT_fp8.o. + (MINGW_OBJS): Replace CRT_fp8.o with CRT_fp10.o. + * include/float.h: Replace standard float.h defines with + #include_next<float.h> to use GCC's defines. Adjust comments + to reflect change. + + 2002-04-26 Danny Smith <dannysmith@users.sourceforge.net> + * include/dos.h: Change prefix "__imp_" to "_imp__" for + __GNUC__ without __DECLSPEC_SUPPORTED. + * include/fnctl.h: Likewise. + * include/math.h: Likewise. + * include/stdio.h: Likewise. + * include/stdlib.h: Likewise. + * include/time.h: Likewise. + * include/wctype.h: Likewise. + * include/ctype.h: Likewise. + + 2002-04-26 Danny Smith <dannysmith@users.sourceforge.net> + Add atexit support for dlls. + * crt1.c (atexit): Force thunk to _imp__atexit. + (_onexit): Force thunk to _imp___onexit. + * dllcrt1.c (DllMainCRTStartup): Initialise private atexit + table on DLL_PROCESS_ATTACH, clean it up on DLL_PROCESS_DETACH. + (__dll_exit): New function to run atexit-registered functions + and flush output buffers on DLL_PROCESS_DETACH or failed + DLL_PROCESS_ATTACH. + (atexit): Force use of private atexit table via _dllonexit, + (_onexit): New function. Force use of private atexit table via + _dllonexit, + * mscvrt.def (atexit, _onexit): Add DATA keyword so that only + _imp_<_symbol> is visible in import lib. + * mscvrt20.def: Likewise. + * mscvrt40.def: Likewise. + * crtdll.def: Likewise. + + 2002-04-26 Danny Smith <dannysmith@users.sourceforge.net> + * include/fenv.h: Change header guard macro to _FENV_H_. + (fenv_t, fexcept_t): Move into block protected by + #ifndef RC_INVOKED. + Cleanup some whitespace. + * include/inttypes.h: Change header guard macro to + _INTTYPES_H_. + + 2002-04-26 Danny Smith <dannysmith@users.sourceforge.net> + * include/math.h (copysignl): Declare. + * mingwex/Makefile.in (DISTFILES): Add copysignl.S. + (MATHOBJS):Add copysignl.o. + + 2002-04-24 Danny Smith <dannysmith@users.sourceforge.net> + * include/math.h (__signbitl, __isnanl): Declare. + + 2002-04-24 Danny Smith <dannysmith@users.sourceforge.net> + * include/math.h (nanl, __fpcassifyl, fminl, fmaxl, rintl, + roundl, truncl, fmal, log2l): Declare. + Protect C99 declarations with _STDC_VERSION__ >= 199901L) + || !defined __STRICT_ANSI__. + * mingwex/fmax.c (fmax): Call __isnan, not _isnan. + * mingwex/fmin.c (fmin): Likewise. + * mingwex/fmaxf.c (fmaxf): Call __isnanf, not _isnan. + * mingwex/fminf.c (fminf): Likewise. + * mingwex/fmaxl.c: New file. + * mingwex/fminl.c: New file. + * mingwex/fpclassify.c (__fpclassifyf): Split out to ... + * mingwex/fpclassifyf.c: New file. + * mingwex/fpclassifyl.c: New file. + * mingwex/rint.c (rintf): Split out to... + * mingwex/rintf.c: New file. + * mingwex/rintl.c: New file. + * mingwex/round.c (roundf): Split out to... + * mingwex/roundf.c: New file. + * mingwex/roundl.c: New file. + * mingwex/trunc.c (truncf): Split out to... + * mingwex/truncf.c: New file. + * mingwex/truncl.c: New file. + * mingwex/signbit.c (signbitf): Split out to... + * mingwex/signbitf.c: New file. + * mingwex/signbitl.c: New file. + * mingwex/fmal.c: New file. + * mingwex/copysignl.S: New file. + * mingwex/log2l.c: New file. + * mingwex/fp_consts.c: Add nanl definition. + Comment out unused constants. + * mingwex/Makefile.in (DISTFILES): Add fmaxl.c, fminl.c, + fpclassifyf.c, fpclassifyl.c, rintf.c, rintl.c, roundf.c, + roundl.c, truncf.c truncl.c, signbitf.c signbitl.c, + fmal.c, log2l.c + (MATHOBJS): Add fmaxl.o, fminl.o, fpclassifyf.o, + fpclassifyl.o, rintf.o, rintl.o, roundf.o, roundl.o, + truncf.o truncl.o, signbitf.o signbitl.o, fmal.o, + log2l.o. + * mingwex/snwprintf.c (snwprintf, vsnwprintf): Correct typo. + + 2002-04-23 Danny Smith <dannysmith@users.sourceforge.net> + Make wide char versions of opendir and friends. + * include/dirent.h (_wdirent, _WDIR): Define wide versions of + struct dirent, DIR. + (_wopendir,_wreaddir,_wclosedir,_wrewinddir,_wtelldir, + _wseekdir): Add prototypes for wide versions of corresponding + standard functions. + * include/tchar.h; Add _UNICODE mappings for dirent.h + structures and functions. + * mingwex/dirent.c: Make _UNICODE neutral. + * mingwex/wdirent.c: New file to define _UNICODE before + including dirent.c. + * mingwex/Makefile.in (DISTFILES): Add wdirent.c. + (POSIX_OBJS): Add wdirent.o. + (wdirent.o): Specify dependency on dirent.c as well as + wdirent.c. + * samples/dirent/wtest.c: New file, wide version of test.c. + + 2002-04-17 Danny Smith <dannysmith@users.sourceforge.net> + * Makefile.in (INCLUDES): Add "-iwithprefixbefore include" to + ensure gcc include dir is searched despite -nostdinc. + * profile/Makefile.in (INCLUDES): Likewise. + * mingwex/Makefile.in (INCLUDES): Likewise. + * include/stdarg.h: Replace with stub that just guards the + real gcc system header with #ifndef RC_INVOKED + * include/varargs.h: Likewise. + * include/stddef.h: Likewise. + * include/stdio.h: Include stdarg.h after defining + __need___va_list. + (__VALIST): Define as __gnuc_va_list if __GNUC__, else char*. + Replace va_list with __VALIST throughout. + + 2002-04-17 Danny Smith <dannysmith@users.sourceforge.net> + * crt1.c: Revert changes of 2002-04-16. Use _fpreset again. + * msvcrt.def (_fpreset): Mark as DATA so that only + _imp___fpreset is exported. + * msvcrt20.def (_fpreset): Likewise. + * msvcrt40.def (_fpreset): Likewise. + * crtdll.def (_fpreset): Likewise. + * CRT_fp10.c (_fpreset): Overide library _fpreset with one + that calls fninit. + (fpreset): Add alias. + (__CRT_PC): Delete definition. _fpreset does it now. + * CRT_fp8.c (_fpreset): Force use of library _imp___fpreset. + (fpreset): Add alias. + (__CRT_PC): Delete definition. + * moldname.def.in: Comment out fpreset. + * moldname-msvcrt.def: Regenerate. + * moldname-crtdll.def: Regenerate. + * include/fenv.h (FE_DFL_ENV): Define as (fenv_t*)0. + * mingwex/fesetenv.c (FE_DFL_ENV): Use it to set environment + with the _fpreset determined by startup CRT_fp object. + + 2002-04-16 Danny Smith <dannysmith@users.sourceforge.net> + * CRT_fp8.c: New file. + * CRT_fp10.c: New file. + * crt1.c (__CRT_PC) Declare. + (__CRT_fesetenv): New static function, using _CRT_PC. + (__mingw_CRTStartup):Use __CRT_fesetenv instead of _fpreset. + (_gnu_exception_handler): Likewise. + * Makefile.in (CRT0S): Add CRT_fp10.o. + (MINGW_OBJS): Add CRT_fp8.o. + (SRCDIST_FILES): Add CRT_fp8.c, CRT_fp10.c. + Add CRT_fp8.o, CRT_fp10.o dependancies. + * include/float.h (_fpreset): Expand comment. + * include/fenv.h (FE_PC64_ENV): New define for Intel x87 + (extended precison) environmemt. + (FE_PC53_ENV): New define for MSVCRT default environmemt. + (FE_DFL_ENV): Define as FE_PC53_ENV. + * mingwex/fesetenv.c: Use FE_PC53_ENV, FE_PC64_ENV to determine + precision control for default environment. + + * include/math.h: Fix long comment line. + * profile/configure.in (CRT0S): Set to both gcrt1.o and gcrt2.o + for mingw. + * profile/configure: Regenerate. + + 2002-04-12 Danny Smith <dannysmith@users.sourceforge.net> + * mingwex/Makefile.in (DISTFILES): Add suffix to wcstof.c. + + 2002-04-10 Danny Smith <dannysmith@users.sourceforge.net> + * mingwex/mingw-fseek.c: New file, based on Mumit Khan + mingw-local patch to binutils. + Sun Nov 7 04:27:07 1999 Mumit Khan <khan@xraylith.wisc.edu> + (__mingw_fseek): New function to work around Win9x f/lseek bug. + (__mingw_fwrite): Likewise. + (__mingw_is_win9x): New helper function. + * include/stdio.h (__USE_MINGW_FSEEK): New define,guarding... + (__mingw_fseek): New prototype and define to replace fseek. + (__mingw_fwrite): New prototype and define to replace fwrite. + * mingwex/Makefile.in: Add mingw-fseek.o to libmingwex.a. + * moldname-crtdll.def: Remove CR from end of line. + * moldname-msvcrt.def: Ditto. + + 2002-04-09 Danny Smith <dannysmith@users.sourceforge.net> + * profile/configure.in (CRT0S): Configure name of gcrt?.o + based on target, building gcrt0.o for cygwin -mno-cygwin. + * profile/configure: Regenerate. + * profile/Makefile.in (CRT0S): Use name from configure. + (gcrt0.o): New rule. + (ALL_CRT0S): New define, used to cleanup all gcrt?.o's. + + 2002-04-04 Danny Smith <dannysmith@users.sourceforge.net> + * include/math.h (_controlfp, _control87, _clearfp, _statusfp, _fpreset, + _fpecode): Remove prototypes copied from float.h. + (nan, nanf): Move into block protected against RC_INVOKED + and __cplusplus. + * include/stdlib.h (_Exit): Change from static inline to + extern inline. + * mingwex/_Exit.c : New file. + * mingwex/Makefile.in: Add _Exit.o to libmingwex.a. + + 2002-04-04 Danny Smith <dannysmith@users.sourceforge.net> + Add libgmon.a and libmingwex.a for cygwin -mno-cygwin. + * configure.in (SUBDIRS): Add profile and mingwex to cygwin target. + (configdirs): Likewise. + (LIBGMON_A): Define for cygwin target as well. + * configure: Regenerate. + * profile/configure.in (THREAD_DLL): Remove define. + (LIBM_A): Remove define. + (LIBGMON_A): Define for cygwin target as well. + * profile/configure: Regenerate. + * profile/makefile.in (install): Install to inst_libdir and + inst_includedir. + * mingwex/makefile.in (CFLAGS): Move -fomit-frame-pointer to... + (OPTFLAGS): New define. + (ALL_CFLAGS): Add $(OPTFLAGS). + (ALL_CXXFLAGS): Same. + (.c.o:): Remove ALL_CXXFLAGS. + + 2002-03-29 Danny Smith <dannysmith@users.sourceforge.net> + * include/stdint.h: Add missing newline at eof. + * include/stdio.h (snprintf): Add prototype. + (vsnprintf): Add prototype and inline definition. + (snwprintf): Add prototype. + (vsnwprintf): Add prototype and inline definition. + * include/wchar.h (snwprintf): Add prototype. + (vsnwprintf): Add prototype and inline definition. + * mingwex/Makefile.in: Add snprintf.o, snwprintf.o + to libmingwex.a. + * mingwex/snprintf.c: New file. + * mingwex/snwprintf.c: New file. + + 2002-03-22 Danny Smith <dannysmith@users.sourceforge.net> + * configure.in: Add mingwex as SUBDIRS and configdirs. + * configure: Regenerate. + * Makefile.in (MINGW_OBJS): Remove dirent.o. + (SRC_DIST_FILES): Remove dirent.c. + * dirent.c: Remove. + * include/stdlib.h (_Exit): Add static inline + function. + (struct lldiv_t): Define. + (lldiv): Add prototype. + (llabs): Add extern inline function. + (strtoll,strtoull): Add prototypes. + (wcstol, wcstoul, wcstod): Group together. + (strtof, wcstof): Add extern inline definitions. + (atoll,lltoa,ulltoa, wtoll, lltow ulltow): Add prototypes + and extern inline definitions. + * include/wchar.h (fwide, wcstoll,wcstoull, wmemchr + wmemcmp, wmemcpy, wmemmove, wmemset. mbsinit): Add + prototypes. + (wcstol, wcstoul,wcstod): Copy prototypes from stdlib.h. + (wcstof): Add extern inline definition. + * include/math.h (nan, nanf): Add prototypes. + (NAN, INFINITE): Define constants. + (fpclassify, isnan ,signbit): Add macros and supporting float + and double functions. + (isfinite, isinf, isnormal): Add macros. + (isgreater, isless, isgreaterequal, islessequal,islessgreater): + Add macros. + (rint, rintf, round, roundf, trunc. truncf, fmax, fmaxf, + fmin, fminf, fma, fmaf, log2, log2f): Add prototypes. + (copysign, logb, nextafter, scalb): Add prototypes and + inline stubs for underscored versions in msvcrt.dll. + * include/inttypes.h: New file. + * include/fenv.h: New file + + Add new mingwex subdir and files. + * mingwex: New directory. + * mingwex/Makefile.in: New file. + * mingwex/configure.in: New file. + * mingwex/configure: Generate. + * mingwex/dirent.c: Moved here from parent dir. + * mingwex/atoll.c: New file. + * mingwex/feclearexcept.c: New file. + * mingwex/fegetenv.c: New file. + * mingwex/fegetexceptflag.c: New file. + * mingwex/fegetround.c: New file. + * mingwex/feholdexcept.c: New file. + * mingwex/feraiseexcept.c: New file. + * mingwex/fesetenv.c: New file. + * mingwex/fesetexceptflag.c: New file. + * mingwex/fesetround.o: New file. + * mingwex/fetestexcept.c: New file. + * mingwex/feupdateenv.c: New file. + * mingwex/fma.S: New file. + * mingwex/fmaf.S: New file. + * mingwex/fmax.c: New file. + * mingwex/fmaxf.c: New file. + * mingwex/fmin.c: New file. + * mingwex/fminf.c: New file. + * mingwex/fp_consts.c: New file. + * mingwex/fpclassify.c: New file. + * mingwex/fucom.c: New file. + * mingwex/fwide.c: New file. + * mingwex/imaxabs.c: New file. + * mingwex/imaxdiv.c: New file. + * mingwex/isnan.c: New file. + * mingwex/isnanf.c: New file. + * mingwex/lltoa.c: New file. + * mingwex/lltow.c: New file. + * mingwex/log2.c: New file. + * mingwex/log2f.c: New file. + * mingwex/math_stubs.c: New file. + * mingwex/mbsinit.c: New file. + * mingwex/rint.c: New file. + * mingwex/round.c: New file. + * mingwex/signbit.c: New file. + * mingwex/sitest.c: New file. + * mingwex/strtof.c: New file. + * mingwex/strtoimax.c: New file. + * mingwex/strtoumax.c: New file. + * mingwex/testwmem.c: New file. + * mingwex/trunc.c: New file. + * mingwex/ulltoa.c: New file. + * mingwex/ulltow.c: New file. + * mingwex/wcstof.c: New file. + * mingwex/wcstoimax.c: New file. + * mingwex/wcstoumax.c: New file. + * mingwex/wmemchr.c: New file. + * mingwex/wmemcmp.c: New file. + * mingwex/wmemcpy.c: New file. + * mingwex/wmemmove.c: New file. + * mingwex/wmemset.c: New file. + * mingwex/wtoll.c: New file. + +2002-04-20 Danny Smith <dannysmith@users.sourceforge.net> + + * include/mbstring.h: New file. + * include/mbctype.h: New file. + +2002-04-20 Danny Smith <dannysmith@users.sourceforge.net> + + * include/tchar.h (__TEXT): Make same as define in + w32api/include/winnt.h. + +2002-04-20 Danny Smith <dannysmith@users.sourceforge.net> + + * include/tchar.h (_tputenv): Add UNICODE mappings. + (_tsearchenv): Likewise. + (_tmakepath): Likewise. + (_tsplitpath): Likewise. + (_tfullpath): Likewise. + +2002-04-18 Pascal Obry <obry@gnat.com> + + * dirent.c (opendir): Convert given pathname to + absolute pathname. + +2002-04-09 Earnie Boyd <earnie@users.sf.net> + + * include/_mingw.h: Increment version. + * Makefile.in: Ditto. + +2002-04-09 Earnie Boyd <earnie@users.sf.net> + + * moldname-crtdll.def: Remove CR from end of line. + * moldname-msvcrt.def: Ditto. + * Makefile.in: Use bzip2 compression for Cygwin target. + +2002-04-04 Danny Smith <dannysmith@sourceforge.users.net> + + * include/math.h (DOMAIN, SING, OVERFLOW, UNDERFLOW, + TLOSS, PLOSS): Move oldname defines back, following + the underscored names. + +2002-03-29 Danny Smith <dannysmith@sourceforge.users.net> + + * include/stdio.h (_snwprintf): Correct spelling. + (_vsnwprintf): Likewise. + * include/wchar.h (_snwprintf): Correct spelling. + (_vsnwprintf): Likewise. + +2002-03-26 Danny Smith <dannysmith@users.sourceforge.net> + + * moldname.def.in (__MSVCRT__): Replace with !(__CRTDLL__). + (wpopen): Add if !(__CRTDLL__). + * Makefile.in (moldname-msvcrt.def rule): Use -C, not -c to + preserve comments. + (moldname-crtdll.def rule): Likewise. + * moldname-msvcrt.def: Regenerate. + * moldname-crtdll.def: Regenerate. + * include/stdio.h (wpopen):Use prototype, not a define. + (_swnprintf): Add prototype. + (_vswnprintf): Likewise. + Tidy up whitespace. + * include/wchar.h (_swnprintf): Add prototype. + (_vswnprintf): Likewise. + Tidy up whitespace. + +2002-01-28 Danny Smith <dannysmith@users.sourceforge.net> + + * include/malloc.h (_heapinfo): Correct structure definition. + (_USEDENTRY,_FREEENTRY): Add defines. + Add comment on platform support for _heap* functions. + (_get_sbh_threshold): Add prototype. + (_set_sbh_threshold): Likewise. + (_expand): Likewise. + +2002-01-25 Danny Smith <dannysmith@users.sourceforge.net> + + * profile/profil.c: Update copyright info. + * profile/profil.h: Likewise. + * profile/gcrt0.c: Likewise. + +2002-01-25 Pascal Obry <obry@gnat.com> + + * profile/profil.h (PROFADDR): Cast idx to unsigned long long to + avoid overflow. + * profile/gmon.c: Define bzero as memset if mingw32. + (monstartup): Use it. + +2002-01-25 Danny Smith <dannysmith@users.sourceforge.net> + + * include/tchar.h (_TCHAR): Add missing ;. + +2002-01-25 Danny Smith <dannysmith@users.sourceforge.net> + + * include/tchar.h (_TCHAR): Add typedefs. + +2002-01-16 Danny Smith <dannysmith@users.sourceforge.net> + + * include/stdlib.h (_onexit_t): Add typedef. + (_onexit): Add prototype. + +2002-01-12 Danny Smith <dannysmith@users.sourceforge.net> + + * msvcrt.def: Revert accidental change. + * include/stdlib.h: Ditto. + +2001-12-07 Earnie Boyd <earnie@users.sf.net> + + * Makefile.in: Increment VERSION. + * include/_mingw.h: Ditto. + +2001-12-05 Earnie Boyd <earnie@users.sf.net> + + * include/strings.h: New File. + +2001-12-02 Danny Smith <dannysmith@users.sourceforge.net> + + Apply patches from: + 2001-06-21 Mumit Khan <khan@nanotech.wisc.edu> + + * include/math.h (_FPCLASS* ): Add defines from float.h. + (IEEE recommended functions): Add declarations from float.h. + * include/float.h (_FPCLASS* ): Protect against redefinition. + +2001-11-29 Wu Yongwei <adah@netstd.com> + + * include/_mingw.h,assert.h,conio.h,ctype.h,dir.h,direct.h + dirent.h,dos.h,errno.h,excpt.h,fcntl.h,float.h,io.h, + limits.h,locale.h,malloc.h,math.h,process.h,setjmp.h, + share.h,signal.h,stdarg.h,stddef.h,stdint.h,stdio.h, + stdlib.h,string.h,tchar.h,time.h,varargs.h,wchar.h, + wctype.h,sys/stat.h,sys/timeb.h,sys/types.h,sys/utime.h: + Correct spelling of "disclaimed" in comments. + * include/excpt.h: Another spelling correction. + +2001-11-08 Robert Collins <rbtcollins@hotmail.com> + + * include/errno.h: Fix "errno is not a prototype" warning. + +2001-11-07 Danny Smith <dannysmith@users.sourceforge.net> + + * include/ctype.h (tolower, toupper,_tolower,_toupper): Comment + differences between ANSI and non-ANSI versions. + (_ctype[],_pctype): Declare vars. + (__ISCTYPE): New helper macro using _pctype. + (is* ctype functions): Use __ISCTYPE to define inline versions. + (_toupper, _tolower, __isascii, __toascii, __iscsym, __iscsymf): + Inline definitions. + (isw* ctype functions): Inline definitions. + * include/wctype.h (_ctype[],_pctype): Declare vars. + (isw* ctype functions): Inline definitions. + + +2001-11-06 Danny Smith <dannysmith@users.sourceforge.net> + + * include/float.h (_clearfp, _statusfp, _fpreset, fpreset, + __fpecode): Use __STDC__ prototypes. + + +2001-11-06 Thomas Pfaff <tpfaff@gmx.net> + + * mthr_stub.c (__mingwthr_remove_key_dtor) New. + * mthr_init.c (DllMain) Run dtors if a process terminates. + * mthr.c (__mingwthr_add_key_dtor) Removed. + (___mingwthr_add_key_dtor) New. + (___mingwthr_remove_key_dtor) New. + (__mingwthr_run_key_dtors) Complete rewrite. + (__mingwthr_remove_key_dtor) New. + +2001-11-05 Egor Duda <deo@logos-m.ru> + + * Makefile.in: Delete unused executable after creating base-files. + +2001-11-06 Danny Smith <dannysmith@users.sourceforge.net> + + * include/errno.h (_errno): Use __STDC__ prototype. + Thanks to: Jim Barton. + +2001-11-04 "stefan" <stefan@lkcc.org> + + * include/sys/locking.h (_LK_UNLCK, LK_UNLCK): Correct names. + +2001-10-30 Danny Smith <dannysmith@users.sourceforge.net> + + * include/io.h (_commit): Add declaration. + Thanks to: "stefan" <stefan@lkcc.org> + +2001-10-30 Danny Smith <dannysmith@users.sourceforge.net> + + * include/sys/stat.h: Make S_IS* macros safer. + +2001-10-27 Danny Smith <dannysmith@users.sourceforge.net> + + * include/stdlib.h (EXIT_FAILURE): Change value to 1. + +2001-10-12 Danny Smith <dannysmith@users.sourceforge.net> + + * include/stdlib.h (__p__environ, __p__wenviron): Use + __STDC__ prototypes. + +2001-09-19 Earnie Boyd <earnie@SF.net> + + * Makefile.in: Remove the /usr from the install target. + (VERSION): Increment. + include/_mingw.h: Ditto. + +2001-09-17 Earnie Boyd <earnie@SF.net> + + * Makefile.in: Increment version. + * include/_mingw.h: Ditto. + +2001-09-10 Earnie Boyd <earnie@SF.net> + + * dossh: Remove inadvertantly imported file. + +2001-09-10 Danny Smith <dannysmith@users.sourceforge.net> + + * dirent.c (opendir): Use GetFileAttributes rather than stat + to determine if input arg is dir. + +2001-08-29 Danny Smith <dannysmith@users.sourceforge.net> + + * include/stdarg.h (va_list): Typedef as __builtin_va_list if + __GNUC__ >= 3. + * include/varargs.h (va_list): Ditto. + * include/stdio.h (va_list): Ditto. + +2001-08-01 Danny Smith <dannysmith@users.sourceforge.net> + + * include/stdlib.h (_wpgmptr): Don't declare ifndef __MSVCRT__. + * include/stdio.h (_IORW): Change constant to 0x0080. + (TMP_MAX): Add new define. + (_P_tmpdir): Ditto. + (_wP_tmpdir): Ditto. + (L_tmpnam): Change constant to 16. + +2001-06-28 Danny Smith <dannysmith@users.sourceforge.net> + + * include/malloc.h: Fix non-ANSI comment after #endif. + +2001-06-11 Danny Smith <danny_r_smith_2001@yahoo.co.nz> + + * profile/configure.in: Make msvcrt.dll version default. + * profile/makefile.in: Build both gcrt1.o and gcrt2.o. + * provile/configure: Regenerate. + +2001-06-11 Mattia Barbon <mbarbon@dsi.unive.it> + + * include/stdio.h (swscanf): Make first arugument const. + * include/wchar.h (swscanf): Ditto. + * include/tchar.h (_tfopen): New _UNICODE define. + (_tgetenv): Ditto. + (_tsetlocale): Ditto. + +2001-06-04 Earnie Boyd <earnie@users.sourceforge.net> + + * profile/Makefile.in (mkinstalldirs): Correct relative path. + +2001-06-04 Earnie Boyd <earnie@users.sourceforge.net> + + * include/_mingw.h: Change version to 1.0. + Makefile.in: Ditto. + +2000-02-21 Earnie Boyd <earnie@users.sourceforge.net> + + * include/tchar.h: (__TEXT): Remove undef. + (_TEXT): Ditto. + (_T): Ditto. + +Fri Feb 2 10:34:07 2001 Earnie Boyd <earnie@users.sourceforge.net> + + * include/tchar.h: (__TEXT): Add private macro. + (_TEXT): Modify definition to use __TEXT. + (_T): Ditto. + This change allows the passing of a MACRO as an argument and have that + MACRO resolved first. + Thanks to: Eric PAIRE <eric.paire@ri.silicomp.com> + +Wed Jan 31 17:12:51 2001 Earnie Boyd <earnie@users.sourceforge.net> + + * Makefile.in: Increment version to 0.5 + * include/_mingw.h: Increment minor version + +Tue Jan 30 13:01:01 2001 Earnie Boyd <earnie@users.sourceforge.net> + + * include/assert.h: (assert): Remove ; from end of definition + Thanks to: AJ Reins <tbisp@qwest.net> + +Tue Jan 30 07:31:22 2001 Earnie Boyd <earnie@users.sourceforge.net> + + * include/time.h: (CLOCKS_PER_SEC): Type cast the constant. + Thanks to: Cosmin Truta <cosmin@cs.toronto.edu> + +Mon Jan 29 14:03:07 2001 Earnie Boyd <earnie@users.sourceforge.net> + + * time.h: (CLOCKS_PER_SEC) Change from FP to integer constant. + +Sun Jan 28 13:01:08 2001 Earnie Boyd <earnie@users.sourceforge.net> + + * include/wchar.h: The 2001.01.18 Change was incorrect. The functions + are actually C functions. These functions are resolved via the + -lmsvcp60 library and comments were placed in the header. + +2001-01-28 Danny Smith <danny_r_smith_2001@yahoo.co.nz> + + *include/stdlib.h (__p__pgmptr): add prototype. + (__p__wpgmptr): likewise. + (_pgmptr_dll): move declaration from dos.h. + (_wpgmptr_dll): likewise. + (_pgmptr): conditional define (MSVCT/CRTDLL). + (_wpgmptr): likewise. + *include/dos.h (_base*_dll variables): declare only for CRTDLL. + (_os*_dll variables): likewise. + (_pgmptr_dll): remove declaration and associated defines to stdlib.h. + (_wpgmptr_dll): likewise. + +2001-01-22 Danny Smith <danny_r_smith_2001@yahoo.co.nz> + + * include/stdint.h: New file. + +Thu Jan 18 10:33:01 2001 Earnie Boyd <earnie@users.sourceforge.net> + + * include/wchar.h: Protect prototypes only declared in the C++ STL + from being declared unless __cplusplus is defined. + +Tue Jan 16 11:37:31 2001 Earnie Boyd <earnie@users.sourceforge.net> + + * include/stdlib.h: Apply Danny Smith patch 102730 + 2000-12-09 Danny Smith <danny_r_smith_2001@yahoo.co.nz> + (_wgetenv) Correction to return type. + +Tue Jan 16 09:41:41 2001 Earnie Boyd <earnie@users.sourceforge.net> + + * include/locale.h: Apply Danny Smith patch 101834 + 2000-11-23 Danny Smith <danny_r_smith_2001@yahoo.co.nz> + (LC_MIN) Add definition. + (LC_MAX) ditto. + (_wsetlocale) Add prototype. + +2000-11-29 Earnie Boyd <earnie_boyd@yahoo.com> + + * Makefile.in: eliminate the need for RUNTIME and CRT_ID. + Always build crt1.o, dllcrt1.o, crt2.o and dllcrt2.o. + Create a libcoldname.a for the oldname library for CRTDLL. + Restrict libmoldname.a for the oldname library for MSVCRT. + * configure.in: eliminate setting RUNTIME and CRT_ID variables. + Restructure the $target_os case logic. + Always name the MinGW thread dll helper mingwm. + Change Cygwin's HEADER_SUBDIR value from mingw32 to mingw. + * configure: regenerate. + +2000-11-22 Earnie Boyd <earnie_boyd@yahoo.com> + + * Makefile.in: Fix bindist target to distribute the correct files. + Remove the use of SNAPSHOT variable and test SNAPDATE instead. + Set SNAPDATE within the snapshot target on recursive call to $(MAKE). + +2000-11-21 Earnie Boyd <earnie_boyd@yahoo.com> + + * Makefile.in: Add missing line continuation `\' for $(SUBDIRS) target. + Add variables and targets to control binary and source distributions. + Add variables and targets to control snapshot distribution. + * profile/gmon.h: Add missing #endif for #ifndef. + * profile/ChangeLog: Merge entries here and remove. + * profile/Makefile.in: Add variables and targets to control + distribution. + * README: Add. + * TODO: ditto. + * config.guess: ditto. + * config.sub: ditto. + * mkinstalldirs: ditto. + * install-sh: ditto. + * configure: regenerate. + * profile/configure: ditto. + +2000-11-20 Earnie Boyd <earnie_boyd@yahoo.com> + + * Merge in changes from + 2000-10-23 Danny Smith <danny_r_smith_2001@yahoo.co.nz> + * include/direct.h: add guard around MSVCRT-only prototytpes + * include/io.h: add __int64 struct definitions and function prototypes; + add guard for MSVCRT-only prototypes + * include/limits.h: add ISO C9x macros LLONG_MIN, LLONG_MAX, ULLONG_MAX + * include/stdio.h: add wchar function prototypes (__MSVCRT__); + put wchar functions together to make sync with wchar.h easier + * include/stdlib.h: add wide char functions (__MSVCRT__) + * include/string.h: add string collation functions ( __MSVCRT__) + * include/sys/stat.h: add __int64 struct and function ( __MSVCRT__) + * include/tchar.h: add macros and macro function definitions + * include/wchar.h: add wide char function prototypes ( __MSVCRT__ ); + enclose more functions in __MSVCRT__ guard; + some oldname wide char function prototypes #if (0)'d + * profile/gmon.h: add guard around BSD-ish typedefs + +Mon Nov 20 18:58:12 2000 Christopher Faylor <cgf@cygnus.com> + + * Makefile.in: Use a different variable name for subdirectory since the + previous one was used by the top level make. + +Sun Nov 19 20:50:51 2000 Christopher Faylor <cgf@cygnus.com> + + * Makefile.in: Install mingw stuff in a subdirectory if building under + cygwin. + +Sat Jun 17 21:48:23 2000 Christopher Faylor <cgf@cygnus.com> + + * Makefile.in (subdirs): Eliminate for loop. + +Sat Jun 17 18:27:59 2000 Christopher Faylor <cgf@cygnus.com> + + * Makefile.in (subdirs): Previous change did not fix problem in + broken shells. + +Sat Jun 17 13:49:12 2000 Christopher Faylor <cgf@cygnus.com> + + * Makefile.in: Avoid installing dll if we're cross building and the + cross-host system isn't a Windows system. + * configure.in: Detect cross-hosting situation and set appropriate + variables in Makefile.in. + * configure: Regenerate. + +Wed Apr 19 13:10:54 2000 Christopher Faylor <cgf@cygnus.com> + + * configure.in: Change HEADER_SUBDIR to mingw32. + * configure: Regenerate. + +Mon Apr 10 17:24:28 2000 Christopher Faylor <cgf@cygnus.com> + + * include/string.h: Use proper prototype for _strerror. + +2000-03-30 Mumit Khan <khan@xraylith.wisc.edu> + + * Makefile.in (subdirs): Workaround for broken shells. + +2000-02-03 Mumit Khan <khan@xraylith.wisc.edu> + + * Snapshot 2000-02-03. + + * include/{assert.h, conio.h, ctype.h, direct.h, dirent.h, fcntl.h, + float.h, io.h, locale.h, malloc.h, math.h, process.h, signal.h, + stdio.h, stdlib.h, string.h, time.h, wctype.h, sys/stat.h, + sys/timeb.h, sys/utime.h}: Remove parameter names to avoid namespace + pollution. + + * Makefile.in (all): Build CRT0S first. + (libmingwthrd.a): Remove thread support DLL from dependency. + +2000-01-21 Mumit Khan <khan@xraylith.wisc.edu> + + * Snapshot 2000-01-21. + +2000-01-20 Mumit Khan <khan@xraylith.wisc.edu> + + Merge in changes from Cygwin: + * configure.in (HEADER_SUBDIRS): New variable. Substitute. + (SUBDIRS): Likewise. + * Makefile.in (HEADER_SUBDIRS): New variable. + (install): Use to install Mingw headers to a subdirectory if building + under Cygwin. + (DLL_CC_STUFF): Add DLL entry point. + * configure: Regenerate. + +2000-01-19 Mumit Khan <khan@xraylith.wisc.edu> + + * include/stdio.h (fsetpos): Fix prototype. + (fpos_t): Fix for MSVCRT. + * include/float.h (fpreset): Add prototype. + * include/limits.h: Define UINT_MAX, USHRT_MAX and ULONG_MAX with + constant values. + * include/time.h: Don't define tzname as a macro for CRTDLL, and + export using libmoldname.a. + * crtdll.def: Add DATA tags. + * msvcrt.def: Likewise. + * moldname.def.in: Likewise. Add fpreset. Export tzname for + both MSVCRT and CRTDLL. + * moldname-crtdll.def: Regenerate. + * moldname-msvcrt.def: Regenerate. + +Tue Dec 21 02:22:14 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * Snapshot 1999-12-21. + + * include/wctype.h: New file. + * include/ctype.h (MB_CUR_MAX): Define. + (wctype_t): Guard. + * include/stdlib.h (MB_CUR_MAX): Define. + * include/wchar.h: Define stat, _stat structures here as well. + * include/float.h: Add invalid subconditions (_SW) and floating + point error (_FPE) macros. + * include/time.h (_CLOCK_T): Rename macro to _CLOCK_T_DEFINED. + (_TIME_T): Rename macro to _TIME_T_DEFINED. + * include/sys/types.h: Likewise. + +Thu Nov 18 00:22:26 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * profile/profil.c (profile_on): Set the profiler thread priority to + be time critical. Thanks to Pascal Obry <pascal_obry@csi.com>. + * Snapshot 1999-11-18. + +Sun Nov 7 02:50:09 1999 Mumit Khan <khan@xraylith.wisc.edu> + + Released 1999-11-07. + + * Makefile.in (CRT0S): Add crtst.o. + (install): Install in subdirs as well. + * dirent.h (struct _stat): Rename from struct stat. + * include/tchar.h: Add some new macros. Thanks to + Eric Kohl <ekohl@abo.rhein-zeitung.de>. + * profile/Makefile.in (install): Fix target. + +Thu Nov 4 14:32:58 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * Makefile.in: Add support for profile directory. + * configure.in: Likewise. + * configure: Regenerate. + + * profile: Imported profiling sources from winsup-19991026 snapshot. + * profile/Makefile.in: New file. + * profile/configure.in: New file. + * profile/configure: Generate. + * profile/gcrt0.c (u_char, u_short, u_int, u_long): typedef for Mingw. + * profile/gmon.h (u_char, u_short, u_int, u_long): Likewise. + * profile/gmon.c (unistd.h): Include conditionally. + (sys/param.h): Likewise. + * profile/mcount.c (sys/param.h): Likewise. + * profile/profil.c (profile_on): thread id is DWORD, not int. + + +Wed Nov 3 16:26:44 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * include/stdlib.h: Add wide character version of argv/environ. + Formatting changes. + * include/wchar.h: More wide character prototypes. + * include/sys/stat.h: Likewise. Add struct stat as well as _stat. + + * dllcrt1.c (init.c): Don't include. + (DllMainCRTStartup): Don't call _mingw32_init_mainargs(). + * Makefile.in: Remove init.c from dllcrt{1,2}.c dependency lists. + +Sat Oct 30 03:06:26 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * moldname.def: Remove file. + * moldname.def.in: And add this. + * moldname-msvcrt.def: Generate from moldname.def.in. + * moldname-crtdll.def: Likewise. + + * mthr.c: New file for -mthread (thread-safe C++ EH) support. + * mthr_init.c: New file for -mthread (thread-safe C++ EH) support. + * mthr_stub.c: New file for -mthread (thread-safe C++ EH) support. + + * Makefile.in: Update. + * configure.in: Likewise. Also add *cygwin* target for building + under Cygwin winsup. + * configure: Regenerate. + +Fri Oct 1 11:10:30 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * include/_mingw.h: Add version macros. + * include/direct.h (_diskfree_t, getdiskfree, getdrives): Add. + Also add wide character versions shared with wchar.h. + * include/dos.h (_diskfree_t, getdiskfree, getdrives): Add. + * include/io.h (sopen, _sopen): Fix prototype. + Add wide character prototypes. + * include/wchar.h: Likewise. + * include/stdlib.h (beep, seterrormode, sleep): Remove non- + underscored versions. Potential incompatibility. + * include/time.h (daylight, timezone, tzname): Fix MSVCRT cases. + Add wide character prototypes. + * include/sys/timeb.h (struct _timeb): Don't use macro, but real + definition. + +Wed Aug 18 18:38:39 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * configure.in (RUNTIME, CRT_ID): Add to differentiate between + crtdll and msvcrt runtimes. Remove DLL_ENTRY and DEF_DLL_ENTRY + macros. + * configure: Rengerate. + * Makefile.in (RUNTIME, CRT_ID): Use to generate the correct + dll name and crt's. CRTDLL and MSVCRT are meant to created + separately, so remove all the *-msvcrt* targets. + (libmingwthr.a): New target. Dummy thread support archive. + (LIBS): Add libmingwthr.a. + (CRT0S): Use CRT_ID. Add crtmt.o. + (MINGW_OBJS): Add crtst.o. + * main.c (WinMain): Fix prototype. + * crtmt.c: New file. + * crtst.c: New file. + + * include/process.h (_beginthreadex): Fix prototype. + * include/_mingw.h (__int64): Define for __GNUC__. + * include/tchar.h (_ttol): Add macro. + * include/stdlib.h (_wtoi, _wtol, _i64toa, _ui64toa, _atoi64, + _i64tow, _ui64tow, _wtoi64): Add prototypes. + + Reported by Emanuele Aliberti <ea@iol.it>: + * include/tchar.h (_ttoi): Add macro. + + Reported by Ulf Moeller <3umoelle@informatik.uni-hamburg.de>: + * include/stdio.h (_snprintf): Add prototype. + (_vsnprintf): Likewise. + +Sat Aug 7 18:00:00 1999 Mumit Khan <khan@xraylith.wisc.edu> + + Reported by Tor Lillqvist <tml@iki.fi>: + * include/stdlib.h (__p___argv): Fix return type. + +Fri Jul 30 22:07:06 1999 Mumit Khan <khan@xraylith.wisc.edu> + + Add UWIN support. + * include/errno.h (errno): It's linked in from startup, not imported. + * include/stdlib.h (errno): Likewise. + * include/io.h: Guard against conflicting macros and prototypes in + system headers. + * include/stdlib.h: Likewise. + * include/string.h: Likewise. + * include/time.h: Likewise. + +Fri Jul 30 13:47:34 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * include/io.h (X_OK): Fix definition. Thanks to Jan Nijtmans. + * include/dos.h: Fix typo __MINGW_EXPORT->__MINGW_IMPORT. + * Makefile.in (INCLUDES): Remove old windows32 include directory. + + * crt1.c (_gnu_exception_handler): Fix prototype. + (__mingw_CRTStartup): New function based on mainCRTStartup. + (mainCRTStartup): Set the app type for MSVCRT and call + __mingw_CRTStartup. + (WinMainCRTStartup): Likewise. + * init.c (_startupinfo): Define. + (_getmainargs): Add 5th parameter. + (_mingw32_init_mainargs): Use. + + * ALL *.c files: Reformat according to GNU coding style. + +Fri Jul 16 00:46:04 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * Makefile.in (INCLUDES): Add w32api include directory. + + * include/_mingw.h: New file. + * include/{assert.h,conio.h,ctype.h,direct.h,dirent.h,dos.h, + errno.h,excpt.h,fcntl.h,float.h,io.h,limits.h,locale.h,malloc.h, + math.h,process.h,setjmp.h,share.h,signal.h,stdarg.h,stdio.h, + stdlib.h,string.h,tchar.h,time.h,varargs.h,sys/locking.h, + sys/stat.h,sys/timeb.h,sys/types.h,sys/utime.h}: Include and + use the macros __DECLSPEC_SUPPORTED and __MINGW_IMPORT. + + * include/stdlib.h (atexit): Fix prototype. + +Mon Jun 14 18:38:49 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * include/stdio.h (_tempnam): Fix prototype. + (tempnam): Likewise. + * include/stdlib.h: Replace with GCC's version, and guard + with RC_INVOKED. + + From Anders Norlander <anorland@hem2.passagen.se>: + * include/stdlib.h (__argc): Declare. + (__argv): Likewise. + +Mon Apr 5 13:49:17 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * crt1.c (_gnu_exception_handler): Acknowledge Jacob Navia's + contribution. + * Makefile.in (_libm_dummy.o): New target. + (libm.a): Use. + +Tue Mar 16 18:15:26 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * Released 1999-03-16 along with egcs-1.1.2. + +Wed Feb 17 17:15:56 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * Makefile.in (LIBS): Add libm.a. + (libm.a): Dummy libm.a. + + * Makefile.in: Update from winsup 1999-02-08 snapshot. + Preserve local changes. + (mkinstalldirs): In ../, not ../../. + (INCLUDES): Point to local windows32api headers and use -nostdinc. + (LIBGCC): Delete. + (LIBS): Add libmoldname-msvc.a. + (libmoldname-msvc.a): Add target. + (distclean): Add target. + +Tue Feb 9 00:26:05 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * include/dir.h: Reintroduce as an obsolescent header. + * crt1.c (signal.h): Include. + (_gnu_exception_handler): New function to properly handle win32 + asynchronous signals. + (mainCRTStartup): Use. + +Sun Jan 3 23:52:25 1999 Mumit Khan <khan@xraylith.wisc.edu> + + * include/direct.h: Include io.h instead of dir.h + * include/dirent.h: Likewise. + * include/dos.h: Likewise. + * include/stdio.h: Replace reference to dir.h with io.h. + +Thu Dec 31 16:04:55 1998 Mumit Khan <khan@xraylith.wisc.edu> + + * 1999-01-01 release bundled with egcs-1.1.1. + + * include/io.h: Incorporate dir.h. + * include/dir.h: Remove. + * include/signal.h: Move RC_INVOKED up a bit. + +Tue Dec 29 15:04:38 1998 Mumit Khan <khan@xraylith.wisc.edu> + + * include/signal.h (sig_atomic_t): Define. + (NSIG): Define. + * include/malloc.h: Import defs from deprecated alloc.h. + * include/alloc.h: Remove. + + From "Daniel J. Rodriksson" <djr@dit.upm.es>: + * include/sys/types.h (_dev_t): Should be unsigned int for MSVCRT. + * include/sys/stat.h (struct stat): st_uid is of type short. Use + _off_t instead of long for st_size. + +Thu Sep 10 22:28:49 1998 Mumit Khan <khan@xraylith.wisc.edu> + + * include/errno.h (sys_errlist, sys_nerr): Move from here ... + * include/stdlib.h: Here. + + * include/netdb.h: Remove. + * include/arpa/inet.h: Remove. + * include/netinet/in.h: Remove. + * include/sys/socket.h: Remove. + +Fri Sep 4 15:09:11 1998 Mumit Khan <khan@xraylith.wisc.edu> + + * Release egcs-1.1. + + * include/{ctype.h,dos.h,io.h,string.h,time.h,sys/types.h, + sys/utime.h}: Protect stddef.h in RC_INVOKED macro. + +Thu Sep 3 10:43:29 1998 Mumit Khan <khan@xraylith.wisc.edu> + + * setjmp.h (_JBTYPE, _JBLEN): Define correctly. + (jmpbuf): typedef using above. + (setjmp, longjmp): Prototype using jmpbuf. + + Merge with Colin Peters' 980701 snapshot. I've ignored changes to + obsolescent imported names, ie., from __imp__ to _imp___. + + Also ignored empty include/sys/param.h and incorrect + include/sys/times.h. + + * CRTinit.c: New file. + * include/{errno.h,fcntl.h,math.h,process.h} (__MSVCRT__): Use #ifdef + instead of #if. + * include/io.h (umask): Fix prototype. + * include/stdlib.h (OS constants): Replace with Colin's. + * include/time.h (tzset, daylight, timezone): Replace with Colin's. + * include/sys/state.h: Merge. + +Thu Sep 3 09:49:07 1998 Mumit Khan <khan@xraylith.wisc.edu> + + * include/assert.h (assert): Lose the trailing semicolon. + +Thu Jul 30 21:18:49 1998 Mumit Khan <khan@xraylith.wisc.edu> + + * include/math.h (matherr): Declare. + * include/stdio.h (fileno, _fileno): Declare. + * include/stdlib.h (environ, _environ): Fix to use runtime DLL. + + From Earnie Boyd: + * include/stdio.h (fdopen, _fdopen): Add const. + (getw, putw): Declare. + * include/stdlib.h (MAX_{DRIVE,DIR,FNAME,EXT}): Fix. + +Sat Jun 13 18:19:41 1998 Mumit Khan <khan@xraylith.wisc.edu> + + * include/time.h (_timezone): Undefine. + * include/sys/timeb.h (struct timeb): Rename _timezone to timezone. + + * include/time.h (_daylight, _timezone, _tzname, _tzset): Remove + __cdecl for MSVCRT. + * include/stdlib.h (environ): Use DLL version. + * init.c (environ): Undefine it before use. + +Sun Mar 22 19:59:30 1998 Mumit Khan <khan@xraylith.wisc.edu> + + * Update to 980309 snapshot from Colin Peters. + + * include/utime.h: remove + * include/stdlib.h (__imp__osver_dll, __imp__winver_dll, + __imp__winmajor_dll, __imp__winminor_dll): Apply Jan-Jaap's + patches to define these. + * include/time.h (CLK_TCK): Renamed from CLK_TICK. + (_daylight, _timezone, _tzname, _tzset): Define. + + * include/netdb.h: Add from Colin's windows32api changes. + * include/sys/socket.h: Likewise. + * include/arpa/inet.h: Likewise. + * include/netinet/in.h: Likewise. + +Wed Feb 4 14:16:44 1998 Mumit Khan <khan@xraylith.wisc.edu> + + * Update to 980128 snapshot from Colin Peters. + +Sat Dec 6 21:30:35 1997 Mumit Khan <khan@xraylith.wisc.edu> + + * configure.in (AC_INIT): Use dllmain.c instead of defunct + oldnames.c + * configure: Regenerate. + +Fri Dec 5 15:57:36 1997 Mumit Khan <khan@xraylith.wisc.edu> + + * Update to 971205 snapshot from Colin Peters. Lots of changes. + Files renamed and include hierarchy loses directories named + nonansi. + + * include/dos.h: from Jan-Jaap. + +Thu Dec 4 21:48:13 1997 Mumit Khan <khan@xraylith.wisc.edu> + + Changes to conform to FSF tree. + + * crt1.c: Renamed from mcrt0.c. + * dllcrt1.c: Renamed from dllcrt0.c. + * Makefile.in: Update above. Also renamed libmoldnames.a to + libmoldname.a. + +Mon Dec 1 16:51:30 1997 Mumit Khan <khan@xraylith.wisc.edu> + + * crtdll.def: Export all functions but the ones with funny names. + * moldnames.def: Add fdopen since fileno is already there. + * include/nonansi/dos.h: New file from Jan-Jaap. + * include/errno.h: Add extern decl + various additions from JJ. + * include/stdio.h: Likewise. + * include/stdlib.h: Likewise. + * include/nonansi/io.h: Likewise. + * include/nonansi/process.h: Likewise. + * include/sys/types.h: Likewise. + +Tue Nov 4 14:51:01 1997 Mumit Khan <khan@xraylith.wisc.edu> + + * include/time.h (CLK_TCK): Renamed from CLK_TICK. + (CLK_TICK): Delete. + * include/stdlib.h (free): Fix prototype to return void, not void*. + * include/nonansi/process.h: Add P_* and WAIT_* defs. + + * dllcrt0.c: Delete now-unneeded '.section .idata$3' asm hack. + * mcrt0.c: Likewise. + + * Makefile.in (LIBS): Delete moldnames.dll from target libs. + (libmoldnames.a): Add explicit rule to create it. + +Fri Aug 15 18:23:43 1997 Rob Savoye <rob@cygnus.com> + + New directory for the minimalist cygwin environment. + + * crtglob.c: New file. Turn on file globbing support. + * crt_noglob.c: New file. Turn off file globbing support. + * ctype_old.c: New file. Wrappers for functions that don't + have an underscore. + * dirent.c: New file. Directory routines readdir, opendir, closedir. + * dllcrt0.c: New file. Initialization code to use crtdll.dll. + * dllmain.c: New file. A stub DllMain function. + * hugeval.c: New file. A gross hack to define HUGE_VAL. + * init.c: New file. Common code to initialize standard file + handles and command line arguments. + * main.c: New file. A main for programs that only call WinMain. + * mcrt0.c: New file. Default crt0 for mingw32. + * oldnames.c: New File. Wrappers for functions that don't + have an underscore. + * string_old.c: New File. + * include/{assert.h,ctype.h,errno.h,float.h,limits.h,locale.h + math.h,nonansi,setjmp.h,signal.h,stdarg.h,stddef.h,stdio.h,stdlib.h + string.h,tchar.h,time.h,wchar.h}: New header files for mingw. + * include/sys/types.h: New header file for mingw. + * include/nonansi/{alloc.h,conio.h,dir.h,direct.h,dirent.h + fcntl.h,io.h,malloc.h,mem.h,memory.h,process.h,share.h,unistd.h + utime.h,values.h,varargs.h}: New header files for mingw. + * include/nonansi/sys/{fcntl.h,locking.h,stat.h,time.h + timeb.h,unistd.h}: New header files for mingw. + * Makefile.in,configure.in: Build and configure support. + * configure: Generated from autoconf 2.12 with Cygnus patches. diff --git a/winsup/mingw/include/stdio.h b/winsup/mingw/include/stdio.h new file mode 100644 index 00000000000..23b470b9e79 --- /dev/null +++ b/winsup/mingw/include/stdio.h @@ -0,0 +1,418 @@ +/* + * stdio.h + * + * Definitions of types and prototypes of functions for standard input and + * output. + * + * NOTE: The file manipulation functions provided by Microsoft seem to + * work with either slash (/) or backslash (\) as the directory separator. + * + * This file is part of the Mingw32 package. + * + * Contributors: + * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * $Revision$ + * $Author$ + * $Date$ + * + */ + +#ifndef _STDIO_H_ +#define _STDIO_H_ + +/* All the headers include this file. */ +#include <_mingw.h> + +#ifndef RC_INVOKED +#define __need_size_t +#define __need_NULL +#define __need_wchar_t +#define __need_wint_t +#include <stddef.h> +#define __need___va_list +#include <stdarg.h> +#endif /* Not RC_INVOKED */ + + +/* Flags for the iobuf structure */ +#define _IOREAD 1 /* currently reading */ +#define _IOWRT 2 /* currently writing */ +#define _IORW 0x0080 /* opened as "r+w" */ + + +/* + * The three standard file pointers provided by the run time library. + * NOTE: These will go to the bit-bucket silently in GUI applications! + */ +#define STDIN_FILENO 0 +#define STDOUT_FILENO 1 +#define STDERR_FILENO 2 + +/* Returned by various functions on end of file condition or error. */ +#define EOF (-1) + +/* + * The maximum length of a file name. You should use GetVolumeInformation + * instead of this constant. But hey, this works. + * + * NOTE: This is used in the structure _finddata_t (see io.h) so changing it + * is probably not a good idea. + */ +#define FILENAME_MAX (260) + +/* + * The maximum number of files that may be open at once. I have set this to + * a conservative number. The actual value may be higher. + */ +#define FOPEN_MAX (20) + +/* After creating this many names, tmpnam and tmpfile return NULL */ +#define TMP_MAX 32767 +/* + * Tmpnam, tmpfile and, sometimes, _tempnam try to create + * temp files in the root directory of the current drive + * (not in pwd, as suggested by some older MS doc's). + * Redefining these macros does not effect the CRT functions. + */ +#define _P_tmpdir "\\" +#define _wP_tmpdir L"\\" + +/* + * The maximum size of name (including NUL) that will be put in the user + * supplied buffer caName for tmpnam. + * Inferred from the size of the static buffer returned by tmpnam + * when passed a NULL argument. May actually be smaller. + */ +#define L_tmpnam (16) + +#define _IOFBF 0x0000 /* full buffered */ +#define _IOLBF 0x0040 /* line buffered */ +#define _IONBF 0x0004 /* not buffered */ + +#define _IOMYBUF 0x0008 /* stdio malloc()'d buffer */ +#define _IOEOF 0x0010 /* EOF reached on read */ +#define _IOERR 0x0020 /* I/O error from system */ +#define _IOSTRG 0x0040 /* Strange or no file descriptor */ +#ifdef _POSIX_SOURCE +# define _IOAPPEND 0x0200 +#endif +/* + * The buffer size as used by setbuf such that it is equivalent to + * (void) setvbuf(fileSetBuffer, caBuffer, _IOFBF, BUFSIZ). + */ +#define BUFSIZ 512 + +/* Constants for nOrigin indicating the position relative to which fseek + * sets the file position. Enclosed in ifdefs because io.h could also + * define them. (Though not anymore since io.h includes this file now.) */ +#ifndef SEEK_SET +#define SEEK_SET (0) +#endif + +#ifndef SEEK_CUR +#define SEEK_CUR (1) +#endif + +#ifndef SEEK_END +#define SEEK_END (2) +#endif + + +#ifndef RC_INVOKED + +#ifdef __GNUC__ +#define __VALIST __gnuc_va_list +#else +#define __VALIST char* +#endif + +/* + * The structure underlying the FILE type. + * + * I still believe that nobody in their right mind should make use of the + * internals of this structure. Provided by Pedro A. Aranda Gutiirrez + * <paag@tid.es>. + */ +#ifndef _FILE_DEFINED +#define _FILE_DEFINED +typedef struct _iobuf +{ + char* _ptr; + int _cnt; + char* _base; + int _flag; + int _file; + int _charbuf; + int _bufsiz; + char* _tmpfname; +} FILE; +#endif /* Not _FILE_DEFINED */ + + +/* + * The standard file handles + */ +#ifndef __DECLSPEC_SUPPORTED + +extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ + +#define _iob (*_imp___iob) /* An array of FILE */ + +#else /* __DECLSPEC_SUPPORTED */ + +__MINGW_IMPORT FILE _iob[]; /* An array of FILE imported from DLL. */ + +#endif /* __DECLSPEC_SUPPORTED */ + +#define stdin (&_iob[STDIN_FILENO]) +#define stdout (&_iob[STDOUT_FILENO]) +#define stderr (&_iob[STDERR_FILENO]) + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * File Operations + */ +FILE* fopen (const char*, const char*); +FILE* freopen (const char*, const char*, FILE*); +int fflush (FILE*); +int fclose (FILE*); +/* MS puts remove & rename (but not wide versions) in io.h also */ +int remove (const char*); +int rename (const char*, const char*); +FILE* tmpfile (void); +char* tmpnam (char*); +char* _tempnam (const char*, const char*); + +#ifndef NO_OLDNAMES +char* tempnam (const char*, const char*); +#endif + +int setvbuf (FILE*, char*, int, size_t); + +void setbuf (FILE*, char*); + +/* + * Formatted Output + */ + +int fprintf (FILE*, const char*, ...); +int printf (const char*, ...); +int sprintf (char*, const char*, ...); +int _snprintf (char*, size_t, const char*, ...); +int vfprintf (FILE*, const char*, __VALIST); +int vprintf (const char*, __VALIST); +int vsprintf (char*, const char*, __VALIST); +int _vsnprintf (char*, size_t, const char*, __VALIST); + +#ifndef __NO_ISOCEXT /* externs in libmingwex.a */ +int snprintf(char* s, size_t n, const char* format, ...); +extern __inline__ int vsnprintf (char* s, size_t n, const char* format, + __VALIST arg) + { return _vsnprintf ( s, n, format, arg); } +#endif + +/* + * Formatted Input + */ + +int fscanf (FILE*, const char*, ...); +int scanf (const char*, ...); +int sscanf (const char*, const char*, ...); +/* + * Character Input and Output Functions + */ + +int fgetc (FILE*); +char* fgets (char*, int, FILE*); +int fputc (int, FILE*); +int fputs (const char*, FILE*); +int getc (FILE*); +int getchar (void); +char* gets (char*); +int putc (int, FILE*); +int putchar (int); +int puts (const char*); +int ungetc (int, FILE*); + +/* + * Direct Input and Output Functions + */ + +size_t fread (void*, size_t, size_t, FILE*); +size_t fwrite (const void*, size_t, size_t, FILE*); + +/* + * File Positioning Functions + */ + +int fseek (FILE*, long, int); +long ftell (FILE*); +void rewind (FILE*); + +/* + * An opaque data type used for storing file positions... The contents of + * this type are unknown, but we (the compiler) need to know the size + * because the programmer using fgetpos and fsetpos will be setting aside + * storage for fpos_t structres. Actually I tested using a byte array and + * it is fairly evident that the fpos_t type is a long (in CRTDLL.DLL). + * Perhaps an unsigned long? TODO? It's definitely a 64-bit number in + * MSVCRT however, and for now `long long' will do. + */ +#ifdef __MSVCRT__ +typedef long long fpos_t; +#else +typedef long fpos_t; +#endif + +int fgetpos (FILE*, fpos_t*); +int fsetpos (FILE*, const fpos_t*); + +/* + * Error Functions + */ + +void clearerr (FILE*); +int feof (FILE*); +int ferror (FILE*); +void perror (const char*); + + +#ifndef __STRICT_ANSI__ +/* + * Pipes + */ +FILE* _popen (const char*, const char*); +int _pclose (FILE*); + +#ifndef NO_OLDNAMES +FILE* popen (const char*, const char*); +int pclose (FILE*); +#endif + +/* + * Other Non ANSI functions + */ +int _flushall (void); +int _fgetchar (void); +int _fputchar (int); +FILE* _fdopen (int, const char*); +int _fileno (FILE*); +int _fcloseall(void); + +#ifndef _NO_OLDNAMES +int fgetchar (void); +int fputchar (int); +FILE* fdopen (int, const char*); +int fileno (FILE*); +#endif /* Not _NO_OLDNAMES */ + +#endif /* Not __STRICT_ANSI__ */ + +/* Wide versions */ + +#ifndef _WSTDIO_DEFINED +/* also in wchar.h - keep in sync */ +int fwprintf (FILE*, const wchar_t*, ...); +int wprintf (const wchar_t*, ...); +int swprintf (wchar_t*, const wchar_t*, ...); +int _snwprintf (wchar_t*, size_t, const wchar_t*, ...); +int vfwprintf (FILE*, const wchar_t*, __VALIST); +int vwprintf (const wchar_t*, __VALIST); +int vswprintf (wchar_t*, const wchar_t*, __VALIST); +int _vsnwprintf (wchar_t*, size_t, const wchar_t*, __VALIST); +int fwscanf (FILE*, const wchar_t*, ...); +int wscanf (const wchar_t*, ...); +int swscanf (const wchar_t*, const wchar_t*, ...); +wint_t fgetwc (FILE*); +wint_t fputwc (wchar_t, FILE*); +wint_t ungetwc (wchar_t, FILE*); +#ifdef __MSVCRT__ +wchar_t* fgetws (wchar_t*, int, FILE*); +int fputws (const wchar_t*, FILE*); +wint_t getwc (FILE*); +wint_t getwchar (void); +wint_t putwc (wint_t, FILE*); +wint_t putwchar (wint_t); + +#ifndef __STRICT_ANSI__ +wchar_t* _getws (wchar_t*); +int _putws (const wchar_t*); +FILE* _wfdopen(int, wchar_t *); +FILE* _wfopen (const wchar_t*, const wchar_t*); +FILE* _wfreopen (const wchar_t*, const wchar_t*, FILE*); +FILE* _wfsopen (const wchar_t*, const wchar_t*, int); +wchar_t* _wtmpnam (wchar_t*); +wchar_t* _wtempnam (const wchar_t*, const wchar_t*); +int _wrename (const wchar_t*, const wchar_t*); +int _wremove (const wchar_t*); +void _wperror (const wchar_t*); +FILE* _wpopen (const wchar_t*, const wchar_t*); +#endif /* Not __STRICT_ANSI__ */ +#endif /* __MSVCRT__ */ + +#ifndef __NO_ISOCEXT /* externs in libmingwex.a */ +int snwprintf(wchar_t* s, size_t n, const wchar_t* format, ...); +extern __inline__ int +vsnwprintf (wchar_t* s, size_t n, const wchar_t* format, __VALIST arg) + { return _vsnwprintf ( s, n, format, arg);} +#endif + +#define _WSTDIO_DEFINED +#endif /* _WSTDIO_DEFINED */ + +#ifndef __STRICT_ANSI__ +#ifdef __MSVCRT__ +#ifndef NO_OLDNAMES +FILE* wpopen (const wchar_t*, const wchar_t*); +#endif /* not NO_OLDNAMES */ +#endif /* MSVCRT runtime */ + +/* + * Other Non ANSI wide functions + */ +wint_t _fgetwchar (void); +wint_t _fputwchar (wint_t); +int _getw (FILE*); +int _putw (int, FILE*); + +#ifndef _NO_OLDNAMES +wint_t fgetwchar (void); +wint_t fputwchar (wint_t); +int getw (FILE*); +int putw (int, FILE*); +#endif /* Not _NO_OLDNAMES */ + +#ifdef __USE_MINGW_FSEEK /* These are in libmingwex.a */ +/* + * Workaround for limitations on win9x where a file contents are + * not zero'd out if you seek past the end and then write. + */ +int __mingw_fseek (FILE *, long, int); +int __mingw_fwrite (const void*, size_t, size_t, FILE*); +#define fseek(fp, offset, whence) __mingw_fseek(fp, offset, whence) +#define fwrite(buffer, size, count, fp) __mingw_fwrite(buffer, size, count, fp) +#endif /* __USE_MINGW_FSEEK */ + +#endif /* __STRICT_ANSI */ + +#ifdef __cplusplus +} +#endif + +#endif /* Not RC_INVOKED */ + +#endif /* _STDIO_H_ */ diff --git a/winsup/mingw/include/wchar.h b/winsup/mingw/include/wchar.h new file mode 100644 index 00000000000..e67ecb65181 --- /dev/null +++ b/winsup/mingw/include/wchar.h @@ -0,0 +1,325 @@ +/* + * wchar.h + * + * Defines of all functions for supporting wide characters. Actually it + * just includes all those headers, which is not a good thing to do from a + * processing time point of view, but it does mean that everything will be + * in sync. + * + * This file is part of the Mingw32 package. + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * $Revision$ + * $Author$ + * $Date$ + * + */ + +#ifndef _WCHAR_H_ +#define _WCHAR_H_ + +/* All the headers include this file. */ +#include <_mingw.h> + +#include <ctype.h> +#include <stdio.h> /* for FILE, FILENAME_MAX */ +#include <time.h> /* for struct tm */ + +#define __need_size_t +#define __need_wint_t +#define __need_wchar_t +#define __need_NULL +#ifndef RC_INVOKED +#include <stddef.h> +#endif /* Not RC_INVOKED */ + +#define WCHAR_MIN 0 +#define WCHAR_MAX ((wchar_t)-1) + +#ifndef RC_INVOKED + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __STRICT_ANSI__ + +#ifndef _FSIZE_T_DEFINED +typedef unsigned long _fsize_t; +#define _FSIZE_T_DEFINED +#endif + +#ifndef _WFINDDATA_T_DEFINED +struct _wfinddata_t { + unsigned attrib; + time_t time_create; /* -1 for FAT file systems */ + time_t time_access; /* -1 for FAT file systems */ + time_t time_write; + _fsize_t size; + wchar_t name[FILENAME_MAX]; /* may include spaces. */ +}; +struct _wfinddatai64_t { + unsigned attrib; + time_t time_create; + time_t time_access; + time_t time_write; + __int64 size; + wchar_t name[FILENAME_MAX]; +}; +#define _WFINDDATA_T_DEFINED +#endif + +/* Wide character versions. Also defined in io.h. */ +/* CHECK: I believe these only exist in MSVCRT, and not in CRTDLL. Also + applies to other wide character versions? */ +#if !defined (_WIO_DEFINED) +#if defined (__MSVCRT__) +int _waccess (const wchar_t*, int); +int _wchmod (const wchar_t*, int); +int _wcreat (const wchar_t*, int); +long _wfindfirst (const wchar_t*, struct _wfinddata_t *); +int _wfindnext (long, struct _wfinddata_t *); +int _wunlink (const wchar_t*); +int _wopen (const wchar_t*, int, ...); +int _wsopen (const wchar_t*, int, int, ...); +wchar_t* _wmktemp (wchar_t*); +long _wfindfirsti64 (const wchar_t*, struct _wfinddatai64_t*); +int _wfindnexti64 (long, struct _wfinddatai64_t*); +#endif /* defined (__MSVCRT__) */ +#define _WIO_DEFINED +#endif /* _WIO_DEFINED */ +#endif /* __STRICT_ANSI__ */ + +#ifndef _WSTDIO_DEFINED +/* also in stdio.h - keep in sync */ +int fwprintf (FILE*, const wchar_t*, ...); +int wprintf (const wchar_t*, ...); +int swprintf (wchar_t*, const wchar_t*, ...); +int _snwprintf (wchar_t*, size_t, const wchar_t*, ...); +int vfwprintf (FILE*, const wchar_t*, va_list); +int vwprintf (const wchar_t*, va_list); +int vswprintf (wchar_t*, const wchar_t*, va_list); +int _vsnwprintf (wchar_t*, size_t, const wchar_t*, va_list); +int fwscanf (FILE*, const wchar_t*, ...); +int wscanf (const wchar_t*, ...); +int swscanf (const wchar_t*, const wchar_t*, ...); +wint_t fgetwc (FILE*); +wint_t fputwc (wchar_t, FILE*); +wint_t ungetwc (wchar_t, FILE*); + +#ifndef __NO_ISOCEXT /* externs in libmingwex.a */ +int snwprintf(wchar_t* s, size_t n, const wchar_t* format, ...); +extern __inline__ int vsnwprintf (wchar_t* s, size_t n, const wchar_t* format, + va_list arg) + { return _vsnwprintf ( s, n, format, arg); } +#endif + +#ifdef __MSVCRT__ +wchar_t* fgetws (wchar_t*, int, FILE*); +int fputws (const wchar_t*, FILE*); +wint_t getwc (FILE*); +wint_t getwchar (void); +wint_t putwc (wint_t, FILE*); +wint_t putwchar (wint_t); + +#ifndef __STRICT_ANSI__ +wchar_t* _getws (wchar_t*); +int _putws (const wchar_t*); +FILE* _wfdopen(int, wchar_t *); +FILE* _wfopen (const wchar_t*, const wchar_t*); +FILE* _wfreopen (const wchar_t*, const wchar_t*, FILE*); +FILE* _wfsopen (const wchar_t*, const wchar_t*, int); +wchar_t* _wtmpnam (wchar_t*); +wchar_t* _wtempnam (const wchar_t*, const wchar_t*); +int _wrename (const wchar_t*, const wchar_t*); +int _wremove (const wchar_t*) +FILE* _wpopen (const wchar_t*, const wchar_t*) +void _wperror (const wchar_t*); +#endif /* __STRICT_ANSI__ */ +#endif /* __MSVCRT__ */ +#define _WSTDIO_DEFINED +#endif /* _WSTDIO_DEFINED */ + +#ifndef __STRICT_ANSI__ +#ifndef _WDIRECT_DEFINED +/* Also in direct.h */ +#ifdef __MSVCRT__ +int _wchdir (const wchar_t*); +wchar_t* _wgetcwd (wchar_t*, int); +wchar_t* _wgetdcwd (int, wchar_t*, int); +int _wmkdir (const wchar_t*); +int _wrmdir (const wchar_t*); +#endif /* __MSVCRT__ */ +#define _WDIRECT_DEFINED +#endif /* _WDIRECT_DEFINED */ + +#ifndef _STAT_DEFINED +/* + * The structure manipulated and returned by stat and fstat. + * + * NOTE: If called on a directory the values in the time fields are not only + * invalid, they will cause localtime et. al. to return NULL. And calling + * asctime with a NULL pointer causes an Invalid Page Fault. So watch it! + */ +struct _stat +{ + _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */ + _ino_t st_ino; /* Always zero ? */ + _mode_t st_mode; /* See above constants */ + short st_nlink; /* Number of links. */ + short st_uid; /* User: Maybe significant on NT ? */ + short st_gid; /* Group: Ditto */ + _dev_t st_rdev; /* Seems useless (not even filled in) */ + _off_t st_size; /* File size in bytes */ + time_t st_atime; /* Accessed date (always 00:00 hrs local + * on FAT) */ + time_t st_mtime; /* Modified time */ + time_t st_ctime; /* Creation time */ +}; + +struct stat +{ + _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */ + _ino_t st_ino; /* Always zero ? */ + _mode_t st_mode; /* See above constants */ + short st_nlink; /* Number of links. */ + short st_uid; /* User: Maybe significant on NT ? */ + short st_gid; /* Group: Ditto */ + _dev_t st_rdev; /* Seems useless (not even filled in) */ + _off_t st_size; /* File size in bytes */ + time_t st_atime; /* Accessed date (always 00:00 hrs local + * on FAT) */ + time_t st_mtime; /* Modified time */ + time_t st_ctime; /* Creation time */ +}; +#if defined (__MSVCRT__) +struct _stati64 { + _dev_t st_dev; + _ino_t st_ino; + unsigned short st_mode; + short st_nlink; + short st_uid; + short st_gid; + _dev_t st_rdev; + __int64 st_size; + time_t st_atime; + time_t st_mtime; + time_t st_ctime; + }; +#endif /* __MSVCRT__ */ + +#define _STAT_DEFINED +#endif /* _STAT_DEFINED */ + +#if !defined ( _WSTAT_DEFINED) +/* also declared in sys/stat.h */ +#if defined __MSVCRT__ +int _wstat (const wchar_t*, struct _stat*); +int _wstati64 (const wchar_t*, struct _stati64*); +#endif /* __MSVCRT__ */ +#define _WSTAT_DEFINED +#endif /* ! _WSTAT_DEFIND */ + +#endif /* __STRICT_ANSI__ */ + +#ifndef _WTIME_DEFINED +#ifdef __MSVCRT__ +#ifndef __STRICT_ANSI__ +/* wide function prototypes, also declared in time.h */ +wchar_t* _wasctime (const struct tm*); +wchar_t* _wctime (const time_t*); +wchar_t* _wstrdate (wchar_t*); +wchar_t* _wstrtime (wchar_t*); +#endif /* __MSVCRT__ */ +#endif /* __STRICT_ANSI__ */ +size_t wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*); +#define _WTIME_DEFINED +#endif /* _WTIME_DEFINED */ + +#ifndef __STRICT_ANSI__ +#ifndef _WLOCALE_DEFINED /* also declared in locale.h */ +wchar_t* _wsetlocale (int, const wchar_t*); +#define _WLOCALE_DEFINED +#endif +#endif /* __STRICT_ANSI__ */ + +#ifndef _WSTDLIB_DEFINED /* also declared in stdlib.h */ +long wcstol (const wchar_t*, wchar_t**, int); +unsigned long wcstoul (const wchar_t*, wchar_t**, int); +double wcstod (const wchar_t*, wchar_t**); +#if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */ +extern __inline__ float wcstof( const wchar_t *nptr, wchar_t **endptr) +{ return (wcstod(nptr, endptr)); } +#endif /* __NO_ISOCEXT */ +#define _WSTDLIB_DEFINED +#endif + +#ifndef __STRICT_ANSI__ +#ifndef _NO_OLDNAMES + +/* Wide character versions. Also declared in io.h. */ +/* CHECK: Are these in the oldnames??? NO! */ +#if (0) +int waccess (const wchar_t *, int); +int wchmod (const wchar_t *, int); +int wcreat (const wchar_t *, int); +long wfindfirst (wchar_t *, struct _wfinddata_t *); +int wfindnext (long, struct _wfinddata_t *); +int wunlink (const wchar_t *); +int wrename (const wchar_t *, const wchar_t *); +int wremove (const wchar_t *); +int wopen (const wchar_t *, int, ...); +int wsopen (const wchar_t *, int, int, ...); +wchar_t* wmktemp (wchar_t *); +#endif +#endif /* _NO_OLDNAMES */ +#endif /* not __STRICT_ANSI__ */ + +/* These are resolved by -lmsvcp60 */ +/* If you don't have msvcp60.dll in your windows system directory, you can + easily obtain it with a search from your favorite search engine. */ +typedef int mbstate_t; +typedef wchar_t _Wint_t; + +wint_t btowc(int); +size_t mbrlen(const char *, size_t, mbstate_t *); +size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *); +size_t mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *); + +size_t wcrtomb(char *, wchar_t, mbstate_t *); +size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *); +int wctob(wint_t); + +#ifndef __NO_ISOCEXT /* these need static lib libmingwex.a */ +extern __inline__ int fwide(FILE* stream, int mode) {return -1;} /* limited to byte orientation */ +extern __inline__ int mbsinit(const mbstate_t* ps) {return 1;} +wchar_t* wmemset(wchar_t* s, wchar_t c, size_t n); +wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n); +int wmemcmp(const wchar_t* s1, const wchar_t * s2, size_t n); +wchar_t* wmemcpy(wchar_t* __restrict__ s1, const wchar_t* __restrict__ s2, + size_t n); +wchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n); +long long wcstoll(const wchar_t* __restrict__ nptr, + wchar_t** __restrict__ endptr, int base); +unsigned long long wcstoull(const wchar_t* __restrict__ nptr, + wchar_t ** __restrict__ endptr, int base); + +#endif /* __NO_ISOCEXT */ + +#ifdef __cplusplus +} /* end of extern "C" */ +#endif + +#endif /* Not RC_INVOKED */ + +#endif /* not _WCHAR_H_ */ + |