# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1322580341 0 # Node ID 56f311dc23f6453e396c5bd5675d51266777173e # Parent 20c6d0c50c94dd691aaa7d032fac6d45345f2838 Changes to get the library building with Watcom on OS/2. These changes mean that VisualAge 3.0 will no longer build the library. Please use version 3.6 or higher. diff -r 20c6d0c50c94 -r 56f311dc23f6 compat.h --- a/compat.h Mon Nov 28 05:49:27 2011 +0000 +++ b/compat.h Tue Nov 29 15:25:41 2011 +0000 @@ -60,8 +60,10 @@ #define INCL_DEV #define INCL_DOSERRORS -#if (defined(__IBMC__) || defined(_System)) && !defined(API) -#define API _System +#ifdef __OS2__ +# if (defined(__IBMC__) || defined(__WATCOMC__) || defined(_System)) && !defined(API) +# define API _System +# endif #endif #ifndef API diff -r 20c6d0c50c94 -r 56f311dc23f6 dw.h --- a/dw.h Mon Nov 28 05:49:27 2011 +0000 +++ b/dw.h Tue Nov 29 15:25:41 2011 +0000 @@ -67,8 +67,10 @@ #if defined(__OS2__) || (defined(__WIN32__) && !defined(GDK_WINDOWING_WIN32)) || defined(__MAC__) || (defined(WINNT) && !defined(GDK_WINDOWING_WIN32)) || defined(__EMX__) /* OS/2, Windows or MacOS */ -#if (defined(__IBMC__) || defined(_System)) && !defined(API) -#define API _System +#ifdef __OS2__ +# if (defined(__IBMC__) || defined(__WATCOMC__) || defined(_System)) && !defined(API) +# define API _System +# endif #endif /* Used internally */ diff -r 20c6d0c50c94 -r 56f311dc23f6 makefile.wpm --- a/makefile.wpm Mon Nov 28 05:49:27 2011 +0000 +++ b/makefile.wpm Tue Nov 29 15:25:41 2011 +0000 @@ -5,20 +5,41 @@ #=================================================================== OS22_H = $(%WATCOM)\h\os2 CFLAGS = -i=os2 -i=$(OS22_H) -bt=OS2 -zq -d2 -bd +TKPATH=C:\Toolkit +TLKTLIB = $(TKPATH)\LIB .SUFFIXES: .SUFFIXES: .obj .c .c.obj: .AUTODEPEND wcc386 $(CFLAGS) $*.c -all: dw.dll dwcompat.dll +all: dw.dll dwcompat.dll dwtest.exe -dwcompat.dll: compat.obj - wlink name dwcompat.dll system os2v2_pm d a library so32dll,tcp32dll option symf f $[@ +dwcompat.dll: dirent.obj compat.obj + wlink @os2\dwcompat.lnk name dwcompat.dll system os2v2_dll d a library $(TLKTLIB)\so32dll,$(TLKTLIB)\tcp32dll option implib=dwcompat option symf f $[@ f compat + copy dwcompat.lib lib + +dirent.obj: + wcc386 $(CFLAGS) os2\dirent.c dw.dll: dw.obj - wlink name dw.dll system os2v2_pm d a option symf f $[@ + wlink @os2\dw.lnk name dw.dll system os2v2_dll d a option implib=dw option symf f $[@ + copy dw.lib lib dw.obj: os2\dw.c wcc386 $(CFLAGS) os2\dw.c +dwtest.exe: dwtest.obj + wlink name dwtest.exe system os2v2_pm d a library lib\dw.lib option symf f $[@ + +dwtest.obj: + wcc386 /DOS2 -i=os2 -i=$(OS22_H) -bt=OS2 -zq -d2 dwtest.c + +clean: + @if exist *.obj del *.obj + @if exist *.sym del *.sym + @if exist *.lib del *.lib + @if exist *.dll del *.dll + @if exist *.exe del *.exe + @if exist lib\*.lib del lib\*.lib + diff -r 20c6d0c50c94 -r 56f311dc23f6 os2/dirent.c --- a/os2/dirent.c Mon Nov 28 05:49:27 2011 +0000 +++ b/os2/dirent.c Tue Nov 29 15:25:41 2011 +0000 @@ -8,6 +8,12 @@ #include "compat.h" #include +#ifdef __WATCOMC__ +#include "platform\dirent.h" +typedef struct _dirdescr DIRW; +#define DIR DIRW +#endif + # define FFBUF FILEFINDBUF3 # define Word ULONG /* diff -r 20c6d0c50c94 -r 56f311dc23f6 os2/dw.c --- a/os2/dw.c Mon Nov 28 05:49:27 2011 +0000 +++ b/os2/dw.c Tue Nov 29 15:25:41 2011 +0000 @@ -1789,7 +1789,8 @@ } } break; - } + } + return (MRESULT)FALSE; } #define CALENDAR_BORDER 3 @@ -2247,7 +2248,7 @@ { if(tmp->message == WM_COMMAND) { - int (* API clickfunc)(HWND, void *) = (int (* API)(HWND, void *))tmp->signalfunction; + int (API * clickfunc)(HWND, void *) = (int (API *)(HWND, void *))tmp->signalfunction; /* Make sure it's the right window, and the right ID */ if(tmp->window == handle) @@ -2786,7 +2787,7 @@ { if((mp2 && tmp->message == WM_SETFOCUS) || (!mp2 && tmp->message == WM_USER+1)) { - int (* API setfocusfunc)(HWND, void *) = (int (* API)(HWND, void *))tmp->signalfunction; + int (API * setfocusfunc)(HWND, void *) = (int (API *)(HWND, void *))tmp->signalfunction; if(hWnd == tmp->window || WinWindowFromID(tmp->window, FID_CLIENT) == hWnd) { @@ -2798,7 +2799,7 @@ break; case WM_TIMER: { - int (* API timerfunc)(void *) = (int (* API)(void *))tmp->signalfunction; + int (API * timerfunc)(void *) = (int (API *)(void *))tmp->signalfunction; if(tmp->id == (int)mp1) { if(!timerfunc(tmp->data)) @@ -2810,7 +2811,7 @@ break; case WM_SIZE: { - int (* API sizefunc)(HWND, int, int, void *) = (int (* API)(HWND, int, int, void *))tmp->signalfunction; + int (API * sizefunc)(HWND, int, int, void *) = (int (API *)(HWND, int, int, void *))tmp->signalfunction; if((hWnd == tmp->window || WinWindowFromID(tmp->window, FID_CLIENT) == hWnd) && SHORT1FROMMP(mp2) && SHORT2FROMMP(mp2)) { @@ -2822,7 +2823,7 @@ case WM_BUTTON1DOWN: { POINTS pts = (*((POINTS*)&mp1)); - int (* API buttonfunc)(HWND, int, int, int, void *) = (int (* API)(HWND, int, int, int, void *))tmp->signalfunction; + int (API * buttonfunc)(HWND, int, int, int, void *) = (int (API *)(HWND, int, int, int, void *))tmp->signalfunction; if(hWnd == tmp->window || WinWindowFromID(tmp->window, FID_CLIENT) == hWnd || WinQueryCapture(HWND_DESKTOP) == tmp->window) { @@ -2849,7 +2850,7 @@ case WM_BUTTON1UP: { POINTS pts = (*((POINTS*)&mp1)); - int (* API buttonfunc)(HWND, int, int, int, void *) = (int (* API)(HWND, int, int, int, void *))tmp->signalfunction; + int (API * buttonfunc)(HWND, int, int, int, void *) = (int (API *)(HWND, int, int, int, void *))tmp->signalfunction; if(hWnd == tmp->window || WinWindowFromID(tmp->window, FID_CLIENT) == hWnd || WinQueryCapture(HWND_DESKTOP) == tmp->window) { @@ -2875,7 +2876,7 @@ break; case WM_MOUSEMOVE: { - int (* API motionfunc)(HWND, int, int, int, void *) = (int (* API)(HWND, int, int, int, void *))tmp->signalfunction; + int (API * motionfunc)(HWND, int, int, int, void *) = (int (API *)(HWND, int, int, int, void *))tmp->signalfunction; if(hWnd == tmp->window || WinWindowFromID(tmp->window, FID_CLIENT) == hWnd || WinQueryCapture(HWND_DESKTOP) == tmp->window) { @@ -2896,7 +2897,7 @@ break; case WM_CHAR: { - int (* API keypressfunc)(HWND, char, int, int, void *) = (int (* API)(HWND, char, int, int, void *))tmp->signalfunction; + int (API * keypressfunc)(HWND, char, int, int, void *) = (int (API *)(HWND, char, int, int, void *))tmp->signalfunction; if((hWnd == tmp->window || _toplevel_window(hWnd) == tmp->window) && !(SHORT1FROMMP(mp1) & KC_KEYUP)) { @@ -2927,7 +2928,7 @@ break; case WM_CLOSE: { - int (* API closefunc)(HWND, void *) = (int (* API)(HWND, void *))tmp->signalfunction; + int (API * closefunc)(HWND, void *) = (int (API *)(HWND, void *))tmp->signalfunction; if(hWnd == tmp->window || hWnd == WinWindowFromID(tmp->window, FID_CLIENT)) { @@ -2942,7 +2943,7 @@ { HPS hps; DWExpose exp; - int (* API exposefunc)(HWND, DWExpose *, void *) = (int (* API)(HWND, DWExpose *, void *))tmp->signalfunction; + int (API * exposefunc)(HWND, DWExpose *, void *) = (int (API *)(HWND, DWExpose *, void *))tmp->signalfunction; RECTL rc; if(hWnd == tmp->window) @@ -2961,7 +2962,7 @@ break; case WM_COMMAND: { - int (* API clickfunc)(HWND, void *) = (int (* API)(HWND, void *))tmp->signalfunction; + int (API * clickfunc)(HWND, void *) = (int (API *)(HWND, void *))tmp->signalfunction; ULONG command = COMMANDMSG(&msg)->cmd; if(tmp->id && command == tmp->id) @@ -2996,7 +2997,7 @@ { case CN_ENTER: { - int (* API containerselectfunc)(HWND, char *, void *) = (int (* API)(HWND, char *, void *))tmp->signalfunction; + int (API * containerselectfunc)(HWND, char *, void *) = (int (API *)(HWND, char *, void *))tmp->signalfunction; char *text = NULL; if(mp2) @@ -3017,7 +3018,7 @@ break; case CN_EXPANDTREE: { - int (* API treeexpandfunc)(HWND, HTREEITEM, void *) = (int (* API)(HWND, HTREEITEM, void *))tmp->signalfunction; + int (API * treeexpandfunc)(HWND, HTREEITEM, void *) = (int (API *)(HWND, HTREEITEM, void *))tmp->signalfunction; if(tmp->window == notifyhwnd) { @@ -3028,7 +3029,7 @@ break; case CN_CONTEXTMENU: { - int (* API containercontextfunc)(HWND, char *, int, int, void *, void *) = (int (* API)(HWND, char *, int, int, void *, void *))tmp->signalfunction; + int (API * containercontextfunc)(HWND, char *, int, int, void *, void *) = (int (API *)(HWND, char *, int, int, void *, void *))tmp->signalfunction; char *text = NULL; void *user = NULL; LONG x,y; @@ -3093,7 +3094,7 @@ if(pci && pre->fEmphasisMask & CRA_CURSORED && (pci->rc.flRecordAttr & CRA_CURSORED)) { - int (* API treeselectfunc)(HWND, HTREEITEM, char *, void *, void *) = (int (* API)(HWND, HTREEITEM, char *, void *, void *))tmp->signalfunction; + int (API * treeselectfunc)(HWND, HTREEITEM, char *, void *, void *) = (int (API *)(HWND, HTREEITEM, char *, void *, void *))tmp->signalfunction; if(dw_window_get_data(tmp->window, "_dw_container")) result = treeselectfunc(tmp->window, 0, (char *)pci->rc.pszIcon, tmp->data, 0); @@ -3127,7 +3128,7 @@ if(strncmp(classbuf, "#38", 4) == 0) { - int (* API valuechangedfunc)(HWND, int, void *) = (int (* API)(HWND, int, void *))tmp->signalfunction; + int (API * valuechangedfunc)(HWND, int, void *) = (int (API *)(HWND, int, void *))tmp->signalfunction; if(tmp->window == hWnd || tmp->window == notifyhwnd) { @@ -3145,7 +3146,7 @@ } else { - int (* API listboxselectfunc)(HWND, int, void *) = (int (* API )(HWND, int, void *))tmp->signalfunction; + int (API * listboxselectfunc)(HWND, int, void *) = (int (API *)(HWND, int, void *))tmp->signalfunction; static int _recursing = 0; if(_recursing == 0 && (tmp->window == notifyhwnd || (!id && tmp->window == (HWND)mp2))) @@ -3183,7 +3184,7 @@ break; case SLN_SLIDERTRACK: { - int (* API valuechangedfunc)(HWND, int, void *) = (int (* API)(HWND, int, void *))tmp->signalfunction; + int (API * valuechangedfunc)(HWND, int, void *) = (int (API *)(HWND, int, void *))tmp->signalfunction; if(origmsg == WM_CONTROL) { @@ -3227,7 +3228,7 @@ if(psn && tmp->window == psn->hwndBook) { - int (* API switchpagefunc)(HWND, unsigned long, void *) = (int (* API)(HWND, unsigned long, void *))tmp->signalfunction; + int (API * switchpagefunc)(HWND, unsigned long, void *) = (int (API *)(HWND, unsigned long, void *))tmp->signalfunction; result = switchpagefunc(tmp->window, psn->ulPageIdNew, tmp->data); tmp = NULL; @@ -3341,7 +3342,7 @@ { int result = -1; static int command_active = 0; - void (* API windowfunc)(PVOID) = 0L; + void (API * windowfunc)(PVOID) = 0L; if(!command_active) { @@ -3491,7 +3492,7 @@ } return MRFROMSHORT(FALSE); case WM_USER: - windowfunc = (void (* API)(void *))mp1; + windowfunc = (void (API *)(void *))mp1; if(windowfunc) windowfunc((void *)mp2); @@ -3898,11 +3899,11 @@ case WM_USER: { SignalHandler *tmp = (SignalHandler *)mp1; - int (* API clickfunc)(HWND, void *) = NULL; + int (API * clickfunc)(HWND, void *) = NULL; if(tmp) { - clickfunc = (int (* API)(HWND, void *))tmp->signalfunction; + clickfunc = (int (API *)(HWND, void *))tmp->signalfunction; clickfunc(tmp->window, tmp->data); } @@ -4268,10 +4269,14 @@ void API dw_debug(char *format, ...) { va_list args; - char outbuf[1024]; + char outbuf[1025] = { 0 }; va_start(args, format); +#if defined(__IBMC__) vsprintf(outbuf, format, args); +#else + vsnprintf(outbuf, 1024, format, args); +#endif va_end(args); if(_PmPrintfString) @@ -4298,11 +4303,15 @@ int API dw_messagebox(char *title, int flags, char *format, ...) { va_list args; - char outbuf[1024]; + char outbuf[1025] = { 0 }; int rc; va_start(args, format); +#if defined(__IBMC__) vsprintf(outbuf, format, args); +#else + vsnprintf(outbuf, 1024, format, args); +#endif va_end(args); rc = WinMessageBox(HWND_DESKTOP, HWND_DESKTOP, (PSZ)outbuf, (PSZ)title, 0, flags | MB_MOVEABLE); @@ -10092,10 +10101,10 @@ { HAB thishab = WinInitialize(0); HMQ thishmq = WinCreateMsgQueue(dwhab, 0); - void (* API threadfunc)(void *) = NULL; + void (API * threadfunc)(void *) = NULL; void **tmp = (void **)data; - threadfunc = (void (* API)(void *))tmp[0]; + threadfunc = (void (API *)(void *))tmp[0]; threadfunc(tmp[1]); free(tmp); diff -r 20c6d0c50c94 -r 56f311dc23f6 os2/dw.lnk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os2/dw.lnk Tue Nov 29 15:25:41 2011 +0000 @@ -0,0 +1,298 @@ +option DESCRIPTION 'Dynamic Windows for OS/2' +segment type DATA NONSHARED LOADONCALL + +export dw_init.10=dw_init +export dw_main.11=dw_main +export dw_exit.12=dw_exit +export dw_beep.13=dw_beep +export dw_messagebox.14=dw_messagebox +export dw_debug.15=dw_debug + +export dw_environment_query.16=dw_environment_query +export dw_exec.17=dw_exec +export dw_browse.18=dw_browse +export dw_file_browse.19=dw_file_browse +export dw_user_dir.20=dw_user_dir +export dw_flush.21=dw_flush +export dw_free.22=dw_free +export dw_main_sleep.23=dw_main_sleep +export dw_main_iteration.24=dw_main_iteration +export dw_app_dir.25=dw_app_dir + +export dw_box_new.40=dw_box_new +export dw_groupbox_new.41=dw_groupbox_new +export dw_box_pack_start.42=dw_box_pack_start +export dw_box_pack_end.43=dw_box_pack_end +export dw_box_pack_at_index.44=dw_box_pack_at_index + +export dw_mdi_new.46=dw_mdi_new + +export dw_window_new.50=dw_window_new +export dw_window_show.51=dw_window_show +export dw_window_hide.52=dw_window_hide +export dw_window_destroy.53=dw_window_destroy +export dw_window_set_font.54=dw_window_set_font +export dw_window_set_color.55=dw_window_set_color +export dw_window_set_pos.56=dw_window_set_pos +export dw_window_set_size.57=dw_window_set_size +export dw_window_set_pos_size.58=dw_window_set_pos_size +export dw_window_get_pos_size.59=dw_window_get_pos_size +export dw_window_set_style.60=dw_window_set_style +export dw_window_set_icon.61=dw_window_set_icon +export dw_window_set_bitmap.62=dw_window_set_bitmap +export dw_window_get_text.63=dw_window_get_text +export dw_window_set_text.64=dw_window_set_text +export dw_window_disable.65=dw_window_disable +export dw_window_enable.66=dw_window_enable +export dw_window_capture.67=dw_window_capture +export dw_window_release.68=dw_window_release +export dw_window_reparent.69=dw_window_reparent +export dw_window_function.70=dw_window_function +export dw_window_from_id.71=dw_window_from_id +export dw_window_set_border.72=dw_window_set_border +export dw_window_minimize.73=dw_window_minimize +export dw_window_set_pointer.74=dw_window_set_pointer +export dw_window_default.75=dw_window_default +export dw_window_raise.76=dw_window_raise +export dw_window_lower.77=dw_window_lower +export dw_window_click_default.78=dw_window_click_default +export dw_window_redraw.79=dw_window_redraw +export dw_bitmap_new.80=dw_bitmap_new +export dw_window_set_bitmap_from_data.81=dw_window_set_bitmap_from_data +export dw_window_get_font.82=dw_window_get_font +export dw_window_set_tooltip.83=dw_window_set_tooltip + +export dw_button_new.90=dw_button_new +export dw_bitmapbutton_new.91=dw_bitmapbutton_new +export dw_bitmapbutton_new_from_file.92=dw_bitmapbutton_new_from_file +export dw_bitmapbutton_new_from_data.93=dw_bitmapbutton_new_from_data + +export dw_text_new.100=dw_text_new +export dw_status_text_new.101=dw_status_text_new + +export dw_entryfield_new.110=dw_entryfield_new +export dw_entryfield_password_new.111=dw_entryfield_password_new + +export dw_combobox_new.120=dw_combobox_new + +export dw_radiobutton_new.130=dw_radiobutton_new + +export dw_listbox_new.140=dw_listbox_new +export dw_listbox_append.141=dw_listbox_append +export dw_listbox_clear.142=dw_listbox_clear +export dw_listbox_count.143=dw_listbox_count +export dw_listbox_set_top.144=dw_listbox_set_top +export dw_listbox_select.145=dw_listbox_select +export dw_listbox_delete.146=dw_listbox_delete +export dw_listbox_get_text.147=dw_listbox_get_text +export dw_listbox_set_text.148=dw_listbox_set_text +export dw_listbox_selected.149=dw_listbox_selected +export dw_listbox_selected_multi.150=dw_listbox_selected_multi +export dw_listbox_list_append.151=dw_listbox_list_append +export dw_listbox_insert.152=dw_listbox_insert + +export dw_percent_new.160=dw_percent_new +export dw_percent_set_pos.162=dw_percent_set_pos + +export dw_mle_new.170=dw_mle_new +export dw_mle_import.171=dw_mle_import +export dw_mle_export.172=dw_mle_export +export dw_mle_get_size.173=dw_mle_get_size +export dw_mle_delete.174=dw_mle_delete +export dw_mle_clear.175=dw_mle_clear +export dw_mle_freeze.176=dw_mle_freeze +export dw_mle_thaw.177=dw_mle_thaw +export dw_mle_set_cursor.178=dw_mle_set_cursor +export dw_mle_set_visible.179=dw_mle_set_visible +export dw_mle_search.180=dw_mle_search +export dw_mle_set_editable.181=dw_mle_set_editable +export dw_mle_set_word_wrap.182=dw_mle_set_word_wrap + +export dw_spinbutton_new.190=dw_spinbutton_new +export dw_spinbutton_set_pos.191=dw_spinbutton_set_pos +export dw_spinbutton_set_limits.192=dw_spinbutton_set_limits +export dw_entryfield_set_limit.193=dw_entryfield_set_limit +export dw_spinbutton_get_pos.194=dw_spinbutton_get_pos + +export dw_checkbox_new.200=dw_checkbox_new +export dw_checkbox_get.201=dw_checkbox_get +export dw_checkbox_set.202=dw_checkbox_set + +export dw_icon_load.210=dw_icon_load +export dw_icon_free.211=dw_icon_free +export dw_icon_load_from_file.212=dw_icon_load_from_file +export dw_icon_load_from_data.213=dw_icon_load_from_data + +export dw_container_new.220=dw_container_new +export dw_container_setup.221=dw_container_setup +export dw_container_alloc.222=dw_container_alloc +export dw_container_set_item.223=dw_container_set_item +export dw_container_set_row_title.224=dw_container_set_row_title +export dw_container_insert.225=dw_container_insert +export dw_container_clear.226=dw_container_clear +export dw_container_query_start.228=dw_container_query_start +export dw_container_query_next.229=dw_container_query_next +export dw_container_delete.230=dw_container_delete +export dw_container_scroll.231=dw_container_scroll +export dw_container_set_column_width.232=dw_container_set_column_width +export dw_container_cursor.233=dw_container_cursor +export dw_container_optimize.234=dw_container_optimize +export dw_container_delete_row.235=dw_container_delete_row +export dw_container_change_item.236=dw_container_change_item +export dw_container_get_column_type.237=dw_container_get_column_type +export dw_container_change_row_title.238=dw_container_change_row_title +export dw_container_set_stripe.239=dw_container_set_stripe + +export dw_filesystem_setup.240=dw_filesystem_setup +export dw_filesystem_set_item.241=dw_filesystem_set_item +export dw_filesystem_set_file.242=dw_filesystem_set_file +export dw_filesystem_change_item.243=dw_filesystem_change_item +export dw_filesystem_change_file.244=dw_filesystem_change_file +export dw_filesystem_get_column_type.245=dw_filesystem_get_column_type + +export dw_screen_width.250=dw_screen_width +export dw_screen_height.251=dw_screen_height + +export dw_color_depth_get.260=dw_color_depth_get +export dw_color_foreground_set.261=dw_color_foreground_set +export dw_color_background_set.262=dw_color_background_set +export dw_color_choose.263=dw_color_choose + +export dw_notebook_new.270=dw_notebook_new +export dw_notebook_page_new.271=dw_notebook_page_new +export dw_notebook_page_destroy.272=dw_notebook_page_destroy +export dw_notebook_page_set_text.273=dw_notebook_page_set_text +export dw_notebook_page_set_status_text.274=dw_notebook_page_set_status_text +export dw_notebook_page_set.275=dw_notebook_page_set +export dw_notebook_page_get.276=dw_notebook_page_get +export dw_notebook_pack.277=dw_notebook_pack + +export dw_menu_new.280=dw_menu_new +export dw_menubar_new.281=dw_menubar_new +export dw_menu_append_item.282=dw_menu_append_item +export dw_menu_item_set_check.283=dw_menu_item_set_check +export dw_menu_popup.284=dw_menu_popup +export dw_menu_destroy.285=dw_menu_destroy +export dw_menu_item_set_state.286=dw_menu_item_set_state + +export dw_pointer_query_pos.290=dw_pointer_query_pos +export dw_pointer_set_pos.291=dw_pointer_set_pos + +export dw_mutex_new.300=dw_mutex_new +export dw_mutex_close.301=dw_mutex_close +export dw_mutex_lock.302=dw_mutex_lock +export dw_mutex_unlock.303=dw_mutex_unlock +export dw_mutex_trylock.304=dw_mutex_trylock + +export dw_event_new.310=dw_event_new +export dw_event_reset.311=dw_event_reset +export dw_event_post.312=dw_event_post +export dw_event_wait.313=dw_event_wait +export dw_event_close.314=dw_event_close + +export dw_thread_new.320=dw_thread_new +export dw_thread_end.321=dw_thread_end +export dw_thread_id.322=dw_thread_id + +export dw_render_new.330=dw_render_new +export dw_draw_point.331=dw_draw_point +export dw_draw_line.332=dw_draw_line +export dw_draw_rect.333=dw_draw_rect +export dw_draw_text.334=dw_draw_text +export dw_draw_polygon.335=dw_draw_polygon +export dw_draw_arc.336=dw_draw_arc + +export dw_pixmap_bitblt.340=dw_pixmap_bitblt +export dw_pixmap_new.341=dw_pixmap_new +export dw_pixmap_grab.342=dw_pixmap_grab +export dw_pixmap_destroy.343=dw_pixmap_destroy +export dw_pixmap_new_from_file.344=dw_pixmap_new_from_file +export dw_pixmap_new_from_data.345=dw_pixmap_new_from_data +export dw_pixmap_set_transparent_color.346=dw_pixmap_set_transparent_color +export dw_pixmap_set_font.347=dw_pixmap_set_font +export dw_pixmap_stretch_bitblt.348=dw_pixmap_stretch_bitblt + +export dw_dialog_new.350=dw_dialog_new +export dw_dialog_dismiss.351=dw_dialog_dismiss +export dw_dialog_wait.352=dw_dialog_wait + +export dw_signal_connect.360=dw_signal_connect +export dw_signal_disconnect_by_window.361=dw_signal_disconnect_by_window +export dw_signal_disconnect_by_data.362=dw_signal_disconnect_by_data +export dw_signal_disconnect_by_name.363=dw_signal_disconnect_by_name + +export dw_timer_connect.365=dw_timer_connect +export dw_timer_disconnect.366=dw_timer_disconnect + +export dw_tree_new.370=dw_tree_new +export dw_tree_insert.371=dw_tree_insert +export dw_tree_clear.372=dw_tree_clear +export dw_tree_item_delete.373=dw_tree_item_delete +export dw_tree_item_change.374=dw_tree_item_change +export dw_tree_item_expand.375=dw_tree_item_expand +export dw_tree_item_collapse.376=dw_tree_item_collapse +export dw_tree_item_select.377=dw_tree_item_select +export dw_tree_item_set_data.378=dw_tree_item_set_data +export dw_tree_insert_after.379=dw_tree_insert_after +export dw_tree_item_get_data.380=dw_tree_item_get_data +export dw_tree_get_title.381=dw_tree_get_title +export dw_tree_get_parent.382=dw_tree_get_parent + +export dw_font_text_extents_get.385=dw_font_text_extents_get +export dw_font_choose.386=dw_font_choose +export dw_font_set_default.387=dw_font_set_default + +export dw_slider_new.390=dw_slider_new +export dw_slider_get_pos.391=dw_slider_get_pos +export dw_slider_set_pos.392=dw_slider_set_pos + +export dw_window_set_data.400=dw_window_set_data +export dw_window_get_data.401=dw_window_get_data + +export dw_splitbar_new.410=dw_splitbar_new +export dw_splitbar_set.411=dw_splitbar_set +export dw_splitbar_get.412=dw_splitbar_get + +export dw_module_load.420=dw_module_load +export dw_module_symbol.421=dw_module_symbol +export dw_module_close.422=dw_module_close + +export dw_scrollbar_new.430=dw_scrollbar_new +export dw_scrollbar_get_pos.431=dw_scrollbar_get_pos +export dw_scrollbar_set_pos.432=dw_scrollbar_set_pos +export dw_scrollbar_set_range.433=dw_scrollbar_set_range + +export dw_taskbar_insert.440=dw_taskbar_insert +export dw_taskbar_delete.441=dw_taskbar_delete + +export dw_named_memory_new.450=dw_named_memory_new +export dw_named_memory_get.451=dw_named_memory_get +export dw_named_memory_free.452=dw_named_memory_free + +export dw_named_event_new.460=dw_named_event_new +export dw_named_event_get.461=dw_named_event_get +export dw_named_event_reset.462=dw_named_event_reset +export dw_named_event_post.463=dw_named_event_post +export dw_named_event_wait.464=dw_named_event_wait +export dw_named_event_close.465=dw_named_event_close + +export dw_html_new.470=dw_html_new +export dw_html_action.471=dw_html_action +export dw_html_raw.472=dw_html_raw +export dw_html_url.473=dw_html_url + +export dw_calendar_new.480=dw_calendar_new +export dw_calendar_set_date.481=dw_calendar_set_date +export dw_calendar_get_date.482=dw_calendar_get_date + +export dw_clipboard_get_text.490=dw_clipboard_get_text +export dw_clipboard_set_text.491=dw_clipboard_set_text + +export dw_scrollbox_new.500=dw_scrollbox_new +export dw_scrollbox_get_pos.501=dw_scrollbox_get_pos +export dw_scrollbox_get_range.502=dw_scrollbox_get_range + +export dw_print_new.510=dw_print_new +export dw_print_run.511=dw_print_run +export dw_print_cancel.512=dw_print_cancel + diff -r 20c6d0c50c94 -r 56f311dc23f6 os2/dwcompat.lnk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os2/dwcompat.lnk Tue Nov 29 15:25:41 2011 +0000 @@ -0,0 +1,28 @@ +option DESCRIPTION 'Dynamic Windows Compatibility Module for OS/2' +segment type DATA NONSHARED LOADONCALL + +export makedir.20=makedir +export vargs.21=vargs +export setfileinfo.22=setfileinfo +export drivefree.23=drivefree +export isdrive.24=isdrive +export drivesize.25=drivesize +export getfsname.26=getfsname + +export _opendir.30=_opendir +export _openxdir.31=_openxdir +export _readdir.32=_readdir +export _seekdir.33=_seekdir +export _telldir.34=_telldir +export _closedir.35=_closedir + +export fsopen.40=fsopen +export fsclose.41=fsclose +export fsgets.42=fsgets +export fsseek.43=fsseek + +export locale_init.50=locale_init +export locale_string.51=locale_string + +export nice_strformat.60=nice_strformat +export initdir.61=initdir diff -r 20c6d0c50c94 -r 56f311dc23f6 platform/dirent.h --- a/platform/dirent.h Mon Nov 28 05:49:27 2011 +0000 +++ b/platform/dirent.h Tue Nov 29 15:25:41 2011 +0000 @@ -26,6 +26,13 @@ # define A_ARCHIVE 0x20 #endif +#ifdef __WATCOMC__ +#undef DIR +#undef direct +#undef dirent +#define DIR DIRW +#endif + struct dirent { int d_ino; /* Dummy */ int d_reclen; /* Dummy, same as d_namlen */ diff -r 20c6d0c50c94 -r 56f311dc23f6 win/dw.c --- a/win/dw.c Mon Nov 28 05:49:27 2011 +0000 +++ b/win/dw.c Tue Nov 29 15:25:41 2011 +0000 @@ -3998,7 +3998,7 @@ int API dw_messagebox(char *title, int flags, char *format, ...) { va_list args; - char outbuf[1024]; + char outbuf[1025] = { 0 }; int rc; va_start(args, format);