[vlc-commits] subsdec: Fix unicode regression

Hugo Beauzée-Luyssen git at videolan.org
Tue Jul 28 16:02:00 CEST 2015


vlc | branch: master | Hugo Beauzée-Luyssen <hugo at beauzee.fr> | Wed Jul 22 13:16:01 2015 +0200| [ff6e966215cf778ab2f3057a9e731c92bba7ce3c] | committer: Jean-Baptiste Kempf

subsdec: Fix unicode regression

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ff6e966215cf778ab2f3057a9e731c92bba7ce3c
---

 modules/codec/subsdec.c |   14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/modules/codec/subsdec.c b/modules/codec/subsdec.c
index 3d70255..a96bb6a 100644
--- a/modules/codec/subsdec.c
+++ b/modules/codec/subsdec.c
@@ -645,7 +645,17 @@ static subpicture_t *ParseText( decoder_t *p_dec, block_t *p_block )
     return p_spu;
 }
 
-static bool AppendCharacter( text_segment_t* p_segment, wchar_t c )
+static bool AppendCharacter( text_segment_t* p_segment, char c )
+{
+    char* tmp;
+    if ( asprintf( &tmp, "%s%c", p_segment->psz_text ? p_segment->psz_text : "", c ) < 0 )
+        return false;
+    free( p_segment->psz_text );
+    p_segment->psz_text = tmp;
+    return true;
+}
+
+static bool AppendWideCharacter( text_segment_t* p_segment, wchar_t c )
 {
     char* tmp;
     if ( asprintf( &tmp, "%s%lc", p_segment->psz_text ? p_segment->psz_text : "", c ) < 0 )
@@ -1154,7 +1164,7 @@ static text_segment_t* ParseSubtitles( int *pi_align, const char *psz_subtitle )
             }
             else if( !strncasecmp( psz_subtitle, "\\h", 2 ) )
             {
-                if ( !AppendCharacter( p_segment, L'\u00A0' ) )
+                if ( !AppendWideCharacter( p_segment, L'\u00A0' ) )
                     goto fail;
                 psz_subtitle += 2;
             }



More information about the vlc-commits mailing list