1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-07-29 11:41:22 +03:00

Large commit of changes done while travelling to XML'99

- cleanups on memory use and parsers
- start of Link interfaces HTML and XLink
- rebuild the doc
- released as 1.8.0
Daniel
This commit is contained in:
Daniel Veillard
1999-12-12 13:03:50 +00:00
parent ff7ce8eef8
commit af78a0e1b9
13 changed files with 1627 additions and 1572 deletions

View File

@ -120,7 +120,7 @@ PUSH_AND_POP(xmlChar*, name)
#define CUR (*ctxt->input->cur) #define CUR (*ctxt->input->cur)
#define UPPER (toupper(*ctxt->input->cur)) #define UPPER (toupper(*ctxt->input->cur))
#define SKIP(val) ctxt->input->cur += (val) #define SKIP(val) ctxt->nbChars += (val),ctxt->input->cur += (val)
#define NXT(val) ctxt->input->cur[(val)] #define NXT(val) ctxt->input->cur[(val)]
#define UPP(val) (toupper(ctxt->input->cur[(val)])) #define UPP(val) (toupper(ctxt->input->cur[(val)]))
#define CUR_PTR ctxt->input->cur #define CUR_PTR ctxt->input->cur
@ -141,6 +141,7 @@ PUSH_AND_POP(xmlChar*, name)
ctxt->input->line++; ctxt->input->col = 1; \ ctxt->input->line++; ctxt->input->col = 1; \
} else ctxt->input->col++; \ } else ctxt->input->col++; \
ctxt->input->cur++; \ ctxt->input->cur++; \
ctxt->nbChars++; \
if (*ctxt->input->cur == 0) \ if (*ctxt->input->cur == 0) \
xmlParserInputGrow(ctxt->input, INPUT_CHUNK); \ xmlParserInputGrow(ctxt->input, INPUT_CHUNK); \
}} }}
@ -181,97 +182,97 @@ PUSH_AND_POP(xmlChar*, name)
* Name,Start Tag,End Tag, Empty, Depr., DTD, Description * Name,Start Tag,End Tag, Empty, Depr., DTD, Description
*/ */
htmlElemDesc html40ElementTable[] = { htmlElemDesc html40ElementTable[] = {
{ "A", 0, 0, 0, 0, 0, "anchor " }, { "a", 0, 0, 0, 0, 0, "anchor " },
{ "ABBR", 0, 0, 0, 0, 0, "abbreviated form" }, { "abbr", 0, 0, 0, 0, 0, "abbreviated form" },
{ "ACRONYM", 0, 0, 0, 0, 0, "" }, { "acronym", 0, 0, 0, 0, 0, "" },
{ "ADDRESS", 0, 0, 0, 0, 0, "information on author " }, { "address", 0, 0, 0, 0, 0, "information on author " },
{ "APPLET", 0, 0, 0, 1, 1, "Java applet " }, { "applet", 0, 0, 0, 1, 1, "java applet " },
{ "AREA", 0, 2, 1, 0, 0, "client-side image map area " }, { "area", 0, 2, 1, 0, 0, "client-side image map area " },
{ "B", 0, 0, 0, 0, 0, "bold text style" }, { "b", 0, 0, 0, 0, 0, "bold text style" },
{ "BASE", 0, 2, 1, 0, 0, "document base URI " }, { "base", 0, 2, 1, 0, 0, "document base uri " },
{ "BASEFONT", 0, 2, 1, 1, 1, "base font size " }, { "basefont", 0, 2, 1, 1, 1, "base font size " },
{ "BDO", 0, 0, 0, 0, 0, "I18N BiDi over-ride " }, { "bdo", 0, 0, 0, 0, 0, "i18n bidi over-ride " },
{ "BIG", 0, 0, 0, 0, 0, "large text style" }, { "big", 0, 0, 0, 0, 0, "large text style" },
{ "BLOCKQUOTE", 0, 0, 0, 0, 0, "long quotation " }, { "blockquote", 0, 0, 0, 0, 0, "long quotation " },
{ "BODY", 1, 1, 0, 0, 0, "document body " }, { "body", 1, 1, 0, 0, 0, "document body " },
{ "BR", 0, 2, 1, 0, 0, "forced line break " }, { "br", 0, 2, 1, 0, 0, "forced line break " },
{ "BUTTON", 0, 0, 0, 0, 0, "push button " }, { "button", 0, 0, 0, 0, 0, "push button " },
{ "CAPTION", 0, 0, 0, 0, 0, "table caption " }, { "caption", 0, 0, 0, 0, 0, "table caption " },
{ "CENTER", 0, 0, 0, 1, 1, "shorthand for DIV align=center " }, { "center", 0, 0, 0, 1, 1, "shorthand for div align=center " },
{ "CITE", 0, 0, 0, 0, 0, "citation" }, { "cite", 0, 0, 0, 0, 0, "citation" },
{ "CODE", 0, 0, 0, 0, 0, "computer code fragment" }, { "code", 0, 0, 0, 0, 0, "computer code fragment" },
{ "COL", 0, 2, 1, 0, 0, "table column " }, { "col", 0, 2, 1, 0, 0, "table column " },
{ "COLGROUP", 0, 1, 0, 0, 0, "table column group " }, { "colgroup", 0, 1, 0, 0, 0, "table column group " },
{ "DD", 0, 1, 0, 0, 0, "definition description " }, { "dd", 0, 1, 0, 0, 0, "definition description " },
{ "DEL", 0, 0, 0, 0, 0, "deleted text " }, { "del", 0, 0, 0, 0, 0, "deleted text " },
{ "DFN", 0, 0, 0, 0, 0, "instance definition" }, { "dfn", 0, 0, 0, 0, 0, "instance definition" },
{ "DIR", 0, 0, 0, 1, 1, "directory list" }, { "dir", 0, 0, 0, 1, 1, "directory list" },
{ "DIV", 0, 0, 0, 0, 0, "generic language/style container"}, { "div", 0, 0, 0, 0, 0, "generic language/style container"},
{ "DL", 0, 0, 0, 0, 0, "definition list " }, { "dl", 0, 0, 0, 0, 0, "definition list " },
{ "DT", 0, 1, 0, 0, 0, "definition term " }, { "dt", 0, 1, 0, 0, 0, "definition term " },
{ "EM", 0, 0, 0, 0, 0, "emphasis" }, { "em", 0, 0, 0, 0, 0, "emphasis" },
{ "FIELDSET", 0, 0, 0, 0, 0, "form control group " }, { "fieldset", 0, 0, 0, 0, 0, "form control group " },
{ "FONT", 0, 0, 0, 1, 1, "local change to font " }, { "font", 0, 0, 0, 1, 1, "local change to font " },
{ "FORM", 0, 0, 0, 0, 0, "interactive form " }, { "form", 0, 0, 0, 0, 0, "interactive form " },
{ "FRAME", 0, 2, 1, 0, 2, "subwindow " }, { "frame", 0, 2, 1, 0, 2, "subwindow " },
{ "FRAMESET", 0, 0, 0, 0, 2, "window subdivision" }, { "frameset", 0, 0, 0, 0, 2, "window subdivision" },
{ "H1", 0, 0, 0, 0, 0, "heading " }, { "h1", 0, 0, 0, 0, 0, "heading " },
{ "H2", 0, 0, 0, 0, 0, "heading " }, { "h2", 0, 0, 0, 0, 0, "heading " },
{ "H3", 0, 0, 0, 0, 0, "heading " }, { "h3", 0, 0, 0, 0, 0, "heading " },
{ "H4", 0, 0, 0, 0, 0, "heading " }, { "h4", 0, 0, 0, 0, 0, "heading " },
{ "H5", 0, 0, 0, 0, 0, "heading " }, { "h5", 0, 0, 0, 0, 0, "heading " },
{ "H6", 0, 0, 0, 0, 0, "heading " }, { "h6", 0, 0, 0, 0, 0, "heading " },
{ "HEAD", 1, 1, 0, 0, 0, "document head " }, { "head", 1, 1, 0, 0, 0, "document head " },
{ "HR", 0, 2, 1, 0, 0, "horizontal rule " }, { "hr", 0, 2, 1, 0, 0, "horizontal rule " },
{ "HTML", 1, 1, 0, 0, 0, "document root element " }, { "html", 1, 1, 0, 0, 0, "document root element " },
{ "I", 0, 0, 0, 0, 0, "italic text style" }, { "i", 0, 0, 0, 0, 0, "italic text style" },
{ "IFRAME", 0, 0, 0, 0, 1, "inline subwindow " }, { "iframe", 0, 0, 0, 0, 1, "inline subwindow " },
{ "IMG", 0, 2, 1, 0, 0, "Embedded image " }, { "img", 0, 2, 1, 0, 0, "embedded image " },
{ "INPUT", 0, 2, 1, 0, 0, "form control " }, { "input", 0, 2, 1, 0, 0, "form control " },
{ "INS", 0, 0, 0, 0, 0, "inserted text" }, { "ins", 0, 0, 0, 0, 0, "inserted text" },
{ "ISINDEX", 0, 2, 1, 1, 1, "single line prompt " }, { "isindex", 0, 2, 1, 1, 1, "single line prompt " },
{ "KBD", 0, 0, 0, 0, 0, "text to be entered by the user" }, { "kbd", 0, 0, 0, 0, 0, "text to be entered by the user" },
{ "LABEL", 0, 0, 0, 0, 0, "form field label text " }, { "label", 0, 0, 0, 0, 0, "form field label text " },
{ "LEGEND", 0, 0, 0, 0, 0, "fieldset legend " }, { "legend", 0, 0, 0, 0, 0, "fieldset legend " },
{ "LI", 0, 1, 0, 0, 0, "list item " }, { "li", 0, 1, 0, 0, 0, "list item " },
{ "LINK", 0, 2, 1, 0, 0, "a media-independent link " }, { "link", 0, 2, 1, 0, 0, "a media-independent link " },
{ "MAP", 0, 0, 0, 0, 0, "client-side image map " }, { "map", 0, 0, 0, 0, 0, "client-side image map " },
{ "MENU", 0, 0, 0, 1, 1, "menu list " }, { "menu", 0, 0, 0, 1, 1, "menu list " },
{ "META", 0, 2, 1, 0, 0, "generic metainformation " }, { "meta", 0, 2, 1, 0, 0, "generic metainformation " },
{ "NOFRAMES", 0, 0, 0, 0, 2, "alternate content container for non frame-based rendering " }, { "noframes", 0, 0, 0, 0, 2, "alternate content container for non frame-based rendering " },
{ "NOSCRIPT", 0, 0, 0, 0, 0, "alternate content container for non script-based rendering " }, { "noscript", 0, 0, 0, 0, 0, "alternate content container for non script-based rendering " },
{ "OBJECT", 0, 0, 0, 0, 0, "generic embedded object " }, { "object", 0, 0, 0, 0, 0, "generic embedded object " },
{ "OL", 0, 0, 0, 0, 0, "ordered list " }, { "ol", 0, 0, 0, 0, 0, "ordered list " },
{ "OPTGROUP", 0, 0, 0, 0, 0, "option group " }, { "optgroup", 0, 0, 0, 0, 0, "option group " },
{ "OPTION", 0, 1, 0, 0, 0, "selectable choice " }, { "option", 0, 1, 0, 0, 0, "selectable choice " },
{ "P", 0, 1, 0, 0, 0, "paragraph " }, { "p", 0, 1, 0, 0, 0, "paragraph " },
{ "PARAM", 0, 2, 1, 0, 0, "named property value " }, { "param", 0, 2, 1, 0, 0, "named property value " },
{ "PRE", 0, 0, 0, 0, 0, "preformatted text " }, { "pre", 0, 0, 0, 0, 0, "preformatted text " },
{ "Q", 0, 0, 0, 0, 0, "short inline quotation " }, { "q", 0, 0, 0, 0, 0, "short inline quotation " },
{ "S", 0, 0, 0, 1, 1, "strike-through text style" }, { "s", 0, 0, 0, 1, 1, "strike-through text style" },
{ "SAMP", 0, 0, 0, 0, 0, "sample program output, scripts, etc." }, { "samp", 0, 0, 0, 0, 0, "sample program output, scripts, etc." },
{ "SCRIPT", 0, 0, 0, 0, 0, "script statements " }, { "script", 0, 0, 0, 0, 0, "script statements " },
{ "SELECT", 0, 0, 0, 0, 0, "option selector " }, { "select", 0, 0, 0, 0, 0, "option selector " },
{ "SMALL", 0, 0, 0, 0, 0, "small text style" }, { "small", 0, 0, 0, 0, 0, "small text style" },
{ "SPAN", 0, 0, 0, 0, 0, "generic language/style container " }, { "span", 0, 0, 0, 0, 0, "generic language/style container " },
{ "STRIKE", 0, 0, 0, 1, 1, "strike-through text" }, { "strike", 0, 0, 0, 1, 1, "strike-through text" },
{ "STRONG", 0, 0, 0, 0, 0, "strong emphasis" }, { "strong", 0, 0, 0, 0, 0, "strong emphasis" },
{ "STYLE", 0, 0, 0, 0, 0, "style info " }, { "style", 0, 0, 0, 0, 0, "style info " },
{ "SUB", 0, 0, 0, 0, 0, "subscript" }, { "sub", 0, 0, 0, 0, 0, "subscript" },
{ "SUP", 0, 0, 0, 0, 0, "superscript " }, { "sup", 0, 0, 0, 0, 0, "superscript " },
{ "TABLE", 0, 0, 0, 0, 0, " " }, { "table", 0, 0, 0, 0, 0, " " },
{ "TBODY", 1, 1, 0, 0, 0, "table body " }, { "tbody", 1, 1, 0, 0, 0, "table body " },
{ "TD", 0, 1, 0, 0, 0, "table data cell" }, { "td", 0, 1, 0, 0, 0, "table data cell" },
{ "TEXTAREA", 0, 0, 0, 0, 0, "multi-line text field " }, { "textarea", 0, 0, 0, 0, 0, "multi-line text field " },
{ "TFOOT", 0, 1, 0, 0, 0, "table footer " }, { "tfoot", 0, 1, 0, 0, 0, "table footer " },
{ "TH", 0, 1, 0, 0, 0, "table header cell" }, { "th", 0, 1, 0, 0, 0, "table header cell" },
{ "THEAD", 0, 1, 0, 0, 0, "table header " }, { "thead", 0, 1, 0, 0, 0, "table header " },
{ "TITLE", 0, 0, 0, 0, 0, "document title " }, { "title", 0, 0, 0, 0, 0, "document title " },
{ "TR", 0, 1, 0, 0, 0, "table row " }, { "tr", 0, 1, 0, 0, 0, "table row " },
{ "TT", 0, 0, 0, 0, 0, "teletype or monospaced text style" }, { "tt", 0, 0, 0, 0, 0, "teletype or monospaced text style" },
{ "U", 0, 0, 0, 1, 1, "underlined text style" }, { "u", 0, 0, 0, 1, 1, "underlined text style" },
{ "UL", 0, 0, 0, 0, 0, "unordered list " }, { "ul", 0, 0, 0, 0, 0, "unordered list " },
{ "VAR", 0, 0, 0, 0, 0, "instance of a variable or program argument" }, { "var", 0, 0, 0, 0, 0, "instance of a variable or program argument" },
}; };
/* /*
@ -280,9 +281,9 @@ htmlElemDesc html40ElementTable[] = {
* that element is in the same line * that element is in the same line
*/ */
char *htmlEquEnd[] = { char *htmlEquEnd[] = {
"DT", "DD", "LI", "OPTION", NULL, "dt", "dd", "li", "option", NULL,
"H1", "H2", "H3", "H4", "H5", "H6", NULL, "h1", "h2", "h3", "h4", "h5", "h6", NULL,
"OL", "MENU", "DIR", "ADDRESS", "PRE", "LISTING", "XMP", NULL, "ol", "menu", "dir", "address", "pre", "listing", "xmp", NULL,
NULL NULL
}; };
/* /*
@ -295,58 +296,58 @@ NULL
* start tags that imply the end of current element * start tags that imply the end of current element
*/ */
char *htmlStartClose[] = { char *htmlStartClose[] = {
"FORM", "FORM", "P", "HR", "H1", "H2", "H3", "H4", "H5", "H6", "form", "form", "p", "hr", "h1", "h2", "h3", "h4", "h5", "h6",
"DL", "UL", "OL", "MENU", "DIR", "ADDRESS", "PRE", "dl", "ul", "ol", "menu", "dir", "address", "pre",
"LISTING", "XMP", "HEAD", NULL, "listing", "xmp", "head", NULL,
"HEAD", "P", NULL, "head", "p", NULL,
"TITLE", "P", NULL, "title", "p", NULL,
"BODY", "HEAD", "STYLE", "LINK", "TITLE", "P", NULL, "body", "head", "style", "link", "title", "p", NULL,
"LI", "P", "H1", "H2", "H3", "H4", "H5", "H6", "DL", "ADDRESS", "li", "p", "h1", "h2", "h3", "h4", "h5", "h6", "dl", "address",
"PRE", "LISTING", "XMP", "HEAD", "LI", NULL, "pre", "listing", "xmp", "head", "li", NULL,
"HR", "P", "HEAD", NULL, "hr", "p", "head", NULL,
"H1", "P", "HEAD", NULL, "h1", "p", "head", NULL,
"H2", "P", "HEAD", NULL, "h2", "p", "head", NULL,
"H3", "P", "HEAD", NULL, "h3", "p", "head", NULL,
"H4", "P", "HEAD", NULL, "h4", "p", "head", NULL,
"H5", "P", "HEAD", NULL, "h5", "p", "head", NULL,
"H6", "P", "HEAD", NULL, "h6", "p", "head", NULL,
"DIR", "P", "HEAD", NULL, "dir", "p", "head", NULL,
"ADDRESS", "P", "HEAD", "UL", NULL, "address", "p", "head", "ul", NULL,
"PRE", "P", "HEAD", "UL", NULL, "pre", "p", "head", "ul", NULL,
"LISTING", "P", "HEAD", NULL, "listing", "p", "head", NULL,
"XMP", "P", "HEAD", NULL, "xmp", "p", "head", NULL,
"BLOCKQUOTE", "P", "HEAD", NULL, "blockquote", "p", "head", NULL,
"DL", "P", "DT", "MENU", "DIR", "ADDRESS", "PRE", "LISTING", "dl", "p", "dt", "menu", "dir", "address", "pre", "listing",
"XMP", "HEAD", NULL, "xmp", "head", NULL,
"DT", "P", "MENU", "DIR", "ADDRESS", "PRE", "LISTING", "XMP", "dt", "p", "menu", "dir", "address", "pre", "listing", "xmp",
"HEAD", "DD", NULL, "head", "dd", NULL,
"DD", "P", "MENU", "DIR", "ADDRESS", "PRE", "LISTING", "XMP", "dd", "p", "menu", "dir", "address", "pre", "listing", "xmp",
"HEAD", "DT", NULL, "head", "dt", NULL,
"UL", "P", "HEAD", "OL", "MENU", "DIR", "ADDRESS", "PRE", "ul", "p", "head", "ol", "menu", "dir", "address", "pre",
"LISTING", "XMP", NULL, "listing", "xmp", NULL,
"OL", "P", "HEAD", "UL", NULL, "ol", "p", "head", "ul", NULL,
"MENU", "P", "HEAD", "UL", NULL, "menu", "p", "head", "ul", NULL,
"P", "P", "HEAD", "H1", "H2", "H3", "H4", "H5", "H6", NULL, "p", "p", "head", "h1", "h2", "h3", "h4", "h5", "h6", NULL,
"DIV", "P", "HEAD", NULL, "div", "p", "head", NULL,
"NOSCRIPT", "P", "HEAD", NULL, "noscript", "p", "head", NULL,
"CENTER", "FONT", "B", "I", "P", "HEAD", NULL, "center", "font", "b", "i", "p", "head", NULL,
"A", "A", NULL, "a", "a", NULL,
"CAPTION", "P", NULL, "caption", "p", NULL,
"COLGROUP", "CAPTION", "COLGROUP", "COL", "P", NULL, "colgroup", "caption", "colgroup", "col", "p", NULL,
"COL", "CAPTION", "COL", "P", NULL, "col", "caption", "col", "p", NULL,
"TABLE", "P", "HEAD", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "table", "p", "head", "h1", "h2", "h3", "h4", "h5", "h6", "pre",
"LISTING", "XMP", "A", NULL, "listing", "xmp", "a", NULL,
"TH", "TH", "TD", NULL, "th", "th", "td", NULL,
"TD", "TH", "TD", "P", NULL, "td", "th", "td", "p", NULL,
"TR", "TH", "TD", "TR", "CAPTION", "COL", "COLGROUP", "P", NULL, "tr", "th", "td", "tr", "caption", "col", "colgroup", "p", NULL,
"THEAD", "CAPTION", "COL", "COLGROUP", NULL, "thead", "caption", "col", "colgroup", NULL,
"TFOOT", "TH", "TD", "TR", "CAPTION", "COL", "COLGROUP", "THEAD", "tfoot", "th", "td", "tr", "caption", "col", "colgroup", "thead",
"TBODY", "P", NULL, "tbody", "p", NULL,
"TBODY", "TH", "TD", "TR", "CAPTION", "COL", "COLGROUP", "THEAD", "tbody", "th", "td", "tr", "caption", "col", "colgroup", "thead",
"TFOOT", "TBODY", "P", NULL, "tfoot", "tbody", "p", NULL,
"OPTGROUP", "OPTION", NULL, "optgroup", "option", NULL,
"FIELDSET", "LEGEND", "P", "HEAD", "H1", "H2", "H3", "H4", "H5", "H6", "fieldset", "legend", "p", "head", "h1", "h2", "h3", "h4", "h5", "h6",
"PRE", "LISTING", "XMP", "A", NULL, "pre", "listing", "xmp", "a", NULL,
NULL NULL
}; };
@ -1200,7 +1201,7 @@ htmlNewDoc(const xmlChar *URI, const xmlChar *ExternalID) {
* htmlParseHTMLName: * htmlParseHTMLName:
* @ctxt: an HTML parser context * @ctxt: an HTML parser context
* *
* parse an HTML tag or attribute name, note that we convert it to uppercase * parse an HTML tag or attribute name, note that we convert it to lowercase
* since HTML names are not case-sensitive. * since HTML names are not case-sensitive.
* *
* Returns the Tag Name parsed or NULL * Returns the Tag Name parsed or NULL
@ -1216,7 +1217,7 @@ htmlParseHTMLName(htmlParserCtxtPtr ctxt) {
(CUR != ':')) return(NULL); (CUR != ':')) return(NULL);
while ((i < 100) && ((IS_LETTER(CUR)) || (IS_DIGIT(CUR)))) { while ((i < 100) && ((IS_LETTER(CUR)) || (IS_DIGIT(CUR)))) {
if ((CUR >= 0x61) && (CUR <= 0x7a)) loc[i] = CUR - 0x20; if ((CUR >= 'A') && (CUR <= 'Z')) loc[i] = CUR + 0x20;
else loc[i] = CUR; else loc[i] = CUR;
i++; i++;
@ -1555,12 +1556,21 @@ htmlParsePubidLiteral(htmlParserCtxtPtr ctxt) {
void void
htmlParseCharData(htmlParserCtxtPtr ctxt, int cdata) { htmlParseCharData(htmlParserCtxtPtr ctxt, int cdata) {
const xmlChar *q; xmlChar *buf = NULL;
int len = 0;
int size = 100;
xmlChar q;
q = CUR_PTR; buf = (xmlChar *) xmlMalloc(size * sizeof(xmlChar));
while ((IS_CHAR(CUR)) && (CUR != '<') && if (buf == NULL) {
(CUR != '&')) { fprintf(stderr, "malloc of %d byte failed\n", size);
if ((CUR == ']') && (NXT(1) == ']') && return;
}
q = CUR;
while ((IS_CHAR(q)) && (q != '<') &&
(q != '&')) {
if ((q == ']') && (NXT(1) == ']') &&
(NXT(2) == '>')) { (NXT(2) == '>')) {
if (cdata) break; if (cdata) break;
else { else {
@ -1570,22 +1580,36 @@ htmlParseCharData(htmlParserCtxtPtr ctxt, int cdata) {
ctxt->wellFormed = 0; ctxt->wellFormed = 0;
} }
} }
NEXT; if (len + 1 >= size) {
size *= 2;
buf = xmlRealloc(buf, size * sizeof(xmlChar));
if (buf == NULL) {
fprintf(stderr, "realloc of %d byte failed\n", size);
return;
}
}
buf[len++] = q;
NEXT;
q = CUR;
}
if (len == 0) {
xmlFree(buf);
return;
} }
if (q == CUR_PTR) return;
/* /*
* Ok the segment [q CUR_PTR] is to be consumed as chars. * Ok the buffer is to be consumed as chars.
*/ */
if (ctxt->sax != NULL) { if (ctxt->sax != NULL) {
if (areBlanks(ctxt, q, CUR_PTR - q)) { if (areBlanks(ctxt, buf, len)) {
if (ctxt->sax->ignorableWhitespace != NULL) if (ctxt->sax->ignorableWhitespace != NULL)
ctxt->sax->ignorableWhitespace(ctxt->userData, q, CUR_PTR - q); ctxt->sax->ignorableWhitespace(ctxt->userData, buf, len);
} else { } else {
if (ctxt->sax->characters != NULL) if (ctxt->sax->characters != NULL)
ctxt->sax->characters(ctxt->userData, q, CUR_PTR - q); ctxt->sax->characters(ctxt->userData, buf, len);
} }
} }
xmlFree(buf);
} }
/** /**
@ -1669,9 +1693,10 @@ htmlParseExternalID(htmlParserCtxtPtr ctxt, xmlChar **publicID, int strict) {
*/ */
void void
htmlParseComment(htmlParserCtxtPtr ctxt, int create) { htmlParseComment(htmlParserCtxtPtr ctxt, int create) {
const xmlChar *q, *start; xmlChar *buf = NULL;
const xmlChar *r; int len = 0;
xmlChar *val; int size = 100;
register xmlChar s, r, q;
/* /*
* Check that there is a comment right here. * Check that there is a comment right here.
@ -1679,30 +1704,45 @@ htmlParseComment(htmlParserCtxtPtr ctxt, int create) {
if ((CUR != '<') || (NXT(1) != '!') || if ((CUR != '<') || (NXT(1) != '!') ||
(NXT(2) != '-') || (NXT(3) != '-')) return; (NXT(2) != '-') || (NXT(3) != '-')) return;
SKIP(4); buf = (xmlChar *) xmlMalloc(size * sizeof(xmlChar));
start = q = CUR_PTR; if (buf == NULL) {
NEXT; fprintf(stderr, "malloc of %d byte failed\n", size);
r = CUR_PTR; return;
NEXT;
while (IS_CHAR(CUR) &&
((CUR == ':') || (CUR != '>') ||
(*r != '-') || (*q != '-'))) {
NEXT;r++;q++;
} }
if (!IS_CHAR(CUR)) { q = r = '-'; /* 0 or '-' to cover our ass against <!--> and <!---> ? !!! */
SKIP(4);
s = CUR;
while (IS_CHAR(s) &&
((s != '>') || (r != '-') || (q != '-'))) {
if (len + 1 >= size) {
size *= 2;
buf = xmlRealloc(buf, size * sizeof(xmlChar));
if (buf == NULL) {
fprintf(stderr, "realloc of %d byte failed\n", size);
return;
}
}
buf[len++] = s;
NEXT;
q = r;
r = s;
s = CUR;
}
buf[len - 2] = 0;
if (!IS_CHAR(s)) {
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL)) if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData, "Comment not terminated \n<!--%.50s\n", start); ctxt->sax->error(ctxt->userData, "Comment not terminated \n<!--%.50s\n", buf);
ctxt->wellFormed = 0; ctxt->wellFormed = 0;
} else { } else {
NEXT; NEXT;
if (create) { if (create) {
if ((ctxt->sax != NULL) && (ctxt->sax->comment != NULL)) { if ((ctxt->sax != NULL) && (ctxt->sax->comment != NULL)) {
val = xmlStrndup(start, q - start); ctxt->sax->comment(ctxt->userData, buf);
ctxt->sax->comment(ctxt->userData, val);
xmlFree(val);
} }
} }
} }
xmlFree(buf);
} }
/** /**
@ -1958,8 +1998,7 @@ htmlParseStartTag(htmlParserCtxtPtr ctxt) {
while ((IS_CHAR(CUR)) && while ((IS_CHAR(CUR)) &&
(CUR != '>') && (CUR != '>') &&
((CUR != '/') || (NXT(1) != '>'))) { ((CUR != '/') || (NXT(1) != '>'))) {
const xmlChar *q = CUR_PTR; long cons = ctxt->nbChars;
int cons = ctxt->input->consumed;
GROW; GROW;
attname = htmlParseAttribute(ctxt, &attvalue); attname = htmlParseAttribute(ctxt, &attvalue);
@ -2010,7 +2049,7 @@ htmlParseStartTag(htmlParserCtxtPtr ctxt) {
failed: failed:
SKIP_BLANKS; SKIP_BLANKS;
if ((cons == ctxt->input->consumed) && (q == CUR_PTR)) { if (cons == ctxt->nbChars) {
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL)) if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData, ctxt->sax->error(ctxt->userData,
"htmlParseStartTag: problem parsing attributes\n"); "htmlParseStartTag: problem parsing attributes\n");
@ -2203,10 +2242,10 @@ htmlParseContent(htmlParserCtxtPtr ctxt) {
xmlChar *currentNode; xmlChar *currentNode;
int depth; int depth;
currentNode = ctxt->name; currentNode = xmlStrdup(ctxt->name);
depth = ctxt->nameNr; depth = ctxt->nameNr;
while (1) { while (1) {
const xmlChar *test = CUR_PTR; long cons = ctxt->nbChars;
GROW; GROW;
/* /*
@ -2214,6 +2253,7 @@ htmlParseContent(htmlParserCtxtPtr ctxt) {
*/ */
if ((CUR == '<') && (NXT(1) == '/')) { if ((CUR == '<') && (NXT(1) == '/')) {
htmlParseEndTag(ctxt); htmlParseEndTag(ctxt);
if (currentNode != NULL) xmlFree(currentNode);
return; return;
} }
@ -2221,8 +2261,11 @@ htmlParseContent(htmlParserCtxtPtr ctxt) {
* Has this node been popped out during parsing of * Has this node been popped out during parsing of
* the next element * the next element
*/ */
if ((currentNode != ctxt->name) && if ((xmlStrcmp(currentNode, ctxt->name)) &&
(depth >= ctxt->nameNr)) return; (depth >= ctxt->nameNr)) {
if (currentNode != NULL) xmlFree(currentNode);
return;
}
/* /*
* First case : a comment * First case : a comment
@ -2254,7 +2297,7 @@ htmlParseContent(htmlParserCtxtPtr ctxt) {
htmlParseCharData(ctxt, 0); htmlParseCharData(ctxt, 0);
} }
if (test == CUR_PTR) { if (cons == ctxt->nbChars) {
if (ctxt->node != NULL) { if (ctxt->node != NULL) {
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL)) if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData, ctxt->sax->error(ctxt->userData,
@ -2266,6 +2309,7 @@ htmlParseContent(htmlParserCtxtPtr ctxt) {
GROW; GROW;
} }
if (currentNode != NULL) xmlFree(currentNode);
} }
/** /**
@ -2296,7 +2340,7 @@ htmlParseElement(htmlParserCtxtPtr ctxt) {
node_info.begin_line = ctxt->input->line; node_info.begin_line = ctxt->input->line;
} }
oldname = ctxt->name; oldname = xmlStrdup(ctxt->name);
htmlParseStartTag(ctxt); htmlParseStartTag(ctxt);
name = ctxt->name; name = ctxt->name;
#ifdef DEBUG #ifdef DEBUG
@ -2307,12 +2351,16 @@ htmlParseElement(htmlParserCtxtPtr ctxt) {
else else
fprintf(stderr, "Start of element %s, was %s\n", name, oldname); fprintf(stderr, "Start of element %s, was %s\n", name, oldname);
#endif #endif
if (((depth == ctxt->nameNr) && (oldname == ctxt->name)) || if (((depth == ctxt->nameNr) && (!xmlStrcmp(oldname, ctxt->name))) ||
(name == NULL)) { (name == NULL)) {
if (CUR == '>') if (CUR == '>')
NEXT; NEXT;
if (oldname != NULL)
xmlFree(oldname);
return; return;
} }
if (oldname != NULL)
xmlFree(oldname);
/* /*
* Lookup the info for that element. * Lookup the info for that element.
@ -2399,7 +2447,7 @@ htmlParseElement(htmlParserCtxtPtr ctxt) {
/* /*
* Parse the content of the element: * Parse the content of the element:
*/ */
currentNode = ctxt->name; currentNode = xmlStrdup(ctxt->name);
depth = ctxt->nameNr; depth = ctxt->nameNr;
while (IS_CHAR(CUR)) { while (IS_CHAR(CUR)) {
htmlParseContent(ctxt); htmlParseContent(ctxt);
@ -2422,6 +2470,8 @@ htmlParseElement(htmlParserCtxtPtr ctxt) {
#endif #endif
if (oldname != NULL) if (oldname != NULL)
xmlFree(oldname); xmlFree(oldname);
if (currentNode != NULL)
xmlFree(currentNode);
return; return;
} }
@ -2435,6 +2485,8 @@ htmlParseElement(htmlParserCtxtPtr ctxt) {
node_info.node = ctxt->node; node_info.node = ctxt->node;
xmlParserAddNodeInfo(ctxt, &node_info); xmlParserAddNodeInfo(ctxt, &node_info);
} }
if (currentNode != NULL)
xmlFree(currentNode);
} }
/** /**
@ -2580,6 +2632,7 @@ htmlInitParserCtxt(htmlParserCtxtPtr ctxt)
ctxt->html = 1; ctxt->html = 1;
ctxt->record_info = 0; ctxt->record_info = 0;
ctxt->validate = 0; ctxt->validate = 0;
ctxt->nbChars = 0;
xmlInitNodeInfoSeq(&ctxt->node_seq); xmlInitNodeInfoSeq(&ctxt->node_seq);
} }

View File

@ -148,6 +148,7 @@ typedef struct _xmlParserCtxt {
int nameMax; /* Max depth of the parsing stack */ int nameMax; /* Max depth of the parsing stack */
xmlChar * *nameTab; /* array of nodes */ xmlChar * *nameTab; /* array of nodes */
long nbChars; /* number of xmlChar processed */
} _xmlParserCtxt; } _xmlParserCtxt;
typedef _xmlParserCtxt xmlParserCtxt; typedef _xmlParserCtxt xmlParserCtxt;
typedef xmlParserCtxt *xmlParserCtxtPtr; typedef xmlParserCtxt *xmlParserCtxtPtr;

View File

@ -148,6 +148,7 @@ typedef struct _xmlParserCtxt {
int nameMax; /* Max depth of the parsing stack */ int nameMax; /* Max depth of the parsing stack */
xmlChar * *nameTab; /* array of nodes */ xmlChar * *nameTab; /* array of nodes */
long nbChars; /* number of xmlChar processed */
} _xmlParserCtxt; } _xmlParserCtxt;
typedef _xmlParserCtxt xmlParserCtxt; typedef _xmlParserCtxt xmlParserCtxt;
typedef xmlParserCtxt *xmlParserCtxtPtr; typedef xmlParserCtxt *xmlParserCtxtPtr;

View File

@ -1,12 +1,12 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML> <html>
<HEAD> <head>
<TITLE>This service is temporary down</TITLE> <title>This service is temporary down</title>
</HEAD> </head>
<BODY bgcolor="#FFFFFF"> <body bgcolor="#FFFFFF">
<H1 align="center">Sorry, this service is temporary down</H1> <h1 align="center">Sorry, this service is temporary down</h1>
We are doing our best to get it back on-line, We are doing our best to get it back on-line,
<P>The W3C system administrators</P> <p>The W3C system administrators</p>
</BODY> </body>
</HTML> </html>

View File

@ -1,160 +1,160 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML> <html>
<HEAD> <head>
<META name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<TITLE>README - Microsoft FrontPage 2000 Server Extensions</TITLE> <title>README - Microsoft FrontPage 2000 Server Extensions</title>
<META name="Microsoft Theme" content="none"> <meta name="Microsoft Theme" content="none">
</HEAD> </head>
<BODY> <body>
<FONT face="Verdana"> <font face="Verdana">
<H1> <h1>
<A name="top">Microsoft FrontPage 2000 Server Extensions, UNIX</A> <a name="top">Microsoft FrontPage 2000 Server Extensions, UNIX</a>
</H1> </h1>
<FONT size="2"> <font size="2">
<I>&#169; Copyright Microsoft Corporation, 1999&#160;</I> <i>&#169; Copyright Microsoft Corporation, 1999&#160;</i>
</FONT> </font>
<P>The FrontPage Server Extensions are a set of programs on the Web server that support: <p>The FrontPage Server Extensions are a set of programs on the Web server that support:
</P> </p>
<UL> <ul>
<LI>Authoring FrontPage webs</LI> <li>Authoring FrontPage webs</li>
<LI>Administering FrontPage webs</LI> <li>Administering FrontPage webs</li>
<LI>Browse-time FrontPage web functionality</LI> <li>Browse-time FrontPage web functionality</li>
</UL> </ul>
<H2>Contents&#160;</H2> <h2>Contents&#160;</h2>
<A href="#relnotes">Release Notes</A> <a href="#relnotes">Release Notes</a>
<BR> <br>
<A href="#moreinfo">Resources for More Information</A> <a href="#moreinfo">Resources for More Information</a>
<P>&#160;</P> <p>&#160;</p>
<HR> <hr>
<H2> <h2>
<A name="relnotes">Release Notes</A> <a name="relnotes">Release Notes</a>
</H2> </h2>
<P>This section provides complementary or late-breaking <p>This section provides complementary or late-breaking
information to supplement the Microsoft FrontPage Server Extensions documentation.</P> information to supplement the Microsoft FrontPage Server Extensions documentation.</p>
<P> <p>
<A href="#apache">Apache 1.3.4 Support</A> <a href="#apache">Apache 1.3.4 Support</a>
<BR> <br>
<A href="#upgrading">Upgrading from previous version of FrontPage Server Extensions</A> <a href="#upgrading">Upgrading from previous version of FrontPage Server Extensions</a>
<BR> <br>
<A href="#executables">Uploading files into executable folders</A> <a href="#executables">Uploading files into executable folders</a>
</P> </p>
<P align="right"> <p align="right">
<FONT size="1"> <font size="1">
<A href="#top">Top of Page</A> <a href="#top">Top of Page</a>
</FONT> </font>
</P> </p>
<H3> <h3>
<A name="apache">Apache 1.3.4 Support</A> <a name="apache">Apache 1.3.4 Support</a>
</H3> </h3>
<P>You need to take some special steps to run the FrontPage Server Extensions with Apache 1.3.4. <p>You need to take some special steps to run the FrontPage Server Extensions with Apache 1.3.4.
FrontPage Server Extensions expect to find all resource directives in the main server FrontPage Server Extensions expect to find all resource directives in the main server
configuration file, usually http.conf. To prevent the server extensions from using any secondary configuration file, usually http.conf. To prevent the server extensions from using any secondary
configuration files (access.conf, srm.conf), add the following lines to http.conf:</P> configuration files (access.conf, srm.conf), add the following lines to http.conf:</p>
</FONT> </font>
<BLOCKQUOTE> <blockquote>
<FONT face="Courier New"> <font face="Courier New">
ResourceConfig /dev/null&#160;<BR> ResourceConfig /dev/null&#160;<br>
AccessConfig /dev/null</FONT> AccessConfig /dev/null</font>
</BLOCKQUOTE> </blockquote>
<FONT face="Verdana"> <font face="Verdana">
<P>If you have some settings stored in secondary configuration files, move them to http.conf.</P> <p>If you have some settings stored in secondary configuration files, move them to http.conf.</p>
<P>You must stop and restart the web server for your changes to http.conf to take effect.</P> <p>You must stop and restart the web server for your changes to http.conf to take effect.</p>
<P align="right"> <p align="right">
<FONT size="1"> <font size="1">
<A href="#relnotes">Top of Section</A> <a href="#relnotes">Top of Section</a>
</FONT> </font>
</P> </p>
<H3> <h3>
<A name="upgrading">Upgrading from previous version of FrontPage Server Extensions</A> <a name="upgrading">Upgrading from previous version of FrontPage Server Extensions</a>
</H3> </h3>
<P>Custom entries in frontpage.cnf are not migrated to FrontPage 2000.</P> <p>Custom entries in frontpage.cnf are not migrated to FrontPage 2000.</p>
<P>When you install FrontPage 2000 Server Extensions, a new frontpage.cnf file is created in the /usr/local/frontpage/version4.0 directory. <p>When you install FrontPage 2000 Server Extensions, a new frontpage.cnf file is created in the /usr/local/frontpage/version4.0 directory.
Any custom settings stored in a previous-version frontpage.cnf are not used. However, you can copy Any custom settings stored in a previous-version frontpage.cnf are not used. However, you can copy
your custom settings from the previous-version frontpage.cnf file after you install the FrontPage 2000 Server Extensions.</P> your custom settings from the previous-version frontpage.cnf file after you install the FrontPage 2000 Server Extensions.</p>
<P>Do not overwrite the FrontPage 2000 frontpage.cnf file with a frontpage.cnf file from an <p>Do not overwrite the FrontPage 2000 frontpage.cnf file with a frontpage.cnf file from an
earlier version of the FrontPage Server Extensions.</P> earlier version of the FrontPage Server Extensions.</p>
<P align="right"> <p align="right">
<FONT size="1"> <font size="1">
<A href="#relnotes">Top of Section</A> <a href="#relnotes">Top of Section</a>
</FONT> </font>
</P> </p>
<H3> <h3>
<A name="executables">Uploading files into executable folders</A> <a name="executables">Uploading files into executable folders</a>
</H3> </h3>
<P>After upgrading to FrontPage 2000, FrontPage authors will not be able to upload files into <p>After upgrading to FrontPage 2000, FrontPage authors will not be able to upload files into
executable folders. For security reasons, the default setting on FrontPage 2000 webs does not executable folders. For security reasons, the default setting on FrontPage 2000 webs does not
allow authors to upload executable files into executable folders in a FrontPage web. This allow authors to upload executable files into executable folders in a FrontPage web. This
setting protects servers so that authors do not inadvertently upload a program containing a bug setting protects servers so that authors do not inadvertently upload a program containing a bug
or a virus.</P> or a virus.</p>
<P>To allow FrontPage authors to upload executables, set the NoExecutableCgiUpload configuration <p>To allow FrontPage authors to upload executables, set the NoExecutableCgiUpload configuration
variable to zero (0). For information about FrontPage Server Extension configuration variables, variable to zero (0). For information about FrontPage Server Extension configuration variables,
see the FrontPage 2000 Server Extensions Resource Kit at <A href="http://officeupdate.microsoft.com/frontpage/wpp/serk/">http://officeupdate.microsoft.com/frontpage/wpp/serk/</A>.</P> see the FrontPage 2000 Server Extensions Resource Kit at <a href="http://officeupdate.microsoft.com/frontpage/wpp/serk/">http://officeupdate.microsoft.com/frontpage/wpp/serk/</a>.</p>
<P align="right"> <p align="right">
<FONT size="1"> <font size="1">
<A href="#relnotes">Top of Section</A> <a href="#relnotes">Top of Section</a>
</FONT> </font>
</P> </p>
<HR> <hr>
<H2> <h2>
<A name="moreinfo">Resources for More Information</A> <a name="moreinfo">Resources for More Information</a>
</H2> </h2>
<P>This section lists sources of more information about the <p>This section lists sources of more information about the
FrontPage Server Extensions.</P> FrontPage Server Extensions.</p>
<P> <p>
<A href="#serk">Server Extensions Resource Kit</A> <a href="#serk">Server Extensions Resource Kit</a>
<BR> <br>
<A href="#serkupdate">Server Extensions Resource Kit Update</A> <a href="#serkupdate">Server Extensions Resource Kit Update</a>
<BR> <br>
<A href="#kb">Knowledge Base</A> <a href="#kb">Knowledge Base</a>
</P> </p>
<P align="right"> <p align="right">
<FONT size="1"> <font size="1">
<A href="#top">Top of Page</A> <a href="#top">Top of Page</a>
</FONT> </font>
</P> </p>
<H3> <h3>
<A name="serk">Server Extensions Resource Kit</A> <a name="serk">Server Extensions Resource Kit</a>
</H3> </h3>
<P>The FrontPage 2000 Server Extensions include a full set of documentation: the Server <p>The FrontPage 2000 Server Extensions include a full set of documentation: the Server
Extensions Resource Kit. This is an HTML document installed on the server machine (by Extensions Resource Kit. This is an HTML document installed on the server machine (by
default) in /usr/local/frontpage/version4.0/serk. To view the Server Extensions Resource default) in /usr/local/frontpage/version4.0/serk. To view the Server Extensions Resource
Kit, open /usr/local/frontpage/version4.0/serk/default.htm in your Web browser.</P> Kit, open /usr/local/frontpage/version4.0/serk/default.htm in your Web browser.</p>
<P>The Server Extensions Resource Kit contains detailed information about installing and <p>The Server Extensions Resource Kit contains detailed information about installing and
administering the FrontPage Server Extensions along with an overview of the Server administering the FrontPage Server Extensions along with an overview of the Server
Extensions, a detailed discussion of Server Extensions security on UNIX and Windows, Extensions, a detailed discussion of Server Extensions security on UNIX and Windows,
troubleshooting information, and a full set of appendixes.</P> troubleshooting information, and a full set of appendixes.</p>
<P align="right"> <p align="right">
<FONT size="1"> <font size="1">
<A href="#moreinfo">Top of Section</A> <a href="#moreinfo">Top of Section</a>
</FONT> </font>
</P> </p>
<H3> <h3>
<A name="serkupdate">Server Extensions Resource Kit Update</A> <a name="serkupdate">Server Extensions Resource Kit Update</a>
</H3> </h3>
<P>For updated information about installing, setting up, and administrating the FrontPage Server <p>For updated information about installing, setting up, and administrating the FrontPage Server
Extensions, see the Server Extensions Resource Kit Update at: <A href="http://officeupdate.microsoft.com/frontpage/wpp/serk/">http://officeupdate.microsoft.com/frontpage/wpp/serk/</A>.</P> Extensions, see the Server Extensions Resource Kit Update at: <a href="http://officeupdate.microsoft.com/frontpage/wpp/serk/">http://officeupdate.microsoft.com/frontpage/wpp/serk/</a>.</p>
<P align="right"> <p align="right">
<FONT size="1"> <font size="1">
<A href="#moreinfo">Top of Section</A> <a href="#moreinfo">Top of Section</a>
</FONT> </font>
</P> </p>
<H3> <h3>
<A name="kb">Microsoft Knowledge Base</A> <a name="kb">Microsoft Knowledge Base</a>
</H3> </h3>
<P>For further technical information on FrontPage, please consult Support Online. Use Support <p>For further technical information on FrontPage, please consult Support Online. Use Support
Online to easily search Microsoft Product Support Services' collection of resources including Online to easily search Microsoft Product Support Services' collection of resources including
technical articles from Microsoft's extensive Knowledge Base, FAQs, troubleshooters to find technical articles from Microsoft's extensive Knowledge Base, FAQs, troubleshooters to find
fast, accurate answers. You can also customize the site to control your search using either fast, accurate answers. You can also customize the site to control your search using either
keywords or the site's natural language search engine, which uses normal everyday language for keywords or the site's natural language search engine, which uses normal everyday language for
answering inquiries, so you can write your question in your own words. To begin, go to answering inquiries, so you can write your question in your own words. To begin, go to
<A href="http://support.microsoft.com/support/">http://support.microsoft.com/support/</A>.</P> <a href="http://support.microsoft.com/support/">http://support.microsoft.com/support/</a>.</p>
<P align="right"> <p align="right">
<FONT size="1"> <font size="1">
<A href="#moreinfo">Top of Section</A> <a href="#moreinfo">Top of Section</a>
</FONT> </font>
</P> </p>
<P>&#160;</P> <p>&#160;</p>
</FONT> </font>
</BODY> </body>
</HTML> </html>

