vsnprintf.c File Reference

#include <sys/types.h>
#include <varargs.h>
#include <stddef.h>
#include <math.h>
#include <float.h>

Go to the source code of this file.

Data Structures

struct  __sbuf
struct  __sFILE
struct  __siov
struct  __suio

Defines

#define u_long   unsigned long
#define u_short   unsigned short
#define u_int   unsigned int
#define __P(x)   ()
#define const
#define _BSD_VA_LIST_   va_list
#define LONG_MAX   2147483647
#define NULL   0
#define UNINITIALIZED_VAR(x)   x
#define __SLBF   0x0001
#define __SNBF   0x0002
#define __SRD   0x0004
#define __SWR   0x0008
#define __SRW   0x0010
#define __SEOF   0x0020
#define __SERR   0x0040
#define __SMBF   0x0080
#define __SAPP   0x0100
#define __SSTR   0x0200
#define __SOPT   0x0400
#define __SNPT   0x0800
#define __SOFF   0x1000
#define __SMOD   0x2000
#define EOF   (-1)
#define BSD__sfeof(p)   (((p)->_flags & __SEOF) != 0)
#define BSD__sferror(p)   (((p)->_flags & __SERR) != 0)
#define BSD__sclearerr(p)   ((void)((p)->_flags &= ~(__SERR|__SEOF)))
#define BSD__sfileno(p)   ((p)->_file)
#define feof(p)   BSD__sfeof(p)
#define ferror(p)   BSD__sferror(p)
#define clearerr(p)   BSD__sclearerr(p)
#define fileno(p)   BSD__sfileno(p)
#define MIN(a, b)   ((a) < (b) ? (a) : (b))
#define COPY(n)   (void)memcpy((void *)fp->_p, (void *)p, (size_t)(n))
#define GETIOV(extra_work)
#define to_digit(c)   ((c) - '0')
#define is_digit(c)   ((unsigned)to_digit(c) <= 9)
#define to_char(n)   (char)((n) + '0')
#define BUF   68
#define ALT   0x001
#define HEXPREFIX   0x002
#define LADJUST   0x004
#define LONGDBL   0x008
#define LONGINT   0x010
#define SHORTINT   0x040
#define ZEROPAD   0x080
#define FPT   0x100
#define NIOV   8
#define PADSIZE   16
#define PRINT(ptr, len)
#define PAD(howmany, with)
#define PAD_L(howmany, with)   PAD((howmany), (with))
#define FLUSH()
#define SARG()
#define UARG()
#define INTPTR_MASK   (LONGINT|SHORTINT)
#define INTPTR_FLAG   LONGINT

Typedefs

typedef __sFILE FILE

Functions

static int BSD__sfvwrite (register FILE *fp, register struct __suio *uio)
static int BSD__sprint (FILE *fp, register struct __suio *uio)
static int BSD__sbprintf (register FILE *fp, const char *fmt, va_list ap)
static char * BSD__ultoa (register u_long val, char *endp, int base, int octzero, const char *xdigs)
static ssize_t BSD_vfprintf (FILE *fp, const char *fmt0, va_list ap)
int ruby_vsnprintf (char *str, size_t n, const char *fmt, va_list ap)
int ruby_snprintf (char *str, size_t n, char const *fmt,...)


Define Documentation

#define __P (  )     ()

Definition at line 81 of file vsnprintf.c.

#define __SAPP   0x0100

Definition at line 199 of file vsnprintf.c.

#define __SEOF   0x0020

Definition at line 196 of file vsnprintf.c.

#define __SERR   0x0040

Definition at line 197 of file vsnprintf.c.

#define __SLBF   0x0001

Definition at line 190 of file vsnprintf.c.

Referenced by BSD__sfvwrite().

#define __SMBF   0x0080

Definition at line 198 of file vsnprintf.c.

#define __SMOD   0x2000

Definition at line 204 of file vsnprintf.c.

#define __SNBF   0x0002

Definition at line 191 of file vsnprintf.c.

Referenced by BSD__sfvwrite(), and BSD_vfprintf().

#define __SNPT   0x0800

Definition at line 202 of file vsnprintf.c.

#define __SOFF   0x1000

Definition at line 203 of file vsnprintf.c.

#define __SOPT   0x0400

Definition at line 201 of file vsnprintf.c.

#define __SRD   0x0004

Definition at line 192 of file vsnprintf.c.

#define __SRW   0x0010

Definition at line 195 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define __SSTR   0x0200

Definition at line 200 of file vsnprintf.c.

Referenced by BSD__sfvwrite(), rb_enc_vsprintf(), rb_str_vcatf(), ruby_snprintf(), and ruby_vsnprintf().

#define __SWR   0x0008

