Lines Matching defs:str

81 static int utf8_encoded_expected_len(const char *str) {
84 assert(str);
86 c = (unsigned char) str[0];
104 int utf8_encoded_to_unichar(const char *str, char32_t *ret_unichar) {
108 assert(str);
110 len = utf8_encoded_expected_len(str);
114 *ret_unichar = (char32_t)str[0];
117 unichar = str[0] & 0x1f;
120 unichar = (char32_t)str[0] & 0x0f;
123 unichar = (char32_t)str[0] & 0x07;
126 unichar = (char32_t)str[0] & 0x03;
129 unichar = (char32_t)str[0] & 0x01;
136 if (((char32_t)str[i] & 0xc0) != 0x80)
139 unichar |= (char32_t)str[i] & 0x3f;
147 bool utf8_is_printable_newline(const char* str, size_t length, bool newline) {
150 assert(str);
152 for (p = str; length;) {
174 const char *utf8_is_valid(const char *str) {
177 assert(str);
179 for (p = (const uint8_t*) str; *p; ) {
189 return str;
192 char *utf8_escape_invalid(const char *str) {
195 assert(str);
197 p = s = malloc(strlen(str) * 4 + 1);
201 while (*str) {
204 len = utf8_encoded_valid_unichar(str);
206 s = mempcpy(s, str, len);
207 str += len;
210 str += 1;
219 char *utf8_escape_non_printable(const char *str) {
222 assert(str);
224 p = s = malloc(strlen(str) * 4 + 1);
228 while (*str) {
231 len = utf8_encoded_valid_unichar(str);
233 if (utf8_is_printable(str, len)) {
234 s = mempcpy(s, str, len);
235 str += len;
240 *(s++) = hexchar((int) *str >> 4);
241 *(s++) = hexchar((int) *str);
243 str += 1;
249 str += 1;
258 char *ascii_is_valid(const char *str) {
261 assert(str);
263 for (p = str; *p; p++)
267 return (char*) str;
377 int utf8_encoded_valid_unichar(const char *str) {
381 assert(str);
383 len = utf8_encoded_expected_len(str);
393 if ((str[i] & 0x80) != 0x80)
396 r = utf8_encoded_to_unichar(str, &unichar);