View File

@ -1,14 +1,14 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML> <html>
<HEAD> <head>
<TITLE></TITLE> <title></title>
</HEAD> </head>
<BODY> <body>
<UL> <ul>
<LI>First item <li>First item
</LI> </li>
<LI>Second item, closes the first one <li>Second item, closes the first one
</LI> </li>
</UL> </ul>
</BODY> </body>
</HTML> </html>

View File

@ -1,12 +1,12 @@
<!DOCTYPE HTML> <!DOCTYPE HTML>
<HTML> <html>
<HEAD> <head>
<TITLE>Regression test 1</TITLE> <title>Regression test 1</title>
</HEAD> </head>
<BODY> <body>
<H1>Regression test 1</H1> <h1>Regression test 1</h1>
<P> <p>
Ok file no problem Ok file no problem
</P> </p>
</BODY> </body>
</HTML> </html>

View File

@ -1,15 +1,15 @@
<!DOCTYPE HTML> <!DOCTYPE HTML>
<HTML> <html>
<HEAD> <head>
<TITLE>Regression test 2</TITLE> <title>Regression test 2</title>
</HEAD> </head>
<BODY> <body>
<H1>Regression test 2</H1> <h1>Regression test 2</h1>
<P> <p>
Autoclose of tag P Autoclose of tag P
</P> </p>
<P> <p>
Ok file no problem Ok file no problem
</P> </p>
</BODY> </body>
</HTML> </html>

