? 1424909.patch
? bug1344540-mod.patch
? bug1344540.patch
? mingw-gcc
Index: generic/regerror.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/regerror.c,v
retrieving revision 1.3
diff -c -r1.3 regerror.c
*** generic/regerror.c	2 Jun 1999 01:53:30 -0000	1.3
--- generic/regerror.c	29 Mar 2006 00:06:10 -0000
***************
*** 50,57 ****
   */
  /* ARGSUSED */
  size_t				/* actual space needed (including NUL) */
! regerror(errcode, preg, errbuf, errbuf_size)
! int errcode;			/* error code, or REG_ATOI or REG_ITOA */
  CONST regex_t *preg;		/* associated regex_t (unused at present) */
  char *errbuf;			/* result buffer (unless errbuf_size==0) */
  size_t errbuf_size;		/* available space in errbuf, can be 0 */
--- 50,57 ----
   */
  /* ARGSUSED */
  size_t				/* actual space needed (including NUL) */
! regerror(code, preg, errbuf, errbuf_size)
! int code;			/* error code, or REG_ATOI or REG_ITOA */
  CONST regex_t *preg;		/* associated regex_t (unused at present) */
  char *errbuf;			/* result buffer (unless errbuf_size==0) */
  size_t errbuf_size;		/* available space in errbuf, can be 0 */
***************
*** 62,68 ****
  	size_t len;
  	int icode;
  
! 	switch (errcode) {
  	case REG_ATOI:		/* convert name to number */
  		for (r = rerrs; r->code >= 0; r++)
  			if (strcmp(r->name, errbuf) == 0)
--- 62,68 ----
  	size_t len;
  	int icode;
  
! 	switch (code) {
  	case REG_ATOI:		/* convert name to number */
  		for (r = rerrs; r->code >= 0; r++)
  			if (strcmp(r->name, errbuf) == 0)
***************
*** 84,95 ****
  		break;
  	default:		/* a real, normal error code */
  		for (r = rerrs; r->code >= 0; r++)
! 			if (r->code == errcode)
  				break;
  		if (r->code >= 0)
  			msg = r->explain;
  		else {			/* unknown; say so */
! 			sprintf(convbuf, unk, errcode);
  			msg = convbuf;
  		}
  		break;
--- 84,95 ----
  		break;
  	default:		/* a real, normal error code */
  		for (r = rerrs; r->code >= 0; r++)
! 			if (r->code == code)
  				break;
  		if (r->code >= 0)
  			msg = r->explain;
  		else {			/* unknown; say so */
! 			sprintf(convbuf, unk, code);
  			msg = convbuf;
  		}
  		break;
Index: generic/tcl.h
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tcl.h,v
retrieving revision 1.153.2.22
diff -c -r1.153.2.22 tcl.h
*** generic/tcl.h	7 Mar 2006 05:30:24 -0000	1.153.2.22
--- generic/tcl.h	29 Mar 2006 00:32:28 -0000
***************
*** 385,391 ****
--- 385,395 ----
  #         define TCL_LL_MODIFIER	"L"
  #         define TCL_LL_MODIFIER_SIZE	1
  #      else /* __BORLANDC__ */
+ #         if _MSC_VER < 1400
  typedef struct _stati64	Tcl_StatBuf;
+ #         else
+ typedef struct _stat64 Tcl_StatBuf;
+ #         endif /* _MSC_VER < 1400 */
  #         define TCL_LL_MODIFIER	"I64"
  #         define TCL_LL_MODIFIER_SIZE	3
  #      endif /* __BORLANDC__ */
Index: generic/tclDate.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclDate.c,v
retrieving revision 1.20.4.2
diff -c -r1.20.4.2 tclDate.c
*** generic/tclDate.c	4 Nov 2005 20:15:09 -0000	1.20.4.2
--- generic/tclDate.c	29 Mar 2006 22:25:52 -0000
***************
*** 478,484 ****
          for (i = EPOCH; i < Year; i++)
              Julian += 365 + IsLeapYear(i);
      } else {
!         for (i = Year; i < EPOCH; i++)
              Julian -= 365 + IsLeapYear(i);
      }
      Julian *= SECSPERDAY;
--- 478,484 ----
          for (i = EPOCH; i < Year; i++)
              Julian += 365 + IsLeapYear(i);
      } else {
!         for (i = (int)Year; i < EPOCH; i++)
              Julian -= 365 + IsLeapYear(i);
      }
      Julian *= SECSPERDAY;
