diff options
author | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-12-03 15:35:09 +0000 |
---|---|---|
committer | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-12-03 15:35:09 +0000 |
commit | 569d535b29255d860e7c3755069d60265a5e9085 (patch) | |
tree | b669930e719f182e8663bf2cd6afa62708183dc1 /fm.h | |
parent | update (diff) | |
download | w3m-569d535b29255d860e7c3755069d60265a5e9085.tar.gz w3m-569d535b29255d860e7c3755069d60265a5e9085.zip |
[w3m-dev 03509] HTML parser
* file.c (close_textarea): delete
(HTMLtagproc1): rewrite
delete HTML_EOL
move HTML_LISTING, HTML_N_LISTING
add HTML_PRE_PLAIN, HTML_N_PRE_PLAIN
add HTML_PLAINTEXT
end_tag
(HTMLlineproc0): s/str/line/
rewrite
(completeHTMLstream): </textarea> if necessary
* fm.h (struct readbuffer): delete ignore_tag
add end_tag
(RB_XMPMODE): deleted
(RB_LSTMODE): deleted
(RB_SCRIPT): added
(RB_STYLE): added
(RB_*): renumber
(R_ST_EOL): added
(R_ST_*): renumber
(ST_IS_TAG): check R_ST_EOL
* form.c (form_fputs_decode): remove <eol> handling
* frame.c (newFrame): remove_space()
(CASE_TABLE_TAG): added
(createFrameFile): rewrite
* html.c (TagMAP): delete eol
add pre_plain, /pre_plain
* html.h (HTML_EOL): deleted
(HTML_PRE_PLAIN): added
(HTML_N_PRE_PLAIN): added
* table.c (visible_length): rewrite
(visible_length_plain): added
(maximum_visible_length_plain): added
(do_refill): R_ST_EOL
(table_close_select): end_tag
(table_close_textarea): end_tag
(TAG_ACTION_PLAIN): added
(feed_table_tag): rewrite
(feed_table): rewrite
* table.h (TBLM_*) reassign
(struct table_mode): delete ignore_tag
add end_tag
* tagtable.tab (eol): deleted
(pre_plain): added
(/pre_plain): added
From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
Diffstat (limited to '')
-rw-r--r-- | fm.h | 66 |
1 files changed, 32 insertions, 34 deletions
@@ -1,4 +1,4 @@ -/* $Id: fm.h,v 1.90 2002/12/02 17:27:37 ukai Exp $ */ +/* $Id: fm.h,v 1.91 2002/12/03 15:35:10 ukai Exp $ */ /* * w3m: WWW wo Miru utility * @@ -534,7 +534,7 @@ struct readbuffer { long flag_stack[RB_STACK_SIZE]; int flag_sp; int status; - Str ignore_tag; + unsigned char end_tag; short table_level; short nobr_level; Str anchor; @@ -557,33 +557,30 @@ struct readbuffer { #define in_stand fontstat[2] #define RB_PRE 0x01 -#define RB_XMPMODE 0x02 -#define RB_LSTMODE 0x04 +#define RB_SCRIPT 0x02 +#define RB_STYLE 0x04 #define RB_PLAIN 0x08 -#define RB_LEFT 0x80000 -#define RB_CENTER 0x10 -#define RB_RIGHT 0x20 -#define RB_ALIGN (RB_LEFT| RB_CENTER | RB_RIGHT) -#define RB_NOBR 0x40 -#define RB_P 0x80 -#define RB_PRE_INT 0x100 -#define RB_PREMODE (RB_PRE | RB_PRE_INT) -#define RB_SPECIAL (RB_PRE|RB_XMPMODE|RB_LSTMODE|RB_PLAIN|RB_NOBR|RB_PRE_INT) -#define RB_PLAINMODE (RB_XMPMODE|RB_LSTMODE|RB_PLAIN) - -#define RB_IN_DT 0x200 -#define RB_INTXTA 0x400 -#define RB_INSELECT 0x800 -#define RB_IGNORE 0x1000 -#define RB_INSEL 0x2000 -#define RB_IGNORE_P 0x4000 -#define RB_TITLE 0x8000 -#define RB_NFLUSHED 0x10000 -#define RB_NOFRAMES 0x20000 -#define RB_INTABLE 0x40000 +#define RB_LEFT 0x10 +#define RB_CENTER 0x20 +#define RB_RIGHT 0x40 +#define RB_ALIGN (RB_LEFT | RB_CENTER | RB_RIGHT) +#define RB_NOBR 0x80 +#define RB_P 0x100 +#define RB_PRE_INT 0x200 +#define RB_IN_DT 0x400 +#define RB_INTXTA 0x800 +#define RB_INSELECT 0x1000 +#define RB_IGNORE_P 0x2000 +#define RB_TITLE 0x4000 +#define RB_NFLUSHED 0x8000 +#define RB_NOFRAMES 0x10000 +#define RB_INTABLE 0x20000 +#define RB_PREMODE (RB_PRE | RB_PRE_INT | RB_SCRIPT | RB_STYLE | RB_PLAIN | RB_INTXTA) +#define RB_SPECIAL (RB_PRE | RB_PRE_INT | RB_SCRIPT | RB_STYLE | RB_PLAIN | RB_NOBR) +#define RB_PLAIN_PRE 0x40000 #ifdef FORMAT_NICE -#define RB_FILL 0x200000 +#define RB_FILL 0x80000 #endif /* FORMAT_NICE */ #define RB_GET_ALIGN(obuf) ((obuf)->flag&RB_ALIGN) @@ -605,17 +602,18 @@ struct readbuffer { #define R_ST_DQUOTE 4 /* within double quote */ #define R_ST_EQL 5 /* = */ #define R_ST_AMP 6 /* within ampersand quote */ -#define R_ST_CMNT1 7 /* <! */ -#define R_ST_CMNT2 8 /* <!- */ -#define R_ST_CMNT 9 /* within comment */ -#define R_ST_NCMNT1 10 /* comment - */ -#define R_ST_NCMNT2 11 /* comment -- */ -#define R_ST_NCMNT3 12 /* comment -- space */ -#define R_ST_IRRTAG 13 /* within irregular tag */ +#define R_ST_EOL 7 /* end of file */ +#define R_ST_CMNT1 8 /* <! */ +#define R_ST_CMNT2 9 /* <!- */ +#define R_ST_CMNT 10 /* within comment */ +#define R_ST_NCMNT1 11 /* comment - */ +#define R_ST_NCMNT2 12 /* comment -- */ +#define R_ST_NCMNT3 13 /* comment -- space */ +#define R_ST_IRRTAG 14 /* within irregular tag */ #define ST_IS_REAL_TAG(s) ((s)==R_ST_TAG||(s)==R_ST_TAG0||(s)==R_ST_EQL) #define ST_IS_COMMENT(s) ((s)>=R_ST_CMNT1) -#define ST_IS_TAG(s) ((s)!=R_ST_NORMAL&&(s)!=R_ST_AMP&&!ST_IS_COMMENT(s)) +#define ST_IS_TAG(s) ((s)!=R_ST_NORMAL&&(s)!=R_ST_AMP&&!ST_IS_COMMENT(s)&&(s)!=R_ST_EOL) /* is this '<' really means the beginning of a tag? */ #define REALLY_THE_BEGINNING_OF_A_TAG(p) \ |