View File

@ -1,16 +1,16 @@
<!DOCTYPE HTML> <!DOCTYPE HTML>
<HTML> <html>
<HEAD> <head>
<TITLE>Regression test 3</TITLE> <title>Regression test 3</title>
</HEAD> </head>
<BODY> <body>
<H1>Regression test 3</H1> <h1>Regression test 3</h1>
<P> <p>
Autoclose of tag P Autoclose of tag P
</P> </p>
<HR> <hr>
<P> <p>
Ok file no problem Ok file no problem
</P> </p>
</BODY> </body>
</HTML> </html>

View File

@ -1,13 +1,13 @@
<!DOCTYPE HTML> <!DOCTYPE HTML>
<HTML> <html>
<HEAD> <head>
<TITLE>Regression test 4</TITLE> <title>Regression test 4</title>
</HEAD> </head>
<BODY> <body>
<H1>Regression test 4</H1> <h1>Regression test 4</h1>
<P> <p>
Wrong close of tag P Wrong close of tag P
</P> </p>
<HR> <hr>
</BODY> </body>
</HTML> </html>

View File

@ -1,41 +1,41 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML> <html>
<HEAD> <head>
<TITLE>Linux Today</TITLE> <title>Linux Today</title>
</HEAD> </head>
<BODY bgcolor="White" link="Blue" text="Black" VLINK="Black" ALINK="Red"> <body bgcolor="White" link="Blue" text="Black" VLINK="Black" ALINK="Red">
<CENTER> <center>
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="0"> <table BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="0">
<TR BGCOLOR="#FFFFFF"> <tr BGCOLOR="#FFFFFF">
<TD HEIGHT="90"> <td HEIGHT="90">
<A href="http://linuxtoday.com/cgi-bin/click.pl?adnum=49"> <a href="http://linuxtoday.com/cgi-bin/click.pl?adnum=49">
<IMG src="/pics/door_linux.gif" border="0" width="468" height="60" alt="Atipa Linux solutions. Your reliable cluster, server, and workstation solution. Win a Free Celeron Linux Workstation!"> <img src="/pics/door_linux.gif" border="0" width="468" height="60" alt="Atipa Linux solutions. Your reliable cluster, server, and workstation solution. Win a Free Celeron Linux Workstation!">
</A> </a>
</TD> </td>
<TD> <td>
<IMG SRC="/pics/lt.gif" VSPACE="5" alt="Linux Today Logo"> <img SRC="/pics/lt.gif" VSPACE="5" alt="Linux Today Logo">
<BR> <br>
<FONT size="-1"> <font size="-1">
<A href="http://linux.com">linux.com</A> partner</FONT> <a href="http://linux.com">linux.com</a> partner</font>
<P> <p>
</TD> </td>
</TR> </tr>
</TABLE> </table>
<FONT size="2" face="Helvetica"> <font size="2" face="Helvetica">
[ <A href="http://linuxtoday.com/">headlines</A> | [ <a href="http://linuxtoday.com/">headlines</a> |
<A href="http://features.linuxtoday.com/">features</A> | <a href="http://features.linuxtoday.com/">features</a> |
<A href="http://commercial.linuxtoday.com/">commercial</A> | <a href="http://commercial.linuxtoday.com/">commercial</a> |
<A href="http://security.linuxtoday.com/">security</A> | <a href="http://security.linuxtoday.com/">security</a> |
<A href="http://jobs.linuxtoday.com/">jobs</A> | <a href="http://jobs.linuxtoday.com/">jobs</a> |
<A href="http://linuxtoday.com/volt/">volt</A> | <a href="http://linuxtoday.com/volt/">volt</a> |
<A href="http://linuxtoday.com/contrib.pl">contribute/submit</A> | <a href="http://linuxtoday.com/contrib.pl">contribute/submit</a> |
<A href="http://linuxtoday.com/advertise/">advertise</A> | <a href="http://linuxtoday.com/advertise/">advertise</a> |
<A href="http://linuxtoday.com/search.html">search</A> | <a href="http://linuxtoday.com/search.html">search</a> |
<A href="http://linuxtoday.com/digests/">site digests</A> | <a href="http://linuxtoday.com/digests/">site digests</a> |
<A href="http://linuxtoday.com/mail-lists">mailing lists</A> | <a href="http://linuxtoday.com/mail-lists">mailing lists</a> |
<A href="http://linuxtoday.com/about/">about us</A> | <a href="http://linuxtoday.com/about/">about us</a> |
<A href="http://linuxtoday.com/linkus.html">link us</A> ]</FONT> <a href="http://linuxtoday.com/linkus.html">link us</a> ]</font>
</CENTER> </center>
<P> <p>
</BODY> </body>
</HTML> </html>

