diff -urN -x CVS -x config.h -x config.param -x XXMakefile -x gc w3m-0.1.11-pre/Str.c w3m-0.1.11-pre-kokb18/Str.c --- w3m-0.1.11-pre/Str.c Tue Jun 6 14:39:13 2000 +++ w3m-0.1.11-pre-kokb18/Str.c Mon Oct 30 04:55:18 2000 @@ -1,4 +1,4 @@ -/* $Id: Str.c,v 1.9 2000/06/06 05:39:13 aito Exp $ */ +/* $Id: Str.c,v 1.1.1.1.4.1 2000/10/29 19:55:18 okabe Exp $ */ /* * String manipulation library for Boehm GC * @@ -543,14 +543,6 @@ break; } return s; -} - -void -Strfputs(Str s, FILE * f) -{ - int i; - for (i = 0; i < s->length; i++) - putc(s->ptr[i], f); } Str diff -urN -x CVS -x config.h -x config.param -x XXMakefile -x gc w3m-0.1.11-pre/Str.h w3m-0.1.11-pre-kokb18/Str.h --- w3m-0.1.11-pre/Str.h Tue Jun 6 14:39:13 2000 +++ w3m-0.1.11-pre-kokb18/Str.h Mon Oct 30 04:55:18 2000 @@ -1,4 +1,4 @@ -/* $Id: Str.h,v 1.8 2000/06/06 05:39:13 aito Exp $ */ +/* $Id: Str.h,v 1.1.1.1.4.1 2000/10/29 19:55:18 okabe Exp $ */ /* * String manipulation library for Boehm GC * @@ -80,4 +80,5 @@ #define Strlastchar(s) ((s)->length>0?(s)->ptr[(s)->length-1]:'\0') #define Strinsert(s,n,p) Strinsert_charp(s,n,(p)->ptr) #define Strshrinkfirst(s,n) Strdelete(s,0,n) +#define Strfputs(s,f) fwrite((s)->ptr,1,(s)->length,(f)) #endif /* not GC_STR_H */ diff -urN -x CVS -x config.h -x config.param -x XXMakefile -x gc w3m-0.1.11-pre/anchor.c w3m-0.1.11-pre-kokb18/anchor.c --- w3m-0.1.11-pre/anchor.c Tue Jun 6 14:39:13 2000 +++ w3m-0.1.11-pre-kokb18/anchor.c Sat Oct 7 00:39:14 2000 @@ -1,5 +1,4 @@ -/* Marker extension by okabe */ -/* $Id: anchor.c,v 1.9 2000/06/06 05:39:13 aito Exp $ */ +/* $Id: anchor.c,v 1.2 2000/10/06 15:39:14 okabe Exp $ */ #ifdef __EMX__ #include #endif diff -urN -x CVS -x config.h -x config.param -x XXMakefile -x gc w3m-0.1.11-pre/buffer.c w3m-0.1.11-pre-kokb18/buffer.c --- w3m-0.1.11-pre/buffer.c Wed Jun 14 19:26:34 2000 +++ w3m-0.1.11-pre-kokb18/buffer.c Wed Oct 25 19:03:31 2000 @@ -83,6 +83,8 @@ continue; b->linkBuffer[REV_LB[i]] = NULL; } + if (buf->savecache) + unlink(buf->savecache); if (--(*buf->clone)) return; if (buf->pagerSource) { @@ -99,8 +101,6 @@ deleteFrameSet(buf->frameset); buf->frameset = popFrameTree(&(buf->frameQ), NULL, NULL); } - if (buf->savecache) - unlink(buf->savecache); } /* @@ -170,7 +170,7 @@ return newbuf; } -static Buffer * +Buffer * nthBuffer(Buffer * firstbuf, int n) { int i; @@ -230,7 +230,7 @@ if (l == NULL) return; - if (buf->pagerSource && strcmp(buf->buffername, CPIPEBUFFERNAME)) { + if (buf->pagerSource && !(buf->bufferprop & BP_CLOSE)) { if (buf->lastLine->linenumber < n) getNextPage(buf, n - buf->lastLine->linenumber); while ((buf->lastLine->linenumber < n) && @@ -271,7 +271,7 @@ if (l == NULL) return; - if (buf->pagerSource && strcmp(buf->buffername, CPIPEBUFFERNAME)) { + if (buf->pagerSource && !(buf->bufferprop & BP_CLOSE)) { if (buf->lastLine->real_linenumber < n) getNextPage(buf, n - buf->lastLine->real_linenumber); while ((buf->lastLine->real_linenumber < n) && @@ -486,13 +486,10 @@ int linenum; AnchorList *formitem; - f.stream.f = examineFile(buf->sourcefile, &f.close); + init_stream(&f, SCM_LOCAL, NULL, 0, NULL); + examineFile(buf->sourcefile, &f); if (f.stream.f == NULL) return; - f.stream_type = SMT_FILE; - f.iseof = FALSE; - f.encoding = ENC_7BIT; - f.scheme = SCM_LOCAL; if (buf->firstLine == NULL) linenum = 1; @@ -533,6 +530,7 @@ void copyBuffer(Buffer * a, Buffer * b) { + readBufferCache(b); bcopy((void *) b, (void *) a, sizeof(Buffer)); } @@ -555,13 +553,14 @@ FILE *cache = NULL; Line *l; + if (buf->savecache) + return -1; + if (buf->firstLine == NULL) goto _error1; - if (!buf->savecache) { - tmp = Sprintf("%s/w3mcache%d.%lx", rc_dir, getpid(), (unsigned long) buf); - buf->savecache = tmp->ptr; - } + tmp = tmpfname(TMPF_CACHE, NULL); + buf->savecache = tmp->ptr; cache = fopen(buf->savecache, "w"); if (!cache) goto _error1; @@ -585,7 +584,7 @@ fclose(cache); unlink(buf->savecache); _error1: - buf->savecache == NULL; + buf->savecache = NULL; return -1; } diff -urN -x CVS -x config.h -x config.param -x XXMakefile -x gc w3m-0.1.11-pre/configure w3m-0.1.11-pre-kokb18/configure --- w3m-0.1.11-pre/configure Wed Jun 14 13:28:32 2000 +++ w3m-0.1.11-pre-kokb18/configure Sat Oct 28 13:54:19 2000 @@ -576,7 +576,7 @@ fi echo "Do you want to use SSL?" -echo '(You need openSSL library; Please see http://www.openssl.org/)' +echo '(You need OpenSSL library; Please see http://www.openssl.org/)' yesno use_ssl "$use_ssl" n echo "use_ssl=$use_ssl" >> config.param if [ "$use_ssl" = y ]; then @@ -592,6 +592,7 @@ if [ "$use_ssl" = y ]; then echo "Do you want SSL verification support" + echo '(Your SSL library must be version 0.8 or later)' yesno use_ssl_verify "$use_ssl_verify" n echo "use_ssl_verify=$use_ssl_verify" >> config.param if [ "$use_ssl_verify" = y ]; then @@ -1407,10 +1408,13 @@ done if [ "X$v6lib" = "X" ]; then echo "You don't have getaddrinfo()." - ipv6 = "#undef INET6" + ipv6="#undef INET6" fi fi ;; + CYGWIN*) + ipv6="#undef INET6" + ;; esac fi if [ "$ipv6" = "#undef INET6" ]; then @@ -1522,6 +1526,21 @@ */ #define BUFINFO +/* + * Support EGD (Entropy Gathering Daemon) + */ +#undef USE_EGD + +/* + * MENU_MAP enables w3m to show image map link with popup menu. + */ +#undef MENU_MAP + +/* + * Use Emacs-like key binding for file name completion + */ +#undef EMACS_LIKE_LINEEDIT + /**********************************************************/ #ifdef makefile_parameter @@ -1620,6 +1639,7 @@ $ipv6 #undef TABLE_EXPAND +#undef TABLE_NO_COMPACT #define NOWRAP 1 #define NEW_FORM 1 #define MATRIX 1 diff -urN -x CVS -x config.h -x config.param -x XXMakefile -x gc w3m-0.1.11-pre/conv.c w3m-0.1.11-pre-kokb18/conv.c --- w3m-0.1.11-pre/conv.c Tue Jun 6 14:39:13 2000 +++ w3m-0.1.11-pre-kokb18/conv.c Tue Oct 3 20:08:14 2000 @@ -212,7 +212,7 @@ case SJIS_NOSTATE: if (!(*p & 0x80)) /* ASCII */ Strcat_char(os, (char) (*p)); - else if (0x80 <= *p && *p <= 0x9f) { /* JIS X 0208, + else if (0x81 <= *p && *p <= 0x9f) { /* JIS X 0208, * 0213 */ ub = *p & 0x7f; state = SJIS_SHIFT_L; diff -urN -x CVS -x config.h -x config.param -x XXMakefile -x gc w3m-0.1.11-pre/cookie.c w3m-0.1.11-pre-kokb18/cookie.c --- w3m-0.1.11-pre/cookie.c Wed Jun 14 15:40:56 2000 +++ w3m-0.1.11-pre-kokb18/cookie.c Tue Oct 24 05:14:28 2000 @@ -1,4 +1,13 @@ -/* $Id: cookie.c,v 1.9 2000/06/14 06:26:09 aito Exp $ */ +/* $Id: cookie.c,v 1.2.4.3 2000/10/23 20:14:28 okabe Exp $ */ + +/* + * References for version 0 cookie: + * [NETACAPE] http://www.netscape.com/newsref/std/cookie_spec.html + * + * References for version 1 cookie: + * [RFC 2109] http://www.ics.uci.edu/pub/ietf/http/rfc2109.txt + * [DRAFT 12] http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-state-man-mec-12.txt + */ #include "fm.h" #include "html.h" @@ -15,11 +24,31 @@ static int is_saved = 1; +#define contain_no_dots(p, ep) (total_dot_number((p),(ep),1)==0) + +static int +total_dot_number(char *p, char *ep, int max_count) +{ + int count = 0; + if (!ep) + ep = p + strlen(p); + + for (; p < ep && count < max_count; p++) { + if (*p == '.') + count++; + } + return count; +} + + static char * domain_match(char *host, char *domain) { - int m0, m1, offset; + int m0, m1; + /* [RFC 2109] s. 2, "domain-match", case 1 + * (both are IP and identical) + */ regexCompile("[0-9][0-9]*\\.[0-9][0-9]*\\.[0-9][0-9]*\\.[0-9][0-9]*", 0); m0 = regexMatch(host, 1); m1 = regexMatch(domain, 1); @@ -28,13 +57,31 @@ return host; } else if (!m0 && !m1) { - offset = (domain[0] != '.') ? 0 : strlen(host) - strlen(domain); - if (offset >= 0 && strcasecmp(&host[offset], domain) == 0) - return &host[offset]; + int offset; + char *domain_p; + /* + * "." match all domains (w3m only), + * and ".local" match local domains ([DRAFT 12] s. 2) + */ + if (strcasecmp(domain, ".") == 0 || + strcasecmp(domain, ".local") == 0) { + offset = strlen(host); + domain_p = &host[offset]; + if (domain[1] == '\0' || contain_no_dots(host, domain_p)) + return domain_p; + } + /* [RFC 2109] s. 2, cases 2, 3 */ + else { + offset = (domain[0] != '.') ? 0 : strlen(host) - strlen(domain); + domain_p = &host[offset]; + if (offset >= 0 && strcasecmp(domain_p, domain) == 0) + return domain_p; + } } return NULL; } + static struct portlist * make_portlist(Str port) { @@ -122,7 +169,7 @@ static int match_cookie(ParsedURL * pu, struct cookie *cookie) { - char *domainname = FQDN(pu->host); + char *domainname = (cookie->version == 0) ? FQDN(pu->host) : pu->host; if (!domainname) return 0; @@ -203,18 +250,6 @@ return tmp; } -static int -nodots(char *p, char *ep) -{ - if (!ep) - ep = p + strlen(p); - - for (; p < ep && *p != '.'; p++); - if (p < ep) - return 0; - return 1; -} - char *special_domain[] = { ".com", ".edu", ".gov", ".mil", ".net", ".org", ".int", NULL}; @@ -226,9 +261,12 @@ Str port, Str commentURL) { struct cookie *p; - char *domainname = FQDN(pu->host); + char *domainname = (version == 0) ? FQDN(pu->host) : pu->host; Str odomain = domain, opath = path; struct portlist *portlist = NULL; + int use_security = !(flag & COO_OVERRIDE); + +#define COOKIE_ERROR(err) if(!((err) & COO_OVERRIDE_OK) || use_security) return (err) #ifdef DEBUG fprintf(stderr, "host: [%s, %s] %d\n", pu->host, pu->file, flag); @@ -242,42 +280,66 @@ if (port) fprintf(stderr, "port: [%s]\n", port->ptr); #endif /* DEBUG */ + /* [RFC 2109] s. 4.3.2 case 2; but this (no request-host) shouldn't happen */ if (!domainname) - return 1; + return COO_ENODOT; if (domain) { char *dp; - char **sdomain; -#if 0 - if (domain->ptr[0] != '.') - return 1; -#endif /* 0 */ - if (nodots(&domain->ptr[1], &domain->ptr[domain->length])) - return 1; - if (!(dp = domain_match(domainname, domain->ptr))) - return 1; + /* [DRAFT 12] s. 4.2.2 (does not apply in the case that + * host name is the same as domain attribute for version 0 + * cookie) + * I think that this rule has almost the same effect as the + * tail match of [NETSCAPE]. + */ + if (domain->ptr[0] != '.' && + (version > 0 || strcasecmp(domainname, domain->ptr) != 0)) + domain = Sprintf(".%s", domain->ptr); + if (version == 0) { - for (sdomain = special_domain; *sdomain; sdomain++) { - int offset = domain->length - strlen(*sdomain); - if (offset >= 0 && strcasecmp(*sdomain, &domain->ptr[offset]) == 0) - break; + /* [NETSCAPE] rule */ + int n = total_dot_number(domain->ptr, + domain->ptr + domain->length, + 3); + if (n < 2) { + COOKIE_ERROR(COO_ESPECIAL); + } else if (n == 2) { + char **sdomain; + int ok = 0; + for (sdomain = special_domain; !ok && *sdomain; sdomain++) { + int offset = domain->length - strlen(*sdomain); + if (offset >= 0 && + strcasecmp(*sdomain, &domain->ptr[offset]) == 0) + ok = 1; + } + if (!ok) + COOKIE_ERROR(COO_ESPECIAL); } - if (!*sdomain && !nodots(domainname, dp)) - return 1; - } - else { - if (!nodots(domainname, dp)) - return 1; + } else { + /* [DRAFT 12] s. 4.3.2 case 2 */ + if (strcasecmp(domain->ptr, ".local") != 0 && + contain_no_dots(&domain->ptr[1], &domain->ptr[domain->length])) + COOKIE_ERROR(COO_ENODOT); } + + /* [RFC 2109] s. 4.3.2 case 3 */ + if (!(dp = domain_match(domainname, domain->ptr))) + COOKIE_ERROR(COO_EDOM); + /* [RFC 2409] s. 4.3.2 case 4 */ + /* Invariant: dp contains matched domain */ + if (version > 0 && !contain_no_dots(domainname, dp)) + COOKIE_ERROR(COO_EBADHOST); } if (path) { - if (version > 0 && strncmp(path->ptr, pu->file, path->length) != 0) - return 1; + /* [RFC 2109] s. 4.3.2 case 1 */ + if (version > 0 && strncmp(path->ptr, pu->file, path->length) != 0) + COOKIE_ERROR(COO_EPATH); } if (port) { + /* [DRAFT 12] s. 4.3.2 case 5 */ portlist = make_portlist(port); if (portlist && !port_match(portlist, pu->port)) - return 1; + COOKIE_ERROR(COO_EPORT); } if (!domain) @@ -525,7 +587,7 @@ Strcat_charp(src, tmp); Strcat_charp(src, ""); - Strcat_charp(src, ""); + Strcat_charp(src, "
"); if (!(p->flag & COO_SECURE)) { Strcat_charp(src, ""); } if (tmp2[0]) { @@ -548,6 +614,9 @@ Strcat_charp(src, " (Discard)"); Strcat_charp(src, ""); } + Strcat_charp(src, "
Cookie:"); Strcat_charp(src, htmlquote_str(make_cookie(p)->ptr)); @@ -538,7 +600,11 @@ } if (p->commentURL) { Strcat_charp(src, "
CommentURL:"); + Strcat_charp(src, "commentURL->ptr)); + Strcat_charp(src, "\">"); Strcat_charp(src, htmlquote_str(p->commentURL->ptr)); + Strcat_charp(src, ""); Strcat_charp(src, "
Version:"); + Strcat_charp(src, Sprintf("%d", p->version)->ptr); + Strcat_charp(src, "
"); if (p->domain) { Strcat_charp(src, "
Domain:"); Strcat_charp(src, htmlquote_str(p->domain->ptr)); @@ -601,5 +670,28 @@ arg = arg->next; } backBf(); +} + +int +check_cookie_accpet_domain(char *domain) +{ + TextListItem *tl; + + if (domain == NULL) + return 0; + + if (Cookie_accept_domains && Cookie_accept_domains->nitem > 0) { + for (tl = Cookie_accept_domains->first; tl != NULL; tl = tl->next) { + if (domain_match(domain, tl->ptr)) + return 1; + } + } + if (Cookie_reject_domains && Cookie_reject_domains->nitem > 0) { + for (tl = Cookie_reject_domains->first; tl != NULL; tl = tl->next) { + if (domain_match(domain, tl->ptr)) + return 0; + } + } + return 1; } #endif /* USE_COOKIE */ diff -urN -x CVS -x config.h -x config.param -x XXMakefile -x gc w3m-0.1.11-pre/display.c w3m-0.1.11-pre-kokb18/display.c --- w3m-0.1.11-pre/display.c Wed Jun 14 19:26:34 2000 +++ w3m-0.1.11-pre-kokb18/display.c Sat Oct 7 22:41:19 2000 @@ -1,4 +1,4 @@ -/* $Id: display.c,v 1.12 2000/06/14 06:26:09 aito Exp $ */ +/* $Id: display.c,v 1.1.1.1.4.1 2000/10/07 13:41:19 okabe Exp $ */ #include #include "fm.h" @@ -572,28 +572,8 @@ } else if (c == DEL_CODE) addstr("^?"); -#if LANG != EN else if (c != '\n') addch(c); -#else - else if ((unsigned char) c == 0xa0) /* NO-BREAK SPACE */ - addch(' '); - else if (c != '\n') { -#ifdef __EMX__ - extern int CodePage; - if (CodePage || (unsigned char) c < 0x80 || (unsigned char) c > 0x9F) { -#else - if ((unsigned char) c < 0x80 || (unsigned char) c > 0x9F) { -#endif - addch(c); - } - else { - /* else: Eliminate unprintables according to * iso-8859-*. - * Particularly 0x96 messes up T.Dickey's * (xfree-)xterm */ - addch(' '); - } - } -#endif else /* \n */ addch(' '); } diff -urN -x CVS -x config.h -x config.param -x XXMakefile -x gc w3m-0.1.11-pre/doc/MANUAL.html w3m-0.1.11-pre-kokb18/doc/MANUAL.html --- w3m-0.1.11-pre/doc/MANUAL.html Fri Apr 7 12:12:10 2000 +++ w3m-0.1.11-pre-kokb18/doc/MANUAL.html Mon Oct 23 21:13:05 2000 @@ -111,6 +111,9 @@ with -cols option.
-cols width
Specify document width. Used with -dump option. +
-ppc count +
Specify the number of pixels per character (default 8.0). Larger + values will make tables narrower.
-dump_source
Read document specified by URL and dump the source.
-dump_head diff -urN -x CVS -x config.h -x config.param -x XXMakefile -x gc w3m-0.1.11-pre/doc/keymap.lynx w3m-0.1.11-pre-kokb18/doc/keymap.lynx --- w3m-0.1.11-pre/doc/keymap.lynx Tue Jan 4 14:46:50 2000 +++ w3m-0.1.11-pre-kokb18/doc/keymap.lynx Tue Oct 24 00:08:19 2000 @@ -11,10 +11,10 @@ # Left : LEFT, ^[[D keymap C-@ MARK -keymap C-a LINE_BEGIN -keymap C-b BACK -keymap C-e LINE_END -keymap C-f GOTO_LINK +keymap C-a BEGIN +keymap C-b PREV_PAGE +keymap C-e END +keymap C-f NEXT_PAGE keymap C-h HISTORY keymap TAB NEXT_LINK keymap C-j GOTO_LINK @@ -59,6 +59,7 @@ keymap U GOTO keymap V LOAD keymap Z CENTER_H +keymap \\ SOURCE keymap \^ LINE_BEGIN keymap a ADD_BOOKMARK keymap b PREV_PAGE diff -urN -x CVS -x config.h -x config.param -x XXMakefile -x gc w3m-0.1.11-pre/doc/w3m.1 w3m-0.1.11-pre-kokb18/doc/w3m.1 --- w3m-0.1.11-pre/doc/w3m.1 Tue Jan 4 14:46:50 2000 +++ w3m-0.1.11-pre-kokb18/doc/w3m.1 Wed Oct 18 14:43:32 2000 @@ -83,6 +83,10 @@ .B -cols width specify column width (used with -dump) .TP +.B -ppc count +specify the number of pixels per character (default 8.0) +Larger values will make tables narrower. +.TP .B -dump_source dump page source into stdout .TP diff -urN -x CVS -x config.h -x config.param -x XXMakefile -x gc w3m-0.1.11-pre/doc-jp/HISTORY.kokb w3m-0.1.11-pre-kokb18/doc-jp/HISTORY.kokb --- w3m-0.1.11-pre/doc-jp/HISTORY.kokb Tue Jan 4 14:46:51 2000 +++ w3m-0.1.11-pre-kokb18/doc-jp/HISTORY.kokb Mon Oct 30 04:55:35 2000 @@ -1,32 +1,575 @@ +2000/10/29 - w3m の非公式パッチ更新記録 +From: Okabe Katsuya + ・LESSOPEN を使用するかどうかを Option Setting Panel で選択するよ + うにした (default は使用しない). + ・圧縮ファイル伸張後のテンポラリファイルを作るときの拡張子を, 元の + ファイルの拡張子 (.Z, .gz, .bz2) を除いた部分から決めるように変 + 更した. + ・gunzip_stream, save2tmp, visible_length の高速化. - (1999/08/11) 岡部克也 - okabe@fphy.hep.okayama-u.ac.jp - okabe@okaibm.hep.okayama-u.ac.jp -99/8/11 - - table が入れ子になっているとき, インデントされない問題を修正. - 同様に, caption がインデントされない問題を修正. +2000/10/28 -99/8/10 - - table 中の table が TABLE_EXPAND マクロに関係なく伸長されていたので, - TABLE_EXPAND マクロが定義されているときのみ伸長するようにした. +From: Okabe Katsuya + コンパイル時, ファイル名補完中のキー割当てを Emacs-like にできるよ + うにした. + (config.h で #define EMACS_LIKE_LINEEDIT にします) + また, 補完候補一覧時にバックスクロールを可能にした. - の width 属性で与えた幅と, width 属性がないときの幅の既定値を - 区別するようにした. 具体的には table 構造体の total_width 変数に - width 属性で与えた幅をセットするようにした. +From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) +Subject: [w3m-dev 01284] Re: improvement of filename input + ・URL入力時(U)では file:/ から始める場合のみファイル名補完を有効 + にしました。 + (URL 解析の仕様上これ以外では確実に local-file にならないため) + ・岡部さんのアドバイスにより CTRL-D での一覧表示は、 + 文字列の最後にカーソルがある場合に限定しました。 - width 属性がないときの重みを小さくした. +From: Kiyokazu SUTO +Subject: [w3m-dev 01280] Stop to prepend rc_dir to full path. + rcFile()を、フルパスにはrc_dirを付けないようするパッチです。 - もし float.h が存在すれば, matrix.c で float.h をインクルードするよう - にした. float.h の有無は configure でチェックするようにした. - table のレンダリングに最小二乗法を使うかどうかを configure で決めるよ - うにした. +2000/10/27 -

で空行の入る位置がおかしくなることがある問題の修正. +From: Tsutomu Okada (岡田 勉) +Subject: [w3m-dev 01269] Re: SCM_NNTP + [w3m-dev 1258] で坂本さんが指摘されていたところを修正してみました。パッ + チを添付します。私の環境では、この修正をしないと news: が + 動きませんでした。 +Subject: [w3m-dev 01273] Re: SCM_NNTP + url.c を修正して、#undef USE_GOPHER や #undef USE_NNTP のときには + gopther: や news: が動作しないようにしました。また、nntp: も動作しない + ようにしました。 + 加えて、GOTO URL で mailto: を入力したときに動作するように変更してみま + した。ついでに、コメントの間違いも直してあります。 - table 中の

 タグの中にあるタブを正しく解釈するようにした.
\ No newline at end of file
+From: Hironori Sakamoto 
+Subject: [w3m-dev 01258] improvement of filename input
+  最下行でファイル名を入力する時の強化を行いました。
+  ・Ctrl-D で補完候補の一覧を表示するようにしました。
+    画面に入り切らない時は連続した Ctrl-D で次の候補の一覧が出ます。
+    # 文字の削除は BackSpace か Del を使ってください。
+  ・URL 入力時(GOTO)で文字列が file:/, file:/// や file://localhost/ から
+    始まっている場合は、ファイル名を補完する様にしました。(下津さんからの要望)
+    # http: や ftp: は何もしません。ヒストリからの補完でも面白いけど。
+  ・URL をヒストリに保存する場合に password 部分は削除する様に修正しました。
+  なお、以前からある undocument な機能ですが、検索文字の入力などの場合でも、
+  Ctrl-X で TAB(Ctrl-I) での ファイル名補完が有効になります。
+
+From: Fumitoshi UKAI 
+Subject: [w3m-dev 01277] Accept-Encoding: gzip (Re:  some wishlists)
+  Accept-Encoding: gzip, compress
+  をリクエストヘッダに付けるようにした.
+Subject: [w3m-dev 01275] Re: squeeze multiple blank lines option ( http://bugs.debian.org/75527 )
+  とりあえず #ifdef DEBIAN で
+  squeeze multiple blank line は -s
+  端末文字コード指定の -s/-e/-j はナシ。かわりに -o kanjicode={S,E,J} を使う
+  ことにしておきます。
+Subject: [w3m-dev 01274] Re: SCM_NNTP
+  せっかくなので nntp: をサポートしてみました
+Subject: [w3m-dev 01276] URL in w3m -v
+  LANG=EN (というか undef JP_CHARSET)の時の visual mode で使われてる URL
+  が正しくないようです。
+
+
+2000/10/26
+
+From: Okabe Katsuya 
+  mailcap と mime.type ファイルの場所を Option Setting Panel で設定
+  可能にした.
+
+
+2000/10/25
+
+From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto)
+Subject: [w3m-dev 01247] Re: buffer selection menu
+  メニュー関連の patch および仕様変更 [w3m-dev 01227], [w3m-dev 01228],
+  [w3m-dev 01229], [w3m-dev 01237], [w3m-dev 01238] をまとめました。
+  ・Select メニューでの消去(キーは 'D')
+  ・Select メニューでのコメントの表示
+    ┃--- SPC for select / D for delete buffer ---┃
+    ┗━━━━━━━━━━━━━━━━━━━━━━┛
+  ・メニューからのコマンド実行を許可。
+
+
+2000/10/24
+
+From: Okabe Katsuya 
+  ・ クッキーの設定で, `.' は全てのドメインを表わすようにした.
+  ・ bm2menu.pl を CVS に add するのを忘れていたので, 追加.
+
+From: Tsutomu Okada (岡田 勉) 
+Subject: [w3m-dev 01240] Re: w3m-0.1.11-pre-kokb17 patch
+  とりあえずコンパイル時に incompatible pointer type といわれたとこ
+  ろの修正パッチを添付します。
+
+
+2000/10/23
+
+From: Okabe Katsuya 
+  ・ オプション設定パネルで, クッキーを受け付ける (受け付けない) ド
+     メインを設定できるようにした.
+     また, クッキー設定を一つのセクションとして分離した.
+  ・ frame の reload の際, プロクシのキャッシュが更新されていなかっ
+     た問題への対処.
+
+From: Hironori Sakamoto 
+Subject: [w3m-dev 01211] Re: a small change to linein.c
+Subject: [w3m-dev 01214] Re: a small change to linein.c
+  長い文字列を編集する際, 全ての文字列が表示されない事がある問題への
+  対処.
+
+From: Fumitoshi UKAI 
+Subject: [w3m-dev 01216] error message for invalid keymap
+From: Hironori Sakamoto 
+Subject: [w3m-dev 01220] Re: error message for invalid keymap
+  keymap に問題があったときに, エラーメッセージを出すように修正.
+
+From: Fumitoshi UKAI 
+Subject: [w3m-dev 01217] keymap.lynx example could be better.
+  keymap.lynx の更新.
+
+
+2000/10/20
+From: Okabe Katsuya 
+  cookie の取り扱いに関して幾つかの修正を加えた.
+  ・ version 1 cookie に対する扱いを 
+       http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-state-man-mec-12.txt
+     に準拠するように変更.
+     Netscape-style cookie のリクエストヘッダに, Cookie2 を追加.
+  ・ [w3m-dev-en 00190] patch に対する幾つかの変更.
+  
+
+2000/10/19
+
+From: "Ambrose Li [EDP]" 
+Subject: [w3m-dev-en 00136] version 0 cookies and some odds and ends
+Subject: [w3m-dev-en 00191] sorry, the last patch was not made properly
+Subject: [w3m-dev-en 00190] w3m-0.1.10 patch (mostly version 0 cookie handling)
+  I've hacked up a big mess (patch) against w3m-0.1.9 primarily
+  involving version 0 cookies. To my dismay, it seems that most
+  servers out there still want version 0 cookies and version 0
+  cookie handling behaviour, and w3m's cookie handling is too
+  strict for version 0, causing some sites (notably my.yahoo.co.jp)
+  not to work.
+
+2000/10/18
+
+From: Okabe Katsuya 
+  文字幅を設定可能にした.
+
+From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto)
+Subject: [w3m-dev 01208] '#', '?' in ftp:/....
+  ftp:/ でファイル名に '#' が入っているとアクセスできない問題への対
+  処.
+
+From: Kiyokazu SUTO 
+Subject: [w3m-dev 01209] http_response_code and ``Location:'' header
+  「Location:」ヘッダがあると、無条件にそれに従うようになってますが、
+  http_response_codeを見て301〜303の時だけ従うようにしてみました。
+
+
+2000/10/17
+
+From: Okabe Katsuya 
+  local CGI で, ゾンビができる問題への対処.
+
+
+2000/10/16
+
+From: Okabe Katsuya 
+  table 中で