Changeset 352 for trunk/dll/treecnr.c


Ignore:
Timestamp:
Jul 26, 2006, 9:35:45 PM (19 years ago)
Author:
root
Message:

Use Runtime_Error

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/treecnr.c

    r305 r352  
    77
    88  Copyright (c) 1993-98 M. Kimes
    9   Copyright (c) 2001, 2005 Steven H. Levine
     9  Copyright (c) 2001, 2006 Steven H. Levine
    1010
    1111  16 Oct 02 SHL Handle large partitions
     
    1717  06 Aug 05 SHL Renames
    1818  08 Dec 05 SHL TreeCnrWndProc: disable menu items if drive not ready
     19  17 Jul 06 SHL Use Runtime_Error
    1920
    2021***********************************************************************/
     
    3940
    4041#pragma data_seg(DATA1)
     42
     43static PSZ pszSrcFile = __FILE__;
     44
    4145#pragma alloc_text(TREECNR,TreeCnrWndProc,TreeObjWndProc,TreeClientWndProc)
    4246#pragma alloc_text(TREECNR,TreeFrameWndProc,TreeTitleWndProc,ShowTreeRec)
     
    5458
    5559
    56 MRESULT EXPENTRY OpenButtonProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) {
    57 
     60MRESULT EXPENTRY OpenButtonProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
     61{
    5862  static BOOL emphasized = FALSE;
    5963
     
    129133
    130134
    131 VOID ShowTreeRec (HWND hwndCnr,CHAR *dirname,BOOL collapsefirst,BOOL maketop) {
    132 
     135VOID ShowTreeRec (HWND hwndCnr,CHAR *dirname,BOOL collapsefirst,BOOL maketop)
     136{
    133137  /* Find a record in tree view, move it so it shows in container and
    134138     make it the current record */
     
    273277
    274278
    275 MRESULT EXPENTRY TreeTitleWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) {
    276 
     279MRESULT EXPENTRY TreeTitleWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
     280{
    277281  PFNWP oldproc = (PFNWP)WinQueryWindowPtr(hwnd,QWL_USER);
    278282
     
    288292
    289293
    290 MRESULT EXPENTRY TreeStatProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) {
    291 
     294MRESULT EXPENTRY TreeStatProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
     295{
    292296  switch(msg) {
    293297    case WM_CREATE:
     
    319323
    320324
    321 MRESULT EXPENTRY TreeFrameWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) {
    322 
     325MRESULT EXPENTRY TreeFrameWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
     326{
    323327  switch(msg) {
    324328    case UM_RESCAN:
     
    631635    case UM_EXPAND:
    632636      dcd = WinQueryWindowPtr(hwnd,QWL_USER);
    633       if(dcd) {
    634 
     637      if (!dcd)
     638        Runtime_Error(pszSrcFile, __LINE__, "no data");
     639      else {
    635640        BOOL tempsusp = dcd->suspendview;
    636641
     
    649654    case UM_UPDATERECORDLIST:
    650655      dcd = WinQueryWindowPtr(hwnd,QWL_USER);
    651       if(dcd && mp1) {
    652 
     656      if (!dcd || !mp1)
     657        Runtime_Error(pszSrcFile, __LINE__, "no data");
     658      else {
    653659        INT    numentries = 0;
    654660        CHAR **list = (CHAR **)mp1;
     
    667673    case UM_SETUP:
    668674      dcd = WinQueryWindowPtr(hwnd,QWL_USER);
    669       if(dcd) {
     675      if (!dcd)
     676        Runtime_Error(pszSrcFile, __LINE__, "no data");
     677      else {
    670678        dcd->hwndObject = hwnd;
    671679        if(ParentIsDesktop(hwnd,dcd->hwndParent))
     
    676684    case UM_RESCAN2:
    677685      dcd = WinQueryWindowPtr(hwnd,QWL_USER);
    678       if(dcd &&
    679          hwndStatus &&
    680          dcd->hwndFrame == WinQueryActiveWindow(dcd->hwndParent)) {
    681 
     686      if (!dcd)
     687        Runtime_Error(pszSrcFile, __LINE__, "no data");
     688      else if (!hwndStatus)
     689        Runtime_Error(pszSrcFile, __LINE__, "no window");
     690      else if (dcd->hwndFrame == WinQueryActiveWindow(dcd->hwndParent)) {
    682691        CHAR      s[CCHMAXPATH * 2];
    683692        PCNRITEM   pci = (PCNRITEM)mp1;
     
    778787       */
    779788      dcd = WinQueryWindowPtr(hwnd,QWL_USER);
    780       if(dcd) {
     789      if (!dcd)
     790        Runtime_Error(pszSrcFile, __LINE__, "no data");
     791      else {
    781792        WinSendMsg(dcd->hwndCnr,
    782793                   CM_REMOVERECORD,
     
    849860
    850861        dcd = WinQueryWindowPtr(hwnd,QWL_USER);
    851         if(dcd) {
    852 
     862        if (!dcd)
     863          Runtime_Error(pszSrcFile, __LINE__, "no data");
     864        else {
    853865          WORKER *wk;
    854866
    855           wk = malloc(sizeof(WORKER));
    856           if(wk) {
    857             memset(wk,0,sizeof(WORKER));
     867          wk = xmallocz(sizeof(WORKER), pszSrcFile, __LINE__);
     868          if (!wk)
     869            FreeListInfo((LISTINFO *)mp1);
     870          else {
    858871            wk->size = sizeof(WORKER);
    859872            wk->hwndCnr = dcd->hwndCnr;
     
    863876            wk->li = (LISTINFO *)mp1;
    864877            strcpy(wk->directory,dcd->directory);
    865             if(_beginthread(MassAction,
    866                             NULL,
    867                             122880,
    868                             (PVOID)wk) ==
    869                -1) {
     878            if (_beginthread(MassAction,NULL,122880,(PVOID)wk) == -1) {
     879              Runtime_Error(pszSrcFile, __LINE__, GetPString(IDS_COULDNTSTARTTHREADTEXT));
    870880              free(wk);
    871881              FreeListInfo((LISTINFO *)mp1);
    872882            }
    873883          }
    874           else
    875             FreeListInfo((LISTINFO *)mp1);
    876884        }
    877885      }
     
    882890
    883891        dcd = WinQueryWindowPtr(hwnd,QWL_USER);
    884         if(dcd) {
    885 
     892        if (!dcd)
     893          Runtime_Error(pszSrcFile, __LINE__, "no data");
     894        else {
    886895          WORKER *wk;
    887896
    888           wk = malloc(sizeof(WORKER));
    889           if(wk) {
    890             memset(wk,0,sizeof(WORKER));
     897          wk = xmallocz(sizeof(WORKER), pszSrcFile,__LINE__);
     898          if (!wk)
     899            FreeListInfo((LISTINFO *)mp1);
     900          else {
    891901            wk->size = sizeof(WORKER);
    892902            wk->hwndCnr = dcd->hwndCnr;
     
    896906            wk->li = (LISTINFO *)mp1;
    897907            strcpy(wk->directory,dcd->directory);
    898             if(_beginthread(Action,
    899                             NULL,
    900                             122880,
    901                             (PVOID)wk) ==
    902                -1) {
     908            if (_beginthread(Action,NULL,122880,(PVOID)wk) == -1) {
     909              Runtime_Error(pszSrcFile, __LINE__, GetPString(IDS_COULDNTSTARTTHREADTEXT));
    903910              free(wk);
    904911              FreeListInfo((LISTINFO *)mp1);
    905912            }
    906913          }
    907           else
    908             FreeListInfo((LISTINFO *)mp1);
    909914        }
    910915      }
     
    918923      hwndTree = (HWND)0;
    919924      dcd = WinQueryWindowPtr(hwnd,QWL_USER);
    920       if(dcd) {
     925      if (dcd) {
    921926        WinSendMsg(dcd->hwndCnr,
    922927                   UM_CLOSE,
     
    11591164        CHAR    *leftdir = (CHAR *)mp1,*rightdir = (CHAR *)mp2;
    11601165
    1161         if(!IsFile(leftdir) &&
    1162            !IsFile(rightdir)) {
    1163           cmp = malloc(sizeof(COMPARE));
     1166        if (!IsFile(leftdir) && !IsFile(rightdir)) {
     1167          cmp = xmallocz(sizeof(COMPARE),pszSrcFile,__LINE__);
    11641168          if(cmp) {
    1165             memset(cmp,0,sizeof(COMPARE));
    11661169            cmp->size = sizeof(COMPARE);
    11671170            strcpy(cmp->leftdir,leftdir);
     
    13051308
    13061309    case UM_SETUP:
    1307       if(dcd) {
     1310      if (!dcd) {
     1311        Runtime_Error(pszSrcFile, __LINE__, "no data");
     1312        PostMsg(hwnd,WM_CLOSE,MPVOID,MPVOID);
     1313        return 0;
     1314      }
     1315      else {
    13081316        if(!dcd->hwndObject) {
    13091317          /*
     
    13641372                     MPFROMLONG(CMA_FLWINDOWATTR | CMA_LINESPACING |
    13651373                                CMA_CXTREEINDENT | CMA_PSORTRECORD));
    1366 //                                CMA_TREEICON));
    1367           if(_beginthread(MakeObjWin,
    1368                           NULL,
    1369                           327680,
    1370                           (PVOID)dcd) ==
    1371              -1) {
     1374          if (_beginthread(MakeObjWin,NULL,327680,(PVOID)dcd) == -1) {
     1375            Runtime_Error(pszSrcFile, __LINE__, GetPString(IDS_COULDNTSTARTTHREADTEXT));
    13721376            PostMsg(hwnd,
    13731377                    WM_CLOSE,
     
    13791383            DosSleep(1L);
    13801384        }
    1381       }
    1382       else {
    1383         PostMsg(hwnd,
    1384                 WM_CLOSE,
    1385                 MPVOID,
    1386                 MPVOID);
    1387         return 0;
    13881385      }
    13891386      return 0;
     
    14251422                                   MPFROMLONG(CMA_FIRST),
    14261423                                   MPFROMP(&pqr));
    1427         if(pci && (INT)pci != -1) {
     1424        if(!pci || (INT)pci == -1)
     1425          Runtime_Error(pszSrcFile, __LINE__, "no data");
     1426        else {
    14281427          memset(&nr,0,sizeof(nr));
    14291428          nr.hwndCnr = hwnd;
     
    14411440                  MPVOID);
    14421441        }
    1443         else
    1444           DosBeep(50,100);
    14451442      }
    14461443      break;
     
    15671564              PCNRITEM     pci;
    15681565
    1569               if(pcd) {
     1566              if (!pcd) {
     1567                Runtime_Error(pszSrcFile, __LINE__, "no data");
     1568                break;
     1569              }
     1570              else {
    15701571                pci = (PCNRITEM)pcd->pRecord;
    1571                 if(!pci || (INT)pci == -1 ||
    1572                    (pci->flags & (RECFLAGS_ENV | RECFLAGS_NODRAG))) {
    1573                   DosBeep(50,100);
     1572                if (!pci || (INT)pci == -1) {
     1573                  Runtime_Error(pszSrcFile, __LINE__, "no data");
    15741574                  break;
    15751575                }
    1576                 if(hwndStatus2)
     1576                if (pci->flags & (RECFLAGS_ENV | RECFLAGS_NODRAG)) {
     1577                  Runtime_Error(pszSrcFile, __LINE__, "drag not allowed");
     1578                  break;
     1579                }
     1580                if(hwndStatus2) {
    15771581                  WinSetWindowText(hwndStatus2,(IsRoot(pci->szFileName)) ?
    15781582                                   GetPString(IDS_DRAGROOTTEXT) :
     
    15801584                                   GetPString(IDS_DRAGDIRTEXT) :
    15811585                                   GetPString(IDS_DRAGFILETEXT));
     1586                }
    15821587                DoFileDrag(hwnd,
    15831588                           dcd->hwndObject,
     
    15861591                           NULL,
    15871592                           TRUE);
    1588                 if(hwndStatus2)
     1593                if(hwndStatus2) {
    15891594                  PostMsg(hwnd,
    15901595                          UM_RESCAN,
    15911596                          MPVOID,
    15921597                          MPVOID);
     1598                }
    15931599              }
    15941600            }
     
    19191925            }
    19201926            break;
    1921         }
     1927        } // switch WM_CONTROL
    19221928      }
    19231929      return 0;
     
    19401946    case UM_SHOWME:
    19411947      if(mp1 && dcd) {
    1942 
    1943         CHAR *dir;
    1944 
    1945         dir = strdup((CHAR *)mp1);
    1946         if(dir) {
     1948        CHAR *dir = xstrdup((CHAR *)mp1, pszSrcFile, __LINE__);
     1949        if (dir) {
    19471950          if(!PostMsg(dcd->hwndObject,
    19481951                      UM_SHOWME,
     
    19921995          }
    19931996          DosError(FERR_DISABLEHARDERR);
    1994           if(!DosQCurDisk(&ulDriveNum,&ulDriveMap)) {
    1995             if(!(ulDriveMap & 1L << (toupper(*pci->szFileName) - 'A'))) {
     1997          if (!DosQCurDisk(&ulDriveNum,&ulDriveMap)) {
     1998            if (!(ulDriveMap & 1L << (toupper(*pci->szFileName) - 'A'))) {
    19961999              pciL = pciP = pci;
    1997               for(;;) {
     2000              for (;;) {
    19982001                pciP = WinSendMsg(hwnd,
    19992002                                  CM_QUERYRECORD,
     
    20062009                  break;
    20072010                }
    2008               }
     2011              } // for
    20092012              WinSendMsg(hwnd,
    20102013                         CM_REMOVERECORD,
     
    24162419
    24172420    case UM_COMMAND:
    2418       if(mp1) {
    2419         if(dcd) {
    2420           if(!PostMsg(dcd->hwndObject,UM_COMMAND,mp1,mp2)) {
     2421      if (!mp1)
     2422        Runtime_Error(pszSrcFile, __LINE__, "no data");
     2423      else {
     2424        if (!dcd) {
     2425          Runtime_Error(pszSrcFile, __LINE__, "no data");
     2426          FreeListInfo((LISTINFO *)mp1);
     2427        }
     2428        else {
     2429          if (!PostMsg(dcd->hwndObject,UM_COMMAND,mp1,mp2)) {
     2430            Runtime_Error(pszSrcFile, __LINE__, "PostMsg");
    24212431            FreeListInfo((LISTINFO *)mp1);
    2422             DosBeep(50,100);
    24232432          }
    24242433          else
    24252434            return (MRESULT)TRUE;
    24262435        }
    2427         else
    2428           FreeListInfo((LISTINFO *)mp1);
    24292436      }
    24302437      return 0;
     
    25662573                happ = WinStartApp(hwnd,&pgd,pgd.pszParameters,
    25672574                                   NULL,SAF_MAXIMIZED);
    2568                 if(happ) {
    2569 
     2575                if (!happ) {
     2576                  saymsg(MB_CANCEL | MB_ICONEXCLAMATION,hwnd,
     2577                         GetPString(IDS_ERRORTEXT),
     2578                         GetPString(IDS_CANTSTARTTEXT),
     2579                         p,params);
     2580                }
     2581                else {
    25702582                  APPNOTIFY *info;
    25712583
    2572                   info = malloc(sizeof(APPNOTIFY));
    2573                   if(info) {
    2574                     memset(info,0,sizeof(APPNOTIFY));
     2584                  info = xmallocz(sizeof(APPNOTIFY), pszSrcFile, __LINE__);
     2585                  if (info) {
    25752586                    info->happ = happ;
    25762587                    info->device = *d;
    2577                     if(!apphead)
     2588                    if (!apphead)
    25782589                      apphead = info;
    25792590                    else {
     
    25842595                  }
    25852596                }
    2586                 else
    2587                   saymsg(MB_CANCEL | MB_ICONEXCLAMATION,hwnd,
    2588                          GetPString(IDS_ERRORTEXT),
    2589                          GetPString(IDS_CANTSTARTTEXT),
    2590                          p,params);
    25912597              }
    25922598            }
     
    30683074              ULONG     action = UM_ACTION;
    30693075
    3070               li = malloc(sizeof(LISTINFO));
    3071               if(li) {
    3072                 memset(li,0,sizeof(LISTINFO));
     3076              li = xmallocz(sizeof(LISTINFO),pszSrcFile,__LINE__);
     3077              if (li) {
    30733078                li->type = SHORT1FROMMP(mp1);
    30743079                li->hwnd = hwnd;
     
    31193124                  *li->targetpath = 0;
    31203125                if(!PostMsg(dcd->hwndObject,action,MPFROMP(li),MPVOID)) {
     3126                  Runtime_Error(pszSrcFile, __LINE__, "PostMsg");
    31213127                  FreeListInfo(li);
    3122                   DosBeep(50,100);
    31233128                }
    31243129              }
     
    32523257
    32533258
    3254 HWND StartTreeCnr (HWND hwndParent,ULONG flags) {
    3255 
     3259HWND StartTreeCnr (HWND hwndParent,ULONG flags)
     3260{
    32563261  /* bitmapped flags:
    32573262   * 0x00000001 = don't close app when window closes
     
    32833288                                 &hwndClient);
    32843289  if(hwndFrame && hwndClient) {
    3285     dcd = malloc(sizeof(DIRCNRDATA));
    3286     if(dcd) {
    3287 
     3290    dcd = xmalloc(sizeof(DIRCNRDATA), pszSrcFile, __LINE__);
     3291    if (!dcd) {
     3292      Runtime_Error(pszSrcFile,__LINE__,GetPString(IDS_OUTOFMEMORY));
     3293      PostMsg(hwndClient,WM_CLOSE,MPVOID,MPVOID);
     3294      hwndFrame = (HWND)0;
     3295    }
     3296    else {
    32883297      SWP swp;
    3289 
    32903298      WinQueryWindowPos(hwndFrame,&swp);
    32913299      if(*(ULONG *)realappname == FM3UL)
     
    33763384      }
    33773385    }
    3378     else {
    3379       saymsg(MB_ENTER,hwndParent,DEBUG_STRING,
    3380              GetPString(IDS_OUTOFMEMORY));
    3381       PostMsg(hwndClient,WM_CLOSE,MPVOID,MPVOID);
    3382       hwndFrame = (HWND)0;
    3383     }
    33843386  }
    33853387  return hwndFrame;
Note: See TracChangeset for help on using the changeset viewer.