On 12/7/06, Vin Shelton <acs(a)xemacs.org> wrote:
I was just looking into this. Applying a cast:
--- xemacs-21.5-2006-12-07/src/fileio.c 2006-12-07 11:17:53.352323100 -0500
+++ xemacs-21.5-benson/src/fileio.c 2006-12-07 09:55:06.478972700 -0500
@@ -2325,7 +2325,7 @@
DACL_SECURITY_INFORMATION|GROUP_SECURITY_INFORMATION|OWNER_SECURITY_INFORMATION,
&psidOwner, &psidGroup, &pDacl, &pSacl, &pDesc);
if(error != ERROR_SUCCESS) { // FAT?
- attributes = qxeGetFileAttributes(filename);
+ attributes = qxeGetFileAttributes((Extbyte *)filename);
return (attributes & FILE_ATTRIBUTE_DIRECTORY) || (0 == (attributes
& FILE_ATTRIBUTE_READONLY));
}
is sufficient to produce a working native XEmacs-21.5 for the non-SDK case.
I will continue to investigate....
- Vin
With that cast applied, I can build working 21.5 XEmacsen on Windows,
both native (using VC6) and cygwin (using gcc). These XEmacsen have
the highly desirable property of avoiding the dreaded "File not found
and directory write-protected" error. If it's OK with you, Benson and
Stephen, I will generate a superseding patch and send it to
xemacs-patches.
VC6 + SDK is another story. After regenerating unicode-encapsulate,
here are the errors I'm getting:
intl-encap-win32.c
E:\cygwin\usr\local\src\xemacs-21.5-2006-12-07\src\intl-encap-win32.c(1295)
: error C2664: 'EnumResourceTypesW' : cannot convert parameter 2 from
'int (__stdcall *)(struct HINSTANCE__ *,char *,long)' to 'int
(__stdcall *)(struct HINSTANCE__ *,unsigned short *,long)'
This conversion requires a reinterpret_cast, a C-style cast or
function-style cast
E:\cygwin\usr\local\src\xemacs-21.5-2006-12-07\src\intl-encap-win32.c(1304)
: error C2664: 'EnumResourceNamesW' : cannot convert parameter 3 from
'int (__stdcall *)(struct HINSTANCE__ *,const char *,char *,long)' to
'int (__stdcall *)(struct HINSTANCE__ *,const unsigned short
*,unsigned short *,long)'
This conversion requires a reinterpret_cast, a C-style cast or
function-style cast
E:\cygwin\usr\local\src\xemacs-21.5-2006-12-07\src\intl-encap-win32.c(1313)
: error C2664: 'EnumResourceLanguagesW' : cannot convert parameter 4
from
'int (__stdcall *)(struct HINSTANCE__ *,const char *,const char
*,unsigned short,long)' to 'int (__stdcall *)(struct HINSTANCE__
*,const unsigned short *,const unsigned short *,unsigned short,long)'
This conversion requires a reinterpret_cast, a C-style cast or
function-style cast
E:\cygwin\usr\local\src\xemacs-21.5-2006-12-07\src\intl-encap-win32.c(2135)
: error C2664: 'ImmSetCompositionStringW' : cannot convert parameter 3
from 'const void *' to 'void *'
Conversion loses qualifiers
E:\cygwin\usr\local\src\xemacs-21.5-2006-12-07\src\intl-encap-win32.c(2137)
: error C2664: 'ImmSetCompositionStringA' : cannot convert parameter 3
from 'const void *' to 'void *'
Conversion loses qualifiers
NMAKE: fatal error U1077: 'cl' : return code '0x2'
Stop.
Benson - as far as VC6+SDK goes, if there are avenues you want me to
pursue, I will, but left to my own devices, I will probably not pursue
this matter any further. Thanks for fixing this longstanding wart in
XEmacs, Benson.
- Vin
--
The Journey by Mary Oliver
http://www.poemhunter.com/p/m/poem.asp?poet=6771&poem=30506
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta