Used Variables instead of Options, in SConstruct
[mcc.git] / bstr.h
blob0023f0f215956e368e8ba6740bee626133ba59fe
1 /*
2 * better strings
3 * - and better other things, for that matter!
4 */
6 #ifndef _BSTR_H
7 #define _BSTR_H
9 #include "stdlib.h"
10 #include "stdarg.h"
12 // extended string functions
13 size_t strnlen(const char *str, size_t n);
14 char *strdup(const char *str);
15 char *strndup(const char *str, size_t n);
16 char *strchrnul(const char *str, int c);
18 // dynamically allocated string functions
19 char *strdcat(char **dest, const char *src);
20 char *strdncat(char **dest, const char *src, size_t n);
21 char *strdcpy(char **dest, const char *src);
22 char *strdncpy(char **dest, const char *src, size_t n);
23 char *strdcatc(char **dest, int ch);
25 // dynamically allocated string functions with explicit lengths
26 char *strldcat(char **dest, int *dest_len, const char *src);
27 char *strldncat(char **dest, int *dest_len, const char *src, size_t n);
28 char *strldcpy(char **dest, int *dest_len, const char *src, int src_len);
29 char *strldncpy(char **dest, int *dest_len, const char *src, size_t n);
30 char *strldcatc(char **dest, int *dest_len, int ch);
32 // dynamically allocated string formatting
33 char *sdprintf(const char *fmt, ...);
34 char *vsdprintf(const char *fmt, va_list ap);
36 // in-place case conversion
37 void strtolower(char *str);
38 void strtoupper(char *str);
40 // path functions
41 char *pathname(const char *str);
42 char *filesuffix(const char *str);
44 #endif