87039bf2834d213b4fdef852e4f75567d4af538b kent Tue May 14 07:04:07 2013 -0700 Making sprintLongWithCommas work up to the trillions. diff --git src/lib/obscure.c src/lib/obscure.c index 6621c8e..8b4fe94 100644 --- src/lib/obscure.c +++ src/lib/obscure.c @@ -520,32 +520,44 @@ } slReverse(&list); return list; } struct slName *commaSepToSlNames(char *commaSep) /* Convert comma-separated list of items to slName list. */ { return charSepToSlNames(commaSep, ','); } void sprintLongWithCommas(char *s, long long l) /* Print out a long number with commas a thousands, millions, etc. */ { -long long billions, millions, thousands; -if (l >= 1000000000) +long long trillions, billions, millions, thousands; +if (l >= 1000000000000L) + { + trillions = l/1000000000000LL; + l -= trillions * 1000000000000; + billions = l/1000000000; + l -= billions * 1000000000; + millions = l/1000000; + l -= millions * 1000000; + thousands = l/1000; + l -= thousands * 1000; + sprintf(s, "%lld,%03lld,%03lld,%03lld,%03lld", trillions, billions, millions, thousands, l); + } +else if (l >= 1000000000) { billions = l/1000000000; l -= billions * 1000000000; millions = l/1000000; l -= millions * 1000000; thousands = l/1000; l -= thousands * 1000; sprintf(s, "%lld,%03lld,%03lld,%03lld", billions, millions, thousands, l); } else if (l >= 1000000) { millions = l/1000000; l -= millions * (long long)1000000; thousands = l/1000; l -= thousands * 1000;