comparison src/intl-encap-win32.c @ 2500:3d8143fc88e1

[xemacs-hg @ 2005-01-24 23:33:30 by ben] get working with VC7 config.inc.samp: Declare OPTIONAL_LIBRARY_DIR as root of library directories. Redo all graphics library defaults to mirror the versions and directories in the current binary aux distribution on xemacs web site. Enable TIFF and COMPFACE by default since you can now compile with them and binary libs are provided. xemacs.mak: Put our own directories first in case of conflict (e.g. config.h in compface). xemacs.mak: Use MSVCRT to avoid link problems. s/windowsnt.h: bytecode.c, print.c: Add casts to avoid warning. compiler.h: Add MSC_VERSION and include definitions of DOESNT_RETURN and friends here, like for GCC. Need different definitions for VC7 and VC6. s/windowsnt.h: Remove stuff moved to compiler.h. Disable warning 4646 ("function declared with __declspec(noreturn) has non-void return type") on VC7 since lots of Lisp primitives trigger this and there is no easy way to kludge around the warning. glyphs-eimage.c: Some really nasty hacks to allow TIFF and JPEG to both be compiled. #### The better solution is to move the TIFF and JPEG code to different files. glyphs-msw.c: Define __STDC__ to avoid problems with compface.h. intl-auto-encap-win32.c, intl-auto-encap-win32.h, intl-encap-win32.c, syswindows.h: Those wankers at Microsoft cannot leave well enough alone. Various functions change parameter types semi-randomly between VC6 and VC7, so we need to include our own versions that can handle both kinds with appropriate casting. EmacsFrame.c, EmacsShell-sub.c, EmacsShell.c, alloc.c, alloca.c, buffer.c, bytecode.c, charset.h, chartab.c, cm.c, console-stream.c, console.c, data.c, debug.h, device-msw.c, device-tty.c, device-x.c, doprnt.c, dumper.c, dynarr.c, elhash.c, emacs.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, events.c, extents.c, faces.c, file-coding.c, fileio.c, fns.c, font-lock.c, frame-gtk.c, frame-x.c, frame.c, free-hook.c, gccache-gtk.c, glyphs-eimage.c, glyphs-gtk.c, glyphs-msw.c, glyphs-x.c, glyphs.c, gtk-glue.c, gutter.c, input-method-xlib.c, insdel.c, intl-win32.c, keymap.c, lisp.h, lread.c, lstream.c, macros.c, malloc.c, menubar-gtk.c, menubar-msw.c, menubar-x.c, mule-coding.c, native-gtk-toolbar.c, number.c, objects-msw.c, objects.c, print.c, process-nt.c, process-unix.c, process.c, ralloc.c, rangetab.c, redisplay-gtk.c, redisplay-msw.c, redisplay-output.c, redisplay-tty.c, redisplay-x.c, redisplay.c, regex.c, scrollbar-gtk.c, scrollbar-x.c, search.c, select-x.c, signal.c, specifier.c, specifier.h, strftime.c, sunplay.c, symbols.c, sysdep.c, sysproc.h, text.c, text.h, toolbar-common.c, toolbar-msw.c, toolbar.c, ui-gtk.c, unexnt.c, unicode.c, win32.c, window.c, xgccache.c, s/windowsnt.h: abort() -> ABORT(). Eliminate preprocessor games with abort() since it creates huge problems in VC7, solvable only by including massive amounts of files in every compile (and not worth it).
author ben
date Mon, 24 Jan 2005 23:34:34 +0000
parents ecf1ebac70d8
children 6765f2581182
comparison
equal deleted inserted replaced
2499:4c5ee4d2e921 2500:3d8143fc88e1
144 yes SetEnvironmentVariable 144 yes SetEnvironmentVariable
145 yes ExpandEnvironmentStrings 145 yes ExpandEnvironmentStrings
146 yes OutputDebugString 146 yes OutputDebugString
147 yes FindResource 147 yes FindResource
148 yes FindResourceEx 148 yes FindResourceEx
149 yes EnumResourceTypes 149 skip EnumResourceTypes different prototypes in VC6 and VC7
150 yes EnumResourceNames 150 skip EnumResourceNames different prototypes in VC6 and VC7
151 yes EnumResourceLanguages 151 skip EnumResourceLanguages different prototypes in VC6 and VC7
152 yes BeginUpdateResource 152 yes BeginUpdateResource
153 yes UpdateResource 153 yes UpdateResource
154 yes EndUpdateResource 154 yes EndUpdateResource
155 yes GlobalAddAtom 155 yes GlobalAddAtom
156 yes GlobalFindAtom 156 yes GlobalFindAtom
795 begin-bracket defined (HAVE_MS_WINDOWS) 795 begin-bracket defined (HAVE_MS_WINDOWS)
796 yes ImmInstallIME 796 yes ImmInstallIME
797 yes ImmGetDescription 797 yes ImmGetDescription
798 yes ImmGetIMEFileName 798 yes ImmGetIMEFileName
799 yes ImmGetCompositionString 799 yes ImmGetCompositionString
800 yes ImmSetCompositionString 800 skip ImmSetCompositionString different prototypes in VC6 and VC7
801 yes ImmGetCandidateListCount 801 yes ImmGetCandidateListCount
802 yes ImmGetCandidateList 802 yes ImmGetCandidateList
803 yes ImmGetGuideLine 803 yes ImmGetGuideLine
804 skip ImmGetCompositionFont split-sized LOGFONT 804 skip ImmGetCompositionFont split-sized LOGFONT
805 skip ImmSetCompositionFont split-sized LOGFONT 805 skip ImmSetCompositionFont split-sized LOGFONT
1247 #endif 1247 #endif
1248 } 1248 }
1249 1249
1250 #endif /* not CYGWIN */ 1250 #endif /* not CYGWIN */
1251 1251
1252 /********************************************************************************/
1253 /* would be encapsulatable but for header changes in different versions of VC++ */
1254 /********************************************************************************/
1255
1256 #if MSC_VERSION >= 1300
1257
1258 BOOL
1259 qxeEnumResourceTypes (HMODULE hModule, ENUMRESTYPEPROCW lpEnumFunc, LONG lParam)
1260 {
1261 if (XEUNICODE_P)
1262 return EnumResourceTypesW (hModule, lpEnumFunc, lParam);
1263 else
1264 return EnumResourceTypesA (hModule, (ENUMRESTYPEPROCA) lpEnumFunc, lParam);
1265 }
1266
1267 BOOL
1268 qxeEnumResourceNames (HMODULE hModule, const Extbyte * lpType, ENUMRESNAMEPROCW lpEnumFunc, LONG lParam)
1269 {
1270 if (XEUNICODE_P)
1271 return EnumResourceNamesW (hModule, (LPCWSTR) lpType, lpEnumFunc, lParam);
1272 else
1273 return EnumResourceNamesA (hModule, (LPCSTR) lpType, (ENUMRESNAMEPROCA) lpEnumFunc, lParam);
1274 }
1275
1276 BOOL
1277 qxeEnumResourceLanguages (HMODULE hModule, const Extbyte * lpType, const Extbyte * lpName, ENUMRESLANGPROCW lpEnumFunc, LONG lParam)
1278 {
1279 if (XEUNICODE_P)
1280 return EnumResourceLanguagesW (hModule, (LPCWSTR) lpType, (LPCWSTR) lpName, lpEnumFunc, lParam);
1281 else
1282 return EnumResourceLanguagesA (hModule, (LPCSTR) lpType, (LPCSTR) lpName, (ENUMRESLANGPROCA) lpEnumFunc, lParam);
1283 }
1284
1285 #else
1286
1287 BOOL
1288 qxeEnumResourceTypes (HMODULE hModule, ENUMRESTYPEPROC lpEnumFunc, LONG lParam)
1289 {
1290 if (XEUNICODE_P)
1291 return EnumResourceTypesW (hModule, lpEnumFunc, lParam);
1292 else
1293 return EnumResourceTypesA (hModule, lpEnumFunc, lParam);
1294 }
1295
1296 BOOL
1297 qxeEnumResourceNames (HMODULE hModule, const Extbyte * lpType, ENUMRESNAMEPROC lpEnumFunc, LONG lParam)
1298 {
1299 if (XEUNICODE_P)
1300 return EnumResourceNamesW (hModule, (LPCWSTR) lpType, lpEnumFunc, lParam);
1301 else
1302 return EnumResourceNamesA (hModule, (LPCSTR) lpType, lpEnumFunc, lParam);
1303 }
1304
1305 BOOL
1306 qxeEnumResourceLanguages (HMODULE hModule, const Extbyte * lpType, const Extbyte * lpName, ENUMRESLANGPROC lpEnumFunc, LONG lParam)
1307 {
1308 if (XEUNICODE_P)
1309 return EnumResourceLanguagesW (hModule, (LPCWSTR) lpType, (LPCWSTR) lpName, lpEnumFunc, lParam);
1310 else
1311 return EnumResourceLanguagesA (hModule, (LPCSTR) lpType, (LPCSTR) lpName, lpEnumFunc, lParam);
1312 }
1313
1314 #endif /* MSC_VERSION >= 1300 */
1252 1315
1253 /************************************************************************/ 1316 /************************************************************************/
1254 /* files */ 1317 /* files */
1255 /************************************************************************/ 1318 /************************************************************************/
1256 1319
2045 if (retval) 2108 if (retval)
2046 copy_logfonta_to_logfontw (&lfa, lplf); 2109 copy_logfonta_to_logfontw (&lfa, lplf);
2047 return retval; 2110 return retval;
2048 } 2111 }
2049 } 2112 }
2050 2113
2114 #if MSC_VERSION >= 1300
2115
2116 BOOL
2117 qxeImmSetCompositionString (HIMC arg1, DWORD dwIndex, LPVOID lpComp, DWORD arg4, LPVOID lpRead, DWORD arg6)
2118 {
2119 if (XEUNICODE_P)
2120 return ImmSetCompositionStringW (arg1, dwIndex, lpComp, arg4, lpRead, arg6);
2121 else
2122 return ImmSetCompositionStringA (arg1, dwIndex, lpComp, arg4, lpRead, arg6);
2123 }
2124
2125 #else
2126
2127 BOOL
2128 qxeImmSetCompositionString (HIMC arg1, DWORD dwIndex, LPCVOID lpComp, DWORD arg4, LPCVOID lpRead, DWORD arg6)
2129 {
2130 if (XEUNICODE_P)
2131 return ImmSetCompositionStringW (arg1, dwIndex, lpComp, arg4, lpRead, arg6);
2132 else
2133 return ImmSetCompositionStringA (arg1, dwIndex, lpComp, arg4, lpRead, arg6);
2134 }
2135
2136 #endif /* MSC_VERSION >= 1300 */
2137
2051 int 2138 int
2052 qxeGetObject (HGDIOBJ hgdiobj, int cbBuffer, LPVOID lpvObject) 2139 qxeGetObject (HGDIOBJ hgdiobj, int cbBuffer, LPVOID lpvObject)
2053 { 2140 {
2054 if (XEUNICODE_P) 2141 if (XEUNICODE_P)
2055 return GetObjectW (hgdiobj, cbBuffer, lpvObject); 2142 return GetObjectW (hgdiobj, cbBuffer, lpvObject);