[vlc-devel] [PATCH 1/4] Treat UTF-16 as UCS-2 on OS/2

Rémi Denis-Courmont remi at remlab.net
Fri Jan 27 22:38:19 CET 2012


Le lundi 16 janvier 2012 04:26:33 KO Myung-Hun, vous avez écrit :
> KO Myung-Hun wrote:
> > OS/2 supports UCS-2 only instead of UTF-16.
> > ---
> > 
> >  src/extras/libc.c |   17 +++++++++++++++++
> >  1 files changed, 17 insertions(+), 0 deletions(-)
> > 
> > diff --git a/src/extras/libc.c b/src/extras/libc.c
> > index 6df1a52..08b19fc 100644
> > --- a/src/extras/libc.c
> > +++ b/src/extras/libc.c
> > @@ -326,6 +326,23 @@ vlc_iconv_t vlc_iconv_open( const char *tocode,
> > const char *fromcode )
> > 
> >          return (vlc_iconv_t)(-2);
> >  
> >  #endif
> >  #if defined(HAVE_ICONV)
> > 
> > +# if defined(__OS2__) && defined(__INNOTEK_LIBC__)
> > +    char tocode_ucs2[] = "UCS-2LE";
> > +    char fromcode_ucs2[] = "UCS-2LE";
> > +
> > +    /* Workaround for UTF-16 because OS/2 supports UCS-2 only not UTF-16
> > */ +    if( !strncmp( tocode, "UTF-16", 6 ))
> > +    {
> > +        strncpy( tocode_ucs2 + 5, tocode + 6, 2 );
> > +        tocode = tocode_ucs2;
> > +    }
> > +
> > +    if( !strncmp( fromcode, "UTF-16", 6 ))
> > +    {
> > +        strncpy( fromcode_ucs2 + 5, fromcode + 6, 2 );
> > +        fromcode = fromcode_ucs2;
> > +    }
> > +# endif
> > 
> >      return iconv_open( tocode, fromcode );
> >  
> >  #else
> >  
> >      return (vlc_iconv_t)(-1);
> 
> Ping ?

I'm not sure if this will work correctly. While technically, they are two 
names for the same specification, UCS-2 and UTF-16 usually mean different 
things. UCS-2 is usually limited to the Basic Multilingual Plane of Unicode, 
while UTF-16 is not.

-- 
Rémi Denis-Courmont
http://www.remlab.net/
http://fi.linkedin.com/in/remidenis



More information about the vlc-devel mailing list