summaryrefslogtreecommitdiffstats
path: root/src/libcaca-2-vsnprintf.patch
blob: 922e6eb69f40a8ce913de2feffd3b774b25b899f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
This file is part of MXE. See LICENSE.md for licensing information.

From 28a0c250320661a3fe15d3f0373ace044cccd8e5 Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Fri, 22 Aug 2014 10:02:58 -0700
Subject: [PATCH 1/2] Add more [v]snprintf() fallback

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
---
 caca/driver/ncurses.c | 4 ++++
 caca/driver/slang.c   | 4 ++++
 caca/driver/x11.c     | 4 ++++
 caca/prof.c           | 4 ++++
 4 files changed, 16 insertions(+)

diff --git a/caca/driver/ncurses.c b/caca/driver/ncurses.c
index 8161c0f..53c76c1 100644
--- a/caca/driver/ncurses.c
+++ b/caca/driver/ncurses.c
@@ -634,7 +634,11 @@ static void ncurses_uninstall_terminal(caca_display_t *dp)
     if(!dp->drv.p->term)
         return;
 
+#if defined(HAVE_SNPRINTF)
     snprintf(termenv, 1023, "TERM=%s", dp->drv.p->term);
+#else
+    sprintf(termenv, "TERM=%s", dp->drv.p->term);
+#endif
     free(dp->drv.p->term);
     (void)putenv(termenv);
 }
diff --git a/caca/driver/slang.c b/caca/driver/slang.c
index 4dd9fb6..cf38ecf 100644
--- a/caca/driver/slang.c
+++ b/caca/driver/slang.c
@@ -576,7 +576,11 @@ static void slang_uninstall_terminal(caca_display_t *dp)
     if(!dp->drv.p->term)
         return;
 
+#if defined(HAVE_SNPRINTF)
     snprintf(termenv, 1023, "TERM=%s", dp->drv.p->term);
+#else
+    sprintf(termenv, "TERM=%s", dp->drv.p->term);
+#endif
     free(dp->drv.p->term);
     (void)putenv(termenv);
 }
diff --git a/caca/driver/x11.c b/caca/driver/x11.c
index 6bd04cf..24bcdbf 100644
--- a/caca/driver/x11.c
+++ b/caca/driver/x11.c
@@ -155,7 +155,11 @@ static int x11_init_graphics(caca_display_t *dp)
 
             if (dp->drv.p->font_set)
                 XFreeFontSet(dp->drv.p->dpy, dp->drv.p->font_set);
+#if defined(HAVE_SNPRINTF)
             snprintf(buf, BUFSIZ - 1, "%s,*", *parser);
+#else
+            sprintf(buf, "%s,*", *parser);
+#endif
             dp->drv.p->font_set = XCreateFontSet(dp->drv.p->dpy, buf,
                                                  &missing_charset_list,
                                                  &missing_charset_count,
diff --git a/caca/prof.c b/caca/prof.c
index 4581aaf..6aaa295 100644
--- a/caca/prof.c
+++ b/caca/prof.c
@@ -59,7 +59,11 @@ void _caca_init_stat(struct caca_stat *s, const char *format, ...)
     s->name = malloc(128 * sizeof(char));
     va_list args;
     va_start(args, format);
+#if defined(HAVE_VSNPRINTF)
     vsnprintf(s->name, 128, format, args);
+#else
+    vsprintf(s->name, format, args);
+#endif
     s->name[127] = '\0';
     va_end(args);
 
-- 
1.9.1


From 2d9f0f378261d19b56a66f9f0f0508f11f31e56c Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Fri, 22 Aug 2014 10:04:06 -0700
Subject: [PATCH 2/2] string: remove broken vsnprintf[_s] implementation

This interferes mingw-w64, which as a proper vsnprintf definition.

The usage of vsnprintf in the file is guarded with HAVE_VSNPRINF
with appropriate fallback, so removing it should not break anything.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
---
 caca/figfont.c | 26 --------------------------
 caca/string.c  | 22 ----------------------
 2 files changed, 48 deletions(-)

diff --git a/caca/figfont.c b/caca/figfont.c
index caa44d5..4e10186 100644
--- a/caca/figfont.c
+++ b/caca/figfont.c
@@ -29,11 +29,6 @@
 #include "caca.h"
 #include "caca_internals.h"
 
-#if defined _WIN32 && defined __GNUC__ && __GNUC__ >= 3
-int sprintf_s(char *s, size_t n, const char *fmt, ...) CACA_WEAK;
-int vsnprintf(char *s, size_t n, const char *fmt, va_list ap) CACA_WEAK;
-#endif
-
 struct caca_charfont
 {
     int term_width;
@@ -633,27 +628,6 @@ static uint32_t hsmush(uint32_t ch1, uint32_t ch2, int rule)
 }
 
 /*
- * Functions for the mingw32 runtime
- */
-
-#if defined _WIN32 && defined __GNUC__ && __GNUC__ >= 3
-int sprintf_s(char *s, size_t n, const char *fmt, ...)
-{
-    va_list args;
-    int ret;
-    va_start(args, fmt);
-    ret = vsnprintf(s, n, fmt, args);
-    va_end(args);
-    return ret;
-}
-
-int vsnprintf(char *s, size_t n, const char *fmt, va_list ap)
-{
-    return 0;
-}
-#endif
-
-/*
  * XXX: The following functions are aliases.
  */
 
diff --git a/caca/string.c b/caca/string.c
index 22e0af2..db79e30 100644
--- a/caca/string.c
+++ b/caca/string.c
@@ -36,12 +36,6 @@
 #include "caca.h"
 #include "caca_internals.h"
 
-#if defined _WIN32 && defined __GNUC__ && __GNUC__ >= 3
-int vsnprintf_s(char *s, size_t n, size_t c,
-                const char *fmt, va_list ap) CACA_WEAK;
-int vsnprintf(char *s, size_t n, const char *fmt, va_list ap) CACA_WEAK;
-#endif
-
 /** \brief Set cursor position.
  *
  *  Put the cursor at the given coordinates. Functions making use of the
@@ -607,22 +601,6 @@ int caca_set_canvas_boundaries(caca_canvas_t *cv, int x, int y, int w, int h)
 }
 
 /*
- * Functions for the mingw32 runtime
- */
-
-#if defined _WIN32 && defined __GNUC__ && __GNUC__ >= 3
-int vsnprintf_s(char *s, size_t n, size_t c, const char *fmt, va_list ap)
-{
-    return vsnprintf(s, n, fmt, ap);
-}
-
-int vsnprintf(char *s, size_t n, const char *fmt, va_list ap)
-{
-    return 0;
-}
-#endif
-
-/*
  * XXX: The following functions are aliases.
  */
 
-- 
1.9.1