/* Constructors and destructor that allocate and deallocate
memory. */
struct pool;
-void ss_alloc_substring (struct substring *, struct substring);
+struct substring ss_clone (struct substring);
+struct substring ss_clone_pool (struct substring, struct pool *);
void ss_alloc_uninit (struct substring *, size_t);
void ss_realloc (struct substring *, size_t);
-void ss_alloc_substring_pool (struct substring *, struct substring,
- struct pool *);
void ss_alloc_uninit_pool (struct substring *, size_t, struct pool *);
void ss_dealloc (struct substring *);
bool ss_match_byte (struct substring *, char);
int ss_match_byte_in (struct substring *, struct substring);
bool ss_match_string (struct substring *, const struct substring);
+bool ss_match_string_case (struct substring *, const struct substring);
int ss_get_byte (struct substring *);
size_t ss_get_bytes (struct substring *, size_t n, struct substring *);
bool ss_get_until (struct substring *, char delimiter, struct substring *);
int ss_first (struct substring);
int ss_last (struct substring);
bool ss_starts_with (struct substring, struct substring prefix);
+bool ss_starts_with_case (struct substring, struct substring prefix);
bool ss_ends_with (struct substring, struct substring suffix);
+bool ss_ends_with_case (struct substring, struct substring suffix);
size_t ss_span (struct substring, struct substring skip_set);
size_t ss_cspan (struct substring, struct substring stop_set);
size_t ss_find_byte (struct substring, char);
size_t ss_find_substring (struct substring, struct substring);
int ss_compare (struct substring, struct substring);
+int ss_compare_rpad (struct substring, struct substring);
int ss_compare_case (struct substring, struct substring);
int ss_equals (struct substring, struct substring);
int ss_equals_case (struct substring, struct substring);