diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-10-16 11:55:57 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-10-16 11:55:57 (GMT) |
| commit | 237b4d22a295dc64ee912a86d34cf1d178a07363 (patch) | |
| tree | 71e28f9a1fa65909185eae0f31b4cc3d01145d37 | |
| parent | a72fed191ebed3ff0a7a22b976155f08082c9fdf (diff) | |
| download | tcl-237b4d22a295dc64ee912a86d34cf1d178a07363.zip tcl-237b4d22a295dc64ee912a86d34cf1d178a07363.tar.gz tcl-237b4d22a295dc64ee912a86d34cf1d178a07363.tar.bz2 | |
Add support for 'L' length modifier (either long double or mp_int) and 'a'/'A' modifiers (floating point in hex notation)
| -rw-r--r-- | generic/tclStringObj.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index 98f4755..084a6c9 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -2534,15 +2534,26 @@ AppendPrintfToObjVA( Tcl_ListObjAppendElement(NULL, list, Tcl_NewWideIntObj( va_arg(argList, Tcl_WideInt))); break; + case 3: + Tcl_ListObjAppendElement(NULL, list, Tcl_NewBignumObj( + va_arg(argList, mp_int *))); + break; } break; + case 'a': + case 'A': case 'e': case 'E': case 'f': case 'g': case 'G': + if (size > 0) { Tcl_ListObjAppendElement(NULL, list, Tcl_NewDoubleObj( - va_arg(argList, double))); + (double)va_arg(argList, long double))); + } else { + Tcl_ListObjAppendElement(NULL, list, Tcl_NewDoubleObj( + va_arg(argList, double))); + } seekingConversion = 0; break; case '*': @@ -2562,7 +2573,6 @@ AppendPrintfToObjVA( gotPrecision = 1; p++; break; - /* TODO: support for bignum arguments */ case 'l': ++size; p++; @@ -2590,6 +2600,10 @@ AppendPrintfToObjVA( } p++; break; + case 'L': + size = 3; + p++; + break; case 'h': size = -1; default: |