***************
*** 547,553 ****
       *  doing next february from january gives us february of the current year)
       * set day to 1, time to 0
       */
!     tm->tm_year += MonthOrdinal;
      if (tm->tm_mon < MonthNumber - 1) {
  	tm->tm_year--;
      }
--- 547,553 ----
       *  doing next february from january gives us february of the current year)
       * set day to 1, time to 0
       */
!     tm->tm_year += (int)MonthOrdinal;
      if (tm->tm_mon < MonthNumber - 1) {
  	tm->tm_year--;
      }
Index: tests/env.test
===================================================================
RCS file: /cvsroot/tcl/tcl/tests/env.test,v
retrieving revision 1.17.2.3
diff -c -r1.17.2.3 env.test
*** tests/env.test	5 Oct 2005 08:03:18 -0000	1.17.2.3
--- tests/env.test	29 Mar 2006 23:36:30 -0000
***************
*** 75,81 ****
  	lrem names ComSpec
  	lrem names ""
      }	
!     foreach name {TCL_LIBRARY PATH LD_LIBRARY_PATH LIBPATH PURE_PROG_NAME DISPLAY SHLIB_PATH DYLD_LIBRARY_PATH DYLD_FRAMEWORK_PATH __CF_USER_TEXT_ENCODING } {
  	lrem names $name
      }
      foreach p $names {
--- 75,81 ----
  	lrem names ComSpec
  	lrem names ""
      }	
