rename ngx_utf_...() to ngx_utf8_...()
Igor Sysoev
13 years ago
951 | 951 |
|
952 | 952 |
|
953 | 953 |
/*
|
954 | |
* ngx_utf_decode() decodes two and more bytes UTF sequences only
|
|
954 |
* ngx_utf8_decode() decodes two and more bytes UTF sequences only
|
955 | 955 |
* the return values:
|
956 | 956 |
* 0x80 - 0x10ffff valid character
|
957 | 957 |
* 0x110000 - 0xfffffffd invalid sequence
|
|
960 | 960 |
*/
|
961 | 961 |
|
962 | 962 |
uint32_t
|
963 | |
ngx_utf_decode(u_char **p, size_t n)
|
|
963 |
ngx_utf8_decode(u_char **p, size_t n)
|
964 | 964 |
{
|
965 | 965 |
size_t len;
|
966 | 966 |
uint32_t u, i, valid;
|
|
1017 | 1017 |
|
1018 | 1018 |
|
1019 | 1019 |
size_t
|
1020 | |
ngx_utf_length(u_char *p, size_t n)
|
|
1020 |
ngx_utf8_length(u_char *p, size_t n)
|
1021 | 1021 |
{
|
1022 | 1022 |
u_char c, *last;
|
1023 | 1023 |
size_t len;
|
|
1033 | 1033 |
continue;
|
1034 | 1034 |
}
|
1035 | 1035 |
|
1036 | |
if (ngx_utf_decode(&p, n) > 0x10ffff) {
|
1037 | |
/* invalid utf */
|
|
1036 |
if (ngx_utf8_decode(&p, n) > 0x10ffff) {
|
|
1037 |
/* invalid UTF-8 */
|
1038 | 1038 |
return n;
|
1039 | 1039 |
}
|
1040 | 1040 |
}
|
|
1044 | 1044 |
|
1045 | 1045 |
|
1046 | 1046 |
u_char *
|
1047 | |
ngx_utf_cpystrn(u_char *dst, u_char *src, size_t n, size_t len)
|
|
1047 |
ngx_utf8_cpystrn(u_char *dst, u_char *src, size_t n, size_t len)
|
1048 | 1048 |
{
|
1049 | 1049 |
u_char c, *next;
|
1050 | 1050 |
|
|
1072 | 1072 |
|
1073 | 1073 |
next = src;
|
1074 | 1074 |
|
1075 | |
if (ngx_utf_decode(&next, len) > 0x10ffff) {
|
1076 | |
/* invalid utf */
|
|
1075 |
if (ngx_utf8_decode(&next, len) > 0x10ffff) {
|
|
1076 |
/* invalid UTF-8 */
|
1077 | 1077 |
break;
|
1078 | 1078 |
}
|
1079 | 1079 |
|
150 | 150 |
void ngx_encode_base64(ngx_str_t *dst, ngx_str_t *src);
|
151 | 151 |
ngx_int_t ngx_decode_base64(ngx_str_t *dst, ngx_str_t *src);
|
152 | 152 |
|
153 | |
uint32_t ngx_utf_decode(u_char **p, size_t n);
|
154 | |
size_t ngx_utf_length(u_char *p, size_t n);
|
155 | |
u_char *ngx_utf_cpystrn(u_char *dst, u_char *src, size_t n, size_t len);
|
|
153 |
uint32_t ngx_utf8_decode(u_char **p, size_t n);
|
|
154 |
size_t ngx_utf8_length(u_char *p, size_t n);
|
|
155 |
u_char *ngx_utf8_cpystrn(u_char *dst, u_char *src, size_t n, size_t len);
|
156 | 156 |
|
157 | 157 |
|
158 | 158 |
#define NGX_ESCAPE_URI 0
|
328 | 328 |
NGX_ESCAPE_HTML);
|
329 | 329 |
|
330 | 330 |
if (r->utf8) {
|
331 | |
entry->utf_len = ngx_utf_length(entry->name.data, entry->name.len);
|
|
331 |
entry->utf_len = ngx_utf8_length(entry->name.data, entry->name.len);
|
332 | 332 |
} else {
|
333 | 333 |
entry->utf_len = len;
|
334 | 334 |
}
|
|
419 | 419 |
utf_len = NGX_HTTP_AUTOINDEX_NAME_LEN + 1;
|
420 | 420 |
}
|
421 | 421 |
|
422 | |
b->last = ngx_utf_cpystrn(b->last, entry[i].name.data,
|
423 | |
utf_len, entry[i].name.len + 1);
|
|
422 |
b->last = ngx_utf8_cpystrn(b->last, entry[i].name.data,
|
|
423 |
utf_len, entry[i].name.len + 1);
|
424 | 424 |
last = b->last;
|
425 | 425 |
|
426 | 426 |
} else {
|
641 | 641 |
size = buf->last - src;
|
642 | 642 |
|
643 | 643 |
saved = src;
|
644 | |
n = ngx_utf_decode(&saved, size);
|
|
644 |
n = ngx_utf8_decode(&saved, size);
|
645 | 645 |
|
646 | 646 |
if (n == 0xfffffffe) {
|
647 | 647 |
/* incomplete UTF-8 symbol */
|
|
709 | 709 |
}
|
710 | 710 |
|
711 | 711 |
saved = ctx->saved;
|
712 | |
n = ngx_utf_decode(&saved, i);
|
|
712 |
n = ngx_utf8_decode(&saved, i);
|
713 | 713 |
|
714 | 714 |
c = '\0';
|
715 | 715 |
|
|
817 | 817 |
|
818 | 818 |
len = buf->last - src;
|
819 | 819 |
|
820 | |
n = ngx_utf_decode(&src, len);
|
|
820 |
n = ngx_utf8_decode(&src, len);
|
821 | 821 |
|
822 | 822 |
if (n < 0x10000) {
|
823 | 823 |
|
|
1269 | 1269 |
|
1270 | 1270 |
p = &table->src2dst[src * NGX_UTF_LEN] + 1;
|
1271 | 1271 |
|
1272 | |
n = ngx_utf_decode(&p, i);
|
|
1272 |
n = ngx_utf8_decode(&p, i);
|
1273 | 1273 |
|
1274 | 1274 |
if (n > 0xffff) {
|
1275 | 1275 |
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|