Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.41
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
src /
Python-3.10.14 /
Objects /
stringlib /
Delete
Unzip
Name
Size
Permission
Date
Action
clinic
[ DIR ]
drwxr-xr-x
2024-03-19 22:46
README.txt
1.16
KB
-rw-r--r--
2024-03-19 22:46
asciilib.h
1.11
KB
-rw-r--r--
2024-03-19 22:46
codecs.h
27.39
KB
-rw-r--r--
2024-03-19 22:46
count.h
666
B
-rw-r--r--
2024-03-19 22:46
ctype.h
3.04
KB
-rw-r--r--
2024-03-19 22:46
eq.h
848
B
-rw-r--r--
2024-03-19 22:46
fastsearch.h
24.3
KB
-rw-r--r--
2024-03-19 22:46
find.h
3.19
KB
-rw-r--r--
2024-03-19 22:46
find_max_char.h
3.64
KB
-rw-r--r--
2024-03-19 22:46
join.h
4.62
KB
-rw-r--r--
2024-03-19 22:46
localeutil.h
2.5
KB
-rw-r--r--
2024-03-19 22:46
partition.h
3.22
KB
-rw-r--r--
2024-03-19 22:46
replace.h
1.81
KB
-rw-r--r--
2024-03-19 22:46
split.h
11.05
KB
-rw-r--r--
2024-03-19 22:46
stringdefs.h
1.13
KB
-rw-r--r--
2024-03-19 22:46
stringlib_find_two_way_notes.txt
16.37
KB
-rw-r--r--
2024-03-19 22:46
transmogrify.h
19.4
KB
-rw-r--r--
2024-03-19 22:46
ucs1lib.h
1.08
KB
-rw-r--r--
2024-03-19 22:46
ucs2lib.h
1.08
KB
-rw-r--r--
2024-03-19 22:46
ucs4lib.h
1.09
KB
-rw-r--r--
2024-03-19 22:46
undef.h
212
B
-rw-r--r--
2024-03-19 22:46
unicode_format.h
40.36
KB
-rw-r--r--
2024-03-19 22:46
unicodedefs.h
1.19
KB
-rw-r--r--
2024-03-19 22:46
Save
Rename
/* Finding the optimal width of unicode characters in a buffer */ #if !STRINGLIB_IS_UNICODE # error "find_max_char.h is specific to Unicode" #endif /* Mask to quickly check whether a C 'size_t' contains a non-ASCII, UTF8-encoded char. */ #if (SIZEOF_SIZE_T == 8) # define UCS1_ASCII_CHAR_MASK 0x8080808080808080ULL #elif (SIZEOF_SIZE_T == 4) # define UCS1_ASCII_CHAR_MASK 0x80808080U #else # error C 'size_t' size should be either 4 or 8! #endif #if STRINGLIB_SIZEOF_CHAR == 1 Py_LOCAL_INLINE(Py_UCS4) STRINGLIB(find_max_char)(const STRINGLIB_CHAR *begin, const STRINGLIB_CHAR *end) { const unsigned char *p = (const unsigned char *) begin; while (p < end) { if (_Py_IS_ALIGNED(p, ALIGNOF_SIZE_T)) { /* Help register allocation */ const unsigned char *_p = p; while (_p + SIZEOF_SIZE_T <= end) { size_t value = *(const size_t *) _p; if (value & UCS1_ASCII_CHAR_MASK) return 255; _p += SIZEOF_SIZE_T; } p = _p; if (p == end) break; } if (*p++ & 0x80) return 255; } return 127; } #undef ASCII_CHAR_MASK #else /* STRINGLIB_SIZEOF_CHAR == 1 */ #define MASK_ASCII 0xFFFFFF80 #define MASK_UCS1 0xFFFFFF00 #define MASK_UCS2 0xFFFF0000 #define MAX_CHAR_ASCII 0x7f #define MAX_CHAR_UCS1 0xff #define MAX_CHAR_UCS2 0xffff #define MAX_CHAR_UCS4 0x10ffff Py_LOCAL_INLINE(Py_UCS4) STRINGLIB(find_max_char)(const STRINGLIB_CHAR *begin, const STRINGLIB_CHAR *end) { #if STRINGLIB_SIZEOF_CHAR == 2 const Py_UCS4 mask_limit = MASK_UCS1; const Py_UCS4 max_char_limit = MAX_CHAR_UCS2; #elif STRINGLIB_SIZEOF_CHAR == 4 const Py_UCS4 mask_limit = MASK_UCS2; const Py_UCS4 max_char_limit = MAX_CHAR_UCS4; #else #error Invalid STRINGLIB_SIZEOF_CHAR (must be 1, 2 or 4) #endif Py_UCS4 mask; Py_ssize_t n = end - begin; const STRINGLIB_CHAR *p = begin; const STRINGLIB_CHAR *unrolled_end = begin + _Py_SIZE_ROUND_DOWN(n, 4); Py_UCS4 max_char; max_char = MAX_CHAR_ASCII; mask = MASK_ASCII; while (p < unrolled_end) { STRINGLIB_CHAR bits = p[0] | p[1] | p[2] | p[3]; if (bits & mask) { if (mask == mask_limit) { /* Limit reached */ return max_char_limit; } if (mask == MASK_ASCII) { max_char = MAX_CHAR_UCS1; mask = MASK_UCS1; } else { /* mask can't be MASK_UCS2 because of mask_limit above */ assert(mask == MASK_UCS1); max_char = MAX_CHAR_UCS2; mask = MASK_UCS2; } /* We check the new mask on the same chars in the next iteration */ continue; } p += 4; } while (p < end) { if (p[0] & mask) { if (mask == mask_limit) { /* Limit reached */ return max_char_limit; } if (mask == MASK_ASCII) { max_char = MAX_CHAR_UCS1; mask = MASK_UCS1; } else { /* mask can't be MASK_UCS2 because of mask_limit above */ assert(mask == MASK_UCS1); max_char = MAX_CHAR_UCS2; mask = MASK_UCS2; } /* We check the new mask on the same chars in the next iteration */ continue; } p++; } return max_char; } #undef MASK_ASCII #undef MASK_UCS1 #undef MASK_UCS2 #undef MAX_CHAR_ASCII #undef MAX_CHAR_UCS1 #undef MAX_CHAR_UCS2 #undef MAX_CHAR_UCS4 #endif /* STRINGLIB_SIZEOF_CHAR == 1 */