----------------------------------------------------------------- Tue 19-Jul-94 (GregF) crtwin32/dllstuff/crtdll.c crtwin32/misc/onexit.c Changed the calls to GlobalAlloc so that GMEM_SHARE is specified. Affects only the Win32s version of msvcrt20.dll. This was bug 14851, originating with Boaz Feldbaum. ----------------------------------------------------------------- Fri 10-Jun-94 (SteveSa) crtwin32/startup/threadex.c Fix 2 synchronization problems. 1) The _beginthreadex routine may NOT store values into the per-thread data block of the child thread since the child thread may finish executing and free that block before the parent thread executes the first instruction after the call to CreateThread. (This is not a problem for _beginthread because that routine always creates its child thread in the suspended state.) There is no need to store the child thread handle in the per-thread data block for that child thread since _endthreadex does not close that handle. 2) The code had been written to pass the address of the tid field in the p.t.d. block to CreateThread, not the user specified tid address. The user tid was filled in after CreateThread returned, but that was not reliable. Now the user tid address is passed to CreateThread, and the child thread calls GetCurrentThreadId() to set the TID in its own p.t.d. block. ----------------------------------------------------------------- Wed 08-Jun-94 (SteveSa) libwin32\include\process.h crtwin32\h\process.h crtwin32\startup\dllcrt0.c crtwin32\dllstuff\crtdll.c Add global variable _pRawDllMain which, if non-NULL because the user has defined it, will be called through upon DLL notifications, only before the CRT initialization on ATTACH notifications, and after the CRT termination on DETACH notifications. This was needed by MFC. ----------------------------------------------------------------- Wed 08-Jun-94 (GregF) crtwin32\dllstuff\atonexit.c, crtdll.c crtwin32\heap\free.c crtwin32\misc\onexit.c Fixes to the support for user DLLs in Win32s. Principal change was to use GlobalHeap API for the onexit table. ----------------------------------------------------------------- Mon 06-Jun-94 (SteveSa) crtwin32/h/ & libwin32/include/ errno.h, float.h, signal.h, stddef.h, stdio.h, stdlib.h Changed (some occurrences of) "#ifdef _MT" to "#if defined(_MT) || defined(_DLL)" so that MSVCRT*.DLL can be used with single-thread programs. This model is dangerous if threads are running in the background without the user program's knowledge, but it allows fast getc/putc, for example, which are needed by our own compiler passes. ----------------------------------------------------------------- Sat 04-Jun-94 (GregF) crtwin32\string\alpha\strcat.c Removed _CALLTYPE1. ----------------------------------------------------------------- Fri 03-Jun-94 (GregF) libwin32\makefile Added ehvec*.obj to COMPONENTS_SUPPOBJS_DLL_FOR_WIN32S list. ----------------------------------------------------------------- Fri 03-Jun-94 (SteveSa) libwin32\include\new.h crtwin32\h\new.h crtwin32\heap\handler.cxx Removed set_new_handler() as an alias for _set_new_handler(). Our implementation of _set_new_handler does NOT conform to the working ANSI C++ standard definition of set_new_handler. We must correctly implement set_new_handler for Visual C++ v3.0, but we cannot alias it to our own _set_new_handler. That would cause untold compatibility problems when we do implement a conforming version of the ANSI C++ set_new_handler(). ----------------------------------------------------------------- Wed 01-Jun-94 (ChrisWei) crtwin32\h[libwin32\include]\tchar.h all _strdec and _wcsdec params should be const. ----------------------------------------------------------------- Wed 01-Jun-94 (GregF) crtwin32\dllstuff\atonexit.c, crtdll.c Removed compile-time conditioning on DLL_FOR_WIN32S. Instead, test for Win32s at runtime. i386\msvcrt*.lib should now work for BOTH i386\msvcrt*.dll and i386\win32s\msvcrt*.dll!!! ----------------------------------------------------------------- Thu 26-May-94 (ChrisWei) crtwin32\h[libwin32\include]\string.h, wchar.h crtwin32\string\sources libwin32\lib\*\*.def Add _strncoll, _wcsncoll. crtwin32\h\tchar.h Make inlining the default for all. ----------------------------------------------------------------- Thu 26-May-94 (ChrisWei) crtwin32\h\tchar.h Make inlining the default for MBCS, fix _tcsn[c]cmp. ----------------------------------------------------------------- Thu 26-May-94 (GregF) crtwin32\misc\lsources, sources crtwin32\misc\alpha\strcmp.s, strcpy.s, strlen.s (deleted) crtwin32\string\lsources, sources crtwin32\string\alpha\strcat.c, strcmps.s, strcpy.s, strlens.s (new) Changes for the Alpha build (only) strcmp.s, strcpy.s and strlen.s were deleted from misc\alpha, and replaced by the files listed above in string\alpha ----------------------------------------------------------------- Wed 25-May-94 (ChrisWei) crtwin32\h\tchar.h Bug fix: _tcsnextc in _MBCS case. ----------------------------------------------------------------- Tue 24-May-94 (GregF) crtwin32\dllstuff\atonexit.c, crtdll.c crtwin32\heap\free.c crtwin32\misc\onexit.c Package of changes so that Win32s user DLLs only execute static ctors and dtors once (when the the first process attaches for ctors and when the last process detaches for dtors). ----------------------------------------------------------------- Tue 24-May-94 (GregF) crtwin32\h\istream.h crtwin32\iostream\istrgint.cxx, istrint.cxx, istrlong.cxx, istrshrt.cxx, istruint.cxx, istrulng.cxx, istrusht.cxx Moved the definition of MAXLONGSIZ from various *.cxx to istream.h. Also, changed istrgint.cxx so that is stops copying characters into the buffer with at most MAXLONGSIZ-1 characters have been copied. This was probably not really a bug since MAXLONGSIZ was big enough (16) we wouldn't come near it anyway. ----------------------------------------------------------------- Mon 23-May-94 (ChrisWei) crtwin32\mbstring\sources, tcsmap*.c, mbs*coll.c crtwin32\h[libwin32\include]tchar.h, mbstring.h libwin32\lib\*\*.def Add _mbs*coll functions. ----------------------------------------------------------------- Fri 20-May-94 (ChrisWei) crtwin32\mbstring\mbsnbcmp.c, mbsnbicm.c Fix old bug: if last char is lead byte, returns EQUAL without testing at all. Now at least does strict value comparison of LB with other strings char. ----------------------------------------------------------------- Thurs 19-May-94 (ChrisWei) crtwin32\mbstring\almost_everything.c crtwin32\h\mbdata.h, win32s.h Allow non-Win32 builds. Add Mac support. ----------------------------------------------------------------- Wed 18-May-94 (SteveSa) libwin32\buildall.cmd libwin32\makefile crtwin32\buildcrt.cmd crtwin32\crt32.def fpwin32\buildcrt.cmd fpwin32\fp32.def Add support for LEGO builds of LIBC.LIB, LIBCMT.LIB, MSVCRT.LIB and the release objects (BINMODE, COMMODE, SETARGV, etc.) This support is activated by the presence of {crt,fp}dbg{,st,dll} subdirectories, which are parallel to {crt,fp}win{,st,dll}. ----------------------------------------------------------------- Tue 17-May-94 (GregF) libwin32\makefile Replaced "link32" with "link" ----------------------------------------------------------------- Tue 17-May-94 (GregF) crtwin32\helper\mips\llbit.c,lldefs.h Bug fix for Dolphin bug 12192 from Roger Lanser. ----------------------------------------------------------------- Tue 17-May-94 (GregF) crtwin32\h\string.h libwin32\include\string.h memmove is implemented as an intrinsic on the Dec Alpha so the _CRTIMP qualifier must be removed from the prototype for the Alpha. ----------------------------------------------------------------- Mon 16-May-94 (ChrisWei) crtwin32\h\mbdata.h crtwin32\mbstring\mbsicmp.c, mbslwr.c, mbsnbicm.c, mbsnicmp.c, mbsupr.c, mbtolwr.c, mbtoupr.c Use _mbbtolower [upper] which is not locale-dependent, rather than tolower [upper] which is. ----------------------------------------------------------------- Mon 16-May-94 (SteveSa) crtwin32\dllstuff\crtexe.c The nCmdShow parameter passed to (_w)WinMain must match the computed value in crtwin32\startup\crt0.c. It was a constant. ----------------------------------------------------------------- Fri 13-May-94 (SteveSa) libwin32\makefile Add ehvec{ctr,cvb,dtr}.obj to MSVCRT.LIB. (They cannot be imported because of prototype conflicts between _CRTIMP and the front end.) Problem: Yet another command line too long (this one for MSVCRT20.LIB). Solution: Tell nmake to generate and use a linker response file. crtwin32\eh\sources Change flags to build this directory with -GX (all targets) and I386 with -d1Binl. This is necessary for ehvec{ctr,cvb,dtr}.cxx. crtwin32\eh\ehvec{ctr,cvb,dtr}.cxx Remove _CRTIMP attribute from these functions -- it causes a conflict with the compiler front-end's built-in prototypes for these helpers. ----------------------------------------------------------------- Thu 12-May-94 (GregF) crtwin32\h\assert.h, awint.h, conio.h, cruntime.h, ctime.h, cvt.h, direct.h, dos.h, errno.h, excpt.h, fcntl.h, file2.h, float.h, fltintrn.h, fpieee.h, io.h, limits.h, locale.h, math.h, mbstring.h, memory.h, msdos.h, oscalls.h, process.h, search.h, setjmp.h, share.h, signal.h, stdarg.h, stddef.h, string.h, syserr.h, tchar.h, varargs.h crtwin32\h\sys\locking.h, stat.h, timeb.h, types.h, utime.h Fixed _INC_* macro usage so that it is consistent throughout the include files (the #define comes immediately after the #ifdef). crtwin32\h\wchar.h Removed conditional #include of win32s.h. It wasn't necessary and it broke the build with the change above. libwin32\include\*.h Brought up to date with changes above. ----------------------------------------------------------------- Wed 11-May-94 (GregF) libwin32\makefile x86 build of the DLL has to be bound with user32.lib (init. code has a reference to MessageBoxA) ----------------------------------------------------------------- Tue 10-May-94 (GregF) crtwin32\dllstuff\crtlib.c Added check for Win32s at initialization time. Using this, the DLL version for Win32s (Win32) will not load on Win32 (resp., Win32). When one of DLLs is loaded on the wrong host, an explanatory message box is displayed and the initialization fails. ----------------------------------------------------------------- Thu 05-May-94 (GregF) libwin32\makefile, lib\i386\win32s, lib\i386\win32s\msvcrt20.def Build the Win32s DLL under the same name as the Windows NT DLL (i.e., msvcrt20.dll, msvcrt20.lib, msvcrt.lib) in the (new) subdirectory, win32s, of i386. ----------------------------------------------------------------- Wed 04-May-94 (GregF) libwin32\include\ctype.h, malloc.h, mbctype.h, stdio.h, stdlib.h, time.h, wchar.h Oops, almost forgot these... ----------------------------------------------------------------- Wed 04-May-94 (GregF) crtwin32\h\ctype.h, internal.h, malloc.h, mbctype.h, stdio.h, stdlib.h, time.h, wchar.h crtwin32\dllstuff\crtlib.c Made several of the _DLL changes also depend on _M_IX86 so they do not affect the MIPS or Alpha builds. Basically, these are the definitions/declarations of the access functions and the macros to convert references to the CRT's global (user-visible), read-write data to access function calls. I also fixed a potential bug in crtlib.c: the return value for a success call to AllocPerProcessDataStruct() was not explicitly set to any value. ----------------------------------------------------------------- Mon 02-May-94 (GregF) crtwin32\h\stdio.h libwin32\include\stdio.h Added __cdecl to declaration of __p__iob(). ----------------------------------------------------------------- Fri 29-Apr-94 (GregF) crtwin32\h\win32s.h Oops! Forgot to addfile this header yesterday. It defines the per- process data struct for Win32s and access macros. libwin32\include\ctype.h, malloc.h, mbctype.h, new.h, stdio.h, stdlib.h, time.h, wchar.h Brought up to date with crtwin32\h. ----------------------------------------------------------------- Thu 28-Apr-94 (GregF) crtwin32\buildcrt.cmd, crt32.def, makefile crtwin32\h\ctype.h, heap.h, internal.h, malloc.h, mbctype.h, mbdata.h, mtdll.h, new.h, nlsint.h, setlocal.h, stdio.h, time.h, wchar.h crtwin32\dllstuff\atonexit.c, crtexe.c, crtlib.c crtwin32\heap\_newmode.c, handler.cxx, heapinit.c, malloc.c, new_mode.cxx crtwin32\lowio\initcon.c, ioinit.c, txtmode.c crtwin32\mbstring\mbctype.c crtwin32\misc\ctype.c, initctyp.c, inithelp.c, initmon.c, inithelp.c, inittime.c, onexit.c, setenv.c, setlocal.c, setmval.c, wsetloca.c crtwin32\startup\crt0.c, crt0dat.c, mlock.c, stdargv.c, tidtable.c, wild.c crtwin32\stdio\_file.c, _getbuf.c, _open.c, _sftbuf.c, fdopen.c, fflush.c, ncommode.c, rmtmp.c, setvbuf.c, tmpfile.c crtwin32\time\clock.c, strftime.c, timeset.c, tzset.c crtwin32\tools\win32\relinc.if libwin32\buildall.cmd, makefile libwin32\lib\i386\msvcrt19.def Package of changes to build a special version of msvcrt*.dll for Win32s, and make the dll for Win32 compatible with it. ----------------------------------------------------------------- Wed 27-Apr-94 (GregF) libwin32\lib\mips\msvcrt20.def Added single precision math functions to the exports (defined for MIPS only). ----------------------------------------------------------------- Mon 24-Apr-94 (ChriswWei) - removed _tset[v]buf - there are no Unicode versions of these function. h\[include\]tchar.h - add wWinMainCRTStartup entry point for DLL dllstuff\wcrtexew.c, sources, crtexe.c - add wWinMainCRTStartup entry point for DLL libwin32\makefile ----------------------------------------------------------------- Fri 22-Apr-94 (GregF) libwin32/lib/alpha/msvcrt20.def Added _heapused to exports. ----------------------------------------------------------------- Thu 21-Apr-94 (SteveSa) libwin32/makefile libwin32/sdknames/ libwin32/sdknames/obj libwin32/sdknames/obj/{i386,mips,alpha} Changed the makefile to add SDKNAMES.LIB to MSVCRT.LIB. SDKNAMES.LIB contains aliases to convert SDK CRTDLL.LIB names (e.g. _winver_dll) to MS VC++ names (e.g., __imp__winver). The sdknames directory and its subdirectories were added for use in building SDKNAMES.LIB. Also, the OLDNAMES alias for control87() on the i386 was fixed. It was one leading underscore short on both source and target names and so it was spurious. It is now fixed (_control87 => __control87). ----------------------------------------------------------------- Thu 21-Apr-94 (GregF) crtwin32\stdio\input.c Wasn't re-initializing the integer64 flag. This meant that any descriptor following a %I64{d,o,x,u} caused the 64-bit contents of num64 to be copied thru its corresponding argument. Oops! This was Dolphin bug 10601. ----------------------------------------------------------------- Mon 18-Apr-94 ChrisWei) I have checked in a boatload of files covering: 1) Final changes to MB stuff, all MB routines are now generic (use the NLS API set and now work for any MB language). Also, the MB-stuff is now multi-thread safe. 2) str*coll, wcs*coll return _NLSCMPERROR when there is a problem with the API call. They had been doing so already but now its documented, the macro has the underscore, and its is now available to the users. 3) A few random bug fixes. 4) Got rid of some compiler warnings that I introduced a while back. 5) Added another MT lock in case anyone cares. [ 6) Greg, for Win32s: I added a global (_mblcid) and removed a global (_mbascii) ] Files changed: h\awint.h, mbctype.h mbdata.h, mbstring.h, mtdll.h, setlocal.h, string.h include\mbctype.h, mbstring.h, string.h misc\aw_str.c, initctyp.c \string\*icoll.c \stdio\puts.c convert\isctype.c, icwctype.c mbstring\almost the whole shebang: ismbalnm.c 2 2 out ismbalph.c 3 3 out ismbbyte.c 4 4 out ismbdgt.c 3 3 out ismbgrph.c 2 2 out ismblwr.c 3 3 out ismbprn.c 4 4 out ismbpunc.c 2 2 out ismbsle.c 2 2 out ismbspc.c 3 3 out ismbstr.c 2 2 out ismbupr.c 3 3 out mbctype.c 4 4 out mbsbtype.c 1 1 out mbschr.c 1 1 out mbscmp.c 1 1 out mbscspn.c 1 1 out mbsdec.c 1 1 out mbsicmp.c 1 1 out mbslen.c 1 1 out mbslwr.c 1 1 out mbsnbcat.c 1 1 out mbsnbcmp.c 1 1 out mbsnbcnt.c 1 1 out mbsnbcpy.c 1 1 out mbsnbicm.c 1 1 out mbsnbset.c 1 1 out mbsncat.c 1 1 out mbsnccnt.c 1 1 out mbsncmp.c 1 1 out mbsncpy.c 1 1 out mbsnicmp.c 1 1 out mbsnset.c 1 1 out mbsrchr.c 1 1 out mbsrev.c 1 1 out mbsset.c 1 1 out mbsspn.c 1 1 out mbstok.c 1 1 out mbsupr.c 1 1 out mbtohira.c 1 1 out mbtokata.c 1 1 out mbtolwr.c 1 1 out mbtoupr.c 1 1 out ----------------------------------------------------------------- Tue 12-Apr-94 (SteveSa) {crtwin32\h,libwin32\include}\{ios,istream,ostream}.h Add some __cdecl's to function declarations, add some leading leading underscores to parameter names to preserve ANSI naming. ----------------------------------------------------------------- Tue 05-Apr-94 (SteveSa) {crtwin32\h,libwin32\include}\{stdarg,varargs}.h Minor change to declaration of __builtin_va_start() for ALPHA only! ----------------------------------------------------------------- Fri 01-Apr-94 (GregF) crtwin32\eh\mips\handlers.s, tmphack.s Commented out library directives that were inappropriately causing libcmt.lib to be linked in (Dolphin bug 9646) ----------------------------------------------------------------- Wed 30-Mar-94 (GregF) libwin32\lib\alpha\msvcrt20.def Added several missing exports (all were Unicode versions of familiar CRT functions). ----------------------------------------------------------------- Mon 28-Mar-94 (SteveSa) libwin32/makefile crtwin32/dllstuff/crtexe.c - For X86 only (also not for the _NTSDK), add a call in CRTEXE.C to _setdefaultprecision(). Also add FP8.OBJ to MSVCRT.LIB. Now when a user links an EXE with FP10.OBJ and MSVCRT.LIB, it actually works as expected and sets the X87 precision to 80-bit (64-bit mantissa)! Previously linking with FP10.OBJ had no effect on floating point precision if linking with MSVCRT.LIB. This was a one-liner! ----------------------------------------------------------------- Sat 26-Mar-94 (SteveSa) crtwin32/dos/sources crtwin32/dos/mterrno.c - Added a new file to contain single-thread versions of the functions _errno() and __doserrno(), which return the addresses of the per-thread variables errno and _doserrno, respectively. These functions in the single thread library return the addresses of the global variables. This allows users to target shared code for use with LIBC.LIB and LIBCMT.LIB without having conflicts over accesses to errno/_doserrno. ----------------------------------------------------------------- Wed 23-Mar-94 (GregF) libwin32\lib\i386\msvcrt20.def Added _longjmpex. ----------------------------------------------------------------- Tue 22-Mar-94 (GregF) crtwin32\helper\mips\llbit.c Bug fix from Roger Lanser. He was doing arithmetic right shifts when he should have been doing logical right shifts... ----------------------------------------------------------------- Fri 18-Mar-94 (GregF) Build map file for msvcrt20.dll. ----------------------------------------------------------------- Thu 17-Mar-94 (GregF) crtwin32\h\heap.h crtwin32\heap\heapadd.c, heapinit.c, heapmin.c, malloc.c, realloc.c Package of changes to provide for more graceful handling of an out-of-free-descriptors (apparently, this condition will not arise on NT since the you get a nice little informative popup, followed by the summary execution of your app, whenever you run out of virtual memory). There remains a code path in heapadd.c which can lead to a call to _heap_abort but it's not clear that real code can hit this (I couldn't figure out how to). ----------------------------------------------------------------- Tue 15-Mar-94 (GregF) crtwin32\stdio\input.c Added support for I64 size modifier to the scanf-family. ----------------------------------------------------------------- Mon 14-Mar-94 (GregF) crtwin32\h\stddef.h libwin32\include\stddef.h Made declaration of errno match the on in stdlib.h. crtwin32\string\strstr.c Fixed bug so that if the second argument is "" (empty string), the first argument is returned. ----------------------------------------------------------------- Fri 11-Mar-94 (GregF) crtwin32\crt32.def Deleted the MIPS_OPTIMIZATION variable. Amounts to removing the -Ox- (disable intrinsics) switch from the MIPS build. This corresponds to Steve Hanson's change to \\orville\razzle\src\crt32 version. crtwin32\makefile Replaced lib32 with lib, the current name of the library manager. This includes Steve Hanson's change to \\orville\razzle\src\crt32 version. crtwin32\helper\mips\llbit.c Change from Steve Hanson (made to \\orville version). Basically, he turned off the bit shift intrinsics with a pragrma. crtwin32\helper\mips\llshiftt.c Test program. Taken from \\orville version of the tree. crtwin32\stdio\maketabc.c Changed to recognize 'I' as a size modifier. Code change was actually made before change to output.c below but I forgot to check it in. ----------------------------------------------------------------- Thu 10-Mar-94 (GregF) crtwin32\stdio\output.c Added support for I64 size modifier to the printf-family. ----------------------------------------------------------------- Tue 08-Mar-94 (GregF) libwin32\lib\mips\msvcrt20.def Added _CxxThrowException to exports. ----------------------------------------------------------------- Sat 05-Mar-94 (GregF) libwin32\makefile Fixed omissions in mips and alpha builds. ----------------------------------------------------------------- Fri 04-Mar-94 (GregF) crtwin32\string\sources Don't build mips\memcmpm.s any more (superceded by version in memorym.s). ----------------------------------------------------------------- Tue 01-Mar-94 (SteveSa) crtwin32/heap/malloc.c crtwin32/heap/new.cxx The undocumented global variable _pnhHeap must be declared in malloc.c and not new.cxx in case new.obj is overridden by MFC or somebody else. ----------------------------------------------------------------- Tue 01-Mar-94 (GregF) crtwin32\string\strset.c Change from \\orville tree, made there by Jeff Havens. crtwin32\string\mips\memorym.s, strchrm.s, strrchrm.s Bug fixes from Roger Lanser. Taken from the versions in the \\orville tree (\\orville\razzle\src\crt32). ----------------------------------------------------------------- Wed 23-Feb-94 (ChrisWei) crtwin32\misc\aw_cmp.c, aw_map.c aw_str.c Use Unicode versions first. crtwin32\h[libwin32\include]\limits.h Tweak of Greg's new large int stuff, add "u". ----------------------------------------------------------------- Wed 16-Feb-94 (SteveSa) crtwin32/heap/malloc.c crtwin32/heap/new.cxx Change malloc and new so that only new failures call the new handler (_pnhHeap) which is set by _set_new_handler(). (* This change turned out to be controversial. *) Also revised heapused.c to give a better computation of used memory. ----------------------------------------------------------------- Thur 10-Feb-94 (GregF) crtwin32\string\mips\memorym.s "Big oopser, memmove/memcpy/memset were not returning the destination ..." Quote and two-line fix both from Roger Lanser. crtwin32\misc\i386\exsup.asm, setjmp.asm, setjmp3.asm fs:0 holds -1 to mark the end of the exception handler chain, not 0! ----------------------------------------------------------------- Mon 07-Feb-94 (GregF) crtwin32\string\mips\*.* Added mips subdirectory of fast string routine for the mips. Contents came from crt32 tree on \\orville\razzle, from Roger Lanser. crtwin32\string\sources Changed to build the sources above where appropriate. ----------------------------------------------------------------- Fri 04-Feb-94 (ChrisWei) crtwin32\dllstuff\crtexe.c crtwin32\startup\crt0.c, crt0dat.c crtwin32\misc\setenv.c To avoid invalidating the users **envp to main, we copy the environment block. I moved this copying from startup to putenv to work around a benchmark bug, to simplify the code, and to not do the work before its required. crtwin32\h\mbctype.h crtwin32\mbstring\mbctype.c Added _setmbcp() and _getmbcp() functions. MB default is now ANSI CP. crtwin32\h\locale.h, setlocal.h crtwin32\misc\getqloc.c, setlocal.c Updated some of the countries and languages in setlocale(), and changed how the default behavior works, including switching from OEM to ANSI, but this may have to go back if we can't finagle NT 3.1 support as needed. crtwin32\h\locale.h, setlocal.h stdio.h crtwin32\stdio\puts.c Finished getws/puws stuff. ----------------------------------------------------------------- Fri 04-Feb-94 (GregF) crtwin32\buildcrt.nt Define _helper for 386 so that helper\i386\*.asm gets built. crtwin32\makefile.nt Synched up with crt32\makefile. crtwin32\convert\mbstowcs.c, mbtowc.c Picked up SteveWo's changes to the build for _NTSUBSET_. crtwin32\h\limits.h Added type suffixes for long and unsigned long constants. Also added constant for the sized integral types (e.g., _I64_MAX). crtwin32\stdio\freopen.c libwin32\makefile.nt Parameterized relative paths to development trees to make renaming easier. libwin32\buildcrt.nt Variant of buildcrt.cmd to build the NT SDK version of the libs. ----------------------------------------------------------------- Thu 03-Feb-94 (GregF) crtwin32\misc\mips\chandler.c Latest from \\orville\razzle\src\crt32\misc\mips (Dave Cutler). ----------------------------------------------------------------- Wed 02-Feb-94 (GregF) crtwin32\makefile Define HELPER_OBJECTS for x86 build. These are the __int64 helpers. crtwin32\helper\i386\*.asm One too many underscores! With our header file, the names get defined as C names (i.e., an underscore gets prepended in the transition to from source name to link name). ----------------------------------------------------------------- Tues 01-Feb-94 (ChrisWei) crtwin32\*\sources add INCLUDE ..\h to tell build.exe to scan our headers crtwin32\crt32.def remove INCLUDES statement crtwin32\h\stdio.h, wchar.h, tchar.h crtwin32\stdio\gets.c, puts.c, getws.c putws.c libwin32\lib\*\msvcrt20.def add getws() and putws() functions. ----------------------------------------------------------------- Mon 24-Jan-94 (GregF) crtwin32\h\ehdata.h Fixed mis-spelling of _M_MRX000 crtwin32\h\setjmp.h Fixed mis-spelling of _M_ALPHA. crtwin32\h\fpieee.h, math.h Merged in _LANGUAGE_ASSEMBLY conditionals from Roger Lanser. crtwin32\tools\win32\relinc.if Made _M_MRX000 'ignored' instead of 'undefined'. Also added _M_ALPHA to the ignore list, and _MT. Finally, deleted several macros which are no longer used. libwin32\include\fpieee.h, malloc.h, math.h, setjmp.h The fix to relinc.if above changed malloc.h and math.h both. In addition, math.h had some cosmetic change due to Steve Hanson's changes, as did math fpieee.h. Finally, I fixed a mis-spelling of _M_ALPHA in setjmp.h. ----------------------------------------------------------------- Wed 19-Jan-94 (GregF) ***** ALL CHANGES BELOW ARE FROM PHILIP LUCIDO ***** crtwin32\eh\frame.cxx - CHANGED PhilipL: "Trivial change to a comment." crtwin32\eh\i386\trnsctrl.cxx - CHANGED PhilipL: "Get rid of the callback interface I added last month. Add the local unwinder for C++ EH used by longjmp(). New public symbols: __CxxLongjmpUnwind@4 crtwin32\inc\exsup.inc - CHANGED PhilipLu: "Move jmp_buf descriptions here for common asm access" crtwin32\inc\setjmp.h - CHANGED PhilipLu: "jmp_buf now 16 DWORDS. Change _JBLEN from 8 to 16 and added new fields to _JUMP_BUFFER struct." crtwin32\inc\setjmpex.h - CHANGED setjmp must stay #define-d to _setjmp. Instead of #define-ing setjmp to be __setjmpex, #define longjmp to be __longjmpex. crtwin32\misc\i386\abterm.asm - DELETED PhilipLu: "Not needed any more. AbnormalTermination() moved back into exsup.asm." crtwin32\misc\i386\exsup.asm - CHANGED PhilipLu: "Only routines commond to both C8.0 and C9.0 SEH are left here. Public symbols: __global_unwind __local_unwind __abnormal_termination crtwin32\misc\i386\exsup2.asm - NEW PhilipLu: "New file. The C 8.0 SEH exception handler has been moved here. Still needed for old objects, and for RT-DLLs used with old apps. Public symbols: __except_handler2" crtwin32\misc\i386\exsup3.asm - NEW PhilipLu: "New file. The C9.0 SEH exception handler created here. Also includes the C9.0 local unwinder entrypoint needed for longjmp(). Public symbols: __except_handler3 __seh_longjmp_unwind@4 crtwin32\misc\i386\longjmp.asm - NEW PhilipLu: "New file. Maintain old name (_longjmp), but handle both the old C8.0 jmp_buf, as well as the longer C9.0 form. If presented with a C 8.0 jmp_buf, do the (possibly erroneous) C8.0 behavior. If a C9.0 jmp_buf, then check the new data saved by __setjmp3 to determine how to unwind exceptions. Public symbols: _longjmp crtwin32\misc\i386\sehsupp.c - CHANGED PhilipLu: "Contents totally replaced. Now only holds a helper to probe a DWORD ptr for readability. Public symbols: __rt_probe_read4@4 crtwin32\misc\i386\setjmp.asm - CHANGED PhilipLu: "Everything but __setjmp and raisex moved elsewhere. Leaves only the C8.0-compatible setjmp, for old-app compatibility, as well as unknown function raisex() (does anybody know what the hell this is, and why it's in the ANSI namespace?). Public symbols: __setjmp _raisex crtwin32\misc\i386\setjmp3.asm - NEW PhilipLu: "New file. New C9.0 version of setjmp, __setjmp3. This is now a varargs compiler intrinsic. The compiler passes whatever data will be needed to properly unwind the exception stack when a longjmp is done. This includes a ptr to a function to be called to do the actual local unwind. Public symbols: __setjmp3 crtwin32\misc\i386\setjmpex.asm - CHANGED Define __longjmpex instead of __setjmpex. ----------------------------------------------------------------- Tue 18-Jan-94 (GregF) crtwin32\crt32.nt Picked up _NTSYSTEM_ flag from NT SDK version (crt32 tree on \\orville\razzle), picked up _MB_MAP_DIRECT from Dolphin verion (crtwin32 tree). crtwin32\convert\_mbslen.c, mblen.c, mbstowcs.c, mbtowc.c, toupper.c, towupper.c, wcstombs.c wctomb.c Changes from Steve Wood affecting only the libcnt build (i.e., CRTLIBTYPE==NT). For the most part, they amount to calling an Rtl API to do the work in each case. crtwin32\startup\mips\chkstk.s Some apparently cosmetic changes by DaveC to keep the MIPS assembler happy. ----------------------------------------------------------------- Tue 18-Jan-94 (SteveSa) crtwin32\iostream\ios.cxx - Revised my 10/28/93 fix to delete critical sections in the IOS destructor. The original fix still created and destroyed the lock for the class on every c-tor/d-tor, instead of only doing it when all copies of the class are gone. KarlSi provided insight in November on how to really fix this. ----------------------------------------------------------------- Tue 18-Jan-94 (SteveSa) crtwin32\heap\heapinit.c - Improved check for Win32S / Phar Lap TNT, which do not have uncommitted memory. On those systems the heap should allocate smaller memory regions. Chicago (Win 4.0) may set the "WIN32S" bit in the OS version, so we now also check that the Windows version is less than 4.0 before using small heap values. ----------------------------------------------------------------- Mon 17-Jan-94 (GregF) crtwin32\buildcrt.cmd crtwin32\h\mm.inc crtwin32\helper\i386\*.asm Simon Koeman's compiler helpers for __int64 arithmetic. They are a pretty much a straightforward port of the long int helpers in the 16-bit tree. libwin32\makefile Put helper.lib, the __int64 helpers, into msvcrt*.lib for the x86 build. ----------------------------------------------------------------- Thu 13-Jan-94 (GregF) crtwin32\helper\mips\llbit.c, lldefs.h Steve Hanson's latest changes, taken from crt32 on \\orville\razzle. ----------------------------------------------------------------- Tues 11-Jan-94 (GregF) crtwin32\dllstuff\crtexe.c, crtlib.c crtwin32\h\internal.h When building crtdll.dll/.lib (NT version of the dll), use __GetMainArgs rather than __getmainargs. ----------------------------------------------------------------- Mon 10-Jan-94 (GregF) libwin32\makefile Added Steve Hanson libm to the build (subdirectory and library from fpwin32). This is MIPS-only. Also put conditionals around build rules to, hopefully, eliminate "unknown target" warnings. ----------------------------------------------------------------- Fri 07-Jan-94 (GregF) crtwin32\dos\dosmap.c Map ERROR_NOT_ENOUGH_QUOTA to ENOMEM. The OS error refers to not having enough non-swapable pages to handle...whatever. It can result from CreateThread() if too many threads are already in existence. Also, deleted Cruiser support and changed the definition of the errentry struct to handle codes > 255. crtwin32\startup\thread.c When _beginthread() fails, free up the the _tiddata struct which was calloc-ed. Also, map the error on failure. ----------------------------------------------------------------- Thu 06-Jan-94 (GregF) crtwin32\buildcrt.cmd, buildcrt.nt Corrected typo (_helpdir was mistyped in one place) and added to the cleanup of environment variables at the end of the batch files. crtwin32\h\math.h Picked up MIPS-only prototypes for single precision fp functions (e.g., sinf) from NT SDK version (Steve Hanson's work). ----------------------------------------------------------------- Wed 05-Jan-94 (GregF) crtwin32\crt32.def Picked up ALPHA_OPTIMIZATION and MIPS_OPTIMIZATION switches, which disable intrinsic functions, from the NT SDK version. I suspect these are not necessary for the crtwin32 tree (I think I have put in #pragmas to take care of all instances of conflicts), but it doesn't hurt to be sure (at least for now). crtwin32\startup\sources Build tlssup.c for all target CPUs. Also, picked up a fix for the POSIX build from the NT SDK version (crt32 tree on \\orville\razzle), has to do with the private definition of RaiseException() when building for POSIX. ----------------------------------------------------------------- Tue 04-Jan-94 (GregF) crtwin32\buildcrt.nt Added variant of buildcrt.cmd for building the NT SDK version of the CRT libs. ----------------------------------------------------------------- Mon 03-Jan-94 (GregF) crtwin32\crt32.nt, makefile.nt Added variants of crt32.def and makefile for building the NT SDK version of the CRT libs. crtwin32\h\stdlib.h Changed type of __mb_cur_max for NT SDK build to be the same as the type for the Dolphin build. crtwin32\h\wchar.h Deleted a _CRTVAR1 that crept in with an earlier merge. crtwin32\winheap\calloc.c, handler.cxx, malloc.c Changed #include to #include (SteveSa renamed the include file some time back). ----------------------------------------------------------------- Mon 03 Jan-94 (SteveSa) crtwin32\heap\heapadd.c Fix a bug which occurs after calls to _heapmin(). If a large block is malloc-ed and free-ed and then _heapmin() is called, the last entry in the heap will be a DUMMY entry encompassing the large region which was returned to the operating system. Subsequent large mallocs will most likely cause a new region to be allocated which will overlap with that region. The pblock pointer in the heap sentinel may need to be updated. ----------------------------------------------------------------- Wed 22-Dec-93 (GregF) crtwin32\h\winheap.h Added this header file used in building the winheap directory (heap manager for the NT SDK flavor of the CRT libs). crtwin32\misc\i386\sehsupp.c Fixed and unconditional #define of WIN32_LEAN_AND_MEAN which caused warnings. ----------------------------------------------------------------- Tue 21-Dec-93 (GregF) crtwin32\oldnames oldnames\makefile, sources Delfile-d. These were obsolete and not used (actually, I don't think they were EVER used). crtwin32\convert\sources.nt direct\sources.nt linkopts\sources.nt lowio\sources.nt Added. They are slight variations on the regular sources files, to be used in building the NT SDK variation of the CRT libs. ----------------------------------------------------------------- Tue 21-Dec-93 (GregF) crtwin32\clean.bat Cleaned up version of a simple batch file I use locally. ----------------------------------------------------------------- Mon 20-Dec-93 (GregF) crtwin32\eh\frame.cxx crtwin32\eh\i386\trnsctrl.cxx crtwin32\h\exsup.inc Changes from Philip Lucido. crtwin32\misc\i386\abterm.asm, sehsupp.c New from Philip Lucido. crtwin32\misc\i386\exsup.asm, setjmp.asm Changes from Philip Lucido. crtwin32\misc\sources Pick up new files (above) added by Philip Lucido ----------------------------------------------------------------- Fri 17-Dec-93 (ChrisWei) Big Unicode-enable checkin: Files changed: ==================================================================== Subdirectory \direct findfile.c sources Subdirectory \dos access.c chdir.c chmod.c fullpath.c getcwd.c mkdir.c rename.c rmdir.c sources stat.c unlink.c Subdirectory \exec cenvarg.c dospawn.c execl.c execle.c execlp.c execlpe.c execv.c execve.c execvp.c execvpe.c sources spawnl.c spawnle.c spawnlp.c spawnlpe.c spawnv.c spawnve.c spawnvp.c spawnvpe.c system.c Subdirectory \h ctype.h direct.h internal.h io.h locale.h mbstring.h mtdll.h process.h stdio.h stdlib.h string.h tchar.h time.h wchar.h Subdirectory \h\sys stat.h utime.h Subdirectory \lowio creat.c mktemp.c open.c sources Subdirectory \mbstring sources Subdirectory \misc getpath.c makepath.c searchen.c sources splitpat.c Subdirectory \startup stdenvp.c tidprint.c Subdirectory \stdio _open.c fdopen.c fopen.c freopen.c popen.c sources tempnam.c tmpfile.c Subdirectory \time asctime.c ctime.c sources strdate.c strtime.c utime.c Files removed: ==================================================================== Subdirectory \mbstring mbconv.c 1 1 out mbfpconv.c 1 1 out mbprint.c 2 2 out mbscan.c 2 2 out mbvprint.c 1 1 out Files added: ==================================================================== Subdirectory \direct wfindfil.c Subdirectory \dos waccess.c wchdir.c wchmod.c wfullpath.c wgetcwd.c wmkdir.c wrename.c wrmdir.c wstat.c wunlink.c Subdirectory \exec wcenvarg.c wdospawn.c wexecl.c wexecle.c wexeclp.c wexeclpe.c wexecv.c wexecve.c wexecvp.c wexecvpe.c wspawnl.c wspawnle.c wspawnlp.c wspawnlpe.c wspawnv.c wspawnve.c wspawnvp.c wspawnvpe.c wsystem.c Subdirectory \lowio wcreat.c wmktemp.c wopen.c Subdirectory \misc wgetpath.c wmakepath.c wsearchen.c wsplitpat.c Subdirectory \startup wstdenvp.c Subdirectory \stdio w_open.c wfdopen.c wfopen.c wfreopen.c wpopen.c wtempnam.c wtmpfile.c Subdirectory \time wasctime.c wctime.c wstrdate.c wstrtime.c wutime.c ----------------------------------------------------------------- Fri 17-Dec-93 (GregF) crtwin32\makefile Simplified some more. ----------------------------------------------------------------- Thu 16-Dec-93 (GregF) libwin32\makefile Added -opt:noref to Alpha build of msvcrt20.dll ----------------------------------------------------------------- Mon 13-Dec-93 (SteveSa) crtwin32\h\heap.h - cosmetic changes crtwin32\heap\heapinit.c - cosmetic change crtwin32\h\malloc.h - add _heapused() crtwin32\heap\sources - add heapused.c crtwin32\heap\heapused.c - NEW FILE containing _heapused() libwin32\lib\i386\msvcrt20.def Added new routine _heapused() which returns the number of bytes of memory reserved by the heap. It takes two parameters, either or both of which may be null. If non-null, values are stored through them. The first pointer will be set to the number of bytes devoted to allocated blocks in the heap, including headers. The second value will contain the total of all committed memory, both free blocks and in-use blocks. ----------------------------------------------------------------- Mon 13-Dec-93 (SteveSa) crtwin32\dllstuff\crtlib.c crtwin32\h\mtdll.h crtwin32\startup\dllcrt0.c crtwin32\startup\thread.c crtwin32\startup\tidtable.c Add new routine _freeptd() which frees up the C run-time's per-thread data. _freeptd() is called in _beginthread() and on DLL_Thread_Detach notifications in both MSVCRT*.DLL and DLL's linked with LIBCMT.LIB. Note: _freeptd() frees up not only the per-thread data structure but also any subordinate buffers that it points to. The old code had a leak even if the user called _beginthread/_endthread because the subordinate buffers allocated by tempnam/tmpfile/gmtime/ctime/etc. were NEVER freed up. ----------------------------------------------------------------- Mon 13-Dec-93 (GregF) crtwin32\h\heap.h crtwin32\heap\heapadd.c, malloc.c, realloc.c Parameterized the allocation granularity as _GRANULARITY, defined to be 8 on MIPS, 4 otherwise (currently). Edited size rounding in malloc.c and realloc.c, and size and alignment checking in heapadd.c, accordingly. crtwin32\h\excpt.h Alpha now sports a spiffy MS front-end, hence syntax of __try - __except contructs (e.g., __exception_code) is the same as it is for the x86 and MIPS compilers. ----------------------------------------------------------------- Wed 08-Dec-93 (GregF) crtwin32\libwin32\makefile Added #if !$(ALPHA) to the checks made before a default target (processor) pecification is used. ----------------------------------------------------------------- Tue 07-Dec-93 (GregF) crtwin32\mbstring\mbprint.c, mbscan.c Cast in second arg to va_start was choking alpha compiler! ----------------------------------------------------------------- Mon 06-Dec-93 (ChrisWei) Changed: crtwin32\h\mbstring.h, tchar.h crtwin32\mbstring\sources Added: crtwin32\mbstring\mbconv.c mbfpconv.c, mbprint.,c mbvprint.c, mbscan.c Type-safe MB tchar mappings. ----------------------------------------------------------------- Fri 03-Dec-93 (GregF) crtwin32\misc\abs.c, labs.c, rotl.c, rotr.c crtwin32\string\memcmp.c, memcpy.c, memset.c, strcat.c, strcmp.c, strlen.c Enabled #pragma function() directives for all MS front-ends (esp., the Alpha compiler) crtwin32\string\strset.c Added #pragma function() for Alpha build. ----------------------------------------------------------------- Wed 01-Dec-93 (ChrisWei) crtwin32\startup\crtlib.c [wcrtlib.c removed] Create both ascii and wide argv, create only ascii environ for dll. crtwin32\h\tchar.h Fixed STDC inlining check. ----------------------------------------------------------------- Wed 01-Dec-93 (ChrisWei) Files added: crtwin32\startup\wstdenvp.c crtwin32\misc\setenv.c, wsetenv.c, wputenv.c, wgetenv.c, wtombenv.c, mbtowenv.c Files changed: crtwin32\h\internal.h, tchar.h, stdlib.h crtwin32\startup\crt0.c, dllcrt0.c, crt0dat.c, stdenvp.c, sources crtwin32\dllstuff\crtlib.c crtwin32\misc\getenv.c, putenv.c, sources Add wide char environment variables. crtwin32\dos\chdir.c Set OS drive leter strings. ----------------------------------------------------------------- Wed 01-Dec-93 (GregF) libwin32\makefile Added alpha support and cleaned up a bit. libwin32\lib\alpha \alpha\msvcrt20.def Def file to build Alpha version of msvcrt20.[dll|lib]. libwin32\i386\msvcrt20.def Added exports of some old, obsolescent functions (e.g., _sleep) which we need to support for NT SDK compatibility. libwin32\mips\msvcrt20.def Added exports for 64-bit integer arithmetic helpers. Added exports for obsolescent functions as described above. libwin32\tools\alpha Added to hold alpha build of tools. If we ever get an alpha, that is... ----------------------------------------------------------------- Wed 01-Dec-93 (GregF) crtwin32\buildcrt.cmd Revised for new directories (esp., helpers) and changes to dirs file. Also fiddled with when linkopts is built. crtwin32\crt32.def Cleaned up and simplified. crtwin32\dirs Merged in NT SDK version. crtwin32\makefile Alpha support. MIPS compiler helpers for 64-bit int arithmetic. Lot of cleanup. crtwin32\convert\iswctype.c Always build is_wctype() (not just for _NTSDK). crtwin32\helper \helper\*.* \mips \mips\*.* Compiler helper routines. For now, these 64-bit integer arithmetic helpers for MIPS compiler. crtwin32\small \small\*.* \mips \mips\huge.s Used for NT SDK build only (small.lib). ----------------------------------------------------------------- Mon 29-Nov-93 (ChrisWei) crtwin32\dos\chdir.c, drive.c crtwin32\misc\putenv.c crtwin32\startup\stdenvp.c No longer store current drive in CRT env strings. crtwin32\h\internal.h Remove undef GetEnvStrings. ----------------------------------------------------------------- Wed 24-Nov-93 (ChrisWei) libwin32\include\stdarg.h, wchar.h, ctype.h, dos.h, string.h, time.h, stdlib.h, tchar.h Update release headers. Now in sync. ----------------------------------------------------------------- Wed 24-Nov-93 (ChrisWei) Files added: crtwin32\dllstuff\wcrtexe.c, wcrtlib.c, wdllargv.c, sources crtwin32\linkopts\wsetargv.c crtwin32\startup\wcrt0.c, wdllcrt0.c, wstdargv.c, wwild.c, wwincrt0.c, _wstargv.c, sources Files changed: crtwin32\h[libwin32\include]\dos.h, internal.h, stdlib.h, tchar.h crtwin32\dllstuff\crtexe.c, crtlib.c, sources crtwin32\startup\crt0.c, crt0dat.c, dllcrt0.c, stdargv.c, wild.c, sources Added wide argv handling. Not yet in exec/spawn, etc. ----------------------------------------------------------------- Mon 22-Nov-93 (ChrisWei) crtwin32\h[libwin32\include(before next drop)]\ctype.h, string.h, wchar.h Use #define wcsxxx _wcsxxx only for SDK, define protos for oldnames.lib for Dolphin. Also, wide char stuff outside of wchar.h must have !__STDC__ test around it. ----------------------------------------------------------------- Thu 18-Nov-93 (ChrisWei) crtwin32\misc\aw_*.c Test for entry point function stubs. ----------------------------------------------------------------- Mon 15-Nov-93 (ChrisWei) crtwin32\h\wchar.h - get rid of W4 struct tm warnings libwin32\makefile - add to oldnames.lib ----------------------------------------------------------------- Mon 15-Nov-93 (ChrisWei) crtwin32\string\strcoll.c, stricoll.c, wcscoll.c, wcsicoll.c, strlwr.c, strupr.c, wcslwr.c, wcsupr.c, strxfrm.c, wcsxfrm.c crtwin32\misc\aw_*.c, getqloc.c, initctyp.c, inithelp.c crtwin32\mbstring\ismbalnm.c, ismbgrph.c, ismbpunc.c crtwin32\h\setlocal.h crtwin32\convert\isctype.c, iswctype.c, tolower.c, toupper.c, towlower.c, towupper.c Added code page to __crtxxx() calls to allow the caller to determine the code page to be used in MB/WC translation. For Dolphin bug #3778. crtwin32\misc\getqloc.c Test all code pages, even ones from OS. crtwin32\h\tchar.h libwin32\include\tchar.h isascii, isxdigit map to wrong name on MB case. ----------------------------------------------------------------- Fri 12-Nov-93 (GregF) crtwin32\convert\strtoq.c Added for compatilibity with NT SDK (Alpha only). Only built for Alpha so it is doesn't affect x86 or MIPS builds. ----------------------------------------------------------------- Wed 10-Nov-93 (GregF) crtwin32\time\systime.c Added for compatilibity with NT SDK. Not added to sources yet,so it is not getting built. ----------------------------------------------------------------- Tue 09-Nov-93 (GregF) crtwin32\startup\crt0.c Guard as much as possible of the init. code in the __try/__except statement. The important point is UnhandledExceptionHandler() now gets called for exceptions that occur during the execution of constructors for static C++ objects. Also, moved __initmbctable call to here, just before calls to _setargv and _setenvp. crtwin32\startup\crt0dat.c Removed call to __initmbctable from _cinit. The ctype table must be initialized before command line arguments and environment strings are process, thus it must go in crt0.c, dllcrt0.c and crtlib.c. crtwin32\startup\dllcrt0.c Added call to __initmbctable (used to be in crt0da.c). crtwin32\dllstuff\crtexe.c Guard as much as possible of the init. code in the __try/__except statement. For crtexe.c, this is just about everything. crtwin32\dllstuff\crtlib.c Added call to __initmbctable (used to be in crt0dat.c). ----------------------------------------------------------------- Tue 02-Nov-93 (GregF) crtwin32\h\conio.h Made port i/o prototypes conditional on _M_IX86 (they are MS and x86 specific extensions). crtwin32\h\excpt.h Don't redefine C++ EH keywords! crtwin32\h\fltintrn.h Disabled 4069 warning! crtwin32\h\stdlib.h Re-removed obsolete version and mode variables, and associated baggage. ----------------------------------------------------------------- Thu 28-Oct-93 (SteveSa) crtwin32\h\ios.h crtwin32\h\streamb.h crtwin32\iostream\ios.cxx crtwin32\iostream\mtlock.c crtwin32\iostream\streamb.cxx Critical sections allocated for iostream objects were not being de-activated by calling the Win32 API DeleteCriticalSection in their destructor. Added new function _mtlockterm() which is the analog of _mtlockinit(). Just free-ing the memory malloc-ed for a critical section does not free up the resources that NT allocates for a critical section when you call InitializeCriticalSection(). ----------------------------------------------------------------- Tue 26-Oct-93 (ChrisWei) added files: crtwin32\misc\mbval.c setmbval.c changed files: crtwin32\misc\sources, aw_cmp.c, aw_str.c, aw_map.c crtwin32\stdio\fgetwc.c crtwin32\convert\_mbslen.c, mblen,c, mbstowcs.c, mbtowc.c Add test for invalid MB chars. Since requisite flag not supported by older NT version, at startup we confirm if flag is supported. ----------------------------------------------------------------- Fri 22-Oct-93 (ChrisWei) added files: crtwin32\mbstring\ismbalnm.c, ismbgrph.c, ismbpunc.c changed files: crtwin32\h\mbstring.h, tchar.h crtwin32\mbstring\sources libwin32\lib\i386[\mips]\msvcrt20.def These new functions fill out holes in the ismbc* set and provide some missing mappings for tchar.h. crtwin32\misc\aw_str.c fixed bug crtwin32\mbstring\ismbknj.c now return FALSE outside of Japan ----------------------------------------------------------------- Fri 22-Oct-93 (SteveSa) crtwin32\dllstuff\i386\cinitexe.mak, cinitexe.asm crtwin32\dllstuff\{i386,MIPS}\cinitexe.obj crtwin32\startup\i386\crt0init.mak, crt0init.asm crtwin32\startup\{i386,MIPS}\crt0init.obj Change the attribute of the directive section (.drectve) and make the symbol name match the section name (both lower case). ----------------------------------------------------------------- Fri 22-Oct-93 (GregF) crtwin32\stdio\fread.c, fwrite.c Fixed divide-by-0 error which would occur if one used setvbuf to completely unbuffer the stream. ----------------------------------------------------------------- Fri 22-Oct-93 (ChrisWei) addfiles: libwin32\tools\i386[\mips]\aliasobj.exe libwin32\tools\source\aliasobj.c JonM's new program to build alias objects for oldnames.lib changes: crtwin32\lib\i386[mips]\msvcrt20.def add __mbcodepage to exports libwin32\buildall.cmd clean up MIPS build libwin32\makefile finish MIPS build, install new oldnames.lib build procedure ----------------------------------------------------------------- Thu 21-Oct-93 (GregF) crtwin32\winheap, winheap\*.* Picked up winheap directory from crt32 tree. Cleaned up the sources a little. ----------------------------------------------------------------- Wed 20-Oct-93 (SteveSa) crtwin32\dllstuff\i386\cinitexe.mak, cinitexe.asm crtwin32\dllstuff\{i386,MIPS}\cinitexe.obj crtwin32\startup\i386\crt0init.mak, crt0init.asm crtwin32\startup\{i386,MIPS}\crt0init.obj Cleaned up make process to create I386 and MIPS versions of cinitexe.obj and crt0init.obj. Added MSVCNT v1.0 linker enhancement directives to MIPS versions (which merge .CRT into .DATA and cause a default search of KERNEL32.LIB). crtwin32\dllstuff\MIPS\cinitexe.obj crtwin32\lowio\MIPS\cinitcon.obj crtwin32\misc\MIPS\cinitcnv.obj crtwin32\misc\MIPS\cinitone.obj crtwin32\startup\MIPS\crt0init.obj crtwin32\stdio\MIPS\cinitstd.obj crtwin32\stdio\MIPS\cinittmp.obj crtwin32\time\MIPS\cinitclk.obj Changed CPU type of MIPS objects from R3000 (0x162) to R4000 (0x166) libwin32\tools\source\i386mips.c, libwin32\tools\i386mips.exe - tool to convert i386 data-only objects to MIPS by changing the machine type and relocation types. Changed CPU type of target from R3000 to R4000, fixed display of raw data in the object file being edited. ----------------------------------------------------------------- Tue 19-Oct-93 (ChrisWei) crtwin32\h\ mbdata.h, mbstring.h - remove _MBCS test and SBCS defines crtwin32\mbstring\mbsicmp.c, mbsnicmp.c mbsnbicm.c - lowercase compare ----------------------------------------------------------------- Mon 18-Oct-93 (ChrisWei) crtwin32\h\ mbctype.h - fix prototype tchar.h - add missing mappings libwin2\include\*.h, sys\*.h - updated from crtwin32 tree libwin32\makefile, buildall.cmd - add MIPS support & change back to msvcrt20!! libwin32\lib\i386(mips)\msvcrt30.def -> msvcrt20.def ----------------------------------------------------------------- Mon 18-Oct-93 (GregF) crtwin32\misc\sources, i386\setjmp.asm, i386\setjmpex.asm (new) Picked up support for NT SDK's setjmp/setjmpex. For Dolphin build, the both setjmp and setjmpex will be "EH safe". For _NTSDK, only setjmpex will be. crtwin32\misc\i386\exsup.asm Put in fix from Phil Lucido. The DF is indeterminate upon entry to _except_handler. ----------------------------------------------------------------- Thu 14-Oct-93 (GregF) crtwin32\h\excpt.h, float.h, stdio.h Merged again with NT version. crtwin32\h\fltintrn.h, fstream.h, iomanip.h, ios.h, internal.h, iostream.h, istream.h, malloc.h, mbctype.h, mbdata.h, mbstring.h Enclosed any #pragma-s in #ifdef _MSC_VER - #endif to hide them from inferior (i.e., non-MS) compilers and RC. Deleted obsolete build macro checks conditioned on COMBOINC in some files. Replaced MTHREAD with _MT. _ALPHA_ with _M_ALPHA. Deleted _MIPS_ (effectively replaced by _M_MRX000). crtwin32\h\memory.h, new.h, ostream.h, process.h, search.h, setjmp.h, setjmpex.h, signal.h, stdarg.h, stddef.h, stdiostr.h, streamb.h, strstrea.h, syserr.h, tchar.h, varargs.h, wchar.h crtwin32\h\sys\stat.h, timeb.h, types.h, utime.h Modified to support both Cuda and NT version. ----------------------------------------------------------------- Wed 13-Oct-93 (SteveSa) Renamed crtwin32/h/os2dll.h to mtdll.h. Also changed the #include lines in all of the source files that include it. ----------------------------------------------------------------- Fri 08-Oct-93 (GregF) crtwin32\h\ios.h, locale.h, math.h, mbctype.h, mbstring.h Support both NT and Cuda. ----------------------------------------------------------------- Fri 08-Oct-93 (GregF) crtwin32\misc\sources, alpha, mips, alpha\*.*, mips\*.* crtwin32\startup\sources, alpha, mips, alpha\*.*, mips\*.* Added stuff from crt32 (NT SDK) to support building for MIPS and Alpha. ----------------------------------------------------------------- Weds 06-Oct-93 (GregF) crtwin32\h\string.h Merged NT and Cuda. crtwin32\h\assert.h, conio.h, ctype.h, direct.h, dos.h, errno.h, excpt.h, float.h, fltintrn.h, fpieee.h, internal.h, io.h, malloc.h, stdio.h, stdlib.h, time.h Fixed conditional #define for _CRTAPI2 ----------------------------------------------------------------- Weds 06-Oct-93 (GregF) crtwin32\h\malloc.h Merged NT and Cuda. Changed _HEAP_MAXREQ to a more useful value. crtwin32\heap\malloc.c, realloc.c Added range check to size requests in malloc, realloc, _expand crtwin32\mbstring\m*.c (except for mbascii0.c, mbctype.c, mbscat.c, mbsdup.c, mbspbrk.c, mbsspnp.c), s*.c, t*.c Replaced _CRTAPI* with __cdecl. ----------------------------------------------------------------- Tue 05-Oct-93 (GregF) crtwin32\mbstring\is*.c Replaced _CRTAPI* with __cdecl. ----------------------------------------------------------------- Fri 01-Oct-93 (GregF) crtwin32\hack crtwin32\hack\makefile, sources, stubs.c Resurrected for NT SDK libs (libcnt.lib uses this, I believe) ----------------------------------------------------------------- Fri 01-Oct-93 (ChrisWei) Files changed: crtwin32\h\stdio.h, wchar.h libwin32\include\stdio.h, wchar.h Add fputws(), fgetws() crtwin32\stdio\fgetwc.c, fputwc.c ungetwc.c Clean up TEXT test crtwin32\stdio\fgets.c, sources Enable for fgetws(), fputws() Files added: crtwin32\ fgetws.c, fputws.c New wide char functions ----------------------------------------------------------------- Thu 30-Sep-93 (GregF) crtwin32\dos\getcwd.c Removed #include - it was causing lots of annoying redefinition warnings. crtwin32\exec\cenvarg.c, execl.c, execle.c, execlp.c, execlpe.c, spawnl.c spawnle.c, spawnlp.c, spawnlpe.c Merged Cuda and NT versions. crtwin32\exec\getproc.c, loaddll.c Resurrected for compatibility with NT SDK (had been considered obsolete and dropped from Cuda)" ----------------------------------------------------------------- Wed 29-Sep-93 (GregF) crtwin32\string\memcpy.c, memmove.c, memset.c, strcoll.c, stricoll.c, wcscoll.c, wcsicoll.c, strtok.c Merged Cuda and NT versions. ----------------------------------------------------------------- Wed 29-Sep-93 (GregF) crtwin32\convert\isctype.c, iswctype, mblen.c, mbstowcs.c, mbtowc.c, tolower.c, toupper.c, towlower.c, towupper.c, wcstombs.c, wctomb.c Merged Cuda and NT versions. crtwin32\direct\seterrm.c, slbeep.c Restored and cleaned up these dinosaurs for the NT SDK build. ----------------------------------------------------------------- Tue 28-Sep-93 (GregF) crtwin32\h\io.h Restored an /* _MTHREAD_ONLY */ comment which I had accidently deleted (kept an internal-use-only preprocessor directive from being stripped out!). ----------------------------------------------------------------- Tue 28-Sep-93 (ChrisWei) The last of the _MBCS_OS and _KANJI merges: h\mbctype.h, mbdata.h mbstring\ismbalph.c, ismbbyte.c, ismbdgt.c, ismblwr.c, ismbprn.c, ismbspc.c, ismbupr.c, mbclevel.c, mbctype.c, mbsicmp.c, mbslwr.c, mbsnbicm.c, mbsnicmp.c, mbsupr.c, mbtohira.c, mbtokata.c, mbtolwr.c, mbtoupr.c, tojisjms.c, tombbmbc.c The MB stuff now works properly for both Japan and generic MB languages. ----------------------------------------------------------------- Mon 27-Sep-93 (ChrisWei) crtwin32\mbstring\ismbknj.c, ismbprn.c., mbclevel.c, mbsnbcat.c, mbsncat.c, mbtohira.c, mbtokata.c, tojisjms.c, tombbmbc.c crtwin32\h\mbctype.h, mbdata.h, mbstring.h _MBCS_OS & _KANJI merge: I have added all the Kanji-specific functions to the normal build process, and merged the few functions that were different under the two build scenarios. convert\isctype.c, iswctype.c, tolower.c, toupper.c, towlower.c, towupper.c misc\aw_cmp.c, aw_loc.c, aw_map.c, aw_str.c, getqloc.c, initcoll.c, initctyp.c, inithelp.c, inittime.c, initnum.c, initmon.c string\strcoll.c, stricoll.c, strlwr.c, strupr.c, strxfrm.c, wcscoll.c, wcsicoll.c, wcslwr.c, wcsupr.c, wcsxfrm.c NLS API A&W wrappers: Since Chicago supports only ASCII ("A") flavors of certain NLS API functions, while NT supports only the Unicode ("W") type, I have built CRT wrapper functions that, at runtime, search for the desired type and uses the other if necessary. These libs will now link on NT and Chicago. This has been partially tested on NT but not at all on Chicago. libwin32\include\float.h, fltintrn.h, fpieee.h, fstream.h, heap.h internal.h io.h, iostream.h, istream.h, stdio.h, stdlib.h, time.h, assert.h, conio.h, ctype.h, direct.h, dos.h, errno.h, excpt.h Checked in GregF's changes for Dolphin drop. ----------------------------------------------------------------- Fri 24-Sep-93 (GregF) crtwin32\h\float.h, fltintrn.h, fpieee.h, fstream.h, heap.h internal.h io.h, iostream.h, istream.h, stdio.h, stdlib.h, time.h crtwin32\misc\getenv.c, initmon.c, initnum.c, inittime.c, onexit.c Merged NT SDK and Cuda versions. ----------------------------------------------------------------- Fri 24-Sep-93 (ChrisWei) crtwin32\buildcrt.cmd libwin32\buildall.cmd Make MB build default. ----------------------------------------------------------------- Thu 23-Sep-93 (GregF) crtwin32\h\assert.h, conio.h, ctype.h, direct.h, dos.h, errno.h, excpt.h Merged NT SDK and Cuda versions. ----------------------------------------------------------------- Wed 22-Sep-93 (GregF) crtwin32\string\strlwr.c, strupr.c, wcslwr.c, wcsupr.c Merged NT SDK and Cuda versions. crtwin32\time\utime.c Have NT convert local file time to system file time. ----------------------------------------------------------------- Wed 25-Aug-93 (ChrisWei) crtwin32\mbstring - Change all short params to int. Updated the following files from NT-J tree: mbsdec.c mbsinc.c mbschr.c mbsnbcat.c mbsnbset.c mbsncat.c mbsnset.c mbsrchr.c mbtohira.c mbtokata.c mbtolwr.c mbtoupr.c tojisjms.c tombbmbc.c crtwin32\h - Change all short params to int. Updated the following files from NT-J tree: mbstring.h New tchar.h from Ikura. tchar.h ----------------------------------------------------------------- Tue 17-Aug-93 (ChrisWei) crtwin32\mbstring - Updated the following files from NT-J tree: mbctype.c mbschr.c mbsdec.c mbsinc.c mbsncpy.c mbsninc.c mbstok.c strdec.c strinc.c strninc.c tojisjms.c Added the following files & updated mbstring\sources: ismbsle.c ismbstr.c mbclen.c mbccpy.c mbsnbcat.c mbsnbcmp.c mbsnbcpy.c mbsnbicm.c mbsnbset.c mbspbrk.c mbsspnp.c crtwin32\dos\fullpath.c crtwin32\lowio\mktemp.c crtwin32\misc\makepath.c crtwin32\misc\splitpat.c crtwin32\startup\stdargv.c crtwin32\startup\wild.c crtwin32\stdio\input.c crtwin32\stdio\output.c Merged in NT-J MB changes. ----------------------------------------------------------------- Fri 06-Aug-93 (SteveSa) crtwin32\heap\realloc.c - Fix bug which occurs when realloc() cannot expand the block in place and cannot malloc a new block. The code was free-ing the successor block, a very, very bad thing to do. The bug occurred rarely because it is hard to run out of memory on Windows NT, but it was found by the Phar Lap TNT DOS Extender team, where memory is less abundant. It looks like this bug was there in the sources since 1989! ----------------------------------------------------------------- Fri 30-Jul-93 (GregF) crtwin32\h\internal.h crtwin32\misc\winsig.c, winxfltr.c When a SIGFPE handler has been installed and an FPE occurs, the handling for ALL of the FPE-s must be reset to SIG_DFL before calling the user's handler (I had been only resetting the handling for the one FPE). ----------------------------------------------------------------- Tue 27-Jul-93 (GregF) crtwin32\stdio\output.c Generalized a bug fix MattBr originally made for the POSIX build only. Now, the static functions write_multichar and write_string stop trying to write out characters when an error occurs. ----------------------------------------------------------------- Fri 27-Jul-93 (GregF) crtwin32\direct\findfile.c crtwin32\dos\stat.c crtwin32\h\internal.h crtwin32\lowio\fstat.c crtwin32\time\dtoxtime.c, time.c Changed so that the only time values obtained and directly used from the system are LOCAL time values. This partially handles the problems caused by the incompatible definitions of system time between Win32 (UTC) and Win32C (local). ----------------------------------------------------------------- | | | * The Final Drop for MSVCNT ver 1.0 was made at this point. * | | | ----------------------------------------------------------------- Fri 23-Jul-93 (SteveSa) vcrtlib\makefile - added heap/obj/i386/handler.obj to list of C++ objects mentioned to the linker, so that set_new_handler() will be exported from MSVCRT10.DLL. vcrtlib\lib\i386\msvcrt10.def Added _heapadd, _heapchk, _heapmin, _heapset, _heapwalk to the list of functions exported by MSVCRT10.DLL. ----------------------------------------------------------------- Thu 15-Jul-93 (SteveSa for GregF) <<< Corresponding changes were also made to \\orville\razzle\src\crt32 >>> vcrt32\time\ftime.c vcrt32\time\localtim.c vcrt32\time\mktime.c vcrt32\time\strftime.c vcrt32\time\tzset.c The routines ftime, localtime, mktime, and strftime were calling _tzset to make sure that the timezone/daylight/tzname variables were set. They now call __tzset. __Tzset calls _tzset the first time it is called and thereafter just returns. The reason for this change is that _tzset is very slow if it finds no "TZ" environment variable, because in that case it calls the Win32 routine GetTimeZoneInformationW. This behavior is consistent with our 16-bit libraries. If the user changes the "TZ" variable (by calling putenv()), the routine _tzset must be called explicitly to make the change to "TZ" effective. ----------------------------------------------------------------- Wed 14-Jul-93 (SteveSa) <<< Corresponding change made by Steve Wood to \\orville\razzle\src\crtlib >>> vcrtlib\lib\i386\msvcrt10.def Added _clear87 to the list of functions exported by MSVCRT10.DLL. ----------------------------------------------------------------- Tues 13-Jul-93 (GregF) vcrt32\lowio\open.c _read_lk() was being called to read the last character of a text file, to see if it was ^Z. Well, _read_lk() will return 0 if it read a single ^Z (treats it as an eof flag rather than a char). ----------------------------------------------------------------- Thu 01-Jul-93 (SteveSa) <<< Corresponding change was also made to \\orville\razzle\src\fp32 >>> vcfp32\conv\strgtold.c Made buf[] a stack local, not a static global, to avoid bugs in multi-thread models. ----------------------------------------------------------------- | | | *** The "Jaws" Drop was made at this point. *** | | | ----------------------------------------------------------------- Wed 30-Jun-93 (GregF) <<< Corresponding change was also made to \\orville\razzle\src\crt32 >>> vcrt32\time\tzset.c Added limited support for system's notion of local time. If there is no TZ environment variable, I attempt to use GetTimeZoneInform- ation to determine the offset to local time and whether or not daylight saving time exists in the time zone. ----------------------------------------------------------------- Tue 29-Jun-93 (GregF) vcrt32\stdio\ftell.c Fixed another nasty bug with the variable buffer sizing. ftell was using _bufsiz as the size of the last read request from the file, which isn't always true. ----------------------------------------------------------------- Tue 22-Jun-93 (GregF) vcrt32\h\file2.h vcrt32\stdio\_filbuf.c, _freebuf.c, fseek.c, setvbuf.c Introduced _IOSETVBUF flag to fix an interaction between setvbuf() and the scheme for using a variable buffer size on "random access" files opened for read-access-only. The way to fix the bug was to introduce a new flag, _IOSETVBUF, and use to suppress this variable buffer size hooha. ----------------------------------------------------------------- | | | Weekly Drop .3167 (Wed 16 June 1993) was made at this point. | | (The libs were actually rebuilt Thu 17 June 1993.) | | | ----------------------------------------------------------------- Thu 17-Jun-93 (JamesMa) vcrt32\include\float.h Changed _statusfp & _clearfp to macros. ----------------------------------------------------------------- Weds 16-Jun-93 (GregF) vcrt32/string/i386/strcat.asm, strcmp.asm, strlen.asm Added FPO directives. ----------------------------------------------------------------- Tue 15-Jun-93 (GregF) vcrt32/direct/sources vcrt32/direct/i386/enable.asm vcrt32/h/dos.h Resurrected old x86-specific functions, _enable() and _disable(). ----------------------------------------------------------------- Mon 14-Jun-93 (GregF) vcrt32/string/i386/strcmp.asm Fixed special case bug found by DanS. ----------------------------------------------------------------- | | | Weekly Drop .3160 (Wed 09 June 1993) was made at this point. | | | ----------------------------------------------------------------- Wed 09-Jun-93 (SteveSa) << Corresponding changes made to \\orville\razzle\src\crt32 and crtlib >> vcrt32/h/iomanip.h vcrtlib/include/iomanip.h The const keyword was added to the declarations of the << and >> operators of SMANIP, whatever that means. This apparently fixes Cuda Bug 5048, an unnecessary warning message about lvalues and what not. ---------------------------------------------------------------------- Tue 08-Jun-93 (SteveSa) vcrt32\dllstuff\crtlib.c, crtdll.c vcrt32\startup\dllcrt0.c Clean up error handling in case of failure. If the user routine DllMain returns failure on Process Detach, C Run-Time clean-up should still occur. (It now does.) If the user DllMain returns failure on Process Attach, the CRT should clean up its own just-initialized data structures before returning failure. MSVCRT10.DLL should also clean up its heap if it fails further initialization and will return failure on Process Attach. I also cleaned up the white space in some header files (fcntl.h). ---------------------------------------------------------------------- Tue 08-Jun-93 (GregF) <<< Corresponding changes made to \\orville on 07-Jun>> vcrt32\dllstuff\crtlib.c, crtdll.c vcrt32\startup\dllcrt0.c Added a flag to kept track of process-attach notification to the DLL (our crtdll, or a user dll linked with one of our libs). The idea is to avoid doing any 'cleanup' on process-detach notification unless there has been a prior process-attach notification. Kinky, but this can occur as a result of a call to LoadLibrary that fails (e.g., load a DLL which uses several other DLLs and one of the DLLs is bad in some manner which causes the loader to quit and return an error). ---------------------------------------------------------------------- Mon 07-Jun-93 (ChrisWei) <<< Changes already made by KarlSi to \\orville >> vcrt32\h\stdlib.h vcrt32\convert\_mbslen.c vcrtlib\include\stdlib.h vcrtlib\lib\i386\msvcrt10.def Change _mbslen to _mbstrlen, return type to size_t. ---------------------------------------------------------------------- Thu 03-Jun-93 (PhilipLu) <<< Changes already made by GregF to \\orville >> vcrt32\h\fcntl.h Add _O_SHORT_LIVED, _O_SEQUENTIAL, _O_RANDOM vcrt32\lowio\open.c vcrt32\stdio\_open.c Support lowio/stdio access to FILE_ATTRIBUTE_TEMPORARY, FILE_FLAG_SEQUENTIAL_ACCESS and FILE_FLAG_RANDOM_ACCESS CreateFile attributes ---------------------------------------------------------------------- Wed 02-Jun-93 (ChrisWei) <<< Change made to \\orville\razzle\src\crt32 almost simultaneously >>> vcrt32\convert\_mbslen.c verify MB validity vcrt32\convert\mblen.c, mbtowc.c rewrite - bugs, optimize, error handling vcrt32\convert\wctomb.c, wcstombs.c, mbstowcs.c, tolower.c, toupper.c vcrt32\string\strlwr.c, strupr.c optimize and beautify ---------------------------------------------------------------------- Fri 28-May-93 (ChrisWei) vcrt32\h[vcrtlib\include]\tchar.h Add another level of indirection to the _TEXT macro to allow _TEXT(__FILE__) to work. ---------------------------------------------------------------------- Wed 26-May-93 (SteveSa) dos\getcwd.c - To get the current directory of a non-current drive, we were consulting the special environment variables. It seems wiser to use the Win32 function GetFullPathName() to resolve this information. The latter seems to work well on TNT. vcrt32\h\process.h vcrtlib\include\process.h Add prototypes for _CRT_INIT(@12) and DllMain(@12). The latter is not declared if -Za is selected because of its non-ANSI name. ---------------------------------------------------------------------- Tue 25-May-93 (GregF) h\stdio.h stdio\_filbuf.c, fseek.c Use a small buffer size (_SMALL_BUFSIZ) for the first _filbuf call following an fseek on a read-access-only file. The idea is to reduce the penalty of a large default buffer size on random access files, at least those which are opened only for read access. ---------------------------------------------------------------------- Mon 24-May-93 (SteveSa) vcrt32/makefile vcrtlib/makefile - new object atonexit.obj is added to MSVCRT.LIB vcrt32/h/stdlib.h vcrtlib/include/stdlib.h - atexit/_onexit/onexit no longer take _CRTIMP [ __declspec(dllimport) ] vcrtlib/lib/i386/msvcrt10.def - atexit/_onexit are now exported only as indirects (_imp__*) so that they will not be called directly Also added __dllonexit. vcrt32/dllstuff/sources - add atonexit.c vcrt32/dllstuff/atonexit.c - implements atexit/_onexit for EXEs and DLLs linked with MSVCRT.LIB. At run-time, the code will implement either a call to __dllonexit to maintain a private atexit/_onexit list for the DLL (which will be called on DLL process detach) or else a call to _onexit exported from MSVCRT10.DLL for an EXE. vcrt32/dllstuff/crtexe.c vcrt32/dllstuff/crtdll.c - minor changes to support the new atexit/_onexit vcrt32/misc/onexit.c - add __dllonexit routine for CRTDLL model only Before these changes, a DLL which was loaded and unloaded dynamically (via LoadLibrary/FreeLibrary) which also registered C++ destructors or called atexit/_onexit would add entries to the process-wide atexit table in MSVCRT10.DLL. That table was not processed until process termination, at which time the d-tors or atexit routines were long gone. Those d-tors and atexit routines must be called when the DLL is unloaded, whenever that is. An EXE linked with MSVCRT.LIB remains pretty much the same, but a DLL linked with MSVCRT.LIB now does the right thing in all cases. ---------------------------------------------------------------------- Tue 25-May-93 (GregF) string\strspn.c, strtok.c Properly handle chars > 127 in both the delimiter and source strings. Note that strspn.c isn't actually used in our build (we use i386\strspn.asm). The change to strspn.c is identical to the one made to crt32\string\strspn.c on \\orville\razzle. However, the change to strtok.c is a bit more efficient than the bug fix I made to the crt32 version. ---------------------------------------------------------------------- Fri 21-May-93 (GregF) <<< Change made to \\orville\razzle\src\crt32 simultaneously >>> convert\strtol.c, wcstol.c Fixed bug in strtoul/wcstoul introduced by last 'fix'. ---------------------------------------------------------------------- Thu 20-May-93 (GregF) <<< Change made to \\orville\razzle\src\crt32 simultaneously >>> misc\getqloc.c, initctyp.c, initmon.c, initcoll.c, initnam.c, inittime.c replaced #include and #include with #include ---------------------------------------------------------------------- Tue 18-May-93 (SteveSa) tools\win32\relinc.if h\stdarg.h h\stdio.h h\varargs.h h\wchar.h Change #if defined(FOO) to #ifdef FOO for _ALPHA_, _MIPS_, and _M_MRX000. Move those symbols in the if-stripper script from enabled & kept to disabled & discarded. MIPS & ALPHA support is inappropriate for Visual C++ v1.0 for Windows NT. ---------------------------------------------------------------------- Mon 17-May-93 (GregF) dllstuff\crtexe.c startup\crt0.c startup\stdargv.c Handle a quoted program name with embedded spaces ("argv[0]"). ---------------------------------------------------------------------- Mon 17-May-93 (SteveSa) h\io.h - The oldnames #defines used to be suppressed if __cplusplus was defined. KarlSi made this change last summer because #define-ing open, read, write, etc. User C++ code was likely to use those names. Now that we do link-time aliasing, we need not worry about these names and C++ code. ---------------------------------------------------------------------- Tue 11-May-93 (GregF) h\stdio.h lowio\chsize.c stdio\_file.c, _getbuf.c, _sftbuf.c, fread.c, fwrite.c, setbuf.c Introduced the manifest constant _INTERNAL_BUFSIZ, and used it to specify the default size for stdio buffers. The only file that now references the BUFSIZ is setbuf. Stdio buffers are now 4K (#define _INTERNAL_BUFSIZ 4096) by default. ---------------------------------------------------------------------- Mon 10-May-93 (GregF) <<< Change made to \\orville\razzle\src\crt32 simultaneously >>> stdio\fflush.c Removed bogus call to ftell (inadvertent part of a change made by MattBr on 3-10-93). ---------------------------------------------------------------------- Mon 10-May-93 (ChrisWei) misc\setlocal.c - minor bug fix. h[vcrtlib\include]\wchar.h - remove unneeded protos stdio\fgetwc.c, fputwc.c, ungetwc.c, _flsbuf.c, _filbuf.c - more fixes, optimizations, better error handling iostream\istrldbl.cxx, ostrldbl.cxx, sources - enable operator<<(long double) h[vcrtlib\include]\istream.h, ostream.h - enable operator<<(long double) ---------------------------------------------------------------------- Mon 10-May-93 (GregF) <<< Change made to \\orville\razzle\src\crt32 simultaneously >>> convert\strtol.c Fixed error check (didn't handle conversion of LONG_MIN correctly). ---------------------------------------------------------------------- Mon 10-May-93 (GregF) <<< Change made to \\orville\razzle\src\crt32 simultaneously >>> lowio\getch.c Was free-ing a bad pointer in _kbhit (Cuda bug 4373) ---------------------------------------------------------------------- Fri 07-May-93 (JonM) h\setjmpex.h - created. tools\win32\relinc.cmd - added setjmpex.h. ---------------------------------------------------------------------- Thu 06-May-93 (SteveSa) h\internal.h heap\heapinit.c startup\dllcrt0.c dllstuff\crtlib.c - Add _heap_term() to free up the memory (and address space) allocated for the heap. _heap_term is called on DLL detach, but not in the EXE. The heap regions are decommitted and released (two separate calls since the tail part of a region may be uncommitted) and the pages that are used for heap descriptors are now chained together so that they too can be deallocated (released). This was a tremendous problem with DLLs which were repeated loaded and unloaded since the process address space was being eaten up, even if not much actual virtual memory was allocated. ---------------------------------------------------------------------- Wed 05-May-93 (ChrisWei) h\time.h - add wcsftime proto when !STDC h\wchar.h, ctype.h - change is_wctype to iswctype as per new ISO convert\iswctype - change is_wctype to iswctype as per new ISO ---------------------------------------------------------------------- Wed 05-May-93 (SteveSa) startup\wild.c - use case-insensitive comparison (_stricmp) when sorting filenames matching a given wildcard command line argument (This change made by Steve Wood to the CRT32 project.) ---------------------------------------------------------------------- Wed 05-May-93 (GregF) <<< Change made to \\orville\razzle\src\crt32 simultaneously >>> startup\mlock.c Turned off DEBUG code. ---------------------------------------------------------------------- Tue 04-May-93 (ChrisWei) convert\mbstowcs.c, wcstombs.c, mbtowc.c, wctomb.c Total rewrite of bogus code. h\stdio.h Remove some unneeded protos. stdio\fgetchar.c, fgetwchr.c, fputchar.c, fputwchr.c Move wide char code to its own file. ---------------------------------------------------------------------- Thu 29-Apr-93 (GregF) stdio\tmpfile.c Yet another bug in tmpnam() for multithread - I was neglecting to copy the generated filename from the main buffer to the per- thread buffer. What a cretin... ---------------------------------------------------------------------- Thu 29-Apr-93 (ChrisWei) Enabled correct wide char print/scan/get/put. Gobs of files affected: Files modified: vcrt32\stdio\_filbuf.c, _flsbuf.c, _getbuf.c, setvbuf.c, fgetc.c, fgetchar.c, fputc.c, fputchar.c, input.c, output.c, winput.c, woutput.c, ungetc.c vcrt32\h\[vcrtlib\include\]tchar.h, wchar.h, stdio.h, stdlib.h Files Added: vcrt32\stdio\_filwbuf.c, _flswbuf.c, fgetwc.c, fgetwchr.c, fputwc.c, fputwchr.c, ungetwc.c ---------------------------------------------------------------------- Wed 28-Apr-93 (SteveSa) vcrt32/vcrt32.def vcfp32/fp32.def Remove -Gf and -Gy (string pooling & COMDATs) from compiler options, undoing my change of Mon 26-Apr which added them. ---------------------------------------------------------------------- Wed 28-Apr-93 (JonM) h\math.h Added "long double" functions as macros which call the "'double" functions with appropriate type conversions. ---------------------------------------------------------------------- Wed 28-Apr-93 (GregF) string\i386\strcat.asm, strlen.asm Rewritten for the 486. ---------------------------------------------------------------------- Wed 28-Apr-93 (GregF) <<< Change made to \\orville\razzle\src\crt32 simultaneously >>> dllstuff\crtexe.c, crtlib.c misc\winxfltr.c startup\crt0.c, crt0msg.c, dllcrt0.c, thread.c Removed support for C RTEs _RT_STACK, _RT_INTDIV, _RT_NONCONT and _RT_INVALDISP. These are Win32 exceptions, and there was no reason not to just let the system exception handler handle them. Besides, it makes things easier for debuggers... ---------------------------------------------------------------------- Tue 27-Apr-93 (SteveSa) dllstuff/crtlib.c startup/tidtable.c startup/crt0.c startup/dllcrt0.c h/internal.h - _mtinit now returns success or failure, rather than calling _amsg_exit when it cannot allocate a TLS index. DLLs should fail to load, now exit the process. h/heap.h heap/heapinit.c heap/heapgrow.c - initial heap region size defaults to large value (for Windows NT, where uncommitted memory is supported) but _heapinit now checks for Win32S or TNT and selects smaller values for those environments, where all memory is allocated (even if it is supposed to be uncommitted.) Each successive heap region is twice as big as the previous one until the limit is reached. The limit is now a variable rather than a constant, and it is also either a large value or a smaller one. ---------------------------------------------------------------------- Mon 26-Apr-93 (SteveSa) vcfp32/tran/i386/87cdisp.asm - corrected a syntax problem which causes problems with MASM 6.10 (reported by Rich Shupak). vcrt32/vcrt32.def (*** NOTE: THIS CHANGE WAS UN-DONE on 28-APR-93 ***) vcfp32/fp32.def - add -Gf and -Gy to build options (string pooling, COMDATs) dos/fullpath.c dos/getcwd.c - check for drive validity and set errno and _doserrno accordingly ---------------------------------------------------------------------- Mon 26-Apr-93 (GregF) <<< Same change made to \\orville\razzle\src\crt32 on 23-April by SteveWo >>> h\limits.h Restored new defs of CHAR_MIN, SHRT_MIN, INT_MIN and LONG_MIN. ---------------------------------------------------------------------- Sun 25-Apr-93 (Jamesma) linkopts\fp10.c, linkopts\sources, makefile Added fp10.c - allows users to override new default 53-bit FP precision with full 64-bit precision (CUDA bug 2368). ---------------------------------------------------------------------- Fri 23-Apr-93 (GregF) stdio\tmpfile.c Fixed 2444 (multiple threads would get the same names back from tmpnam). Also, made the namebufX buffers static - ANSI really does not allow returning an error from tmpnam or tmpfile because a malloc failed. I do not plan to make this change to the CRT32 tree on \\orville unless somebody in NT-land complains. ---------------------------------------------------------------------- Thu 22-Apr-93 (JonM) misc\getqloc.c, misc\inithelp.c Fixed TNT compatibility problem by dynamically linking to GetLocaleInfoW(). Unfortunately it took me several tries to get this right. startup\wincrt0.c Added a "-defaultlib:user32" directive for graphical startup, since it requires that MessageBox be linked. (cuda:3521) ---------------------------------------------------------------------- Wed 21-Apr-93 (GregF) <<< Same changes simultaneously made to \\orville\razzle\src\crt32 >>> h\limits.h Restored old defs of CHAR_MIN, SHRT_MIN, INT_MIN and LONG_MIN. ---------------------------------------------------------------------- Wed 21-Apr-93 (GregF) <<< Same changes simultaneously made to \\orville\razzle\src\crt32 >>> convert\strtol.c, wcstol.c Removed assumption that LONG_MIN == -LONG_MAX. ---------------------------------------------------------------------- Tue 20-Apr-93 (SteveSa) dllstuff/crtdll.c startup/dllcrt0.c - add _CRT_INIT(@12) back in, make it co-exist with DllMain h/internal.h startup/crt0dat.c dllstuff/dllcrt0.c - call _cexit on DLL Detach notification h/heap.h heap/growheap.c - successive heap regions double in size until reaching 16 MB vcrtlib/makefile vcrt32/h/malloc.h - alloca must be #define-d to be _alloca, not aliased at link-time using OLDNAMES.LIB. _alloca is a compiler intrinsic. ---------------------------------------------------------------------- Tue 20-Apr-93 (GregF) <<< Same changes simultaneously made to \\orville\razzle\src\crt32 >>> h\limits.h Better defs of CHAR_MIN, SHRT_MIN, INT_MIN and LONG_MIN. ---------------------------------------------------------------------- Tue 20-Apr-93 (ChrisWei) vcrtlib\lib\i386\msvcrt10.def Add isleadbyte to export list. vcrt32, crt32\misc\getqloc.c Enable japan and others. vcrt32\misc\initnum.c initmon.c initctyp.c Better return val check. vcrt32\misc\inithelp.c JonM GetLocaleInfoW hack, fix casting bugs. ---------------------------------------------------------------------- Tue 20-Apr-93 (GregF) <<< Same changes simultaneously made to \\orville\razzle\src\crt32 >>> lowio\cgets.c, cputs.c Use ReadConsole and WriteConsole instead of ReadFile and WriteFile. startup\stdargv.c Slightly change to test in do-while loop in parse_cmdline so that chars with high bit set (i.e., chars > 127) don't terminate the loop ---------------------------------------------------------------------- Mon 19-Apr-93 (SteveSa) h/heap.h - reduce initial heap region from 4 MB to 16 KB. Win32S and TNT have to allocate that region, not just reserve the address space! h/internal.h, dos/getcwd.c, dos/stat.c - Move _validdrive() from stat.c to getcwd.c and made it static Removed it from internal.h since it is no longer shared. misc/cmiscdat.c - remove obsolete variable _sigintoff misc/winxfltr.c - put MT-only variable XcptActTabSize under #ifdef MTHREAD startup/crt0.c, startup/dllcrt0.c - remove obsolete variable _atopsp startup/crt0dat.c - remove obsolete variable _child ---------------------------------------------------------------------- Thu 15-Apr-93 (JonM) h\ios.h h\streamb.h Added some _CRTIMP's (_mtlock, _mtunlock). misc\i386\exsup.asm Put the signature 'XC00' in .text immediately before the beginning of the __except_handler2 function. This is so the debugger can recognize it specially (request from MikeMo). vcrtlib\makefile Added _tzset to oldnames.lib. ---------------------------------------------------------------------- Wed 14-Apr-93 (SteveSa) vcrt32/makefile dllstuff/dllmain.c - deleted startup/dllmain.c - added dllstuff/sources startup/sources DLLMAIN.OBJ is needed for all 3 CRT library models, so I moved dllmain.c from dllstuff/ to startup/ and adjusted the sources files. DLLMAIN.OBJ goes into LIBC.LIB, LIBCMT.LIB and MSVCRT.LIB. It will not go into MSVCRT10.DLL because nothing there needs it. ---------------------------------------------------------------------- Wed 14-Apr-93 (SteveSa) startup/tidtable.c dllstuff/crtdll.c dllstuff/crtlib.c dllstuff/dllmain.c dllstuff/sources vcrt32/makefile vcrtlib/makefile Change CRT entry point (notification routine) for DLLs from _CRT_INIT(@12) to _DllMainCRTStartup(@12). This routine will call the user routine DllMain(@12) on all notifications. If the user does not provide a DllMain there is a dummy one provided in MSVCRT.LIB (dllmain.c). The new file dllstuff/dllmain.c had to be added to dllstuff/sources. VCRT32/makefile and VCRTLIB/makefile were changed to reflect the addition of DLLMAIN.OBJ to MSVCRT.LIB. Also, _CRTDLL_INIT and _DllMainCRTStartup (formerly _CRT_INIT) no longer _mtdeletelocks directly but now call _mtterm, which is for multi-thread termination what _mtinit does for multi- thread initialization. _mtterm calls _mtdeletelocks and also frees up the TLS index. The TLS index must be freed in case a DLL (or a DLL which references MSVCRT10.DLL) is repeatedly loaded and freed. Otherwise you will run out of TLS indices. ---------------------------------------------------------------------- Wed 14-Apr-93 (JamesMa) misc\i386\exsup.asm Remove setjmp(), longjmp() & raisex() routines for granularity purposes. misc\i386\setjmp.asm New file containing setjmp(), longjmp() & raisex(). misc\sources Add setjmp.asm. h\exsup.inc New file containing data structures & definitions common to exsup.asm & setjmp.asm. ---------------------------------------------------------------------- Wed 14-Apr-93 (ChrisWei) vcrt32\misc\charmax.c vcrt32\misc\lcnvinit.c vcrt32\h\locale.h vcrtlib\include\locale.h Cleanup and change _charmax from short to int. vcrt32\time\strftime.c Bug fixes. vcrt32\h\stdlib.h, ctype.h vcrtlib\include\stdlib.h, ctype.h Change _mb_cur_max from short to int, simplify MB_CUR_MAX def. vcrt32\string\wcsicmp.c, wcsnicmp.c Remove locale-sensitive stuff. vcrt32\string\strcoll.c, stricoll.c, wcscoll.c wcsicoll.c Error sets errno, cleanup. ---------------------------------------------------------------------- Tue 13-Apr-93 (SteveSa) h/setjmp.h Remove inappropriate _CRTIMP from declaration of setjmp (which is #define-d to _setjmp). It is a compiler intrinsic ---------------------------------------------------------------------- Tue 13-Apr-93 (ChrisWei) ANSI says that certain members of the lconv structure must be set to CHAR_MAX, the value of which changes when the user compiles -J. The following files were added: vcrt32\misc\charmax.c Defines _charmax var and stuffs a pointer to the lconv_init function into initializer array. vcrt32\misc\lcnvinit.c Sets the lconv members to UCHAR_MAX (255) The following files were modified: vcrtlib\makefile Add charmax.obj to objects in msvcrt10.lib. vcrtlib\lib\i386\msvcrt10.def Add _lconv_init to exports. vcrt32\misc\sources Add charmax.c, lcnvinit.c. vcrt32\h\setlocal.h Add lconv struct definition. vcrt32\h\locale.h Add extern _charmax reference when _CHAR_UNSIGNED defined. vcrt32\dllstuff\crtexe.c Add xia..xiz initializers and initializer call. vcrt32\dllstuff\i386\cinitexe.asm Add xia..xiz initializers. vcrt32\dllstuff\i386\cinitexe.asm Add xia..xiz initializers. ---------------------------------------------------------------------- Tue 13-Apr-93 (JonM) h\(various).h, sys\stat.h Using the new push/pop syntax for "pragma pack", modified the .h files to restore the packing state to what it was before the #include. Removed directives which suppressed the warning about a .h file changing the "pragma pack" state. ---------------------------------------------------------------------- Mon 12-Apr-93 (ChrisWei) <<< Same change made previously to \\orville\razzle\src\crt32 >>> vcrt32\h\ctype.h vcrtlib\include\ctype.h Changed is* macros to evaluate args only once. Changed isw* macros to evaluate args only once. Protection around _MB_CUR_MAX macro. vcrt32\h\wchar.h vcrtlib\include\wchar.h Changed isw* macros to evaluate args only once. vcrt32\h\stdlib.h vcrtlib\include\stdlib.h Protection around _MB_CUR_MAX macro. ---------------------------------------------------------------------- Mon 12-Apr-93 (GregF) <<< Same change simultaneously made to \\orville\razzle\src\crt32 >>> stdio\popen.c Removed redundant CloseHandle call to close the child process handle from _pclose. By the time CloseHandle is called, an earlier call to _cwait has already called the child process handle. This was NTBUG #4165 ---------------------------------------------------------------------- Thu 08-Apr-93 (ChrisWei) vcrt32\h\errno.h - added EILSEQ errno = 42 vcrtlib\include\errno.h - added EILSEQ errno = 42 vcrt32\misc\syserr.c - added EILSEQ error message ---------------------------------------------------------------------- Thu 08-Apr-93 (SteveSa) stdio/tmpnam.c - used access rather than _access time/tzset.c - used strdup rather than _strdup misc/getenv.c - used strnicmp rather than _strnicmp misc/getqloc.c - used stricmp rather than _stricmp misc/initnum.c - used strdup rather than _strdup Changing the OLD NAMES implementation from #define to prototypes and link-time aliasing revealed these five places where an old name was used in our source code, rather than the ANSI conforming new name (with a leading underscore.) The #define's made these differences irrelevant, but now they are significant. All were fixed. h/direct.h Fix oldnames prototype for getcwd() - had an extra parameter vcrtlib\include vcrtlib\include\sys Updated the ones that GregF missed. ---------------------------------------------------------------------- Thu 08-Apr-93 (GregF) vcrtlib\include Updated header files to match vcrt32\h. ---------------------------------------------------------------------- Thu 08-Apr-93 (GregF) <<< GregF change of 6 April to CRT32 project on \\orville\razzle >>> vcrt32\time\dtoxtime.c Rewrote expression to avoid bogus compiler warning. ---------------------------------------------------------------------- Wed 07-Apr-93 (SteveSa) Most Header Files (!!!) and Some C Source Files dllstuff/crtexe.c dllstuff/crtlib.c tools/win32/relinc.if vcrtlib/lib/i386/msvcrt10.def Add _CRTIMP keyword to functions and variables exported from MSVCRT10.DLL. In the cleansed (public) header files, this keyword evaluates to __declspec(dllimport) if _DLL is defined, and nothing otherwise. For the internal build, it will evaluate to __declspec(dllexport) if CRTDLL is defined. The _CRTIMP keyword is not necessary in the source code if the prototype in the header file uses it first. Also, intrinsic functions like abs, _rotl, sin, atan, etc. cannot be _declspec-ed! I edited the .DEF file to change all of the exported data items from "foo_dll CONSTANT" to "foo DATA" to reflect this change. I also renamed _ValidDrive to _validdrive and __GetMainArgs to __getmainargs. We should keep all CRT routines lower-case for clarity since Win32 APIs are mixed case. In order to export the EXE's value of _fmode and _commode to MSVCRT10.DLL, I had to modify CRTLIB.C to use a different mechanism. In the old days, the _DLL versions of _fmode and _commode could just be #undef-ined, but now the __declspec(dllimport) versions had to be declared directly (as int * _imp___fmode, etc.). I had to add a special symbol, SPECIAL_CRTEXE, to INTERNAL.H and STDLIB.H which must be stripped during the cleansing process. ---------------------------------------------------------------------- Wed 07-Apr-93 (JamesMa) iostream\ios.cxx, iostream\streamb.cxx Initialize LockFlg to -1 so that locking is enabled by default. ---------------------------------------------------------------------- Wed 07-Apr-93 (JonM) h\ios.h, h\iostream.h, h\istream.h, h\ostream.h, h\streamb.h Added _CRTIMP's so that the iostream classes will be in msvcrt10.dll. vcrtlib\makefile Enhanced the oldnames.lib build to add the import symbols too, for clients of msvcrt10.dll. Modified the msvcrt10.dll build so that we export the iostream classes. vcrtlib\lib\i386\msvcrt10.def Add a couple of internal things (conversions between ASCII and 10-byte reals) which the IDE debugger needs for displaying the contents of the x87 stack. ---------------------------------------------------------------------- Wed 07-Apr-93 (JonM) misc\cenvarg.c Checked in a workaround for the NT bug where "CreateProcess()" doesn't propagate the current directory strings if there is a user-specified environment. We now detect these in cenvarg() and prepend them to the user-specified environment block. ---------------------------------------------------------------------- Wed 07-Apr-93 (SteveSa) h\fcntl.h h\limits.h Fix copyright dates to 1993 (somehow these got missed before) ---------------------------------------------------------------------- Wed 07-Apr-93 (GregF) <<< Same change simultaneously made to \\orville\razzle\src\crt32 >>> lowio\fstat.c Made computation of file times consistent with _stat() (i.e., wrong on FAT and HPFS, correct on NTFS, and correct on all of them if they ever fix underlying NT bug). ---------------------------------------------------------------------- Wed 07-Apr-93 (GregF) <<< Same change simultaneously made to \\orville\razzle\src\crt32 >>> dos\stat.c h\sys\stat.h Made first arg type into a const char * (bug recently filed in the NTBUG database). ---------------------------------------------------------------------- Tue 06-Apr-93 (SteveSa) Most Header Files (!!!) and Many C Source Files Remove all occurrences of _VARTYPE1/_CRTVAR1 (which meant nothing) and change all occurrences of _CRTAPI[123] and _CALLTYPE[1234] to __cdecl. ---------------------------------------------------------------------- Mon 05-Apr-93 (GregF) <<< Same change simultaneously made to \\orville\razzle\src\crt32 >>> direct\findfile.c dos\stat.c h\ctime.h, internal.h time\dtoxtime.c, ftime.c, gmtime.c, localtim.c, mktime.c, strftime.c, time.c, tzset.c, utime.c Adapted C8-16 time implementation for Windows NT. ---------------------------------------------------------------------- Mon 05-Apr-93 (JamesMa) startup\crt0.c GUI apps exiting through _amsg_exit() now put up a pop-up message box describing the runtime error instead of trying to write to stderr. startup\crt0msg.c Add _GET_RTERRMSG(), a routine needed for GUI error reporting. ---------------------------------------------------------------------- Mon 05-Apr-93 (JonM) vcrtlib\makefile, vcrtlib\tools\genalias.* Changed the format of alias records used in oldnames.lib. Again oldnames.lib requires a recent linker in order to be built correctly. ---------------------------------------------------------------------- Mon 05-Apr-93 (JonM) startup\i386\crt0init.mak, startup\i386\crt0init.obj Add "Remove" attribute to the .drectve section, to prevent it from showing up in .exe files. ---------------------------------------------------------------------- Thu 01-Apr-93 (ChrisWei) vcrt32\startup\thread.c, crt0.c Change try, except to --try, __except. vcrt32\convert\isctype.c Bug fix and optimization. \vcfp32\fp32.def Turn on fp locale-sensitive radix char by defining _INTL. ---------------------------------------------------------------------- Wed 31-Mar-93 (ChrisWei) vcrt32\h\excpt.h vcrlib\include excpt.h Remove #define try, except, leave, finally. ---------------------------------------------------------------------- Tue 30-Mar-93 (GregF) <<< GregF change of 26 March to CRT32 project on \\orville\razzle >>> vcrt32\startup\thread.c vcrt32\startup\tidtable.c Initialize ptd->_pxcptacttab to _XcptActTab, ptd->_holdrand to 1L. ---------------------------------------------------------------------- Mon 29-Mar-93 (JonM) vcrtlib\makefile Checked in a build for oldnames.lib. Warning: currently the oldnames.lib build requires a linker v.3085 or later to get a bug fix to the librarian (otherwise you get an oldnames.lib with no symbols in its directory). The fixed linker is not checked in to tools project yet, but will be this week. vcrtlib\tools, vcrtlib\tools\mungeobj.exe, vcrtlib\tools\mungeobj.c Created "tools" directory and added a quick tool I wrote to map one shortname to another in a COFF object. vcrtlib\oldnames, vcrtlib\oldnames\weak.asm Created "oldnames" directory and added weak.asm which is a generic weak extern definition. ---------------------------------------------------------------------- Thu 25-Mar-93 (ChrisWei) h\ctype.h exec\dospawn.c convert\_mbslen.c, tolower.c toupper.c, towlower.c, towupper.c CTRL-Zs are EVIL. h\ctype.h, vcrtlib\include\ctype.h convert\toupper.c, tolower.c Define _tolower() and _toupper() when _INTL turned on. ---------------------------------------------------------------------- Wed 24-Mar-93 (ChrisWei) in vcrt32\h, vcrtlib\include types.h Change _dev_t from short to unsigned int. in vcrt32\h, vcrtlib\include fstream.h, ios.h, iostream.h, istream.h, ostream.h, streamb.h Eliminate "long double != double" warnings with #pragma warning. vcrt32.def Turn on _INTL flag to enable CRT international support. tools\win32\relinc.if _INTL is now defined for ifstrip. vcrtlib\include\wchar.h, ctype.h Changed since _INTL is defined for ifstrip. ---------------------------------------------------------------------- Tue 23-Mar-93 (JonM) makefile, dllstuff\makefile, dllstuff\i386\cinitexe.asm Added the same linker directives as my earlier change ... for msvcrt*.dll this time. ---------------------------------------------------------------------- Tue 23-Mar-93 (SteveSa - propogating a ChrisWei fix) <<< ChrisWei change of 22 March to the CRT32 project on //orville/razzle: >>> time\strftime.c - change C locale to 24 hour time ---------------------------------------------------------------------- Tue 23-Mar-93 (JonM) startup\i386\crt0init.asm: Added linker directives to use "kernel32.lib" as a default library, and to merge the .CRT section into .data to save on section padding in the image file (and load one less page). It is necessary to run "link -edit" on the .obj file which comes out of Masm386, in order to set the "info" flag on the .drectve section. Therefore I checked in crt0init.obj to the project, and added crt0init.mak which is how to build it. makefile Now links the version of crt0init.obj which is checked in to the project, instead of building it from crt0init.asm. startup\sources: removed crt0init ---------------------------------------------------------------------- Mon 22-Mar-93 (SteveSa - propogating GregF's and SteveWo's changes) <<< GregF changes of 20 March to the CRT32 project on //orville/razzle: >>> lowio\kbhit.c - deleted lowio\ungetch.c - deleted lowio\getch.c - rewritten to handle arrow keys and function keys now encompasses what was in ungetch.c and kbhit.c lowio\putch.c - rewritten to use WriteConsole instead of WriteFile stdio\fflush.c - changed so that it does not lock every stream on a _flushall() or fflush(NULL) call. <<< GregF changes of 22 March to the CRT32 project on //orville/razzle: >>> lowio\close.c - _close(STDIN) or _close(STDOUT) will not close the underlying NT file handle if STDOUT and STDERR are sharing the same handle. Of course, closing both STDOUT and STDERR will close the underlying handle. <<< SteveWo changes of 22 March to the CRT32 project on //orville/razzle: >>> misc\getqloc.c misc\initctyp.c misc\initmon.c misc\initnum.c misc\inittime.c misc\setlocal.c - MAKELCID takes two parameters now ---------------------------------------------------------------------- Mon 22-Mar-93 (JonM) lowio\open.c Fixed _open() so that it accepts _O_EXCL without _O_CREAT (ignoring _O_EXCL). This is undefined behavior in the X/Open spec ... changed for consistency with 16-bit CRT. Also, it now accepts _O_CREAT | _O_EXCL | _O_TRUNC for opening new files. This is crt16 behavior and is also required by X/Open. There remains a difference from the crt16 behavior ... the 32-bit _open() will fail with _O_TRUNC if _O_RDONLY is used. This is the documented behavior ... the fact that the 16-bit libs accept this case is a bug. ---------------------------------------------------------------------- Mon 22-Mar-93 (JonM) log.txt created, for tracking changes to the Cuda C runtime code on \\hobie, which SteveSa has now split off from the NT group's sources on \\orville\razzle. ----------------------------------------------------------------------