Mercurial > hg > xemacs-beta
changeset 5925:08cfc8f77fb6 cygwin
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
author | Henry Thompson <ht@markup.co.uk> |
---|---|
date | Fri, 27 Feb 2015 17:41:20 +0000 |
parents | 518bf1108435 |
children | da02ba75e50a |
files | notes.txt src/console-msw-impl.h src/event-msw.c src/frame-msw.c src/process-unix.c |
diffstat | 5 files changed, 33 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- 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
--- 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
--- 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)
--- 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);
--- 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