view notes.txt @ 5920:0f2338afbabf cygwin

Minimum necessary to get started: sufficient to compile OK, run -nw, but not with window
author Henry Thompson <ht@markup.co.uk>
date Mon, 21 Apr 2014 11:42:50 +0100
parents
children 68639fb08af8
line wrap: on
line source

Brute-forced a set of changes which allowed
 make unicode-encapsulate
to work
 1) Patched make-mswin-unicode.pl to match macros with pointer return types;
 2) Updated intl-encap-win32.c to deal with
    a) added functions;
    b) refactoring of w32api include files.

Renamed DEVICE_TYPE to DEVICE_TYPE_X in device-impl.h and everywhere
it is used to avoid collision with DEVICE_TYPE in winioctl.h

Minimal fixes to get to compile wrt int vs. intptr_t in
 event-msw.c

event-msw.c:67:3: error: #error Something is wrong -- you are neither
Windows native (possibly MinGW) nor Cygwin.  # error Something is
wrong -- you are neither Windows native (possibly MinGW) nor Cygwin.

Ah, need a more up-to-date config.{sub,guess}, got one from somewhere
dated timestamp='2013-06-10'

Copy src/s/cygwin32.h to cygwin64.h and src/m/intel386.h to x86_64.h

And a configure.ac which recognises cygwin64
 
Remove cygwin_conv_to_posix_path from lib-src/gnuclient.c

Replace calls to qxeGetWindowLong(... GWL_..) with
qxeGetWindowLongPtr(... GWLP_...) (w. LONG_PTR result if used)
after re-making unicode-encapsulate
And one LONG l = qxeGetWindowLong (hwnd, XWL_FRAMEOBJ) to LONG_PTR l = qxeGetWindowLongPtr (hwnd, XWL_FRAMEOBJ)

Ah, several bugs in new header files in w32api, required some
additions to wfun_re in make-mswin-unicode.pl

That's enough to get event-msw.c to compile, although there are some
size-related warnings.

similar problem in frame-msw.c:
 qxeSetClassLong (FRAME_MSWINDOWS_HANDLE (f), GCL_HICON

and in glyphs-msw.c:
 qxeGetWindowLong
  (FRAME_MSWINDOWS_HANDLE (XFRAME (frame)),
   GWL_HINSTANCE),

and scrollbar-msw.c
also
      (void *) opaque =
	 (void *)qxeGetWindowLong (SCROLLBAR_MSW_HANDLE (sb), GWL_USERDATA);

        LONG_PTR opaque =
	 qxeGetWindowLongPtr (SCROLLBAR_MSW_HANDLE (sb), GWLP_USERDATA);

and dialog-msw.c:197:31: error: ‘DWL_USER’ undeclared (first use in this function)
       qxeSetWindowLong (hwnd, DWL_USER, l_param);

Compiles all the way through, links OK, temacs runs!
Build completes
xemacs -nw works
but xemacs as such does not:
 > ./xemacs
  Fatal error: assertion failed, file event-msw.c, line 4149, !NILP (Vmswindows_frame_being_created)