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