[w3m-dev 03686] Re: fold patch

* buffer.c (writeBufferCache): rewrite
	(readBufferCache): rewrite
* etc.c (calcPosition): short -> int realColumn
* fm.h (Line): short -> int len,width,size,bpos,bwidth
	(BufferPoint): short->int pos
	(Buffer): short->int currentColumn,pos,visualpos
	(BufferPos): short->int currentColumn,pos
* frame.h (frameset_queue): short->int pos,currentColumn
* main.c (clear_mark): short->int pos
	(dispincsrch): short->int pos
	(backBf): short->int pos
	(set_buffer_environ): short->int prev_pos
From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
This commit is contained in:
Fumitoshi UKAI
2003-01-25 17:42:17 +00:00
parent 7119fe00e1
commit 6e58e83e12
6 changed files with 81 additions and 39 deletions

View File

@@ -1,4 +1,4 @@
/* $Id: buffer.c,v 1.22 2003/01/24 17:30:50 ukai Exp $ */
/* $Id: buffer.c,v 1.23 2003/01/25 17:42:17 ukai Exp $ */
#include "fm.h"
#ifdef USE_MOUSE
@@ -637,16 +637,25 @@ writeBufferCache(Buffer *buf)
fwrite1(l->usrflags, cache) ||
fwrite1(l->width, cache) ||
fwrite1(l->len, cache) ||
fwrite(l->lineBuf, 1, l->len, cache) < l->len ||
fwrite(l->propBuf, sizeof(Lineprop), l->len, cache) < l->len)
fwrite1(l->size, cache) ||
fwrite1(l->bpos, cache) ||
fwrite1(l->bwidth, cache))
goto _error;
if (l->bpos == 0) {
if (fwrite(l->lineBuf, 1, l->size, cache) < l->size ||
fwrite(l->propBuf, sizeof(Lineprop), l->size, cache) < l->size)
goto _error;
}
#ifdef USE_ANSI_COLOR
colorflag = l->colorBuf ? 1 : 0;
if (fwrite1(colorflag, cache))
goto _error;
if (colorflag) {
if (fwrite(l->colorBuf, sizeof(Linecolor), l->len, cache) < l->len)
goto _error;
if (l->bpos == 0) {
if (fwrite(l->colorBuf, sizeof(Linecolor), l->size, cache) <
l->size)
goto _error;
}
}
#endif
}
@@ -665,7 +674,7 @@ int
readBufferCache(Buffer *buf)
{
FILE *cache;
Line *l = NULL, *prevl = NULL;
Line *l = NULL, *prevl = NULL, *basel = NULL;
long lnum = 0, clnum, tlnum;
#ifdef USE_ANSI_COLOR
int colorflag;
@@ -696,19 +705,36 @@ readBufferCache(Buffer *buf)
buf->topLine = l;
if (fread1(l->real_linenumber, cache) ||
fread1(l->usrflags, cache) ||
fread1(l->width, cache) || fread1(l->len, cache))
fread1(l->width, cache) ||
fread1(l->len, cache) ||
fread1(l->size, cache) ||
fread1(l->bpos, cache) ||
fread1(l->bwidth, cache))
break;
if (l->bpos == 0) {
basel = l;
l->lineBuf = NewAtom_N(char, l->size + 1);
fread(l->lineBuf, 1, l->size, cache);
l->lineBuf[l->size] = '\0';
l->propBuf = NewAtom_N(Lineprop, l->size);
fread(l->propBuf, sizeof(Lineprop), l->size, cache);
}
else if (basel) {
l->lineBuf = basel->lineBuf + l->bpos;
l->propBuf = basel->propBuf + l->bpos;
}
else
break;
l->lineBuf = NewAtom_N(char, l->len + 1);
fread(l->lineBuf, 1, l->len, cache);
l->lineBuf[l->len] = '\0';
l->propBuf = NewAtom_N(Lineprop, l->len);
fread(l->propBuf, sizeof(Lineprop), l->len, cache);
#ifdef USE_ANSI_COLOR
if (fread1(colorflag, cache))
break;
if (colorflag) {
l->colorBuf = NewAtom_N(Linecolor, l->len);
fread(l->colorBuf, sizeof(Linecolor), l->len, cache);
if (l->bpos == 0) {
l->colorBuf = NewAtom_N(Linecolor, l->size);
fread(l->colorBuf, sizeof(Linecolor), l->size, cache);
}
else
l->colorBuf = basel->colorBuf + l->bpos;
}
else {
l->colorBuf = NULL;