[w3m-dev 03923] <pre> in <table>

Hironori SAKAMOTO <[email protected]>
Newsgroups gmane.comp.web.w3m.devel
Message-ID <[email protected]>

table  pre 


<table border=1>
<tr><td>
<pre>
1234	X
</pre>
</table>

 X (\t)
----------------------------------- 
  <[email protected]> 
 http://www2u.biglobe.ne.jp/~hsaka/

diff -u file.c.orig file.c
--- file.c.orig	Tue May 27 17:40:20 2003
+++ file.c	Fri Jun 27 17:27:10 2003
@@ -4452,6 +4452,7 @@
 	    do_blankline(h_env, obuf, envs[h_env->envc].indent, 0,
 			 h_env->limit);
 	    obuf->flag |= RB_IGNORE_P;
+	    h_env->blank_lines++;
 	}
 	obuf->flag &= ~RB_PRE;
 	close_anchor(h_env, obuf);
diff -u table.c.orig table.c
--- table.c.orig	Fri Jun 20 13:50:42 2003
+++ table.c	Fri Jun 27 16:59:50 2003
@@ -560,48 +560,18 @@
     return len > max_len ? len : max_len;
 }
 
-int
-maximum_visible_length(char *str)
+static int
+maximum_visible_length(char *str, int offset)
 {
-    int maxlen, len;
-
-    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;
+    visible_length_offset = offset;
+    return visible_length(str);
 }
 
-int
-maximum_visible_length_plain(char *str)
+static int
+maximum_visible_length_plain(char *str, int offset)
 {
-    int maxlen, len;
-
-    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;
+    visible_length_offset = offset;
+    return visible_length_plain(str);
 }
 
 void
@@ -3222,7 +3192,7 @@
 	check_rowcol(tbl, mode);
 	if (mode->nobr_offset < 0)
 	    mode->nobr_offset = tbl->tabcontentssize;
-	addcontentssize(tbl, maximum_visible_length(line));
+	addcontentssize(tbl, maximum_visible_length(line, tbl->tabcontentssize));
 	setwidth(tbl, mode);
 	pushdata(tbl, tbl->row, tbl->col, line);
     }
@@ -3251,9 +3221,9 @@
 		line = "";
 	    }
 	    if (mode->pre_mode & TBLM_PLAIN)
-		i = maximum_visible_length_plain(p);
+		i = maximum_visible_length_plain(p, tbl->tabcontentssize);
 	    else
-		i = maximum_visible_length(p);
+		i = maximum_visible_length(p, tbl->tabcontentssize);
 	    addcontentssize(tbl, i);
 	    setwidth(tbl, mode);
 	    if (nl)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.