Rev 3437 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3437 | Rev 4377 | ||
---|---|---|---|
Line 33... | Line 33... | ||
33 | */ |
33 | */ |
34 | 34 | ||
35 | #ifndef LIBC_STRING_H_ |
35 | #ifndef LIBC_STRING_H_ |
36 | #define LIBC_STRING_H_ |
36 | #define LIBC_STRING_H_ |
37 | 37 | ||
- | 38 | #include <mem.h> |
|
38 | #include <sys/types.h> |
39 | #include <sys/types.h> |
- | 40 | #include <bool.h> |
|
39 | 41 | ||
- | 42 | #define U_SPECIAL '?' |
|
40 | #define bzero(ptr, len) memset((ptr), 0, (len)) |
43 | #define U_BOM 0xfeff |
41 | 44 | ||
42 | extern void * memset(void *, int, size_t); |
45 | /** No size limit constant */ |
43 | extern void * memcpy(void *, const void *, size_t); |
46 | #define STR_NO_LIMIT ((size_t) -1) |
44 | extern void * memmove(void *, const void *, size_t); |
- | |
45 | 47 | ||
46 | extern int bcmp(const char *, const char *, size_t); |
48 | /** Maximum size of a string containing @c length characters */ |
- | 49 | #define STR_BOUNDS(length) ((length) << 2) |
|
47 | 50 | ||
- | 51 | extern wchar_t str_decode(const char *str, size_t *offset, size_t sz); |
|
- | 52 | extern int chr_encode(const wchar_t ch, char *str, size_t *offset, size_t sz); |
|
- | 53 | ||
48 | extern int strcmp(const char *, const char *); |
54 | extern size_t str_size(const char *str); |
- | 55 | extern size_t wstr_size(const wchar_t *str); |
|
- | 56 | ||
49 | extern int strncmp(const char *, const char *, size_t); |
57 | extern size_t str_lsize(const char *str, count_t max_len); |
50 | extern int stricmp(const char *, const char *); |
58 | extern size_t wstr_lsize(const wchar_t *str, count_t max_len); |
- | 59 | ||
- | 60 | extern count_t str_length(const char *str); |
|
- | 61 | extern count_t wstr_length(const wchar_t *wstr); |
|
- | 62 | ||
- | 63 | extern count_t str_nlength(const char *str, size_t size); |
|
- | 64 | extern count_t wstr_nlength(const wchar_t *str, size_t size); |
|
- | 65 | ||
- | 66 | extern bool ascii_check(wchar_t ch); |
|
- | 67 | extern bool chr_check(wchar_t ch); |
|
51 | 68 | ||
52 | extern char *strcpy(char *, const char *); |
69 | extern int str_cmp(const char *s1, const char *s2); |
53 | extern char *strncpy(char *, const char *, size_t); |
70 | extern int str_lcmp(const char *s1, const char *s2, count_t max_len); |
54 | 71 | ||
55 | extern char *strcat(char *, const char *); |
72 | extern void str_cpy(char *dest, size_t size, const char *src); |
- | 73 | extern void str_ncpy(char *dest, size_t size, const char *src, size_t n); |
|
- | 74 | extern void str_append(char *dest, size_t size, const char *src); |
|
56 | 75 | ||
57 | extern size_t strlen(const char *); |
76 | extern void wstr_nstr(char *dst, const wchar_t *src, size_t size); |
58 | 77 | ||
59 | extern char *strdup(const char *); |
78 | extern const char *str_chr(const char *str, wchar_t ch); |
- | 79 | extern const char *str_rchr(const char *str, wchar_t ch); |
|
60 | 80 | ||
- | 81 | extern bool wstr_linsert(wchar_t *str, wchar_t ch, count_t pos, count_t max_pos); |
|
- | 82 | extern bool wstr_remove(wchar_t *str, count_t pos); |
|
- | 83 | ||
61 | extern char *strchr(const char *, int); |
84 | extern char *str_dup(const char *); |
- | 85 | ||
- | 86 | /* |
|
- | 87 | * TODO: Get rid of this. |
|
- | 88 | */ |
|
- | 89 | ||
62 | extern char *strrchr(const char *, int); |
90 | extern int stricmp(const char *, const char *); |
63 | 91 | ||
64 | extern long int strtol(const char *, char **, int); |
92 | extern long int strtol(const char *, char **, int); |
65 | extern unsigned long strtoul(const char *, char **, int); |
93 | extern unsigned long strtoul(const char *, char **, int); |
66 | 94 | ||
67 | extern char * strtok_r(char *, const char *, char **); |
95 | extern char * strtok_r(char *, const char *, char **); |