diff options
author | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-11-08 15:54:46 +0000 |
---|---|---|
committer | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-11-08 15:54:46 +0000 |
commit | 885e5cad27e126f6761eefd0d460e0b374d2e4d1 (patch) | |
tree | 0fc77f170b704bef8c43ab180a17b42a2687c80a | |
parent | [w3m-dev 03386] Re: Interrupt in no_proxy_check() (diff) | |
download | w3m-885e5cad27e126f6761eefd0d460e0b374d2e4d1.tar.gz w3m-885e5cad27e126f6761eefd0d460e0b374d2e4d1.zip |
[w3m-dev 03387] Re: tab browser
* buffer.c (newBuffer): buf->LINES initialize
(gotoLine): use buf->LINES
(gotoRealLine): use buf->LINES
* display.c (displayBuffer): check by buf->LINES
(redrawNLine): buf->LINES
(redrawLine): buf->LINES
(redrawLineImage): no need buf->rootY
(cursorDown): buf->LINES
(arrangeCursor): buf->LINES
* etc.c (columnSkip): buf->LINES
(lineSkip): buf->LINES
(currentLineSkip): buf->LINES
* fm.h (Buffer): add LINES
* main.c (nscroll): Currentbuf->LINES
(pgFore): Currentbuf->LINES
(pgBack): Currentbuf->LINES
(ctrCsrV): Currentbuf->LINES
(movD): Currentbuf->LINES
(movU): Currentbuf->LINES
(_goLine): Currentbuf->LINES
(drawAnchorCursor): Currentbuf->LINES
(setOpt): B_REDRAW_IMAGE
(newT): B_REDRAW_IMAGE
(closeT): B_REDRAW_IMAGE
(nextT): B_REDRAW_IMAGE
(prevT): B_REDRAW_IMAGE
(moveTab): B_NORMAL
From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
-rw-r--r-- | ChangeLog | 33 | ||||
-rw-r--r-- | buffer.c | 17 | ||||
-rw-r--r-- | display.c | 43 | ||||
-rw-r--r-- | etc.c | 9 | ||||
-rw-r--r-- | fm.h | 3 | ||||
-rw-r--r-- | main.c | 42 |
6 files changed, 87 insertions, 60 deletions
@@ -1,5 +1,36 @@ 2002-11-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * [w3m-dev 03387] Re: tab browser + * buffer.c (newBuffer): buf->LINES initialize + (gotoLine): use buf->LINES + (gotoRealLine): use buf->LINES + * display.c (displayBuffer): check by buf->LINES + (redrawNLine): buf->LINES + (redrawLine): buf->LINES + (redrawLineImage): no need buf->rootY + (cursorDown): buf->LINES + (arrangeCursor): buf->LINES + * etc.c (columnSkip): buf->LINES + (lineSkip): buf->LINES + (currentLineSkip): buf->LINES + * fm.h (Buffer): add LINES + * main.c (nscroll): Currentbuf->LINES + (pgFore): Currentbuf->LINES + (pgBack): Currentbuf->LINES + (ctrCsrV): Currentbuf->LINES + (movD): Currentbuf->LINES + (movU): Currentbuf->LINES + (_goLine): Currentbuf->LINES + (drawAnchorCursor): Currentbuf->LINES + (setOpt): B_REDRAW_IMAGE + (newT): B_REDRAW_IMAGE + (closeT): B_REDRAW_IMAGE + (nextT): B_REDRAW_IMAGE + (prevT): B_REDRAW_IMAGE + (moveTab): B_NORMAL + +2002-11-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * [w3m-dev 03386] Re: Interrupt in no_proxy_check() * file.c (getAuthCookie): term_cbreak() (loadGeneralFile): term_cbreak() @@ -4387,4 +4418,4 @@ a * [w3m-dev 03276] compile error on EWS4800 * release-0-2-1 * import w3m-0.2.1 -$Id: ChangeLog,v 1.485 2002/11/08 15:46:05 ukai Exp $ +$Id: ChangeLog,v 1.486 2002/11/08 15:54:46 ukai Exp $ @@ -1,4 +1,4 @@ -/* $Id: buffer.c,v 1.13 2002/03/15 19:02:40 ukai Exp $ */ +/* $Id: buffer.c,v 1.14 2002/11/08 15:54:46 ukai Exp $ */ #include "fm.h" #ifdef USE_MOUSE @@ -32,6 +32,7 @@ newBuffer(int width) bzero((void *)n, sizeof(Buffer)); n->width = width; n->COLS = COLS; + n->LINES = LASTLINE; n->currentURL.scheme = SCM_UNKNOWN; n->baseURL = NULL; n->baseTarget = NULL; @@ -252,15 +253,16 @@ gotoLine(Buffer *buf, int n) sprintf(msg, "Last line is #%ld", buf->lastLine->linenumber); set_delayed_message(msg); buf->currentLine = l; - buf->topLine = lineSkip(buf, buf->currentLine, -(LASTLINE - 1), FALSE); + buf->topLine = lineSkip(buf, buf->currentLine, -(buf->LINES - 1), + FALSE); return; } for (; l != NULL; l = l->next) { if (l->linenumber >= n) { buf->currentLine = l; if (n < buf->topLine->linenumber || - buf->topLine->linenumber + LASTLINE <= n) - buf->topLine = lineSkip(buf, l, -(LASTLINE + 1) / 2, FALSE); + buf->topLine->linenumber + buf->LINES <= n) + buf->topLine = lineSkip(buf, l, -(buf->LINES + 1) / 2, FALSE); break; } } @@ -294,15 +296,16 @@ gotoRealLine(Buffer *buf, int n) sprintf(msg, "Last line is #%ld", buf->lastLine->real_linenumber); set_delayed_message(msg); buf->currentLine = l; - buf->topLine = lineSkip(buf, buf->currentLine, -(LASTLINE - 1), FALSE); + buf->topLine = lineSkip(buf, buf->currentLine, -(buf->LINES - 1), + FALSE); return; } for (; l != NULL; l = l->next) { if (l->real_linenumber >= n) { buf->currentLine = l; if (n < buf->topLine->real_linenumber || - buf->topLine->real_linenumber + LASTLINE <= n) - buf->topLine = lineSkip(buf, l, -(LASTLINE + 1) / 2, FALSE); + buf->topLine->real_linenumber + buf->LINES <= n) + buf->topLine = lineSkip(buf, l, -(buf->LINES + 1) / 2, FALSE); break; } } @@ -1,4 +1,4 @@ -/* $Id: display.c,v 1.28 2002/11/06 03:19:30 ukai Exp $ */ +/* $Id: display.c,v 1.29 2002/11/08 15:54:47 ukai Exp $ */ #include <signal.h> #include "fm.h" @@ -254,16 +254,18 @@ displayBuffer(Buffer *buf, int mode) else buf->rootX = 0; buf->COLS = COLS - buf->rootX; - if (nTab > 1) + if (nTab > 1) { ny = (nTab - 1) / N_TAB + 2; - if (buf->rootY != ny) { + if (ny > LASTLINE) + ny = LASTLINE; + } + if (buf->rootY != ny || buf->LINES != LASTLINE - ny) { buf->rootY = ny; + buf->LINES = LASTLINE - ny; arrangeCursor(buf); + mode = B_REDRAW_IMAGE; } - if (mode == B_FORCE_REDRAW || mode == B_SCROLL || -#ifdef USE_IMAGE - mode == B_REDRAW_IMAGE || -#endif + if (mode == B_FORCE_REDRAW || mode == B_SCROLL || mode == B_REDRAW_IMAGE || cline != buf->topLine || ccolumn != buf->currentColumn) { if ( #ifdef USE_IMAGE @@ -271,15 +273,15 @@ displayBuffer(Buffer *buf, int mode) #endif mode == B_SCROLL && cline && buf->currentColumn == ccolumn) { int n = buf->topLine->linenumber - cline->linenumber; - if (n > 0 && n < LASTLINE) { + if (n > 0 && n < buf->LINES) { move(LASTLINE, 0); clrtoeolx(); refresh(); scroll(n); } - else if (n < 0 && n > -LASTLINE) { + else if (n < 0 && n > -buf->LINES) { #if defined(__CYGWIN__) && LANG == JA - move(LASTLINE + n + 1, 0); + move(buf->LINES + n + 1, 0); clrtoeolx(); refresh(); #endif /* defined(__CYGWIN__) && LANG == JA */ @@ -468,9 +470,9 @@ redrawNLine(Buffer *buf, int n) for (i = 0; i < COLS; i++) addch('~'); } - for (i = buf->rootY, l = buf->topLine; i < LASTLINE; i++) { - if (i >= LASTLINE - n || (i - buf->rootY) < -n) - l0 = redrawLine(buf, l, i); + for (i = 0, l = buf->topLine; i < buf->LINES; i++) { + if (i >= buf->LINES - n || i < -n) + l0 = redrawLine(buf, l, i + buf->rootY); else { l0 = (l) ? l->next : NULL; } @@ -485,9 +487,9 @@ redrawNLine(Buffer *buf, int n) if (!(activeImage && displayImage && buf->img)) return; move(buf->cursorY + buf->rootY, buf->cursorX + buf->rootX); - for (i = 0, l = buf->topLine; i < LASTLINE; i++) { - if (i >= LASTLINE - n || i < -n) - l0 = redrawLineImage(buf, l, i); + for (i = 0, l = buf->topLine; i < buf->LINES; i++) { + if (i >= buf->LINES - n || i < -n) + l0 = redrawLineImage(buf, l, i + buf->rootY); else { l0 = (l) ? l->next : NULL; } @@ -519,7 +521,7 @@ redrawLine(Buffer *buf, Line *l, int i) if (l == NULL) { if (buf->pagerSource) { - l = getNextPage(buf, LASTLINE - i); + l = getNextPage(buf, buf->LINES - i); if (l == NULL) return NULL; } @@ -706,7 +708,7 @@ redrawLineImage(Buffer *buf, Line *l, int i) buf->need_reshape = TRUE; } x = (int)((rcol - column + buf->rootX) * pixel_per_char); - y = (int)((i + buf->rootY) * pixel_per_line); + y = (int)(i * pixel_per_line); sx = (int)((rcol - COLPOS(l, a->start.pos)) * pixel_per_char); sy = (int)((l->linenumber - image->y) * pixel_per_line); if (sx == 0 && x + image->xoffset >= 0) @@ -1105,7 +1107,7 @@ cursorDown(Buffer *buf, int n) { if (buf->firstLine == NULL) return; - if (buf->cursorY + buf->rootY < LASTLINE - 1) + if (buf->cursorY < buf->LINES - 1) cursorUpDown(buf, 1); else { buf->topLine = lineSkip(buf, buf->topLine, n, FALSE); @@ -1220,8 +1222,7 @@ arrangeCursor(Buffer *buf) if (buf == NULL || buf->currentLine == NULL) return; /* Arrange line */ - if (buf->currentLine->linenumber - buf->topLine->linenumber >= LASTLINE - - buf->rootY + if (buf->currentLine->linenumber - buf->topLine->linenumber >= buf->LINES || buf->currentLine->linenumber < buf->topLine->linenumber) { /* * buf->topLine = buf->currentLine; @@ -1,4 +1,4 @@ -/* $Id: etc.c,v 1.36 2002/11/06 15:05:34 ukai Exp $ */ +/* $Id: etc.c,v 1.37 2002/11/08 15:54:47 ukai Exp $ */ #include "fm.h" #include <pwd.h> #include "myctype.h" @@ -42,7 +42,7 @@ columnSkip(Buffer *buf, int offset) { int i, maxColumn; int column = buf->currentColumn + offset; - int nlines = LASTLINE + 1 - buf->rootY; + int nlines = buf->LINES + 1; Line *l; maxColumn = 0; @@ -91,8 +91,7 @@ lineSkip(Buffer *buf, Line *line, int offset, int last) #ifdef NEXTPAGE_TOPLINE if (!nextpage_topline) #endif - for (i = (LASTLINE - 1 - buf->rootY) - (buf->lastLine->linenumber - - l->linenumber); + for (i = buf->LINES - 1 - (buf->lastLine->linenumber - l->linenumber); i > 0 && l->prev != NULL; i--, l = l->prev) ; return l; } @@ -104,7 +103,7 @@ currentLineSkip(Buffer *buf, Line *line, int offset, int last) Line *l = line; if (buf->pagerSource && !(buf->bufferprop & BP_CLOSE)) { - n = line->linenumber + offset + LASTLINE - buf->rootY; + n = line->linenumber + offset + buf->LINES; if (buf->lastLine->linenumber < n) getNextPage(buf, n - buf->lastLine->linenumber); while ((last || (buf->lastLine->linenumber < n)) && @@ -1,4 +1,4 @@ -/* $Id: fm.h,v 1.71 2002/11/06 15:07:40 ukai Exp $ */ +/* $Id: fm.h,v 1.72 2002/11/08 15:54:47 ukai Exp $ */ /* * w3m: WWW wo Miru utility * @@ -406,6 +406,7 @@ typedef struct _Buffer { short rootX; short rootY; short COLS; + short LINES; InputStream pagerSource; AnchorList *href; AnchorList *name; @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.120 2002/11/06 03:27:04 ukai Exp $ */ +/* $Id: main.c,v 1.121 2002/11/08 15:54:47 ukai Exp $ */ #define MAINPROGRAM #include "fm.h" #include <signal.h> @@ -1307,8 +1307,7 @@ nscroll(int n, int mode) } else { tlnum = Currentbuf->topLine->linenumber; - llnum = Currentbuf->topLine->linenumber + LASTLINE - Currentbuf->rootY - - 1; + llnum = Currentbuf->topLine->linenumber + Currentbuf->LINES - 1; #ifdef NEXTPAGE_TOPLINE if (nextpage_topline) diff_n = 0; @@ -1331,12 +1330,11 @@ pgFore(void) { #ifdef VI_PREC_NUM if (vi_prec_num) - nscroll(searchKeyNum() * (LASTLINE - Currentbuf->rootY - 1), B_NORMAL); + nscroll(searchKeyNum() * (Currentbuf->LINES - 1), B_NORMAL); else #endif nscroll(prec_num ? searchKeyNum() : searchKeyNum() - * (LASTLINE - Currentbuf->rootY - 1), - prec_num ? B_SCROLL : B_NORMAL); + * (Currentbuf->LINES - 1), prec_num ? B_SCROLL : B_NORMAL); } /* Move page backward */ @@ -1345,13 +1343,11 @@ pgBack(void) { #ifdef VI_PREC_NUM if (vi_prec_num) - nscroll(-searchKeyNum() * (LASTLINE - Currentbuf->rootY - 1), - B_NORMAL); + nscroll(-searchKeyNum() * (Currentbuf->LINES - 1), B_NORMAL); else #endif nscroll(-(prec_num ? searchKeyNum() : searchKeyNum() - * (LASTLINE - Currentbuf->rootY - 1)), - prec_num ? B_SCROLL : B_NORMAL); + * (Currentbuf->LINES - 1)), prec_num ? B_SCROLL : B_NORMAL); } /* 1 line up */ @@ -1375,7 +1371,7 @@ ctrCsrV(void) int offsety; if (Currentbuf->firstLine == NULL) return; - offsety = (LASTLINE - Currentbuf->rootY) / 2 - Currentbuf->cursorY; + offsety = Currentbuf->LINES / 2 - Currentbuf->cursorY; if (offsety != 0) { #if 0 Currentbuf->currentLine = lineSkip(Currentbuf, @@ -1969,7 +1965,7 @@ _movD(int n) void movD(void) { - _movD((LASTLINE - Currentbuf->rootY + 1) / 2); + _movD((Currentbuf->LINES + 1) / 2); } void @@ -1993,7 +1989,7 @@ _movU(int n) void movU(void) { - _movU((LASTLINE - Currentbuf->rootY + 1) / 2); + _movU((Currentbuf->LINES + 1) / 2); } void @@ -2284,7 +2280,7 @@ _goLine(char *l) else if (*l == '$') { Currentbuf->topLine = lineSkip(Currentbuf, Currentbuf->lastLine, - -(LASTLINE - Currentbuf->rootY + 1) / 2, TRUE); + -(Currentbuf->LINES + 1) / 2, TRUE); Currentbuf->currentLine = Currentbuf->lastLine; } else @@ -3285,7 +3281,7 @@ drawAnchorCursor(Buffer *buf) else hseq = -1; tline = buf->topLine->linenumber; - eline = tline + LASTLINE - buf->rootY; + eline = tline + buf->LINES; prevhseq = buf->hmarklist->prevhseq; drawAnchorCursor0(buf, hseq, prevhseq, tline, eline, 1); @@ -3918,11 +3914,7 @@ setOpt(void) } if (set_param_option(opt)) sync_with_option(); -#ifdef USE_IMAGE - if (activeImage) - displayBuffer(Currentbuf, B_REDRAW_IMAGE); -#endif - displayBuffer(Currentbuf, B_FORCE_REDRAW); + displayBuffer(Currentbuf, B_REDRAW_IMAGE); } /* error message list */ @@ -5418,7 +5410,7 @@ void newT(void) { _newT(); - displayBuffer(Currentbuf, B_FORCE_REDRAW); + displayBuffer(Currentbuf, B_REDRAW_IMAGE); } TabBuffer * @@ -5482,7 +5474,7 @@ closeT(void) tab = CurrentTab; if (tab) deleteTab(tab); - displayBuffer(Currentbuf, B_FORCE_REDRAW); + displayBuffer(Currentbuf, B_REDRAW_IMAGE); } void @@ -5498,7 +5490,7 @@ nextT(void) else CurrentTab = FirstTab; } - displayBuffer(Currentbuf, B_FORCE_REDRAW); + displayBuffer(Currentbuf, B_REDRAW_IMAGE); } void @@ -5514,7 +5506,7 @@ prevT(void) else CurrentTab = LastTab; } - displayBuffer(Currentbuf, B_FORCE_REDRAW); + displayBuffer(Currentbuf, B_REDRAW_IMAGE); } void @@ -5656,7 +5648,7 @@ moveTab(TabBuffer * t, TabBuffer * t2, int right) FirstTab = t; t2->prevTab = t; } - displayBuffer(Currentbuf, B_FORCE_REDRAW); + displayBuffer(Currentbuf, B_NORMAL); } void |