<commit_before>#ifndef SAFE_STRING_H_
#define SAFE_STRING_H_

#ifdef __cplusplus
extern "C" {
#endif

/**
 * cstring
 * 
 * A convenient way to differentiate between a pointer to a single char and a
 * c-string (both have the type `char *`): use `cstring` for the latter.
 * Note that it is still a pointer and memory allocation and deallocation
 * should still be done.
 */
typedef char * cstring;

/**
 * const_cstring
 *
 * A less verbose way to declare a constant c-string. The pointer cannot be
 * changed and neither can the string to which it points.
 */
typedef const char const * const_cstring;

/**
 * cstring_array
 * A convenient way to differentiate between a pointer to a single c-string
 * and an array of multiple c-strings (both have the type `char **`, or
 * `cstring *`): use `cstring_array` for the latter.'
 */
typedef cstring * cstring_array;

#ifdef __cplusplus
}
#endif

#endif /* SAFE_STRING_H_ */
<commit_msg>Fix typedef for const_cstring<commit_after>#ifndef SAFE_STRING_H_
#define SAFE_STRING_H_

#ifdef __cplusplus
extern "C" {
#endif

/**
 * cstring
 * 
 * A convenient way to differentiate between a pointer to a single char and a
 * c-string (both have the type `char *`): use `cstring` for the latter.
 * Note that it is still a pointer and memory allocation and deallocation
 * should still be done.
 */
typedef char * cstring;

/**
 * const_cstring
 *
 * A less verbose way to declare a constant c-string. The pointer cannot be
 * changed and neither can the string to which it points.
 */
typedef const char * const const_cstring;

/**
 * cstring_array
 * A convenient way to differentiate between a pointer to a single c-string
 * and an array of multiple c-strings (both have the type `char **`, or
 * `cstring *`): use `cstring_array` for the latter.'
 */
typedef cstring * cstring_array;

#ifdef __cplusplus
}
#endif

#endif /* SAFE_STRING_H_ */

{'fraction_non_alphanumeric': 0.08907741251325557, 'fraction_numerical': 0.0, 'mean_word_length': 3.8384615384615386, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7188466', 'n_tokens_mistral': 595, 'n_tokens_neox': 578, 'n_words': 249}