[w3m-dev 02748] cleanup code for restoring cursor position
From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
This commit is contained in:
@@ -1,3 +1,32 @@
|
|||||||
|
2001-12-27 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
|
||||||
|
|
||||||
|
* [w3m-dev 02748] cleanup code for restoring cursor position
|
||||||
|
* buffer.c (reshapeBuffer): delete top, linenum, cursorY, pos,
|
||||||
|
currentColumn, formitem
|
||||||
|
* buffer.c (reshapeBuffer): add sbuf and
|
||||||
|
use copyBuffer(), restorePosition()
|
||||||
|
* buffer.c (reshapeBuffer): use chkURLBuffer(), chkNMIDBuffer()
|
||||||
|
* display.c (in_check_url): deleted
|
||||||
|
* display.c (displayBuffer): ditto
|
||||||
|
* display.c (displayBuffer): s/Currentbuf/buf/
|
||||||
|
* display.c (arrangeLine): ditto
|
||||||
|
* display.c (restorePosition): added
|
||||||
|
* fm.h (TOP_LINENUMBER): added
|
||||||
|
* fm.h (CUR_LINENUMBER): added
|
||||||
|
* main.c (editBf): delete type, top, linenum, cursorY, pos,
|
||||||
|
currentColumn
|
||||||
|
* main.c (editBf): add sbuf and use copyBuffer(), restorePosition()
|
||||||
|
* main.c (reload): delete type, top, linenum, cursorY, pos,
|
||||||
|
currentColumn
|
||||||
|
* main.c (reload): add sbuf and use copyBuffer(), restorePosition()
|
||||||
|
* main.c (chkURLBuffer): added
|
||||||
|
* main.c (chkURL): chkRULBuffer on Currentbuf
|
||||||
|
* main.c (chkNMIDBuffer): added
|
||||||
|
* main.c (chkNMID): chkNMIDBuffer on Currentbuf
|
||||||
|
* proto.h (chkURLBuffer): added
|
||||||
|
* proto.h (chkNMIDBuffer): added
|
||||||
|
* proto.h (restorePosition): added
|
||||||
|
|
||||||
2001-12-27 "OMAE, jun" <jun-o@dai.meta.ne.jp>
|
2001-12-27 "OMAE, jun" <jun-o@dai.meta.ne.jp>
|
||||||
|
|
||||||
* [w3m-dev 02735]
|
* [w3m-dev 02735]
|
||||||
@@ -1626,4 +1655,4 @@
|
|||||||
* release-0-2-1
|
* release-0-2-1
|
||||||
* import w3m-0.2.1
|
* import w3m-0.2.1
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.182 2001/12/26 17:57:57 ukai Exp $
|
$Id: ChangeLog,v 1.183 2001/12/26 18:17:57 ukai Exp $
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: buffer.c,v 1.8 2001/12/04 16:33:08 ukai Exp $ */
|
/* $Id: buffer.c,v 1.9 2001/12/26 18:17:57 ukai Exp $ */
|
||||||
#include "fm.h"
|
#include "fm.h"
|
||||||
|
|
||||||
#ifdef USE_MOUSE
|
#ifdef USE_MOUSE
|
||||||
@@ -487,8 +487,7 @@ void
|
|||||||
reshapeBuffer(Buffer *buf)
|
reshapeBuffer(Buffer *buf)
|
||||||
{
|
{
|
||||||
URLFile f;
|
URLFile f;
|
||||||
int top, linenum, cursorY, pos, currentColumn;
|
Buffer sbuf;
|
||||||
AnchorList *formitem;
|
|
||||||
|
|
||||||
if (buf->sourcefile == NULL)
|
if (buf->sourcefile == NULL)
|
||||||
return;
|
return;
|
||||||
@@ -498,24 +497,13 @@ reshapeBuffer(Buffer *buf)
|
|||||||
if (f.stream == NULL)
|
if (f.stream == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (buf->firstLine == NULL) {
|
copyBuffer(&sbuf, buf);
|
||||||
top = 1;
|
|
||||||
linenum = 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
top = buf->topLine->linenumber;
|
|
||||||
linenum = buf->currentLine->linenumber;
|
|
||||||
}
|
|
||||||
cursorY = buf->cursorY;
|
|
||||||
pos = buf->pos;
|
|
||||||
currentColumn = buf->currentColumn;
|
|
||||||
clearBuffer(buf);
|
clearBuffer(buf);
|
||||||
while (buf->frameset) {
|
while (buf->frameset) {
|
||||||
deleteFrameSet(buf->frameset);
|
deleteFrameSet(buf->frameset);
|
||||||
buf->frameset = popFrameTree(&(buf->frameQ));
|
buf->frameset = popFrameTree(&(buf->frameQ));
|
||||||
}
|
}
|
||||||
|
|
||||||
formitem = buf->formitem;
|
|
||||||
buf->href = NULL;
|
buf->href = NULL;
|
||||||
buf->name = NULL;
|
buf->name = NULL;
|
||||||
buf->img = NULL;
|
buf->img = NULL;
|
||||||
@@ -537,18 +525,15 @@ reshapeBuffer(Buffer *buf)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
buf->height = LASTLINE + 1;
|
buf->height = LASTLINE + 1;
|
||||||
buf->topLine = lineSkip(buf, buf->topLine, top - 1, FALSE);
|
if (buf->firstLine)
|
||||||
gotoLine(buf, linenum);
|
restorePosition(buf, &sbuf);
|
||||||
buf->pos = pos;
|
|
||||||
buf->currentColumn = currentColumn;
|
|
||||||
arrangeCursor(buf);
|
|
||||||
if (buf->check_url & CHK_URL)
|
if (buf->check_url & CHK_URL)
|
||||||
chkURL();
|
chkURLBuffer(buf);
|
||||||
#ifdef USE_NNTP
|
#ifdef USE_NNTP
|
||||||
if (buf->check_url & CHK_NMID)
|
if (buf->check_url & CHK_NMID)
|
||||||
chkNMID();
|
chkNMIDBuffer(buf);
|
||||||
#endif
|
#endif
|
||||||
formResetBuffer(buf, formitem);
|
formResetBuffer(buf, sbuf.formitem);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* shallow copy */
|
/* shallow copy */
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: display.c,v 1.12 2001/12/04 16:33:08 ukai Exp $ */
|
/* $Id: display.c,v 1.13 2001/12/26 18:17:57 ukai Exp $ */
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include "fm.h"
|
#include "fm.h"
|
||||||
|
|
||||||
@@ -188,8 +188,6 @@ static Linecolor color_mode = 0;
|
|||||||
static Buffer *save_current_buf = NULL;
|
static Buffer *save_current_buf = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int in_check_url = FALSE;
|
|
||||||
|
|
||||||
char *delayed_msg = NULL;
|
char *delayed_msg = NULL;
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -198,8 +196,6 @@ displayBuffer(Buffer *buf, int mode)
|
|||||||
Str msg;
|
Str msg;
|
||||||
Anchor *aa = NULL;
|
Anchor *aa = NULL;
|
||||||
|
|
||||||
if (in_check_url)
|
|
||||||
return;
|
|
||||||
if (buf->topLine == NULL && readBufferCache(buf) == 0) { /* clear_buffer */
|
if (buf->topLine == NULL && readBufferCache(buf) == 0) { /* clear_buffer */
|
||||||
mode = B_FORCE_REDRAW;
|
mode = B_FORCE_REDRAW;
|
||||||
}
|
}
|
||||||
@@ -209,11 +205,8 @@ displayBuffer(Buffer *buf, int mode)
|
|||||||
if (buf->height == 0)
|
if (buf->height == 0)
|
||||||
buf->height = LASTLINE + 1;
|
buf->height = LASTLINE + 1;
|
||||||
if (buf->width != INIT_BUFFER_WIDTH && buf->type
|
if (buf->width != INIT_BUFFER_WIDTH && buf->type
|
||||||
&& !strcmp(buf->type, "text/html")) {
|
&& !strcmp(buf->type, "text/html"))
|
||||||
in_check_url = TRUE;
|
|
||||||
reshapeBuffer(buf);
|
reshapeBuffer(buf);
|
||||||
in_check_url = FALSE;
|
|
||||||
}
|
|
||||||
if (showLineNum) {
|
if (showLineNum) {
|
||||||
if (buf->lastLine && buf->lastLine->real_linenumber > 0)
|
if (buf->lastLine && buf->lastLine->real_linenumber > 0)
|
||||||
buf->rootX = (int)(log(buf->lastLine->real_linenumber + 0.1)
|
buf->rootX = (int)(log(buf->lastLine->real_linenumber + 0.1)
|
||||||
@@ -327,9 +320,9 @@ displayBuffer(Buffer *buf, int mode)
|
|||||||
standend();
|
standend();
|
||||||
refresh();
|
refresh();
|
||||||
#ifdef USE_BUFINFO
|
#ifdef USE_BUFINFO
|
||||||
if (Currentbuf != save_current_buf) {
|
if (buf != save_current_buf) {
|
||||||
saveBufferInfo();
|
saveBufferInfo();
|
||||||
save_current_buf = Currentbuf;
|
save_current_buf = buf;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -1056,10 +1049,10 @@ arrangeLine(Buffer *buf)
|
|||||||
buf->cursorX = cpos;
|
buf->cursorX = cpos;
|
||||||
buf->pos = i;
|
buf->pos = i;
|
||||||
}
|
}
|
||||||
else if (Currentbuf->currentLine->len > i) {
|
else if (buf->currentLine->len > i) {
|
||||||
int delta = 1;
|
int delta = 1;
|
||||||
#ifdef JP_CHARSET
|
#ifdef JP_CHARSET
|
||||||
if (Currentbuf->currentLine->len > i + 1 &&
|
if (buf->currentLine->len > i + 1 &&
|
||||||
CharType(buf->currentLine->propBuf[i + 1]) == PC_KANJI2)
|
CharType(buf->currentLine->propBuf[i + 1]) == PC_KANJI2)
|
||||||
delta = 2;
|
delta = 2;
|
||||||
#endif
|
#endif
|
||||||
@@ -1105,6 +1098,17 @@ cursorXY(Buffer *buf, int x, int y)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
restorePosition(Buffer *buf, Buffer *orig)
|
||||||
|
{
|
||||||
|
buf->topLine = lineSkip(buf, buf->firstLine, TOP_LINENUMBER(orig) - 1,
|
||||||
|
FALSE);
|
||||||
|
gotoLine(buf, CUR_LINENUMBER(orig));
|
||||||
|
buf->pos = orig->pos;
|
||||||
|
buf->currentColumn = orig->currentColumn;
|
||||||
|
arrangeCursor(buf);
|
||||||
|
}
|
||||||
|
|
||||||
/* Local Variables: */
|
/* Local Variables: */
|
||||||
/* c-basic-offset: 4 */
|
/* c-basic-offset: 4 */
|
||||||
/* tab-width: 8 */
|
/* tab-width: 8 */
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: fm.h,v 1.33 2001/12/25 18:15:00 ukai Exp $ */
|
/* $Id: fm.h,v 1.34 2001/12/26 18:17:57 ukai Exp $ */
|
||||||
/*
|
/*
|
||||||
* w3m: WWW wo Miru utility
|
* w3m: WWW wo Miru utility
|
||||||
*
|
*
|
||||||
@@ -391,6 +391,8 @@ typedef struct _Buffer {
|
|||||||
}
|
}
|
||||||
#define SAVE_BUFPOSITION(sbufp) COPY_BUFPOSITION(sbufp, Currentbuf)
|
#define SAVE_BUFPOSITION(sbufp) COPY_BUFPOSITION(sbufp, Currentbuf)
|
||||||
#define RESTORE_BUFPOSITION(sbufp) COPY_BUFPOSITION(Currentbuf, sbufp)
|
#define RESTORE_BUFPOSITION(sbufp) COPY_BUFPOSITION(Currentbuf, sbufp)
|
||||||
|
#define TOP_LINENUMBER(buf) ((buf)->topLine ? (buf)->topLine->linenumber : 1)
|
||||||
|
#define CUR_LINENUMBER(buf) ((buf)->currentLine ? (buf)->currentLine->linenumber : 1)
|
||||||
|
|
||||||
#define NO_BUFFER ((Buffer*)1)
|
#define NO_BUFFER ((Buffer*)1)
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: main.c,v 1.48 2001/12/25 16:49:42 ukai Exp $ */
|
/* $Id: main.c,v 1.49 2001/12/26 18:17:57 ukai Exp $ */
|
||||||
#define MAINPROGRAM
|
#define MAINPROGRAM
|
||||||
#include "fm.h"
|
#include "fm.h"
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
@@ -2222,9 +2222,10 @@ void
|
|||||||
editBf(void)
|
editBf(void)
|
||||||
{
|
{
|
||||||
char *fn = Currentbuf->filename;
|
char *fn = Currentbuf->filename;
|
||||||
char *type = Currentbuf->type;
|
Buffer *buf, *fbuf = NULL, sbuf;
|
||||||
int top, linenum, cursorY, pos, currentColumn;
|
#ifdef JP_CHARSET
|
||||||
Buffer *buf, *fbuf = NULL;
|
char old_code;
|
||||||
|
#endif
|
||||||
Str cmd;
|
Str cmd;
|
||||||
|
|
||||||
if (fn == NULL || Currentbuf->pagerSource != NULL || /* Behaving as a pager */
|
if (fn == NULL || Currentbuf->pagerSource != NULL || /* Behaving as a pager */
|
||||||
@@ -2236,17 +2237,7 @@ editBf(void)
|
|||||||
}
|
}
|
||||||
if (Currentbuf->frameset != NULL)
|
if (Currentbuf->frameset != NULL)
|
||||||
fbuf = Currentbuf->linkBuffer[LB_FRAME];
|
fbuf = Currentbuf->linkBuffer[LB_FRAME];
|
||||||
if (Currentbuf->firstLine == NULL) {
|
copyBuffer(&sbuf, Currentbuf);
|
||||||
top = 1;
|
|
||||||
linenum = 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
top = Currentbuf->topLine->linenumber;
|
|
||||||
linenum = Currentbuf->currentLine->linenumber;
|
|
||||||
}
|
|
||||||
cursorY = Currentbuf->cursorY;
|
|
||||||
pos = Currentbuf->pos;
|
|
||||||
currentColumn = Currentbuf->currentColumn;
|
|
||||||
if (Currentbuf->edit) {
|
if (Currentbuf->edit) {
|
||||||
cmd = unquote_mailcap(Currentbuf->edit,
|
cmd = unquote_mailcap(Currentbuf->edit,
|
||||||
Currentbuf->real_type,
|
Currentbuf->real_type,
|
||||||
@@ -2255,6 +2246,7 @@ editBf(void)
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
char *file = shell_quote(fn);
|
char *file = shell_quote(fn);
|
||||||
|
int linenum = CUR_LINENUMBER(Currentbuf);
|
||||||
if (strcasestr(Editor, "%s")) {
|
if (strcasestr(Editor, "%s")) {
|
||||||
if (strcasestr(Editor, "%d"))
|
if (strcasestr(Editor, "%d"))
|
||||||
cmd = Sprintf(Editor, linenum, file);
|
cmd = Sprintf(Editor, linenum, file);
|
||||||
@@ -2274,11 +2266,20 @@ editBf(void)
|
|||||||
fmTerm();
|
fmTerm();
|
||||||
system(cmd->ptr);
|
system(cmd->ptr);
|
||||||
fmInit();
|
fmInit();
|
||||||
|
|
||||||
|
#ifdef JP_CHARSET
|
||||||
|
old_code = DocumentCode;
|
||||||
|
DocumentCode = Currentbuf->document_code;
|
||||||
|
#endif
|
||||||
SearchHeader = Currentbuf->search_header;
|
SearchHeader = Currentbuf->search_header;
|
||||||
DefaultType = Currentbuf->real_type;
|
DefaultType = Currentbuf->real_type;
|
||||||
buf = loadGeneralFile(file_to_url(fn), NULL, NO_REFERER, 0, NULL);
|
buf = loadGeneralFile(file_to_url(fn), NULL, NO_REFERER, 0, NULL);
|
||||||
|
#ifdef JP_CHARSET
|
||||||
|
DocumentCode = old_code;
|
||||||
|
#endif
|
||||||
SearchHeader = FALSE;
|
SearchHeader = FALSE;
|
||||||
DefaultType = NULL;
|
DefaultType = NULL;
|
||||||
|
|
||||||
if (buf == NULL) {
|
if (buf == NULL) {
|
||||||
disp_err_message("Re-loading failed", FALSE);
|
disp_err_message("Re-loading failed", FALSE);
|
||||||
buf = nullBuffer();
|
buf = nullBuffer();
|
||||||
@@ -2286,29 +2287,21 @@ editBf(void)
|
|||||||
else if (buf == NO_BUFFER) {
|
else if (buf == NO_BUFFER) {
|
||||||
buf = nullBuffer();
|
buf = nullBuffer();
|
||||||
}
|
}
|
||||||
buf->search_header = Currentbuf->search_header;
|
|
||||||
if (fbuf != NULL)
|
if (fbuf != NULL)
|
||||||
Firstbuf = deleteBuffer(Firstbuf, fbuf);
|
Firstbuf = deleteBuffer(Firstbuf, fbuf);
|
||||||
repBuffer(Currentbuf, buf);
|
repBuffer(Currentbuf, buf);
|
||||||
if ((type != NULL) && (buf->type != NULL) &&
|
if ((buf->type != NULL) && (sbuf.type != NULL) &&
|
||||||
((!strcasecmp(buf->type, "text/plain") &&
|
((!strcasecmp(buf->type, "text/plain") &&
|
||||||
!strcasecmp(type, "text/html")) ||
|
!strcasecmp(sbuf.type, "text/html")) ||
|
||||||
(!strcasecmp(buf->type, "text/html") &&
|
(!strcasecmp(buf->type, "text/html") &&
|
||||||
!strcasecmp(type, "text/plain")))) {
|
!strcasecmp(sbuf.type, "text/plain")))) {
|
||||||
vwSrc();
|
vwSrc();
|
||||||
if (Currentbuf != buf)
|
if (Currentbuf != buf)
|
||||||
Firstbuf = deleteBuffer(Firstbuf, buf);
|
Firstbuf = deleteBuffer(Firstbuf, buf);
|
||||||
}
|
}
|
||||||
if (Currentbuf->firstLine == NULL) {
|
Currentbuf->search_header = sbuf.search_header;
|
||||||
displayBuffer(Currentbuf, B_FORCE_REDRAW);
|
if (Currentbuf->firstLine)
|
||||||
return;
|
restorePosition(Currentbuf, &sbuf);
|
||||||
}
|
|
||||||
Currentbuf->topLine =
|
|
||||||
lineSkip(Currentbuf, Currentbuf->topLine, top - 1, FALSE);
|
|
||||||
gotoLine(Currentbuf, linenum);
|
|
||||||
Currentbuf->pos = pos;
|
|
||||||
Currentbuf->currentColumn = currentColumn;
|
|
||||||
arrangeCursor(Currentbuf);
|
|
||||||
displayBuffer(Currentbuf, B_FORCE_REDRAW);
|
displayBuffer(Currentbuf, B_FORCE_REDRAW);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4101,10 +4094,11 @@ vwSrc(void)
|
|||||||
void
|
void
|
||||||
reload(void)
|
reload(void)
|
||||||
{
|
{
|
||||||
Buffer *buf, *fbuf = NULL;
|
Buffer *buf, *fbuf = NULL, sbuf;
|
||||||
char *type = Currentbuf->type;
|
#ifdef JP_CHARSET
|
||||||
|
char old_code;
|
||||||
|
#endif
|
||||||
Str url;
|
Str url;
|
||||||
int top, linenum, cursorY, pos, currentColumn;
|
|
||||||
FormList *request;
|
FormList *request;
|
||||||
int multipart;
|
int multipart;
|
||||||
|
|
||||||
@@ -4118,17 +4112,7 @@ reload(void)
|
|||||||
disp_err_message("Can't reload stdin", TRUE);
|
disp_err_message("Can't reload stdin", TRUE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Currentbuf->firstLine == NULL) {
|
copyBuffer(&sbuf, Currentbuf);
|
||||||
top = 1;
|
|
||||||
linenum = 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
top = Currentbuf->topLine->linenumber;
|
|
||||||
linenum = Currentbuf->currentLine->linenumber;
|
|
||||||
}
|
|
||||||
cursorY = Currentbuf->cursorY;
|
|
||||||
pos = Currentbuf->pos;
|
|
||||||
currentColumn = Currentbuf->currentColumn;
|
|
||||||
if (Currentbuf->bufferprop & BP_FRAME &&
|
if (Currentbuf->bufferprop & BP_FRAME &&
|
||||||
(fbuf = Currentbuf->linkBuffer[LB_N_FRAME])) {
|
(fbuf = Currentbuf->linkBuffer[LB_N_FRAME])) {
|
||||||
if (fmInitialized) {
|
if (fmInitialized) {
|
||||||
@@ -4149,14 +4133,8 @@ reload(void)
|
|||||||
buf->linkBuffer[LB_N_FRAME] = fbuf;
|
buf->linkBuffer[LB_N_FRAME] = fbuf;
|
||||||
pushBuffer(buf);
|
pushBuffer(buf);
|
||||||
Currentbuf = buf;
|
Currentbuf = buf;
|
||||||
if (Currentbuf->firstLine == NULL) {
|
if (Currentbuf->firstLine)
|
||||||
displayBuffer(Currentbuf, B_FORCE_REDRAW);
|
restorePosition(Currentbuf, &sbuf);
|
||||||
return;
|
|
||||||
}
|
|
||||||
gotoLine(Currentbuf, linenum);
|
|
||||||
Currentbuf->pos = pos;
|
|
||||||
Currentbuf->currentColumn = currentColumn;
|
|
||||||
arrangeCursor(Currentbuf);
|
|
||||||
displayBuffer(Currentbuf, B_FORCE_REDRAW);
|
displayBuffer(Currentbuf, B_FORCE_REDRAW);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -4181,11 +4159,20 @@ reload(void)
|
|||||||
url = parsedURL2Str(&Currentbuf->currentURL);
|
url = parsedURL2Str(&Currentbuf->currentURL);
|
||||||
message("Reloading...", 0, 0);
|
message("Reloading...", 0, 0);
|
||||||
refresh();
|
refresh();
|
||||||
|
|
||||||
|
#ifdef JP_CHARSET
|
||||||
|
old_code = DocumentCode;
|
||||||
|
DocumentCode = Currentbuf->document_code;
|
||||||
|
#endif
|
||||||
SearchHeader = Currentbuf->search_header;
|
SearchHeader = Currentbuf->search_header;
|
||||||
DefaultType = Currentbuf->real_type;
|
DefaultType = Currentbuf->real_type;
|
||||||
buf = loadGeneralFile(url->ptr, NULL, NO_REFERER, RG_NOCACHE, request);
|
buf = loadGeneralFile(url->ptr, NULL, NO_REFERER, RG_NOCACHE, request);
|
||||||
|
#ifdef JP_CHARSET
|
||||||
|
DocumentCode = old_code;
|
||||||
|
#endif
|
||||||
SearchHeader = FALSE;
|
SearchHeader = FALSE;
|
||||||
DefaultType = NULL;
|
DefaultType = NULL;
|
||||||
|
|
||||||
if (multipart)
|
if (multipart)
|
||||||
unlink(request->body);
|
unlink(request->body);
|
||||||
if (buf == NULL) {
|
if (buf == NULL) {
|
||||||
@@ -4195,36 +4182,28 @@ reload(void)
|
|||||||
else if (buf == NO_BUFFER) {
|
else if (buf == NO_BUFFER) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
buf->search_header = Currentbuf->search_header;
|
|
||||||
buf->form_submit = Currentbuf->form_submit;
|
|
||||||
if (fbuf != NULL)
|
if (fbuf != NULL)
|
||||||
Firstbuf = deleteBuffer(Firstbuf, fbuf);
|
Firstbuf = deleteBuffer(Firstbuf, fbuf);
|
||||||
repBuffer(Currentbuf, buf);
|
repBuffer(Currentbuf, buf);
|
||||||
if ((type != NULL) && (buf->type != NULL) &&
|
if ((buf->type != NULL) && (sbuf.type != NULL) &&
|
||||||
((!strcasecmp(buf->type, "text/plain") &&
|
((!strcasecmp(buf->type, "text/plain") &&
|
||||||
!strcasecmp(type, "text/html")) ||
|
!strcasecmp(sbuf.type, "text/html")) ||
|
||||||
(!strcasecmp(buf->type, "text/html") &&
|
(!strcasecmp(buf->type, "text/html") &&
|
||||||
!strcasecmp(type, "text/plain")))) {
|
!strcasecmp(sbuf.type, "text/plain")))) {
|
||||||
vwSrc();
|
vwSrc();
|
||||||
if (Currentbuf != buf)
|
if (Currentbuf != buf)
|
||||||
Firstbuf = deleteBuffer(Firstbuf, buf);
|
Firstbuf = deleteBuffer(Firstbuf, buf);
|
||||||
}
|
}
|
||||||
if (Currentbuf->firstLine == NULL) {
|
Currentbuf->search_header = sbuf.search_header;
|
||||||
displayBuffer(Currentbuf, B_FORCE_REDRAW);
|
Currentbuf->form_submit = sbuf.form_submit;
|
||||||
return;
|
if (Currentbuf->firstLine)
|
||||||
}
|
restorePosition(Currentbuf, &sbuf);
|
||||||
Currentbuf->topLine =
|
|
||||||
lineSkip(Currentbuf, Currentbuf->firstLine, top - 1, FALSE);
|
|
||||||
gotoLine(Currentbuf, linenum);
|
|
||||||
Currentbuf->pos = pos;
|
|
||||||
Currentbuf->currentColumn = currentColumn;
|
|
||||||
arrangeCursor(Currentbuf);
|
|
||||||
displayBuffer(Currentbuf, B_FORCE_REDRAW);
|
displayBuffer(Currentbuf, B_FORCE_REDRAW);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* mark URL-like patterns as anchors */
|
/* mark URL-like patterns as anchors */
|
||||||
void
|
void
|
||||||
chkURL(void)
|
chkURLBuffer(Buffer *buf)
|
||||||
{
|
{
|
||||||
static char *url_like_pat[] = {
|
static char *url_like_pat[] = {
|
||||||
"http://[a-zA-Z0-9][a-zA-Z0-9:%\\-\\./?=~_\\&+@#,\\$]*[a-zA-Z0-9_/=]",
|
"http://[a-zA-Z0-9][a-zA-Z0-9:%\\-\\./?=~_\\&+@#,\\$]*[a-zA-Z0-9_/=]",
|
||||||
@@ -4251,17 +4230,22 @@ chkURL(void)
|
|||||||
};
|
};
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; url_like_pat[i]; i++) {
|
for (i = 0; url_like_pat[i]; i++) {
|
||||||
reAnchor(Currentbuf, url_like_pat[i]);
|
reAnchor(buf, url_like_pat[i]);
|
||||||
}
|
}
|
||||||
Currentbuf->check_url |= CHK_URL;
|
buf->check_url |= CHK_URL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
chkURL(void)
|
||||||
|
{
|
||||||
|
chkURLBuffer(Currentbuf);
|
||||||
displayBuffer(Currentbuf, B_FORCE_REDRAW);
|
displayBuffer(Currentbuf, B_FORCE_REDRAW);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_NNTP
|
#ifdef USE_NNTP
|
||||||
/* mark Message-ID-like patterns as NEWS anchors */
|
/* mark Message-ID-like patterns as NEWS anchors */
|
||||||
void
|
void
|
||||||
chkNMID(void)
|
chkNMIDBuffer(Buffer *buf)
|
||||||
{
|
{
|
||||||
static char *url_like_pat[] = {
|
static char *url_like_pat[] = {
|
||||||
"<[^<> ][^<> ]*@[A-z0-9\\.\\-_][A-z0-9\\.\\-_]*>",
|
"<[^<> ][^<> ]*@[A-z0-9\\.\\-_][A-z0-9\\.\\-_]*>",
|
||||||
@@ -4269,10 +4253,15 @@ chkNMID(void)
|
|||||||
};
|
};
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; url_like_pat[i]; i++) {
|
for (i = 0; url_like_pat[i]; i++) {
|
||||||
reAnchorNews(Currentbuf, url_like_pat[i]);
|
reAnchorNews(buf, url_like_pat[i]);
|
||||||
}
|
}
|
||||||
Currentbuf->check_url |= CHK_NMID;
|
buf->check_url |= CHK_NMID;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
chkNMID(void)
|
||||||
|
{
|
||||||
|
chkNMIDBuffer(Currentbuf);
|
||||||
displayBuffer(Currentbuf, B_FORCE_REDRAW);
|
displayBuffer(Currentbuf, B_FORCE_REDRAW);
|
||||||
}
|
}
|
||||||
#endif /* USE_NNTP */
|
#endif /* USE_NNTP */
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: proto.h,v 1.20 2001/12/25 18:15:00 ukai Exp $ */
|
/* $Id: proto.h,v 1.21 2001/12/26 18:17:57 ukai Exp $ */
|
||||||
/*
|
/*
|
||||||
* This file was automatically generated by version 1.7 of cextract.
|
* This file was automatically generated by version 1.7 of cextract.
|
||||||
* Manual editing not recommended.
|
* Manual editing not recommended.
|
||||||
@@ -90,8 +90,10 @@ extern void curURL(void);
|
|||||||
extern void vwSrc(void);
|
extern void vwSrc(void);
|
||||||
extern void reload(void);
|
extern void reload(void);
|
||||||
extern void chkURL(void);
|
extern void chkURL(void);
|
||||||
|
extern void chkURLBuffer(Buffer *buf);
|
||||||
#ifdef USE_NNTP
|
#ifdef USE_NNTP
|
||||||
extern void chkNMID(void);
|
extern void chkNMID(void);
|
||||||
|
extern void chkNMIDBuffer(Buffer *buf);
|
||||||
#else
|
#else
|
||||||
#define chkNMID nulcmd
|
#define chkNMID nulcmd
|
||||||
#endif
|
#endif
|
||||||
@@ -230,6 +232,7 @@ extern void cursorHome(Buffer *buf);
|
|||||||
extern void arrangeCursor(Buffer *buf);
|
extern void arrangeCursor(Buffer *buf);
|
||||||
extern void arrangeLine(Buffer *buf);
|
extern void arrangeLine(Buffer *buf);
|
||||||
extern void cursorXY(Buffer *buf, int x, int y);
|
extern void cursorXY(Buffer *buf, int x, int y);
|
||||||
|
extern void restorePosition(Buffer *buf, Buffer *orig);
|
||||||
extern int columnSkip(Buffer *buf, int offset);
|
extern int columnSkip(Buffer *buf, int offset);
|
||||||
extern int columnPos(Line *line, int column);
|
extern int columnPos(Line *line, int column);
|
||||||
extern Line *lineSkip(Buffer *buf, Line *line, int offset, int last);
|
extern Line *lineSkip(Buffer *buf, Line *line, int offset, int last);
|
||||||
|
|||||||
Reference in New Issue
Block a user