# HG changeset patch # User Henry Thompson # Date 1425058880 0 # Node ID 08cfc8f77fb6375395f1986def0f07ee693ead86 # Parent 518bf11084357349e55ea3a1063e8e8bbd6c9688 make space for long ptr, and store as such, for frame in WINDOW data, add a bit more debugging to debug-mswindow, Vin Shelton patch to fix M-x shell diff -r 518bf1108435 -r 08cfc8f77fb6 notes.txt --- a/notes.txt Fri Feb 06 09:08:37 2015 +0000 +++ b/notes.txt Fri Feb 27 17:41:20 2015 +0000 @@ -256,3 +256,19 @@ commit, make distclean, configure '--with-pdump=yes' '--with-modules=no' '--with-mule=yes' '--with-ncurses=yes' '--with-msw=yes' '--without-png' '--without-xpm' '--without-jpeg' '--with-cflags-debugging=-ggdb' No change -- -nw works, w/o -nw gives the same assertion failed. +----- +Trying again, make distclean followed by + > +didn't work!, had to add --without-x (why???) +------ +Force debug printing on by + debug_mswindows_events = 3; +at the end of event-msw.c +Added more printing, removed frame printing, from +debug_output_mswin_message ditto +Narrowed it down to the + qxeSetWindowLong (hwnd, XWL_FRAMEOBJ, (intptr_t)STORE_LISP_IN_VOID (frame_obj)); +at the end of mswindows_init_frame_1 in frame-msw.c +a) Should be ...LongtPtr +b) Not enough room allocated for a 64-bit long ptr -- fixed in + console-msw-impl.h diff -r 518bf1108435 -r 08cfc8f77fb6 src/console-msw-impl.h --- a/src/console-msw-impl.h Fri Feb 06 09:08:37 2015 +0000 +++ b/src/console-msw-impl.h Fri Feb 27 17:41:20 2015 +0000 @@ -270,8 +270,8 @@ /* win32 window LONG indices */ #define XWL_FRAMEOBJ 0 -#define XWL_COUNT 1 /* Number of LONGs that we use */ -#define MSWINDOWS_WINDOW_EXTRA_BYTES (XWL_COUNT * 4) +#define XWL_COUNT 1 /* Number of pointers that we use: HST changed from LONG to PTR */ +#define MSWINDOWS_WINDOW_EXTRA_BYTES (XWL_COUNT * sizeof(intptr_t)) /* HST fixed to take account of 64-bit PTR */ /* * Printer frame, aka printer job diff -r 518bf1108435 -r 08cfc8f77fb6 src/event-msw.c --- a/src/event-msw.c Fri Feb 06 09:08:37 2015 +0000 +++ b/src/event-msw.c Fri Feb 27 17:41:20 2015 +0000 @@ -4965,8 +4965,9 @@ if (debug_mswindows_events > 1) { - stderr_out (" wparam=%d lparam=%d hwnd=%p frame: ", - (int)wParam, (int) lParam, hwnd); + stderr_out (" wparam=%d lparam=%d hwnd=%p frame: %d (%d)\n", + (int)wParam, (int) lParam, hwnd, (int)qxeGetWindowLongPtr (hwnd, XWL_FRAMEOBJ), + NILP (Vmswindows_frame_being_created)); debug_print (frame); if (message_ == WM_WINDOWPOSCHANGED || message_ == WM_WINDOWPOSCHANGING) diff -r 518bf1108435 -r 08cfc8f77fb6 src/frame-msw.c --- a/src/frame-msw.c Fri Feb 06 09:08:37 2015 +0000 +++ b/src/frame-msw.c Fri Feb 27 17:41:20 2015 +0000 @@ -271,7 +271,7 @@ FRAME_MSWINDOWS_HANDLE (f) = hwnd; - qxeSetWindowLong (hwnd, XWL_FRAMEOBJ, (intptr_t)STORE_LISP_IN_VOID (frame_obj)); + qxeSetWindowLongPtr (hwnd, XWL_FRAMEOBJ, (intptr_t)STORE_LISP_IN_VOID (frame_obj)); FRAME_MSWINDOWS_DC (f) = GetDC (hwnd); SetTextAlign (FRAME_MSWINDOWS_DC (f), TA_BASELINE | TA_LEFT | TA_NOUPDATECP); diff -r 518bf1108435 -r 08cfc8f77fb6 src/process-unix.c --- a/src/process-unix.c Fri Feb 06 09:08:37 2015 +0000 +++ b/src/process-unix.c Fri Feb 27 17:41:20 2015 +0000 @@ -1011,6 +1011,15 @@ retry_close (fd); } + /* Disconnect the current controlling terminal, pursuant to + making the pty be the controlling terminal of the process. + Also put us in our own process group. */ + + /* disconnect_controlling_terminal was in unix_create_process, + moved per email from Vin Shelton of 28-Jan-15 to xemacs-beta */ + + disconnect_controlling_terminal (); + /* we've wrapped execve; it translates its arguments */ qxe_execve (new_argv[0], new_argv, env); @@ -1120,12 +1129,8 @@ cause I/O, and that, in turn, can confuse the X connection. */ begin_dont_check_for_quit(); - /* Disconnect the current controlling terminal, pursuant to - making the pty be the controlling terminal of the process. - Also put us in our own process group. */ - - disconnect_controlling_terminal (); - + /* disconnect_controlling_terminal was here, moved per + email from Vin Shelton of 28-Jan-15 to xemacs-beta */ if (pty_flag) { /* Open the pty connection and make the pty's terminal