diff --git a/diskbrowser.c b/diskbrowser.c index be4af9f..2166bac 100644 --- a/diskbrowser.c +++ b/diskbrowser.c @@ -46,6 +46,9 @@ Word myUserID; /* String for "More Results" (used to identify that list entry) */ char moreResultsString[] = " "; +/* String to indicate no results were found */ +char noResultsString[] = " No Disks Found"; + /***/ static char menuTitle[] = "\pArchive.org Disk Browser\xC9"; diff --git a/diskbrowser.h b/diskbrowser.h index ac8f64e..01c09f1 100644 --- a/diskbrowser.h +++ b/diskbrowser.h @@ -46,6 +46,9 @@ extern struct diskListEntry *diskList; /* String for "More Results" (used to identify that list entry) */ extern char moreResultsString[]; +/* String to indicate no results were found */ +extern char noResultsString[]; + /* Do we want to open a window with disk contents? Counts down until ready. */ extern int wantToOpenWindow; diff --git a/diskmount.c b/diskmount.c index 83e185b..06c9797 100644 --- a/diskmount.c +++ b/diskmount.c @@ -41,15 +41,18 @@ void DoMount(void) { char *filesURL = NULL; enum NetDiskError result = 0; json_value *filesJSON = NULL; - - WaitCursor(); - + if (itemNumber == 0) { // shouldn't happen - result = 1; - goto errorReturn; + return; } itemNumber--; + + if (diskList[itemNumber].memPtr == noResultsString) { + return; + } + + WaitCursor(); if (diskList[itemNumber].memPtr == moreResultsString) { DoSearch(true); diff --git a/disksearch.c b/disksearch.c index 5924eb5..148b9a1 100644 --- a/disksearch.c +++ b/disksearch.c @@ -40,6 +40,7 @@ static boolean processDoc(json_value *docObj); static char *EncodeQueryString(char *queryString); struct diskListEntry moreResultsEntry = {moreResultsString , 0, "", ""}; +struct diskListEntry noResultsEntry = {noResultsString , 0x60, "", ""}; static void InsertDiskListEntry(struct diskListEntry *entry); @@ -154,6 +155,10 @@ void DoSearch(boolean getMore) { MakeThisCtlTarget(disksListHandle); CallCtlDefProc(disksListHandle, ctlChangeTarget, 0); } + } else { + InsertDiskListEntry(&noResultsEntry); + NewList2(NULL, 1, (Ref) diskList, refIsPointer, + diskListLength, (Handle)disksListHandle); } free(searchURL);