diff options
Diffstat (limited to '3rdparty/expat/doc')
-rw-r--r-- | 3rdparty/expat/doc/Makefile.am | 26 | ||||
-rw-r--r-- | 3rdparty/expat/doc/Makefile.in | 96 | ||||
-rw-r--r-- | 3rdparty/expat/doc/expat.png | bin | 920 -> 0 bytes | |||
-rw-r--r-- | 3rdparty/expat/doc/ok.min.css | 2 | ||||
-rw-r--r-- | 3rdparty/expat/doc/reference.html | 631 | ||||
-rw-r--r-- | 3rdparty/expat/doc/style.css | 134 | ||||
-rw-r--r-- | 3rdparty/expat/doc/valid-xhtml10.png | bin | 1981 -> 0 bytes | |||
-rw-r--r-- | 3rdparty/expat/doc/xmlwf.1 | 135 | ||||
-rw-r--r-- | 3rdparty/expat/doc/xmlwf.xml | 223 |
9 files changed, 850 insertions, 397 deletions
diff --git a/3rdparty/expat/doc/Makefile.am b/3rdparty/expat/doc/Makefile.am index e2f029837a4..3bea96e9aa6 100644 --- a/3rdparty/expat/doc/Makefile.am +++ b/3rdparty/expat/doc/Makefile.am @@ -6,7 +6,10 @@ # \___/_/\_\ .__/ \__,_|\__| # |_| XML parser # -# Copyright (c) 2017 Expat development team +# Copyright (c) 2017-2024 Sebastian Pipping <sebastian@pipping.org> +# Copyright (c) 2017 Stephen Groat <stephen@groat.us> +# Copyright (c) 2017 Joe Orton <jorton@redhat.com> +# Copyright (c) 2024 Tomas Korbar <tkorbar@redhat.com> # Licensed under the MIT license: # # Permission is hereby granted, free of charge, to any person obtaining @@ -30,30 +33,27 @@ .PHONY: dist-hook # not inside conditional to avoid automake warning -if WITH_DOCBOOK +if WITH_MANPAGE dist_man_MANS = xmlwf.1 xmlwf.1: xmlwf.xml -rm -f $@ - $(DOCBOOK_TO_MAN) $< + test "x$(DOCBOOK_TO_MAN)" != x && $(DOCBOOK_TO_MAN) $< test -f $@ || mv XMLWF.1 $@ -else +endif + +if !WITH_DISTRIBUTABLE_MANPAGE dist-hook: @echo 'ERROR: Configure with --with-docbook for "make dist".' 1>&2 @false endif -# https://www.gnu.org/software/automake/manual/automake.html#What-Gets-Cleaned -.PHONY: clean-local -clean-local: clean-local-check - -.PHONY: clean-local-check -clean-local-check: - $(RM) xmlwf.1 +if !WITH_PREBUILT_MANPAGE +CLEANFILES = xmlwf.1 +endif EXTRA_DIST = \ - expat.png \ + ok.min.css \ reference.html \ style.css \ - valid-xhtml10.png \ xmlwf.xml diff --git a/3rdparty/expat/doc/Makefile.in b/3rdparty/expat/doc/Makefile.in index 94550becf39..72deb0565d9 100644 --- a/3rdparty/expat/doc/Makefile.in +++ b/3rdparty/expat/doc/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.2 from Makefile.am. +# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2020 Free Software Foundation, Inc. +# Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -22,7 +22,10 @@ # \___/_/\_\ .__/ \__,_|\__| # |_| XML parser # -# Copyright (c) 2017 Expat development team +# Copyright (c) 2017-2024 Sebastian Pipping <sebastian@pipping.org> +# Copyright (c) 2017 Stephen Groat <stephen@groat.us> +# Copyright (c) 2017 Joe Orton <jorton@redhat.com> +# Copyright (c) 2024 Tomas Korbar <tkorbar@redhat.com> # Licensed under the MIT license: # # Permission is hereby granted, free of charge, to any person obtaining @@ -130,6 +133,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/conftools/ax-append-compile-flags.m4 \ $(top_srcdir)/conftools/ax-append-link-flags.m4 \ $(top_srcdir)/conftools/expatcfg-compiler-supports-visibility.m4 \ + $(top_srcdir)/conftools/ax-cxx-compile-stdcxx.m4 \ + $(top_srcdir)/conftools/ax-cxx-compile-stdcxx-11.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) @@ -207,8 +212,10 @@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CPP = @CPP@ +CMAKE_SHARED_LIBRARY_PREFIX = @CMAKE_SHARED_LIBRARY_PREFIX@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -224,10 +231,20 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ +EXPAT_ATTR_INFO = @EXPAT_ATTR_INFO@ +EXPAT_CHAR_TYPE = @EXPAT_CHAR_TYPE@ +EXPAT_CONTEXT_BYTES = @EXPAT_CONTEXT_BYTES@ +EXPAT_DTD = @EXPAT_DTD@ +EXPAT_LARGE_SIZE = @EXPAT_LARGE_SIZE@ +EXPAT_MIN_SIZE = @EXPAT_MIN_SIZE@ +EXPAT_NS = @EXPAT_NS@ FGREP = @FGREP@ +FILECMD = @FILECMD@ FILEMAP = @FILEMAP@ GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -237,6 +254,8 @@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBAGE = @LIBAGE@ LIBCURRENT = @LIBCURRENT@ +LIBDIR_BASENAME = @LIBDIR_BASENAME@ +LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBREVISION = @LIBREVISION@ LIBS = @LIBS@ @@ -245,6 +264,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -266,9 +286,12 @@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ +SIZEOF_VOID_P = @SIZEOF_VOID_P@ +SO_MAJOR = @SO_MAJOR@ +SO_MINOR = @SO_MINOR@ +SO_PATCH = @SO_PATCH@ STRIP = @STRIP@ VERSION = @VERSION@ -_EXPAT_OUTPUT_NAME = @_EXPAT_OUTPUT_NAME@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -323,18 +346,18 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -@WITH_DOCBOOK_TRUE@dist_man_MANS = xmlwf.1 +@WITH_MANPAGE_TRUE@dist_man_MANS = xmlwf.1 +@WITH_PREBUILT_MANPAGE_FALSE@CLEANFILES = xmlwf.1 EXTRA_DIST = \ - expat.png \ + ok.min.css \ reference.html \ style.css \ - valid-xhtml10.png \ xmlwf.xml all: all-am .SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -358,9 +381,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(top_srcdir)/configure: $(am__configure_deps) +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): @@ -418,8 +441,7 @@ ctags CTAGS: cscope cscopelist: -@WITH_DOCBOOK_TRUE@dist-hook: - +@WITH_DISTRIBUTABLE_MANPAGE_TRUE@dist-hook: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am @@ -485,6 +507,7 @@ install-strip: mostlyclean-generic: clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -495,7 +518,7 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-local mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile @@ -564,38 +587,31 @@ uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - clean-local cscopelist-am ctags-am dist-hook distclean \ - distclean-generic distclean-libtool distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man1 install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ - uninstall-am uninstall-man uninstall-man1 + cscopelist-am ctags-am dist-hook distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-man1 install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-man \ + uninstall-man1 .PRECIOUS: Makefile .PHONY: dist-hook # not inside conditional to avoid automake warning -@WITH_DOCBOOK_TRUE@xmlwf.1: xmlwf.xml -@WITH_DOCBOOK_TRUE@ -rm -f $@ -@WITH_DOCBOOK_TRUE@ $(DOCBOOK_TO_MAN) $< -@WITH_DOCBOOK_TRUE@ test -f $@ || mv XMLWF.1 $@ -@WITH_DOCBOOK_FALSE@dist-hook: -@WITH_DOCBOOK_FALSE@ @echo 'ERROR: Configure with --with-docbook for "make dist".' 1>&2 -@WITH_DOCBOOK_FALSE@ @false - -# https://www.gnu.org/software/automake/manual/automake.html#What-Gets-Cleaned -.PHONY: clean-local -clean-local: clean-local-check - -.PHONY: clean-local-check -clean-local-check: - $(RM) xmlwf.1 +@WITH_MANPAGE_TRUE@xmlwf.1: xmlwf.xml +@WITH_MANPAGE_TRUE@ -rm -f $@ +@WITH_MANPAGE_TRUE@ test "x$(DOCBOOK_TO_MAN)" != x && $(DOCBOOK_TO_MAN) $< +@WITH_MANPAGE_TRUE@ test -f $@ || mv XMLWF.1 $@ + +@WITH_DISTRIBUTABLE_MANPAGE_FALSE@dist-hook: +@WITH_DISTRIBUTABLE_MANPAGE_FALSE@ @echo 'ERROR: Configure with --with-docbook for "make dist".' 1>&2 +@WITH_DISTRIBUTABLE_MANPAGE_FALSE@ @false # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/3rdparty/expat/doc/expat.png b/3rdparty/expat/doc/expat.png Binary files differdeleted file mode 100644 index 7d7c3dbaebc..00000000000 --- a/3rdparty/expat/doc/expat.png +++ /dev/null diff --git a/3rdparty/expat/doc/ok.min.css b/3rdparty/expat/doc/ok.min.css new file mode 100644 index 00000000000..d324fabb287 --- /dev/null +++ b/3rdparty/expat/doc/ok.min.css @@ -0,0 +1,2 @@ +/*! OK.css v1.2.0 | MIT License | github.com/andrewh0/okcss */@import url("https://rsms.me/inter/inter.css"); +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--ok-sans:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue","Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--ok-mono:SFMono-Regular,Menlo,Monaco,Consolas,"Ubuntu Mono","Liberation Mono","Courier New",Courier,monospace;--ok-fw-0:400;--ok-fw-1:600;--ok-fw-2:700;--ok-fw-3:700;--ok-fs-0:2.5rem;--ok-fs-1:2rem;--ok-fs-2:1.5rem;--ok-fs-3:1.25rem;--ok-fs-4:1rem;--ok-fs-5:0.75rem;--ok-br:0.25rem;--ok-s-0:0;--ok-s-1:0.25rem;--ok-s-2:0.5rem;--ok-s-3:1rem;--ok-s-4:1.5rem;--ok-s-5:2rem;--ok-s-6:2.5rem;--ok-lh-body:1.5;--ok-lh-heading:1.25;--ok-t-hl:#ffcf30;--ok-accent-0:#3e67fa;--ok-accent-1:#4788ff;--ok-tc-accent:#3173de;--ok-tc-code:#c23a30;--ok-tc-0:#000;--ok-tc-1:#747474;--ok-tc-2:#848484;--ok-bg-0:#fff;--ok-bg-1:#f0f0f0;--ok-bg-2:#ccc;--ok-b-0:1px solid #cbcbcb;--ok-b-1:1px solid #848484;--ok-down-0:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='8' viewBox='0 0 12 8' width='24' fill='none'%3E%3Cpath d='M6 6l4-4h1v1-1L6 7 1 2h1l4 4z' fill='%23747474'/%3E%3C/svg%3E");--ok-down-1:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='8' viewBox='0 0 12 8' width='24' fill='none'%3E%3Cpath d='M6 6l4-4h1v1-1L6 7 1 2h1l4 4z' fill='%23848484'/%3E%3C/svg%3E")}@media (prefers-color-scheme:dark){:root{--ok-tc-accent:#5c9aff;--ok-tc-code:#ed5853;--ok-tc-0:#fff;--ok-tc-1:#ababab;--ok-tc-2:#929292;--ok-bg-0:#000;--ok-bg-1:#212121;--ok-bg-2:#3e3e3e;--ok-b-0:1px solid #747474;--ok-b-1:1px solid #929292;--ok-down-0:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='8' viewBox='0 0 12 8' width='24' fill='none'%3E%3Cpath d='M6 6l4-4h1v1-1L6 7 1 2h1l4 4z' fill='%23ababab'/%3E%3C/svg%3E");--ok-down-1:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='8' viewBox='0 0 12 8' width='24' fill='none'%3E%3Cpath d='M6 6l4-4h1v1-1L6 7 1 2h1l4 4z' fill='%23929292'/%3E%3C/svg%3E")}}*,:after,:before{box-sizing:border-box}*{margin:0;padding:0}html{font-family:var(--ok-sans);line-sizing:normal;line-height:var(--ok-lh-body);font-weight:var(--ok-fw-0);color:var(--ok-tc-0);background-color:var(--ok-bg-0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%;text-rendering:optimizeLegibility;scroll-behavior:smooth}@supports (font-variation-settings:normal){html{font-family:Inter var,var(--ok-sans)}}button,input,optgroup,select,textarea{font-family:inherit;line-height:var(--ok-lh-body)}[role=button],button{cursor:pointer}audio,canvas,embed,iframe,img,input,object,select,svg,textarea,video{display:block}img,video{max-width:100%;height:auto}body{padding:var(--ok-s-3);max-width:80ch;margin:auto}article{padding-bottom:var(--ok-s-6)}h1{font-size:var(--ok-fs-0);margin:0}h2{font-size:var(--ok-fs-1)}h3{font-size:var(--ok-fs-2)}h4{font-size:var(--ok-fs-3)}h5{font-size:var(--ok-fs-4)}h6{font-size:var(--ok-fs-5);text-transform:uppercase;font-weight:var(--ok-fw-1)}h1,h2,h3,h4,h5,h6{line-height:var(--ok-lh-heading);font-weight:var(--ok-fw-3);margin-top:var(--ok-s-6);margin-bottom:var(--ok-s-3)}h1+*,h2+*,h3+*,h4+*,h5+*,h6+*,hr+*{margin-top:0}p{font-size:var(--ok-fs-4)}small{font-size:var(--ok-fs-5)}b,dt,strong{font-weight:var(--ok-fw-2)}address,article,aside,audio,blockquote,button,canvas,dd,details,dialog,div,dl,embed,fieldset,figcaption,figure,footer,form,header,hgroup,hr,iframe,img,input,main,nav,object,ol,p,pre,section,select,summary,svg,table,textarea,ul,video{margin-bottom:var(--ok-s-4)}address:last-child,article:last-child,aside:last-child,blockquote:last-child,dd:last-child,details:last-child,dialog:last-child,div:last-child,dl:last-child,dt:last-child,fieldset:last-child,figcaption:last-child,figure:last-child,footer:last-child,form:last-child,h1:last-child,h2:last-child,h3:last-child,h4:last-child,h5:last-child,h6:last-child,header:last-child,hgroup:last-child,hr:last-child,input[type=checkbox],input[type=radio],main:last-child,nav:last-child,ol:last-child,p:last-child,pre:last-child,section:last-child,table:last-child,ul:last-child{margin-bottom:0}fieldset{padding:var(--ok-s-3);border:var(--ok-b-0);border-radius:var(--ok-br)}legend{font-weight:var(--ok-fw-1);text-transform:uppercase;font-size:var(--ok-fs-5)}input,select{padding:var(--ok-s-2);background:var(--ok-bg-0);border:var(--ok-b-0);border-radius:var(--ok-br);color:var(--ok-tc-0);min-width:25ch}input:disabled,select:disabled,textarea:disabled{color:var(--ok-tc-2)}input::placeholder,textarea::placeholder{color:var(--ok-tc-2)}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:var(--ok-tc-2)}input::-moz-placeholder,textarea::-moz-placeholder{color:var(--ok-tc-2)}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--ok-tc-2)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--ok-tc-2)}input::-webkit-clear-button,input::-webkit-inner-spin-button,input::-webkit-search-cancel-button,input::-webkit-search-results-button{display:none}input::-ms-clear,input::-ms-reveal{display:none}input:disabled,textarea:disabled{background-color:var(--ok-bg-1)}input[type=search]{-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=file]{max-width:300px}input[type=number]{-moz-appearance:textfield}input[type=checkbox],input[type=radio]{display:inline;min-width:auto}input[type=color]{height:2.5rem}input[type=date],input[type=datetime-local],input[type=month],input[type=time],input[type=week]{height:2.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative}input[type=date]:before,input[type=datetime-local]:before,input[type=month]:before,input[type=time]:before,input[type=week]:before{position:absolute;right:0;top:0;background-image:var(--ok-down-0);background-repeat:no-repeat;background-position:right .2em top 50%;background-size:2em auto;width:2.5rem;height:calc(2.5rem - 2px);content:""}input[type=date]:disabled:before,input[type=datetime-local]:disabled:before,input[type=month]:disabled:before,input[type=time]:disabled:before,input[type=week]:disabled:before{background-image:var(--ok-down-1)}input::-webkit-calendar-picker-indicator{position:absolute;top:0;right:0;background-color:transparent;cursor:pointer;padding:0;width:2.5rem;height:calc(2.5rem - 2px);content:"";opacity:0}input[type=range]{overflow:visible;line-height:inherit;font-family:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;outline:none;cursor:pointer;padding:0;vertical-align:middle;border:none;min-height:2rem;background-color:transparent}input[type=range]::-webkit-slider-runnable-track{cursor:pointer;-webkit-appearance:none;border-radius:var(--ok-br);border:var(--ok-b-0);background-color:var(--ok-bg-1);background-image:linear-gradient(var(--ok-bg-1),var(--ok-bg-1));width:100%;height:.5rem;color:transparent;box-sizing:border-box;position:relative}input[type=range]::-moz-range-track{cursor:pointer;-moz-appearance:none;border-radius:var(--ok-br);border:var(--ok-b-0);background-color:var(--ok-bg-1);background-image:linear-gradient(var(--ok-bg-1),var(--ok-bg-1));width:100%;height:.5rem;color:transparent;box-sizing:border-box}input[type=range]::-ms-track{cursor:pointer;-ms-appearance:none;border-radius:var(--ok-br);border:var(--ok-b-0);background-color:var(--ok-bg-1);background-image:linear-gradient(var(--ok-bg-1),var(--ok-bg-1));width:100%;height:.5rem;color:transparent;box-sizing:border-box}input[type=range]::-ms-fill-lower{background:transparent}input[type=range]::-webkit-slider-thumb{cursor:pointer;-webkit-appearance:none;border-radius:50%;background-color:var(--ok-accent-0);width:1.5rem;height:1.5rem;margin-top:calc(-.5rem - 1px)}input[type=range]::-moz-range-thumb{cursor:pointer;-moz-appearance:none;border:none;border-radius:50%;background-color:var(--ok-accent-0);width:1.5rem;height:1.5rem}input[type=range]::-ms-thumb{cursor:pointer;-ms-appearance:none;border-radius:50%;background-color:var(--ok-accent-0);width:1.5rem;height:1.5rem;transform:translateY(.25rem)}input[type=range]:focus:not(:disabled)::-webkit-slider-thumb{background-color:var(--ok-accent-1)}input[type=range]:focus:not(:disabled)::-moz-range-thumb{background-color:var(--ok-accent-1)}input[type=range]:focus:not(:disabled)::-ms-thumb{background-color:var(--ok-accent-1)}input[type=range]:disabled{cursor:default}input[type=range]:disabled::-webkit-slider-runnable-track{cursor:default}input[type=range]:disabled::-moz-range-track{cursor:default}input[type=range]:disabled::-ms-track{cursor:default}input[type=range]:disabled::-webkit-slider-thumb{background-color:var(--ok-bg-2);cursor:default}input[type=range]:disabled::-moz-range-thumb{background-color:var(--ok-bg-2);cursor:default}input[type=range]:disabled::-ms-thumb{background-color:var(--ok-bg-2);cursor:default}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:var(--ok-b-0);border-radius:var(--ok-br);background-color:var(--ok-bg-0);min-height:2.5rem;color:var(--ok-tc-0)}select:not([multiple]){background-image:var(--ok-down-0);background-repeat:no-repeat,repeat;background-position:right .2em top 50%;background-size:2em auto;padding-right:2.5em;height:2.5rem}select::-ms-expand{display:none}select:not([multiple]):disabled{background-image:var(--ok-down-1);background-color:var(--ok-bg-1);cursor:default}select[multiple]{border-radius:var(--ok-br)}select[multiple]:disabled{background-color:var(--ok-bg-1)}select[multiple] option{color:var(--ok-t-)}select[multiple]:disabled option{color:var(--ok-tc-2)}textarea{padding:var(--ok-s-2);resize:vertical;background:var(--ok-bg-0);border:var(--ok-b-0);border-radius:var(--ok-br);color:var(--ok-tc-0);min-height:calc(2.5rem - 2px);min-width:25ch}button,input[type=button],input[type=reset],input[type=submit]{display:inline-block;background-color:var(--ok-accent-0);border-radius:var(--ok-br);color:#fff;font-weight:var(--ok-fw-1);height:2.5rem;border:none;padding:var(--ok-s-2) var(--ok-s-3);white-space:nowrap;min-width:auto}input::-webkit-file-upload-button{display:inline-block;background-color:var(--ok-accent-0);border-radius:var(--ok-br);color:#fff;font-weight:var(--ok-fw-1);height:2.5rem;border:none;padding:var(--ok-s-2) var(--ok-s-3);white-space:nowrap}input:disabled::-webkit-file-upload-button{cursor:default;opacity:.5}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer}input:not(:disabled)::-webkit-file-upload-button{cursor:pointer}button:disabled,input[type=button]:disabled,input[type=reset]:disabled,input[type=submit]:disabled{cursor:default;opacity:.5;background-color:var(--ok-accent-0)}button:focus:not(:disabled),input[type=button]:focus:not(:disabled),input[type=reset]:focus:not(:disabled),input[type=submit]:focus:not(:disabled){background-color:var(--ok-accent-1)}input:not(:disabled):focus::-webkit-file-upload-button{background-color:var(--ok-accent-1)}table{border-collapse:collapse;display:table;margin-left:auto;margin-right:auto;white-space:nowrap}tfoot,thead{border:var(--ok-b-0)}thead{position:-webkit-sticky;position:sticky;top:0}tfoot tr,thead tr{background-color:var(--ok-bg-1);font-size:var(--ok-fs-5);text-transform:uppercase;color:var(--ok-tc-0)}td,th{border:var(--ok-b-0) 0;text-align:left;padding:.5rem}td{white-space:normal;max-width:20ch}tr{border:var(--ok-b-0)}table caption{font-size:var(--ok-fs-4);font-weight:var(--ok-fw-3);padding:.5rem}code,samp{padding:.2em .4em;color:var(--ok-tc-code)}code,pre,samp{font-family:var(--ok-mono);font-size:87.5%;line-height:var(--ok-lh-body);background-color:var(--ok-bg-1);border-radius:var(--ok-br);text-transform:none}pre{padding:var(--ok-s-3);white-space:pre;overflow-x:auto}pre,var{color:var(--ok-tc-0)}var{font-family:var(--ok-mono);font-style:normal}code pre,pre code{background:inherit;font-size:inherit;color:inherit;border:0;padding:0;margin:0}code pre{display:inline}kbd{background-color:var(--ok-bg-1);border:var(--ok-b-0);border-radius:var(--ok-br);border-bottom:2px solid var(--ok-bg-2);padding:var(--ok-s-1);font-family:var(--ok-sans);color:var(--ok-tc-0)}a{text-decoration:none;font-weight:var(--ok-fw-1)}a,a:visited,a code,a mark,a samp{color:var(--ok-tc-accent)}ol,ul{padding-left:var(--ok-s-5)}nav ul{text-decoration:none;padding-left:0}nav ul li{display:inline;margin-right:1em}li p{margin-bottom:0}li,li p+p{margin-top:.5em}audio,img,video{margin-left:auto;margin-right:auto}img{border-radius:var(--ok-br)}figure>img:not(:last-child){margin-bottom:var(--ok-s-1)}figure>figcaption{text-align:center}figcaption,time{font-size:var(--ok-fs-5);color:var(--ok-tc-1)}mark{padding:.2em .4em;background:var(--ok-t-hl);color:#000;border-radius:var(--ok-br)}iframe{border:var(--ok-b-0);border-radius:var(--ok-br);width:100%}hr{border:none;border-bottom:var(--ok-b-0)}footer{font-size:var(--ok-fs-5)}blockquote,footer{color:var(--ok-tc-1)}blockquote{position:relative;margin-left:0;margin-right:0;padding-left:var(--ok-s-5)}blockquote:before{position:absolute;height:100%;content:"";width:4px;left:0;border-radius:var(--ok-br);background-color:var(--ok-bg-1)}dd{padding-left:var(--ok-s-5)}abbr{cursor:help}@media (hover:hover){a:hover{text-decoration:underline}input:hover:not(:disabled):not(:focus):not([type=submit]):not([type=button]):not([type=reset]):not([type=range]),select:hover:not(:disabled):not(:focus),textarea:hover:not(:disabled):not(:focus){border:var(--ok-b-1)}input[type=range]:hover:not(:disabled)::-webkit-slider-runnable-track{border:var(--ok-b-1)}input[type=range]:hover:not(:disabled)::-moz-range-track{border:var(--ok-b-1)}input[type=range]:hover:not(:disabled)::-ms-track{border:var(--ok-b-1)}select:not([multiple]):not(:disabled):hover{cursor:pointer}button:hover:not(:disabled),input[type=button]:hover:not(:disabled),input[type=reset]:hover:not(:disabled),input[type=submit]:hover:not(:disabled){background-color:var(--ok-accent-1)}input:not(:disabled):hover::-webkit-file-upload-button{background-color:var(--ok-accent-1)}}
\ No newline at end of file diff --git a/3rdparty/expat/doc/reference.html b/3rdparty/expat/doc/reference.html index 1e4780ed70c..450fea84c29 100644 --- a/3rdparty/expat/doc/reference.html +++ b/3rdparty/expat/doc/reference.html @@ -3,26 +3,58 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> -<!-- Copyright 1999,2000 Clark Cooper <coopercc@netheaven.com> - All rights reserved. - This is free software. You may distribute or modify according to - the terms of the MIT/X License --> +<!-- + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 2000 Clark Cooper <coopercc@users.sourceforge.net> + Copyright (c) 2000-2004 Fred L. Drake, Jr. <fdrake@users.sourceforge.net> + Copyright (c) 2002-2012 Karl Waclawek <karl@waclawek.net> + Copyright (c) 2017-2024 Sebastian Pipping <sebastian@pipping.org> + Copyright (c) 2017 Jakub Wilk <jwilk@jwilk.net> + Copyright (c) 2021 Tomas Korbar <tkorbar@redhat.com> + Copyright (c) 2021 Nicolas Cavallari <nicolas.cavallari@green-communications.fr> + Copyright (c) 2022 Thijs Schreijer <thijs@thijsschreijer.nl> + Copyright (c) 2023 Hanno Böck <hanno@gentoo.org> + Copyright (c) 2023 Sony Corporation / Snild Dolkow <snild@sony.com> + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. +--> <title>Expat XML Parser</title> <meta name="author" content="Clark Cooper, coopercc@netheaven.com" /> <meta http-equiv="Content-Style-Type" content="text/css" /> + <link href="ok.min.css" rel="stylesheet" type="text/css" /> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> - <table cellspacing="0" cellpadding="0" width="100%"> - <tr> - <td class="corner"><img src="expat.png" alt="(Expat logo)" /></td> - <td class="banner"><h1>The Expat XML Parser</h1></td> - </tr> - <tr> - <td class="releaseno">Release 2.0.1</td> - <td></td> - </tr> - </table> + <div> + <h1> + The Expat XML Parser + <small>Release 2.6.4</small> + </h1> + </div> <div class="content"> <p>Expat is a library, written in C, for parsing XML documents. It's @@ -38,11 +70,11 @@ Working Group at W3C that produced the XML specification.</p> <p>This is free software, licensed under the <a href="../COPYING">MIT/X Consortium license</a>. You may download it -from <a href="http://www.libexpat.org/">the Expat home page</a>. +from <a href="https://libexpat.github.io/">the Expat home page</a>. </p> <p>The bulk of this document was originally commissioned as an article -by <a href="http://www.xml.com/">XML.com</a>. They graciously allowed +by <a href="https://www.xml.com/">XML.com</a>. They graciously allowed Clark Cooper to retain copyright and to distribute it with Expat. This version has been substantially extended to include documentation on features which have been added since the original article was @@ -120,6 +152,14 @@ interface.</p> <li><a href="#XML_GetInputContext">XML_GetInputContext</a></li> </ul> </li> + <li> + <a href="#attack-protection">Attack Protection</a> + <ul> + <li><a href="#XML_SetBillionLaughsAttackProtectionMaximumAmplification">XML_SetBillionLaughsAttackProtectionMaximumAmplification</a></li> + <li><a href="#XML_SetBillionLaughsAttackProtectionActivationThreshold">XML_SetBillionLaughsAttackProtectionActivationThreshold</a></li> + <li><a href="#XML_SetReparseDeferralEnabled">XML_SetReparseDeferralEnabled</a></li> + </ul> + </li> <li><a href="#miscellaneous">Miscellaneous Functions</a> <ul> <li><a href="#XML_SetUserData">XML_SetUserData</a></li> @@ -268,7 +308,7 @@ shoveling the document to the parser so that it can do its work.</p> <p>The Expat distribution comes as a compressed (with GNU gzip) tar file. You may download the latest version from <a href= -"http://sourceforge.net/projects/expat/" >Source Forge</a>. After +"https://sourceforge.net/projects/expat/" >Source Forge</a>. After unpacking this, cd into the directory. Then follow either the Win32 directions or Unix directions below.</p> @@ -279,7 +319,7 @@ directions in the next section. Otherwise if you have Microsoft's Developer Studio installed, you can use CMake to generate a <code>.sln</code> file, e.g. <code> -cmake -G"Visual Studio 15 2017" -DCMAKE_BUILD_TYPE=RelWithDebInfo . +cmake -G"Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=RelWithDebInfo . </code>, and build Expat using <code>msbuild /m expat.sln</code> after.</p> <p>Alternatively, you may download the Win32 binary package that @@ -316,39 +356,67 @@ library and header would get installed in <h3>Configuring Expat Using the Pre-Processor</h3> <p>Expat's feature set can be configured using a small number of -pre-processor definitions. The definition of this symbols does not -affect the set of entry points for Expat, only the behavior of the API -and the definition of character types in the case of -<code>XML_UNICODE_WCHAR_T</code>. The symbols are:</p> +pre-processor definitions. The symbols are:</p> <dl class="cpp-symbols"> -<dt>XML_DTD</dt> +<dt><a name="XML_GE">XML_GE</a></dt> +<dd> +Added in Expat 2.6.0. +Include support for +<a href="https://www.w3.org/TR/2006/REC-xml-20060816/#sec-physical-struct">general entities</a> +(syntax <code>&e1;</code> to reference and +syntax <code><!ENTITY e1 'value1'></code> (an internal general entity) or +<code><!ENTITY e2 SYSTEM 'file2'></code> (an external general entity) to declare). +With <code>XML_GE</code> enabled, general entities will be replaced by their declared replacement text; +for this to work for <em>external</em> general entities, in addition an +<code><a href="#XML_SetExternalEntityRefHandler">XML_ExternalEntityRefHandler</a></code> must be set using +<code><a href="#XML_SetExternalEntityRefHandler">XML_SetExternalEntityRefHandler</a></code>. +Also, enabling <code>XML_GE</code> makes +the functions <code><a href="#XML_SetBillionLaughsAttackProtectionMaximumAmplification"> +XML_SetBillionLaughsAttackProtectionMaximumAmplification</a></code> and <code> +<a href="#XML_SetBillionLaughsAttackProtectionActivationThreshold"> +XML_SetBillionLaughsAttackProtectionActivationThreshold</a></code> available. +<br/> +With <code>XML_GE</code> disabled, Expat has a smaller memory footprint and can be faster, but will +not load external general entities and will replace all general entities +(except the <a href="https://www.w3.org/TR/2006/REC-xml-20060816/#sec-predefined-ent">predefined five</a>: +<code>amp</code>, <code>apos</code>, <code>gt</code>, <code>lt</code>, <code>quot</code>) +with a self-reference: +for example, referencing an entity <code>e1</code> via <code>&e1;</code> will be replaced +by text <code>&e1;</code>. +</dd> + +<dt><a name="XML_DTD">XML_DTD</a></dt> <dd>Include support for using and reporting DTD-based content. If this is defined, default attribute values from an external DTD subset are reported and attribute value normalization occurs based on the type of attributes defined in the external subset. Without this, Expat has a smaller memory footprint and can be faster, but will -not load external entities or process conditional sections. This does -not affect the set of functions available in the API.</dd> - -<dt>XML_NS</dt> +not load external parameter entities or process conditional sections. If defined, makes +the functions <code><a +href="#XML_SetBillionLaughsAttackProtectionMaximumAmplification"> +XML_SetBillionLaughsAttackProtectionMaximumAmplification</a></code> and <code> +<a href="#XML_SetBillionLaughsAttackProtectionActivationThreshold"> +XML_SetBillionLaughsAttackProtectionActivationThreshold</a></code> available.</dd> + +<dt><a name="XML_NS">XML_NS</a></dt> <dd>When defined, support for the <cite><a href= -"http://www.w3.org/TR/REC-xml-names/" >Namespaces in XML</a></cite> +"https://www.w3.org/TR/REC-xml-names/" >Namespaces in XML</a></cite> specification is included.</dd> -<dt>XML_UNICODE</dt> +<dt><a name="XML_UNICODE">XML_UNICODE</a></dt> <dd>When defined, character data reported to the application is encoded in UTF-16 using wide characters of the type <code>XML_Char</code>. This is implied if <code>XML_UNICODE_WCHAR_T</code> is defined.</dd> -<dt>XML_UNICODE_WCHAR_T</dt> +<dt><a name="XML_UNICODE_WCHAR_T">XML_UNICODE_WCHAR_T</a></dt> <dd>If defined, causes the <code>XML_Char</code> character type to be defined using the <code>wchar_t</code> type; otherwise, <code>unsigned short</code> is used. Defining this implies <code>XML_UNICODE</code>.</dd> -<dt>XML_LARGE_SIZE</dt> +<dt><a name="XML_LARGE_SIZE">XML_LARGE_SIZE</a></dt> <dd>If defined, causes the <code>XML_Size</code> and <code>XML_Index</code> integer types to be at least 64 bits in size. This is intended to support processing of very large input streams, where the return values of @@ -358,23 +426,23 @@ processing of very large input streams, where the return values of could overflow. It may not be supported by all compilers, and is turned off by default.</dd> -<dt>XML_CONTEXT_BYTES</dt> +<dt><a name="XML_CONTEXT_BYTES">XML_CONTEXT_BYTES</a></dt> <dd>The number of input bytes of markup context which the parser will ensure are available for reporting via <code><a href= "#XML_GetInputContext" >XML_GetInputContext</a></code>. This is -normally set to 1024, and must be set to a positive integer. If this -is not defined, the input context will not be available and <code><a +normally set to 1024, and must be set to a positive integer to enable. +If this is set to zero, the input context will not be available and <code><a href= "#XML_GetInputContext" >XML_GetInputContext</a></code> will -always report NULL. Without this, Expat has a smaller memory +always report <code>NULL</code>. Without this, Expat has a smaller memory footprint and can be faster.</dd> -<dt>XML_STATIC</dt> +<dt><a name="XML_STATIC">XML_STATIC</a></dt> <dd>On Windows, this should be set if Expat is going to be linked statically with the code that calls it; this is required to get all the right MSVC magic annotations correct. This is ignored on other platforms.</dd> -<dt>XML_ATTR_INFO</dt> +<dt><a name="XML_ATTR_INFO">XML_ATTR_INFO</a></dt> <dd>If defined, makes the additional function <code><a href= "#XML_GetAttributeInfo" >XML_GetAttributeInfo</a></code> available for reporting attribute byte offsets.</dd> @@ -628,8 +696,9 @@ function. The StartNamespaceDeclHandler is called prior to the start tag handler and the EndNamespaceDeclHandler is called after the corresponding end tag that ends the namespace's scope. The namespace start handler gets passed the prefix and URI for the namespace. For a -default namespace declaration (xmlns='...'), the prefix will be null. -The URI will be null for the case where the default namespace is being +default namespace declaration (xmlns='...'), the prefix will be +<code>NULL</code>. +The URI will be <code>NULL</code> for the case where the default namespace is being unset. The namespace end handler just gets the prefix for the closing scope.</p> @@ -758,7 +827,7 @@ has already been passed into the parser. Applications for this include</p> <ul> - <li>Supporting the <a href= "http://www.w3.org/TR/xinclude/" + <li>Supporting the <a href= "https://www.w3.org/TR/xinclude/" >XInclude</a> specification.</li> <li>Delaying further processing until additional information is @@ -900,24 +969,30 @@ whether the parse can be resumed in the future.</p> <h3><a name="creation">Parser Creation</a></h3> -<pre class="fcndec" id="XML_ParserCreate"> +<h4 id="XML_ParserCreate">XML_ParserCreate</h4> +<pre class="fcndec"> XML_Parser XMLCALL XML_ParserCreate(const XML_Char *encoding); </pre> <div class="fcndef"> -Construct a new parser. If encoding is non-null, it specifies a +<p> +Construct a new parser. If encoding is non-<code>NULL</code>, it specifies a character encoding to use for the document. This overrides the document encoding declaration. There are four built-in encodings: +</p> <ul> <li>US-ASCII</li> <li>UTF-8</li> <li>UTF-16</li> <li>ISO-8859-1</li> </ul> +<p> Any other value will invoke a call to the UnknownEncodingHandler. +</p> </div> -<pre class="fcndec" id="XML_ParserCreateNS"> +<h4 id="XML_ParserCreateNS">XML_ParserCreateNS</h4> +<pre class="fcndec"> XML_Parser XMLCALL XML_ParserCreateNS(const XML_Char *encoding, XML_Char sep); @@ -936,7 +1011,16 @@ the local part will be concatenated without any separator - this is intended to support RDF processors. It is a programming error to use the null separator with <a href= "#XML_SetReturnNSTriplet">namespace triplets</a>.</div> -<pre class="fcndec" id="XML_ParserCreate_MM"> +<p><strong>Note:</strong> +Expat does not validate namespace URIs (beyond encoding) +against RFC 3986 today (and is not required to do so with regard to +the XML 1.0 namespaces specification) but it may start doing that +in future releases. Before that, an application using Expat must +be ready to receive namespace URIs containing non-URI characters. +</p> + +<h4 id="XML_ParserCreate_MM">XML_ParserCreate_MM</h4> +<pre class="fcndec"> XML_Parser XMLCALL XML_ParserCreate_MM(const XML_Char *encoding, const XML_Memory_Handling_Suite *ms, @@ -951,14 +1035,15 @@ typedef struct { </pre> <div class="fcndef"> <p>Construct a new parser using the suite of memory handling functions -specified in <code>ms</code>. If <code>ms</code> is NULL, then use the +specified in <code>ms</code>. If <code>ms</code> is <code>NULL</code>, then use the standard set of memory management functions. If <code>sep</code> is -non NULL, then namespace processing is enabled in the created parser +non-<code>NULL</code>, then namespace processing is enabled in the created parser and the character pointed at by sep is used as the separator between the namespace URI and the local part of the name.</p> </div> -<pre class="fcndec" id="XML_ExternalEntityParserCreate"> +<h4 id="XML_ExternalEntityParserCreate">XML_ExternalEntityParserCreate</h4> +<pre class="fcndec"> XML_Parser XMLCALL XML_ExternalEntityParserCreate(XML_Parser p, const XML_Char *context, @@ -974,7 +1059,8 @@ changing functions on this parser (unless you want it to act differently than the parent parser). </div> -<pre class="fcndec" id="XML_ParserFree"> +<h4 id="XML_ParserFree">XML_ParserFree</h4> +<pre class="fcndec"> void XMLCALL XML_ParserFree(XML_Parser p); </pre> @@ -983,7 +1069,8 @@ Free memory used by the parser. Your application is responsible for freeing any memory associated with <a href="#userdata">user data</a>. </div> -<pre class="fcndec" id="XML_ParserReset"> +<h4 id="XML_ParserReset">XML_ParserReset</h4> +<pre class="fcndec"> XML_Bool XMLCALL XML_ParserReset(XML_Parser p, const XML_Char *encoding); @@ -1014,7 +1101,7 @@ if they apply to the parser created by <code><a href= "#XML_ExternalEntityParserCreate" >XML_ExternalEntityParserCreate</a></code>.</p> -<p>Note: the <code>len</code> argument passed to these functions +<p>Note: The <code>len</code> argument passed to these functions should be considerably less than the maximum value for an integer, as it could create an integer overflow situation if the added lengths of a buffer and the unprocessed portion of the previous buffer @@ -1022,7 +1109,13 @@ exceed the maximum integer value. Input data at the end of a buffer will remain unprocessed if it is part of an XML token for which the end is not part of that buffer.</p> -<pre class="fcndec" id="XML_Parse"> +<p><a name="isFinal"></a>The application <em>must</em> make a concluding +<code><a href="#XML_Parse">XML_Parse</a></code> or +<code><a href="#XML_ParseBuffer">XML_ParseBuffer</a></code> call +with <code>isFinal</code> set to <code>XML_TRUE</code>.</p> + +<h4 id="XML_Parse">XML_Parse</h4> +<pre class="fcndec"> enum XML_Status XMLCALL XML_Parse(XML_Parser p, const char *s, @@ -1036,42 +1129,86 @@ enum XML_Status { }; </pre> <div class="fcndef"> +<p> Parse some more of the document. The string <code>s</code> is a buffer containing part (or perhaps all) of the document. The number of bytes of s that are part of the document is indicated by <code>len</code>. This means -that <code>s</code> doesn't have to be null terminated. It also means that +that <code>s</code> doesn't have to be null-terminated. It also means that if <code>len</code> is larger than the number of bytes in the block of -memory that <code>s</code> points at, then a memory fault is likely. The +memory that <code>s</code> points at, then a memory fault is likely. +Negative values for <code>len</code> are rejected since Expat 2.2.1. +The <code>isFinal</code> parameter informs the parser that this is the last piece of the document. Frequently, the last piece is empty (i.e. <code>len</code> is zero.) +</p> + +<p> If a parse error occurred, it returns <code>XML_STATUS_ERROR</code>. Otherwise it returns <code>XML_STATUS_OK</code> value. +Note that regardless of the return value, there is no guarantee that all +provided input has been parsed; only after <a href="#isFinal">the +concluding call</a> will all handler callbacks and parsing errors have +happened. +</p> + +<p> +Simplified, <code>XML_Parse</code> can be considered a convenience wrapper +that is pairing calls +to <code><a href="#XML_GetBuffer">XML_GetBuffer</a></code> +and <code><a href="#XML_ParseBuffer">XML_ParseBuffer</a></code> +(when Expat is built with macro <code>XML_CONTEXT_BYTES</code> +defined to a positive value, which is both common and default). +<code>XML_Parse</code> is then functionally equivalent to calling +<code><a href="#XML_GetBuffer">XML_GetBuffer</a></code>, +<code>memcpy</code>, and +<code><a href="#XML_ParseBuffer">XML_ParseBuffer</a></code>. +</p> + +<p> +To avoid double copying of the input, direct use of functions +<code><a href="#XML_GetBuffer">XML_GetBuffer</a></code> and +<code><a href="#XML_ParseBuffer">XML_ParseBuffer</a></code> is advised +for most production use, e.g. +if you're using <code>read</code> or similar functionality to fill your +buffers, fill directly into the buffer from +<code><a href="#XML_GetBuffer">XML_GetBuffer</a></code>, +then parse with <code><a href="#XML_ParseBuffer">XML_ParseBuffer</a></code>. +</p> </div> -<pre class="fcndec" id="XML_ParseBuffer"> +<h4 id="XML_ParseBuffer">XML_ParseBuffer</h4> +<pre class="fcndec"> enum XML_Status XMLCALL XML_ParseBuffer(XML_Parser p, int len, int isFinal); </pre> <div class="fcndef"> +<p> This is just like <code><a href= "#XML_Parse" >XML_Parse</a></code>, except in this case Expat provides the buffer. By obtaining the buffer from Expat with the <code><a href= "#XML_GetBuffer" >XML_GetBuffer</a></code> function, the application can avoid double copying of the input. +</p> + +<p> +Negative values for <code>len</code> are rejected since Expat 2.6.3. +</p> </div> -<pre class="fcndec" id="XML_GetBuffer"> +<h4 id="XML_GetBuffer">XML_GetBuffer</h4> +<pre class="fcndec"> void * XMLCALL XML_GetBuffer(XML_Parser p, int len); </pre> <div class="fcndef"> Obtain a buffer of size <code>len</code> to read a piece of the document -into. A NULL value is returned if Expat can't allocate enough memory for -this buffer. This has to be called prior to every call to +into. A <code>NULL</code> value is returned if Expat can't allocate enough memory for +this buffer. A <code>NULL</code> value may also be returned if <code>len</code> is zero. +This has to be called prior to every call to <code><a href= "#XML_ParseBuffer" >XML_ParseBuffer</a></code>. A typical use would look like this: @@ -1098,7 +1235,8 @@ for (;;) { </pre> </div> -<pre class="fcndec" id="XML_StopParser"> +<h4 id="XML_StopParser">XML_StopParser</h4> +<pre class="fcndec"> enum XML_Status XMLCALL XML_StopParser(XML_Parser p, XML_Bool resumable); @@ -1111,7 +1249,7 @@ XML_StopParser(XML_Parser p, call-back handler, except when aborting (when <code>resumable</code> is <code>XML_FALSE</code>) an already suspended parser. Some call-backs may still follow because they would otherwise get -lost, including +lost, including</p> <ul> <li> the end element handler for empty elements when stopped in the start element handler,</li> @@ -1120,7 +1258,7 @@ lost, including <li> the character data handler when stopped in the character data handler while making multiple call-backs on a contiguous chunk of characters,</li> </ul> -and possibly others.</p> +<p>and possibly others.</p> <p>This can be called from most handlers, including DTD related call-backs, except when parsing an external parameter entity and @@ -1166,7 +1304,8 @@ implementation of that handler to call <code><a href= <p>New in Expat 1.95.8.</p> </div> -<pre class="fcndec" id="XML_ResumeParser"> +<h4 id="XML_ResumeParser">XML_ResumeParser</h4> +<pre class="fcndec"> enum XML_Status XMLCALL XML_ResumeParser(XML_Parser p); </pre> @@ -1191,7 +1330,8 @@ appropriate moment.</p> <p>New in Expat 1.95.8.</p> </div> -<pre class="fcndec" id="XML_GetParsingStatus"> +<h4 id="XML_GetParsingStatus">XML_GetParsingStatus</h4> +<pre class="fcndec"> void XMLCALL XML_GetParsingStatus(XML_Parser p, XML_ParsingStatus *status); @@ -1213,7 +1353,7 @@ typedef struct { <p>Returns status of parser with respect to being initialized, parsing, finished, or suspended, and whether the final buffer is being processed. The <code>status</code> parameter <em>must not</em> be -NULL.</p> +<code>NULL</code>.</p> <p>New in Expat 1.95.8.</p> </div> @@ -1228,7 +1368,7 @@ to ignore all text not descended from a <code>para</code> element. One way it could do this is to set the character handler when a para start tag is seen, and unset it for the corresponding end tag.</p> -<p>A handler may be <em>unset</em> by providing a NULL pointer to the +<p>A handler may be <em>unset</em> by providing a <code>NULL</code> pointer to the appropriate handler setter. None of the handler setting functions have a return value.</p> @@ -1240,7 +1380,8 @@ Note that you'll receive them in this form independent of the original encoding of the document.</p> <div class="handler"> -<pre class="setter" id="XML_SetStartElementHandler"> +<h4 id="XML_SetStartElementHandler">XML_SetStartElementHandler</h4> +<pre class="setter"> void XMLCALL XML_SetStartElementHandler(XML_Parser p, XML_StartElementHandler start); @@ -1255,13 +1396,14 @@ typedef void handler as a pointer to a vector of char pointers. Each attribute seen in a start (or empty) tag occupies 2 consecutive places in this vector: the attribute name followed by the attribute value. These pairs are terminated -by a null pointer.</p> +by a <code>NULL</code> pointer.</p> <p>Note that an empty tag generates a call to both start and end handlers (in that order).</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetEndElementHandler"> +<h4 id="XML_SetEndElementHandler">XML_SetEndElementHandler</h4> +<pre class="setter"> void XMLCALL XML_SetEndElementHandler(XML_Parser p, XML_EndElementHandler); @@ -1276,7 +1418,8 @@ generates a call to both start and end handlers.</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetElementHandler"> +<h4 id="XML_SetElementHandler">XML_SetElementHandler</h4> +<pre class="setter"> void XMLCALL XML_SetElementHandler(XML_Parser p, XML_StartElementHandler start, @@ -1286,7 +1429,8 @@ XML_SetElementHandler(XML_Parser p, </div> <div class="handler"> -<pre class="setter" id="XML_SetCharacterDataHandler"> +<h4 id="XML_SetCharacterDataHandler">XML_SetCharacterDataHandler</h4> +<pre class="setter"> void XMLCALL XML_SetCharacterDataHandler(XML_Parser p, XML_CharacterDataHandler charhndl) @@ -1302,14 +1446,15 @@ is <em>NOT null-terminated</em>. You have to use the length argument to deal with the end of the string. A single block of contiguous text free of markup may still result in a sequence of calls to this handler. In other words, if you're searching for a pattern in the text, it may -be split across calls to this handler. Note: Setting this handler to NULL +be split across calls to this handler. Note: Setting this handler to <code>NULL</code> may <em>NOT immediately</em> terminate call-backs if the parser is currently processing such a single block of contiguous markup-free text, as the parser will continue calling back until the end of the block is reached.</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetProcessingInstructionHandler"> +<h4 id="XML_SetProcessingInstructionHandler">XML_SetProcessingInstructionHandler</h4> +<pre class="setter"> void XMLCALL XML_SetProcessingInstructionHandler(XML_Parser p, XML_ProcessingInstructionHandler proc) @@ -1327,7 +1472,8 @@ it after skipping all whitespace after the initial word.</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetCommentHandler"> +<h4 id="XML_SetCommentHandler">XML_SetCommentHandler</h4> +<pre class="setter"> void XMLCALL XML_SetCommentHandler(XML_Parser p, XML_CommentHandler cmnt) @@ -1342,7 +1488,8 @@ delimiters.</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetStartCdataSectionHandler"> +<h4 id="XML_SetStartCdataSectionHandler">XML_SetStartCdataSectionHandler</h4> +<pre class="setter"> void XMLCALL XML_SetStartCdataSectionHandler(XML_Parser p, XML_StartCdataSectionHandler start); @@ -1355,7 +1502,8 @@ typedef void </div> <div class="handler"> -<pre class="setter" id="XML_SetEndCdataSectionHandler"> +<h4 id="XML_SetEndCdataSectionHandler">XML_SetEndCdataSectionHandler</h4> +<pre class="setter"> void XMLCALL XML_SetEndCdataSectionHandler(XML_Parser p, XML_EndCdataSectionHandler end); @@ -1368,7 +1516,8 @@ typedef void </div> <div class="handler"> -<pre class="setter" id="XML_SetCdataSectionHandler"> +<h4 id="XML_SetCdataSectionHandler">XML_SetCdataSectionHandler</h4> +<pre class="setter"> void XMLCALL XML_SetCdataSectionHandler(XML_Parser p, XML_StartCdataSectionHandler start, @@ -1378,7 +1527,8 @@ XML_SetCdataSectionHandler(XML_Parser p, </div> <div class="handler"> -<pre class="setter" id="XML_SetDefaultHandler"> +<h4 id="XML_SetDefaultHandler">XML_SetDefaultHandler</h4> +<pre class="setter"> void XMLCALL XML_SetDefaultHandler(XML_Parser p, XML_DefaultHandler hndl) @@ -1409,7 +1559,8 @@ href="#XML_DefaultCurrent">XML_DefaultCurrent</a></code>.</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetDefaultHandlerExpand"> +<h4 id="XML_SetDefaultHandlerExpand">XML_SetDefaultHandlerExpand</h4> +<pre class="setter"> void XMLCALL XML_SetDefaultHandlerExpand(XML_Parser p, XML_DefaultHandler hndl) @@ -1429,7 +1580,8 @@ href="#XML_DefaultCurrent">XML_DefaultCurrent</a></code>.</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetExternalEntityRefHandler"> +<h4 id="XML_SetExternalEntityRefHandler">XML_SetExternalEntityRefHandler</h4> +<pre class="setter"> void XMLCALL XML_SetExternalEntityRefHandler(XML_Parser p, XML_ExternalEntityRefHandler hndl) @@ -1452,16 +1604,16 @@ the format expected by the <code>context</code> argument to <code><a href="#XML_ExternalEntityParserCreate" >XML_ExternalEntityParserCreate</a></code>. <code>code</code> is valid only until the handler returns, so if the referenced entity is -to be parsed later, it must be copied. <code>context</code> is NULL +to be parsed later, it must be copied. <code>context</code> is <code>NULL</code> only when the entity is a parameter entity, which is how one can differentiate between general and parameter entities.</p> <p>The <code>base</code> parameter is the base to use for relative system identifiers. It is set by <code><a -href="#XML_SetBase">XML_SetBase</a></code> and may be NULL. The +href="#XML_SetBase">XML_SetBase</a></code> and may be <code>NULL</code>. The <code>publicId</code> parameter is the public id given in the entity -declaration and may be NULL. <code>systemId</code> is the system -identifier specified in the entity declaration and is never NULL.</p> +declaration and may be <code>NULL</code>. <code>systemId</code> is the system +identifier specified in the entity declaration and is never <code>NULL</code>.</p> <p>There are a couple of ways in which this handler differs from others. First, this handler returns a status indicator (an @@ -1482,17 +1634,18 @@ parser, the body of the external entity can be recursively parsed.</p> information into global or static variables.</p> </div> -<pre class="fcndec" id="XML_SetExternalEntityRefHandlerArg"> +<h4 id="XML_SetExternalEntityRefHandlerArg">XML_SetExternalEntityRefHandlerArg</h4> +<pre class="fcndec"> void XMLCALL XML_SetExternalEntityRefHandlerArg(XML_Parser p, void *arg) </pre> <div class="fcndef"> <p>Set the argument passed to the ExternalEntityRefHandler. If -<code>arg</code> is not NULL, it is the new value passed to the +<code>arg</code> is not <code>NULL</code>, it is the new value passed to the handler set using <code><a href="#XML_SetExternalEntityRefHandler" >XML_SetExternalEntityRefHandler</a></code>; if <code>arg</code> is -NULL, the argument passed to the handler function will be the parser +<code>NULL</code>, the argument passed to the handler function will be the parser object itself.</p> <p><strong>Note:</strong> @@ -1508,7 +1661,8 @@ properly.</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetSkippedEntityHandler"> +<h4 id="XML_SetSkippedEntityHandler">XML_SetSkippedEntityHandler</h4> +<pre class="setter"> void XMLCALL XML_SetSkippedEntityHandler(XML_Parser p, XML_SkippedEntityHandler handler) @@ -1528,14 +1682,15 @@ typedef void has been called.</li> </ol> <p>The <code>is_parameter_entity</code> argument will be non-zero for -a parameter entity and zero for a general entity.</p> <p>Note: skipped +a parameter entity and zero for a general entity.</p> <p>Note: Skipped parameter entities in declarations and skipped general entities in attribute values cannot be reported, because the event would be out of sync with the reporting of the declarations or attribute values</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetUnknownEncodingHandler"> +<h4 id="XML_SetUnknownEncodingHandler">XML_SetUnknownEncodingHandler</h4> +<pre class="setter"> void XMLCALL XML_SetUnknownEncodingHandler(XML_Parser p, XML_UnknownEncodingHandler enchandler, @@ -1573,18 +1728,19 @@ value is -1, then that byte is invalid as the initial byte in a sequence. If the value is -n, where n is an integer > 1, then n is the number of bytes in the sequence and the actual conversion is accomplished by a call to the function pointed at by convert. This function may return -1 -if the sequence itself is invalid. The convert pointer may be null if +if the sequence itself is invalid. The convert pointer may be <code>NULL</code> if there are only single byte codes. The data parameter passed to the convert function is the data pointer from <code>XML_Encoding</code>. The string s is <em>NOT</em> null-terminated and points at the sequence of bytes to be converted.</p> <p>The function pointed at by <code>release</code> is called by the -parser when it is finished with the encoding. It may be NULL.</p> +parser when it is finished with the encoding. It may be <code>NULL</code>.</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetStartNamespaceDeclHandler"> +<h4 id="XML_SetStartNamespaceDeclHandler">XML_SetStartNamespaceDeclHandler</h4> +<pre class="setter"> void XMLCALL XML_SetStartNamespaceDeclHandler(XML_Parser p, XML_StartNamespaceDeclHandler start); @@ -1602,7 +1758,8 @@ in that start tag.</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetEndNamespaceDeclHandler"> +<h4 id="XML_SetEndNamespaceDeclHandler">XML_SetEndNamespaceDeclHandler</h4> +<pre class="setter"> void XMLCALL XML_SetEndNamespaceDeclHandler(XML_Parser p, XML_EndNamespaceDeclHandler end); @@ -1619,7 +1776,8 @@ namespace was declared.</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetNamespaceDeclHandler"> +<h4 id="XML_SetNamespaceDeclHandler">XML_SetNamespaceDeclHandler</h4> +<pre class="setter"> void XMLCALL XML_SetNamespaceDeclHandler(XML_Parser p, XML_StartNamespaceDeclHandler start, @@ -1629,7 +1787,8 @@ XML_SetNamespaceDeclHandler(XML_Parser p, </div> <div class="handler"> -<pre class="setter" id="XML_SetXmlDeclHandler"> +<h4 id="XML_SetXmlDeclHandler">XML_SetXmlDeclHandler</h4> +<pre class="setter"> void XMLCALL XML_SetXmlDeclHandler(XML_Parser p, XML_XmlDeclHandler xmldecl); @@ -1643,8 +1802,8 @@ typedef void </pre> <p>Sets a handler that is called for XML declarations and also for text declarations discovered in external entities. The way to -distinguish is that the <code>version</code> parameter will be NULL -for text declarations. The <code>encoding</code> parameter may be NULL +distinguish is that the <code>version</code> parameter will be <code>NULL</code> +for text declarations. The <code>encoding</code> parameter may be <code>NULL</code> for an XML declaration. The <code>standalone</code> argument will contain -1, 0, or 1 indicating respectively that there was no standalone parameter in the declaration, that it was given as no, or @@ -1652,7 +1811,8 @@ that it was given as yes.</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetStartDoctypeDeclHandler"> +<h4 id="XML_SetStartDoctypeDeclHandler">XML_SetStartDoctypeDeclHandler</h4> +<pre class="setter"> void XMLCALL XML_SetStartDoctypeDeclHandler(XML_Parser p, XML_StartDoctypeDeclHandler start); @@ -1667,12 +1827,13 @@ typedef void </pre> <p>Set a handler that is called at the start of a DOCTYPE declaration, before any external or internal subset is parsed. Both <code>sysid</code> -and <code>pubid</code> may be NULL. The <code>has_internal_subset</code> +and <code>pubid</code> may be <code>NULL</code>. The <code>has_internal_subset</code> will be non-zero if the DOCTYPE declaration has an internal subset.</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetEndDoctypeDeclHandler"> +<h4 id="XML_SetEndDoctypeDeclHandler">XML_SetEndDoctypeDeclHandler</h4> +<pre class="setter"> void XMLCALL XML_SetEndDoctypeDeclHandler(XML_Parser p, XML_EndDoctypeDeclHandler end); @@ -1686,7 +1847,8 @@ after parsing any external subset.</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetDoctypeDeclHandler"> +<h4 id="XML_SetDoctypeDeclHandler">XML_SetDoctypeDeclHandler</h4> +<pre class="setter"> void XMLCALL XML_SetDoctypeDeclHandler(XML_Parser p, XML_StartDoctypeDeclHandler start, @@ -1696,7 +1858,8 @@ XML_SetDoctypeDeclHandler(XML_Parser p, </div> <div class="handler"> -<pre class="setter" id="XML_SetElementDeclHandler"> +<h4 id="XML_SetElementDeclHandler">XML_SetElementDeclHandler</h4> +<pre class="setter"> void XMLCALL XML_SetElementDeclHandler(XML_Parser p, XML_ElementDeclHandler eldecl); @@ -1736,16 +1899,17 @@ struct XML_cp { </pre> <p>Sets a handler for element declarations in a DTD. The handler gets called with the name of the element in the declaration and a pointer -to a structure that contains the element model. It is the -application's responsibility to free this data structure using -<code><a href="#XML_FreeContentModel" ->XML_FreeContentModel</a></code>.</p> +to a structure that contains the element model. It's the user code's +responsibility to free model when finished with it. See <code> +<a href="#XML_FreeContentModel">XML_FreeContentModel</a></code>. +There is no need to free the model from the handler, it can be kept +around and freed at a later stage.</p> <p>The <code>model</code> argument is the root of a tree of <code>XML_Content</code> nodes. If <code>type</code> equals <code>XML_CTYPE_EMPTY</code> or <code>XML_CTYPE_ANY</code>, then <code>quant</code> will be <code>XML_CQUANT_NONE</code>, and the other -fields will be zero or NULL. If <code>type</code> is +fields will be zero or <code>NULL</code>. If <code>type</code> is <code>XML_CTYPE_MIXED</code>, then <code>quant</code> will be <code>XML_CQUANT_NONE</code> or <code>XML_CQUANT_REP</code> and <code>numchildren</code> will contain the number of elements that are @@ -1757,7 +1921,7 @@ XML_CTYPE_NAME with no quantification. Only the root node can be type <p>For type <code>XML_CTYPE_NAME</code>, the <code>name</code> field points to the name and the <code>numchildren</code> and -<code>children</code> fields will be zero and NULL. The +<code>children</code> fields will be zero and <code>NULL</code>. The <code>quant</code> field will indicate any quantifiers placed on the name.</p> @@ -1768,7 +1932,8 @@ or sequence and <code>children</code> points to the nodes.</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetAttlistDeclHandler"> +<h4 id="XML_SetAttlistDeclHandler">XML_SetAttlistDeclHandler</h4> +<pre class="setter"> void XMLCALL XML_SetAttlistDeclHandler(XML_Parser p, XML_AttlistDeclHandler attdecl); @@ -1792,16 +1957,17 @@ is in the <code>attname</code> parameter. The attribute type is in the type in the declaration with whitespace removed.</p> <p>The <code>dflt</code> parameter holds the default value. It will be -NULL in the case of "#IMPLIED" or "#REQUIRED" attributes. You can +<code>NULL</code> in the case of "#IMPLIED" or "#REQUIRED" attributes. You can distinguish these two cases by checking the <code>isrequired</code> parameter, which will be true in the case of "#REQUIRED" attributes. Attributes which are "#FIXED" will have also have a true -<code>isrequired</code>, but they will have the non-NULL fixed value +<code>isrequired</code>, but they will have the non-<code>NULL</code> fixed value in the <code>dflt</code> parameter.</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetEntityDeclHandler"> +<h4 id="XML_SetEntityDeclHandler">XML_SetEntityDeclHandler</h4> +<pre class="setter"> void XMLCALL XML_SetEntityDeclHandler(XML_Parser p, XML_EntityDeclHandler handler); @@ -1823,19 +1989,20 @@ The <code>is_parameter_entity</code> argument will be non-zero in the case of parameter entities and zero otherwise.</p> <p>For internal entities (<code><!ENTITY foo "bar"></code>), -<code>value</code> will be non-NULL and <code>systemId</code>, -<code>publicId</code>, and <code>notationName</code> will all be NULL. -The value string is <em>not</em> NULL terminated; the length is +<code>value</code> will be non-<code>NULL</code> and <code>systemId</code>, +<code>publicId</code>, and <code>notationName</code> will all be <code>NULL</code>. +The value string is <em>not</em> null-terminated; the length is provided in the <code>value_length</code> parameter. Do not use <code>value_length</code> to test for internal entities, since it is legal to have zero-length values. Instead check for whether or not -<code>value</code> is NULL.</p> <p>The <code>notationName</code> -argument will have a non-NULL value only for unparsed entity +<code>value</code> is <code>NULL</code>.</p> <p>The <code>notationName</code> +argument will have a non-<code>NULL</code> value only for unparsed entity declarations.</p> </div> <div class="handler"> -<pre class="setter" id="XML_SetUnparsedEntityDeclHandler"> +<h4 id="XML_SetUnparsedEntityDeclHandler">XML_SetUnparsedEntityDeclHandler</h4> +<pre class="setter"> void XMLCALL XML_SetUnparsedEntityDeclHandler(XML_Parser p, XML_UnparsedEntityDeclHandler h) @@ -1861,7 +2028,8 @@ compatibility. Use instead <a href= "#XML_SetEntityDeclHandler" </div> <div class="handler"> -<pre class="setter" id="XML_SetNotationDeclHandler"> +<h4 id="XML_SetNotationDeclHandler">XML_SetNotationDeclHandler</h4> +<pre class="setter"> void XMLCALL XML_SetNotationDeclHandler(XML_Parser p, XML_NotationDeclHandler h) @@ -1878,7 +2046,8 @@ typedef void </div> <div class="handler"> -<pre class="setter" id="XML_SetNotStandaloneHandler"> +<h4 id="XML_SetNotStandaloneHandler">XML_SetNotStandaloneHandler</h4> +<pre class="setter"> void XMLCALL XML_SetNotStandaloneHandler(XML_Parser p, XML_NotStandaloneHandler h) @@ -1913,7 +2082,8 @@ events.</p> DTD. In other words, they usually return bogus information when called from within a DTD declaration handler.</p> -<pre class="fcndec" id="XML_GetErrorCode"> +<h4 id="XML_GetErrorCode">XML_GetErrorCode</h4> +<pre class="fcndec"> enum XML_Error XMLCALL XML_GetErrorCode(XML_Parser p); </pre> @@ -1921,7 +2091,8 @@ XML_GetErrorCode(XML_Parser p); Return what type of error has occurred. </div> -<pre class="fcndec" id="XML_ErrorString"> +<h4 id="XML_ErrorString">XML_ErrorString</h4> +<pre class="fcndec"> const XML_LChar * XMLCALL XML_ErrorString(enum XML_Error code); </pre> @@ -1931,7 +2102,8 @@ The code should be one of the enums that can be returned from <code><a href= "#XML_GetErrorCode" >XML_GetErrorCode</a></code>. </div> -<pre class="fcndec" id="XML_GetCurrentByteIndex"> +<h4 id="XML_GetCurrentByteIndex">XML_GetCurrentByteIndex</h4> +<pre class="fcndec"> XML_Index XMLCALL XML_GetCurrentByteIndex(XML_Parser p); </pre> @@ -1942,7 +2114,8 @@ the values returned by <code><a href= "#XML_GetCurrentLineNumber" "#XML_GetCurrentColumnNumber" >XML_GetCurrentColumnNumber</a></code>. </div> -<pre class="fcndec" id="XML_GetCurrentLineNumber"> +<h4 id="XML_GetCurrentLineNumber">XML_GetCurrentLineNumber</h4> +<pre class="fcndec"> XML_Size XMLCALL XML_GetCurrentLineNumber(XML_Parser p); </pre> @@ -1951,7 +2124,8 @@ Return the line number of the position. The first line is reported as <code>1</code>. </div> -<pre class="fcndec" id="XML_GetCurrentColumnNumber"> +<h4 id="XML_GetCurrentColumnNumber">XML_GetCurrentColumnNumber</h4> +<pre class="fcndec"> XML_Size XMLCALL XML_GetCurrentColumnNumber(XML_Parser p); </pre> @@ -1960,7 +2134,8 @@ Return the offset, from the beginning of the current line, of the position. </div> -<pre class="fcndec" id="XML_GetCurrentByteCount"> +<h4 id="XML_GetCurrentByteCount">XML_GetCurrentByteCount</h4> +<pre class="fcndec"> int XMLCALL XML_GetCurrentByteCount(XML_Parser p); </pre> @@ -1972,7 +2147,8 @@ be used to distinguish empty-element tags from empty elements using separate start and end tags). </div> -<pre class="fcndec" id="XML_GetInputContext"> +<h4 id="XML_GetInputContext">XML_GetInputContext</h4> +<pre class="fcndec"> const char * XMLCALL XML_GetInputContext(XML_Parser p, int *offset, @@ -1994,8 +2170,117 @@ untranslated bytes of the input.</p> triggering a call spans over a very large amount of input, the actual parse position may be before the beginning of the buffer.</p> -<p>If <code>XML_CONTEXT_BYTES</code> is not defined, this will always -return NULL.</p> +<p>If <code>XML_CONTEXT_BYTES</code> is zero, this will always +return <code>NULL</code>.</p> +</div> + +<h3><a name="attack-protection">Attack Protection</a><a name="billion-laughs"></a></h3> + +<h4 id="XML_SetBillionLaughsAttackProtectionMaximumAmplification">XML_SetBillionLaughsAttackProtectionMaximumAmplification</h4> +<pre class="fcndec"> +/* Added in Expat 2.4.0. */ +XML_Bool XMLCALL +XML_SetBillionLaughsAttackProtectionMaximumAmplification(XML_Parser p, + float maximumAmplificationFactor); +</pre> +<div class="fcndef"> + <p> + Sets the maximum tolerated amplification factor + for protection against + <a href="https://en.wikipedia.org/wiki/Billion_laughs_attack">billion laughs attacks</a> + (default: <code>100.0</code>) + of parser <code>p</code> to <code>maximumAmplificationFactor</code>, and + returns <code>XML_TRUE</code> upon success and <code>XML_FALSE</code> upon error. + </p> + + The amplification factor is calculated as .. + <pre> + amplification := (direct + indirect) / direct + </pre> + .. while parsing, whereas + <code>direct</code> is the number of bytes read from the primary document in parsing and + <code>indirect</code> is the number of bytes added by expanding entities and reading of external DTD files, combined. + + <p>For a call to <code>XML_SetBillionLaughsAttackProtectionMaximumAmplification</code> to succeed:</p> + <ul> + <li>parser <code>p</code> must be a non-<code>NULL</code> root parser (without any parent parsers) and</li> + <li><code>maximumAmplificationFactor</code> must be non-<code>NaN</code> and greater than or equal to <code>1.0</code>.</li> + </ul> + + <p> + <strong>Note:</strong> + If you ever need to increase this value for non-attack payload, + please <a href="https://github.com/libexpat/libexpat/issues">file a bug report</a>. + </p> + + <p> + <strong>Note:</strong> + Peak amplifications + of factor 15,000 for the entire payload and + of factor 30,000 in the middle of parsing + have been observed with small benign files in practice. + + So if you do reduce the maximum allowed amplification, + please make sure that the activation threshold is still big enough + to not end up with undesired false positives (i.e. benign files being rejected). + </p> +</div> + +<h4 id="XML_SetBillionLaughsAttackProtectionActivationThreshold">XML_SetBillionLaughsAttackProtectionActivationThreshold</h4> +<pre class="fcndec"> +/* Added in Expat 2.4.0. */ +XML_Bool XMLCALL +XML_SetBillionLaughsAttackProtectionActivationThreshold(XML_Parser p, + unsigned long long activationThresholdBytes); +</pre> +<div class="fcndef"> + <p> + Sets number of output bytes (including amplification from entity expansion and reading DTD files) + needed to activate protection against + <a href="https://en.wikipedia.org/wiki/Billion_laughs_attack">billion laughs attacks</a> + (default: <code>8 MiB</code>) + of parser <code>p</code> to <code>activationThresholdBytes</code>, and + returns <code>XML_TRUE</code> upon success and <code>XML_FALSE</code> upon error. + </p> + + <p>For a call to <code>XML_SetBillionLaughsAttackProtectionActivationThreshold</code> to succeed:</p> + <ul> + <li>parser <code>p</code> must be a non-<code>NULL</code> root parser (without any parent parsers).</li> + </ul> + + <p> + <strong>Note:</strong> + If you ever need to increase this value for non-attack payload, + please <a href="https://github.com/libexpat/libexpat/issues">file a bug report</a>. + </p> + + <p> + <strong>Note:</strong> + Activation thresholds below 4 MiB are known to break support for + <a href="https://en.wikipedia.org/wiki/Darwin_Information_Typing_Architecture">DITA</a> 1.3 payload + and are hence not recommended. + </p> +</div> + +<h4 id="XML_SetReparseDeferralEnabled">XML_SetReparseDeferralEnabled</h4> +<pre class="fcndec"> +/* Added in Expat 2.6.0. */ +XML_Bool XMLCALL +XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool enabled); +</pre> +<div class="fcndef"> + <p> + Large tokens may require many parse calls before enough data is available for Expat to parse it in full. + If Expat retried parsing the token on every parse call, parsing could take quadratic time. + To avoid this, Expat only retries once a significant amount of new data is available. + This function allows disabling this behavior. + </p> + <p> + The <code>enabled</code> argument should be <code>XML_TRUE</code> or <code>XML_FALSE</code>. + </p> + <p> + Returns <code>XML_TRUE</code> on success, and <code>XML_FALSE</code> on error. + </p> </div> <h3><a name="miscellaneous">Miscellaneous functions</a></h3> @@ -2003,7 +2288,8 @@ return NULL.</p> <p>The functions in this section either obtain state information from the parser or can be used to dynamically set parser options.</p> -<pre class="fcndec" id="XML_SetUserData"> +<h4 id="XML_SetUserData">XML_SetUserData</h4> +<pre class="fcndec"> void XMLCALL XML_SetUserData(XML_Parser p, void *userData); @@ -2018,7 +2304,8 @@ the memory associated with it, then you've probably just leaked memory. </div> -<pre class="fcndec" id="XML_GetUserData"> +<h4 id="XML_GetUserData">XML_GetUserData</h4> +<pre class="fcndec"> void * XMLCALL XML_GetUserData(XML_Parser p); </pre> @@ -2027,7 +2314,8 @@ This returns the user data pointer that gets passed to handlers. It is actually implemented as a macro. </div> -<pre class="fcndec" id="XML_UseParserAsHandlerArg"> +<h4 id="XML_UseParserAsHandlerArg">XML_UseParserAsHandlerArg</h4> +<pre class="fcndec"> void XMLCALL XML_UseParserAsHandlerArg(XML_Parser p); </pre> @@ -2038,7 +2326,8 @@ using the <code><a href= "#XML_GetUserData" >XML_GetUserData</a></code> function. </div> -<pre class="fcndec" id="XML_SetBase"> +<h4 id="XML_SetBase">XML_SetBase</h4> +<pre class="fcndec"> enum XML_Status XMLCALL XML_SetBase(XML_Parser p, const XML_Char *base); @@ -2050,7 +2339,8 @@ there's no memory to store base, otherwise it's <code>XML_STATUS_OK</code>. </div> -<pre class="fcndec" id="XML_GetBase"> +<h4 id="XML_GetBase">XML_GetBase</h4> +<pre class="fcndec"> const XML_Char * XMLCALL XML_GetBase(XML_Parser p); </pre> @@ -2058,7 +2348,8 @@ XML_GetBase(XML_Parser p); Return the base for resolving relative URIs. </div> -<pre class="fcndec" id="XML_GetSpecifiedAttributeCount"> +<h4 id="XML_GetSpecifiedAttributeCount">XML_GetSpecifiedAttributeCount</h4> +<pre class="fcndec"> int XMLCALL XML_GetSpecifiedAttributeCount(XML_Parser p); </pre> @@ -2074,7 +2365,8 @@ call to a start handler. If called inside a start handler, then that means the current call. </div> -<pre class="fcndec" id="XML_GetIdAttributeIndex"> +<h4 id="XML_GetIdAttributeIndex">XML_GetIdAttributeIndex</h4> +<pre class="fcndec"> int XMLCALL XML_GetIdAttributeIndex(XML_Parser p); </pre> @@ -2086,7 +2378,8 @@ attribute. If called inside a start handler, then that means the current call. </div> -<pre class="fcndec" id="XML_GetAttributeInfo"> +<h4 id="XML_GetAttributeInfo">XML_GetAttributeInfo</h4> +<pre class="fcndec"> const XML_AttrInfo * XMLCALL XML_GetAttributeInfo(XML_Parser parser); </pre> @@ -2107,14 +2400,15 @@ as 1; thus the number of entries in the array is <code>XML_GetSpecifiedAttributeCount(parser) / 2</code>. </div> -<pre class="fcndec" id="XML_SetEncoding"> +<h4 id="XML_SetEncoding">XML_SetEncoding</h4> +<pre class="fcndec"> enum XML_Status XMLCALL XML_SetEncoding(XML_Parser p, const XML_Char *encoding); </pre> <div class="fcndef"> Set the encoding to be used by the parser. It is equivalent to -passing a non-null encoding argument to the parser creation functions. +passing a non-<code>NULL</code> encoding argument to the parser creation functions. It must not be called after <code><a href= "#XML_Parse" >XML_Parse</a></code> or <code><a href= "#XML_ParseBuffer" >XML_ParseBuffer</a></code> have been called on the given parser. @@ -2122,7 +2416,8 @@ Returns <code>XML_STATUS_OK</code> on success or <code>XML_STATUS_ERROR</code> on error. </div> -<pre class="fcndec" id="XML_SetParamEntityParsing"> +<h4 id="XML_SetParamEntityParsing">XML_SetParamEntityParsing</h4> +<pre class="fcndec"> int XMLCALL XML_SetParamEntityParsing(XML_Parser p, enum XML_ParamEntityParsing code); @@ -2142,7 +2437,8 @@ The choices for <code>code</code> are: no effect and will always return 0. </div> -<pre class="fcndec" id="XML_SetHashSalt"> +<h4 id="XML_SetHashSalt">XML_SetHashSalt</h4> +<pre class="fcndec"> int XMLCALL XML_SetHashSalt(XML_Parser p, unsigned long hash_salt); @@ -2153,15 +2449,16 @@ Helps in preventing DoS attacks based on predicting hash function behavior. In order to have an effect this must be called before parsing has started. Returns 1 if successful, 0 when called after <code>XML_Parse</code> or <code>XML_ParseBuffer</code>. -<p><b>Note:</b>This call is optional, as the parser will auto-generate +<p><b>Note:</b> This call is optional, as the parser will auto-generate a new random salt value if no value has been set at the start of parsing.</p> -<p><b>Note:</b>One should not call <code>XML_SetHashSalt</code> with a +<p><b>Note:</b> One should not call <code>XML_SetHashSalt</code> with a hash salt value of 0, as this value is used as sentinel value to indicate that <code>XML_SetHashSalt</code> has <b>not</b> been called. Consequently such a call will have no effect, even if it returns 1.</p> </div> -<pre class="fcndec" id="XML_UseForeignDTD"> +<h4 id="XML_UseForeignDTD">XML_UseForeignDTD</h4> +<pre class="fcndec"> enum XML_Error XMLCALL XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD); </pre> @@ -2183,7 +2480,7 @@ called. The setting of parameter entity parsing, controlled using external entity reference handler set via <code><a href= "#XML_SetExternalEntityRefHandler" >XML_SetExternalEntityRefHandler</a></code> with both -<code>publicId</code> and <code>systemId</code> set to NULL.</p> +<code>publicId</code> and <code>systemId</code> set to <code>NULL</code>.</p> <p>If this function is called after parsing has begun, it returns <code>XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING</code> and ignores @@ -2198,7 +2495,8 @@ the document had a DTD with an external subset. This holds true even if the external entity reference handler returns without action.</p> </div> -<pre class="fcndec" id="XML_SetReturnNSTriplet"> +<h4 id="XML_SetReturnNSTriplet">XML_SetReturnNSTriplet</h4> +<pre class="fcndec"> void XMLCALL XML_SetReturnNSTriplet(XML_Parser parser, int do_nst); @@ -2220,7 +2518,8 @@ default manner, URI then local_name separated by the namespace separator.</p> </div> -<pre class="fcndec" id="XML_DefaultCurrent"> +<h4 id="XML_DefaultCurrent">XML_DefaultCurrent</h4> +<pre class="fcndec"> void XMLCALL XML_DefaultCurrent(XML_Parser parser); </pre> @@ -2234,7 +2533,8 @@ href="#XML_SetDefaultHandler" >XML_SetDefaultHandler</a></code> or not a default handler. </div> -<pre class="fcndec" id="XML_ExpatVersion"> +<h4 id="XML_ExpatVersion">XML_ExpatVersion</h4> +<pre class="fcndec"> XML_LChar * XMLCALL XML_ExpatVersion(); </pre> @@ -2242,7 +2542,8 @@ XML_ExpatVersion(); Return the library version as a string (e.g. <code>"expat_1.95.1"</code>). </div> -<pre class="fcndec" id="XML_ExpatVersionInfo"> +<h4 id="XML_ExpatVersionInfo">XML_ExpatVersionInfo</h4> +<pre class="fcndec"> struct XML_Expat_Version XMLCALL XML_ExpatVersionInfo(); </pre> @@ -2266,7 +2567,8 @@ Testing these constants is currently the best way to determine if particular parts of the Expat API are available. </div> -<pre class="fcndec" id="XML_GetFeatureList"> +<h4 id="XML_GetFeatureList">XML_GetFeatureList</h4> +<pre class="fcndec"> const XML_Feature * XMLCALL XML_GetFeatureList(); </pre> @@ -2299,7 +2601,7 @@ check these features to do so at runtime.</p> <p>The return value is an array of <code>XML_Feature</code>, terminated by a record with a <code>feature</code> of -<code>XML_FEATURE_END</code> and <code>name</code> of NULL, +<code>XML_FEATURE_END</code> and <code>name</code> of <code>NULL</code>, identifying the feature-test macros Expat was compiled with. Since an application that requires this kind of information needs to determine the type of character the <code>name</code> points to, records for the @@ -2327,7 +2629,8 @@ time, the following features have been defined to have values:</p> </dl> </div> -<pre class="fcndec" id="XML_FreeContentModel"> +<h4 id="XML_FreeContentModel">XML_FreeContentModel</h4> +<pre class="fcndec"> void XMLCALL XML_FreeContentModel(XML_Parser parser, XML_Content *model); </pre> @@ -2346,19 +2649,21 @@ applications. This can be essential when using dynamically loaded libraries which use different C standard libraries (this can happen on Windows, at least).</p> -<pre class="fcndec" id="XML_MemMalloc"> +<h4 id="XML_MemMalloc">XML_MemMalloc</h4> +<pre class="fcndec"> void * XMLCALL XML_MemMalloc(XML_Parser parser, size_t size); </pre> <div class="fcndef"> Allocate <code>size</code> bytes of memory using the allocator the <code>parser</code> object has been configured to use. Returns a -pointer to the memory or NULL on failure. Memory allocated in this +pointer to the memory or <code>NULL</code> on failure. Memory allocated in this way must be freed using <code><a href="#XML_MemFree" >XML_MemFree</a></code>. </div> -<pre class="fcndec" id="XML_MemRealloc"> +<h4 id="XML_MemRealloc">XML_MemRealloc</h4> +<pre class="fcndec"> void * XMLCALL XML_MemRealloc(XML_Parser parser, void *ptr, size_t size); </pre> @@ -2367,9 +2672,9 @@ Allocate <code>size</code> bytes of memory using the allocator the <code>parser</code> object has been configured to use. <code>ptr</code> must point to a block of memory allocated by <code><a href="#XML_MemMalloc" >XML_MemMalloc</a></code> or -<code>XML_MemRealloc</code>, or be NULL. This function tries to +<code>XML_MemRealloc</code>, or be <code>NULL</code>. This function tries to expand the block pointed to by <code>ptr</code> if possible. Returns -a pointer to the memory or NULL on failure. On success, the original +a pointer to the memory or <code>NULL</code> on failure. On success, the original block has either been expanded or freed. On failure, the original block has not been freed; the caller is responsible for freeing the original block. Memory allocated in this way must be freed using @@ -2377,20 +2682,24 @@ original block. Memory allocated in this way must be freed using >XML_MemFree</a></code>. </div> -<pre class="fcndec" id="XML_MemFree"> +<h4 id="XML_MemFree">XML_MemFree</h4> +<pre class="fcndec"> void XMLCALL XML_MemFree(XML_Parser parser, void *ptr); </pre> <div class="fcndef"> Free a block of memory pointed to by <code>ptr</code>. The block must have been allocated by <code><a href="#XML_MemMalloc" ->XML_MemMalloc</a></code> or <code>XML_MemRealloc</code>, or be NULL. +>XML_MemMalloc</a></code> or <code>XML_MemRealloc</code>, or be <code>NULL</code>. </div> <hr /> -<p><a href="http://validator.w3.org/check/referer"><img - src="valid-xhtml10.png" alt="Valid XHTML 1.0!" - height="31" width="88" class="noborder" /></a></p> + + <div class="footer"> + Found a bug in the documentation? + <a href="https://github.com/libexpat/libexpat/issues">Please file a bug report.</a> + </div> + </div> </body> </html> diff --git a/3rdparty/expat/doc/style.css b/3rdparty/expat/doc/style.css index 69df30bcecb..1b8cd10dffa 100644 --- a/3rdparty/expat/doc/style.css +++ b/3rdparty/expat/doc/style.css @@ -1,101 +1,47 @@ +/* + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 2000 Clark Cooper <coopercc@users.sourceforge.net> + Copyright (c) 2000-2004 Fred L. Drake, Jr. <fdrake@users.sourceforge.net> + Copyright (c) 2021 Sebastian Pipping <sebastian@pipping.org> + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/* Stop not using half the screen */ body { - background-color: white; - border: 0px; - margin: 0px; - padding: 0px; -} - -.corner { - width: 200px; - height: 80px; - text-align: center; -} - -.banner { - background-color: rgb(110,139,61); - color: rgb(255,236,176); - padding-left: 2em; -} - -.banner h1 { - font-size: 200%; -} - -.content { - padding: 0em 2em 1em 2em; -} - -.releaseno { - background-color: rgb(110,139,61); - color: rgb(255,236,176); - padding-bottom: 0.3em; - padding-top: 0.5em; - text-align: center; - font-weight: bold; -} - -.noborder { - border-width: 0px; -} - -.eg { - padding-left: 1em; - padding-top: .5em; - padding-bottom: .5em; - border: solid thin; - margin: 1em 0; - background-color: tan; - margin-left: 2em; - margin-right: 10%; -} - -.pseudocode { - padding-left: 1em; - padding-top: .5em; - padding-bottom: .5em; - border: solid thin; - margin: 1em 0; - background-color: rgb(250,220,180); - margin-left: 2em; - margin-right: 10%; -} - -.handler { - width: 100%; - border-top-width: thin; - margin-bottom: 1em; -} - -.handler p { - margin-left: 2em; -} - -.setter { - font-weight: bold; -} - -.signature { - color: navy; -} - -.fcndec { - width: 100%; - border-top-width: thin; - font-weight: bold; -} - -.fcndef { - margin-left: 2em; - margin-bottom: 2em; -} - -dd { - margin-bottom: 2em; + max-width: none; /* was: 80ch */ } .cpp-symbols dt { font-family: monospace; } -.cpp-symbols dd { - margin-bottom: 1em; + +/* Resemble style of <footer> which is not part of xhtml1-strict */ +.footer { + font-size: var(--ok-fs-5); + color: var(--ok-tc-1); } diff --git a/3rdparty/expat/doc/valid-xhtml10.png b/3rdparty/expat/doc/valid-xhtml10.png Binary files differdeleted file mode 100644 index 8b5f1baeaa0..00000000000 --- a/3rdparty/expat/doc/valid-xhtml10.png +++ /dev/null diff --git a/3rdparty/expat/doc/xmlwf.1 b/3rdparty/expat/doc/xmlwf.1 index ca56bf97650..61b302581ce 100644 --- a/3rdparty/expat/doc/xmlwf.1 +++ b/3rdparty/expat/doc/xmlwf.1 @@ -5,7 +5,7 @@ \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac -.TH XMLWF 1 "March 11, 2016" "" "" +.TH XMLWF 1 "November 6, 2024" "" "" .SH NAME xmlwf \- Determines if an XML document is well-formed .SH SYNOPSIS @@ -15,7 +15,27 @@ xmlwf \- Determines if an XML document is well-formed \fBxmlwf\fR \kx .if (\nx>(\n(.l/2)) .nr x (\n(.l/5) 'in \n(.iu+\nxu -[\fB-s\fR] [\fB-n\fR] [\fB-p\fR] [\fB-x\fR] [\fB-e \fIencoding\fB\fR] [\fB-w\fR] [\fB-d \fIoutput-dir\fB\fR] [\fB-c\fR] [\fB-m\fR] [\fB-r\fR] [\fB-t\fR] [\fB-N\fR] [\fB-v\fR] [file ...] +[\fIOPTIONS\fR] [\fIFILE\fR ...] +'in \n(.iu-\nxu +.ad b +'hy +'nh +.fi +.ad l +\fBxmlwf\fR \kx +.if (\nx>(\n(.l/2)) .nr x (\n(.l/5) +'in \n(.iu+\nxu +\fB-h\fR | \fB--help\fR +'in \n(.iu-\nxu +.ad b +'hy +'nh +.fi +.ad l +\fBxmlwf\fR \kx +.if (\nx>(\n(.l/2)) .nr x (\n(.l/5) +'in \n(.iu+\nxu +\fB-v\fR | \fB--version\fR 'in \n(.iu-\nxu .ad b 'hy @@ -34,7 +54,7 @@ following rules: \(bu The file begins with an XML declaration. For instance, \*(T<<?xml version="1.0" standalone="yes"?>\*(T>. -\fINOTE:\fR +\fINOTE\fR: \fBxmlwf\fR does not currently check for a valid XML declaration. .TP 0.2i @@ -62,10 +82,42 @@ it does not check the DTD. However, it does support external entities (see the \*(T<\fB\-x\fR\*(T> option). .SH OPTIONS When an option includes an argument, you may specify the argument either -separately ("\*(T<\fB\-d\fR\*(T> output") or concatenated with the -option ("\*(T<\fB\-d\fR\*(T>output"). \fBxmlwf\fR +separately ("\*(T<\fB\-d\fR\*(T> \fIoutput\fR") or concatenated with the +option ("\*(T<\fB\-d\fR\*(T>\fIoutput\fR"). \fBxmlwf\fR supports both. .TP +\*(T<\fB\-a\fR\*(T> \fIfactor\fR +Sets the maximum tolerated amplification factor +for protection against billion laughs attacks (default: 100.0). +The amplification factor is calculated as .. + +.nf + + amplification := (direct + indirect) / direct + +.fi + +\&.. while parsing, whereas +<direct> is the number of bytes read +from the primary document in parsing and +<indirect> is the number of bytes +added by expanding entities and reading of external DTD files, +combined. + +\fINOTE\fR: +If you ever need to increase this value for non-attack payload, +please file a bug report. +.TP +\*(T<\fB\-b\fR\*(T> \fIbytes\fR +Sets the number of output bytes (including amplification) +needed to activate protection against billion laughs attacks +(default: 8 MiB). +This can be thought of as an "activation threshold". + +\fINOTE\fR: +If you ever need to increase this value for non-attack payload, +please file a bug report. +.TP \*(T<\fB\-c\fR\*(T> If the input file is well-formed and \fBxmlwf\fR doesn't encounter any errors, the input file is simply copied to @@ -73,7 +125,7 @@ the output directory unchanged. This implies no namespaces (turns off \*(T<\fB\-n\fR\*(T>) and requires \*(T<\fB\-d\fR\*(T> to specify an output directory. .TP -\*(T<\fB\-d output\-dir\fR\*(T> +\*(T<\fB\-d\fR\*(T> \fIoutput-dir\fR Specifies a directory to contain transformed representations of the input files. By default, \*(T<\fB\-d\fR\*(T> outputs a canonical representation @@ -96,7 +148,7 @@ is treated equivalently to data. More on canonical XML can be found at http://www.jclark.com/xml/canonxml.html . .TP -\*(T<\fB\-e encoding\fR\*(T> +\*(T<\fB\-e\fR\*(T> \fIencoding\fR Specifies the character encoding for the document, overriding any document encoding declaration. \fBxmlwf\fR supports four built-in encodings: @@ -106,6 +158,25 @@ supports four built-in encodings: \*(T<ISO\-8859\-1\*(T>. Also see the \*(T<\fB\-w\fR\*(T> option. .TP +\*(T<\fB\-g\fR\*(T> \fIbytes\fR +Sets the buffer size to request per call pair to +\*(T<\fBXML_GetBuffer\fR\*(T> and \*(T<\fBread\fR\*(T> +(default: 8 KiB). +.TP +\*(T<\fB\-h\fR\*(T>, \*(T<\fB\-\-help\fR\*(T> +Prints short usage information on command \fBxmlwf\fR, +and then exits. +Similar to this man page but more concise. +.TP +\*(T<\fB\-k\fR\*(T> +When processing multiple files, \fBxmlwf\fR +by default halts after the the first file with an error. +This tells \fBxmlwf\fR to report the error +but to keep processing. +This can be useful, for example, when testing a filter that converts +many files to XML and you want to quickly find out which conversions +failed. +.TP \*(T<\fB\-m\fR\*(T> Outputs some strange sort of XML file that completely describes the input file, including character positions. @@ -121,13 +192,17 @@ This matches the example output used by the formal XML test cases. Requires \*(T<\fB\-d\fR\*(T> to specify an output file. .TP \*(T<\fB\-p\fR\*(T> -Tells xmlwf to process external DTDs and parameter +Tells \fBxmlwf\fR to process external DTDs and parameter entities. Normally \fBxmlwf\fR never parses parameter entities. \*(T<\fB\-p\fR\*(T> tells it to always parse them. \*(T<\fB\-p\fR\*(T> implies \*(T<\fB\-x\fR\*(T>. .TP +\*(T<\fB\-q\fR\*(T> +Disable reparse deferral, and allow quadratic parse runtime +on large tokens (default: reparse deferral enabled). +.TP \*(T<\fB\-r\fR\*(T> Normally \fBxmlwf\fR memory-maps the XML file before parsing; this can result in faster parsing on many @@ -156,7 +231,7 @@ without client overhead. \*(T<\fB\-t\fR\*(T> turns off most of the output options (\*(T<\fB\-d\fR\*(T>, \*(T<\fB\-m\fR\*(T>, \*(T<\fB\-c\fR\*(T>, ...). .TP -\*(T<\fB\-v\fR\*(T> +\*(T<\fB\-v\fR\*(T>, \*(T<\fB\-\-version\fR\*(T> Prints the version of the Expat library being used, including some information on the compile-time configuration of the library, and then exits. @@ -165,7 +240,7 @@ then exits. Enables support for Windows code pages. Normally, \fBxmlwf\fR will throw an error if it runs across an encoding that it is not equipped to handle itself. With -\*(T<\fB\-w\fR\*(T>, xmlwf will try to use a Windows code +\*(T<\fB\-w\fR\*(T>, \fBxmlwf\fR will try to use a Windows code page. See also \*(T<\fB\-e\fR\*(T>. .TP \*(T<\fB\-x\fR\*(T> @@ -210,24 +285,32 @@ will run \fBxmlwf\fR on the file Older versions of \fBxmlwf\fR do not support reading from standard input. .SH OUTPUT -If an input file is not well-formed, -\fBxmlwf\fR prints a single line describing -the problem to standard output. If a file is well formed, -\fBxmlwf\fR outputs nothing. +\fBxmlwf\fR outputs nothing for files which are problem-free. +If any input file is not well-formed, or if the output for any +input file cannot be opened, \fBxmlwf\fR prints a single +line describing the problem to standard output. +.PP +If the \*(T<\fB\-k\fR\*(T> option is not provided, \fBxmlwf\fR +halts upon encountering a well-formedness or output-file error. +If \*(T<\fB\-k\fR\*(T> is provided, \fBxmlwf\fR continues +processing the remaining input files, describing problems found with any of them. .SH "EXIT STATUS" -For option \*(T<\fB\-v\fR\*(T> or \*(T<\fB\-h\fR\*(T>, \fBxmlwf\fR always exits with status code 0. For other cases, the following exit status codes are returned: +For options \*(T<\fB\-v\fR\*(T>|\*(T<\fB\-\-version\fR\*(T> or \*(T<\fB\-h\fR\*(T>|\*(T<\fB\-\-help\fR\*(T>, \fBxmlwf\fR always exits with status code 0. For other cases, the following exit status codes are returned: .TP \*(T<\fB0\fR\*(T> -The input files are well-formed. +The input files are well-formed and the output (if requested) was written successfully. .TP \*(T<\fB1\fR\*(T> An internal error occurred. .TP \*(T<\fB2\fR\*(T> -An input file was not well-formed or could not be parsed. +One or more input files were not well-formed or could not be parsed. .TP \*(T<\fB3\fR\*(T> If using the \*(T<\fB\-d\fR\*(T> option, an error occurred opening an output file. +.TP +\*(T<\fB4\fR\*(T> +There was a command-line argument error in how \fBxmlwf\fR was invoked. .SH BUGS The errors should go to standard error, not standard output. .PP @@ -239,24 +322,16 @@ I have no idea why anyone would want to use the \*(T<\fB\-d\fR\*(T>, \*(T<\fB\-c\fR\*(T>, and \*(T<\fB\-m\fR\*(T> options. If someone could explain it to me, I'd like to add this information to this manpage. -.SH ALTERNATIVES -Here are some XML validators on the web: - -.nf - -http://www.hcrc.ed.ac.uk/~richard/xml\-check.html -http://www.stg.brown.edu/service/xmlvalid/ -http://www.scripting.com/frontier5/xml/code/xmlValidator.html -http://www.xml.com/pub/a/tools/ruwf/check.html -.fi .SH "SEE ALSO" .nf -The Expat home page: http://www.libexpat.org/ -The W3 XML specification: http://www.w3.org/TR/REC\-xml +The Expat home page: https://libexpat.github.io/ +The W3 XML 1.0 specification (fourth edition): https://www.w3.org/TR/2006/REC\-xml\-20060816/ +Billion laughs attack: https://en.wikipedia.org/wiki/Billion_laughs_attack .fi .SH AUTHOR -This manual page was written by Scott Bronson <\*(T<bronson@rinspin.com\*(T>> for +This manual page was originally written by Scott Bronson <\*(T<bronson@rinspin.com\*(T>> +in December 2001 for the Debian GNU/Linux system (but may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation diff --git a/3rdparty/expat/doc/xmlwf.xml b/3rdparty/expat/doc/xmlwf.xml index 654466cef62..cf6d984af46 100644 --- a/3rdparty/expat/doc/xmlwf.xml +++ b/3rdparty/expat/doc/xmlwf.xml @@ -1,11 +1,28 @@ -<!DOCTYPE refentry [ - <!-- Fill in your name for FIRSTNAME and SURNAME. --> +<!-- + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 2001 Scott Bronson <bronson@rinspin.com> + Copyright (c) 2002-2003 Fred L. Drake, Jr. <fdrake@users.sourceforge.net> + Copyright (c) 2009 Karl Waclawek <karl@waclawek.net> + Copyright (c) 2016-2024 Sebastian Pipping <sebastian@pipping.org> + Copyright (c) 2016 Ardo van Rangelrooij <ardo@debian.org> + Copyright (c) 2017 Rhodri James <rhodri@wildebeest.org.uk> + Copyright (c) 2020 Joe Orton <jorton@redhat.com> + Copyright (c) 2021 Tim Bray <tbray@textuality.com> + Unlike most of Expat, + this file is copyrighted under the GNU Free Documentation License 1.1. +--> +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" + "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [ <!ENTITY dhfirstname "<firstname>Scott</firstname>"> <!ENTITY dhsurname "<surname>Bronson</surname>"> - <!-- Please adjust the date whenever revising the manpage. --> - <!ENTITY dhdate "<date>March 11, 2016</date>"> - <!-- SECTION should be 1-8, maybe w/ subsection other parameters are - allowed: see man(7), man(1). --> + <!ENTITY dhdate "<date>November 6, 2024</date>"> + <!-- Please adjust this^^ date whenever cutting a new release. --> <!ENTITY dhsection "<manvolnum>1</manvolnum>"> <!ENTITY dhemail "<email>bronson@rinspin.com</email>"> <!ENTITY dhusername "Scott Bronson"> @@ -44,25 +61,22 @@ <refsynopsisdiv> <cmdsynopsis> <command>&dhpackage;</command> - <arg><option>-s</option></arg> - <arg><option>-n</option></arg> - <arg><option>-p</option></arg> - <arg><option>-x</option></arg> - - <arg><option>-e <replaceable>encoding</replaceable></option></arg> - <arg><option>-w</option></arg> - - <arg><option>-d <replaceable>output-dir</replaceable></option></arg> - <arg><option>-c</option></arg> - <arg><option>-m</option></arg> - - <arg><option>-r</option></arg> - <arg><option>-t</option></arg> - <arg><option>-N</option></arg> - - <arg><option>-v</option></arg> - - <arg>file ...</arg> + <arg><replaceable>OPTIONS</replaceable></arg> + <arg><replaceable>FILE</replaceable> ...</arg> + </cmdsynopsis> + <cmdsynopsis> + <command>&dhpackage;</command> + <group choice="plain"> + <arg><option>-h</option></arg> + <arg><option>--help</option></arg> + </group> + </cmdsynopsis> + <cmdsynopsis> + <command>&dhpackage;</command> + <group choice="plain"> + <arg><option>-v</option></arg> + <arg><option>--version</option></arg> + </group> </cmdsynopsis> </refsynopsisdiv> @@ -95,7 +109,7 @@ <listitem><para> The file begins with an XML declaration. For instance, <literal><?xml version="1.0" standalone="yes"?></literal>. - <emphasis>NOTE:</emphasis> + <emphasis>NOTE</emphasis>: <command>&dhpackage;</command> does not currently check for a valid XML declaration. </para></listitem> @@ -132,14 +146,58 @@ <para> When an option includes an argument, you may specify the argument either -separately ("<option>-d</option> output") or concatenated with the -option ("<option>-d</option>output"). <command>&dhpackage;</command> +separately ("<option>-d</option> <replaceable>output</replaceable>") or concatenated with the +option ("<option>-d</option><replaceable>output</replaceable>"). <command>&dhpackage;</command> supports both. </para> <variablelist> <varlistentry> + <term><option>-a</option> <replaceable>factor</replaceable></term> + <listitem> + <para> + Sets the maximum tolerated amplification factor + for protection against billion laughs attacks (default: 100.0). + The amplification factor is calculated as .. + </para> + <literallayout> + amplification := (direct + indirect) / direct + </literallayout> + <para> + .. while parsing, whereas + <direct> is the number of bytes read + from the primary document in parsing and + <indirect> is the number of bytes + added by expanding entities and reading of external DTD files, + combined. + </para> + <para> + <emphasis>NOTE</emphasis>: + If you ever need to increase this value for non-attack payload, + please file a bug report. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-b</option> <replaceable>bytes</replaceable></term> + <listitem> + <para> + Sets the number of output bytes (including amplification) + needed to activate protection against billion laughs attacks + (default: 8 MiB). + This can be thought of as an "activation threshold". + </para> + <para> + <emphasis>NOTE</emphasis>: + If you ever need to increase this value for non-attack payload, + please file a bug report. + </para> + </listitem> + </varlistentry> + + <varlistentry> <term><option>-c</option></term> <listitem> <para> @@ -153,7 +211,7 @@ supports both. </varlistentry> <varlistentry> - <term><option>-d output-dir</option></term> + <term><option>-d</option> <replaceable>output-dir</replaceable></term> <listitem> <para> Specifies a directory to contain transformed @@ -184,7 +242,7 @@ supports both. </varlistentry> <varlistentry> - <term><option>-e encoding</option></term> + <term><option>-e</option> <replaceable>encoding</replaceable></term> <listitem> <para> Specifies the character encoding for the document, overriding @@ -200,6 +258,44 @@ supports both. </varlistentry> <varlistentry> + <term><option>-g</option> <replaceable>bytes</replaceable></term> + <listitem> + <para> + Sets the buffer size to request per call pair to + <function>XML_GetBuffer</function> and <function>read</function> + (default: 8 KiB). + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-h</option></term> + <term><option>--help</option></term> + <listitem> + <para> + Prints short usage information on command <command>&dhpackage;</command>, + and then exits. + Similar to this man page but more concise. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-k</option></term> + <listitem> + <para> + When processing multiple files, <command>&dhpackage;</command> + by default halts after the the first file with an error. + This tells <command>&dhpackage;</command> to report the error + but to keep processing. + This can be useful, for example, when testing a filter that converts + many files to XML and you want to quickly find out which conversions + failed. + </para> + </listitem> + </varlistentry> + + <varlistentry> <term><option>-m</option></term> <listitem> <para> @@ -235,7 +331,7 @@ supports both. <term><option>-p</option></term> <listitem> <para> - Tells xmlwf to process external DTDs and parameter + Tells <command>&dhpackage;</command> to process external DTDs and parameter entities. </para> <para> @@ -247,6 +343,16 @@ supports both. </varlistentry> <varlistentry> + <term><option>-q</option></term> + <listitem> + <para> + Disable reparse deferral, and allow quadratic parse runtime + on large tokens (default: reparse deferral enabled). + </para> + </listitem> + </varlistentry> + + <varlistentry> <term><option>-r</option></term> <listitem> <para> @@ -292,9 +398,10 @@ supports both. </para> </listitem> </varlistentry> - + <varlistentry> <term><option>-v</option></term> + <term><option>--version</option></term> <listitem> <para> Prints the version of the Expat library being used, including some @@ -311,7 +418,7 @@ supports both. Enables support for Windows code pages. Normally, <command>&dhpackage;</command> will throw an error if it runs across an encoding that it is not equipped to handle itself. With - <option>-w</option>, &dhpackage; will try to use a Windows code + <option>-w</option>, <command>&dhpackage;</command> will try to use a Windows code page. See also <option>-e</option>. </para> </listitem> @@ -379,20 +486,26 @@ supports both. <refsect1> <title>OUTPUT</title> <para> - If an input file is not well-formed, - <command>&dhpackage;</command> prints a single line describing - the problem to standard output. If a file is well formed, - <command>&dhpackage;</command> outputs nothing. - </para> + <command>&dhpackage;</command> outputs nothing for files which are problem-free. + If any input file is not well-formed, or if the output for any + input file cannot be opened, <command>&dhpackage;</command> prints a single + line describing the problem to standard output. + </para> + <para> + If the <option>-k</option> option is not provided, <command>&dhpackage;</command> + halts upon encountering a well-formedness or output-file error. + If <option>-k</option> is provided, <command>&dhpackage;</command> continues + processing the remaining input files, describing problems found with any of them. + </para> </refsect1> <refsect1> <title>EXIT STATUS</title> - <para>For option <option>-v</option> or <option>-h</option>, <command>&dhpackage;</command> always exits with status code 0. For other cases, the following exit status codes are returned: + <para>For options <option>-v</option>|<option>--version</option> or <option>-h</option>|<option>--help</option>, <command>&dhpackage;</command> always exits with status code 0. For other cases, the following exit status codes are returned: <variablelist> <varlistentry> <term><option>0</option></term> - <listitem><para>The input files are well-formed.</para> + <listitem><para>The input files are well-formed and the output (if requested) was written successfully.</para> </listitem> </varlistentry> <varlistentry> @@ -402,7 +515,7 @@ supports both. </varlistentry> <varlistentry> <term><option>2</option></term> - <listitem><para>An input file was not well-formed or could not be parsed.</para> + <listitem><para>One or more input files were not well-formed or could not be parsed.</para> </listitem> </varlistentry> <varlistentry> @@ -410,6 +523,11 @@ supports both. <listitem><para>If using the <option>-d</option> option, an error occurred opening an output file.</para> </listitem> </varlistentry> + <varlistentry> + <term><option>4</option></term> + <listitem><para>There was a command-line argument error in how <command>&dhpackage;</command> was invoked.</para> + </listitem> + </varlistentry> </variablelist> </para> </refsect1> @@ -434,27 +552,13 @@ supports both. </refsect1> <refsect1> - <title>ALTERNATIVES</title> - <para> - Here are some XML validators on the web: - -<literallayout> -http://www.hcrc.ed.ac.uk/~richard/xml-check.html -http://www.stg.brown.edu/service/xmlvalid/ -http://www.scripting.com/frontier5/xml/code/xmlValidator.html -http://www.xml.com/pub/a/tools/ruwf/check.html -</literallayout> - - </para> - </refsect1> - - <refsect1> <title>SEE ALSO</title> <para> <literallayout> -The Expat home page: http://www.libexpat.org/ -The W3 XML specification: http://www.w3.org/TR/REC-xml +The Expat home page: https://libexpat.github.io/ +The W3 XML 1.0 specification (fourth edition): https://www.w3.org/TR/2006/REC-xml-20060816/ +Billion laughs attack: https://en.wikipedia.org/wiki/Billion_laughs_attack </literallayout> </para> @@ -463,7 +567,8 @@ The W3 XML specification: http://www.w3.org/TR/REC-xml <refsect1> <title>AUTHOR</title> <para> - This manual page was written by &dhusername; &dhemail; for + This manual page was originally written by &dhusername; &dhemail; + in December 2001 for the &debian; system (but may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the <acronym>GNU</acronym> Free Documentation |