# HG changeset patch # User albeu # Date 1143167489 0 # Node ID ed9950b8200d71e856c8f30ee3b36a61d7ea4e32 # Parent 81cbc8debd3c7209a2be582a3fc24acb0a25e56c The fix in mp_msg.c avoids a core dump when iconv_open() fails, the other just makes it possible to compile if USE_ICONV is undefined. Patch by Bjorn Sandell (biorn _At_ chalmers _Dot_ se). diff -r 81cbc8debd3c -r ed9950b8200d libvo/font_load_ft.c --- a/libvo/font_load_ft.c Fri Mar 24 01:32:04 2006 +0000 +++ b/libvo/font_load_ft.c Fri Mar 24 02:31:29 2006 +0000 @@ -18,7 +18,9 @@ #include #include +#ifdef USE_ICONV #include +#endif #include #include FT_FREETYPE_H @@ -731,7 +733,7 @@ return 0; } - +#ifdef USE_ICONV /* decode from 'encoding' to unicode */ static FT_ULong decode_char(iconv_t *cd, char c) { FT_ULong o; @@ -830,6 +832,7 @@ return i; } +#endif static font_desc_t* init_font_desc(void) { @@ -1015,6 +1018,7 @@ } desc->face_cnt++; +#ifdef USE_ICONV if (unicode) { charset_size = prepare_charset_unicode(face, my_charset, my_charcodes); } else { @@ -1030,6 +1034,9 @@ free_font_desc(desc); return NULL; } +#else + return NULL; +#endif // fprintf(stderr, "fg: prepare t = %lf\n", GetTimer()-t); diff -r 81cbc8debd3c -r ed9950b8200d mp_msg.c --- a/mp_msg.c Fri Mar 24 01:32:04 2006 +0000 +++ b/mp_msg.c Fri Mar 24 02:31:29 2006 +0000 @@ -102,6 +102,10 @@ msgiconv = iconv_open(mp_msg_charset, MSG_CHARSET); old_charset = strdup(mp_msg_charset); } + if (msgiconv == (iconv_t)(-1)) { + fprintf(stderr,"iconv: conversion from %s to %s unsupported\n" + ,mp_msg_charset,MSG_CHARSET); + }else{ memset(tmp2, 0, MSGSIZE_MAX); while (iconv(msgiconv, &in, &inlen, &out, &outlen) == -1) { if (!inlen || !outlen) @@ -112,6 +116,7 @@ strncpy(tmp, tmp2, MSGSIZE_MAX); tmp[MSGSIZE_MAX-1] = 0; tmp[MSGSIZE_MAX-2] = '\n'; + } } #endif