windows support: unicode filenames
commita1244111a790bbc4bf91b078ebcad3f415da79da
authorwm4 <wm4@mplayer2.org>
Fri, 3 Feb 2012 07:05:11 +0000 (3 08:05 +0100)
committerUoti Urpala <uau@mplayer2.org>
Fri, 9 Mar 2012 18:48:54 +0000 (9 20:48 +0200)
treebbbb99a7364b7ee4eaa96a44930f84a88db25090
parent24be34f1e9e37111a06108c090324426aff6f1db
windows support: unicode filenames

Windows uses a legacy codepage for char* / runtime functions accepting
char *. Using UTF-8 as the codepage with setlocale() is explicitly
forbidden.

Work this around by overriding the MSVCRT functions with wrapper
macros, that assume UTF-8 and use "proper" API calls like _wopen etc.
to deal with unicode filenames. All code that uses standard functions
that take or return filenames must now include osdep/io.h. stat()
can't be overridden, because MinGW-w64 itself defines "stat" as a
macro. Change code to use use mp_stat() instead.

This is not perfectly clean, but still somewhat sane, and much better
than littering the rest of the mplayer code with MinGW specific hacks.
It's also a bit fragile, but that's actually little different from the
previous situation. Also, MinGW is unlikely to ever include a nice way
of dealing with this.
20 files changed:
Makefile
input/input.c
libmpcodecs/vf_remove_logo.c
libmpdemux/demux_mf.c
libmpdemux/mf.c
libvo/vo_jpeg.c
libvo/vo_pnm.c
mplayer.c
osdep/io.c [new file with mode: 0644]
osdep/io.h [new file with mode: 0644]
parser-cfg.c
path.c
path.h
screenshot.c
stream/cookies.c
stream/stream_cddb.c
stream/stream_file.c
sub/find_subfiles.c
sub/font_load.c
timeline/tl_matroska.c