root/tools/lib/vsprintf.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. vscnprintf
  2. scnprintf
  3. scnprintf_pad

   1 // SPDX-License-Identifier: GPL-2.0
   2 #include <sys/types.h>
   3 #include <linux/kernel.h>
   4 #include <stdio.h>
   5 
   6 int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
   7 {
   8        int i = vsnprintf(buf, size, fmt, args);
   9        ssize_t ssize = size;
  10 
  11        return (i >= ssize) ? (ssize - 1) : i;
  12 }
  13 
  14 int scnprintf(char * buf, size_t size, const char * fmt, ...)
  15 {
  16        ssize_t ssize = size;
  17        va_list args;
  18        int i;
  19 
  20        va_start(args, fmt);
  21        i = vsnprintf(buf, size, fmt, args);
  22        va_end(args);
  23 
  24        return (i >= ssize) ? (ssize - 1) : i;
  25 }
  26 
  27 int scnprintf_pad(char * buf, size_t size, const char * fmt, ...)
  28 {
  29         ssize_t ssize = size;
  30         va_list args;
  31         int i;
  32 
  33         va_start(args, fmt);
  34         i = vscnprintf(buf, size, fmt, args);
  35         va_end(args);
  36 
  37         if (i < (int) size) {
  38                 for (; i < (int) size; i++)
  39                         buf[i] = ' ';
  40                 buf[i] = 0x0;
  41         }
  42 
  43         return (i >= ssize) ? (ssize - 1) : i;
  44 }

/* [<][>][^][v][top][bottom][index][help] */