summaryrefslogtreecommitdiff
path: root/libre/sdl-libre/X11_KeyToUnicode.patch
blob: 5f0f325b1a012cbd652e426ea943436478a9ae51 (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
# HG changeset patch
# User Sam Lantinga <slouken@libsdl.org>
# Date 1327258041 18000
# Node ID 900a0fae90ca65cff55a70a17b9ec39d2ddccbcf
# Parent  5273dfd19a5e8c5736a0d417bd441f704c5355f8
Fixed bug 1390 - X11_KeyToUnicode

manuel.montezelo 2012-01-22 08:56:18 PST

We had the following bug report at Debian:
http://bugs.debian.org/376560

Same one in Ubuntu:
https://bugs.launchpad.net/ubuntu/+source/libsdl1.2/+bug/66217

We've been including a patch since then (attached) to actually export the
symbol, since 2006.  In the last release the function seems to be there, alive
and kicking.

It's affecting other people too:
http://www.garagegames.com/community/forums/viewthread/52287

diff -r 5273dfd19a5e -r 900a0fae90ca src/video/x11/SDL_x11events.c
--- a/src/video/x11/SDL_x11events.c	Sat Jan 21 12:06:51 2012 -0500
+++ b/src/video/x11/SDL_x11events.c	Sun Jan 22 13:47:21 2012 -0500
@@ -1246,8 +1246,11 @@
  * sequences (dead accents, compose key sequences) will not work since the
  * state has been irrevocably lost.
  */
+extern DECLSPEC Uint16 SDLCALL X11_KeyToUnicode(SDLKey, SDLMod);
+
 Uint16 X11_KeyToUnicode(SDLKey keysym, SDLMod modifiers)
 {
+	static int warning = 0;
 	struct SDL_VideoDevice *this = current_video;
 	char keybuf[32];
 	int i;
@@ -1255,6 +1258,12 @@
 	XKeyEvent xkey;
 	Uint16 unicode;
 
+	if ( warning ) {
+		warning = 0;
+		fprintf(stderr, "WARNING: Application is using X11_KeyToUnicode().\n");
+		fprintf(stderr, "This is not an official SDL function, please report this as a bug.\n");
+	}
+
 	if ( !this || !SDL_Display ) {
 		return 0;
 	}