Changeset 347 for trunk/dll/eas.c
- Timestamp:
- Jul 26, 2006, 7:43:28 AM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/eas.c
r207 r347 4 4 $Id$ 5 5 6 Display/edit EAs 7 6 8 Copyright (c) 1993-98 M. Kimes 7 Copyright (c) 2004, 200 5Steven H. Levine9 Copyright (c) 2004, 2006 Steven H. Levine 8 10 9 11 01 Aug 04 SHL Rework lstrip/rstrip usage … … 11 13 06 Jun 05 SHL Rework DisplayEAsProc for VAC3.65 compat 12 14 06 Jun 05 SHL Drop unused variables 15 17 Jul 06 SHL Use Runtime_Error 13 16 14 17 ***********************************************************************/ … … 30 33 31 34 #pragma data_seg(DATA1) 35 36 static PSZ pszSrcFile = __FILE__; 37 32 38 #pragma alloc_text(EAS,DisplayEAsProc,SaveEA,HexDumpEA,CheckEA,AddEAProc) 33 39 #pragma alloc_text(EAS1,HexDump,GetFileEAs,Free_FEAList) … … 172 178 ULONG ealen; 173 179 CHAR *eaval; 180 APIRET rc; 174 181 175 182 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 { 179 188 memset(pfealist, 0, ealen + 1); 180 189 pfealist -> cbList = ealen; … … 322 331 break; 323 332 } 324 eap = malloc(sizeof(EAPROCDATA));333 eap = xmalloc(sizeof(EAPROCDATA),pszSrcFile,__LINE__); 325 334 if (!eap) 326 335 { … … 841 850 } 842 851 if (!isalpha(*eap -> filename) || 843 (driveflags[toupper(*eap -> filename) - 'A'] & DRIVE_NOTWRITEABLE))852 (driveflags[toupper(*eap -> filename) - 'A'] & DRIVE_NOTWRITEABLE)) 844 853 { 845 854 WinEnableWindow(WinWindowFromID(hwnd, EA_CHANGE), FALSE); … … 932 941 USHORT control; 933 942 934 if (eap -> head && *eap -> filename) 943 if (!eap -> head || !*eap -> filename) 944 Runtime_Error(pszSrcFile, __LINE__, "no data"); 945 else 935 946 { 936 947 switch (*(USHORT *) eap -> current -> value) … … 947 958 break; 948 959 default: 949 DosBeep(250, 100);960 Runtime_Error(pszSrcFile, __LINE__, "unexpected type"); 950 961 WinShowWindow(WinWindowFromID(hwnd, EA_CHANGE), FALSE); 951 962 control = 0; … … 953 964 if (control) 954 965 { 955 s = malloc(32768); 956 if (s) 957 { 966 s = xmalloc(32768,pszSrcFile,__LINE__); 967 if (s) { 958 968 *s = 0; 959 969 WinQueryDlgItemText(hwnd, control, 32767L, (PCH) s); 960 if ( *s)961 { 962 970 if (!*s) 971 Runtime_Error(pszSrcFile, __LINE__, "no data"); 972 else { 963 973 PFEA2LIST pfealist; 964 974 965 975 pfealist = SaveEA(eap -> filename, eap -> current, s, FALSE); 966 if ( pfealist)967 { 968 976 if (!pfealist) 977 Runtime_Error(pszSrcFile, __LINE__, "SaveEA"); 978 else { 969 979 PFEA2 pfea; 970 980 971 pfea = malloc(pfealist -> cbList); 972 if (pfea) 973 { 981 pfea = xmalloc(pfealist -> cbList,pszSrcFile,__LINE__); 982 if (pfea) { 974 983 memcpy(pfea, pfealist -> list, 975 984 pfealist -> cbList - sizeof(ULONG)); … … 988 997 DosFreeMem(pfealist); 989 998 } 990 else991 DosBeep(250, 100);992 999 } 993 else994 DosBeep(500, 100);995 1000 free(s); 996 1001 } 997 else998 DosBeep(100, 100);999 1002 } 1000 1003 } 1001 else1002 DosBeep(50, 100);1003 1004 } 1004 1005 break; … … 1014 1015 SHORT sSelect; 1015 1016 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) { 1020 1019 pfealist -> cbList = sizeof(FEA2LIST) + eap -> current -> cbName + 1; 1021 1020 pfealist -> list[0].cbName = eap -> current -> cbName; … … 1030 1029 (ULONG) sizeof(EAOP2), DSPI_WRTTHRU); 1031 1030 free(pfealist); 1032 if (!rc) 1033 { 1031 if (rc) 1032 Dos_Error(MB_CANCEL,rc,hwnd,pszSrcFile,__LINE__,"DosSetPathInfo"); 1033 else { 1034 1034 sSelect = 0; 1035 if (eap -> current == eap -> head) 1036 { 1035 if (eap -> current == eap -> head) { 1037 1036 eap -> head = eap -> head -> next; 1038 1037 free(eap -> current -> pfea); … … 1040 1039 eap -> current = NULL; 1041 1040 } 1042 else 1043 { 1041 else { 1044 1042 info = eap -> head; 1045 while (info) 1046 { 1047 if (info -> next == eap -> current) 1048 { 1043 while (info) { 1044 if (info -> next == eap -> current) { 1049 1045 sSelect++; 1050 1046 info -> next = eap -> current -> next; … … 1078 1074 MPFROM2SHORT(TRUE, 0)); 1079 1075 } 1080 else1081 DosBeep(50, 100);1082 1076 } 1083 1077 } … … 1117 1111 } 1118 1112 break; 1119 } 1113 } // switch 1120 1114 return WinDefDlgProc(hwnd, msg, mp1, mp2); 1121 1115 } … … 1171 1165 } 1172 1166 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 1175 1172 { 1176 1173 memset(pfealist, 0, ealen); … … 1286 1283 (ULONG) pfealist -> list[0].cbValue; 1287 1284 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 1300 1285 rc = DosSetPathInfo(filename, FIL_QUERYEASIZE, (PVOID) & eaop, 1301 1286 (ULONG) sizeof(EAOP2), DSPI_WRTTHRU); … … 1307 1292 if (rc && !silentfail) 1308 1293 { 1309 if (rc == ERROR_ACCESS_DENIED || rc == ERROR_SHARING_VIOLATION) 1294 if (rc == ERROR_ACCESS_DENIED || rc == ERROR_SHARING_VIOLATION) { 1310 1295 saymsg(MB_ENTER, 1311 1296 HWND_DESKTOP, … … 1314 1299 current -> name, 1315 1300 filename); 1316 else 1301 } 1302 else { 1317 1303 Dos_Error(MB_ENTER, 1318 1304 rc, 1319 1305 HWND_DESKTOP, 1320 __FILE__,1306 pszSrcFile, 1321 1307 __LINE__, 1322 1308 GetPString(IDS_ERRORWRITEEATEXT), … … 1324 1310 filename, 1325 1311 eaop.oError); 1312 } 1326 1313 } 1327 1314 } … … 1361 1348 ULONG x = 1L, ecnt = 1L; 1362 1349 1363 pdena = malloc(65536 + 1024);1350 pdena = xmalloc(65536 + 1024,pszSrcFile,__LINE__); 1364 1351 if (pdena) 1365 1352 { … … 1368 1355 ecnt) 1369 1356 { 1370 pgealist = malloc(64 + pdena -> cbName);1357 pgealist = xmalloc(64 + pdena -> cbName,pszSrcFile,__LINE__); 1371 1358 if (pgealist) 1372 1359 { … … 1376 1363 pgea -> cbName = pdena -> cbName; 1377 1364 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) { 1382 1367 pfealist -> cbList = 64 + pdena -> cbName + pdena -> cbValue; 1383 1368 eaop.fpGEA2List = pgealist; 1384 1369 eaop.fpFEA2List = pfealist; 1385 1370 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); 1387 1372 rc = DosQueryFileInfo(handle, FIL_QUERYEASFROMLIST, (PVOID) & eaop, 1388 1373 (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__); 1392 1387 if (info) 1393 1388 { 1394 info -> pfea = malloc(eaop.fpFEA2List -> cbList - sizeof(ULONG));1389 info -> pfea = xmalloc(eaop.fpFEA2List -> cbList - sizeof(ULONG),pszSrcFile,__LINE__); 1395 1390 memcpy(info -> pfea, eaop.fpFEA2List -> list, 1396 1391 eaop.fpFEA2List -> cbList - sizeof(ULONG)); … … 1408 1403 } 1409 1404 } 1410 else1411 {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 }1421 1405 free(pfealist); 1422 1406 } … … 1446 1430 ULONG x = 1L, ecnt = 1L; 1447 1431 1448 pdena = malloc(65536 + 1024);1432 pdena = xmalloc(65536 + 1024,pszSrcFile,__LINE__); 1449 1433 if (pdena) 1450 1434 { … … 1453 1437 ecnt) 1454 1438 { 1455 pgealist = malloc(64 + pdena -> cbName);1439 pgealist = xmalloc(64 + pdena -> cbName,pszSrcFile,__LINE__); 1456 1440 if (pgealist) 1457 1441 { … … 1461 1445 pgea -> cbName = pdena -> cbName; 1462 1446 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) { 1467 1449 pfealist -> cbList = 64 + pdena -> cbName + pdena -> cbValue; 1468 1450 eaop.fpGEA2List = pgealist; … … 1475 1457 if (!rc) 1476 1458 { 1477 info = malloc(sizeof(HOLDFEA));1459 info = xmalloc(sizeof(HOLDFEA),pszSrcFile,__LINE__); 1478 1460 if (info) 1479 1461 { 1480 info -> pfea = malloc(eaop.fpFEA2List -> cbList - sizeof(ULONG));1462 info -> pfea = xmalloc(eaop.fpFEA2List -> cbList - sizeof(ULONG),pszSrcFile,__LINE__); 1481 1463 memcpy(info -> pfea, eaop.fpFEA2List -> list, 1482 1464 eaop.fpFEA2List -> cbList - sizeof(ULONG)); … … 1515 1497 } 1516 1498 } 1517 else 1499 else { 1518 1500 Dos_Error(MB_ENTER, 1519 1501 rc, 1520 1502 HWND_DESKTOP, 1521 __FILE__,1503 pszSrcFile, 1522 1504 __LINE__, 1523 1505 GetPString(IDS_ERRORREADEATEXT), 1524 1506 pdena -> szName); 1507 } 1525 1508 } 1526 1509 }
Note:
See TracChangeset
for help on using the changeset viewer.