]> mj.ucw.cz Git - libucw.git/blob - ucw/string.h
Growing arrays now support auto-zeroing mode
[libucw.git] / ucw / string.h
1 /*
2  *      UCW Library -- String Routines
3  *
4  *      (c) 2006 Pavel Charvat <pchar@ucw.cz>
5  *      (c) 2007--2012 Martin Mares <mj@ucw.cz>
6  *
7  *      This software may be freely distributed and used according to the terms
8  *      of the GNU Lesser General Public License.
9  */
10
11 #ifndef _UCW_STRING_H
12 #define _UCW_STRING_H
13
14 /* string.c */
15
16 #ifdef CONFIG_DARWIN
17 uns strnlen(const char *str, uns n);
18 #endif
19
20 char *str_format_flags(char *dest, const char *fmt, uns flags);
21 uns str_count_char(const char *str, uns chr);
22
23 /** Returns a non-zero value if @haystack starts with @needle. **/
24 int str_starts_with(const char *haystack, const char *needle);
25
26 /** Returns a non-zero value if @haystack ends with @needle. **/
27 int str_ends_with(const char *haystack, const char *needle);
28
29 /* str-esc.c */
30
31 char *str_unesc(char *dest, const char *src);
32
33 /* str-split.c */
34
35 int str_sepsplit(char *str, uns sep, char **rec, uns max);
36 int str_wordsplit(char *str, char **rec, uns max);
37
38 /* str-(i)match.c: Matching of shell patterns */
39
40 int str_match_pattern(const char *patt, const char *str);
41 int str_match_pattern_nocase(const char *patt, const char *str);
42
43 /* str-hex.c */
44
45 void mem_to_hex(char *dest, const byte *src, uns bytes, uns flags);
46 const char *hex_to_mem(byte *dest, const char *src, uns max_bytes, uns flags);
47
48 // Bottom 8 bits of flags are an optional separator of bytes, the rest is:
49 #define MEM_TO_HEX_UPCASE 0x100
50
51 #endif