diff options
Diffstat (limited to 'amiga')
-rwxr-xr-x | amiga/arexx.c | 2 | ||||
-rw-r--r-- | amiga/download.c | 10 | ||||
-rwxr-xr-x | amiga/gui.c | 2 |
3 files changed, 5 insertions, 9 deletions
diff --git a/amiga/arexx.c b/amiga/arexx.c index bfa1e4253..e9329d1ec 100755 --- a/amiga/arexx.c +++ b/amiga/arexx.c @@ -115,6 +115,8 @@ STATIC VOID rx_open(struct ARexxCmd *cmd, struct RexxMsg *rxm __attribute__((unu if(cmd->ac_ArgList[2]) { + if(!curbw) return; + dln = AllocVec(sizeof(struct dlnode),MEMF_PRIVATE | MEMF_CLEAR); dln->filename = strdup((char *)cmd->ac_ArgList[2]); dln->node.ln_Name = strdup((char *)cmd->ac_ArgList[0]); diff --git a/amiga/download.c b/amiga/download.c index 10b66cba5..bd4f05a5e 100644 --- a/amiga/download.c +++ b/amiga/download.c @@ -56,13 +56,11 @@ struct gui_download_window *gui_download_window_create(const char *url, struct gui_download_window *dw; APTR va[3]; - DebugPrintF("%s\n%lx\n",url,gui); + dw = AllocVec(sizeof(struct gui_download_window),MEMF_PRIVATE | MEMF_CLEAR); if((!IsListEmpty(&gui->dllist)) && (dw->dln = (struct dlnode *)FindName(&gui->dllist,url))) { - DebugPrintF("%lx node\n",dw->dln); strcpy(fname,dw->dln->filename); - DebugPrintF("%s fname\n",dw->dln->filename); free(dw->dln->node.ln_Name); dw->dln->node.ln_Name = NULL; } @@ -80,8 +78,6 @@ struct gui_download_window *gui_download_window_create(const char *url, else return NULL; } - dw = AllocVec(sizeof(struct gui_download_window),MEMF_PRIVATE | MEMF_CLEAR); - dw->size = total_size; dw->downloaded = 0; dw->bw = gui->shared->bw; @@ -132,7 +128,6 @@ struct gui_download_window *gui_download_window_create(const char *url, dw->node = AddObject(window_list,AMINS_DLWINDOW); dw->node->objstruct = dw; - return dw; } @@ -188,7 +183,7 @@ void gui_download_window_done(struct gui_download_window *dw) if(dln = dw->dln) { dln2 = (struct dlnode *)GetSucc((struct Node *)dln); - if(dln != dln2) queuedl = true; + if((dln!=dln2) && (dln2)) queuedl = true; free(dln->filename); Remove((struct Node *)dln); @@ -198,7 +193,6 @@ void gui_download_window_done(struct gui_download_window *dw) FClose(dw->fh); DisposeObject(dw->objects[OID_MAIN]); DelObject(dw->node); - if(queuedl) browser_window_download(bw,dln2->node.ln_Name,NULL); } diff --git a/amiga/gui.c b/amiga/gui.c index 216bd0ef6..caf7fb784 100755 --- a/amiga/gui.c +++ b/amiga/gui.c @@ -1109,7 +1109,7 @@ void ami_handle_msg(void) break; case WMHI_ACTIVE: - curbw = gwin->bw; + if(gwin->bw) curbw = gwin->bw; break; case WMHI_INTUITICK: |