Postfix3.3.1
データ構造 | マクロ定義 | 型定義 | 関数
vstring.h ファイル
#include <stdarg.h>
#include <vbuf.h>
#include <check_arg.h>

[ソースコード]

データ構造

struct  VSTRING
 

マクロ定義

#define VSTRING_CTL_MAXLEN   1
 
#define VSTRING_CTL_EXACT   2
 
#define VSTRING_CTL_END   0
 
#define CA_VSTRING_CTL_END   VSTRING_CTL_END
 
#define CA_VSTRING_CTL_EXACT   VSTRING_CTL_EXACT
 
#define CA_VSTRING_CTL_MAXLEN(val)   VSTRING_CTL_MAXLEN, CHECK_VAL(VSTRING_CTL, ssize_t, (val))
 
#define VSTRING_FLAG_EXACT   (1<<8) /* exact allocation for tests */
 
#define VSTRING_SPACE(vp, len)   ((vp)->vbuf.space(&(vp)->vbuf, (len)))
 
#define vstring_str(vp)   ((char *) (vp)->vbuf.data)
 
#define VSTRING_LEN(vp)   ((ssize_t) ((vp)->vbuf.ptr - (vp)->vbuf.data))
 
#define vstring_end(vp)   ((char *) (vp)->vbuf.ptr)
 
#define VSTRING_TERMINATE(vp)
 
#define VSTRING_RESET(vp)
 
#define VSTRING_ADDCH(vp, ch)   VBUF_PUT(&(vp)->vbuf, ch)
 
#define VSTRING_SKIP(vp)
 
#define vstring_avail(vp)   ((vp)->vbuf.cnt)
 
#define VSTRING_AT_OFFSET(vp, offset)
 

型定義

typedef struct VSTRING VSTRING
 

関数

VSTRINGvstring_alloc (ssize_t)
 
void vstring_ctl (VSTRING *,...)
 
VSTRINGvstring_truncate (VSTRING *, ssize_t)
 
VSTRINGvstring_free (VSTRING *)
 
VSTRINGvstring_strcpy (VSTRING *, const char *)
 
VSTRINGvstring_strncpy (VSTRING *, const char *, ssize_t)
 
VSTRINGvstring_strcat (VSTRING *, const char *)
 
VSTRINGvstring_strncat (VSTRING *, const char *, ssize_t)
 
VSTRINGvstring_memcpy (VSTRING *, const char *, ssize_t)
 
VSTRINGvstring_memcat (VSTRING *, const char *, ssize_t)
 
char * vstring_memchr (VSTRING *, int)
 
VSTRINGvstring_insert (VSTRING *, ssize_t, const char *, ssize_t)
 
VSTRINGvstring_prepend (VSTRING *, const char *, ssize_t)
 
VSTRINGPRINTFLIKE (2, 3) vstring_sprintf(VSTRING *
 
VSTRING const char VSTRING const char VSTRING const char char * vstring_export (VSTRING *)
 
VSTRINGvstring_import (char *)
 
 CHECK_VAL_HELPER_DCL (VSTRING_CTL, ssize_t)
 
VSTRINGvstring_vsprintf (VSTRING *, const char *, va_list)
 
VSTRINGvstring_vsprintf_append (VSTRING *, const char *, va_list)
 

マクロ定義詳解

#define CA_VSTRING_CTL_END   VSTRING_CTL_END

vstring.h59 行目に定義があります。

#define CA_VSTRING_CTL_EXACT   VSTRING_CTL_EXACT

vstring.h60 行目に定義があります。

#define CA_VSTRING_CTL_MAXLEN (   val)    VSTRING_CTL_MAXLEN, CHECK_VAL(VSTRING_CTL, ssize_t, (val))

vstring.h61 行目に定義があります。

#define VSTRING_ADDCH (   vp,
  ch 
)    VBUF_PUT(&(vp)->vbuf, ch)

vstring.h81 行目に定義があります。

#define VSTRING_AT_OFFSET (   vp,
  offset 
)
値:
do { \
(vp)->vbuf.ptr = (vp)->vbuf.data + (offset); \
(vp)->vbuf.cnt = (vp)->vbuf.len - (offset); \
} while (0)

