From 73d8d35b5f145a65c623ffb17ff1a653d6c3a724 Mon Sep 17 00:00:00 2001 From: Fumitoshi UKAI Date: Fri, 15 Nov 2002 16:14:25 +0000 Subject: [w3m-dev 03440] Re: restore alarm event * fm.h (BP_RELOAD): added (DOWNLOAD_LIST_TITLE): added * main.c (main): if BP_RELOAD, do reload (reload): if buffer is DOWNLOAD_LIST, ldDL() (DownloadListBuffer): rewrite with DOWNLOAD_LIST_TITLE (download_action): delete "update" don't delete prev buffer (ldDL): rewrite to do reload From: Hironori SAKAMOTO --- main.c | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index 7e08a65..a778bf0 100644 --- a/main.c +++ b/main.c @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.137 2002/11/15 16:05:56 ukai Exp $ */ +/* $Id: main.c,v 1.138 2002/11/15 16:14:25 ukai Exp $ */ #define MAINPROGRAM #include "fm.h" #include @@ -986,6 +986,8 @@ main(int argc, char **argv, char **envp) mouse_active(); #endif /* USE_MOUSE */ #ifdef USE_ALARM + if (Currentbuf->bufferprop & BP_RELOAD) + setAlarmEvent(1, AL_IMPLICIT, FUNCNAME_reload, NULL); if (CurrentAlarm.status & AL_IMPLICIT) { CurrentAlarm.buffer = Currentbuf; CurrentAlarm.status = AL_IMPLICIT_DONE @@ -4334,6 +4336,10 @@ reload(void) int multipart; if (Currentbuf->bufferprop & BP_INTERNAL) { + if (!strcmp(Currentbuf->buffername, DOWNLOAD_LIST_TITLE)) { + ldDL(); + return; + } disp_err_message("Can't reload...", FALSE); return; } @@ -5809,10 +5815,9 @@ DownloadListBuffer(void) if (!FirstDL) return NULL; cur_time = time(0); - src = Strnew_charp("Download Panel\ -

Download Panel

\ -
\ -
\n"); + src = Strnew_charp("" DOWNLOAD_LIST_TITLE \ +"\n

" DOWNLOAD_LIST_TITLE "

\n" \ +"
\n"); for (d = LastDL; d != NULL; d = d->prev) { #ifdef HAVE_LSTAT if (lstat(d->lock, &st)) @@ -5888,9 +5893,7 @@ download_action(struct parsed_tagarg *arg) pid_t pid; for (; arg; arg = arg->next) { - if (!strcmp(arg->arg, "update")) - break; - else if (!strncmp(arg->arg, "stop", 4)) { + if (!strncmp(arg->arg, "stop", 4)) { pid = (pid_t) atoi(&arg->arg[4]); kill(pid, SIGKILL); } @@ -5913,10 +5916,8 @@ download_action(struct parsed_tagarg *arg) } } } - if (FirstDL) { + if (FirstDL) ldDL(); - deletePrevBuf(); - } else backBf(); } @@ -5940,8 +5941,27 @@ stopDownload(void) void ldDL(void) { + Buffer *prev = Currentbuf; + int delete = FALSE; +#ifdef USE_ALARM + int reload; +#endif + if (!FirstDL) return; + if (Currentbuf->bufferprop & BP_INTERNAL && + !strcmp(Currentbuf->buffername, DOWNLOAD_LIST_TITLE)) + delete = TRUE; +#ifdef USE_ALARM + reload = checkDownloadList(); +#endif cmd_loadBuffer(DownloadListBuffer(), BP_NO_URL, LB_NOLINK); - nextA(); + if (delete && Currentbuf != prev) + deletePrevBuf(); +#ifdef USE_ALARM + if (reload && Currentbuf != prev) { + Currentbuf->bufferprop |= BP_RELOAD; + setAlarmEvent(1, AL_IMPLICIT, FUNCNAME_reload, NULL); + } +#endif } -- cgit v1.2.3