Compare commits

..

No commits in common. "master" and "1.3.0" have entirely different histories.

4 changed files with 12 additions and 14 deletions

View File

@ -24,7 +24,7 @@ utf8_decode_char2(const char* src, size_t size, size_t* used)
if(!src || !size) { if(!src || !size) {
errno = EINVAL; errno = EINVAL;
return (wchar_t)-1; return 0;
} }
if(used) *used = 1; if(used) *used = 1;
ch = *src++; ch = *src++;
@ -57,26 +57,26 @@ utf8_decode_char2(const char* src, size_t size, size_t* used)
ret = ch & 0x01; ret = ch & 0x01;
} else { } else {
errno = EILSEQ; errno = EILSEQ;
return (wchar_t)-1; return 0;
} }
while(remain--) { while(remain--) {
if(!--size) { if(!--size) {
errno = EILSEQ; errno = EILSEQ;
return (wchar_t)-1; return 0;
} }
ch = *src++; ch = *src++;
if((ch & 0xC0) != 0x80) { if((ch & 0xC0) != 0x80) {
errno = EILSEQ; errno = EILSEQ;
return (wchar_t)-1; return 0;
} }
ret <<= 6; ret <<= 6;
ret |= ch & 0x3F; ret |= ch & 0x3F;
} }
if(ret < min) { if(ch < min) {
errno = EILSEQ; errno = EILSEQ;
return (wchar_t)-1; return 0;
} }
return ret; return ret;
@ -104,7 +104,7 @@ utf8_decode_char2_force(const char* src, size_t size, size_t* used,
if(!src || !size) { if(!src || !size) {
errno = EINVAL; errno = EINVAL;
return (wchar_t)-1; return 0;
} }
if(used) *used = 1; if(used) *used = 1;
ch = *src++; ch = *src++;
@ -143,7 +143,7 @@ utf8_decode_char2_force(const char* src, size_t size, size_t* used,
ret |= ch & 0x3F; ret |= ch & 0x3F;
} }
if(ret < min) goto ILSEQ; if(ch < min) goto ILSEQ;
return ret; return ret;
} }

View File

@ -10,7 +10,8 @@
struct utf8_encode_state* struct utf8_encode_state*
utf8_encoder(struct utf8_encode_state* state) utf8_encoder(struct utf8_encode_state* state)
{ {
char* wr, * ret, * endp; char* wr = state->wr, * ret;
char* endp = wr + state->wr_size - 1;
wchar_t ch; wchar_t ch;
enum utf8_encode_error_action error_action; enum utf8_encode_error_action error_action;
int reencoding; int reencoding;
@ -20,9 +21,6 @@ utf8_encoder(struct utf8_encode_state* state)
return 0; return 0;
} }
wr = state->wr;
endp = wr + state->wr_size - 1;
state->written = 0; state->written = 0;
while(state->rd_remain) { while(state->rd_remain) {
ch = *state->rd; ch = *state->rd;

View File

@ -12,4 +12,4 @@
SOMAJOR=1 SOMAJOR=1
# SOMICRO is bumped every time there is a binary-compatible release. # SOMICRO is bumped every time there is a binary-compatible release.
SOMICRO=2 SOMICRO=0

View File

@ -11,7 +11,7 @@
# expected to be in 'major.minor.micro' format. # expected to be in 'major.minor.micro' format.
VERMAJOR=1 VERMAJOR=1
VERMINOR=3 VERMINOR=3
VERMICRO=2 VERMICRO=0
# kate: replace-trailing-space-save true; space-indent true; tab-width 4; # kate: replace-trailing-space-save true; space-indent true; tab-width 4;
# vim: expandtab:ts=4:sw=4:syntax=sh # vim: expandtab:ts=4:sw=4:syntax=sh