@@ -8413,6 +8413,7 @@ static OSStatus getAEParams(const AppleEvent *ae, AEKeyword key, MCStringRef &r_
84138413 Size rSize;
84148414 DescType dt;
84158415 Size s;
8416+ bool t_success = true ;
84168417 if ((errno = AESizeOfParam (ae, key, &dt, &s)) == noErr)
84178418 {
84188419 switch (dt)
@@ -8428,14 +8429,14 @@ static OSStatus getAEParams(const AppleEvent *ae, AEKeyword key, MCStringRef &r_
84288429 {
84298430 byte_t *result = new byte_t [s + 1 ];
84308431 AEGetParamPtr (ae, key, dt, &rType, result, s, &rSize);
8431- /* UNCHECKED */ MCStringCreateWithBytesAndRelease (result, s, kMCStringEncodingUTF8 , false , r_result);
8432+ t_success = MCStringCreateWithBytesAndRelease (result, s, kMCStringEncodingUTF8 , false , r_result);
84328433 break ;
84338434 }
84348435 case typeChar:
84358436 {
84368437 char_t *result = new char_t [s + 1 ];
84378438 AEGetParamPtr (ae, key, dt, &rType, result, s, &rSize);
8438- /* UNCHECKED */ MCStringCreateWithNativeChars (result, s, r_result);
8439+ t_success = MCStringCreateWithNativeChars (result, s, r_result);
84398440 delete[] result;
84408441 break ;
84418442 }
@@ -8445,64 +8446,64 @@ static OSStatus getAEParams(const AppleEvent *ae, AEKeyword key, MCStringRef &r_
84458446 AEGetParamPtr (ae, key, dt, &rType, &t_type, s, &rSize);
84468447 char *result;
84478448 result = FourCharCodeToString (t_type);
8448- /* UNCHECKED */ MCStringCreateWithNativeChars ((char_t *)result, 4 , r_result);
8449+ t_success = MCStringCreateWithNativeChars ((char_t *)result, 4 , r_result);
84498450 delete[] result;
84508451 }
84518452 break ;
84528453 case typeSInt16:
84538454 {
84548455 int16_t i;
84558456 AEGetParamPtr (ae, key, dt, &rType, &i, s, &rSize);
8456- /* UNCHECKED */ MCStringFormat (r_result, PRId16, i);
8457+ t_success = MCStringFormat (r_result, PRId16, i);
84578458 break ;
84588459 }
84598460 case typeSInt32:
84608461 {
84618462 int32_t i;
84628463 AEGetParamPtr (ae, key, dt, &rType, &i, s, &rSize);
8463- /* UNCHECKED */ MCStringFormat (r_result, PRId32, i);
8464+ t_success = MCStringFormat (r_result, PRId32, i);
84648465 break ;
84658466 }
84668467 case typeSInt64:
84678468 {
84688469 int64_t i;
84698470 AEGetParamPtr (ae, key, dt, &rType, &i, s, &rSize);
8470- /* UNCHECKED */ MCStringFormat (r_result, PRId64, i);
8471+ t_success = MCStringFormat (r_result, PRId64, i);
84718472 break ;
84728473 }
84738474 case typeIEEE32BitFloatingPoint:
84748475 {
84758476 float32_t f;
84768477 AEGetParamPtr (ae, key, dt, &rType, &f, s, &rSize);
8477- /* UNCHECKED */ MCStringFormat (r_result, " %12.12g" , f);
8478+ t_success = MCStringFormat (r_result, " %12.12g" , f);
84788479 break ;
84798480 }
84808481 case typeIEEE64BitFloatingPoint:
84818482 {
84828483 float64_t f;
84838484 AEGetParamPtr (ae, key, dt, &rType, &f, s, &rSize);
8484- /* UNCHECKED */ MCStringFormat (r_result, " %12.12g" , f);
8485+ t_success = MCStringFormat (r_result, " %12.12g" , f);
84858486 break ;
84868487 }
84878488 case typeUInt16:
84888489 {
84898490 uint16_t i;
84908491 AEGetParamPtr (ae, key, dt, &rType, &i, s, &rSize);
8491- /* UNCHECKED */ MCStringFormat (r_result, PRIu16, i);
8492+ t_success = MCStringFormat (r_result, PRIu16, i);
84928493 break ;
84938494 }
84948495 case typeUInt32:
84958496 {
84968497 uint32_t i;
84978498 AEGetParamPtr (ae, key, dt, &rType, &i, s, &rSize);
8498- /* UNCHECKED */ MCStringFormat (r_result, PRIu32, i);
8499+ t_success = MCStringFormat (r_result, PRIu32, i);
84998500 break ;
85008501 }
85018502 case typeUInt64:
85028503 {
85038504 uint64_t i;
85048505 AEGetParamPtr (ae, key, dt, &rType, &i, s, &rSize);
8505- /* UNCHECKED */ MCStringFormat (r_result, PRIu64, i);
8506+ t_success = MCStringFormat (r_result, PRIu64, i);
85068507 break ;
85078508 }
85088509 case typeNull:
@@ -8513,22 +8514,26 @@ static OSStatus getAEParams(const AppleEvent *ae, AEKeyword key, MCStringRef &r_
85138514 {
85148515 FSSpec fs;
85158516 errno = AEGetParamPtr (ae, key, dt, &rType, &fs, s, &rSize);
8516- /* UNCHECKED */ MCS_mac_FSSpec2path (&fs, r_result);
8517+ t_success = MCS_mac_FSSpec2path (&fs, r_result);
85178518 }
85188519 break ;
85198520#endif
85208521 case typeFSRef:
85218522 {
85228523 FSRef t_fs_ref;
85238524 errno = AEGetParamPtr (ae, key, dt, &rType, &t_fs_ref, s, &rSize);
8524- /* UNCHECKED */ MCS_mac_fsref_to_path (t_fs_ref, r_result);
8525+ t_success = MCS_mac_fsref_to_path (t_fs_ref, r_result);
85258526 }
85268527 break ;
85278528 default :
8528- /* UNCHECKED */ MCStringFormat (r_result, " unknown type %4.4s" , (char *)&dt);
8529+ t_success = MCStringFormat (r_result, " unknown type %4.4s" , (char *)&dt);
85298530 break ;
85308531 }
85318532 }
8533+
8534+ if (!t_success && errno == 0 )
8535+ errno = ioErr;
8536+
85328537 return errno;
85338538}
85348539
0 commit comments