/* Strn.h */
#ifndef _Strn_h_
#define _Strn_h_ 1
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
/* You could define this from the Makefile. */
#ifndef STRN_ZERO_PAD
# define STRN_ZERO_PAD 1
#endif
/* You could define this from the Makefile. */
#ifndef STRNP_ZERO_PAD
# define STRNP_ZERO_PAD 0
#endif
/* Strncat.c */
char *Strncat(char *const, const char *const, const size_t);
/* Strncpy.c */
char *Strncpy(char *const, const char *const, const size_t);
/* Strnpcat.c */
char *Strnpcat(char *const, const char *const, size_t);
/* Strnpcpy.c */
char *Strnpcpy(char *const, const char *const, size_t);
/* Strntok.c */
char *Strtok(char *, const char *);
int Strntok(char *, size_t, char *, const char *);
/* strtokc.c */
char *strtokc(char *, const char *, char **);
size_t strntokc(char *, size_t, char *, const char *, char **);
/* Dynscat.c */
char * Dynscat(char **dst, ...);
/* Dynscpy.c */
char * Dynscpy(char **dst, ...);
/* Dynsrecpy.c */
char * Dynsrecpy(char **dst, ...);
/* StrFree.c */
void StrFree(char **dst);
#ifndef _DStrInternal_h_
typedef struct DStr {
/* All of these structure fields are read-only; do not modify
* them directly.
*/
char *s;
size_t len;
size_t allocSize;
} DStr, *DStrPtr;
#endif
void DStrInit(DStr *const dst);
void DStrFree(DStr *const dst);
void DStrClear(DStr *const dst);
int DStrNew(DStr *const dst, const size_t srcLen);
const char *DStrCpy(DStr *const dst, const char *const src);
const char *DStrCat(DStr *const dst, const char *const src);
const char *DStrCatList(DStr *const dst, ...);
const char *DStrCpyList(DStr *const dst, ...);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#define STRNCPY(d,s) Strncpy((d), (s), (size_t) sizeof(d))
#define STRNCAT(d,s) Strncat((d), (s), (size_t) sizeof(d))
#endif /* _Strn_h_ */
/* eof Strn.h */
syntax highlighted by Code2HTML, v. 0.9.1