From 1a094f5971c7649cb345542b80d165eb59c5dbbf Mon Sep 17 00:00:00 2001 From: Richard Fearn Date: Thu, 5 Feb 2015 11:53:33 +0100 Subject: [PATCH] catools: make `caget -lb` output '0' instead of empty string for zero value --- src/catools/tool_lib.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/catools/tool_lib.c b/src/catools/tool_lib.c index 71b444ccb..6ad1a8b56 100644 --- a/src/catools/tool_lib.c +++ b/src/catools/tool_lib.c @@ -68,17 +68,21 @@ void sprint_long (char *ret, long val, IntFormatT outType) case hex: sprintf(ret, "0x%lX", val); break; case oct: sprintf(ret, "0o%lo", val); break; case bin: - for (i=31; i>=0 ; i--) - { - bit = (val>>i) & 0x1L; - if (skip<0 && bit) + if (val == 0) { + sprintf(ret, "0"); + } else { + for (i=31; i>=0 ; i--) { - skip = 31 - i; /* skip leading 0's */ - ret[i+1] = '\0'; - } - if (skip >= 0) - { - ret[31-i-skip] = (bit) ? '1' : '0'; + bit = (val>>i) & 0x1L; + if (skip<0 && bit) + { + skip = 31 - i; /* skip leading 0's */ + ret[i+1] = '\0'; + } + if (skip >= 0) + { + ret[31-i-skip] = (bit) ? '1' : '0'; + } } } break;