diff options
author | hobbs <hobbs> | 2000-05-18 21:36:34 (GMT) |
---|---|---|
committer | hobbs <hobbs> | 2000-05-18 21:36:34 (GMT) |
commit | 2fcdf4ee0d6ecc76c3acadd4e553f7dadc10be4b (patch) | |
tree | 72ce7c7ec196764b9ccce8da739cdfe58b6cc1ad /generic/tclClock.c | |
parent | 9be3e766082bd89b18ca17b939bbfe66a62f72bc (diff) | |
download | tcl-2fcdf4ee0d6ecc76c3acadd4e553f7dadc10be4b.zip tcl-2fcdf4ee0d6ecc76c3acadd4e553f7dadc10be4b.tar.gz tcl-2fcdf4ee0d6ecc76c3acadd4e553f7dadc10be4b.tar.bz2 |
* generic/tclClock.c (FormatClock): correct code to handle locale
specific return values from strftime, if any. [Bug: 3345]
* unix/tclUnixInit.c (TclpSetInitialEncodings): attempt to
correct setlocale calls for XIM support and locale issues.
[BUG: 5422 3345 4236 2522 2521]
Diffstat (limited to 'generic/tclClock.c')
-rw-r--r-- | generic/tclClock.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/generic/tclClock.c b/generic/tclClock.c index 8b2bc53..7e71325 100644 --- a/generic/tclClock.c +++ b/generic/tclClock.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclClock.c,v 1.9 2000/03/30 04:36:11 hobbs Exp $ + * RCS: @(#) $Id: tclClock.c,v 1.10 2000/05/18 21:36:34 hobbs Exp $ */ #include "tcl.h" @@ -258,7 +258,7 @@ FormatClock(interp, clockVal, useGMT, format) char *format; /* Format string */ { struct tm *timeDataPtr; - Tcl_DString buffer; + Tcl_DString buffer, uniBuffer; int bufSize; char *p; int result; @@ -360,7 +360,16 @@ FormatClock(interp, clockVal, useGMT, format) return TCL_ERROR; } - Tcl_SetStringObj(Tcl_GetObjResult(interp), buffer.string, -1); + /* + * Convert the time to external encoding, in case we asked for + * a localized return value. [Bug: 3345] + */ + Tcl_DStringInit(&uniBuffer); + Tcl_ExternalToUtfDString(NULL, buffer.string, -1, &uniBuffer); + + Tcl_SetStringObj(Tcl_GetObjResult(interp), uniBuffer.string, -1); + + Tcl_DStringFree(&uniBuffer); Tcl_DStringFree(&buffer); return TCL_OK; } |