|
From: <kar...@us...> - 2006-05-22 17:05:22
|
Revision: 1391 Author: karstenw Date: 2006-05-22 10:05:05 -0700 (Mon, 22 May 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1391&view=rev Log Message: ----------- added comments for easier navigation. When working on Int64, search for LONGINT_LONGDATE; this gives a list of all involved sections. active section: #if LONGINT_LONGDATE == 1 deactivated section #if LONGINT_LONGDATE == 999 There are currently 3 types of comments accompanying the #if LONGINT_LONGDATE part: full function definitions #if LONGINT_LONGDATE == 1 //longlonginttostring() & stringtolonglongint() function modifications #if LONGINT_LONGDATE == 1 // in lanpipcpushparam() temporary modifications that go away after testing #if LONGINT_LONGDATE == 1 // delete me after debugging Modified Paths: -------------- Frontier/branches/Int64/Common/SystemHeaders/land.h Frontier/branches/Int64/Common/headers/lang.h Frontier/branches/Int64/Common/headers/ops.h Frontier/branches/Int64/Common/headers/stringdefs.h Frontier/branches/Int64/Common/headers/strings.h Frontier/branches/Int64/Common/source/langexternal.c Frontier/branches/Int64/Common/source/langhash.c Frontier/branches/Int64/Common/source/langipc.c Frontier/branches/Int64/Common/source/langmath.c Frontier/branches/Int64/Common/source/langops.c Frontier/branches/Int64/Common/source/langpack.c Frontier/branches/Int64/Common/source/langscan.c Frontier/branches/Int64/Common/source/langvalue.c Frontier/branches/Int64/Common/source/langverbs.c Frontier/branches/Int64/Common/source/ops.c Frontier/branches/Int64/Common/source/strings.c Modified: Frontier/branches/Int64/Common/SystemHeaders/land.h =================================================================== --- Frontier/branches/Int64/Common/SystemHeaders/land.h 2006-05-20 19:08:43 UTC (rev 1390) +++ Frontier/branches/Int64/Common/SystemHeaders/land.h 2006-05-22 17:05:05 UTC (rev 1391) @@ -171,7 +171,7 @@ objectspectype = cObjectSpecifier /*a Mac object specifier, for Frontier, not fully supported in Toolkit*/ -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // type specifiers ,longlonginttype = 'comp', longdatetimetype = 'ldt ' #endif Modified: Frontier/branches/Int64/Common/headers/lang.h =================================================================== --- Frontier/branches/Int64/Common/headers/lang.h 2006-05-20 19:08:43 UTC (rev 1390) +++ Frontier/branches/Int64/Common/headers/lang.h 2006-05-22 17:05:05 UTC (rev 1391) @@ -282,7 +282,7 @@ #endif /*new types must be added at end of list, these get saved on disk*/ -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // tyvaluetype enum // kw - 2006-01-27 --- new types added longlongintvaluetype, @@ -295,7 +295,7 @@ // kw - 2006-01-27 --- new longlong types -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // typedef tylonglongint # if defined (WIN95VERSION) typedef long long int tylonglongint; # endif @@ -358,7 +358,7 @@ #endif dbaddress diskvalue; /*4.0.2b1 dmb*/ -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // tyvaluedata union // shouldn't this better be a Handle? // on third (as first) thought, NO! // Handle longlongintvalue; @@ -1059,11 +1059,11 @@ extern boolean setlongvalue (long, tyvaluerecord *); -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // additional functions declarations extern boolean setlonglongintvalue (tylonglongint x, tyvaluerecord *val); -extern boolean setlongdatevalue (Handle x, tyvaluerecord *val); +extern boolean setlongdatevalue (tylonglongint x, tyvaluerecord *val); extern boolean coercetolonglong (tyvaluerecord *v); Modified: Frontier/branches/Int64/Common/headers/ops.h =================================================================== --- Frontier/branches/Int64/Common/headers/ops.h 2006-05-20 19:08:43 UTC (rev 1390) +++ Frontier/branches/Int64/Common/headers/ops.h 2006-05-22 17:05:05 UTC (rev 1391) @@ -70,7 +70,7 @@ extern boolean stringtoshort (bigstring, short *); -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // additional functions declarations extern boolean longlonginttostring(tylonglongint theInt, bigstring bs, int radix); extern boolean stringtolonglongint (bigstring bs, tylonglongint *llival); Modified: Frontier/branches/Int64/Common/headers/stringdefs.h =================================================================== --- Frontier/branches/Int64/Common/headers/stringdefs.h 2006-05-20 19:08:43 UTC (rev 1390) +++ Frontier/branches/Int64/Common/headers/stringdefs.h 2006-05-22 17:05:05 UTC (rev 1391) @@ -74,7 +74,7 @@ #define STR_menubar "\x07" "menubar" #define STR_picture BIGSTRING ("\x07" "picture") -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // long type names // kw - 2006-01-30 --- new types added #define STR_longlong BIGSTRING ("\x06" "sint64") #define STR_longdate BIGSTRING ("\x0c" "longdatetime") Modified: Frontier/branches/Int64/Common/headers/strings.h =================================================================== --- Frontier/branches/Int64/Common/headers/strings.h 2006-05-20 19:08:43 UTC (rev 1390) +++ Frontier/branches/Int64/Common/headers/strings.h 2006-05-22 17:05:05 UTC (rev 1391) @@ -246,7 +246,7 @@ extern boolean pullstringsuffix (bigstring, bigstring, unsigned char); /*7.0.2b1 Radio PBS*/ -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // additional functions declarations extern boolean stringreverse (bigstring bs); #endif Modified: Frontier/branches/Int64/Common/source/langexternal.c =================================================================== --- Frontier/branches/Int64/Common/source/langexternal.c 2006-05-20 19:08:43 UTC (rev 1390) +++ Frontier/branches/Int64/Common/source/langexternal.c 2006-05-22 17:05:05 UTC (rev 1391) @@ -2889,7 +2889,7 @@ // kw - 2006-01-30 --- for new int types - these were added at the end // not sure if these need to be externaltypes -#if 0 //LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 999 // in langexternalgetvaluetype() if ( (type < longlongintvaluetype) && (type >= outlinevaluetype)) { Modified: Frontier/branches/Int64/Common/source/langhash.c =================================================================== --- Frontier/branches/Int64/Common/source/langhash.c 2006-05-20 19:08:43 UTC (rev 1390) +++ Frontier/branches/Int64/Common/source/langhash.c 2006-05-22 17:05:05 UTC (rev 1391) @@ -2692,7 +2692,7 @@ break; -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in hashpackvisit() // LONGLONGINTCONSTRUCTIONSITE case longlongintvaluetype: case longdatetimevaluetype: { @@ -3200,7 +3200,7 @@ break; } -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in hashumpacktable() // LONGLONGINTCONSTRUCTIONSITE case longlongintvaluetype: case longdatetimevaluetype: @@ -3680,7 +3680,7 @@ case enumvaluetype: case listvaluetype: case recordvaluetype: -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in hashgetvaluestring() case longlongintvaluetype: #endif @@ -3734,7 +3734,7 @@ break; -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in hashgetvaluestring() // LONGLONGINTCONSTRUCTIONSITE case longdatetimevaluetype: // just for now to get some display @@ -3819,7 +3819,7 @@ break; -#if xxxLONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 999 // in hashgettypestring() // not needed; langgettypestring does the work // think about making it a number; see above int/long // LONGLONGINTCONSTRUCTIONSITE Modified: Frontier/branches/Int64/Common/source/langipc.c =================================================================== --- Frontier/branches/Int64/Common/source/langipc.c 2006-05-20 19:08:43 UTC (rev 1390) +++ Frontier/branches/Int64/Common/source/langipc.c 2006-05-22 17:05:05 UTC (rev 1391) @@ -291,7 +291,7 @@ len = sizeof ((*v).data.longvalue); break; -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in lanpipcpushparam() // LONGLONGINTCONSTRUCTIONSITE // untested // modelled after case binaryvaluetype @@ -583,7 +583,7 @@ case recordvaluetype: #endif -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in langipccoerceparam() // LONGLONGINTCONSTRUCTIONSITE case longlongintvaluetype: case longdatetimevaluetype: @@ -2350,7 +2350,7 @@ break; -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in getbinarylistdesc() // LONGLONGINTCONSTRUCTIONSITE #endif default: Modified: Frontier/branches/Int64/Common/source/langmath.c =================================================================== --- Frontier/branches/Int64/Common/source/langmath.c 2006-05-20 19:08:43 UTC (rev 1390) +++ Frontier/branches/Int64/Common/source/langmath.c 2006-05-22 17:05:05 UTC (rev 1391) @@ -96,18 +96,13 @@ case longvaluetype: return setlongvalue (min (v1.data.longvalue, v2.data.longvalue), v); - -#if LONGINT_LONGDATE == 1 + +#if LONGINT_LONGDATE == 1 // min in mathfunctionvalue() // LONGLONGINTCONSTRUCTIONSITE + /* this should work for both types */ case longlongintvaluetype: case longdatetimevaluetype: - break; -# if defined (WIN95VERSION) - -# endif -# if defined (MACVERSION) - -# endif + return setlonglongintvalue (min (**(v1.data.longlongintvalue), **(v2.data.longlongintvalue)), v); #endif case ostypevaluetype: @@ -191,18 +186,14 @@ case longvaluetype: return setlongvalue (max (v1.data.longvalue, v2.data.longvalue), v); -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // max in mathfunctionvalue() // LONGLONGINTCONSTRUCTIONSITE + /* this should work for both types */ case longlongintvaluetype: case longdatetimevaluetype: - break; -# if defined (WIN95VERSION) - -# endif -# if defined (MACVERSION) - -# endif + return setlonglongintvalue (max (**(v1.data.longlongintvalue), **(v2.data.longlongintvalue)), v); #endif + case ostypevaluetype: return setostypevalue (max (v1.data.longvalue, v2.data.longvalue), v); Modified: Frontier/branches/Int64/Common/source/langops.c =================================================================== --- Frontier/branches/Int64/Common/source/langops.c 2006-05-20 19:08:43 UTC (rev 1390) +++ Frontier/branches/Int64/Common/source/langops.c 2006-05-22 17:05:05 UTC (rev 1391) @@ -159,7 +159,7 @@ /* 37 */ {'pict', STR_picture} -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // type str4, string /* 38 */ ,{'comp', STR_longlong }, /* 39 */ {'ldt ', STR_longdate } @@ -232,7 +232,7 @@ register tyvaluetype type; -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // delete me after debugging // for debugging & profiling only static UInt64 x = 0; x++; @@ -307,7 +307,7 @@ case aliasvaluetype: case doublevaluetype: case binaryvaluetype: -#if xxxx_LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 999 // in langheaptype() // setting this might be wrong // LONGLONGINTCONSTRUCTIONSITE // UNTESTED @@ -928,7 +928,7 @@ case patternvaluetype: case rgbvaluetype: case objspecvaluetype: -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in langgetvalsize() // should be ok - could be made constant - 8 bytes // UNTESTED // LONGLONGINTCONSTRUCTIONSITE Modified: Frontier/branches/Int64/Common/source/langpack.c =================================================================== --- Frontier/branches/Int64/Common/source/langpack.c 2006-05-20 19:08:43 UTC (rev 1390) +++ Frontier/branches/Int64/Common/source/langpack.c 2006-05-22 17:05:05 UTC (rev 1391) @@ -250,7 +250,7 @@ case recordvaluetype: #endif -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in langpackvalue() // UNTESTED // LONGLONGINTCONSTRUCTIONSITE case longlongintvaluetype: Modified: Frontier/branches/Int64/Common/source/langscan.c =================================================================== --- Frontier/branches/Int64/Common/source/langscan.c 2006-05-20 19:08:43 UTC (rev 1390) +++ Frontier/branches/Int64/Common/source/langscan.c 2006-05-22 17:05:05 UTC (rev 1391) @@ -461,7 +461,7 @@ (*val).data.binaryvalue = fx; } else { -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in parsepopnumber() tylonglongint x; #else long x; @@ -469,8 +469,8 @@ bigstring bstest; if (flhex) { -#if LONGINT_LONGDATE == 1 - // 0x + 16 hex chars +#if LONGINT_LONGDATE == 1 // in parsepopnumber() + // "0x" + 16 hex chars if (stringlength (bsnumber) > 18) goto overflow; #else @@ -480,14 +480,14 @@ hexstringtonumber (bsnumber, &x); } else { -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in parsepopnumber() stringtolonglongint (bsnumber, &x); #else stringtonumber (bsnumber, &x); #endif popleadingchars (bsnumber, '0'); -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in parsepopnumber() longlonginttostring (x, bstest, 10); #else numbertostring (x, bstest); @@ -497,29 +497,22 @@ if (!equalstrings (bsnumber, bstest)) goto overflow; - // DELETEME - if (x > 2147483647LL) - { - x = -x; - x = -x; } - } -#if LONGINT_LONGDATE == 1 + +#if LONGINT_LONGDATE == 1 // in parsepopnumber() if ( (x < (tylonglongint)LONG_MAX) && (x > (tylonglongint)LONG_MIN)) { - long lx = (long)x; - setlongvalue (lx, val); - } - else - { + setlongvalue ((long)x, val); + } + else { setlonglongintvalue (x, val); - } + } #else setlongvalue (x, val); #endif } - + #ifdef fldebug copystring (bsnumber, bstoken); /*for debugging*/ Modified: Frontier/branches/Int64/Common/source/langvalue.c =================================================================== --- Frontier/branches/Int64/Common/source/langvalue.c 2006-05-20 19:08:43 UTC (rev 1390) +++ Frontier/branches/Int64/Common/source/langvalue.c 2006-05-22 17:05:05 UTC (rev 1391) @@ -231,14 +231,14 @@ } /*setlongvalue*/ -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // setlonglongintvalue() & setlongdatevalue() boolean setlonglongintvalue (tylonglongint x, tyvaluerecord *val) { /* modelled after setdoublevalue() set val to be a the long long value x. - turn val into a double value, allocated in the heap. + turn val into a long long int value, allocated in the heap. the handle is recorded in the tmpstack so that it gets deallocated. */ @@ -248,13 +248,18 @@ } /* setlonglongintvalue */ -boolean setlongdatevalue (Handle x, tyvaluerecord *val) { - // set val to be a the long date value x. +boolean setlongdatevalue (tylonglongint x, tyvaluerecord *val) { + /* + modelled after setdoublevalue() - if (x == nil) - newclearhandle(sizeof(tylonglongint), &x); + set val to be a the long date value x. - return(setheapvalue(x, longdatetimevaluetype, val)); + turn val into a long long int value, allocated in the heap. + + the handle is recorded in the tmpstack so that it gets deallocated. + */ + + return(newheapvalue(&x, sizeof(x), longdatetimevaluetype, val)); } /* setlongdatevalue */ #endif @@ -940,7 +945,7 @@ case aliasvaluetype: case doublevaluetype: case binaryvaluetype: -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in copyvaluerecord() // LONGLONGINTCONSTRUCTIONSITE // UNTESTED case longlongintvaluetype: @@ -1047,7 +1052,7 @@ case aliasvaluetype: case doublevaluetype: case binaryvaluetype: -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in disposevaluerecord() // LONGLONGINTCONSTRUCTIONSITE // UNTESTED case longlongintvaluetype: @@ -2025,7 +2030,7 @@ break; -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in coercetoboolean() // UNTESTED // LONGLONGINTCONSTRUCTIONSITE case longlongintvaluetype: @@ -2107,7 +2112,7 @@ } /*longrangeerror*/ -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // longlongrangeerror() static boolean longlongrangeerror (double f) { bigstring bs; @@ -2211,7 +2216,7 @@ break; -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in coercetolong() // UNTESTED // LONGLONGINTCONSTRUCTIONSITE case longlongintvaluetype: @@ -2272,7 +2277,7 @@ } /*coercetolong*/ -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // coercetolonglong() & coercetolongdate() boolean coercetolonglong (tyvaluerecord *v) { /* @@ -2472,7 +2477,7 @@ return (false); } /*switch*/ - setdatevalue (x, v); + setlongdatevalue (x, v); return (true); } /* coercetolongdate */ @@ -3521,7 +3526,7 @@ case longvaluetype: { -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // delete me after debugging // debugging and call stats static UInt32 ncalls = 0; ncalls++; @@ -3529,7 +3534,7 @@ numbertostring ((*v).data.longvalue, bs); } break; -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in coercetostring() case longlongintvaluetype: longlonginttostring(**(*v).data.longlongintvalue, bs, 10); @@ -3869,7 +3874,7 @@ case longvaluetype: return (coercetolong (v)); -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in coercevalue() case longlongintvaluetype: return (coercetolonglong(v)); @@ -3996,7 +4001,7 @@ case doublevaluetype: return (7); -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in coercionweight() // 2006-05-09 - kw --- this is my first & fast guess where these should sort in // UNTESTED // LONGLONGINTCONSTRUCTIONSITE @@ -5197,7 +5202,7 @@ } /*getlongparam*/ -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // getlonglongintparam() boolean getlonglongintparam( hdltreenode hfirst, @@ -6790,7 +6795,7 @@ break; } -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in addvalue() // UNTESTED // LONGLONGINTCONSTRUCTIONSITE case longlongintvaluetype: @@ -6962,7 +6967,7 @@ case filespecvaluetype: return (filespecsubtractvalue (&v1, &v2, vreturned)); -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in subtractvalue() // UNTESTED // LONGLONGINTCONSTRUCTIONSITE case longlongintvaluetype: @@ -7057,7 +7062,7 @@ break; -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in multiplyvalue() // UNTESTED // LONGLONGINTCONSTRUCTIONSITE case longlongintvaluetype: @@ -7135,7 +7140,7 @@ break; -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in nonzerovalue() // UNTESTED // LONGLONGINTCONSTRUCTIONSITE case longlongintvaluetype: @@ -7221,7 +7226,7 @@ break; -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in dividevalue() // UNTESTED // LONGLONGINTCONSTRUCTIONSITE case longlongintvaluetype: @@ -7305,7 +7310,7 @@ break; -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in modvalue() // UNTESTED // LONGLONGINTCONSTRUCTIONSITE case longlongintvaluetype: @@ -7441,7 +7446,7 @@ break; -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in EQvalue() // UNTESTED // LONGLONGINTCONSTRUCTIONSITE case longlongintvaluetype: @@ -7547,7 +7552,7 @@ break; -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in GTValue() // UNTESTED // LONGLONGINTCONSTRUCTIONSITE case longlongintvaluetype: @@ -7653,7 +7658,7 @@ break; -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in LTvalue() // UNTESTED // LONGLONGINTCONSTRUCTIONSITE case longlongintvaluetype: @@ -7861,7 +7866,7 @@ break; -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // in unaryminusvalue() // UNTESTED // LONGLONGINTCONSTRUCTIONSITE case longlongintvaluetype: Modified: Frontier/branches/Int64/Common/source/langverbs.c =================================================================== --- Frontier/branches/Int64/Common/source/langverbs.c 2006-05-20 19:08:43 UTC (rev 1390) +++ Frontier/branches/Int64/Common/source/langverbs.c 2006-05-22 17:05:05 UTC (rev 1391) @@ -863,7 +863,7 @@ type = langgetvaluetype (typeid); if ((type >= outlinevaluetype) && (type <= pictvaluetype)) { -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // delete me after debugging // kw - 2006-01-30 debugging aids int x = type; if ((type == 38) || (type == 39)) Modified: Frontier/branches/Int64/Common/source/ops.c =================================================================== --- Frontier/branches/Int64/Common/source/ops.c 2006-05-20 19:08:43 UTC (rev 1390) +++ Frontier/branches/Int64/Common/source/ops.c 2006-05-22 17:05:05 UTC (rev 1391) @@ -259,7 +259,7 @@ } /*numbertostring*/ -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 //longlonginttostring() & stringtolonglongint() boolean longlonginttostring( tylonglongint theInt, Modified: Frontier/branches/Int64/Common/source/strings.c =================================================================== --- Frontier/branches/Int64/Common/source/strings.c 2006-05-20 19:08:43 UTC (rev 1390) +++ Frontier/branches/Int64/Common/source/strings.c 2006-05-22 17:05:05 UTC (rev 1391) @@ -2815,7 +2815,7 @@ return (fl); } /*pullsuffix*/ -#if LONGINT_LONGDATE == 1 +#if LONGINT_LONGDATE == 1 // stringreverse() boolean stringreverse (bigstring bs) { // 2006-03-17 - kw --- initial write; needed for longlonginttostring This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |