Hi,
I resolved all build errors. I do not have a CVS account nor do I know
how to send a DIFF in a proper format. I have made changes to the
files mentioned by Harris to fix all build issues on NT. The
"xemacs.mak" also needed some modification to make it work.
Changes to 3 files in src:
1. Applied the patch sent by Harries.
2. Remove or correct few other Win32 API calls not supported on NT.
Changes in xemacs.mak:
1. Removed -ZI option for debug mode - For some reason it is not
recognised. However, the compiler option says it is supported. This fix
was made to just build XEMACS.
2. Changed options to "XCOPY" from /y to /r ( I had reported this
problem long back and Andy had added this option as a comment ). For a
newbie, I guess this flag should get set by checking the OS type and
not expect him/her to modify the make files.
3. @type construct in xemacs.mak is not recognised by VC++6.0. This was
used in the xemacs.mak to generate the config options file. I had to
remove everything under "installation::" construct. I made this to
build xemacs. I know it is not a solution but mere avoidance.
I am sending an attachment, I am sorry if I am flooding your mail
boxes. Kindly bear with me.
with best regards,
dhruva
Note: Building with MinGW on windows is an back breaking job. I
modified a lot of files to get the configure going. Unknowing I
overwrote the same folder trying to resolve the build with MSVC++ 6.0.
I will come up with MinGW related issues shortly.
On Fri, 5 Jul 2002 06:27:47 +0000, "Dhruva Krishnamurthy"
<seagull(a)fastmail.fm> said:
Hi,
With your path, I got over that error. Now it is the case with
"SHInvokePrinterCommandW", "SHEmptyRecycleBinW",
"SHQueryRecycleBinW".
I feel there are lot of problems with Win32API portability. We shoudl
be more carefull before using those.
I have a suggestion. In the make or configure we should find out
whether those API's are available on the OS. We can have a executable
which will take the function name and DLL name and return TRUE or FALSE
based on whether it is present in the DLL or not. Using this info,
generate the related files (intl-*-encap-win32.*). I am in the process
of weeding out the unsupported methods. Will get back later if I have
more. The whole process is slow as I have to do a make clean after each
modification and make again to reflect my changes.
with regards,
dhruva
On 04 Jul 2002 21:41:24 +0100, "Jonathan Harris" <jhar(a)tardis.ed.ac.uk>
said:
>
> Dhruva Krishnamurthy wrote:
> > I am trying to build XEmacs 21.5.7 on NT 4 SP5 using MSVC++6.0.
> > I had mailed earlier about the error I get in accessing
> > "GetLongPathNameW".
> ...
> > 3. For NT, there is a suggested work around (which I guess Andy knows).
> > If not, please refer the URL:
> >
http://www.geocities.com/SiliconValley/2060/articles/longpaths.html
>
> GetLongPathNameW is unused in XEmacs. I don't have NT 4.0 around to
> test,
> but this simple patch should fix the problem.
>
> There is a function mswindows-long-file-name that looks like it already
> uses
> a similar algorithm to your suggested workaround.
>
> Unfortunately I can't commit this myself, since I'm currently getting:
> ...
> cvs commit: Examining tests/mule
> cvs commit: Examining tests/tooltalk
> ' from cvs serverng: unrecognized response `ok
>
> from the CVS server.
>
>
> src/ChangeLog addition:
>
> 2002-07-04 Jonathan Harris <jonathan(a)xemacs.org>
>
> * intl-auto-encap-win32.c:
> * intl-auto-encap-win32.h:
> * intl-encap-win32.c:
> Remove GetLongPathNameW - API not available on Win95/NT4
>
> xemacs-21.5 source patch:
> Diff command: cvs -q diff -u
> Files affected: src/intl-encap-win32.c src/intl-auto-encap-win32.h
> src/intl-auto-encap-win32.c
>
> Index: src/intl-auto-encap-win32.c
> ===================================================================
> RCS file: /pack/xemacscvs/XEmacs/xemacs/src/intl-auto-encap-win32.c,v
> retrieving revision 1.6
> diff -u -u -r1.6 intl-auto-encap-win32.c
> --- src/intl-auto-encap-win32.c 2002/05/06 14:15:41 1.6
> +++ src/intl-auto-encap-win32.c 2002/07/04 19:33:24
> @@ -2578,14 +2578,7 @@
> return GetShortPathNameA ((LPCSTR) lpszLongPath, (LPSTR)
> lpszShortPath, cchBuffer);
> }
>
> -DWORD
> -qxeGetLongPathName (const Extbyte * lpszShortPath, Extbyte *
> lpszLongPath, DWORD cchBuffer)
> -{
> - if (XEUNICODE_P)
> - return GetLongPathNameW ((LPCWSTR) lpszShortPath, (LPWSTR)
> lpszLongPath, cchBuffer);
> - else
> - return GetLongPathNameA ((LPCSTR) lpszShortPath, (LPSTR)
> lpszLongPath, cchBuffer);
> -}
> +/* Error if GetLongPathName used: Win98/2K+ only */
>
> /* Skipping GetEnvironmentStrings because misnamed ANSI version of the
> function */
>
> Index: src/intl-auto-encap-win32.h
> ===================================================================
> RCS file: /pack/xemacscvs/XEmacs/xemacs/src/intl-auto-encap-win32.h,v
> retrieving revision 1.6
> diff -u -u -r1.6 intl-auto-encap-win32.h
> --- src/intl-auto-encap-win32.h 2002/05/06 14:15:43 1.6
> +++ src/intl-auto-encap-win32.h 2002/07/04 19:33:24
> @@ -1829,11 +1829,8 @@
> #endif
> DWORD qxeGetShortPathName (const Extbyte * lpszLongPath, Extbyte *
> lpszShortPath, DWORD cchBuffer);
>
> -#ifdef ERROR_WHEN_NONINTERCEPTED_FUNS_USED
> #undef GetLongPathName
> -#define GetLongPathName error use qxeGetLongPathName or
> GetLongPathNameA/GetLongPathNameW
> -#endif
> -DWORD qxeGetLongPathName (const Extbyte * lpszShortPath, Extbyte *
> lpszLongPath, DWORD cchBuffer);
> +#define GetLongPathName error Win98/2K+ only
>
> /* Skipping GetEnvironmentStrings because misnamed ANSI version of the
> function */
>
> Index: src/intl-encap-win32.c
> ===================================================================
> RCS file: /pack/xemacscvs/XEmacs/xemacs/src/intl-encap-win32.c,v
> retrieving revision 1.7
> diff -u -u -r1.7 intl-encap-win32.c
> --- src/intl-encap-win32.c 2002/06/20 21:18:36 1.7
> +++ src/intl-encap-win32.c 2002/07/04 19:33:25
> @@ -216,7 +216,7 @@
>
> yes GetBinaryType
> yes GetShortPathName
> -yes GetLongPathName
> +no GetLongPathName Win98/2K+ only
> skip GetEnvironmentStrings misnamed ANSI version of the function
> yes FreeEnvironmentStrings
> yes FormatMessage
>
>
--
Dhruva Krishnamurthy
Home:
http://www.geocities.com/gnued/