From 17554c9d36548c3ee64a70880a08ffedebee323b Mon Sep 17 00:00:00 2001
From: Steve Lhomme <robux4@ycbcr.xyz>
Date: Tue, 19 Mar 2019 12:09:52 +0100
Subject: [PATCH] contrib: libass: don't use tchar for opendir

Since it always assumes it outputs unicode strings even though _UNICODE is not
defined.
---
 contrib/src/ass/libass-no-tchar.patch | 34 +++++++++++++++++++++++++++
 contrib/src/ass/rules.mak             |  1 +
 2 files changed, 35 insertions(+)
 create mode 100644 contrib/src/ass/libass-no-tchar.patch

diff --git a/contrib/src/ass/libass-no-tchar.patch b/contrib/src/ass/libass-no-tchar.patch
new file mode 100644
index 000000000000..12a6681e95fc
--- /dev/null
+++ b/contrib/src/ass/libass-no-tchar.patch
@@ -0,0 +1,34 @@
+--- libass/libass/ass_fontselect.c.tchar	2019-03-19 12:07:15.464633200 +0100
++++ libass/libass/ass_fontselect.c	2019-03-19 12:06:48.404627300 +0100
+@@ -48,7 +48,6 @@
+ #include "ass_string.h"
+ 
+ #include <windows.h>
+-#include <tchar.h>
+ 
+ #define ABS(x) ((x) < 0 ? -(x) : (x))
+ #define MAX_FULLNAME 100
+@@ -195,12 +194,12 @@ static inline wchar_t *ToWide (const cha
+ static void load_fonts_from_dir(ASS_Library *library, const char *dir)
+ {
+     wchar_t *dirw = ToWide(dir);
+-    _TDIR *d = _topendir(dirw);
++    _WDIR *d = _wopendir(dirw);
+     free(dirw);
+     if (!d)
+         return;
+     while (1) {
+-        struct _tdirent *entry = _treaddir(d);
++        struct _wdirent *entry = _wreaddir(d);
+         if (!entry)
+             break;
+         char* d_name = FromWide(entry->d_name);
+@@ -220,7 +219,7 @@ static void load_fonts_from_dir(ASS_Libr
+         }
+         free(d_name);
+     }
+-    _tclosedir(d);
++    _wclosedir(d);
+ }
+ 
+ /**
diff --git a/contrib/src/ass/rules.mak b/contrib/src/ass/rules.mak
index 5ba7f116684f..5029002ab67a 100644
--- a/contrib/src/ass/rules.mak
+++ b/contrib/src/ass/rules.mak
@@ -50,6 +50,7 @@ libass: libass-$(ASS_VERSION).tar.gz .sum-ass
 	$(APPLY) $(SRC)/ass/ass-macosx.patch
 ifdef HAVE_WIN32
 	$(APPLY) $(SRC)/ass/use-topendir.patch
+	$(APPLY) $(SRC)/ass/libass-no-tchar.patch
 ifdef HAVE_WINSTORE
 	$(APPLY) $(SRC)/ass/dwrite.patch
 endif
-- 
GitLab