vppinfra: Add missing %o
[vpp.git] / src / vppinfra / format.c
index 072ff3b..ccd999e 100644 (file)
@@ -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,10 +416,15 @@ 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;
@@ -429,7 +438,7 @@ format (u8 * s, const char *fmt, ...)
   return s;
 }
 
-word
+__clib_export word
 va_fformat (FILE * f, char *fmt, va_list * va)
 {
   word ret;
@@ -453,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;
@@ -467,7 +476,7 @@ fformat (FILE * f, char *fmt, ...)
 }
 
 #ifdef CLIB_UNIX
-void
+__clib_export void
 fformat_append_cr (FILE * ofp, const char *fmt, ...)
 {
   va_list va;
@@ -478,7 +487,7 @@ fformat_append_cr (FILE * ofp, const char *fmt, ...)
   fformat (ofp, "\n");
 }
 
-word
+__clib_export word
 fdformat (int fd, char *fmt, ...)
 {
   word ret;