diff options
| author | Fumitoshi UKAI <ukai@debian.or.jp> | 2003-01-10 16:08:19 +0000 | 
|---|---|---|
| committer | Fumitoshi UKAI <ukai@debian.or.jp> | 2003-01-10 16:08:19 +0000 | 
| commit | 900d16573c6efcdca06925ca66f9fe9ef5a845ec (patch) | |
| tree | 024475070996701b912eab600528e8cc63a43754 | |
| parent | [w3m-dev 03619] Re: Error occured while reset (diff) | |
| download | w3m-900d16573c6efcdca06925ca66f9fe9ef5a845ec.tar.gz w3m-900d16573c6efcdca06925ca66f9fe9ef5a845ec.zip | |
[w3m-dev 03620] -m option and header
* buffer.c (reshapeBuffer): fix reading from stdin
			fix -m option
* display.c (redrawNLine): rewrite
	(redrawLine): return l instead of l->next
	(redrawLineImage): ditto
* file.c (loadFile): read header even if skip header
	(loadGeneralFile): read header even if skip header
* fm.h (SkipHeader): added
* main.c (main): check whether reading from stdin
		SkipHeader
From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
| -rw-r--r-- | ChangeLog | 16 | ||||
| -rw-r--r-- | buffer.c | 12 | ||||
| -rw-r--r-- | display.c | 34 | ||||
| -rw-r--r-- | file.c | 12 | ||||
| -rw-r--r-- | fm.h | 3 | ||||
| -rw-r--r-- | main.c | 11 | 
6 files changed, 53 insertions, 35 deletions
| @@ -1,3 +1,17 @@ +2003-01-11  Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + +	* [w3m-dev 03620] -m option and header +	* buffer.c (reshapeBuffer): fix reading from stdin +				fix -m option +	* display.c (redrawNLine): rewrite +		(redrawLine): return l instead of l->next +		(redrawLineImage): ditto +	* file.c (loadFile): read header even if skip header +		(loadGeneralFile): read header even if skip header +	* fm.h (SkipHeader): added +	* main.c (main): check whether reading from stdin +			SkipHeader +  2003-01-10  Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>  	* [w3m-dev 03619] Re: Error occured while reset @@ -6244,4 +6258,4 @@ a	* [w3m-dev 03276] compile error on EWS4800  	* release-0-2-1  	* import w3m-0.2.1 -$Id: ChangeLog,v 1.661 2003/01/09 15:30:20 ukai Exp $ +$Id: ChangeLog,v 1.662 2003/01/10 16:08:19 ukai Exp $ @@ -1,4 +1,4 @@ -/* $Id: buffer.c,v 1.16 2002/12/02 17:27:36 ukai Exp $ */ +/* $Id: buffer.c,v 1.17 2003/01/10 16:08:20 ukai Exp $ */  #include "fm.h"  #ifdef USE_MOUSE @@ -530,9 +530,9 @@ reshapeBuffer(Buffer *buf)      UseContentCharset = FALSE;      UseAutoDetect = FALSE;  #endif -    if (buf->search_header && buf->currentURL.scheme == SCM_LOCAL) { -	if (buf->header_source && (buf->mailcap_source || -				   !strcmp(buf->currentURL.file, "-"))) { +    if (buf->header_source) { +	if (buf->currentURL.scheme != SCM_LOCAL || +	    buf->mailcap_source || !strcmp(buf->currentURL.file, "-")) {  	    URLFile h;  	    init_stream(&h, SCM_LOCAL, NULL);  	    examineFile(buf->header_source, &h); @@ -540,8 +540,8 @@ reshapeBuffer(Buffer *buf)  		readHeader(&h, buf, TRUE, NULL);  		UFclose(&h);  	    } -	} -	else +	}  +	else if (buf->search_header)	/* -m option */  	    readHeader(&f, buf, TRUE, NULL);      } @@ -1,4 +1,4 @@ -/* $Id: display.c,v 1.49 2002/12/27 16:46:13 ukai Exp $ */ +/* $Id: display.c,v 1.50 2003/01/10 16:08:20 ukai Exp $ */  #include <signal.h>  #include "fm.h" @@ -561,7 +561,7 @@ drawAnchorCursor(Buffer *buf)  static void  redrawNLine(Buffer *buf, int n)  { -    Line *l, *l0; +    Line *l;      int i;  #ifdef USE_COLOR @@ -616,19 +616,13 @@ redrawNLine(Buffer *buf, int n)  	for (i = 0; i < COLS; i++)  	    addch('~');      } -    for (i = 0, l = buf->topLine; i < buf->LINES; i++) { +    for (i = 0, l = buf->topLine; i < buf->LINES; i++, l = l->next) {  	if (i >= buf->LINES - n || i < -n) -	    l0 = redrawLine(buf, l, i + buf->rootY); -	else { -	    l0 = (l) ? l->next : NULL; -	} -	if (l0 == NULL && l == NULL) +	    l = redrawLine(buf, l, i + buf->rootY); +	if (l == NULL)  	    break; -	l = l0;      }      if (n > 0) { -	if (i == 0 && buf->topLine != NULL) -	    i++;  	move(i + buf->rootY, 0);  	clrtobotx();      } @@ -637,15 +631,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 < buf->LINES; i++) { +    for (i = 0, l = buf->topLine; i < buf->LINES && l; i++, l = l->next) {  	if (i >= buf->LINES - n || i < -n) -	    l0 = redrawLineImage(buf, l, i + buf->rootY); -	else { -	    l0 = (l) ? l->next : NULL; -	} -	if (l0 == NULL && l == NULL) -	    break; -	l = l0; +	    redrawLineImage(buf, l, i + buf->rootY);      }      getAllImage(buf);  #endif @@ -702,7 +690,7 @@ redrawLine(Buffer *buf, Line *l, int i)  	l->width = COLPOS(l, l->len);      if (l->len == 0 || l->width - 1 < column) {  	clrtoeolx(); -	return l->next; +	return l;      }      /* need_clrtoeol(); */      pos = columnPos(l, column); @@ -818,7 +806,7 @@ redrawLine(Buffer *buf, Line *l, int i)  #endif      if (rcol - column < buf->COLS)  	clrtoeolx(); -    return l->next; +    return l;  }  #ifdef USE_IMAGE @@ -835,7 +823,7 @@ redrawLineImage(Buffer *buf, Line *l, int i)      if (l->width < 0)  	l->width = COLPOS(l, l->len);      if (l->len == 0 || l->width - 1 < column) -	return l->next; +	return l;      pos = columnPos(l, column);      rcol = COLPOS(l, pos);      for (j = 0; rcol - column < buf->COLS && pos + j < l->len; j++) { @@ -888,7 +876,7 @@ redrawLineImage(Buffer *buf, Line *l, int i)  	}  	rcol = COLPOS(l, pos + j + 1);      } -    return l->next; +    return l;  }  #endif @@ -1,4 +1,4 @@ -/* $Id: file.c,v 1.178 2003/01/09 15:30:34 ukai Exp $ */ +/* $Id: file.c,v 1.179 2003/01/10 16:08:21 ukai Exp $ */  #include "fm.h"  #include <sys/types.h>  #include "myctype.h" @@ -472,16 +472,20 @@ convertLine(URLFile *uf, Str line, char *code, int mode)  Buffer *  loadFile(char *path)  { +    Buffer *buf;      URLFile uf;      init_stream(&uf, SCM_LOCAL, NULL);      examineFile(path, &uf);      if (uf.stream == NULL)  	return NULL; +    buf = newBuffer(INIT_BUFFER_WIDTH); +    if (SkipHeader) +	readHeader(&uf, buf, TRUE, NULL);      current_content_length = 0;  #ifdef JP_CHARSET      content_charset = '\0';  #endif -    return loadSomething(&uf, path, loadBuffer, NULL); +    return loadSomething(&uf, path, loadBuffer, buf);  }  int @@ -1907,6 +1911,10 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,  	if (f.guess_type)  	    t = f.guess_type;      } +    if (SkipHeader) { +	t_buf = newBuffer(INIT_BUFFER_WIDTH); +	readHeader(&f, t_buf, TRUE, NULL); +    }      if (real_type == NULL)  	real_type = t;      proc = loadBuffer; @@ -1,4 +1,4 @@ -/* $Id: fm.h,v 1.100 2002/12/27 16:07:44 ukai Exp $ */ +/* $Id: fm.h,v 1.101 2003/01/10 16:08:22 ukai Exp $ */  /*    * w3m: WWW wo Miru utility   *  @@ -765,6 +765,7 @@ global char InnerCode init(CODE_INNER_EUC);	/* use EUC-JP internally; do not cha  #endif				/* JP_CHARSET */  global char SearchHeader init(FALSE); +global char SkipHeader init(FALSE);  global char *DefaultType init(NULL);  global char RenderFrame init(FALSE);  global char TargetSelf init(FALSE); @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.186 2003/01/09 15:30:48 ukai Exp $ */ +/* $Id: main.c,v 1.187 2003/01/10 16:08:23 ukai Exp $ */  #define MAINPROGRAM  #include "fm.h"  #include <signal.h> @@ -886,7 +886,8 @@ main(int argc, char **argv, char **envp)  	}  	else if (newbuf == NO_BUFFER)  	    continue; -	newbuf->search_header = search_header; +	if (newbuf->pagerSource || strcmp(newbuf->currentURL.file, "-")) +	    newbuf->search_header = search_header;  	if (CurrentTab == NULL) {  	    FirstTab = LastTab = CurrentTab = newTab();  	    nTab = 1; @@ -4409,12 +4410,15 @@ vwSrc(void)  	char old_code = DocumentCode;  	DocumentCode = Currentbuf->document_code;  #endif +	SkipHeader = Currentbuf->search_header;  	buf = loadFile(fn);  #ifdef JP_CHARSET  	DocumentCode = old_code;  #endif +	SkipHeader = FALSE;  	if (buf == NULL)  	    return; +	buf->search_header = Currentbuf->search_header;  	buf->type = "text/plain";  	if (Currentbuf->real_type &&  	    !strcasecmp(Currentbuf->real_type, "text/html")) @@ -4427,11 +4431,14 @@ vwSrc(void)  	Currentbuf->linkBuffer[LB_SOURCE] = buf;      }      else if (!strcasecmp(Currentbuf->type, "text/plain")) { +	SkipHeader = Currentbuf->search_header;  	DefaultType = "text/html";  	buf = loadGeneralFile(file_to_url(fn), NULL, NO_REFERER, 0, NULL); +	SkipHeader = FALSE;  	DefaultType = NULL;  	if (buf == NULL || buf == NO_BUFFER)  	    return; +	buf->search_header = Currentbuf->search_header;  	if (Currentbuf->real_type &&  	    !strcasecmp(Currentbuf->real_type, "text/plain"))  	    buf->real_type = "text/html"; | 