!     foreach name {TCL_LIBRARY PATH LD_LIBRARY_PATH LIBPATH PURE_PROG_NAME DISPLAY SHLIB_PATH DYLD_LIBRARY_PATH DYLD_FRAMEWORK_PATH __CF_USER_TEXT_ENCODING SYSTEMDRIVE SYSTEMROOT} {
  	lrem names $name
      }
      foreach p $names {
***************
*** 98,111 ****
  # Save the current environment variables at the start of the test.
  
  foreach name [array names env] {
!     set env2($name) $env($name)
      unset env($name)
  }
  
  # Added the following lines so that child tcltest can actually find its
  # library if the initial tcltest is run from a non-standard place.
  # ('saved' env vars)
! foreach name {TCL_LIBRARY PATH LD_LIBRARY_PATH LIBPATH DISPLAY SHLIB_PATH DYLD_LIBRARY_PATH DYLD_FRAMEWORK_PATH} {
    if {[info exists env2($name)]} {
       set env($name) $env2($name);
    }
--- 98,111 ----
  # Save the current environment variables at the start of the test.
  
  foreach name [array names env] {
!     set env2([string toupper $name]) $env($name)
      unset env($name)
  }
  
  # Added the following lines so that child tcltest can actually find its
  # library if the initial tcltest is run from a non-standard place.
  # ('saved' env vars)
! foreach name {TCL_LIBRARY PATH LD_LIBRARY_PATH LIBPATH DISPLAY SHLIB_PATH DYLD_LIBRARY_PATH DYLD_FRAMEWORK_PATH SYSTEMDRIVE SYSTEMROOT} {
    if {[info exists env2($name)]} {
       set env($name) $env2($name);
    }
Index: win/makefile.vc
===================================================================
RCS file: /cvsroot/tcl/tcl/win/makefile.vc,v
retrieving revision 1.100.2.7
diff -c -r1.100.2.7 makefile.vc
*** win/makefile.vc	30 Nov 2005 00:15:39 -0000	1.100.2.7
--- win/makefile.vc	29 Mar 2006 23:59:01 -0000
***************
*** 16,23 ****
  #------------------------------------------------------------------------------
  
  # Check to see we are configured to build with MSVC (MSDEVDIR or MSVCDIR)
! # or with the MS Platform SDK (MSSDK)
! !if !defined(MSDEVDIR) && !defined(MSVCDIR) && !defined(MSSDK)
  MSG = ^
  You need to run vcvars32.bat from Developer Studio or setenv.bat from the^
  Platform SDK first to setup the environment.  Jump to this line to read^
--- 16,24 ----
  #------------------------------------------------------------------------------
  
  # Check to see we are configured to build with MSVC (MSDEVDIR or MSVCDIR)
! # or with the MS Platform SDK (MSSDK). Visual Studio .NET 2003 and 2005 define
! # VCINSTALLDIR instead.
! !if !defined(MSDEVDIR) && !defined(MSVCDIR) && !defined(MSSDK) && !defined(VCINSTALLDIR)
  MSG = ^
  You need to run vcvars32.bat from Developer Studio or setenv.bat from the^
  Platform SDK first to setup the environment.  Jump to this line to read^
***************
*** 322,348 ****
  !if !$(DEBUG)
  !if $(OPTIMIZING)
  ### This cranks the optimization level to maximize speed
! cdebug	= -O2 -Op -Gs
  !else
  cdebug	=
  !endif
  !else if "$(MACHINE)" == "IA64"
  ### Warnings are too many, can't support warnings into errors.
! cdebug	= -Z7 -Od
  !else
! cdebug	= -Z7 -WX -Od
  !endif
  
  ### Declarations common to all compiler options
! cflags = -nologo -c -W3 -YX -Fp$(TMP_DIR)^\
! 
! !if $(PENT_0F_ERRATA)
! cflags = $(cflags) -QI0f
! !endif
! 
! !if $(ITAN_B_ERRATA)
! cflags = $(cflags) -QIA64_Bx
! !endif
  
  !if $(MSVCRT)
  !if "$(DBGX)" == ""
--- 323,341 ----
  !if !$(DEBUG)
  !if $(OPTIMIZING)
  ### This cranks the optimization level to maximize speed
! cdebug	= -O2 $(OPTIMIZATIONS)
  !else
  cdebug	=
  !endif
  !else if "$(MACHINE)" == "IA64"
  ### Warnings are too many, can't support warnings into errors.
! cdebug	= -Z7 -Od $(DEBUGFLAGS)
  !else
! cdebug	= -Z7 -WX $(DEBUGFLAGS)
  !endif
  
  ### Declarations common to all compiler options
! cflags = -nologo -c $(COMPILERFLAGS) -D _CRT_SECURE_NO_DEPRECATE -Fp$(TMP_DIR)^\
  
  !if $(MSVCRT)
  !if "$(DBGX)" == ""
***************
*** 741,746 ****
--- 734,740 ----
  !endif
  	@echo installing $(TCLSTUBLIBNAME)
  	@$(CPY) "$(TCLSTUBLIB)" "$(LIB_INSTALL_DIR)\"
+         @if exist "$(TCLSH).manifest" $(CPY) "$(TCLSH).manifest" "$(BIN_INSTALL_DIR)\"
  
  install-libraries:
  	@echo installing http1.0
Index: win/nmakehlp.c
===================================================================
RCS file: /cvsroot/tcl/tcl/win/nmakehlp.c,v
retrieving revision 1.1
diff -c -r1.1 nmakehlp.c
*** win/nmakehlp.c	27 Mar 2002 21:15:43 -0000	1.1
--- win/nmakehlp.c	29 Mar 2006 21:53:34 -0000
***************
*** 12,17 ****
--- 12,19 ----
   * RCS: @(#) $Id: nmakehlp.c,v 1.1 2002/03/27 21:15:43 davygrvy Exp $
   * ----------------------------------------------------------------------------
   */
+ 
+ #define _CRT_SECURE_NO_DEPRECATE
  #include <windows.h>
  #pragma comment (lib, "user32.lib")
  #pragma comment (lib, "kernel32.lib")
***************
*** 41,46 ****
--- 43,61 ----
      DWORD dwWritten;
      int chars;
  
+     /*
+      * Make sure children (cl.exe and link.exe) are kept quiet.
+      */
+ 
+     SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX);
+ 
+     /*
+      * Make sure the compiler and linker aren't effected by the outside world.
+      */
+ 
+     SetEnvironmentVariable("CL", "");
+     SetEnvironmentVariable("LINK", "");
+ 
      if (argc > 1 && *argv[1] == '-') {
  	switch (*(argv[1]+1)) {
  	case 'c':
***************
*** 90,100 ****
      STARTUPINFO si;
      PROCESS_INFORMATION pi;
      SECURITY_ATTRIBUTES sa;
!     DWORD threadID;
      char msg[300];
      BOOL ok;
      HANDLE hProcess, h, pipeThreads[2];
!     char cmdline[100];
  
      hProcess = GetCurrentProcess();
  
--- 105,115 ----
      STARTUPINFO si;
      PROCESS_INFORMATION pi;
      SECURITY_ATTRIBUTES sa;
!     DWORD threadID, n;
      char msg[300];
      BOOL ok;
      HANDLE hProcess, h, pipeThreads[2];
!     char cmdline[256];
  
      hProcess = GetCurrentProcess();
  
***************
*** 122,132 ****
  	    0, TRUE, DUPLICATE_SAME_ACCESS | DUPLICATE_CLOSE_SOURCE);
  
      /* base command line */
!     strcpy(cmdline, "cl.exe -nologo -c -TC -Fdtemp ");
      /* append our option for testing */
      strcat(cmdline, option);
      /* filename to compile, which exists, but is nothing and empty. */
!     strcat(cmdline, " nul");
  
      ok = CreateProcess(
  	    NULL,	    /* Module name. */
--- 137,152 ----
  	    0, TRUE, DUPLICATE_SAME_ACCESS | DUPLICATE_CLOSE_SOURCE);
  
      /* base command line */
!     n = GetEnvironmentVariable("CC", cmdline, 255);
!     cmdline[n] = 0;
!     if (n == 0)
! 	strcpy(cmdline, "cl.exe");
!     strncat(cmdline, " -nologo -c -TC -Zs -X ", 255);
! 
      /* append our option for testing */
      strcat(cmdline, option);
      /* filename to compile, which exists, but is nothing and empty. */
!     strcat(cmdline, " .\\nul");
  
      ok = CreateProcess(
  	    NULL,	    /* Module name. */
***************
*** 175,182 ****
      CloseHandle(pipeThreads[0]);
      CloseHandle(pipeThreads[1]);
  
!     /* look for the commandline warning code in both streams. */
!     return !(strstr(Out.buffer, "D4002") != NULL || strstr(Err.buffer, "D4002") != NULL);
  }
  
  int
--- 195,222 ----
      CloseHandle(pipeThreads[0]);
      CloseHandle(pipeThreads[1]);
  
! #ifdef _DEBUG
!     {
! 	DWORD err = 0;
! 	strcat(cmdline, "\n");
! 	WriteFile(GetStdHandle(STD_ERROR_HANDLE), cmdline, 
! 	    strlen(cmdline), &err, NULL);
! 	WriteFile(GetStdHandle(STD_ERROR_HANDLE), Out.buffer, 
! 	    strlen(Out.buffer), &err,NULL);
! 	WriteFile(GetStdHandle(STD_ERROR_HANDLE), Err.buffer,
! 	    strlen(Err.buffer), &err,NULL);
!     }
! #endif
! 
!     /*
!      * Look for the commandline warning code in both streams.
!      *  - in MSVC 6 & 7 we get D4002, in MSVC 8 we get D9002.
!      */
!     
!     return !(strstr(Out.buffer, "D4002") != NULL
!              || strstr(Err.buffer, "D4002") != NULL
!              || strstr(Out.buffer, "D9002") != NULL
!              || strstr(Err.buffer, "D9002") != NULL);
  }
  
  int
Index: win/rules.vc
===================================================================
RCS file: /cvsroot/tcl/tcl/win/rules.vc,v
retrieving revision 1.11
diff -c -r1.11 rules.vc
*** win/rules.vc	1 Mar 2003 01:22:46 -0000	1.11
--- win/rules.vc	29 Mar 2006 21:54:26 -0000
***************
*** 8,13 ****
--- 8,14 ----
  # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  # 
  # Copyright (c) 2001-2002 David Gravereaux.
+ # Copyright (c) 2003 Patrick Thoyts
  #
  #------------------------------------------------------------------------------
  # RCS: @(#) $Id: rules.vc,v 1.11 2003/03/01 01:22:46 hobbs Exp $
***************
*** 25,31 ****
  ### Assume the normal default.
  _INSTALLDIR	= C:\Program Files\Tcl
  !else
! ### Fix the path seperators.
  _INSTALLDIR	= $(INSTALLDIR:/=\)
  !endif
  
--- 26,32 ----
  ### Assume the normal default.
  _INSTALLDIR	= C:\Program Files\Tcl
  !else
! ### Fix the path separators.
  _INSTALLDIR	= $(INSTALLDIR:/=\)
  !endif
  
***************
*** 61,67 ****
  #----------------------------------------------------------
  
  !if !exist(nmakehlp.exe)
! !if [$(cc32) -nologo -ML nmakehlp.c -link -subsystem:console > nul]
  !endif
  !endif
  
--- 62,68 ----
  #----------------------------------------------------------
  
  !if !exist(nmakehlp.exe)
! !if [$(cc32) -nologo nmakehlp.c -link -subsystem:console > nul]
  !endif
  !endif
  
***************
*** 70,76 ****
  #----------------------------------------------------------
  
  ### test for optimizations
! !if [nmakehlp -c -Otip]
  !message *** Compiler has 'Optimizations'
  OPTIMIZING	= 1
  !else
--- 71,77 ----
  #----------------------------------------------------------
  
  ### test for optimizations
! !if [nmakehlp -c -Ot]
  !message *** Compiler has 'Optimizations'
  OPTIMIZING	= 1
  !else
***************
*** 78,116 ****
  OPTIMIZING	= 0
  !endif
  
  !if "$(MACHINE)" == "IX86"
  ### test for pentium errata
  !if [nmakehlp -c -QI0f]
  !message *** Compiler has 'Pentium 0x0f fix'
! PENT_0F_ERRATA	= 1
  !else
  !message *** Compiler doesn't have 'Pentium 0x0f fix'
- PENT_0F_ERRATA	= 0
- !endif
- ### test for -align:4096, when align:512 will do.
- !if [nmakehlp -l -opt:nowin98]
- !message *** Linker has 'Win98 alignment problem'
- ALIGN98_HACK	= 1
- !else
- !message *** Linker doesn't have 'Win98 alignment problem'
- ALIGN98_HACK	= 0
  !endif
- !else
- PENT_0F_ERRATA	= 0
- ALIGN98_HACK	= 0
  !endif
  
  !if "$(MACHINE)" == "IA64"
  ### test for Itanium errata
  !if [nmakehlp -c -QIA64_Bx]
  !message *** Compiler has 'B-stepping errata workarounds'
! ITAN_B_ERRATA	= 1
  !else
  !message *** Compiler doesn't have 'B-stepping errata workarounds'
! ITAN_B_ERRATA	= 0
  !endif
  !else
! ITAN_B_ERRATA	= 0
  !endif
  
  #----------------------------------------------------------
--- 79,155 ----
  OPTIMIZING	= 0
  !endif
  
+ OPTIMIZATIONS   =
+ 
+ !if [nmakehlp -c -Ot]
+ OPTIMIZATIONS  = $(OPTIMIZATIONS) -Ot
+ !endif
+ 
+ !if [nmakehlp -c -Oi]
+ OPTIMIZATIONS  = $(OPTIMIZATIONS) -Oi
+ !endif
+ 
+ !if [nmakehlp -c -Op]
+ OPTIMIZATIONS  = $(OPTIMIZATIONS) -Op
+ !endif
+ 
+ !if [nmakehlp -c -fp:strict]
+ OPTIMIZATIONS  = $(OPTIMIZATIONS) -fp:strict
+ !endif
+ 
+ !if [nmakehlp -c -Gs]
+ OPTIMIZATIONS  = $(OPTIMIZATIONS) -Gs
+ !endif
+ 
+ !if [nmakehlp -c -GS]
+ OPTIMIZATIONS  = $(OPTIMIZATIONS) -GS
+ !endif
+ 
+ DEBUGFLAGS     =
+ 
+ !if [nmakehlp -c -RTC1]
+ DEBUGFLAGS     = $(DEBUGFLAGS) -RTC1
+ !elseif [nmakehlp -c -GZ]
+ DEBUGFLAGS     = $(DEBUGFLAGS) -GZ
+ !endif
+ 
+ COMPILERFLAGS  =-W3
+ 
+ !if [nmakehlp -c -YX]
+ OPTIMIZATIONS  = $(OPTIMIZATIONS) -YX
+ !endif
+ 
  !if "$(MACHINE)" == "IX86"
  ### test for pentium errata
  !if [nmakehlp -c -QI0f]
  !message *** Compiler has 'Pentium 0x0f fix'
! COMPILERFLAGS  = $(COMPILERFLAGSS) -QI0f
  !else
  !message *** Compiler doesn't have 'Pentium 0x0f fix'
  !endif
  !endif
  
  !if "$(MACHINE)" == "IA64"
  ### test for Itanium errata
  !if [nmakehlp -c -QIA64_Bx]
  !message *** Compiler has 'B-stepping errata workarounds'
! COMPILERFLAGS   = $(COMPILERFLAGS) -QIA64_Bx
  !else
  !message *** Compiler doesn't have 'B-stepping errata workarounds'
! !endif
! !endif
! 
! !if "$(MACHINE)" == "IX86"
! ### test for -align:4096, when align:512 will do.
! !if [nmakehlp -l -opt:nowin98]
! !message *** Linker has 'Win98 alignment problem'
! ALIGN98_HACK	= 1
! !else
! !message *** Linker doesn't have 'Win98 alignment problem'
! ALIGN98_HACK	= 0
  !endif
  !else
! ALIGN98_HACK	= 0
  !endif
  
  #----------------------------------------------------------
***************
*** 126,131 ****
--- 165,171 ----
  LOIMPACT	= 0
  TCL_USE_STATIC_PACKAGES	= 0
  USE_THREAD_ALLOC = 0
+ UNCHECKED	= 0
  !else
  !if [nmakehlp -f $(OPTS) "static"]
  !message *** Doing static
***************
*** 175,180 ****
--- 215,226 ----
  !else
  USE_THREAD_ALLOC = 0
  !endif
+ !if [nmakehlp -f $(OPTS) "unchecked"]
+ !message *** Doing unchecked
+ UNCHECKED = 1
+ !else
+ UNCHECKED = 0
+ !endif
  !endif
  
  
***************
*** 283,288 ****
--- 329,346 ----
  OPTDEFINES	= $(OPTDEFINES) -DSTATIC_BUILD
  !endif
  
+ !if $(DEBUG)
+ OPTDEFINES	= $(OPTDEFINES) -DTCL_CFG_DEBUG
+ !elseif $(OPTIMIZING)
+ OPTDEFINES	= $(OPTDEFINES) -DTCL_CFG_OPTIMIZED
+ !endif
+ !if $(PROFILE)
+ OPTDEFINES	= $(OPTDEFINES) -DTCL_CFG_PROFILED
+ !endif
+ !if "$(MACHINE)" == "IA64" || "$(MACHINE)" == "AMD64"
+ OPTDEFINES	= $(OPTDEFINES) -DTCL_CFG_DO64BIT
+ !endif
+ 
  
  #----------------------------------------------------------
  # Get common info used when building extensions.
***************
*** 296,302 ****
  _TCLDIR		= $(_INSTALLDIR)
  !else
  MSG=^
! Don't know where tcl.h is.  Set the TCLDIR macro.
  !error $(MSG)
  !endif
  !else
--- 354,360 ----
  _TCLDIR		= $(_INSTALLDIR)
  !else
  MSG=^
! Failed to find tcl.h.  Set the TCLDIR macro.
  !error $(MSG)
  !endif
  !else
***************
*** 307,313 ****
  TCLINSTALL	= 0
  !else
  MSG =^
! Don't know where tcl.h is.  The TCLDIR macro doesn't appear correct.
  !error $(MSG)
  !endif
  !endif
--- 365,371 ----
  TCLINSTALL	= 0
  !else
  MSG =^
! Failed to find tcl.h.  The TCLDIR macro does not appear correct.
  !error $(MSG)
  !endif
  !endif
***************
*** 356,360 ****
--- 414,419 ----
  !message *** Output directory will be '$(OUT_DIR)'
  !message *** Suffix for binaries will be '$(SUFX)'
  !message *** Optional defines are '$(OPTDEFINES)'
+ !message *** Compiler options are '$(OPTIMIZATIONS) $(DEBUGFLAGS)'
  
  !endif
Index: win/tclWinPort.h
===================================================================
RCS file: /cvsroot/tcl/tcl/win/tclWinPort.h,v
retrieving revision 1.36.2.2
diff -c -r1.36.2.2 tclWinPort.h
*** win/tclWinPort.h	4 Nov 2005 18:33:35 -0000	1.36.2.2
--- win/tclWinPort.h	29 Mar 2006 22:28:28 -0000
***************
*** 392,397 ****
--- 392,408 ----
  #endif /* __CYGWIN__ */
  
  /*
+  * MSVC 8.0 started to mark many standard C library functions depreciated
+  * including the *printf family and others. Tell it to shut up.
+  * (_MSC_VER is 1200 for VC6, 1300 or 1310 for vc7.net, 1400 for 8.0)
+  */
+ 
+ #if _MSC_VER >= 1400 && !defined(_CRT_SECURE_NO_DEPRECATE)
+ #define _CRT_SECURE_NO_DEPRECATE
+ #pragma warning(disable:4996)
+ #endif
+ 
+ /*
   * There is no platform-specific panic routine for Windows in the Tcl internals.
   */
  
Index: win/tclWinTime.c
===================================================================
RCS file: /cvsroot/tcl/tcl/win/tclWinTime.c,v
retrieving revision 1.14.2.8
diff -c -r1.14.2.8 tclWinTime.c
*** win/tclWinTime.c	30 Mar 2005 05:31:13 -0000	1.14.2.8
--- win/tclWinTime.c	29 Mar 2006 22:51:26 -0000
***************
*** 422,428 ****
  	    timeInfo.fileTimeLastCall.QuadPart = curFileTime;
  	    timeInfo.perfCounterLastCall.QuadPart = curCounter.QuadPart;
  	    usecSincePosixEpoch = ( curFileTime - posixEpoch.QuadPart ) / 10;
! 	    timePtr->sec = (time_t) ( usecSincePosixEpoch / 1000000 );
  	    timePtr->usec = (unsigned long ) ( usecSincePosixEpoch % 1000000 );
  	    useFtime = 0;
  	}
--- 422,428 ----
  	    timeInfo.fileTimeLastCall.QuadPart = curFileTime;
  	    timeInfo.perfCounterLastCall.QuadPart = curCounter.QuadPart;
  	    usecSincePosixEpoch = ( curFileTime - posixEpoch.QuadPart ) / 10;
! 	    timePtr->sec = (long) ( usecSincePosixEpoch / 1000000 );
  	    timePtr->usec = (unsigned long ) ( usecSincePosixEpoch % 1000000 );
  	    useFtime = 0;
  	}
***************
*** 434,440 ****
  	/* High resolution timer is not available.  Just use ftime */
  
  	ftime(&t);
! 	timePtr->sec = t.time;
  	timePtr->usec = t.millitm * 1000;
      }
  }
