bool useless(int32_t val, char *b, size_t bl, char **nl) { uint32_t c,i,msk; bool ret; c = 0; msk = 1000000000; if (val == 0) { b[c++] = '0'; ret = true; } else { if (val < 0) { b[c++] = '-'; val *= -1; } while (get_cypher(val, msk) == 0 && msk > 0) { msk /= 10; } bl--; while (c < bl && msk > 0) { b[c++] = '0' + get_cypher(val, msk); msk /= 10; } ret = (msk == 0); } *nl = b + (c <= bl ? c : bl); *nl[0] = 0; return ret; }