LINUX.ORG.RU

История изменений

Исправление bormant, (текущая версия) :

Ошибочка:

    int i = 1;
Но практичнее:
const char *get_utf8_substr( const char *in, size_t index )
{
    const uint8_t *p = in;
    for( ; *p && index; index-- )
        while( 0x80 == (*++p & 0xC0) );
    return p;
}

Исправление bormant, :

Ошибочка:

    int i = 1;
Но практичнее:
const char *get_utf8_substr( const char *in, size_t index )
{
    const uint8_t *p = in;
    for( ; *p && index; index-- ) {
        while( 0x80 == (*(++p) & 0xC0) );
    }
    return p;
}

Исходная версия bormant, :

Ошибочка:

    int i = 1;
Но практичнее:
const char *get_utf8_substr( const char *in, size_t index )
{
    const uint8_t *p = in;
    for( ; *p && index; index-- ) {
        while( 0x80 == (*(++p) & 0xC0) );
    }
    return p;
}