diff os2/dw.c @ 1404:56f311dc23f6

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.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 29 Nov 2011 15:25:41 +0000
parents ccd383e11ff8
children b7aaf06e9367
line wrap: on
line diff
--- 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);