View File

@ -1,88 +1,88 @@
<!DOCTYPE HTML> <!DOCTYPE HTML>
<HTML> <html>
<HEAD> <head>
<BASE target="contents"> <base target="contents">
</HEAD> </head>
<A name="ProblemDomain.Package"> <a name="ProblemDomain.Package">
<H2>Component Package diagram ProblemDomain</H2> <h2>Component Package diagram ProblemDomain</h2>
</A> </a>
<P> <p>
<HR> <hr>
<DL> <dl>
<DT> <dt>
<B>Stereotype </B>problem domain</DT> <b>Stereotype </b>problem domain</dt>
<DT> <dt>
<B>Alias </B>Problem Domain</DT> <b>Alias </b>Problem Domain</dt>
<DT> <dt>
<B>Note </B> <b>Note </b>
</DT> </dt>
<DD>The Problem Domain package is the model behind the Human <dd>The Problem Domain package is the model behind the Human
<DD>Interface, thats stores and manipulates the Family Tree. <dd>Interface, thats stores and manipulates the Family Tree.
</DD> </dd>
</DD> </dd>
</DL> </dl>
<P> <p>
<HR> <hr>
<DL> <dl>
<DT> <dt>
<H4>Class <A href="HumanInterface.FamilyFrame.html#HumanInterface.FamilyFrame">HumanInterface.FamilyFrame</A> <h4>Class <a href="HumanInterface.FamilyFrame.html#HumanInterface.FamilyFrame">HumanInterface.FamilyFrame</a>
</H4> </h4>
</DT> </dt>
<DT> <dt>
<H4>Class <A href="ProblemDomain.Birth.html#ProblemDomain.Birth">ProblemDomain.Birth</A> <h4>Class <a href="ProblemDomain.Birth.html#ProblemDomain.Birth">ProblemDomain.Birth</a>
</H4> </h4>
</DT> </dt>
<DT> <dt>
<H4>Class <A href="ProblemDomain.Death.html#ProblemDomain.Death">ProblemDomain.Death</A> <h4>Class <a href="ProblemDomain.Death.html#ProblemDomain.Death">ProblemDomain.Death</a>
</H4> </h4>
</DT> </dt>
<DT> <dt>
<H4>Class <A href="ProblemDomain.Divorce.html#ProblemDomain.Divorce">ProblemDomain.Divorce</A> <h4>Class <a href="ProblemDomain.Divorce.html#ProblemDomain.Divorce">ProblemDomain.Divorce</a>
</H4> </h4>
</DT> </dt>
<DT> <dt>
<H4>Class <A href="ProblemDomain.Family.html#ProblemDomain.Family">ProblemDomain.Family</A> <h4>Class <a href="ProblemDomain.Family.html#ProblemDomain.Family">ProblemDomain.Family</a>
</H4> </h4>
</DT> </dt>
<DT> <dt>
<H4>Class <A href="ProblemDomain.Individual.html#ProblemDomain.Individual">ProblemDomain.Individual</A> <h4>Class <a href="ProblemDomain.Individual.html#ProblemDomain.Individual">ProblemDomain.Individual</a>
</H4> </h4>
</DT> </dt>
<DT> <dt>
<H4>Class <A href="ProblemDomain.LifeEvent.html#ProblemDomain.LifeEvent">ProblemDomain.LifeEvent</A> <h4>Class <a href="ProblemDomain.LifeEvent.html#ProblemDomain.LifeEvent">ProblemDomain.LifeEvent</a>
</H4> </h4>
</DT> </dt>
<DT> <dt>
<H4>Class <A href="ProblemDomain.Marriage.html#ProblemDomain.Marriage">ProblemDomain.Marriage</A> <h4>Class <a href="ProblemDomain.Marriage.html#ProblemDomain.Marriage">ProblemDomain.Marriage</a>
</H4> </h4>
</DT> </dt>
<DT> <dt>
<H4>Class <A href="ProblemDomain.Note.html#ProblemDomain.Note">ProblemDomain.Note</A> <h4>Class <a href="ProblemDomain.Note.html#ProblemDomain.Note">ProblemDomain.Note</a>
</H4> </h4>
</DT> </dt>
</DL> </dl>
<H4> <h4>
<B>Links</B> <b>Links</b>
</H4> </h4>
<UL> <ul>
<LI> <li>
<B>Link to </B> <b>Link to </b>
<A href="HumanInterface.Package.html#HumanInterface.Package">HumanInterface</A> <a href="HumanInterface.Package.html#HumanInterface.Package">HumanInterface</a>
</LI> </li>
</UL> </ul>
<DIR></DIR> <dir></dir>
<UL> <ul>
<LI> <li>
<B>Link to </B> <b>Link to </b>
<A href="DataManagement.FlatFile.Package.html#DataManagement.FlatFile.Package">DataManagement.FlatFile</A> <a href="DataManagement.FlatFile.Package.html#DataManagement.FlatFile.Package">DataManagement.FlatFile</a>
</LI> </li>
</UL> </ul>
<DIR></DIR> <dir></dir>
<UL> <ul>
<LI> <li>
<B>Link to </B> <b>Link to </b>
<A href="DataManagement.Package.html#DataManagement.Package">DataManagement</A> <a href="DataManagement.Package.html#DataManagement.Package">DataManagement</a>
</LI> </li>
</UL> </ul>
<DIR></DIR> <dir></dir>
</HTML> </html>

File diff suppressed because it is too large Load Diff