Definition at line 193 of file vsnprintf.c.

Referenced by BSD_vfprintf(), rb_enc_vsprintf(), rb_str_vcatf(), ruby_snprintf(), and ruby_vsnprintf().

#define _BSD_VA_LIST_   va_list

Definition at line 88 of file vsnprintf.c.

#define ALT   0x001

Definition at line 523 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define BSD__sclearerr (  )     ((void)((p)->_flags &= ~(__SERR|__SEOF)))

Definition at line 212 of file vsnprintf.c.

#define BSD__sfeof (  )     (((p)->_flags & __SEOF) != 0)

Definition at line 210 of file vsnprintf.c.

#define BSD__sferror (  )     (((p)->_flags & __SERR) != 0)

Definition at line 211 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define BSD__sfileno (  )     ((p)->_file)

Definition at line 213 of file vsnprintf.c.

#define BUF   68

Definition at line 515 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define clearerr (  )     BSD__sclearerr(p)

Definition at line 220 of file vsnprintf.c.

Referenced by rb_w32_getc().

#define const

Definition at line 83 of file vsnprintf.c.

#define COPY (  )     (void)memcpy((void *)fp->_p, (void *)p, (size_t)(n))

#define EOF   (-1)

Definition at line 207 of file vsnprintf.c.

Referenced by appendline(), BSD_vfprintf(), e_iconv(), e_oconv(), eol_conv(), fold_conv(), h_conv(), j_oconv(), kanji_convert(), mime_begin(), mime_begin_strict(), mime_getc(), mime_integrity(), mime_prechar(), mime_putc(), nfc_getc(), nkf_iconv_utf_16(), nkf_iconv_utf_32(), noconvert(), parser_prepare(), print_guessed_code(), push_hold_buf(), qpencode(), rb_io_getline_1(), rb_w32_getc(), ruby_snprintf(), ruby_vsnprintf(), s_iconv(), s_oconv(), std_putc(), w_iconv(), w_oconv(), w_oconv16(), w_oconv32(), and z_conv().

#define feof (  )     BSD__sfeof(p)

Definition at line 218 of file vsnprintf.c.

Referenced by rb_vm_bugreport().

#define ferror (  )     BSD__sferror(p)

Definition at line 219 of file vsnprintf.c.

Referenced by yaml_file_read_handler().

#define fileno (  )     BSD__sfileno(p)

Definition at line 223 of file vsnprintf.c.

Referenced by init_stdhandle(), main(), ossl_pkey_new_from_file(), ossl_x509_new_from_file(), pipe_open(), prep_stdio(), rb_io_initialize(), rb_io_reopen(), rb_read_check(), rb_w32_fclose(), and rb_w32_write().

 
#define FLUSH (  ) 

Value:

{ \
        if (uio.uio_resid && BSD__sprint(fp, &uio)) \
                goto error; \
        uio.uio_iovcnt = 0; \
        iovp = iov; \
}

#define FPT   0x100

Definition at line 535 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define GETIOV ( extra_work   ) 

Value:

while (len == 0) { \
                extra_work; \
                p = iov->iov_base; \
                len = iov->iov_len; \
                iov++; \
        }

Referenced by BSD__sfvwrite().

#define HEXPREFIX   0x002

Definition at line 524 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define INTPTR_FLAG   LONGINT

Referenced by BSD_vfprintf().

#define INTPTR_MASK   (LONGINT|SHORTINT)

Referenced by BSD_vfprintf().

#define is_digit (  )     ((unsigned)to_digit(c) <= 9)

Definition at line 357 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define LADJUST   0x004

Definition at line 525 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define LONG_MAX   2147483647

Definition at line 99 of file vsnprintf.c.

#define LONGDBL   0x008

Definition at line 526 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define LONGINT   0x010

Definition at line 527 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define MIN ( a,
 )     ((a) < (b) ? (a) : (b))

#define NIOV   8

#define NULL   0

Definition at line 123 of file vsnprintf.c.

#define PAD ( howmany,
with   ) 

Value:

{ \
        if ((n = (howmany)) > 0) { \
                while (n > PADSIZE) { \
                        PRINT((with), PADSIZE); \
                        n -= PADSIZE; \
                } \
                PRINT((with), n); \
        } \
}

Referenced by BSD_vfprintf().

#define PAD_L ( howmany,
with   )     PAD((howmany), (with))

Referenced by BSD_vfprintf().

#define PADSIZE   16

Referenced by BSD_vfprintf().

#define PRINT ( ptr,
len   ) 

Value:

{ \
        iovp->iov_base = (ptr); \
        iovp->iov_len = (len); \
        uio.uio_resid += (len); \
        iovp++; \
        if (++uio.uio_iovcnt >= NIOV) { \
                if (BSD__sprint(fp, &uio)) \
                        goto error; \
                iovp = iov; \
        } \
}

 
#define SARG (  ) 

Value:

(flags&LONGINT ? va_arg(ap, long) : \
            flags&SHORTINT ? (long)(short)va_arg(ap, int) : \
            (long)va_arg(ap, int))

Referenced by BSD_vfprintf().

#define SHORTINT   0x040

Definition at line 533 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define to_char (  )     (char)((n) + '0')

Definition at line 358 of file vsnprintf.c.

Referenced by BSD__ultoa().

#define to_digit (  )     ((c) - '0')

Definition at line 356 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define u_int   unsigned int

Definition at line 66 of file vsnprintf.c.

#define u_long   unsigned long

Definition at line 64 of file vsnprintf.c.

Referenced by BSD_vfprintf(), getnameinfo(), and setfl().

#define u_short   unsigned short

Definition at line 65 of file vsnprintf.c.

Referenced by get_addr(), get_name(), getaddrinfo(), and getnameinfo().

 
#define UARG (  ) 

Value:

(flags&LONGINT ? va_arg(ap, u_long) : \
            flags&SHORTINT ? (u_long)(u_short)va_arg(ap, int) : \
            (u_long)va_arg(ap, u_int))

Referenced by BSD_vfprintf().

#define UNINITIALIZED_VAR (  )     x

Definition at line 133 of file vsnprintf.c.

#define ZEROPAD   0x080

Definition at line 534 of file vsnprintf.c.

Referenced by BSD_vfprintf().


Typedef Documentation

typedef struct __sFILE FILE


Function Documentation

static int BSD__sbprintf ( register FILE fp,
const char *  fmt,
va_list  ap 
) [static]

Definition at line 346 of file vsnprintf.c.

Referenced by BSD_vfprintf().

static int BSD__sfvwrite ( register FILE fp,
register struct __suio uio 
) [static]

Definition at line 247 of file vsnprintf.c.

References __SLBF, __SNBF, __SSTR, COPY, GETIOV, if(), __siov::iov_base, __siov::iov_len, and len.

Referenced by ruby_snprintf(), and ruby_vsnprintf().

static int BSD__sprint ( FILE fp,
register struct __suio uio 
) [static]

Definition at line 325 of file vsnprintf.c.

References err, and __sFILE::vwrite.

static char* BSD__ultoa ( register u_long  val,
char *  endp,
int  base,
int  octzero,
const char *  xdigs 
) [static]

Definition at line 433 of file vsnprintf.c.

References LONG_MAX, and to_char.

Referenced by BSD_vfprintf().

static ssize_t BSD_vfprintf ( FILE fp,
const char *  fmt0,
va_list  ap 
) [static]

Definition at line 537 of file vsnprintf.c.

References __SNBF, __SRW, __SWR, __sFILE::_file, __sFILE::_flags, ALT, BSD__sbprintf(), BSD__sferror, BSD__ultoa(), BUF, buf, CHAR_BIT, EOF, FLUSH, FPT, HEXPREFIX, INTPTR_FLAG, INTPTR_MASK, is_digit, isinf(), isnan, LADJUST, LONGDBL, LONGINT, NULL, PAD, PAD_L, PADSIZE, PRINT, SARG, SHORTINT, size, strlen(), to_digit, u_long, UARG, __suio::uio_iov, __suio::uio_iovcnt, __suio::uio_resid, UNINITIALIZED_VAR, __sFILE::vextra, and ZEROPAD.

Referenced by rb_enc_vsprintf(), rb_str_vcatf(), ruby_snprintf(), and ruby_vsnprintf().

int ruby_snprintf ( char *  str,
size_t  n,
char const *  fmt,
  ... 
)

Definition at line 1320 of file vsnprintf.c.

References __SSTR, __SWR, __sbuf::_base, __sFILE::_bf, __sFILE::_flags, __sFILE::_p, __sbuf::_size, __sFILE::_w, BSD__sfvwrite(), BSD_vfprintf(), EOF, f, __sFILE::vextra, and __sFILE::vwrite.

int ruby_vsnprintf ( char *  str,
size_t  n,
const char *  fmt,
va_list  ap 
)

Definition at line 1302 of file vsnprintf.c.

References __SSTR, __SWR, __sbuf::_base, __sFILE::_bf, __sFILE::_flags, __sFILE::_p, __sbuf::_size, __sFILE::_w, BSD__sfvwrite(), BSD_vfprintf(), EOF, f, __sFILE::vextra, and __sFILE::vwrite.


Generated on 19 Jul 2016 for Ruby by  doxygen 1.4.7