Tcl Source Code

Check-in [4f729efe4c]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:fix for [Bug 3288345]: Wrong Tcl_StatBuf used on MinGW
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | core-8-5-branch
Files: files | file ages | folders
SHA1: 4f729efe4c9b81d2ced072cd3e24116b82057092
User & Date: jan.nijtmans 2011-04-18 08:22:16
Context
2011-04-18
18:31
Define and use macros that test whether a Tcl list value is canonical. check-in: 13ac6c8c7b user: dgp tags: core-8-5-branch
08:38
fix for [Bug 3288345]: Wrong Tcl_StatBuf used on MinGW. check-in: 0b739fe1f1 user: jan.nijtmans tags: trunk
08:22
fix for [Bug 3288345]: Wrong Tcl_StatBuf used on MinGW check-in: 4f729efe4c user: jan.nijtmans tags: core-8-5-branch
07:10
fix for [Bug 3288345]: Wrong Tcl_StatBuf used on MinGW. check-in: 0a989dc405 user: jan.nijtmans tags: core-8-4-branch
2011-04-16
11:35
Added code to try to tame the [file attributes] guts, while trying to simplify things enough that I ... check-in: 607ac42cb5 user: dkf tags: core-8-5-branch
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to ChangeLog.






1
2
3
4
5
6
7





2011-04-16  Donal K. Fellows  <[email protected]>

	* generic/tclFCmd.c (TclFileAttrsCmd): Tidied up the memory management
	a bit to try to ensure that the dynamic and static cases don't get
	confused while still promoting caching where possible. Added a panic
	to trap problems in the case where an extension is misusing the API.

>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
2011-04-18  Jan Nijtmans  <[email protected]>

	* generic/tcl.h: fix for [Bug 3288345]: Wrong Tcl_StatBuf
	used on MinGW.

2011-04-16  Donal K. Fellows  <[email protected]>

	* generic/tclFCmd.c (TclFileAttrsCmd): Tidied up the memory management
	a bit to try to ensure that the dynamic and static cases don't get
	confused while still promoting caching where possible. Added a panic
	to trap problems in the case where an extension is misusing the API.

Changes to generic/tcl.h.

348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375




376
377
378
379
380
381
382
 *
 * Note on converting between Tcl_WideInt and strings. This implementation (in
 * tclObj.c) depends on the function
 * sprintf(...,"%" TCL_LL_MODIFIER "d",...).
 */

#if !defined(TCL_WIDE_INT_TYPE)&&!defined(TCL_WIDE_INT_IS_LONG)
#   if defined(__GNUC__)
#      define TCL_WIDE_INT_TYPE long long
#      if defined(__WIN32__) && !defined(__CYGWIN__)
#         define TCL_LL_MODIFIER        "I64"
#      else
#         define TCL_LL_MODIFIER	"ll"
#      endif
typedef struct stat	Tcl_StatBuf;
#   elif defined(__WIN32__)
#      define TCL_WIDE_INT_TYPE __int64
#      ifdef __BORLANDC__
typedef struct stati64 Tcl_StatBuf;
#         define TCL_LL_MODIFIER	"L"
#      else /* __BORLANDC__ */
#         if _MSC_VER < 1400 || !defined(_M_IX86)
typedef struct _stati64	Tcl_StatBuf;
#         else
typedef struct _stat64	Tcl_StatBuf;
#         endif /* _MSC_VER < 1400 */
#         define TCL_LL_MODIFIER	"I64"
#      endif /* __BORLANDC__ */




#   else /* __WIN32__ */
/*
 * Don't know what platform it is and configure hasn't discovered what is
 * going on for us. Try to guess...
 */
#      ifdef NO_LIMITS_H
#	  error please define either TCL_WIDE_INT_TYPE or TCL_WIDE_INT_IS_LONG







|
<
<
<
<
<
<
<
<





|






>
>
>
>







348
349
350
351
352
353
354
355








356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
 *
 * Note on converting between Tcl_WideInt and strings. This implementation (in
 * tclObj.c) depends on the function
 * sprintf(...,"%" TCL_LL_MODIFIER "d",...).
 */

#if !defined(TCL_WIDE_INT_TYPE)&&!defined(TCL_WIDE_INT_IS_LONG)
#   if defined(__WIN32__)








#      define TCL_WIDE_INT_TYPE __int64
#      ifdef __BORLANDC__
typedef struct stati64 Tcl_StatBuf;
#         define TCL_LL_MODIFIER	"L"
#      else /* __BORLANDC__ */
#         if (defined(_MSC_VER) && (_MSC_VER < 1400)) || !defined(_M_IX86) || defined(__GNUC__)
typedef struct _stati64	Tcl_StatBuf;
#         else
typedef struct _stat64	Tcl_StatBuf;
#         endif /* _MSC_VER < 1400 */
#         define TCL_LL_MODIFIER	"I64"
#      endif /* __BORLANDC__ */
#   elif defined(__GNUC__)
#      define TCL_WIDE_INT_TYPE long long
#      define TCL_LL_MODIFIER	"ll"
typedef struct stat	Tcl_StatBuf;
#   else /* __WIN32__ */
/*
 * Don't know what platform it is and configure hasn't discovered what is
 * going on for us. Try to guess...
 */
#      ifdef NO_LIMITS_H
#	  error please define either TCL_WIDE_INT_TYPE or TCL_WIDE_INT_IS_LONG