From ea0f70fc943f48279d1efbb86dc69a258d2ce835 Mon Sep 17 00:00:00 2001 From: Stephen Heumann Date: Mon, 15 Jul 2019 16:44:57 -0500 Subject: [PATCH] Make sure Marinetti is available before using NetDisk. Also, add NetDiskError values used by the disk browser. --- cdev.c | 5 +++++ cdev.rez | 7 +++++++ netdiskerror.c | 3 +++ netdiskerror.h | 7 ++++++- netdiskinit.c | 5 +++++ 5 files changed, 26 insertions(+), 1 deletion(-) diff --git a/cdev.c b/cdev.c index 5a87b70..9209002 100644 --- a/cdev.c +++ b/cdev.c @@ -46,6 +46,7 @@ #define netDiskMissingError 3000 #define mountURLError 3001 #define unsupportedProtocolAlert 3002 +#define marinettiMissingError 3003 #define yesBtn 1 /* number of "Yes" button in alert */ extern void FreeAllCDevMem(void); @@ -169,6 +170,10 @@ long DoMachine(void) InitCursor(); AlertWindow(awResource+awButtonLayout, NULL, netDiskMissingError); return 0; + } else if (mountURLRec.result == MARINETTI_NOT_PRESENT) { + InitCursor(); + AlertWindow(awResource+awButtonLayout, NULL, marinettiMissingError); + return 0; } return 1; diff --git a/cdev.rez b/cdev.rez index 6af447b..0bc3f7c 100644 --- a/cdev.rez +++ b/cdev.rez @@ -287,6 +287,7 @@ resource rTextForLETextBox2 (helpWindow+helpTxt) { #define netDiskMissingError 3000 #define mountURLError 3001 #define unsupportedProtocolAlert 3002 +#define marinettiMissingError 3003 resource rAlertString (netDiskMissingError) { "62/" @@ -295,6 +296,12 @@ resource rAlertString (netDiskMissingError) { "/^#0\$00" }; +resource rAlertString (marinettiMissingError) { + "62/" + "Marinetti is not available. You must install Marinetti to use NetDisk." + "/^#0\$00" +}; + resource rAlertString (mountURLError) { "32:" "MountURL error *0." diff --git a/netdiskerror.c b/netdiskerror.c index 1cf2ea6..9c1caf0 100644 --- a/netdiskerror.c +++ b/netdiskerror.c @@ -13,6 +13,9 @@ char *ErrorString(enum NetDiskError err) { return "No more disks can be mounted via NetDisk."; case OUT_OF_MEMORY: return "Out of memory."; + case MARINETTI_NOT_PRESENT: + return "Marinetti is not available. You must install Marinetti to use " + "NetDisk."; /* SetURL errors */ case URL_TOO_LONG: diff --git a/netdiskerror.h b/netdiskerror.h index dcaa521..ff97035 100644 --- a/netdiskerror.h +++ b/netdiskerror.h @@ -8,6 +8,7 @@ enum NetDiskError { DISK_ALREADY_MOUNTED, NO_DIBS_AVAILABLE, OUT_OF_MEMORY, + MARINETTI_NOT_PRESENT, /* SetURL errors */ URL_TOO_LONG = 200, @@ -39,8 +40,12 @@ enum NetDiskError { /* File format errors */ UNSUPPORTED_2IMG_FILE = 600, NOT_MULTIPLE_OF_BLOCK_SIZE, - NOT_SPECIFIED_IMAGE_TYPE + NOT_SPECIFIED_IMAGE_TYPE, + UNSUPPORTED_IMAGE_TYPE, + /* Errors related to processing JSON result in the disk browser */ + JSON_PARSING_ERROR = 900, + NOT_EXPECTED_CONTENTS, }; diff --git a/netdiskinit.c b/netdiskinit.c index 2b5c99a..9a383fc 100644 --- a/netdiskinit.c +++ b/netdiskinit.c @@ -182,6 +182,11 @@ static void notificationProc(void) { #pragma databank 0 static void doMountURL(struct MountURLRec *mountURLRec) { + if (!TCPIPStatus() || toolerror()) { + mountURLRec->result = MARINETTI_NOT_PRESENT; + return; + } + DAccessRecGS controlRec = {5}; controlRec.code = MountURL; controlRec.list = (pointer)mountURLRec;