aboutsummaryrefslogtreecommitdiffstats
path: root/debian/patches/020_debian.patch
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--debian/patches/020_debian.patch336
1 files changed, 257 insertions, 79 deletions
diff --git a/debian/patches/020_debian.patch b/debian/patches/020_debian.patch
index 913ae4a..feac350 100644
--- a/debian/patches/020_debian.patch
+++ b/debian/patches/020_debian.patch
@@ -60,10 +60,38 @@ index 8f443c1..5fb6581 100755
$input = "w3m-control: GOTO_LINK";
}
diff --git a/ChangeLog b/ChangeLog
-index 88358ef..ba22b4c 100644
+index 88358ef..3556b40 100644
--- a/ChangeLog
+++ b/ChangeLog
-@@ -1,3 +1,785 @@
+@@ -1,3 +1,814 @@
++2015-10-10 Tatsuya Kinoshita <tats@debian.org>
++
++ * cookie.c: Remove incomplete special_domain tests.
++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=385702
++
++2015-10-04 Gaetan Bisson <bisson@archlinux.org>
++
++ * scripts/w3mhelp.cgi.in: Do not use defined(%hash).
++ Origin: https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/w3m&id=d9e0a4f0b461c9e2177cd9e64a10581386650503
++ Bug-Arch: https://bugs.archlinux.org/task/45608
++
++2015-09-06 Tatsuya Kinoshita <tats@debian.org>
++
++ * file.c: Do not use C99-style comments.
++
++2015-09-06 David Crosby <dave@dafyddcrosby.com>
++
++ * file.c: Mitigate issue #16 found by @kcwu.
++ * table.c: Fix stack overflow found by @kcwu.
++ Origin: https://github.com/dafyddcrosby/sw3m
++ Bug-sw3m: https://github.com/dafyddcrosby/sw3m/issues/16
++
++2015-08-21 Tatsuya Kinoshita <tats@debian.org>
++
++ * doc-jp/keymap.lynx, doc/keymap.lynx: Fix unknown key.
++ Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/265144
++ Bug: https://sourceforge.net/p/w3m/bugs/48/
++
+2015-08-11 David Crosby <dave@dafyddcrosby.com>
+
+ Fix resource leaks, dead assignments, divide-by-zero, and so on.
@@ -171,6 +199,7 @@ index 88358ef..ba22b4c 100644
+ * main.c: Fix that SGR style mouse handler has off-by-one problem.
+ cf. https://github.com/tats/w3m/issues/5
+ Origin: https://gist.github.com/ttdoda/30c189a63d483beeb207
++ Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/1390768
+ Bug: https://sourceforge.net/p/w3m/patches/65/
+
+2015-07-31 yshl <yshl@takechiyo.net>
@@ -4273,7 +4302,7 @@ index 4c1bc06..c721825 100755
ac_config_files="$ac_config_files Makefile posubst po/Makefile.in scripts/Makefile scripts/dirlist.cgi scripts/w3mhelp.cgi scripts/w3mmail.cgi scripts/xface2xpm scripts/multipart/Makefile scripts/multipart/multipart.cgi scripts/w3mman/Makefile scripts/w3mman/w3mman scripts/w3mman/w3mman.1 scripts/w3mman/w3mman2html.cgi libwc/Makefile w3mimg/Makefile w3mimg/fb/Makefile w3mimg/x11/Makefile w3mimg/win/Makefile w3mhelp-w3m_en.html w3mhelp-w3m_ja.html w3mhelp-lynx_en.html w3mhelp-lynx_ja.html"
diff --git a/cookie.c b/cookie.c
-index 8020f6d..8a6f447 100644
+index 8020f6d..705e277 100644
--- a/cookie.c
+++ b/cookie.c
@@ -22,10 +22,10 @@ static int is_saved = 1;
@@ -4298,7 +4327,7 @@ index 8020f6d..8a6f447 100644
return first;
}
-@@ -247,7 +248,7 @@ find_cookie(ParsedURL *pu)
+@@ -247,16 +248,12 @@ find_cookie(ParsedURL *pu)
Strcat(tmp, Sprintf("; $Domain=\"%s\"", p1->domain->ptr));
if (p1->portl)
Strcat(tmp,
@@ -4307,7 +4336,16 @@ index 8020f6d..8a6f447 100644
}
}
return tmp;
-@@ -324,7 +325,7 @@ add_cookie(ParsedURL *pu, Str name, Str value,
+ }
+
+-char *special_domain[] = {
+- ".com", ".edu", ".gov", ".mil", ".net", ".org", ".int", NULL
+-};
+-
+ int
+ check_avoid_wrong_number_of_dots_domain( Str domain )
+ {
+@@ -324,7 +321,7 @@ add_cookie(ParsedURL *pu, Str name, Str value,
if (version == 0) {
/* [NETSCAPE] rule */
@@ -4316,7 +4354,27 @@ index 8020f6d..8a6f447 100644
domain->ptr + domain->length,
3);
if (n < 2) {
-@@ -463,7 +464,7 @@ save_cookies(void)
+@@ -332,19 +329,6 @@ add_cookie(ParsedURL *pu, Str name, Str value,
+ 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 && ! check_avoid_wrong_number_of_dots_domain(domain)) {
+- COOKIE_ERROR(COO_ESPECIAL);
+- }
+- }
+ }
+ else {
+ /* [DRAFT 12] s. 4.3.2 case 2 */
+@@ -463,7 +447,7 @@ save_cookies(void)
continue;
fprintf(fp, "%s\t%s\t%s\t%ld\t%s\t%s\t%d\t%d\t%s\t%s\t%s\n",
parsedURL2Str(&p->url)->ptr,
@@ -4325,7 +4383,7 @@ index 8020f6d..8a6f447 100644
p->domain->ptr, p->path->ptr, p->flag,
p->version, str2charp(p->comment),
(p->portl) ? portlist2str(p->portl)->ptr : "",
-@@ -517,36 +518,36 @@ load_cookies(void)
+@@ -517,36 +501,36 @@ load_cookies(void)
cookie->commentURL = NULL;
parseURL(readcol(&str)->ptr, &cookie->url, NULL);
if (!*str)
@@ -4607,6 +4665,19 @@ index 0000000..90066f7
+http://www.example.com/ABC/
+
+ただし、ホスト名の部分は常に小文字に変換してから比較します。
+diff --git a/doc-jp/keymap.lynx b/doc-jp/keymap.lynx
+index 869c716..e4085c8 100644
+--- a/doc-jp/keymap.lynx
++++ b/doc-jp/keymap.lynx
+@@ -46,7 +46,7 @@ keymap - PREV_PAGE
+ keymap . RIGHT
+ keymap / SEARCH
+ keymap : MARK_URL
+-keymap ; MARK_WORD
++keymap ";" MARK_WORD
+ keymap < SHIFT_LEFT
+ keymap = INFO
+ keymap > SHIFT_RIGHT
diff --git a/doc-jp/w3m.1 b/doc-jp/w3m.1
index 89aacb6..099a803 100644
--- a/doc-jp/w3m.1
@@ -4897,6 +4968,19 @@ index 0000000..588afc4
+ environmental variable.
+
+ $ W3M_IMG2SIXEL="img2sixel -d atkinson" w3m -sixel http://...
+diff --git a/doc/keymap.lynx b/doc/keymap.lynx
+index 869c716..e4085c8 100644
+--- a/doc/keymap.lynx
++++ b/doc/keymap.lynx
+@@ -46,7 +46,7 @@ keymap - PREV_PAGE
+ keymap . RIGHT
+ keymap / SEARCH
+ keymap : MARK_URL
+-keymap ; MARK_WORD
++keymap ";" MARK_WORD
+ keymap < SHIFT_LEFT
+ keymap = INFO
+ keymap > SHIFT_RIGHT
diff --git a/doc/w3m.1 b/doc/w3m.1
index 8f071c6..0762f51 100644
--- a/doc/w3m.1
@@ -5407,10 +5491,19 @@ index 8fe1215..dcc6edd 100644
QuietMessage = TRUE;
fmInitialized = FALSE;
diff --git a/file.c b/file.c
-index 567d41e..4e8e4d3 100644
+index 567d41e..9d1dc9a 100644
--- a/file.c
+++ b/file.c
-@@ -47,11 +47,11 @@ static JMP_BUF AbortLoading;
+@@ -26,6 +26,8 @@
+ #define min(a,b) ((a) > (b) ? (b) : (a))
+ #endif /* not min */
+
++#define MAX_INPUT_SIZE 80 /* TODO - max should be screen line length */
++
+ static int frame_source = 0;
+
+ static char *guess_filename(char *file);
+@@ -47,11 +49,11 @@ static JMP_BUF AbortLoading;
static struct table *tables[MAX_TABLE];
static struct table_mode table_mode[MAX_TABLE];
@@ -5425,7 +5518,7 @@ index 567d41e..4e8e4d3 100644
#endif
static Str cur_title;
-@@ -215,7 +215,6 @@ currentLn(Buffer *buf)
+@@ -215,7 +217,6 @@ currentLn(Buffer *buf)
static Buffer *
loadSomething(URLFile *f,
@@ -5433,7 +5526,7 @@ index 567d41e..4e8e4d3 100644
Buffer *(*loadproc) (URLFile *, Buffer *), Buffer *defaultbuf)
{
Buffer *buf;
-@@ -223,17 +222,23 @@ loadSomething(URLFile *f,
+@@ -223,17 +224,23 @@ loadSomething(URLFile *f,
if ((buf = loadproc(f, defaultbuf)) == NULL)
return NULL;
@@ -5462,7 +5555,7 @@ index 567d41e..4e8e4d3 100644
return buf;
}
-@@ -484,28 +489,6 @@ convertLine0(URLFile *uf, Str line, int mode)
+@@ -484,28 +491,6 @@ convertLine0(URLFile *uf, Str line, int mode)
return line;
}
@@ -5491,7 +5584,7 @@ index 567d41e..4e8e4d3 100644
int
matchattr(char *p, char *attr, int len, Str *value)
{
-@@ -694,6 +677,7 @@ readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu)
+@@ -694,6 +679,7 @@ readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu)
#endif
init_stream(&f, SCM_LOCAL, newStrStream(src));
loadHTMLstream(&f, newBuf, NULL, TRUE);
@@ -5499,7 +5592,7 @@ index 567d41e..4e8e4d3 100644
for (l = newBuf->lastLine; l && l->real_linenumber;
l = l->prev)
l->real_linenumber = 0;
-@@ -1244,6 +1228,7 @@ AuthDigestCred(struct http_auth *ha, Str uname, Str pw, ParsedURL *pu,
+@@ -1244,6 +1230,7 @@ AuthDigestCred(struct http_auth *ha, Str uname, Str pw, ParsedURL *pu,
unsigned char md5[MD5_DIGEST_LENGTH + 1];
Str uri = HTTPrequestURI(pu, hr);
char nc[] = "00000001";
@@ -5507,7 +5600,7 @@ index 567d41e..4e8e4d3 100644
Str algorithm = qstr_unquote(get_auth_param(ha->param, "algorithm"));
Str nonce = qstr_unquote(get_auth_param(ha->param, "nonce"));
-@@ -1326,10 +1311,11 @@ AuthDigestCred(struct http_auth *ha, Str uname, Str pw, ParsedURL *pu,
+@@ -1326,10 +1313,11 @@ AuthDigestCred(struct http_auth *ha, Str uname, Str pw, ParsedURL *pu,
/* A2 = Method ":" digest-uri-value ":" H(entity-body) */
if (request && request->body) {
if (request->method == FORM_METHOD_POST && request->enctype == FORM_ENCTYPE_MULTIPART) {
@@ -5520,7 +5613,7 @@ index 567d41e..4e8e4d3 100644
MD5(ebody->ptr, strlen(ebody->ptr), md5);
}
else {
-@@ -1697,13 +1683,15 @@ getLinkNumberStr(int correction)
+@@ -1697,13 +1685,15 @@ getLinkNumberStr(int correction)
/*
* loadGeneralFile: load file to buffer
*/
@@ -5537,7 +5630,7 @@ index 567d41e..4e8e4d3 100644
char *volatile tpath;
char *volatile t = "text/plain", *p, *volatile real_type = NULL;
Buffer *volatile t_buf = NULL;
-@@ -1730,7 +1718,22 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
+@@ -1730,7 +1720,22 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
add_auth_cookie_flag = 0;
checkRedirection(NULL);
@@ -5560,7 +5653,7 @@ index 567d41e..4e8e4d3 100644
TRAP_OFF;
url_option.referer = referer;
url_option.flag = flag;
-@@ -1863,7 +1866,7 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
+@@ -1863,7 +1868,7 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
/* 302: Found */
/* 303: See Other */
/* 307: Temporary Redirect (HTTP/1.1) */
@@ -5569,7 +5662,7 @@ index 567d41e..4e8e4d3 100644
request = NULL;
UFclose(&f);
current = New(ParsedURL);
-@@ -2022,7 +2025,7 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
+@@ -2022,7 +2027,7 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
if (f.is_cgi && (p = checkHeader(t_buf, "Location:")) != NULL &&
checkRedirection(&pu)) {
/* document moved */
@@ -5578,7 +5671,7 @@ index 567d41e..4e8e4d3 100644
request = NULL;
UFclose(&f);
add_auth_cookie_flag = 0;
-@@ -2123,10 +2126,6 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
+@@ -2123,10 +2128,6 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
if (real_type == NULL)
real_type = t;
proc = loadBuffer;
@@ -5589,7 +5682,7 @@ index 567d41e..4e8e4d3 100644
current_content_length = 0;
if ((p = checkHeader(t_buf, "Content-Length:")) != NULL)
-@@ -2197,18 +2196,8 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
+@@ -2197,18 +2198,8 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
#endif
else if (w3m_backend) ;
else if (!(w3m_dump & ~DUMP_FRAME) || is_dump_text_type(t)) {
@@ -5610,7 +5703,7 @@ index 567d41e..4e8e4d3 100644
}
else {
TRAP_OFF;
-@@ -2232,36 +2221,30 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
+@@ -2232,36 +2223,30 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
else if (w3m_dump & DUMP_FRAME)
return NULL;
@@ -5661,7 +5754,7 @@ index 567d41e..4e8e4d3 100644
if (pu.label) {
if (proc == loadHTMLBuffer) {
Anchor *a;
-@@ -2287,10 +2270,11 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
+@@ -2287,10 +2272,11 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
if (header_string)
header_string = NULL;
#ifdef USE_NNTP
@@ -5675,7 +5768,7 @@ index 567d41e..4e8e4d3 100644
TRAP_OFF;
return b;
}
-@@ -2469,6 +2453,7 @@ set_breakpoint(struct readbuffer *obuf, int tag_length)
+@@ -2469,6 +2455,7 @@ set_breakpoint(struct readbuffer *obuf, int tag_length)
bcopy((void *)&obuf->anchor, (void *)&obuf->bp.anchor,
sizeof(obuf->anchor));
obuf->bp.img_alt = obuf->img_alt;
@@ -5683,7 +5776,7 @@ index 567d41e..4e8e4d3 100644
obuf->bp.in_bold = obuf->in_bold;
obuf->bp.in_italic = obuf->in_italic;
obuf->bp.in_under = obuf->in_under;
-@@ -2486,6 +2471,7 @@ back_to_breakpoint(struct readbuffer *obuf)
+@@ -2486,6 +2473,7 @@ back_to_breakpoint(struct readbuffer *obuf)
bcopy((void *)&obuf->bp.anchor, (void *)&obuf->anchor,
sizeof(obuf->anchor));
obuf->img_alt = obuf->bp.img_alt;
@@ -5691,7 +5784,7 @@ index 567d41e..4e8e4d3 100644
obuf->in_bold = obuf->bp.in_bold;
obuf->in_italic = obuf->bp.in_italic;
obuf->in_under = obuf->bp.in_under;
-@@ -2729,7 +2715,7 @@ flushline(struct html_feed_environ *h_env, struct readbuffer *obuf, int indent,
+@@ -2729,7 +2717,7 @@ flushline(struct html_feed_environ *h_env, struct readbuffer *obuf, int indent,
Str line = obuf->line, pass = NULL;
char *hidden_anchor = NULL, *hidden_img = NULL, *hidden_bold = NULL,
*hidden_under = NULL, *hidden_italic = NULL, *hidden_strike = NULL,
@@ -5700,7 +5793,7 @@ index 567d41e..4e8e4d3 100644
#ifdef DEBUG
if (w3m_debug) {
-@@ -2761,6 +2747,12 @@ flushline(struct html_feed_environ *h_env, struct readbuffer *obuf, int indent,
+@@ -2761,6 +2749,12 @@ flushline(struct html_feed_environ *h_env, struct readbuffer *obuf, int indent,
hidden = hidden_img;
}
}
@@ -5713,7 +5806,7 @@ index 567d41e..4e8e4d3 100644
if (obuf->in_bold) {
if ((hidden_bold = has_hidden_link(obuf, HTML_B)) != NULL) {
if (!hidden || hidden_bold < hidden)
-@@ -2812,6 +2804,8 @@ flushline(struct html_feed_environ *h_env, struct readbuffer *obuf, int indent,
+@@ -2812,6 +2806,8 @@ flushline(struct html_feed_environ *h_env, struct readbuffer *obuf, int indent,
Strcat_charp(line, "</a>");
if (obuf->img_alt && !hidden_img)
Strcat_charp(line, "</img_alt>");
@@ -5722,7 +5815,7 @@ index 567d41e..4e8e4d3 100644
if (obuf->in_bold && !hidden_bold)
Strcat_charp(line, "</b>");
if (obuf->in_italic && !hidden_italic)
-@@ -3022,6 +3016,18 @@ flushline(struct html_feed_environ *h_env, struct readbuffer *obuf, int indent,
+@@ -3022,6 +3018,18 @@ flushline(struct html_feed_environ *h_env, struct readbuffer *obuf, int indent,
Strcat_charp(tmp, "\">");
push_tag(obuf, tmp->ptr, HTML_IMG_ALT);
}
@@ -5741,7 +5834,7 @@ index 567d41e..4e8e4d3 100644
if (!hidden_bold && obuf->in_bold)
push_tag(obuf, "<B>", HTML_B);
if (!hidden_italic && obuf->in_italic)
-@@ -3228,7 +3234,7 @@ process_img(struct parsed_tag *tag, int width)
+@@ -3228,7 +3236,7 @@ process_img(struct parsed_tag *tag, int width)
if (!parsedtag_get_value(tag, ATTR_SRC, &p))
return tmp;
@@ -5750,7 +5843,7 @@ index 567d41e..4e8e4d3 100644
q = NULL;
parsedtag_get_value(tag, ATTR_ALT, &q);
if (!pseudoInlines && (q == NULL || (*q == '\0' && ignore_null_img_alt)))
-@@ -3322,12 +3328,7 @@ process_img(struct parsed_tag *tag, int width)
+@@ -3322,12 +3330,7 @@ process_img(struct parsed_tag *tag, int width)
Image image;
ParsedURL u;
@@ -5763,7 +5856,7 @@ index 567d41e..4e8e4d3 100644
image.url = parsedURL2Str(&u)->ptr;
if (!uncompressed_file_type(u.file, &image.ext))
image.ext = filename_extension(u.file, TRUE);
-@@ -3346,8 +3347,14 @@ process_img(struct parsed_tag *tag, int width)
+@@ -3346,8 +3349,14 @@ process_img(struct parsed_tag *tag, int width)
if (i < 0)
i = pixel_per_line;
}
@@ -5780,7 +5873,7 @@ index 567d41e..4e8e4d3 100644
Strcat(tmp,
Sprintf("<pre_int><img_alt hseq=\"%d\" src=\"", cur_iseq++));
pre_int = TRUE;
-@@ -3378,19 +3385,21 @@ process_img(struct parsed_tag *tag, int width)
+@@ -3378,19 +3387,21 @@ process_img(struct parsed_tag *tag, int width)
if (i0 >= 0)
Strcat(tmp, Sprintf(" height=%d", i0));
switch (align) {
@@ -5810,7 +5903,7 @@ index 567d41e..4e8e4d3 100644
case ALIGN_BOTTOM:
top = ni - 1;
bottom = 0;
-@@ -3408,7 +3417,12 @@ process_img(struct parsed_tag *tag, int width)
+@@ -3408,7 +3419,12 @@ process_img(struct parsed_tag *tag, int width)
}
break;
}
@@ -5824,7 +5917,61 @@ index 567d41e..4e8e4d3 100644
if (xoffset)
Strcat(tmp, Sprintf(" xoffset=%d", xoffset));
if (yoffset)
-@@ -3732,6 +3746,63 @@ process_input(struct parsed_tag *tag)
+@@ -3548,7 +3564,7 @@ process_anchor(struct parsed_tag *tag, char *tagbuf)
+ Str
+ process_input(struct parsed_tag *tag)
+ {
+- int i, w, v, x, y, z, iw, ih;
++ int i = 20, v, x, y, z, iw, ih, size = 20;
+ char *q, *p, *r, *p2, *s;
+ Str tmp = NULL;
+ char *qq = "";
+@@ -3567,9 +3583,9 @@ process_input(struct parsed_tag *tag)
+ parsedtag_get_value(tag, ATTR_VALUE, &q);
+ r = "";
+ parsedtag_get_value(tag, ATTR_NAME, &r);
+- w = 20;
+- parsedtag_get_value(tag, ATTR_SIZE, &w);
+- i = 20;
++ parsedtag_get_value(tag, ATTR_SIZE, &size);
++ if (size > MAX_INPUT_SIZE)
++ size = MAX_INPUT_SIZE;
+ parsedtag_get_value(tag, ATTR_MAXLENGTH, &i);
+ p2 = NULL;
+ parsedtag_get_value(tag, ATTR_ALT, &p2);
+@@ -3625,7 +3641,7 @@ process_input(struct parsed_tag *tag)
+ }
+ Strcat(tmp, Sprintf("<input_alt hseq=\"%d\" fid=\"%d\" type=%s "
+ "name=\"%s\" width=%d maxlength=%d value=\"%s\"",
+- cur_hseq++, cur_form_id, p, html_quote(r), w, i, qq));
++ cur_hseq++, cur_form_id, p, html_quote(r), size, i, qq));
+ if (x)
+ Strcat_charp(tmp, " checked");
+ if (y)
+@@ -3670,18 +3686,18 @@ process_input(struct parsed_tag *tag)
+ case FORM_INPUT_PASSWORD:
+ i = 0;
+ if (q) {
+- for (; i < qlen && i < w; i++)
++ for (; i < qlen && i < size; i++)
+ Strcat_char(tmp, '*');
+ }
+- for (; i < w; i++)
++ for (; i < size; i++)
+ Strcat_char(tmp, ' ');
+ break;
+ case FORM_INPUT_TEXT:
+ case FORM_INPUT_FILE:
+ if (q)
+- Strcat(tmp, textfieldrep(Strnew_charp(q), w));
++ Strcat(tmp, textfieldrep(Strnew_charp(q), size));
+ else {
+- for (i = 0; i < w; i++)
++ for (i = 0; i < size; i++)
+ Strcat_char(tmp, ' ');
+ }
+ break;
+@@ -3732,6 +3748,63 @@ process_input(struct parsed_tag *tag)
}
Str
@@ -5868,7 +6015,7 @@ index 567d41e..4e8e4d3 100644
+ qlen = strlen(q);
+ }
+
-+ // Strcat_charp(tmp, "<pre_int>");
++ /* Strcat_charp(tmp, "<pre_int>"); */
+ Strcat(tmp, Sprintf("<input_alt hseq=\"%d\" fid=\"%d\" type=%s "
+ "name=\"%s\" value=\"%s\">",
+ cur_hseq++, cur_form_id, p, html_quote(r), qq));
@@ -5880,7 +6027,7 @@ index 567d41e..4e8e4d3 100644
+{
+ Str tmp = Strnew();
+ Strcat_charp(tmp, "</input_alt>");
-+ // Strcat_charp(tmp, "</pre_int>");
++ /* Strcat_charp(tmp, "</pre_int>"); */
+ return tmp;
+}
+
@@ -5888,7 +6035,7 @@ index 567d41e..4e8e4d3 100644
process_select(struct parsed_tag *tag)
{
Str tmp = NULL;
-@@ -4084,6 +4155,7 @@ process_form_int(struct parsed_tag *tag, int fid)
+@@ -4084,6 +4157,7 @@ process_form_int(struct parsed_tag *tag, int fid)
parsedtag_get_value(tag, ATTR_METHOD, &p);
q = "!CURRENT_URL!";
parsedtag_get_value(tag, ATTR_ACTION, &q);
@@ -5896,7 +6043,7 @@ index 567d41e..4e8e4d3 100644
r = NULL;
#ifdef USE_M17N
if (parsedtag_get_value(tag, ATTR_ACCEPT_CHARSET, &r))
-@@ -4284,15 +4356,15 @@ getMetaRefreshParam(char *q, Str *refresh_uri)
+@@ -4284,15 +4358,15 @@ getMetaRefreshParam(char *q, Str *refresh_uri)
while (*q) {
if (!strncasecmp(q, "url=", 4)) {
q += 4;
@@ -5915,7 +6062,7 @@ index 567d41e..4e8e4d3 100644
s_tmp->length--;
s_tmp->ptr[s_tmp->length] = '\0';
}
-@@ -4861,7 +4933,35 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
+@@ -4861,7 +4935,35 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
if (i > obuf->bottom_margin)
obuf->bottom_margin = i;
}
@@ -5951,7 +6098,7 @@ index 567d41e..4e8e4d3 100644
case HTML_TABLE:
close_anchor(h_env, obuf);
obuf->table_level++;
-@@ -4884,6 +4984,8 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
+@@ -4884,6 +4986,8 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
else
w = BORDER_THIN;
}
@@ -5960,7 +6107,7 @@ index 567d41e..4e8e4d3 100644
if (parsedtag_get_value(tag, ATTR_WIDTH, &i)) {
if (obuf->table_level == 0)
width = REAL_WIDTH(i, h_env->limit - envs[h_env->envc].indent);
-@@ -4970,6 +5072,16 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
+@@ -4970,6 +5074,16 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
case HTML_INPUT:
close_anchor(h_env, obuf);
tmp = process_input(tag);
@@ -5977,7 +6124,7 @@ index 567d41e..4e8e4d3 100644
if (tmp)
HTMLlineproc1(tmp->ptr, h_env);
return 1;
-@@ -5067,11 +5179,10 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
+@@ -5067,11 +5181,10 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
}
return 1;
case HTML_BASE:
@@ -5991,7 +6138,7 @@ index 567d41e..4e8e4d3 100644
parseURL(p, cur_baseURL, NULL);
}
#endif
-@@ -5329,6 +5440,13 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5329,6 +5442,13 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
#ifdef MENU_SELECT
Anchor **a_select = NULL;
#endif
@@ -6005,7 +6152,7 @@ index 567d41e..4e8e4d3 100644
if (out_size == 0) {
out_size = LINELEN;
-@@ -5523,16 +5641,17 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5523,16 +5643,17 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
hseq = 0;
id = NULL;
if (parsedtag_get_value(tag, ATTR_NAME, &id)) {
@@ -6027,7 +6174,7 @@ index 567d41e..4e8e4d3 100644
parsedtag_get_value(tag, ATTR_TITLE, &s);
parsedtag_get_value(tag, ATTR_ACCESSKEY, &t);
parsedtag_get_value(tag, ATTR_HSEQ, &hseq);
-@@ -5618,7 +5737,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5618,7 +5739,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
ParsedURL u;
Image *image;
@@ -6036,7 +6183,7 @@ index 567d41e..4e8e4d3 100644
a_img->image = image = New(Image);
image->url = parsedURL2Str(&u)->ptr;
if (!uncompressed_file_type(u.file, &image->ext))
-@@ -5639,7 +5758,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5639,7 +5760,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
image->map = q;
image->ismap = ismap;
image->touch = 0;
@@ -6045,7 +6192,7 @@ index 567d41e..4e8e4d3 100644
IMG_FLAG_SKIP);
}
else if (iseq < 0) {
-@@ -5689,6 +5808,21 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5689,6 +5810,21 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
putHmarker(buf->hmarklist, currentLn(buf),
hpos, hseq - 1);
}
@@ -6067,7 +6214,7 @@ index 567d41e..4e8e4d3 100644
if (!form->target)
form->target = buf->baseTarget;
if (a_textarea &&
-@@ -5761,8 +5895,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5761,8 +5897,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
break;
if (parsedtag_get_value(tag, ATTR_HREF, &p)) {
MapArea *a;
@@ -6078,7 +6225,7 @@ index 567d41e..4e8e4d3 100644
t = NULL;
parsedtag_get_value(tag, ATTR_TARGET, &t);
q = "";
-@@ -5811,11 +5945,14 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5811,11 +5947,14 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
break;
case HTML_BASE:
if (parsedtag_get_value(tag, ATTR_HREF, &p)) {
@@ -6095,7 +6242,7 @@ index 567d41e..4e8e4d3 100644
}
if (parsedtag_get_value(tag, ATTR_TARGET, &p))
buf->baseTarget =
-@@ -5830,8 +5967,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5830,8 +5969,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
int refresh_interval = getMetaRefreshParam(q, &tmp);
#ifdef USE_ALARM
if (tmp) {
@@ -6106,7 +6253,7 @@ index 567d41e..4e8e4d3 100644
buf->event = setAlarmEvent(buf->event,
refresh_interval,
AL_IMPLICIT_ONCE,
-@@ -5844,8 +5981,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5844,8 +5983,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
FUNCNAME_reload, NULL);
#else
if (tmp && refresh_interval == 0) {
@@ -6117,7 +6264,7 @@ index 567d41e..4e8e4d3 100644
pushEvent(FUNCNAME_gorURL, p);
}
#endif
-@@ -5929,7 +6066,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5929,7 +6068,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
#ifdef ID_EXT
id = NULL;
if (parsedtag_get_value(tag, ATTR_ID, &id)) {
@@ -6126,7 +6273,7 @@ index 567d41e..4e8e4d3 100644
registerName(buf, id, currentLn(buf), pos);
}
if (renderFrameSet &&
-@@ -5982,7 +6119,8 @@ addLink(Buffer *buf, struct parsed_tag *tag)
+@@ -5982,7 +6121,8 @@ addLink(Buffer *buf, struct parsed_tag *tag)
parsedtag_get_value(tag, ATTR_HREF, &href);
if (href)
@@ -6136,7 +6283,7 @@ index 567d41e..4e8e4d3 100644
parsedtag_get_value(tag, ATTR_TITLE, &title);
parsedtag_get_value(tag, ATTR_TYPE, &ctype);
parsedtag_get_value(tag, ATTR_REL, &rel);
-@@ -6756,6 +6894,12 @@ init_henv(struct html_feed_environ *h_env, struct readbuffer *obuf,
+@@ -6756,6 +6896,12 @@ init_henv(struct html_feed_environ *h_env, struct readbuffer *obuf,
obuf->nobr_level = 0;
bzero((void *)&obuf->anchor, sizeof(obuf->anchor));
obuf->img_alt = 0;
@@ -6149,7 +6296,7 @@ index 567d41e..4e8e4d3 100644
obuf->in_bold = 0;
obuf->in_italic = 0;
obuf->in_under = 0;
-@@ -6791,6 +6935,15 @@ completeHTMLstream(struct html_feed_environ *h_env, struct readbuffer *obuf)
+@@ -6791,6 +6937,15 @@ completeHTMLstream(struct html_feed_environ *h_env, struct readbuffer *obuf)
push_tag(obuf, "</img_alt>", HTML_N_IMG_ALT);
obuf->img_alt = NULL;
}
@@ -6165,7 +6312,7 @@ index 567d41e..4e8e4d3 100644
if (obuf->in_bold) {
push_tag(obuf, "</b>", HTML_N_B);
obuf->in_bold = 0;
-@@ -6963,8 +7116,6 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
+@@ -6963,8 +7118,6 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
image_flag = IMG_FLAG_AUTO;
else
image_flag = IMG_FLAG_SKIP;
@@ -6174,7 +6321,7 @@ index 567d41e..4e8e4d3 100644
#endif
if (w3m_halfload) {
-@@ -6987,6 +7138,9 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
+@@ -6987,6 +7140,9 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
htmlenv1.f = stdout;
else
htmlenv1.buf = newTextLineList();
@@ -6184,7 +6331,7 @@ index 567d41e..4e8e4d3 100644
if (SETJMP(AbortLoading) != 0) {
HTMLlineproc1("<br>Transfer Interrupted!<br>", &htmlenv1);
-@@ -7048,18 +7202,23 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
+@@ -7048,18 +7204,23 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
}
#endif
lineBuf2 = convertLine(f, lineBuf2, HTML_MODE, &charset, doc_charset);
@@ -6210,7 +6357,7 @@ index 567d41e..4e8e4d3 100644
if (htmlenv1.title)
newBuf->buffername = htmlenv1.title;
if (w3m_halfdump) {
-@@ -7096,16 +7255,17 @@ loadHTMLString(Str page)
+@@ -7096,16 +7257,17 @@ loadHTMLString(Str page)
MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL;
Buffer *newBuf;
@@ -6230,7 +6377,7 @@ index 567d41e..4e8e4d3 100644
#ifdef USE_M17N
newBuf->document_charset = InnerCharset;
#endif
-@@ -7115,6 +7275,7 @@ loadHTMLString(Str page)
+@@ -7115,6 +7277,7 @@ loadHTMLString(Str page)
#endif
TRAP_OFF;
@@ -6238,7 +6385,7 @@ index 567d41e..4e8e4d3 100644
newBuf->topLine = newBuf->firstLine;
newBuf->lastLine = newBuf->currentLine;
newBuf->currentLine = newBuf->firstLine;
-@@ -7207,7 +7368,7 @@ loadGopherDir(URLFile *uf, ParsedURL *pu, wc_ces * charset)
+@@ -7207,7 +7370,7 @@ loadGopherDir(URLFile *uf, ParsedURL *pu, wc_ces * charset)
q = Strnew_m_charp("gopher://", host->ptr, ":", port->ptr,
"/", file->ptr, NULL)->ptr;
Strcat_m_charp(tmp, "<a href=\"",
@@ -6247,7 +6394,7 @@ index 567d41e..4e8e4d3 100644
"\">", p, html_quote(name->ptr + 1), "</a>\n", NULL);
}
-@@ -7243,7 +7404,6 @@ loadBuffer(URLFile *uf, Buffer *volatile newBuf)
+@@ -7243,7 +7406,6 @@ loadBuffer(URLFile *uf, Buffer *volatile newBuf)
if (newBuf == NULL)
newBuf = newBuffer(INIT_BUFFER_WIDTH);
@@ -6255,7 +6402,7 @@ index 567d41e..4e8e4d3 100644
if (SETJMP(AbortLoading) != 0) {
goto _end;
-@@ -7331,6 +7491,7 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
+@@ -7331,6 +7493,7 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
URLFile f;
MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL;
struct stat st;
@@ -6263,7 +6410,7 @@ index 567d41e..4e8e4d3 100644
loadImage(newBuf, IMG_FLAG_STOP);
image.url = uf->url;
-@@ -7338,20 +7499,18 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
+@@ -7338,20 +7501,18 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
image.width = -1;
image.height = -1;
image.cache = NULL;
@@ -6287,7 +6434,7 @@ index 567d41e..4e8e4d3 100644
TRAP_OFF;
cache->loaded = IMG_FLAG_LOADED;
-@@ -7371,6 +7530,7 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
+@@ -7371,6 +7532,7 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
init_stream(&f, SCM_LOCAL, newStrStream(tmp));
loadHTMLstream(&f, newBuf, src, TRUE);
@@ -6295,7 +6442,7 @@ index 567d41e..4e8e4d3 100644
if (src)
fclose(src);
-@@ -7580,8 +7740,11 @@ openGeneralPagerBuffer(InputStream stream)
+@@ -7580,8 +7742,11 @@ openGeneralPagerBuffer(InputStream stream)
#ifdef USE_M17N
content_charset = 0;
#endif
@@ -6308,7 +6455,7 @@ index 567d41e..4e8e4d3 100644
readHeader(&uf, t_buf, TRUE, NULL);
t = checkContentType(t_buf);
if (t == NULL)
-@@ -7609,14 +7772,13 @@ openGeneralPagerBuffer(InputStream stream)
+@@ -7609,14 +7774,13 @@ openGeneralPagerBuffer(InputStream stream)
#ifdef USE_IMAGE
else if (activeImage && displayImage && !useExtImageViewer &&
!(w3m_dump & ~DUMP_FRAME) && !strncasecmp(t, "image/", 6)) {
@@ -6325,7 +6472,7 @@ index 567d41e..4e8e4d3 100644
UFclose(&uf);
if (buf == NULL || buf == NO_BUFFER)
return buf;
-@@ -7629,8 +7791,6 @@ openGeneralPagerBuffer(InputStream stream)
+@@ -7629,8 +7793,6 @@ openGeneralPagerBuffer(InputStream stream)
}
}
buf->real_type = t;
@@ -6334,7 +6481,7 @@ index 567d41e..4e8e4d3 100644
return buf;
}
-@@ -7766,6 +7926,8 @@ save2tmp(URLFile uf, char *tmpf)
+@@ -7766,6 +7928,8 @@ save2tmp(URLFile uf, char *tmpf)
clen_t linelen = 0, trbyte = 0;
MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL;
static JMP_BUF env_bak;
@@ -6343,7 +6490,7 @@ index 567d41e..4e8e4d3 100644
ff = fopen(tmpf, "wb");
if (ff == NULL) {
-@@ -7802,30 +7964,29 @@ save2tmp(URLFile uf, char *tmpf)
+@@ -7802,30 +7966,29 @@ save2tmp(URLFile uf, char *tmpf)
else
#endif /* USE_NNTP */
{
@@ -6386,7 +6533,7 @@ index 567d41e..4e8e4d3 100644
{
Str tmpf, command;
struct mailcap *mcap;
-@@ -7834,7 +7995,7 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
+@@ -7834,7 +7997,7 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
char *header, *src = NULL, *ext = uf.ext;
if (!(mcap = searchExtViewer(type)))
@@ -6395,7 +6542,7 @@ index 567d41e..4e8e4d3 100644
if (mcap->nametemplate) {
tmpf = unquote_mailcap(mcap->nametemplate, NULL, "", NULL, NULL);
-@@ -7867,15 +8028,13 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
+@@ -7867,15 +8030,13 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
UFclose(&uf);
myExec(command->ptr);
}
@@ -6413,7 +6560,7 @@ index 567d41e..4e8e4d3 100644
}
}
if (mcap->flags & (MAILCAP_HTMLOUTPUT | MAILCAP_COPIOUSOUTPUT)) {
-@@ -7918,14 +8077,13 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
+@@ -7918,14 +8079,13 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
buf = NO_BUFFER;
}
if (buf && buf != NO_BUFFER) {
@@ -6432,7 +6579,7 @@ index 567d41e..4e8e4d3 100644
}
static int
-@@ -7935,7 +8093,8 @@ _MoveFile(char *path1, char *path2)
+@@ -7935,7 +8095,8 @@ _MoveFile(char *path1, char *path2)
FILE *f2;
int is_pipe;
clen_t linelen = 0, trbyte = 0;
@@ -6442,7 +6589,7 @@ index 567d41e..4e8e4d3 100644
f1 = openIS(path1);
if (f1 == NULL)
-@@ -7953,12 +8112,13 @@ _MoveFile(char *path1, char *path2)
+@@ -7953,12 +8114,13 @@ _MoveFile(char *path1, char *path2)
return -1;
}
current_content_length = 0;
@@ -6460,7 +6607,7 @@ index 567d41e..4e8e4d3 100644
ISclose(f1);
if (is_pipe)
pclose(f2);
-@@ -8317,21 +8477,23 @@ uncompress_stream(URLFile *uf, char **src)
+@@ -8317,21 +8479,23 @@ uncompress_stream(URLFile *uf, char **src)
}
if (pid2 == 0) {
/* child2 */
@@ -6489,7 +6636,7 @@ index 567d41e..4e8e4d3 100644
exit(0);
}
/* child1 */
-@@ -8378,7 +8540,7 @@ lessopen_stream(char *path)
+@@ -8378,7 +8542,7 @@ lessopen_stream(char *path)
}
c = getc(fp);
if (c == EOF) {
@@ -13139,6 +13286,19 @@ index 5bee4b2..5675d09 100644
#ifdef USE_M17N
if (*p & 0x80) {
+diff --git a/scripts/w3mhelp.cgi.in b/scripts/w3mhelp.cgi.in
+index b2fca8f..31c0049 100644
+--- a/scripts/w3mhelp.cgi.in
++++ b/scripts/w3mhelp.cgi.in
+@@ -48,7 +48,7 @@ if (defined($ENV{'QUERY_STRING'})) {
+ }
+ # print "tlang=$tlang\n";
+ eval {require "w3mhelp-funcdesc.$tlang.pl";};
+- if (defined(%funcdesc)) {
++ if (%funcdesc) {
+ $lang = $tlang;
+ }
+ }
diff --git a/scripts/w3mman/w3mman.1.in b/scripts/w3mman/w3mman.1.in
index 1c0361d..1b1d990 100644
--- a/scripts/w3mman/w3mman.1.in
@@ -13240,9 +13400,27 @@ index f430307..2cd00f9 100644
$p =~ s@/+$@@;
$PATH{$p} = 1;
diff --git a/table.c b/table.c
-index e1243ff..b77f0f8 100644
+index e1243ff..2a0aa8f 100644
--- a/table.c
+++ b/table.c
+@@ -188,7 +188,7 @@ dv2sv(double *dv, short *iv, int size)
+ indexarray = NewAtom_N(short, size);
+ edv = NewAtom_N(double, size);
+ for (i = 0; i < size; i++) {
+- iv[i] = ceil(dv[i]);
++ iv[i] = (short) ceil(dv[i]);
+ edv[i] = (double)iv[i] - dv[i];
+ }
+
+@@ -205,7 +205,7 @@ dv2sv(double *dv, short *iv, int size)
+ indexarray[i] = k;
+ }
+ iw = min((int)(w + 0.5), size);
+- if (iw == 0)
++ if (iw <= 1)
+ return;
+ x = edv[(int)indexarray[iw - 1]];
+ for (i = 0; i < size; i++) {
@@ -429,7 +429,6 @@ visible_length(char *str)
char *t, *r2;
int amp_len = 0;