--- 434,440 ----
  	/* High resolution timer is not available.  Just use ftime */
  
  	ftime(&t);
! 	timePtr->sec = (long)t.time;
  	timePtr->usec = t.millitm * 1000;
      }
  }
***************
*** 636,644 ****
  	    }
  
  	    time /= 24;
! 	    tmPtr->tm_mday += time;
! 	    tmPtr->tm_yday += time;
! 	    tmPtr->tm_wday = (tmPtr->tm_wday + time) % 7;
  	}
      } else {
  	tmPtr = ComputeGMT(tp);
--- 636,644 ----
  	    }
  
  	    time /= 24;
! 	    tmPtr->tm_mday += (int)time;
! 	    tmPtr->tm_yday += (int)time;
! 	    tmPtr->tm_wday = (tmPtr->tm_wday + (int)time) % 7;
  	}
      } else {
  	tmPtr = ComputeGMT(tp);
***************
*** 679,686 ****
       * Compute the 4 year span containing the specified time.
       */
  
!     tmp = *tp / SECSPER4YEAR;
!     rem = *tp % SECSPER4YEAR;
  
      /*
       * Correct for weird mod semantics so the remainder is always positive.
--- 679,686 ----
       * Compute the 4 year span containing the specified time.
       */
  
!     tmp = (long)(*tp / SECSPER4YEAR);
!     rem = (LONG)(*tp % SECSPER4YEAR);
  
      /*
       * Correct for weird mod semantics so the remainder is always positive.
***************
*** 746,752 ****
       * Compute day of week.  Epoch started on a Thursday.
       */
  
!     tmPtr->tm_wday = (*tp / SECSPERDAY) + 4;
      if ((*tp % SECSPERDAY) < 0) {
  	tmPtr->tm_wday--;
      }
--- 746,752 ----
       * Compute day of week.  Epoch started on a Thursday.
       */
  
!     tmPtr->tm_wday = (long)(*tp / SECSPERDAY) + 4;
      if ((*tp % SECSPERDAY) < 0) {
  	tmPtr->tm_wday--;
      }
