[vlc-commits] src: Fix for Mac OS X filesystem filename encoding

Naohiro KORIYAMA git at videolan.org
Thu Aug 22 12:19:14 CEST 2013


vlc | branch: master | Naohiro KORIYAMA <nkoriyama at gmail.com> | Tue Aug 21 11:34:07 2012 +0900| [0970461e97dc0dbd54006c7e7a9da80990f946a0] | committer: Felix Paul Kühne

src: Fix for Mac OS X filesystem filename encoding

Signed-off-by: Felix Paul Kühne <fkuehne at videolan.org>

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

 src/text/url.c |   14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/text/url.c b/src/text/url.c
index 40043ba..c809fbe 100644
--- a/src/text/url.c
+++ b/src/text/url.c
@@ -32,6 +32,7 @@
 
 #include <vlc_common.h>
 #include <vlc_url.h>
+#include <vlc_charset.h>
 #include <vlc_fs.h>
 #include <ctype.h>
 
@@ -170,6 +171,19 @@ char *vlc_path2uri (const char *path, const char *scheme)
     path = p;
 #endif
 
+#if defined( __APPLE__ )
+    /* Mac OS X uses Unicode for their files and folder name with HFS+:
+     * Unicode Normalization Form D (NFD) (with some modification).
+     * But simply converting to NFC causes some problem.
+     * So using UTF-8-MAC, encoding for HFS+, to convert to UTF-8.
+     *
+     * Note: UTF-8-MAC is only implemented for built-in iconv on Mac OS X.
+     */
+    char* psz_tmp_path = FromCharset("UTF-8-MAC", path, strlen(path));
+    strcpy((char *)path, psz_tmp_path);
+    free(psz_tmp_path);
+#endif
+
 #if defined( _WIN32 ) || defined( __OS2__ )
     /* Drive letter */
     if (isalpha ((unsigned char)path[0]) && (path[1] == ':'))



More information about the vlc-commits mailing list