vstring.h92 行目に定義があります。

#define vstring_avail (   vp)    ((vp)->vbuf.cnt)

vstring.h86 行目に定義があります。

#define VSTRING_CTL_END   0

vstring.h56 行目に定義があります。

#define VSTRING_CTL_EXACT   2

vstring.h55 行目に定義があります。

#define VSTRING_CTL_MAXLEN   1

vstring.h54 行目に定義があります。

#define vstring_end (   vp)    ((char *) (vp)->vbuf.ptr)

vstring.h73 行目に定義があります。

#define VSTRING_FLAG_EXACT   (1<<8) /* exact allocation for tests */

vstring.h65 行目に定義があります。

#define VSTRING_LEN (   vp)    ((ssize_t) ((vp)->vbuf.ptr - (vp)->vbuf.data))

vstring.h72 行目に定義があります。

#define VSTRING_RESET (   vp)
値:
do { \
(vp)->vbuf.ptr = (vp)->vbuf.data; \
(vp)->vbuf.cnt = (vp)->vbuf.len; \
} while (0)

vstring.h77 行目に定義があります。

#define VSTRING_SKIP (   vp)
値:
do { \
while ((vp)->vbuf.cnt > 0 && *(vp)->vbuf.ptr) \
(vp)->vbuf.ptr++, (vp)->vbuf.cnt--; \
} while (0)

vstring.h82 行目に定義があります。

#define VSTRING_SPACE (   vp,
  len 
)    ((vp)->vbuf.space(&(vp)->vbuf, (len)))

vstring.h70 行目に定義があります。

#define vstring_str (   vp)    ((char *) (vp)->vbuf.data)

vstring.h71 行目に定義があります。

#define VSTRING_TERMINATE (   vp)
値:
do { \
*(vp)->vbuf.ptr = 0; \
} while (0)

vstring.h74 行目に定義があります。

型定義詳解

typedef struct VSTRING VSTRING

関数詳解

CHECK_VAL_HELPER_DCL ( VSTRING_CTL  ,
ssize_t   
)
VSTRING* PRINTFLIKE ( ,
 
)
VSTRING* vstring_alloc ( ssize_t  )

vstring.c353 行目に定義があります。

void vstring_ctl ( VSTRING ,
  ... 
)

vstring.c390 行目に定義があります。

VSTRING const char VSTRING const char VSTRING const char char* vstring_export ( VSTRING )

vstring.c569 行目に定義があります。

VSTRING* vstring_free ( VSTRING )

vstring.c380 行目に定義があります。

VSTRING* vstring_import ( char *  )

vstring.c581 行目に定義があります。

VSTRING* vstring_insert ( VSTRING ,
ssize_t  ,
const char *  ,
ssize_t   
)

vstring.c518 行目に定義があります。

VSTRING* vstring_memcat ( VSTRING ,
const char *  ,
ssize_t   
)

vstring.c495 行目に定義があります。

char* vstring_memchr ( VSTRING ,
int   
)

vstring.c506 行目に定義があります。

VSTRING* vstring_memcpy ( VSTRING ,
const char *  ,
ssize_t   
)

vstring.c483 行目に定義があります。

VSTRING* vstring_prepend ( VSTRING ,
const char *  ,
ssize_t   
)

vstring.c545 行目に定義があります。

VSTRING* vstring_strcat ( VSTRING ,
const char *   
)

vstring.c459 行目に定義があります。

VSTRING* vstring_strcpy ( VSTRING ,
const char *   
)

vstring.c431 行目に定義があります。

VSTRING* vstring_strncat ( VSTRING ,
const char *  ,
ssize_t   
)

vstring.c471 行目に定義があります。

VSTRING* vstring_strncpy ( VSTRING ,
const char *  ,
ssize_t   
)

vstring.c445 行目に定義があります。

VSTRING* vstring_truncate ( VSTRING ,
ssize_t   
)

vstring.c415 行目に定義があります。

VSTRING* vstring_vsprintf ( VSTRING ,
const char *  ,
va_list   
)

vstring.c614 行目に定義があります。

VSTRING* vstring_vsprintf_append ( VSTRING ,
const char *  ,
va_list   
)

vstring.c636 行目に定義があります。