From afc5bf952736daa61ffed56f1ab8152a5b707409 Mon Sep 17 00:00:00 2001 From: Rodrigo Braz Monteiro Date: Mon, 9 Apr 2007 02:13:03 +0000 Subject: [PATCH] libass patched to build on MSVC. Originally committed to SVN as r1036. --- libass/ass_fontconfig.c | 4 + libass/ass_utils.c | 2 + libass/libass.vcproj | 243 ++++++++++++++++++++++++++++ libass/libass_msvc.patch | 340 +++++++++++++++++++++++++++++++++++++++ libass/mputils.c | 2 +- libass/mputils.h | 6 + libass/msvc.h | 20 +++ 7 files changed, 616 insertions(+), 1 deletion(-) create mode 100644 libass/libass.vcproj create mode 100644 libass/libass_msvc.patch create mode 100644 libass/msvc.h diff --git a/libass/ass_fontconfig.c b/libass/ass_fontconfig.c index 3d4f103ed..9dd832501 100644 --- a/libass/ass_fontconfig.c +++ b/libass/ass_fontconfig.c @@ -385,11 +385,15 @@ fc_instance_t* fontconfig_init(ass_library_t* library, FT_Library ftlibrary, con priv->family_default = family ? strdup(family) : 0; priv->index_default = 0; +#ifdef __VISUALC__ + priv->path_default = path; +#else rc = stat(path, &st); if (!rc && S_ISREG(st.st_mode)) priv->path_default = path ? strdup(path) : 0; else priv->path_default = 0; +#endif return priv; } diff --git a/libass/ass_utils.c b/libass/ass_utils.c index 7b7662e88..cfa8ba4e0 100644 --- a/libass/ass_utils.c +++ b/libass/ass_utils.c @@ -22,7 +22,9 @@ #include #include +#ifndef __VISUALC__ #include +#endif #include #include "mputils.h" diff --git a/libass/libass.vcproj b/libass/libass.vcproj new file mode 100644 index 000000000..b5a53d4b6 --- /dev/null +++ b/libass/libass.vcproj @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libass/libass_msvc.patch b/libass/libass_msvc.patch new file mode 100644 index 000000000..116eff09c --- /dev/null +++ b/libass/libass_msvc.patch @@ -0,0 +1,340 @@ +Index: ass_fontconfig.c +=================================================================== +--- ass_fontconfig.c (revision 1035) ++++ ass_fontconfig.c (working copy) +@@ -385,11 +385,15 @@ + priv->family_default = family ? strdup(family) : 0; + priv->index_default = 0; + ++#ifdef __VISUALC__ ++ priv->path_default = path; ++#else + rc = stat(path, &st); + if (!rc && S_ISREG(st.st_mode)) + priv->path_default = path ? strdup(path) : 0; + else + priv->path_default = 0; ++#endif + + return priv; + } +Index: ass_utils.c +=================================================================== +--- ass_utils.c (revision 1035) ++++ ass_utils.c (working copy) +@@ -22,7 +22,9 @@ + + #include + #include ++#ifndef __VISUALC__ + #include ++#endif + #include + + #include "mputils.h" +Index: libass.vcproj +=================================================================== +--- libass.vcproj (revision 0) ++++ libass.vcproj (revision 0) +@@ -0,0 +1,243 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +Index: mputils.c +=================================================================== +--- mputils.c (revision 1035) ++++ mputils.c (working copy) +@@ -14,9 +14,9 @@ + #endif + + void my_mp_msg(int lvl, char *lvl_str, char *fmt, ...) { ++ va_list va; + if(lvl > MSGL_V) return; + printf("[ass] **%s**: ", lvl_str); +- va_list va; + va_start(va, fmt); + vprintf(fmt, va); + va_end(va); +Index: mputils.h +=================================================================== +--- mputils.h (revision 1035) ++++ mputils.h (working copy) +@@ -7,7 +7,13 @@ + + void my_mp_msg(int lvl, char *lvl_str, char *fmt, ...); + ++#ifdef __VISUALC__ ++static void mp_msg(int mod, int level, const char *fmt, ...) { ++ // MSVC doesn't like the # used all around for mp_msg, so it breaks va_arg ++} ++#else + #define mp_msg(mod, level, args...) my_mp_msg(level, #level, args) ++#endif + + #define MSGT_ASS 43 + +Index: msvc.h +=================================================================== +--- msvc.h (revision 0) ++++ msvc.h (revision 0) +@@ -0,0 +1,20 @@ ++#ifdef WIN32 ++ ++#include ++ ++#define strtoll(p, e, b) _strtoi64(p, e, b) ++#define snprintf _snprintf ++#define strcasecmp stricmp ++#define strncasecmp strnicmp ++ ++#ifndef M_PI ++#define M_PI 3.1415926535897932384626433832795 ++#endif ++ ++#define __VISUALC__ ++#define HAVE_FONTCONFIG ++ ++#define S_IFREG 0100000 ++#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) ++ ++#endif diff --git a/libass/mputils.c b/libass/mputils.c index 2c1a348e7..be8242bd8 100644 --- a/libass/mputils.c +++ b/libass/mputils.c @@ -14,9 +14,9 @@ #endif void my_mp_msg(int lvl, char *lvl_str, char *fmt, ...) { + va_list va; if(lvl > MSGL_V) return; printf("[ass] **%s**: ", lvl_str); - va_list va; va_start(va, fmt); vprintf(fmt, va); va_end(va); diff --git a/libass/mputils.h b/libass/mputils.h index 3450b1c82..6f0e33217 100644 --- a/libass/mputils.h +++ b/libass/mputils.h @@ -7,7 +7,13 @@ unsigned utf8_get_char(char **str); void my_mp_msg(int lvl, char *lvl_str, char *fmt, ...); +#ifdef __VISUALC__ +static void mp_msg(int mod, int level, const char *fmt, ...) { + // MSVC doesn't like the # used all around for mp_msg, so it breaks va_arg +} +#else #define mp_msg(mod, level, args...) my_mp_msg(level, #level, args) +#endif #define MSGT_ASS 43 diff --git a/libass/msvc.h b/libass/msvc.h new file mode 100644 index 000000000..4548515d4 --- /dev/null +++ b/libass/msvc.h @@ -0,0 +1,20 @@ +#ifdef WIN32 + +#include + +#define strtoll(p, e, b) _strtoi64(p, e, b) +#define snprintf _snprintf +#define strcasecmp stricmp +#define strncasecmp strnicmp + +#ifndef M_PI +#define M_PI 3.1415926535897932384626433832795 +#endif + +#define __VISUALC__ +#define HAVE_FONTCONFIG + +#define S_IFREG 0100000 +#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) + +#endif