[Asterisk-Dev] IAX spec: Text formats and character sets

Kevin P. Fleming kpfleming at digium.com
Fri Apr 29 14:34:46 MST 2005


Kristian Nielsen wrote:

>     int utf8cpy(char *dst, const char *src, int size)
>     {
>         int i;
> 
>         if(size <= 0)
>             return -1;
> 
>         for(i = 0; i < size && (dst[i] = src[i]); i++);
> 
>         if(src[i] >= 0x80 && src[i] < 0xc0) {
>             do
>                 i--;
>             while(i > 0 && dst[i] >= 0x80 && dst[i] < 0xc0);
>         }
>         else if(i == size)
>             i--;
> 
>         src[i] = '\0';
>         return i;
>     }

That looks pretty good to me. I'd probably change "int size" "size_t 
size", and eliminate the worry about it being unsigned at the same time.



More information about the asterisk-dev mailing list