Ruby 1.9.3p327(2012-11-10revision37606)
Data Structures | Defines | Typedefs | Functions
vsnprintf.c File Reference
#include <sys/types.h>
#include <varargs.h>
#include <stddef.h>
Include dependency graph for vsnprintf.c:
This graph shows which files directly or indirectly include this file:

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 __sfeof(p)   (((p)->_flags & __SEOF) != 0)
#define __sferror(p)   (((p)->_flags & __SERR) != 0)
#define __sclearerr(p)   ((void)((p)->_flags &= ~(__SERR|__SEOF)))
#define __sfileno(p)   ((p)->_file)
#define feof(p)   __sfeof(p)
#define ferror(p)   __sferror(p)
#define clearerr(p)   __sclearerr(p)
#define fileno(p)   __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()

Typedefs

typedef struct __sFILE FILE

Functions

static int BSD__sfvwrite (FILE *fp, 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 (   x)    ()

Definition at line 81 of file vsnprintf.c.

#define __SAPP   0x0100

Definition at line 198 of file vsnprintf.c.

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

Definition at line 211 of file vsnprintf.c.

#define __SEOF   0x0020

Definition at line 195 of file vsnprintf.c.

#define __SERR   0x0040

Definition at line 196 of file vsnprintf.c.

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

Definition at line 209 of file vsnprintf.c.

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

Definition at line 210 of file vsnprintf.c.

Referenced by BSD_vfprintf().

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

Definition at line 212 of file vsnprintf.c.

#define __SLBF   0x0001

Definition at line 189 of file vsnprintf.c.

Referenced by BSD__sfvwrite().

#define __SMBF   0x0080

Definition at line 197 of file vsnprintf.c.

#define __SMOD   0x2000

Definition at line 203 of file vsnprintf.c.

#define __SNBF   0x0002

Definition at line 190 of file vsnprintf.c.

Referenced by BSD__sfvwrite(), and BSD_vfprintf().

#define __SNPT   0x0800

Definition at line 201 of file vsnprintf.c.

#define __SOFF   0x1000

Definition at line 202 of file vsnprintf.c.

#define __SOPT   0x0400

Definition at line 200 of file vsnprintf.c.

#define __SRD   0x0004

Definition at line 191 of file vsnprintf.c.

#define __SRW   0x0010

Definition at line 194 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define __SSTR   0x0200
#define __SWR   0x0008
#define _BSD_VA_LIST_   va_list

Definition at line 88 of file vsnprintf.c.

#define ALT   0x001

Definition at line 518 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define BUF   68

Definition at line 510 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define clearerr (   p)    __sclearerr(p)

Definition at line 219 of file vsnprintf.c.

Referenced by rb_w32_getc().

#define const

Definition at line 83 of file vsnprintf.c.

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

Referenced by BSD__sfvwrite().

#define EOF   (-1)
#define feof (   p)    __sfeof(p)

Definition at line 217 of file vsnprintf.c.

Referenced by rb_vm_bugreport().

#define ferror (   p)    __sferror(p)

Definition at line 218 of file vsnprintf.c.

#define fileno (   p)    __sfileno(p)
#define FLUSH ( )
Value:
{ \
        if (uio.uio_resid && BSD__sprint(fp, &uio)) \
                goto error; \
        uio.uio_iovcnt = 0; \
        iovp = iov; \
}

Referenced by BSD_vfprintf().

#define FPT   0x100

Definition at line 530 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 519 of file vsnprintf.c.

Referenced by BSD_vfprintf().

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

Definition at line 357 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define LADJUST   0x004

Definition at line 520 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define LONG_MAX   2147483647

Definition at line 99 of file vsnprintf.c.

Referenced by BSD__ultoa().

#define LONGDBL   0x008

Definition at line 521 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define LONGINT   0x010

Definition at line 522 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.

Referenced by BSD_vfprintf().

#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 528 of file vsnprintf.c.

Referenced by BSD_vfprintf().

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

Definition at line 358 of file vsnprintf.c.

Referenced by BSD__ultoa().

#define to_digit (   c)    ((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(), fcntl(), getaddrinfo(), and getnameinfo().

#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)    x

Definition at line 133 of file vsnprintf.c.

Referenced by BSD_vfprintf().

#define ZEROPAD   0x080

Definition at line 529 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 ( FILE fp,
struct __suio uio 
) [static]

Definition at line 245 of file vsnprintf.c.

References __SLBF, __SNBF, __SSTR, COPY, GETIOV, __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, __suio::uio_iovcnt, __suio::uio_resid, 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]
int ruby_snprintf ( char *  str,
size_t  n,
char const *  fmt,
  ... 
)
int ruby_vsnprintf ( char *  str,
size_t  n,
const char *  fmt,
va_list  ap 
)