[prev in list] [next in list] [prev in thread] [next in thread]
List: elinks-cvs
Subject: [ELinks] elinks (ECMASCRIPT) - jonas: Introduce empty element end ...
From: cvs () pasky ! ji ! cz
Date: 2004-02-29 3:38:20
Message-ID: 20040229033820.5861.qmail () machine ! sinus ! cz
[Download RAW message or body]
This is an automated notification of a change to the ELinks CVS tree.
Author: jonas
Module: elinks
Tag: ECMASCRIPT
Date: Sun Feb 29 03:38:20 2004 GMT
---- Log message:
Introduce empty element end token.
---- Files affected:
elinks/src/document/sgml:
parser.c (1.1.2.49 -> 1.1.2.50)
http://cvsweb.elinks.or.cz/cvsweb.cgi/elinks/src/document/sgml/parser.c.diff?r1=1.1.2.49&r2=1.1.2.50&f=u
scanner.c (1.1.2.24 -> 1.1.2.25)
http://cvsweb.elinks.or.cz/cvsweb.cgi/elinks/src/document/sgml/scanner.c.diff?r1=1.1.2.24&r2=1.1.2.25&f=u
scanner.h (1.1.2.6 -> 1.1.2.7)
http://cvsweb.elinks.or.cz/cvsweb.cgi/elinks/src/document/sgml/scanner.h.diff?r1=1.1.2.6&r2=1.1.2.7&f=u
---- Diffs:
elinks/src/document/sgml/parser.c | 6 ++++++
elinks/src/document/sgml/scanner.c | 11 +++++++----
elinks/src/document/sgml/scanner.h | 1 +
3 files changed, 14 insertions(+), 4 deletions(-)
Index: elinks/src/document/sgml/parser.c
diff -u elinks/src/document/sgml/parser.c:1.1.2.49 \
elinks/src/document/sgml/parser.c:1.1.2.50
--- elinks/src/document/sgml/parser.c:1.1.2.49 Sun Feb 29 04:03:40 2004
+++ elinks/src/document/sgml/parser.c Sun Feb 29 04:38:15 2004
@@ -167,6 +167,7 @@
case SGML_TOKEN_ELEMENT:
case SGML_TOKEN_ELEMENT_BEGIN:
case SGML_TOKEN_ELEMENT_END:
+ case SGML_TOKEN_ELEMENT_EMPTY_END:
return;
case SGML_TOKEN_IDENT:
@@ -223,6 +224,11 @@
skip_scanner_token(scanner);
}
+ break;
+
+ case SGML_TOKEN_ELEMENT_EMPTY_END:
+ pop_dom_node(navigator);
+ skip_scanner_token(scanner);
break;
case SGML_TOKEN_ELEMENT_END:
Index: elinks/src/document/sgml/scanner.c
diff -u elinks/src/document/sgml/scanner.c:1.1.2.24 \
elinks/src/document/sgml/scanner.c:1.1.2.25
--- elinks/src/document/sgml/scanner.c:1.1.2.24 Sat Feb 28 05:41:52 2004
+++ elinks/src/document/sgml/scanner.c Sun Feb 29 04:38:15 2004
@@ -279,14 +279,17 @@
scan_sgml(scanner, string, SGML_CHAR_IDENT);
real_length = string - token->string;
+ if (skip_sgml(scanner, &string, '>'))
+ type = SGML_TOKEN_ELEMENT_END;
+
} else if (*string == '>') {
+ string++;
real_length = 0;
+ type = SGML_TOKEN_ELEMENT_END;
}
- if (skip_sgml(scanner, &string, '>')) {
+ if (type != SGML_TOKEN_GARBAGE)
scanner->state = SGML_STATE_TEXT;
- type = SGML_TOKEN_ELEMENT_END;
- }
} else {
/* Alien < > stuff so ignore it */
@@ -309,7 +312,7 @@
if (*string == '>') {
string++;
real_length = 0;
- type = SGML_TOKEN_ELEMENT_END;
+ type = SGML_TOKEN_ELEMENT_EMPTY_END;
assert(scanner->state == SGML_STATE_ELEMENT);
scanner->state = SGML_STATE_TEXT;
} else if (is_sgml_attribute(*string)) {
Index: elinks/src/document/sgml/scanner.h
diff -u elinks/src/document/sgml/scanner.h:1.1.2.6 \
elinks/src/document/sgml/scanner.h:1.1.2.7
--- elinks/src/document/sgml/scanner.h:1.1.2.6 Sat Feb 28 04:32:22 2004
+++ elinks/src/document/sgml/scanner.h Sun Feb 29 04:38:15 2004
@@ -32,6 +32,7 @@
SGML_TOKEN_ELEMENT, /* <{ident}> */
SGML_TOKEN_ELEMENT_BEGIN, /* <{ident} */
SGML_TOKEN_ELEMENT_END, /* </{ident}> or </> */
+ SGML_TOKEN_ELEMENT_EMPTY_END, /* /> */
SGML_TOKEN_ATTRIBUTE, /* [^>\t\r\n\f\v ]+ */
SGML_TOKEN_ENTITY, /* &ident; */
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic