X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Ftext%2Fstrings.c;h=c73dec683335cad5362926ee4ae1ecc35769472c;hb=6d0ff11dec49ae7f335ceed15c6a2e46cddd880d;hp=9c6d9315e107c8912cd06ce99bbb701d9319313d;hpb=30ceb37fe8d1cacb6f8fac51f9c1a2a58d324ca0;p=vlc diff --git a/src/text/strings.c b/src/text/strings.c index 9c6d9315e1..c73dec6833 100644 --- a/src/text/strings.c +++ b/src/text/strings.c @@ -48,89 +48,6 @@ #include #include -/** - * Unescape URI encoded string - * \return decoded duplicated string - */ -char *unescape_URI_duplicate( const char *psz ) -{ - char *psz_dup = strdup( psz ); - unescape_URI( psz_dup ); - return psz_dup; -} - -/** - * Unescape URI encoded string in place - * \return nothing - */ -void unescape_URI( char *psz ) -{ - unsigned char *in = (unsigned char *)psz, *out = in, c; - if( psz == NULL ) - return; - - while( ( c = *in++ ) != '\0' ) - { - switch( c ) - { - case '%': - { - char val[5], *pval = val; - unsigned long cp; - - switch( c = *in++ ) - { - case '\0': - return; - - case 'u': - case 'U': - if( ( *pval++ = *in++ ) == '\0' ) - return; - if( ( *pval++ = *in++ ) == '\0' ) - return; - c = *in++; - - default: - *pval++ = c; - if( ( *pval++ = *in++ ) == '\0' ) - return; - *pval = '\0'; - } - - cp = strtoul( val, NULL, 0x10 ); - if( cp < 0x80 ) - *out++ = cp; - else - if( cp < 0x800 ) - { - *out++ = (( cp >> 6) | 0xc0); - *out++ = (( cp & 0x3f) | 0x80); - } - else - { - assert( cp < 0x10000 ); - *out++ = (( cp >> 12) | 0xe0); - *out++ = (((cp >> 6) & 0x3f) | 0x80); - *out++ = (( cp & 0x3f) | 0x80); - } - break; - } - - /* + is not a special case - it means plus, not space. */ - - default: - /* Inserting non-ASCII or non-printable characters is unsafe, - * and no sane browser will send these unencoded */ - if( ( c < 32 ) || ( c > 127 ) ) - *out++ = '?'; - else - *out++ = c; - } - } - *out = '\0'; -} - /** * Decode encoded URI component. See also decode_URI(). * \return decoded duplicated string @@ -875,14 +792,14 @@ char *__str_format_meta( vlc_object_t *p_object, const char *string ) if( p_item ) { mtime_t i_duration = input_item_GetDuration( p_item ); - sprintf( buf, "%02d:%02d:%02d", + snprintf( buf, 10, "%02d:%02d:%02d", (int)(i_duration/(3600000000)), (int)((i_duration/(60000000))%60), (int)((i_duration/1000000)%60) ); } else { - sprintf( buf, b_empty_if_na ? "" : "--:--:--" ); + snprintf( buf, 10, b_empty_if_na ? "" : "--:--:--" ); } INSERT_STRING_NO_FREE( buf ); break; @@ -909,14 +826,14 @@ char *__str_format_meta( vlc_object_t *p_object, const char *string ) { mtime_t i_duration = input_item_GetDuration( p_item ); int64_t i_time = var_GetInteger( p_input, "time" ); - sprintf( buf, "%02d:%02d:%02d", + snprintf( buf, 10, "%02d:%02d:%02d", (int)( ( i_duration - i_time ) / 3600000000 ), (int)( ( ( i_duration - i_time ) / 60000000 ) % 60 ), (int)( ( ( i_duration - i_time ) / 1000000 ) % 60 ) ); } else { - sprintf( buf, b_empty_if_na ? "" : "--:--:--" ); + snprintf( buf, 10, b_empty_if_na ? "" : "--:--:--" ); } INSERT_STRING_NO_FREE( buf ); break; @@ -945,7 +862,7 @@ char *__str_format_meta( vlc_object_t *p_object, const char *string ) } else { - sprintf( buf, b_empty_if_na ? "" : "--.-%%" ); + snprintf( buf, 10, b_empty_if_na ? "" : "--.-%%" ); } INSERT_STRING_NO_FREE( buf ); break; @@ -977,14 +894,14 @@ char *__str_format_meta( vlc_object_t *p_object, const char *string ) if( p_input ) { int64_t i_time = var_GetInteger( p_input, "time" ); - sprintf( buf, "%02d:%02d:%02d", + snprintf( buf, 10, "%02d:%02d:%02d", (int)( i_time / ( 3600000000 ) ), (int)( ( i_time / ( 60000000 ) ) % 60 ), (int)( ( i_time / 1000000 ) % 60 ) ); } else { - sprintf( buf, b_empty_if_na ? "" : "--:--:--" ); + snprintf( buf, 10, b_empty_if_na ? "" : "--:--:--" ); } INSERT_STRING_NO_FREE( buf ); break;