[w3m-dev 03923] avoid extra blanks in pre in table.

This commit is contained in:
Dai Sato
2007-05-23 12:26:56 +00:00
parent bdeafaadf1
commit 599bb41857
3 changed files with 20 additions and 44 deletions
+6 -1
View File
@@ -1,3 +1,8 @@
2007-04-19 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03923] <pre> in <table>
* file.c, table.c: avoid extra blanks in pre in table.
2007-05-23 tamo 2007-05-23 tamo
* [20070121110209@w3mbbs] unnecessary decoding in linein.c * [20070121110209@w3mbbs] unnecessary decoding in linein.c
@@ -8821,4 +8826,4 @@ a * [w3m-dev 03276] compile error on EWS4800
* release-0-2-1 * release-0-2-1
* import w3m-0.2.1 * import w3m-0.2.1
$Id: ChangeLog,v 1.980 2007/05/23 12:14:24 inu Exp $ $Id: ChangeLog,v 1.981 2007/05/23 12:26:56 inu Exp $
+2 -1
View File
@@ -1,4 +1,4 @@
/* $Id: file.c,v 1.251 2007/04/19 12:00:37 inu Exp $ */ /* $Id: file.c,v 1.252 2007/05/23 12:26:56 inu Exp $ */
#include "fm.h" #include "fm.h"
#include <sys/types.h> #include <sys/types.h>
#include "myctype.h" #include "myctype.h"
@@ -4606,6 +4606,7 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
do_blankline(h_env, obuf, envs[h_env->envc].indent, 0, do_blankline(h_env, obuf, envs[h_env->envc].indent, 0,
h_env->limit); h_env->limit);
obuf->flag |= RB_IGNORE_P; obuf->flag |= RB_IGNORE_P;
h_env->blank_lines++;
} }
obuf->flag &= ~RB_PRE; obuf->flag &= ~RB_PRE;
close_anchor(h_env, obuf); close_anchor(h_env, obuf);
+12 -42
View File
@@ -1,4 +1,4 @@
/* $Id: table.c,v 1.53 2006/04/08 11:52:02 inu Exp $ */ /* $Id: table.c,v 1.54 2007/05/23 12:26:56 inu Exp $ */
/* /*
* HTML table * HTML table
*/ */
@@ -537,48 +537,18 @@ visible_length_plain(char *str)
return len > max_len ? len : max_len; return len > max_len ? len : max_len;
} }
int static int
maximum_visible_length(char *str) maximum_visible_length(char *str, int offset)
{ {
int maxlen, len; visible_length_offset = offset;
return visible_length(str);
visible_length_offset = 0;
maxlen = visible_length(str);
if (!strchr(str, '\t'))
return maxlen;
for (visible_length_offset = 1; visible_length_offset < Tabstop;
visible_length_offset++) {
len = visible_length(str);
if (maxlen < len) {
maxlen = len;
break;
}
}
return maxlen;
} }
int static int
maximum_visible_length_plain(char *str) maximum_visible_length_plain(char *str, int offset)
{ {
int maxlen, len; visible_length_offset = offset;
return visible_length_plain(str);
visible_length_offset = 0;
maxlen = visible_length_plain(str);
if (!strchr(str, '\t'))
return maxlen;
for (visible_length_offset = 1; visible_length_offset < Tabstop;
visible_length_offset++) {
len = visible_length_plain(str);
if (maxlen < len) {
maxlen = len;
break;
}
}
return maxlen;
} }
void void
@@ -3205,7 +3175,7 @@ feed_table(struct table *tbl, char *line, struct table_mode *mode,
check_rowcol(tbl, mode); check_rowcol(tbl, mode);
if (mode->nobr_offset < 0) if (mode->nobr_offset < 0)
mode->nobr_offset = tbl->tabcontentssize; mode->nobr_offset = tbl->tabcontentssize;
addcontentssize(tbl, maximum_visible_length(line)); addcontentssize(tbl, maximum_visible_length(line, tbl->tabcontentssize));
setwidth(tbl, mode); setwidth(tbl, mode);
pushdata(tbl, tbl->row, tbl->col, line); pushdata(tbl, tbl->row, tbl->col, line);
} }
@@ -3234,9 +3204,9 @@ feed_table(struct table *tbl, char *line, struct table_mode *mode,
line = ""; line = "";
} }
if (mode->pre_mode & TBLM_PLAIN) if (mode->pre_mode & TBLM_PLAIN)
i = maximum_visible_length_plain(p); i = maximum_visible_length_plain(p, tbl->tabcontentssize);
else else
i = maximum_visible_length(p); i = maximum_visible_length(p, tbl->tabcontentssize);
addcontentssize(tbl, i); addcontentssize(tbl, i);
setwidth(tbl, mode); setwidth(tbl, mode);
if (nl) if (nl)