diff --git a/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c b/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c index 17a716f78b..d73ad09e35 100755 --- a/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c +++ b/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c @@ -534,8 +534,7 @@ sqConnectToFile(SQFile *sqFile, void *file, sqInt writeFlag) * Fill-in files with handles for stdin, stdout and seterr as available and * answer a bit-mask of the availability: * - * -1 - unspecified error. - * Use primitiveFailFor() or primitiveFailForOSError() to specify an error + * <0 - Error. The value will be returned to the image using primitiveFailForOSError(). * 0 - no stdio available * 1 - stdin available * 2 - stdout available diff --git a/platforms/RiscOS/plugins/FilePlugin/sqFilePluginBasicPrims.c b/platforms/RiscOS/plugins/FilePlugin/sqFilePluginBasicPrims.c index 4857c1deec..45629772da 100644 --- a/platforms/RiscOS/plugins/FilePlugin/sqFilePluginBasicPrims.c +++ b/platforms/RiscOS/plugins/FilePlugin/sqFilePluginBasicPrims.c @@ -407,8 +407,7 @@ int extent; * Fill-in files with handles for stdin, stdout and seterr as available and * answer a bit-mask of the availability: * - * -1 - unspecified error. - * Use primitiveFailFor() or primitiveFailForOSError() to specify an error + * <0 - Error. The value will be returned to the image using primitiveFailForOSError(). * 0 - no stdio available * 1 - stdin available * 2 - stdout available diff --git a/platforms/win32/plugins/FilePlugin/sqWin32FilePrims.c b/platforms/win32/plugins/FilePlugin/sqWin32FilePrims.c index d9a4b8bba2..9c39cc7f9f 100644 --- a/platforms/win32/plugins/FilePlugin/sqWin32FilePrims.c +++ b/platforms/win32/plugins/FilePlugin/sqWin32FilePrims.c @@ -300,8 +300,7 @@ sqFileStdioHandlesIntoFile_WithHandle_IsWritable(SQFile * file, HANDLE handle, i * Fill-in files with handles for stdin, stdout and seterr as available and * answer a bit-mask of the availability: * - * -1 - unspecified error. - * Use primitiveFailFor() or primitiveFailForOSError() to specify an error + * <0 - Error. The value will be returned to the image using primitiveFailForOSError(). * 0 - no stdio available * 1 - stdin available * 2 - stdout available diff --git a/src/plugins/FilePlugin/FilePlugin.c b/src/plugins/FilePlugin/FilePlugin.c index f4b686c9ca..8a61cca121 100644 --- a/src/plugins/FilePlugin/FilePlugin.c +++ b/src/plugins/FilePlugin/FilePlugin.c @@ -1,9 +1,9 @@ /* Automatically generated by - VMPluginCodeGenerator VMMaker.oscog-AlistairGrant.2426 uuid: f47080d3-d374-4ae7-a639-8eb41af95f0e + VMPluginCodeGenerator VMMaker.oscog-AlistairGrant.2427 uuid: 36e9946a-6f6e-461b-89e8-f290e50dd097 from - FilePlugin VMMaker.oscog-AlistairGrant.2426 uuid: f47080d3-d374-4ae7-a639-8eb41af95f0e + FilePlugin VMMaker.oscog-AlistairGrant.2427 uuid: 36e9946a-6f6e-461b-89e8-f290e50dd097 */ -static char __buildInfo[] = "FilePlugin VMMaker.oscog-AlistairGrant.2426 uuid: f47080d3-d374-4ae7-a639-8eb41af95f0e " __DATE__ ; +static char __buildInfo[] = "FilePlugin VMMaker.oscog-AlistairGrant.2427 uuid: 36e9946a-6f6e-461b-89e8-f290e50dd097 " __DATE__ ; @@ -144,6 +144,7 @@ static usqLong (*positive64BitValueOf)(sqInt oop); static usqIntptr_t (*positiveMachineIntegerValueOf)(sqInt oop); static sqInt (*primitiveFail)(void); static sqInt (*primitiveFailFor)(sqInt reasonCode); +static sqInt (*primitiveFailForOSError)(sqLong osError); static sqInt (*primitiveFailureCode)(void); static sqInt (*pushRemappableOop)(sqInt oop); static sqInt (*slotSizeOf)(sqInt oop); @@ -197,6 +198,7 @@ extern usqLong positive64BitValueOf(sqInt oop); extern usqIntptr_t positiveMachineIntegerValueOf(sqInt oop); extern sqInt primitiveFail(void); extern sqInt primitiveFailFor(sqInt reasonCode); +extern sqInt primitiveFailForOSError(sqLong osError); extern sqInt primitiveFailureCode(void); extern sqInt pushRemappableOop(sqInt oop); extern sqInt slotSizeOf(sqInt oop); @@ -212,9 +214,9 @@ extern struct VirtualMachine* interpreterProxy; static const char *moduleName = #ifdef SQUEAK_BUILTIN_PLUGIN - "FilePlugin VMMaker.oscog-AlistairGrant.2426 (i)" + "FilePlugin VMMaker.oscog-AlistairGrant.2427 (i)" #else - "FilePlugin VMMaker.oscog-AlistairGrant.2426 (e)" + "FilePlugin VMMaker.oscog-AlistairGrant.2427 (e)" #endif ; static void * sCCPfn; @@ -1568,9 +1570,8 @@ primitiveFileSize(void) /* Answer an Array of file handles for standard in, standard out and standard error, with nil in entries that are unvailable, e.g. because the platform does not provide - standard error, etc. Fail if there are no standard i/o facilities on the - platform or - if the security plugin denies access or if memory runs out. */ + standard error, etc. Fail if an error occurs determining the stdio + handles, if the security plugin denies access or if memory runs out. */ /* FilePlugin>>#primitiveFileStdioHandles */ EXPORT(sqInt) @@ -1587,8 +1588,8 @@ primitiveFileStdioHandles(void) } } validMask = sqFileStdioHandlesInto(fileRecords); - if (validMask == -1) { - return primitiveFail(); + if (validMask < 0) { + return primitiveFailForOSError(validMask); } result = instantiateClassindexableSize(classArray(), 3); if (result == null) { @@ -1804,6 +1805,7 @@ setInterpreter(struct VirtualMachine*anInterpreter) positiveMachineIntegerValueOf = interpreterProxy->positiveMachineIntegerValueOf; primitiveFail = interpreterProxy->primitiveFail; primitiveFailFor = interpreterProxy->primitiveFailFor; + primitiveFailForOSError = interpreterProxy->primitiveFailForOSError; primitiveFailureCode = interpreterProxy->primitiveFailureCode; pushRemappableOop = interpreterProxy->pushRemappableOop; slotSizeOf = interpreterProxy->slotSizeOf;