diff options
author | Sebastian Rasmussen <sebras@gmail.com> | 2017-08-08 02:06:48 +0800 |
---|---|---|
committer | Sebastian Rasmussen <sebras@gmail.com> | 2017-08-15 20:42:16 +0800 |
commit | edfea06688297f3d9268c58c212127a380619936 (patch) | |
tree | 363eb7f7f3603d90d5ff071ac91316968767c077 | |
parent | 0d4bd8ba31515d329dee1532b6c30ff5e74019b3 (diff) | |
download | mupdf-edfea06688297f3d9268c58c212127a380619936.tar.xz |
Place space/zero padding correctly before/after sign.
-rw-r--r-- | source/fitz/printf.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/source/fitz/printf.c b/source/fitz/printf.c index 30cf85fb..3fe8c7e4 100644 --- a/source/fitz/printf.c +++ b/source/fitz/printf.c @@ -93,10 +93,16 @@ static void fmtuint32(struct fmtbuf *out, unsigned int a, int s, int z, int w, i buf[i++] = fz_hex_digits[a % base]; a /= base; } - while (i < w) - buf[i++] = z; + if (z == '0') + while (i < w - !!s) + buf[i++] = z; if (s) buf[i++] = s; + while (i < w) + buf[i++] = z; + if (z == ' ') + while (i < w) + buf[i++] = z; while (i > 0) fmtputc(out, buf[--i]); } @@ -113,10 +119,19 @@ static void fmtuint64(struct fmtbuf *out, uint64_t a, int s, int z, int w, int b buf[i++] = fz_hex_digits[a % base]; a /= base; } - while (i < w) - buf[i++] = z; + if (z == '0') + while (i < w - !!s) + buf[i++] = z; if (s) + { buf[i++] = s; + w += 1; + } + while (i < w) + buf[i++] = z; + if (z == ' ') + while (i < w) + buf[i++] = z; while (i > 0) fmtputc(out, buf[--i]); } |