Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

3536 lines
108 KiB

-----------------------------------------------------------------
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 <os2dll.h> to #include <mtdll.h> (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 <error.h> - 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 <windef.h> and #include <winnls.h> with
#include <windows.h>
----------------------------------------------------------------------
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.
----------------------------------------------------------------------