X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;ds=inline;f=src%2Fvppinfra%2Fformat.c;h=cf17b8a1acbcdffaf23b4874310c45b06e7e1929;hb=6bd6c80f27c708f72aef1d850e48deaef832477e;hp=70292c048ec88c289cc4b8279c162dd70ce171dd;hpb=bb18ee6f1c7c172d30cb0c98153499af571777ee;p=vpp.git diff --git a/src/vppinfra/format.c b/src/vppinfra/format.c index 70292c048ec..cf17b8a1acb 100644 --- a/src/vppinfra/format.c +++ b/src/vppinfra/format.c @@ -114,7 +114,7 @@ justify (u8 * s, format_info_t * fi, uword s_len_orig) l0 = l1; if (l1 > l0) - _vec_len (s) = l0; + vec_set_len (s, l0); else if (l0 > l1) { uword n = l0 - l1; @@ -139,13 +139,13 @@ justify (u8 * s, format_info_t * fi, uword s_len_orig) if (n_left > 0) { vec_insert (s, n_left, i0); - memset (s + i0, fi->pad_char, n_left); + clib_memset (s + i0, fi->pad_char, n_left); l1 = vec_len (s); } if (n_right > 0) { vec_resize (s, n_right); - memset (s + l1, fi->pad_char, n_right); + clib_memset (s + l1, fi->pad_char, n_right); } } return s; @@ -278,6 +278,7 @@ do_percent (u8 ** _s, const u8 * fmt, va_list * va) case 'x': case 'X': case 'u': + case 'o': case 'd': { u64 number; @@ -311,6 +312,9 @@ do_percent (u8 ** _s, const u8 * fmt, va_list * va) break; } + if (c == 'o') + o.base = 8; + s = format_integer (s, number, &o); } break; @@ -383,7 +387,7 @@ done: return f; } -u8 * +__clib_export u8 * va_format (u8 * s, const char *fmt, va_list * va) { const u8 *f = (u8 *) fmt, *g; @@ -412,20 +416,29 @@ va_format (u8 * s, const char *fmt, va_list * va) if (f > g) vec_add (s, g, f - g); +#ifdef __COVERITY__ + if (s == 0) + return (u8 *) "liar liar pants on fire s can't be zero!"; +#endif + return s; } -u8 * +__clib_export u8 * format (u8 * s, const char *fmt, ...) { va_list va; va_start (va, fmt); s = va_format (s, fmt, &va); va_end (va); +#ifdef __COVERITY__ + if (s == 0) + return (u8 *) "liar liar pants on fire s can't be zero!"; +#endif return s; } -word +__clib_export word va_fformat (FILE * f, char *fmt, va_list * va) { word ret; @@ -449,7 +462,7 @@ va_fformat (FILE * f, char *fmt, va_list * va) return ret; } -word +__clib_export word fformat (FILE * f, char *fmt, ...) { va_list va; @@ -463,7 +476,18 @@ fformat (FILE * f, char *fmt, ...) } #ifdef CLIB_UNIX -word +__clib_export void +fformat_append_cr (FILE * ofp, const char *fmt, ...) +{ + va_list va; + + va_start (va, fmt); + (void) va_fformat (ofp, (char *) fmt, &va); + va_end (va); + fformat (ofp, "\n"); +} + +__clib_export word fdformat (int fd, char *fmt, ...) { word ret;