1 /* str.h - decls for string functions 2 * 3 **************************************************************** 4 * Copyright (C) 1998, 2000 Thomas Lord 5 * 6 * See the file "COPYING" for further information about 7 * the copyright and warranty status of this work. 8 */ 9 10 11 #ifndef INCLUDE__CHAR__STR_H 12 #define INCLUDE__CHAR__STR_H 13 14 15 16 #include "hackerlab/char/str-many.h" 17 18 19 /* automatically generated __STDC__ prototypes */ 20 extern size_t str_length (const t_uchar * x); 21 extern size_t str_length_n (const t_uchar * x, size_t n); 22 extern unsigned long str_hash (const t_uchar * chr); 23 extern unsigned long str_hash_n (const t_uchar * chr, size_t len); 24 extern t_uchar * str_chr_index (const t_uchar * s, int c); 25 extern t_uchar * str_chr_rindex (const t_uchar * s, int c); 26 extern t_uchar * str_chr_index_n (const t_uchar * s, size_t n, int c); 27 extern t_uchar * str_chr_rindex_n (const t_uchar * s, size_t n, int c); 28 extern t_uchar * str_separate (t_uchar ** stringp, t_uchar * delims); 29 extern int str_cmp (const t_uchar * a, const t_uchar * b); 30 extern int str_cmp_n (const t_uchar * a, size_t a_l, const t_uchar * b, size_t b_l); 31 extern int str_cmp_prefix (const t_uchar * prefix, const t_uchar * s); 32 extern int str_cmp_prefix_n (const t_uchar * prefix, 33 size_t prefix_len, 34 const t_uchar * s, 35 size_t s_len); 36 extern int str_casecmp (const t_uchar * a, const t_uchar * b); 37 extern int str_casecmp_n (const t_uchar * a, size_t a_l, 38 const t_uchar * b, size_t b_l); 39 extern int str_casecmp_prefix (const t_uchar * prefix, const t_uchar * s); 40 extern int str_casecmp_prefix_n (const t_uchar * prefix, 41 size_t prefix_len, 42 const t_uchar * s, 43 size_t s_len); 44 extern t_uchar * str_cpy (t_uchar * to, const t_uchar * from); 45 extern t_uchar * str_cpy_n (t_uchar * to, 46 const t_uchar * from, 47 size_t n); 48 extern t_uchar * str_cat (t_uchar * to, const t_uchar * from); 49 extern t_uchar * str_cat_n (t_uchar * to, 50 const t_uchar * from, 51 size_t n); 52 extern t_uchar * str_save (alloc_limits limits, const t_uchar * str); 53 extern t_uchar * str_save_n (alloc_limits limits, 54 const t_uchar * str, 55 size_t len); 56 extern t_uchar * str_save_trimming (alloc_limits limits, const t_uchar * str); 57 extern t_uchar * str_save_trimming_n (alloc_limits limits, 58 const t_uchar * str, 59 size_t len); 60 extern t_uchar * str_alloc_cat (alloc_limits limits, 61 const t_uchar * str1, 62 const t_uchar * str2); 63 extern t_uchar * str_alloc_cat_n (alloc_limits limits, 64 const t_uchar * str1, 65 const t_uchar * str2, 66 size_t n); 67 extern t_uchar * str_realloc_cat (alloc_limits limits, 68 t_uchar * str1, 69 const t_uchar * str2); 70 extern t_uchar * str_realloc_cat_n (alloc_limits limits, 71 t_uchar * str1, 72 const t_uchar * str2, 73 size_t n); 74 extern size_t str_occurences (t_uchar * s, int c); 75 #endif /* INCLUDE__CHAR__STR_H */ 76