From e718702d1281d1e92d162d9846081364ebb5f4df Mon Sep 17 00:00:00 2001 From: Fumitoshi UKAI Date: Thu, 23 Jan 2003 18:01:01 +0000 Subject: * etc.c (next_status): after = is R_ST_VALUE R_ST_VALUE > => R_ST_NORMAL R_ST_VALUE SP => R_ST_TAG (read_token): R_ST_VALUE (correct_irrtag): R_ST_VALUE * rm.h (R_ST_VALUE): added (ST_IS_REAL_TAG): rewrite (ST_IS_COMMENT): deleted (ST_IS_TAG): deleted * parsetagx.c (parse_tag): skip too long tagname skip too long attrname if attrvalue has quote char, need reconstruct if unknown attr, need reconstruct * table.c (visible_length): R_ST_VALUE From: Hironori SAKAMOTO --- etc.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'etc.c') diff --git a/etc.c b/etc.c index 93e411a..d300268 100644 --- a/etc.c +++ b/etc.c @@ -1,4 +1,4 @@ -/* $Id: etc.c,v 1.56 2003/01/23 16:02:15 ukai Exp $ */ +/* $Id: etc.c,v 1.57 2003/01/23 18:01:05 ukai Exp $ */ #include "fm.h" #include #include "myctype.h" @@ -636,7 +636,7 @@ next_status(char c, int *status) else if (c == '>') *status = R_ST_NORMAL; else - *status = R_ST_TAG; + *status = R_ST_VALUE; return 0; case R_ST_QUOTE: if (c == '\'') @@ -646,6 +646,12 @@ next_status(char c, int *status) if (c == '"') *status = R_ST_TAG; return 0; + case R_ST_VALUE: + if (c == '>') + *status = R_ST_NORMAL; + else if (IS_SPACE(c)) + *status = R_ST_TAG; + return 0; case R_ST_AMP: if (c == ';') { *status = R_ST_NORMAL; @@ -792,6 +798,7 @@ read_token(Str buf, char **instr, int *status, int pre, int append) case R_ST_EQL: case R_ST_QUOTE: case R_ST_DQUOTE: + case R_ST_VALUE: case R_ST_AMP: Strcat_char(buf, *p); break; @@ -838,6 +845,7 @@ correct_irrtag(int status) case R_ST_TAG: case R_ST_TAG0: case R_ST_EQL: /* required ">" */ + case R_ST_VALUE: c = '>'; break; case R_ST_QUOTE: -- cgit v1.2.3