Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:19
erlang
0862-werl-Fix-x64-problems.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0862-werl-Fix-x64-problems.patch of Package erlang
From 1ca1e41425290ad8f3051f7b3ad38f0e972c9625 Mon Sep 17 00:00:00 2001 From: Dan Gudmundsson <dgud@erlang.org> Date: Wed, 19 Feb 2020 10:38:09 +0100 Subject: [PATCH 2/3] werl: Fix x64 problems Fix missed type conversions when ported to win64, caused background to not be re-drawn in the correct color, when changed. --- erts/emulator/drivers/win32/win_con.c | 40 +++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/erts/emulator/drivers/win32/win_con.c b/erts/emulator/drivers/win32/win_con.c index 8df8e908a9..eeb48aac57 100644 --- a/erts/emulator/drivers/win32/win_con.c +++ b/erts/emulator/drivers/win32/win_con.c @@ -205,6 +205,18 @@ static void window_title(struct title_buf *); static void free_window_title(struct title_buf *); static void Client_OnMouseMove(HWND hwnd, int x, int y, UINT keyFlags); +#ifdef HARDDEBUG +/* For really hard GUI startup debugging, place DEBUGBOX() macros in code + and get modal message boxes with the line number. */ +static void debug_box(int line) { + TCHAR buff[1024]; + swprintf(buff,1024,TEXT("DBG:%d"),line); + MessageBox(NULL,buff,TEXT("DBG"),MB_OK|MB_APPLMODAL); +} + +#define DEBUGBOX() debug_box(__LINE__) +#endif + #define CON_VPRINTF_BUF_INC_SIZE 1024 static erts_dsprintf_buf_t * @@ -430,6 +442,13 @@ ConThreadInit(LPVOID param) struct title_buf title; /*DebugBreak();*/ +#ifdef HARDDEBUG + if(AttachConsole(ATTACH_PARENT_PROCESS) || AllocConsole()) { + freopen("CONOUT$", "w", stdout); + freopen("CONOUT$", "w", stderr); + } +#endif + hInstance = GetModuleHandle(NULL); StartupInfo.dwFlags = 0; GetStartupInfo(&StartupInfo); @@ -610,7 +629,7 @@ FrameWndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) lpttt->hinst = hInstance; /* check for combobox handle */ if (lpttt->uFlags&TTF_IDISHWND) { - if ((lpttt->hdr.idFrom == (UINT) hComboWnd)) { + if ((lpttt->hdr.idFrom == (UINT_PTR) hComboWnd)) { lstrcpy(lpttt->lpszText,TEXT("Command History")); break; } @@ -1774,7 +1793,7 @@ void ConChooseColor(HWND hwnd) SetBkColor(hdc,bkgColor); ReleaseDC(hwnd,hdc); hbrush = CreateSolidBrush(bkgColor); - DeleteObject((HBRUSH)SetClassLong(hClientWnd,GCL_HBRBACKGROUND,(LONG)hbrush)); + DeleteObject((HBRUSH)SetClassLongPtr(hClientWnd,GCL_HBRBACKGROUND,(LONG_PTR)hbrush)); InvalidateRect(hwnd,NULL,TRUE); } } @@ -2012,7 +2031,7 @@ ConDrawText(HWND hwnd) TCHAR *bu = (TCHAR *) ALLOC((num_chars+1) * sizeof(TCHAR)); memcpy(bu,buf,num_chars * sizeof(TCHAR)); bu[num_chars]='\0'; - fprintf(stderr,TEXT("ConDrawText\"%s\"\n"),bu); + fprintf(stderr,"ConDrawText\"%S\"\n",bu); FREE(bu); fflush(stderr); } @@ -2211,17 +2230,6 @@ static TBADDBITMAP tbbitmap = HINST_COMMCTRL, IDB_STD_SMALL_COLOR, }; -#ifdef HARDDEBUG -/* For really hard GUI startup debugging, place DEBUGBOX() macros in code - and get modal message boxes with the line number. */ -static void debug_box(int line) { - TCHAR buff[1024]; - swprintf(buff,1024,TEXT("DBG:%d"),line); - MessageBox(NULL,buff,TEXT("DBG"),MB_OK|MB_APPLMODAL); -} - -#define DEBUGBOX() debug_box(__LINE__) -#endif static HWND InitToolBar(HWND hwndParent) @@ -2243,7 +2251,7 @@ InitToolBar(HWND hwndParent) SendMessage(hwndTB,TB_BUTTONSTRUCTSIZE, (WPARAM) sizeof(TBBUTTON),0); tbbitmap.hInst = NULL; - tbbitmap.nID = (UINT) CreateMappedBitmap(beam_module, 1,0, &colorMap, 1); + tbbitmap.nID = (UINT_PTR) CreateMappedBitmap(beam_module, 1,0, &colorMap, 1); SendMessage(hwndTB, TB_ADDBITMAP, (WPARAM) 4, (LPARAM) &tbbitmap); @@ -2269,7 +2277,7 @@ InitToolBar(HWND hwndParent) ti.cbSize = sizeof(TOOLINFO); ti.uFlags = TTF_IDISHWND|TTF_CENTERTIP|TTF_SUBCLASS; ti.hwnd = hwndTB;; - ti.uId = (UINT)hComboWnd; + ti.uId = (UINT_PTR)hComboWnd; ti.lpszText = LPSTR_TEXTCALLBACK; hwndTT = (HWND)SendMessage(hwndTB,TB_GETTOOLTIPS,0,0); SendMessage(hwndTT,TTM_ADDTOOL,0,(LPARAM)&ti); -- 2.16.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor