From 8f0beba3cb4fe51c6da693b27d7242a6869ab25e Mon Sep 17 00:00:00 2001 From: "Christopher J. Morrone" Date: Sun, 8 Jan 2012 15:46:43 -0800 Subject: [PATCH] Refactor PPDOuble. Eliminate cut-and-paste. --- src/ior.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/ior.c b/src/ior.c index 7060345..a063e39 100644 --- a/src/ior.c +++ b/src/ior.c @@ -1032,25 +1032,27 @@ static char **ParseFileName(char *name, int *count) */ static void PPDouble(int leftjustify, double number, char *append) { + char format[16]; + int width = 10; + int precision; + if (number < 0) { fprintf(stdout, " - %s", append); - } else { - if (leftjustify) { - if (number < 1) - fprintf(stdout, "%-10.6f%s", number, append); - else if (number < 3600) - fprintf(stdout, "%-10.2f%s", number, append); - else - fprintf(stdout, "%-10.0f%s", number, append); - } else { - if (number < 1) - fprintf(stdout, "%10.6f%s", number, append); - else if (number < 3600) - fprintf(stdout, "%10.2f%s", number, append); - else - fprintf(stdout, "%10.0f%s", number, append); - } + return; } + + if (number < 1) + precision = 6; + else if (number < 3600) + precision = 2; + else + precision = 0; + + sprintf(format, "%%%s%d.%df%%s", + leftjustify ? "-" : "", + width, precision); + + printf(format, number, append); } /*