Compare commits
	
		
			7 Commits
		
	
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								 | 
						f2462dbeab | |
| 
							
							
								 | 
						22d58219e7 | |
| 
							
							
								 | 
						3cfd83e1a6 | |
| 
							
							
								 | 
						0275295c88 | |
| 
							
							
								 | 
						7e9085def4 | |
| 
							
							
								 | 
						b04ebb80e6 | |
| 
							
							
								 | 
						f2569b9423 | 
| 
						 | 
					@ -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 0;
 | 
					        return (wchar_t)-1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    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 0;
 | 
					            return (wchar_t)-1;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        while(remain--) {
 | 
					        while(remain--) {
 | 
				
			||||||
            if(!--size) {
 | 
					            if(!--size) {
 | 
				
			||||||
                errno = EILSEQ;
 | 
					                errno = EILSEQ;
 | 
				
			||||||
                return 0;
 | 
					                return (wchar_t)-1;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            ch = *src++;
 | 
					            ch = *src++;
 | 
				
			||||||
            if((ch & 0xC0) != 0x80) {
 | 
					            if((ch & 0xC0) != 0x80) {
 | 
				
			||||||
                errno = EILSEQ;
 | 
					                errno = EILSEQ;
 | 
				
			||||||
                return 0;
 | 
					                return (wchar_t)-1;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            ret <<= 6;
 | 
					            ret <<= 6;
 | 
				
			||||||
            ret |= ch & 0x3F;
 | 
					            ret |= ch & 0x3F;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if(ch < min) {
 | 
					        if(ret < min) {
 | 
				
			||||||
            errno = EILSEQ;
 | 
					            errno = EILSEQ;
 | 
				
			||||||
            return 0;
 | 
					            return (wchar_t)-1;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        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 0;
 | 
					        return (wchar_t)-1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    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(ch < min) goto ILSEQ;
 | 
					        if(ret < min) goto ILSEQ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return ret;
 | 
					        return ret;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,8 +10,7 @@
 | 
				
			||||||
struct utf8_encode_state*
 | 
					struct utf8_encode_state*
 | 
				
			||||||
utf8_encoder(struct utf8_encode_state* state)
 | 
					utf8_encoder(struct utf8_encode_state* state)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    char* wr = state->wr, * ret;
 | 
					    char* wr, * ret, * endp;
 | 
				
			||||||
    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;
 | 
				
			||||||
| 
						 | 
					@ -21,6 +20,9 @@ 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;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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=0
 | 
					SOMICRO=2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										2
									
								
								version
								
								
								
								
							
							
						
						
									
										2
									
								
								version
								
								
								
								
							| 
						 | 
					@ -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=0
 | 
					VERMICRO=2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 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
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue