X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fdemux%2Fnsc.c;h=9a78cd3ed0a71aeded34b9d63b977cfa39ade080;hb=6ee1e193fd896ab9a4729fde14f009d9ce629815;hp=77ff04d6a89e3b7ee4f6219bcd5afb1b89173e66;hpb=0ade81b0ebaa94d8529e4784b460bc921be70f54;p=vlc diff --git a/modules/demux/nsc.c b/modules/demux/nsc.c index 77ff04d6a8..9a78cd3ed0 100644 --- a/modules/demux/nsc.c +++ b/modules/demux/nsc.c @@ -25,12 +25,11 @@ /***************************************************************************** * Preamble *****************************************************************************/ -#include /* malloc(), free() */ -#include #include -#include +#include #include +#include #define MAX_LINE 16024 /***************************************************************************** @@ -136,7 +135,7 @@ static int load_byte( unsigned char encoding_type, return 0; } -char *nscdec( vlc_object_t *p_demux, char* p_encoded ) +static char *nscdec( vlc_object_t *p_demux, char* p_encoded ) { unsigned int i; unsigned char tmp; @@ -147,7 +146,7 @@ char *nscdec( vlc_object_t *p_demux, char* p_encoded ) vlc_iconv_t conv; size_t buf16_size; unsigned char *buf16; - char *p_buf16; + const char *p_buf16; size_t buf8_size; char *buf8; char *p_buf8; @@ -208,7 +207,7 @@ char *nscdec( vlc_object_t *p_demux, char* p_encoded ) } buf16_size = length; - buf16 = (unsigned char *)malloc( buf16_size ); + buf16 = malloc( buf16_size ); if( buf16 == NULL ) { msg_Err( p_demux, "out of memory" ); @@ -220,33 +219,33 @@ char *nscdec( vlc_object_t *p_demux, char* p_encoded ) if( load_byte( encoding_type, &buf16[ i ], &p_input, &j, &k ) ) { msg_Err( p_demux, "load_byte failed" ); - free( (void *)buf16 ); + free( buf16 ); return NULL; } } buf8_size = length; - buf8 = (char *)malloc( buf8_size + 1 ); + buf8 = malloc( buf8_size + 1 ); if( buf8 == NULL ) { msg_Err( p_demux, "out of memory" ); - free( (void *)buf16 ); + free( buf16 ); return NULL; } conv = vlc_iconv_open( "UTF-8", "UTF-16LE" ); - if( conv == (vlc_iconv_t)-1 ) + if( conv == (vlc_iconv_t)(-1) ) { msg_Err( p_demux, "iconv_open failed" ); - free( (void *)buf16 ); - free( (void *)buf8 ); + free( buf16 ); + free( buf8 ); return NULL; } - p_buf8 = &buf8[ 0 ]; - p_buf16 = (char *)&buf16[ 0 ]; + p_buf8 = buf8; + p_buf16 = (const char *)buf16; - if( vlc_iconv( conv, &p_buf16, &buf16_size, &p_buf8, &buf8_size ) < 0 ) + if( vlc_iconv( conv, &p_buf16, &buf16_size, &p_buf8, &buf8_size ) == (size_t)(-1) ) { msg_Err( p_demux, "iconv failed" ); return NULL; @@ -258,7 +257,7 @@ char *nscdec( vlc_object_t *p_demux, char* p_encoded ) vlc_iconv_close( conv ); - free( (void *)buf16 ); + free( buf16 ); return buf8; } @@ -319,7 +318,7 @@ static int ParseLine ( demux_t *p_demux, char *psz_line ) } *psz_value = '\0'; psz_value++; - + if( !strncasecmp( psz_value, "0x", 2 ) ) { int i_value;