-
Notifications
You must be signed in to change notification settings - Fork 6.4k
/
cl.build.patch
147 lines (135 loc) · 3.91 KB
/
cl.build.patch
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
diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h
index 844571688..e46c4ec5d 100644
--- a/include/X11/Xlibint.h
+++ b/include/X11/Xlibint.h
@@ -1351,11 +1351,14 @@ extern int _XOpenFile(
int /* flags */
);
+#if defined(_MSC_VER) && !defined(mode_t)
+typedef int mode_t;
+#endif
extern int _XOpenFileMode(
_Xconst char* /* path */,
int /* flags */,
mode_t /* mode */
);
extern void* _XFopenFile(
_Xconst char* /* path */,
diff --git a/modules/im/ximcp/imLcLkup.c b/modules/im/ximcp/imLcLkup.c
index 56dba9673..d10de825e 100644
--- a/modules/im/ximcp/imLcLkup.c
+++ b/modules/im/ximcp/imLcLkup.c
@@ -61,27 +61,37 @@ _XimLocalMbLookupString(XIC xic, XKeyEvent *ev, char *buffer, int bytes,
||(ic->private.local.brl_committed != 0))) {
if (ic->private.local.brl_committed != 0) { /* Braille Event */
unsigned char pattern = ic->private.local.brl_committed;
+#ifndef _MSC_VER
char mb2[XLC_PUBLIC(ic->core.im->core.lcd, mb_cur_max)];
+#else
+ char *mb2 = (char*)malloc(XLC_PUBLIC(ic->core.im->core.lcd, mb_cur_max)*sizeof(char));
+#endif
ret = _Xlcwctomb(ic->core.im->core.lcd, mb2, BRL_UC_ROW | pattern);
if(ret > bytes) {
if(status) *status = XBufferOverflow;
+#ifdef _MSC_VER
+ free(mb2);
+#endif
return(ret);
}
if(keysym) *keysym = XK_braille_blank | pattern;
if(ret > 0) {
if (keysym) {
if(status) *status = XLookupBoth;
} else {
if(status) *status = XLookupChars;
}
memcpy(buffer, mb2, ret);
} else {
if(keysym) {
if(status) *status = XLookupKeySym;
} else {
if(status) *status = XLookupNone;
}
}
+#ifdef _MSC_VER
+ free(mb2);
+#endif
} else { /* Composed Event */
ret = strlen(&mb[b[ic->private.local.composed].mb]);
if(ret > bytes) {
diff --git a/src/XlibInt.c b/src/XlibInt.c
index e4fb4e5f2..4cfa1aeab 100644
--- a/src/XlibInt.c
+++ b/src/XlibInt.c
@@ -60,6 +60,8 @@ from The Open Group.
/* Needed for ioctl() on Solaris */
#ifdef HAVE_UNISTD_H
#include <unistd.h>
+#else
+ #define F_OK 0
#endif
#ifdef XTHREADS
@@ -985,7 +987,7 @@ _XWireToEvent(
case KeymapNotify:
{
register XKeymapEvent *ev = (XKeymapEvent *) re;
- ev->window = None;
+ ev->window = 0;
memcpy(&ev->key_vector[1],
(char *)((xKeymapEvent *) event)->map,
sizeof (((xKeymapEvent *) event)->map));
@@ -1919,7 +1925,11 @@ int _XOpenFileMode(path, flags, mode)
UINT olderror = SetErrorMode (SEM_FAILCRITICALERRORS);
if (AccessFile (path, buf, MAX_PATH, &bufp))
+#ifndef _MSC_VER
ret = open (bufp, flags, mode);
+#else
+ ret = _open (bufp, flags, mode);
+#endif
(void) SetErrorMode (olderror);
diff --git a/src/xlibi18n/XDefaultOMIF.c b/src/xlibi18n/XDefaultOMIF.c
index 9345547c3..77d914fe1 100644
--- a/src/xlibi18n/XDefaultOMIF.c
+++ b/src/xlibi18n/XDefaultOMIF.c
@@ -70,6 +70,14 @@ Sun Microsystems, Inc. or its licensors is granted.
#include <X11/Xatom.h>
#include <stdio.h>
+#if !defined(ssize_t)
+ #ifdef _WIN64
+ #define ssize_t long long
+ #else
+ #define ssize_t long
+ #endif
+#endif
+
#define MAXFONTS 100
#define XOM_GENERIC(om) (&((XOMGeneric) om)->gen)
diff --git a/src/xlibi18n/lcDB.c b/src/xlibi18n/lcDB.c
index e04a5d89f..fa46f8ecc 100644
--- a/src/xlibi18n/lcDB.c
+++ b/src/xlibi18n/lcDB.c
@@ -65,6 +65,14 @@
#include <stdio.h>
+#if !defined(ssize_t)
+ #ifdef _WIN64
+ #define ssize_t long long
+ #else
+ #define ssize_t long
+ #endif
+#endif
+
typedef struct _DatabaseRec {
char *category;
char *name;
diff --git a/src/xlibi18n/lcFile.c b/src/xlibi18n/lcFile.c
index e43ac2c0e..d9f49b725 100644
--- a/src/xlibi18n/lcFile.c
+++ b/src/xlibi18n/lcFile.c
@@ -32,7 +32,9 @@
#include "Xlibint.h"
#include "XlcPubI.h"
#include <X11/Xos.h>
+#ifdef HAVE_UNISTD_H
#include <unistd.h>
+#endif
/************************************************************************/