Пример #1
0
Файл: chain.c Проект: Kafay/vlc
char *config_StringEscape( const char *psz_string )
{
    char *psz_return;
    char *psz_dst;
    int i_escape;

    if( !psz_string )
        return NULL;

    i_escape = 0;
    for( const char *p = psz_string; *p; p++ )
    {
        if( IsEscapeNeeded( *p ) )
            i_escape++;
    }

    psz_return = psz_dst = malloc( strlen( psz_string ) + i_escape + 1 );
    for( const char *p = psz_string; *p; p++ )
    {
        if( IsEscapeNeeded( *p ) )
            *psz_dst++ = '\\';
        *psz_dst++ = *p;
    }
    *psz_dst = '\0';

    return psz_return;
}
Пример #2
0
char *config_StringEscape( const char *str )
{
    size_t length = 0;

    if( str == NULL )
        return NULL;

    for( const char *p = str; *p; p++ )
        length += IsEscapeNeeded( *p ) ? 2 : 1;

    char *ret = xmalloc( length + 1 ), *dst = ret;
    for( const char *p = str; *p; p++ )
    {
        if( IsEscapeNeeded( *p ) )
            *dst++ = '\\';
        *dst++ = *p;
    }
    *dst = '\0';;
    return ret;
}
Пример #3
0
static bool IsEscape( const char *psz )
{
    if( !psz )
        return false;
    return psz[0] == '\\' && IsEscapeNeeded( psz[1] );
}