|
Packit Service |
9ccfef |
/*
|
|
Packit Service |
9ccfef |
* dstring.h --
|
|
Packit Service |
9ccfef |
*
|
|
Packit Service |
9ccfef |
* This file implements an abstract data type for dynamic strings.
|
|
Packit Service |
9ccfef |
*
|
|
Packit Service |
9ccfef |
* Note: The behavior of the functions that modify the a dynamic
|
|
Packit Service |
9ccfef |
* string is undefined if an argument strings points into the
|
|
Packit Service |
9ccfef |
* dynamic string itself.
|
|
Packit Service |
9ccfef |
*
|
|
Packit Service |
9ccfef |
* Copyright (c) 2006 Juergen Schoenwaelder, International University Bremen.
|
|
Packit Service |
9ccfef |
*
|
|
Packit Service |
9ccfef |
* See the file "COPYING" for information on usage and redistribution
|
|
Packit Service |
9ccfef |
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
|
Packit Service |
9ccfef |
*
|
|
Packit Service |
9ccfef |
* @(#) $Id: smilint.c 1867 2004-10-06 13:45:31Z strauss $
|
|
Packit Service |
9ccfef |
*/
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
#ifndef _DSTRING_H_
|
|
Packit Service |
9ccfef |
#define _DSTRING_H_
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
#include <stdarg.h>
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
#ifdef __GNUC__
|
|
Packit Service |
9ccfef |
# define inline /* extern */ static inline
|
|
Packit Service |
9ccfef |
#else
|
|
Packit Service |
9ccfef |
#ifdef HAVE_WIN_H
|
|
Packit Service |
9ccfef |
# define inline __inline
|
|
Packit Service |
9ccfef |
#endif
|
|
Packit Service |
9ccfef |
#endif
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
struct dstring {
|
|
Packit Service |
9ccfef |
char *str;
|
|
Packit Service |
9ccfef |
size_t len;
|
|
Packit Service |
9ccfef |
};
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
typedef struct dstring dstring_t;
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
inline char*
|
|
Packit Service |
9ccfef |
dstring_str(dstring_t *ds)
|
|
Packit Service |
9ccfef |
{
|
|
Packit Service |
9ccfef |
return ds ? ds->str : NULL;
|
|
Packit Service |
9ccfef |
}
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
inline size_t
|
|
Packit Service |
9ccfef |
dstring_len(dstring_t *ds)
|
|
Packit Service |
9ccfef |
{
|
|
Packit Service |
9ccfef |
return ds ? ds->len : 0;
|
|
Packit Service |
9ccfef |
}
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
extern dstring_t*
|
|
Packit Service |
9ccfef |
dstring_new(void);
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
extern dstring_t*
|
|
Packit Service |
9ccfef |
dstring_delete(dstring_t *ds);
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
extern dstring_t*
|
|
Packit Service |
9ccfef |
dstring_assign(dstring_t *ds, const char *s);
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
extern dstring_t*
|
|
Packit Service |
9ccfef |
dstring_concat(dstring_t *ds, ...);
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
extern dstring_t*
|
|
Packit Service |
9ccfef |
dstring_append(dstring_t *ds, const char *s);
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
extern dstring_t*
|
|
Packit Service |
9ccfef |
dstring_append_char(dstring_t *ds, const char c);
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
extern dstring_t*
|
|
Packit Service |
9ccfef |
dstring_append_printf(dstring_t *ds, const char *format, ...);
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
extern dstring_t*
|
|
Packit Service |
9ccfef |
dstring_append_vprintf(dstring_t *ds, const char *format, va_list ap);
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
extern dstring_t*
|
|
Packit Service |
9ccfef |
dstring_printf(dstring_t *ds, const char *format, ...);
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
extern dstring_t*
|
|
Packit Service |
9ccfef |
dstring_vprintf(dstring_t *ds, const char *format, va_list ap);
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
extern dstring_t*
|
|
Packit Service |
9ccfef |
dstring_truncate(dstring_t *ds, int len);
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
extern dstring_t*
|
|
Packit Service |
9ccfef |
dstring_expand(dstring_t *ds, int len, char fill);
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
#ifdef __GNUC__
|
|
Packit Service |
9ccfef |
#undef inline
|
|
Packit Service |
9ccfef |
#endif
|
|
Packit Service |
9ccfef |
|
|
Packit Service |
9ccfef |
#endif
|