Changeset 347 for trunk/dll/eas.c


Ignore:
Timestamp:
Jul 26, 2006, 7:43:28 AM (19 years ago)
Author:
root
Message:

Use Runtime_Error

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/eas.c

    r207 r347  
    44  $Id$
    55
     6  Display/edit EAs
     7
    68  Copyright (c) 1993-98 M. Kimes
    7   Copyright (c) 2004, 2005 Steven H. Levine
     9  Copyright (c) 2004, 2006 Steven H. Levine
    810
    911  01 Aug 04 SHL Rework lstrip/rstrip usage
     
    1113  06 Jun 05 SHL Rework DisplayEAsProc for VAC3.65 compat
    1214  06 Jun 05 SHL Drop unused variables
     15  17 Jul 06 SHL Use Runtime_Error
    1316
    1417***********************************************************************/
     
    3033
    3134#pragma data_seg(DATA1)
     35
     36static PSZ pszSrcFile = __FILE__;
     37
    3238#pragma alloc_text(EAS,DisplayEAsProc,SaveEA,HexDumpEA,CheckEA,AddEAProc)
    3339#pragma alloc_text(EAS1,HexDump,GetFileEAs,Free_FEAList)
     
    172178            ULONG ealen;
    173179            CHAR *eaval;
     180            APIRET rc;
    174181
    175182            ealen = sizeof(FEA2LIST) + strlen(s) + 64;
    176             if (!DosAllocMem((PPVOID) & pfealist, ealen + 1L,
    177                              OBJ_TILE | PAG_COMMIT | PAG_READ | PAG_WRITE))
    178             {
     183            rc = DosAllocMem((PPVOID) & pfealist, ealen + 1L,
     184                             OBJ_TILE | PAG_COMMIT | PAG_READ | PAG_WRITE);
     185            if (rc)
     186              Dos_Error(MB_CANCEL,rc,HWND_DESKTOP,pszSrcFile,__LINE__,GetPString(IDS_OUTOFMEMORY));
     187            else {
    179188              memset(pfealist, 0, ealen + 1);
    180189              pfealist -> cbList = ealen;
     
    322331      break;
    323332    }
    324     eap = malloc(sizeof(EAPROCDATA));
     333    eap = xmalloc(sizeof(EAPROCDATA),pszSrcFile,__LINE__);
    325334    if (!eap)
    326335    {
     
    841850          }
    842851          if (!isalpha(*eap -> filename) ||
    843           (driveflags[toupper(*eap -> filename) - 'A'] & DRIVE_NOTWRITEABLE))
     852              (driveflags[toupper(*eap -> filename) - 'A'] & DRIVE_NOTWRITEABLE))
    844853          {
    845854            WinEnableWindow(WinWindowFromID(hwnd, EA_CHANGE), FALSE);
     
    932941        USHORT control;
    933942
    934         if (eap -> head && *eap -> filename)
     943        if (!eap -> head || !*eap -> filename)
     944          Runtime_Error(pszSrcFile, __LINE__, "no data");
     945        else
    935946        {
    936947          switch (*(USHORT *) eap -> current -> value)
     
    947958            break;
    948959          default:
    949             DosBeep(250, 100);
     960            Runtime_Error(pszSrcFile, __LINE__, "unexpected type");
    950961            WinShowWindow(WinWindowFromID(hwnd, EA_CHANGE), FALSE);
    951962            control = 0;
     
    953964          if (control)
    954965          {
    955             s = malloc(32768);
    956             if (s)
    957             {
     966            s = xmalloc(32768,pszSrcFile,__LINE__);
     967            if (s) {
    958968              *s = 0;
    959969              WinQueryDlgItemText(hwnd, control, 32767L, (PCH) s);
    960               if (*s)
    961               {
    962 
     970              if (!*s)
     971                Runtime_Error(pszSrcFile, __LINE__, "no data");
     972              else {
    963973                PFEA2LIST pfealist;
    964974
    965975                pfealist = SaveEA(eap -> filename, eap -> current, s, FALSE);
    966                 if (pfealist)
    967                 {
    968 
     976                if (!pfealist)
     977                  Runtime_Error(pszSrcFile, __LINE__, "SaveEA");
     978                else {
    969979                  PFEA2 pfea;
    970980
    971                   pfea = malloc(pfealist -> cbList);
    972                   if (pfea)
    973                   {
     981                  pfea = xmalloc(pfealist -> cbList,pszSrcFile,__LINE__);
     982                  if (pfea) {
    974983                    memcpy(pfea, pfealist -> list,
    975984                           pfealist -> cbList - sizeof(ULONG));
     
    988997                  DosFreeMem(pfealist);
    989998                }
    990                 else
    991                   DosBeep(250, 100);
    992999              }
    993               else
    994                 DosBeep(500, 100);
    9951000              free(s);
    9961001            }
    997             else
    998               DosBeep(100, 100);
    9991002          }
    10001003        }
    1001         else
    1002           DosBeep(50, 100);
    10031004      }
    10041005      break;
     
    10141015        SHORT sSelect;
    10151016
    1016         pfealist = malloc(sizeof(FEA2LIST) + eap -> current -> cbName + 1);
    1017         if (pfealist)
    1018         {
    1019           memset(pfealist, 0, sizeof(FEA2LIST) + eap -> current -> cbName + 1);
     1017        pfealist = xmallocz(sizeof(FEA2LIST) + eap -> current -> cbName + 1,pszSrcFile,__LINE__);
     1018        if (pfealist) {
    10201019          pfealist -> cbList = sizeof(FEA2LIST) + eap -> current -> cbName + 1;
    10211020          pfealist -> list[0].cbName = eap -> current -> cbName;
     
    10301029                              (ULONG) sizeof(EAOP2), DSPI_WRTTHRU);
    10311030          free(pfealist);
    1032           if (!rc)
    1033           {
     1031          if (rc)
     1032            Dos_Error(MB_CANCEL,rc,hwnd,pszSrcFile,__LINE__,"DosSetPathInfo");
     1033          else {
    10341034            sSelect = 0;
    1035             if (eap -> current == eap -> head)
    1036             {
     1035            if (eap -> current == eap -> head) {
    10371036              eap -> head = eap -> head -> next;
    10381037              free(eap -> current -> pfea);
     
    10401039              eap -> current = NULL;
    10411040            }
    1042             else
    1043             {
     1041            else {
    10441042              info = eap -> head;
    1045               while (info)
    1046               {
    1047                 if (info -> next == eap -> current)
    1048                 {
     1043              while (info) {
     1044                if (info -> next == eap -> current) {
    10491045                  sSelect++;
    10501046                  info -> next = eap -> current -> next;
     
    10781074                              MPFROM2SHORT(TRUE, 0));
    10791075          }
    1080           else
    1081             DosBeep(50, 100);
    10821076        }
    10831077      }
     
    11171111    }
    11181112    break;
    1119   }
     1113  } // switch
    11201114  return WinDefDlgProc(hwnd, msg, mp1, mp2);
    11211115}
     
    11711165  }
    11721166
    1173   if (!DosAllocMem((PPVOID) & pfealist, ealen,
    1174                    OBJ_TILE | PAG_COMMIT | PAG_READ | PAG_WRITE))
     1167  rc = DosAllocMem((PPVOID) & pfealist, ealen,
     1168                   OBJ_TILE | PAG_COMMIT | PAG_READ | PAG_WRITE);
     1169  if (rc)
     1170    Dos_Error(MB_CANCEL,rc,HWND_DESKTOP,pszSrcFile,__LINE__,GetPString(IDS_OUTOFMEMORY));
     1171  else
    11751172  {
    11761173    memset(pfealist, 0, ealen);
     
    12861283      (ULONG) pfealist -> list[0].cbValue;
    12871284
    1288 /*
    1289    {
    1290    FILE *fp;
    1291 
    1292    fp = fopen("test","wb");
    1293    if(fp) {
    1294    fwrite(pfealist,pfealist->cbList,1,fp);
    1295    fclose(fp);
    1296    }
    1297    }
    1298  */
    1299 
    13001285    rc = DosSetPathInfo(filename, FIL_QUERYEASIZE, (PVOID) & eaop,
    13011286                        (ULONG) sizeof(EAOP2), DSPI_WRTTHRU);
     
    13071292    if (rc && !silentfail)
    13081293    {
    1309       if (rc == ERROR_ACCESS_DENIED || rc == ERROR_SHARING_VIOLATION)
     1294      if (rc == ERROR_ACCESS_DENIED || rc == ERROR_SHARING_VIOLATION) {
    13101295        saymsg(MB_ENTER,
    13111296               HWND_DESKTOP,
     
    13141299               current -> name,
    13151300               filename);
    1316       else
     1301      }
     1302      else {
    13171303        Dos_Error(MB_ENTER,
    13181304                  rc,
    13191305                  HWND_DESKTOP,
    1320                   __FILE__,
     1306                  pszSrcFile,
    13211307                  __LINE__,
    13221308                  GetPString(IDS_ERRORWRITEEATEXT),
     
    13241310                  filename,
    13251311                  eaop.oError);
     1312      }
    13261313    }
    13271314  }
     
    13611348      ULONG x = 1L, ecnt = 1L;
    13621349
    1363       pdena = malloc(65536 + 1024);
     1350      pdena = xmalloc(65536 + 1024,pszSrcFile,__LINE__);
    13641351      if (pdena)
    13651352      {
     
    13681355               ecnt)
    13691356        {
    1370           pgealist = malloc(64 + pdena -> cbName);
     1357          pgealist = xmalloc(64 + pdena -> cbName,pszSrcFile,__LINE__);
    13711358          if (pgealist)
    13721359          {
     
    13761363            pgea -> cbName = pdena -> cbName;
    13771364            memcpy(pgea -> szName, pdena -> szName, pdena -> cbName + 1);
    1378             pfealist = malloc(64 + pdena -> cbName + pdena -> cbValue);
    1379             if (pfealist)
    1380             {
    1381               memset(pfealist, 0, 64 + pdena -> cbName + pdena -> cbValue);
     1365            pfealist = xmallocz(64 + pdena -> cbName + pdena -> cbValue,pszSrcFile,__LINE__);
     1366            if (pfealist) {
    13821367              pfealist -> cbList = 64 + pdena -> cbName + pdena -> cbValue;
    13831368              eaop.fpGEA2List = pgealist;
    13841369              eaop.fpFEA2List = pfealist;
    13851370              eaop.oError = 0L;
    1386 // saymsg(MB_ENTER,HWND_DESKTOP,"Debug1","\"%s\" %ld",pdena->szName,x);
     1371              // saymsg(MB_ENTER,HWND_DESKTOP,"Debug1","\"%s\" %ld",pdena->szName,x);
    13871372              rc = DosQueryFileInfo(handle, FIL_QUERYEASFROMLIST, (PVOID) & eaop,
    13881373                                    (ULONG) sizeof(EAOP2));
    1389               if (!rc)
    1390               {
    1391                 info = malloc(sizeof(HOLDFEA));
     1374              if (rc) {
     1375                if (!silentfail) {
     1376                  Dos_Error(MB_ENTER,
     1377                            rc,
     1378                            HWND_DESKTOP,
     1379                            pszSrcFile,
     1380                            __LINE__,
     1381                            GetPString(IDS_ERRORREADEATEXT),
     1382                            pdena -> szName);
     1383                }
     1384              }
     1385              else {
     1386                info = xmalloc(sizeof(HOLDFEA),pszSrcFile,__LINE__);
    13921387                if (info)
    13931388                {
    1394                   info -> pfea = malloc(eaop.fpFEA2List -> cbList - sizeof(ULONG));
     1389                  info -> pfea = xmalloc(eaop.fpFEA2List -> cbList - sizeof(ULONG),pszSrcFile,__LINE__);
    13951390                  memcpy(info -> pfea, eaop.fpFEA2List -> list,
    13961391                         eaop.fpFEA2List -> cbList - sizeof(ULONG));
     
    14081403                }
    14091404              }
    1410               else
    1411               {
    1412                 if (!silentfail)
    1413                   Dos_Error(MB_ENTER,
    1414                             rc,
    1415                             HWND_DESKTOP,
    1416                             __FILE__,
    1417                             __LINE__,
    1418                             GetPString(IDS_ERRORREADEATEXT),
    1419                             pdena -> szName);
    1420               }
    14211405              free(pfealist);
    14221406            }
     
    14461430      ULONG x = 1L, ecnt = 1L;
    14471431
    1448       pdena = malloc(65536 + 1024);
     1432      pdena = xmalloc(65536 + 1024,pszSrcFile,__LINE__);
    14491433      if (pdena)
    14501434      {
     
    14531437               ecnt)
    14541438        {
    1455           pgealist = malloc(64 + pdena -> cbName);
     1439          pgealist = xmalloc(64 + pdena -> cbName,pszSrcFile,__LINE__);
    14561440          if (pgealist)
    14571441          {
     
    14611445            pgea -> cbName = pdena -> cbName;
    14621446            memcpy(pgea -> szName, pdena -> szName, pdena -> cbName + 1);
    1463             pfealist = malloc(64 + pdena -> cbName + pdena -> cbValue);
    1464             if (pfealist)
    1465             {
    1466               memset(pfealist, 0, 64 + pdena -> cbName + pdena -> cbValue);
     1447            pfealist = xmallocz(64 + pdena -> cbName + pdena -> cbValue,pszSrcFile,__LINE__);
     1448            if (pfealist) {
    14671449              pfealist -> cbList = 64 + pdena -> cbName + pdena -> cbValue;
    14681450              eaop.fpGEA2List = pgealist;
     
    14751457              if (!rc)
    14761458              {
    1477                 info = malloc(sizeof(HOLDFEA));
     1459                info = xmalloc(sizeof(HOLDFEA),pszSrcFile,__LINE__);
    14781460                if (info)
    14791461                {
    1480                   info -> pfea = malloc(eaop.fpFEA2List -> cbList - sizeof(ULONG));
     1462                  info -> pfea = xmalloc(eaop.fpFEA2List -> cbList - sizeof(ULONG),pszSrcFile,__LINE__);
    14811463                  memcpy(info -> pfea, eaop.fpFEA2List -> list,
    14821464                         eaop.fpFEA2List -> cbList - sizeof(ULONG));
     
    15151497                    }
    15161498                  }
    1517                   else
     1499                  else {
    15181500                    Dos_Error(MB_ENTER,
    15191501                              rc,
    15201502                              HWND_DESKTOP,
    1521                               __FILE__,
     1503                              pszSrcFile,
    15221504                              __LINE__,
    15231505                              GetPString(IDS_ERRORREADEATEXT),
    15241506                              pdena -> szName);
     1507                  }
    15251508                }
    15261509              }
Note: See TracChangeset for help on using the changeset viewer.