diff options
author | Robin KAY <komadori@users.sourceforge.net> | 2003-10-12 14:28:37 +0000 |
---|---|---|
committer | Robin KAY <komadori@users.sourceforge.net> | 2003-10-12 14:28:37 +0000 |
commit | cced39271f378b1cab9e2bb09f361ac23a698e1d (patch) | |
tree | d6e0d9e41c617ace6a4e580381a707b48f7a1628 /src | |
parent | c39b590ac245bd43b6ded4e51c9f37f3d6e2e19e (diff) | |
download | xine-lib-cced39271f378b1cab9e2bb09f361ac23a698e1d.tar.gz xine-lib-cced39271f378b1cab9e2bb09f361ac23a698e1d.tar.bz2 |
Fallback when iconv_open fails.
CVS patchset: 5489
CVS date: 2003/10/12 14:28:37
Diffstat (limited to 'src')
-rw-r--r-- | src/input/mms.c | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/src/input/mms.c b/src/input/mms.c index e7a27e2a1..b037cf1e7 100644 --- a/src/input/mms.c +++ b/src/input/mms.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: mms.c,v 1.32 2003/10/11 20:42:38 tmattern Exp $ + * $Id: mms.c,v 1.33 2003/10/12 14:28:37 komadori Exp $ * * MMS over TCP protocol * based on work from major mms @@ -269,18 +269,32 @@ static iconv_t string_utf16_open() { } static void string_utf16_close(iconv_t url_conv) { - iconv_close(url_conv); + if (url_conv != (iconv_t)-1) { + iconv_close(url_conv); + } } static void string_utf16(iconv_t url_conv, char *dest, char *src, int len) { - size_t len1, len2; - char *ip, *op; - memset(dest, 0, 1000); - len1 = len; len2 = 1000; - ip = src; op = dest; - iconv(url_conv, &ip, &len1, &op, &len2); + if (url_conv == (iconv_t)-1) { + int i; + + for (i = 0; i < len; i++) { + dest[i * 2] = src[i]; + dest[i * 2 + 1] = 0; + } + dest[i * 2] = 0; + dest[i * 2 + 1] = 0; + } + else { + size_t len1, len2; + char *ip, *op; + + len1 = len; len2 = 1000; + ip = src; op = dest; + iconv(url_conv, &ip, &len1, &op, &len2); + } } #else |