Index: file.c =================================================================== RCS file: /home/okabe/CVS_DB/w3m/file.c,v retrieving revision 1.22.2.59 diff -u -r1.22.2.59 file.c --- file.c 2000/12/17 09:25:57 1.22.2.59 +++ file.c 2000/12/19 18:48:29 @@ -2879,9 +2879,6 @@ case HTML_N_OL: case HTML_N_DL: case HTML_N_BLQ: - if (h_env->envc && envs[h_env->envc].env == HTML_DT) { - POP_ENV; - } CLOSE_DT; CLOSE_P; if (h_env->envc > 0) { @@ -2912,10 +2909,7 @@ return 1; case HTML_LI: CLOSE_P; - if (h_env->envc && envs[h_env->envc].env == HTML_DT) { - POP_ENV; - CLOSE_DT; - } + CLOSE_DT; if (h_env->envc > 0) { Str num; flushline(h_env, obuf, @@ -2996,9 +2990,8 @@ if (h_env->envc == 0 || (h_env->envc_real < h_env->nenv && envs[h_env->envc].env != HTML_DL && - envs[h_env->envc].env != HTML_DL_COMPACT && - envs[h_env->envc].env != HTML_DT)) { - PUSH_ENV(cmd); + envs[h_env->envc].env != HTML_DL_COMPACT)) { + PUSH_ENV(HTML_DL); } if (h_env->envc > 0) { flushline(h_env, obuf, @@ -3008,7 +3001,7 @@ HTMLlineproc1("", h_env); obuf->flag |= RB_IN_DT; } - /* obuf->flag |= RB_IGNORE_P; */ + obuf->flag |= RB_IGNORE_P; return 1; case HTML_DD: CLOSE_P; @@ -4665,6 +4658,9 @@ while (obuf.table_level >= 0) { table_mode[obuf.table_level].pre_mode &= ~(TBLM_IGNORE | TBLM_XMP | TBLM_LST); + if (tables[obuf.table_level]->status == R_ST_TAG) + HTMLlineproc1(">", &htmlenv1); + tables[obuf.table_level]->status = R_ST_NORMAL; HTMLlineproc1("", &htmlenv1); } Index: table.c =================================================================== RCS file: /home/okabe/CVS_DB/w3m/table.c,v retrieving revision 1.9.2.26 diff -u -r1.9.2.26 table.c --- table.c 2000/12/17 09:26:09 1.9.2.26 +++ table.c 2000/12/19 19:24:59 @@ -2307,8 +2307,10 @@ feed_table_block_tag(struct table *tbl, char *line, struct table_mode *mode, - int indent) + int indent, + int cmd) { + int offset; if (mode->indent_level <= 0 && indent == -1) return; setwidth(tbl, mode); @@ -2324,9 +2326,14 @@ if (mode->indent_level < MAX_INDENT_LEVEL) tbl->indent -= INDENT_INCR; } + offset = tbl->indent; + if (cmd == HTML_DT) { + if (mode->indent_level > 0 && mode->indent_level <= MAX_INDENT_LEVEL) + offset -= INDENT_INCR; + } if (tbl->indent > 0) { check_minimum0(tbl, 0); - addcontentssize(tbl, tbl->indent); + addcontentssize(tbl, offset); } } @@ -2711,7 +2718,7 @@ case HTML_N_LISTING: case HTML_XMP: case HTML_N_XMP: - feed_table_block_tag(tbl, line, mode, 0); + feed_table_block_tag(tbl, line, mode, 0, cmd); switch (cmd) { case HTML_PRE: mode->pre_mode |= TBLM_PRE; @@ -2737,13 +2744,13 @@ case HTML_BLQ: case HTML_OL: case HTML_UL: - feed_table_block_tag(tbl, line, mode, 1); + feed_table_block_tag(tbl, line, mode, 1, cmd); break; case HTML_N_DL: case HTML_N_BLQ: case HTML_N_OL: case HTML_N_UL: - feed_table_block_tag(tbl, line, mode, -1); + feed_table_block_tag(tbl, line, mode, -1, cmd); break; case HTML_PRE_INT: case HTML_NOBR: @@ -2794,7 +2801,7 @@ #else /* not NEW_FORM */ case HTML_FORM: case HTML_N_FORM: - feed_table_block_tag(tbl, "
", mode, 0); + feed_table_block_tag(tbl, "
", mode, 0, HTML_BR); if (line[1] == '/') { tok = Strnew_charp("= 0 && id < tbl->ntable) { struct table *tbl1 = tbl->tables[id].ptr; - feed_table_block_tag(tbl, line, mode, 0); + feed_table_block_tag(tbl, line, mode, 0, cmd); addcontentssize(tbl, maximum_table_width(tbl1)); check_minimum0(tbl, tbl1->sloppy_width); #ifdef TABLE_EXPAND