[w3m-dev 03683] interrupt in getNextPage()
* file.c (getNextPage): trap SIGINT From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
This commit is contained in:
@@ -1,3 +1,8 @@
|
|||||||
|
2003-01-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
|
||||||
|
|
||||||
|
* [w3m-dev 03683] interrupt in getNextPage()
|
||||||
|
* file.c (getNextPage): trap SIGINT
|
||||||
|
|
||||||
2003-01-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
|
2003-01-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
|
||||||
|
|
||||||
* [w3m-dev 03682] open null file on tab
|
* [w3m-dev 03682] open null file on tab
|
||||||
@@ -6837,4 +6842,4 @@ a * [w3m-dev 03276] compile error on EWS4800
|
|||||||
* release-0-2-1
|
* release-0-2-1
|
||||||
* import w3m-0.2.1
|
* import w3m-0.2.1
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.713 2003/01/24 17:34:36 ukai Exp $
|
$Id: ChangeLog,v 1.714 2003/01/24 17:36:44 ukai Exp $
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: file.c,v 1.204 2003/01/23 18:38:06 ukai Exp $ */
|
/* $Id: file.c,v 1.205 2003/01/24 17:36:45 ukai Exp $ */
|
||||||
#include "fm.h"
|
#include "fm.h"
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include "myctype.h"
|
#include "myctype.h"
|
||||||
@@ -7192,24 +7192,25 @@ openGeneralPagerBuffer(InputStream stream)
|
|||||||
Line *
|
Line *
|
||||||
getNextPage(Buffer *buf, int plen)
|
getNextPage(Buffer *buf, int plen)
|
||||||
{
|
{
|
||||||
Line *top = buf->topLine, *last = buf->lastLine, *cur = buf->currentLine;
|
Line *volatile top = buf->topLine, *volatile last = buf->lastLine,
|
||||||
int i, nlines = 0;
|
*volatile cur = buf->currentLine;
|
||||||
|
int i;
|
||||||
|
int volatile nlines = 0;
|
||||||
clen_t linelen = 0, trbyte = buf->trbyte;
|
clen_t linelen = 0, trbyte = buf->trbyte;
|
||||||
Str lineBuf2;
|
Str lineBuf2;
|
||||||
char pre_lbuf = '\0';
|
char volatile pre_lbuf = '\0';
|
||||||
URLFile uf;
|
URLFile uf;
|
||||||
char code;
|
char volatile code;
|
||||||
int squeeze_flag = FALSE;
|
int volatile squeeze_flag = FALSE;
|
||||||
Lineprop *propBuffer = NULL;
|
Lineprop *propBuffer = NULL;
|
||||||
#ifdef USE_ANSI_COLOR
|
#ifdef USE_ANSI_COLOR
|
||||||
Linecolor *colorBuffer = NULL;
|
Linecolor *colorBuffer = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL;
|
||||||
|
|
||||||
if (buf->pagerSource == NULL)
|
if (buf->pagerSource == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (fmInitialized)
|
|
||||||
crmode();
|
|
||||||
if (last != NULL) {
|
if (last != NULL) {
|
||||||
nlines = last->real_linenumber;
|
nlines = last->real_linenumber;
|
||||||
pre_lbuf = *(last->lineBuf);
|
pre_lbuf = *(last->lineBuf);
|
||||||
@@ -7224,6 +7225,14 @@ getNextPage(Buffer *buf, int plen)
|
|||||||
else
|
else
|
||||||
code = DocumentCode;
|
code = DocumentCode;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (SETJMP(AbortLoading) != 0) {
|
||||||
|
goto pager_end;
|
||||||
|
}
|
||||||
|
prevtrap = signal(SIGINT, KeyAbort);
|
||||||
|
if (fmInitialized)
|
||||||
|
term_cbreak();
|
||||||
|
|
||||||
init_stream(&uf, SCM_UNKNOWN, NULL);
|
init_stream(&uf, SCM_UNKNOWN, NULL);
|
||||||
for (i = 0; i < plen; i++) {
|
for (i = 0; i < plen; i++) {
|
||||||
lineBuf2 = StrmyISgets(buf->pagerSource);
|
lineBuf2 = StrmyISgets(buf->pagerSource);
|
||||||
@@ -7284,8 +7293,11 @@ getNextPage(Buffer *buf, int plen)
|
|||||||
buf->firstLine->prev = NULL;
|
buf->firstLine->prev = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
pager_end:
|
||||||
if (fmInitialized)
|
if (fmInitialized)
|
||||||
term_raw();
|
term_raw();
|
||||||
|
signal(SIGINT, prevtrap);
|
||||||
|
|
||||||
buf->trbyte = trbyte + linelen;
|
buf->trbyte = trbyte + linelen;
|
||||||
#ifdef JP_CHARSET
|
#ifdef JP_CHARSET
|
||||||
buf->document_code = code;
|
buf->document_code = code;
|
||||||
|
|||||||
Reference in New Issue
Block a user