Version: 1.0.0.20220918

2022-09-18: bigdecimalmath: set version to 0.9.0
2022-09-18: internettools: set version to 1.0.0
2022-09-18: bbutils: set version to 0.9.0
2022-09-18: documentation
2022-09-13: list types are not sequence types
2022-09-07: fix x:replace-nodes breaking processing-instructions
2022-08-07: also use content-disposition filename for inline
2022-07-27: change qt test result message
2022-07-27: do not keep a reference to the parser in the xml/html document
2022-07-07: fix multi-threading crash when resolv.conf is changed and reread by one thread while another thread is doing DNS lookups
2022-06-18: throw exception in parse-date#1 if the date is not completely parsed
2022-06-05: perhaps it is better as design time package, too
2022-06-05: move website anonymization from internettools to videlibri
2022-06-05: Lazarus package settings, not a design time package.
2022-05-28: fix Unicode lower/upper case conversion
2022-05-28: refactor Unicode SpecialCasing.txt functions
2022-05-28: do not run XT30+ tests with xpath/xquery 3.0
2022-05-27: faster string splitting
2022-05-27: use my own string (view) split options type rather than FPC
2022-05-26: check for socks=,http=,https= in proxy string
2022-05-26: add string view split to array function
2022-05-26: fix parsing of bogus html comment
2022-05-22: increase wininit buffer size
2022-05-21: handle URLs with trailing dots when using OpenSSL
2022-05-14: add bbdebugtools for videlibri compuilation
2022-04-30: more standard duplicate json key options between merge/parse/json-to-xml
2022-04-29: remove view offset method
2022-04-29: fix useless warnings
2022-04-23: fix warnings
2022-04-23: fix array view overflow
2022-04-23: try to fix int16 view tests
2022-04-18: use new SNI function for BoringSSL
2022-04-07: add an actual string view
2022-04-04: fix pointless warnings
2022-04-04: more view work
2022-04-04: fix useless warnings
2022-04-03: rename view view* methods
2022-03-31: rename view methods
2022-03-31: update documentation
2022-03-21: safer stream writing
2022-03-19: fix an uninitialized variable breaking HTTP requests when converting a not urlencoded request to an urlencoded request
2022-03-18: move views to main unit
2022-03-18: fix test (moveBY now returns true after moving behind the last char)
2022-03-18: check for negative/overflow offsets in moveby/cutby
2022-03-18: views: use more unsigned ints
2022-03-18: update to renamed methods
2022-03-18: rename view objects to TPointerView and TPCharView
2022-03-18: update to renamed methods
2022-03-18: renaming view methods
2022-03-18: fix content-disposition test encoding
2022-03-17: change buffer write size to nativeint
2022-03-14: add parsing of Content-Disposition HTTP header
2022-03-14: add string view split functions
2022-03-13: add isEqual method to view, and equals operators for string view
2022-02-12: log failed file loads
2022-01-31: print namespace prefixes in debug messages rather than the namespace url for predefined namespaces
2022-01-14: add comment
2022-01-08: fix useless warnings
2022-01-08: improve error messages, for multipage templates
2022-01-07: fix warnings
2022-01-07: remove noreturn from exception throwing functions
2022-01-07: show called actions in multipagetemplate action back trace
2022-01-03: xpath 4.0: add map:group-by and array:partition
2022-01-03: faster attribute selectors
2022-01-03: faster sorting
2022-01-02: travis: do not download pasdblstrutils with git since there is too much stuff in the repository
2022-01-02: add pasdblstrutils path to lazarus project
2022-01-02: travis: download pasdblstrutils
2022-01-01: default to using Bero's double parser for JSON
2022-01-01: faster sorting
2022-01-01: reimplement transform/replace-nodes in Pascal
2022-01-01: cleanup refactoring
2022-01-01: refactor xquery XML constructors, trying to merge the tree construction with the xml/html parser tree construction
2021-12-31: merge adjacent text nodes in tree builder
2021-12-31: check error code when creating zstream inflater
2021-12-31: fix inflating when using header buffer
2021-12-29: fix possible inflater debugging buffer length overflow
2021-12-26: stacktrace for template actions
2021-12-26: ArrayList.deleteLast method
2021-12-26: no line break at document start
2021-12-25: use use-character-maps 10 replacement for line endings
2021-12-25: indent more elements: script in head, and indent elements even if there is a sibling that cannot be indented
2021-12-25: do not use now because it is broken in fpc 3.2.3
2021-12-25: merge inner and innerDocument serialization functions
2021-12-23: xpath 4: add for member
2021-12-23: simplify parsing code
2021-12-23: xpath 4: add operator ->{} bin operator
2021-12-23: xpath 4: add operator -> similar to =>
2021-12-22: fix inflater debugging
2021-12-19: xpath 4: fn:some + fn:all
2021-12-18: xpath 4: add otherwise syntax
2021-12-14: do not show an error when assigning to an array
2021-12-14: allow x:key-order as string
2021-12-14: fn:serialize. only use LF line endings
2021-12-14: write xml text directly to output without temporary copy
2021-12-14: fix node serialization always returning UTF8 marked strings
2021-12-14: more custom line breaks in serialization
2021-12-13: custom line breaks in serialization
2021-12-13: add inflater debugging
2021-12-12: do not remove #13 when indenting
2021-12-12: remove duplicate code
2021-12-11: do not show variable name when chaning json twice
2021-12-05: fix float parsing crash (on aarch64)
2021-11-19: replaced most SharedPreferences with custom JSON JNI config. replace PreferenceFragment xml with Kotlin builder
2021-11-14: fix load-xquery-module in xpath queries
2021-11-13: query test suite: parse the spec dependency to check if it contains the current version rather than manually listing all possible spec combinations
2021-10-11: xpath/xq 4.0 for test suite
2021-10-10: add TXQValue.toStringArray cast function
2021-10-03: add xpath 4 functions: identity, characters, replicate, map:filter
2021-09-25: fix possible crash when the program is closed while it still transmitting data to the server
2021-09-19: add xpath 4 functions: index-where and is-NaN
2021-09-17: add xpath 4: ->{} inline function declaration
2021-09-17: fix type check error when printing array in debugAsStringWithTypeAnnotation
2021-09-17: wait for more data before starting decompression if not enough bytes have been received
2021-09-12: set several default languages to XQuery 4.0
2021-09-12: first XPath 4.0 feature: support ?$x and ?"x"
2021-09-12: preparations for xpath/xquery 4.0
2021-09-12: faster power function
2021-09-12: fix uninitialized variable
2021-09-12: simplify html/xml parsing more
2021-09-12: simplify html/xml parsing
2021-09-12: fix warnings
2021-09-12: fix memory leak
2021-09-12: do not allow signed infinite/nan and mixing json-to-xml/parse-json duplicate key parameters
2021-09-12: simplify json parsing
2021-09-08: fix crash when using old OpenSSL that does not have SslMethodTLS
2021-09-08: fix Android compilation with old FPC
2021-09-05: fix wrong ordering when applying multiple predicates to ancestor axis
2021-09-04: xml-to-json: implement weird unescaping-reescaping of strings with escape/escape-key option
2021-09-04: implement xml-to-json in Pascal
2021-09-04: implement json-to-xml in Pascal
2021-09-04: fix calling of user-defined functions
2021-09-04: fix handling of \\ when copying an escaped json string
2021-08-23: add --output-key-order option
2021-08-23: add option to order JSON keys when serializing
2021-08-23: fix memory leak when serializing JSON
2021-08-21: fix out of bounds read if JSON ends with #0
2021-08-21: fix endless loop when JSON contains #0
2021-08-20: use my own string to int conversions functions at various places
2021-08-19: rename string to int conversion functions
2021-08-19: fix broken json-to-xml function (from "hardcode type information for interpreted functions, so they do not need to be parsed at startup" commit)
2021-08-18: cache hash code when looking up a function in the hashmaps
2021-08-18: fix CA certificates not being set when using Synapse
2021-08-18: change function list from a sorted list to a hashmap.
2021-08-18: improve hashmap: faster findEntity if used to insert a new key (avoid double hashing), add value enumerator, add reserve function
2021-08-18: add fastjsonscanner to project
2021-08-18: hardcode type information for interpreted functions, so they do not need to be parsed at startup
2021-08-17: refactor json scanner string decoding. Fix that 00..1F characters were escaped/marked as invalid for XML Schema 1.1 when they should not be. Add option for not escaping anything
2021-08-17: fix compiling with fpc 3.0.4?
2021-08-17: try to support TLS1.1 even if compiled with a Synapse version that does not support anything newer than TLS1.0
2021-08-17: try to support TLS1.2, TLS1.3 even if compiled with a Synapse version that does not support anything newer than TLS1.1
2021-08-17: fix setting too many syntax modes
2021-08-16: set missing syntax mode
2021-08-16: fix json scanner not being synced with git
2021-08-16: refactor json scanner/parser
2021-08-16: update tests for changed base-uri
2021-08-16: restore ssl error messages and add check for TLS1.3 (SSL_set_min/max_proto_version should enable TLS1.3, but OpenSSL 1.1.1f on my computer does not seem to have those functions, so it is not tested)
2021-08-16: do not attempt to interact with the synapse ssl plugin. Just copy paste it and change it there
2021-08-15: created element nodes inherited base-uri from defining context. fixes cbcl-module-002
2021-08-15: evaluate declared variables in defining context.
2021-08-15: fix warnings
2021-08-15: run <assert> with the result as context item
2021-08-15: do not allow the same module to be registered multiple times
2021-08-15: restore imported module setting such that each module imports itself
2021-08-15: remove AutomaticallyRegisterParsedModules option which could disable automatical module registration
2021-08-15: fix memory leak when using multiple modules with the same name
2021-08-15: refactor module import to allow multiple modules with the same name(space).
2021-08-15: fix/hide warnings
2021-08-14: stricter checking for invalid UTF-8 in json parsing error
2021-08-14: qt3tests: unescape % when loading files
2021-08-14: perhaps faster string to int conversion
2021-08-14: refactor json scanner to not be line based. properly checks for #0 and probably faster
2021-08-13: fix missing constructor call, fixes cookie loasding crash
2021-08-13: faster json string scanning
2021-08-13: remove json scanner things I do not need
2021-08-13: reimplement json string parsing with pchar
2021-08-13: move number parsing from beta to bbutils, add hex number parsing
2021-08-13: add a comment
2021-08-13: fork FPC json scanner, replace string token with pchar
2021-08-13: always enable logging when starting benchmarking
2021-08-13: add a parse pchar to float function (just a wrapper around Val)
2021-08-13: update test cases for string conversion functions
2021-08-13: add array view init methods
2021-08-13: add a parse pchar to bigdecimal function
2021-08-12: add my own string to integer conversion functions
2021-08-11: option to use bero's str->float conversion for improved last-bit-rounding
2021-08-11: refactor str->float conversion, use val directly
2021-08-11: add trimLeft/trimRight string view functions
2021-08-11: refactor str->float conversion
2021-08-11: qt3tests: remove surrounding whitespace for XML assertions.
2021-08-10: self import is allowed in xq3
2021-08-10: fix type error id code for calling load-xquery-module with wrongly typed variables
2021-08-10: functions can have their own global variables for load-xquery-module
2021-08-09: refactor contexts to keep global variables separate and possibly remove custom extension elements
2021-08-09: add view helper for TBytes
2021-08-08: synapse: allow usage with other SSL-connections than my override. (but this is not secure with OpenSSL due to synapse not doing hostname validation).
2021-08-08: synapse: fix proxy change
2021-08-07: wininet: fix connection failure after config change
2021-08-07: improve error message
2021-08-07: synapse: properly reset proxy
2021-08-06: recreate connection settings when config changes in setConfig
2021-08-06: more transfer refactoring
2021-08-06: refactor internet access: store config in the TInternetAccess class rather than a pointer. Set config in create and by property.
2021-08-06: complete the transfer refactoring for android
2021-08-06: fix invalid type cast and refactor
2021-08-05: disable disabling of warning for old fpc because it does not seem to handle it
2021-08-05: check for formaction/formmethod/formenctype on submit element. Additionally store original form action/method/enctype, so request-combine can remove formaction/formmethod/formenctype if another submit element is chosen.
2021-08-05: refactor form function
2021-08-05: allow json modification with $..?.. :=
2021-08-04: improve error message for invalid xquery version
2021-08-04: always override SSLImplementation even if synapse internet access is not used, because it might be used later
2021-08-04: simplify path resolving in multipage include
2021-08-04: 💥 request-combine: remove old submit elements, when new submit elements are given
2021-08-04: refactor request-combine function
2021-08-04: form: track which params originate from submit elements
2021-08-04: form: change image button default coordinates to x=0&y=0
2021-08-02: update test suite runner for changed internet connection methods
2021-08-02: update for renamed random number generator
2021-08-02: 💥 form function: if there are buttons in the form, simulate a click on the first button, unless another button is specified in the override params
2021-08-02: remove unused property
2021-08-02: search for form-associated elements that are not descendants of the <form>
2021-08-02: faster form and nodeToFormData function using node name hashs
2021-08-02: use my own random number generator for multipart boundaries
2021-08-02: move random number generator from internettools to bbutils
2021-08-01: fix strResolveURI being confused by /./ and // in base uri
2021-08-01: check for windows \ dir separators in strResolveURI if compiled on Windows
2021-08-01: refactor internet access to keep current connection data in a separate record from the internet class. 💥 change OnTransfer* callback signatures
2021-07-30: simpler length function
2021-07-25: fix useless warnings
2021-07-24: replace loop count regex {[0-9],[0-9]} with function
2021-07-24: hide useless warning
2021-07-24: do not free memory on exit when all process memory is going to be freed anyways
2021-07-24: fix wrong context being passed to OnImportModule callback function
2021-07-20: fix warnings
2021-07-20: 💥 disable extensions when using --xpath or --xquery
2021-07-18: put more float tests behind a define (they do not work with valgrind)
2021-07-18: fix unitialized variable warning
2021-07-18: support enctype="text/plain"
2021-07-17: more tests for strResolveURI
2021-07-17: make hrefs in included files relative to the included files rather than relative to including file
2021-07-17: improve multi-page template documentation
2021-07-17: add <include> command for multipage templates
2021-07-17: add @pattern-href as alternative to @templateFile
2021-07-17: refactor multipage template loading to load patterns immediately rather than afterwards
2021-07-04: implement some multipart escape rules from the HTML5 standard
2021-07-04: append final line break when sending MIME form data
2021-07-04: implement _charset_ differently
2021-07-04: partly implement _charset_ form submission
2021-07-04: slightly simplify node to formdata
2021-07-03: fix wrongly placed destructor call
2021-07-03: form submission: handle form elements that have multiple values: <select> with multiple selected <option>s, image button with .x and .y, <input> elements with dirname
2021-07-03: fix improved unknown variable error message causing a memory leak
2021-07-03: improve error messages for wrong declare ordering
2021-07-03: improve error messages for unknown variables
2021-07-03: improve error messages for using node paths where they are not usable
2021-06-26: more string view methods
2021-06-23: do not ignore @t:test in switch pattern matching
2021-06-20: fix tests since the default language in simpleinternet also changed to xquery
2021-06-20: 💥 change xidel default language to XQuery for -e and -f
2021-06-20: add option to ignore invalid entities in xquery strings
2021-06-20: handle compressed responses / Content-Encoding header
2021-06-15: fix theoretical buffer overflow
2021-06-15: fix hints and warnings
2021-06-15: add useless assignments to hide useless not-initialized warnings because fpc non-trunk does not track variable initialization properly
2021-06-15: convert more functions to record methods
2021-06-15: move bigdecimalmath.is* functions to bigdecimal.is* advanced record methods, and raise an error if xpath operator to is used with non integers
2021-06-05: default to using Windows default proxy settings
2021-05-30: change error code if a json parsing error occurs and the file is not utf-8
2021-05-29: 💥 change OnDeclareExternalVariable parameters
2021-05-28: fix compilation for fpc 3.0.4 ??
2021-05-28: use new serialization unit in xidel and file module
2021-05-28: move node serialization to separate unit, so it does not require xquery
2021-05-28: when getting a context node do not raise an exception when there is a context item that is not a node
2021-05-28: fix unused variables
2021-05-28: default to xquery 3.1 in Pascal query function, deprecate evaluation functions for older versions
2021-05-22: for XML 1.1, also normalize  #xD #x85, #x85, and #x2028 to #x10
2021-05-22: merge adjacent text nodes
2021-05-22: add a XML test suite runner
2021-05-17: fix default namespace not being closed
2021-05-03: fix old fpc compilation?
2021-05-02: check for termux certificate paths
2021-05-02: check SSL_CERT_FILE/SSL_CERT_DIR environment variables before searching default paths
2021-05-02: do not assume compiler settings
2021-04-21: hashset: assign and isEqual functions
2021-04-12: move to Travis com
2021-04-11: fix missing class function
2021-03-27: fix use of localized strToFloat conversion when the english decimal dot should have been used
2021-03-09: update documentation, fix spelling errors
2021-03-09: fix warnings; faster strReverse function with tests
2021-03-09: fix last commit
2021-03-09: fix synapse compiling
2021-03-09: 💥 change format detection
2021-03-07: 💥 do not cast non-string keys to string when accessing string maps, unless JSONiq mode is enabled
2021-03-07: fix map:remove crash when multiple keys to remove are given as an array rather than a sequence
2021-03-07: fix nodes/arrays were not properly atomized when used as keys for string maps
2021-03-06: improve debug messages where a path matching step is serialized
2021-03-06: 💥 toString on a sequence returns the concatenated values of all items in the sequence not just the first item
2021-03-05: more fn:subsequence test cases for higher line coverage
2021-03-05: refactor xpathRangeDefinition to be int64 and double only
2021-03-05: (broken) refactor xpathRangeDefinition by splitting big decimal case in another function
2021-03-05: improve 64-bit support
2021-02-27: strbuilder: smaller append char function
2021-02-18: add document parameter to replace-nodes
2021-02-06: remove debug code
2021-02-06: set PIPE signal to ignore because it can cause a crash when the connection timeouts
2021-02-06: allow the Synapse-replacement SSL socket to be used by Synapse itself without involving TSynapseInternetAccess
2021-02-01: alternative, faster str builder append(char) function (amd64 assembly; not used, too much maintainence trouble)
2021-02-01: str builder: fix possible aliasing issue, theoretically faster initialization
2021-01-31: improve openssl error messages
2021-01-30: add some EXpath binary module functions
2021-01-30: add simpler functions to convert bigdecimal to integers
2021-01-30: refactor txqvaluebinary.toRawBinary to returns tbytes and rename it to toBinaryBytes
2021-01-30: add decode hex to bytes function
2021-01-30: set language model in static context before running tests
2021-01-29: set default model to xpath3.1 in static context, fix that copying a static context reset the model to xpath2
2021-01-24: add line break after xml declaration
2021-01-24: fix file:exists not working for directories on linux anymore due to changed behavior of freepascal
2021-01-24: update documentation, fix spelling errors
2021-01-10: force 4 bytes set size so casting to integer is possible on all platforms
2021-01-10: improve error message for EBV of sequence
2020-12-31: move random-number-generator from 3.0 to 3.1 functions
2020-12-27: fix GetProcedureAddress for fpc3.0.4
2020-12-27: do not set CP_NONE target encoding, since it now causes all strings to become empty strings on concatenation
2020-12-27: on windows search openssl CA file in program path
2020-12-26: update function dumping
2020-12-26: fix wrong type annotation: parse-xml-fragment returns document-node() rather than document-node(element(*)), functions on arrays have array() not JSONiq's array
2020-12-25: do not allow queries using pre-3.1 versions to access map:*/array:* functions
2020-12-24: do not load CA certs if certificate checking disabled
2020-12-24: remove option to disable entity resolving in example since the parser now always resolves them
2020-12-24: do not use GetProcAddress since it is not found in fpc3.0.4
2020-12-24: remove references to ConnectionTimeout and LT_TLSv1_2 because they do not exist in the newest Synapse SVN, r40
2020-12-24: improve error message for missing CA certs
2020-12-24: when OpenSSL's protocol detection fails, try TLS1.2, TLS1.1, and TLS1.0, rather than just TLS1.0
2020-12-24: improve https error messages
2020-12-24: search openssl default paths and environment variables for certificates
2020-12-22: slightly faster parsing: avoid duplicate hash calculation and use string interning for local names of nodes
2020-12-21: actually check https certificates when using OpenSSL
2020-12-20: basically ignore </body></html> when parsing
2020-12-20: slightly faster strDecodeHTMLEntities
2020-12-20: only search the first 32KB of a file for invalid utf-8 when guessing encoding
2020-12-20: rename encoding variables, and compare with actual target encoding (not cp_acp)
2020-12-20: merge line normalization and entity decoding
2020-12-20: change content-type encoding parsing: accept quotes and all codepages
2020-12-20: New encoding handling: Guess encoding, then parse; restart if <?xml>/<meta> gives a different encoding
2020-12-20: move encodingName from xidel to bbutils and rename it to strEncodingName
2020-12-19: split XML and HTML tree parser
2020-12-19: remove outdated processing instruction parsing code
2020-12-19: simpler way to set <input type="image"/> values in form function
2020-12-12: when auto choosing a <form>, choose the one with matching input names rather than the first one
2020-12-08: fix handling of form(())
2020-12-07: allow one to call form without specifying a <form> element to fill out the first <form>
2020-12-05: better array index out of bounds error message
2020-12-02: fix that the need for function coercion was decided by comparing function parameter types covariant rather than contravariant
2020-12-02: deprecate pxp:json function
2020-12-02: unwrap arrays in binary ops
2020-12-02: raise FOTY0013 rather XPTY0004 on some invalid function usage
2020-11-30: handle options in json-doc, check fallback argument arity
2020-11-30: html serialization: do not escape &{script macros} in attributes
2020-11-29: html serialization: print true boolean attributes without value
2020-11-29: simplify attribute serialization
2020-11-29: html serialization: do not escape inside nested implicit cdata elements
2020-11-28: fix entities in the 1252 codepage extension range always being parsed according to HTML rules (as characters with codepage 1252) rather than XML rules (as unicode codepoints)
2020-11-27: fix unsafe use of TXQBatchFunctionCall
2020-11-27: array:subarray#1 check for too large index
2020-11-27: map:find also search in returned values
2020-11-27: fix missing context item error code on ? operator
2020-11-27: check error code when creating icu search
2020-11-25: add function x:replace-nodes. (this deprecates pxp:transform. do not use it anymore)
2020-11-25: update tests to no longer allowed constructs
2020-11-22: fix inlining warning
2020-11-21: do not allow out of range array accesses unless jsoniq mode is used
2020-11-21: rename AllowJSONiqBooleanStringConversion to AllowJSONiqOperations
2020-11-21: only allow construction of xml:id attributes with NCName values
2020-11-21: refactor hashmap reinsertation
2020-11-21: *:* is not a valid expression
2020-11-20: add non-owning TXQBaseHashmapValuePointerLike
2020-11-18: set AllowJSONiqBooleanStringConversion at more places when jsoniq unit is loaded
2020-11-15: add option to allow map/array to bool/string casting; in xidel depending on jsonmode
2020-10-25: do not allow arrays in fn:string
2020-10-25: Do not allow using objects/arrays to be used as strings/booleans (this might BREAK a lot of existing queries)
2020-10-25: atomize map keys before using them
2020-10-25: fix atomic comparison of empty arrays using refactored comparisons
2020-10-25: refactor comparisons
2020-10-24: implement atomic conversion of arrays; refactor atomic conversion of sequences
2020-10-24: remove template file used for automatic code generation
2020-10-24: fix tests compiling on systems without extended float type
2020-10-24: file:move: do not delete target file before moving on windows
2020-10-24: fix range check error when getting file attributes
2020-10-24: fix timezone sign
2020-10-24: fix compiling on systems without extended float type
2020-10-24: use new decimal to float/double conversion functions
2020-10-24: fix adaptive serialization of floats
2020-10-16: update some big decimal tests to run on fpc trunk
2020-10-16: fix bad precision when converting bigdecimal to float; add toString, toSingle, toDouble, toExtended as advanced record methods
2020-10-15: fix test crash on fpc trunk
2020-10-14: qt3 tests: run more feature specific tests
2020-10-14: qt3 tests: do not abort when an assert evaluation raises an exception
2020-10-11: improve error message for mismatched function parameter counts
2020-10-11: fix element test crashing in "declare context item as element(catalog) external" and possibly other places because it was using an uninitialized context without namespaces to resolve the default namespace
2020-10-11: implement fn:load-xquery-module
2020-10-11: fix inner-text() not removing whitespace before line breaks
2020-10-11: fix inner-text() removing too much whitespace between elements
2020-10-11: fix UCA reorder and alternate=blanked;strength>3
2020-10-10: improve error messages for errors spanning multiple lines
2020-10-10: more string view functions, rename nilToLast to nilMeansInfinity
2020-10-10: improve error message for module functions in wrong namespace
2020-10-10: fix last commit
2020-10-10: fix warnings
2020-10-10: restore UnitOutputDirectory
2020-10-09: wininet: set INTERNET_FLAG_NO_CACHE_WRITE flag; refactor
2020-10-09: synapse: improve error message for internet failure
2020-09-30: fix xml-to-json not ignoring ignorable nodes
2020-09-30: UCA: fix match length calculation, generally and substring-after specifically; do not ignore numeric setting
2020-09-29: do not allow empty string for parse-json
2020-09-28: fix escaping when serializing atomic values to xml
2020-09-28: fix html serialization indenting processing instructions
2020-09-28: fix xml-to-json creating maps for @key instead of <map>
2020-09-27: fix qt3 tests being run with the wrong environment when multiple environments have the same name
2020-09-27: fix compiling on newer fpc
2020-09-27: fix compiling on older fpc
2020-09-27: fix sequences in arrays treated as single item in comparisons and node constructors
2020-09-27: remove jsoniq test not compatible with xpath 3.1
2020-09-27: fix too strict parameter type checking
2020-09-27: fix compiling on older fpc
2020-09-27: fix too strict parameter type checking
2020-09-27: try to fix travis paths
2020-09-27: fix warnings, code cleanup
2020-09-27: fix map instance of corner cases
2020-09-26: fix wrong map type check raising FOTY0013 instead of XPTY0004 error
2020-09-26: fix wrong string type for xml namespace uri
2020-09-26: add binary compare function from earlier
2020-09-26: fix my own copy namespace tests
2020-09-26: fix nscons-32
2020-09-26: fix K2-DirectConElemNamespace-78
2020-09-26: fix some copy namespace issues
2020-09-25: simplify test report
2020-09-25: fix binary comparison in min/max to compare bianry data not encoded string value
2020-09-25: fix binary comparison raising exception in index-of and distinct-values
2020-09-25: refactor binary type. keeping it merged with the string type provided no advantages
2020-09-24: improve reporting of all-of assertions
2020-09-24: allow %public %private in instance of
2020-09-24: improve xml<->json conversion null and error handling
2020-09-24: do not allow new xquery features in old xquery modes
2020-09-24: fix parsing of tenth decimals, e.g. ".3"
2020-09-24: fix wrong variable name
2020-09-24: check for Q{ names in computed constructors
2020-09-24: modernize test runner
2020-09-24: fix crash on invalid query
2020-09-24: fix test file loading and json-doc error code
2020-09-23: add UCA collations using libicu
2020-09-22: fix crash at start-up on aarch64-emulated-on-x86_64 emulator
2020-09-21: fix refactored collation tests
2020-09-21: fix warning
2020-09-20: refactor collations
2020-09-20: fix invalid fpc_ansistr_decr_ref call with fpc r40721 amd64 -O2 when running qt3 xhtml serialization tests
2020-09-20: add empty fn:transform function
2020-09-20: fix valgrind memcheck errors
2020-09-19: add xml/json conversion by @joewiz
2020-09-19: always set exponent to zero when formatting 0
2020-09-19: fix qt3 case numberformat301
2020-09-19: support decimal formats with exponents in declaration and format-number
2020-09-19: add function to get significant digit of bcd
2020-09-19: fn:serialize: check map key type
2020-09-19: fix error code for map atomization
2020-09-19: fix sort not handling array keys and error messages
2020-09-19: fix array atomization enumerator not iterating through contained sequences
2020-09-19: qt3: improve file loading
2020-09-18: qt3: disable line break normalization when evaluating deep-equal
2020-09-17: reimplement http request modifying functions: form, request-combine, uri-combine, (deprecated) form-combine. Breaking change: values in overriding object are treated as sequences, not strings
2020-09-17: allow nil values in pointer owning hashmap
2020-09-17: new hashmap: string -> sizeint
2020-09-13: fix warnings, memory leak
2020-09-12: fix floating point issues for fpc 3.0.4 further
2020-09-12: fix floating point issues for fpc 3.0.4
2020-09-12: fix instance of new map type
2020-09-11: fix precision when comparing numbers as hashmap keys
2020-09-11: fix wrong time zone hash calculation
2020-09-11: refactor hash map; equal keys can override each other when they are not the same keys
2020-09-11: fix refactor floats
2020-09-11: refactor floats
2020-09-11: fix float hashing for fpc 3.0.4
2020-09-06: fix NaN keys are equal
2020-09-06: compare keys using a static context
2020-09-06: add json-to-xml/xml-to-json because the qt3 test evaluation fails without them
2020-09-06: fix adaptive serialization and new map type type annotation
2020-09-06: use new map type for map {...}
2020-09-06: add a standard XPath/XQuery 3.1 map type
2020-09-06: refactor hashmap: return wrapped pointer not index in enumerator
2020-09-02: hashmap with xqvalue keys for 3.1
2020-09-02: refactor hashmap, swap string and owning in hierarchy
2020-09-02: refactor hashmap
2020-09-02: refactor hashmap: do not assume keys can be converted to pointer/length pairs in the base map
2020-08-25: hashing for xqvalues
2020-08-24: fn:unparsed-text-available returns false() on empty sequence
2020-08-24: hashmap: remove deletion code with defines rather than out commenting
2020-08-24: revert commit: hashmap: change assert
2020-08-24: raise XPTY0117 for node to qname conversion
2020-08-24: clear declared variables before running tests
2020-08-24: hashmap: change assert
2020-08-23: cache documents returned by fn:collection (fix collection-009)
2020-08-23: atomize arrays when calling functions
2020-08-23: when checking if an array or map is an instance of an array or map type, check the actual types of the values in the array or map
2020-08-23: refactor type checking: treat map/array separately from atomic types
2020-08-23: when checking if a map is an instance of a map type, check the actual types of the values in the map
2020-08-23: fix wrongly refactored type checking (instance of function type)
2020-08-23: refactor type checking
2020-08-23: fully copy objects with size at most 7
2020-08-23: faster assign/includeAll
2020-08-23: refactor hashmap
2020-08-20: raise exception when a map with duplicate keys is created
2020-08-19: fix crash when accessing non-existing map update property
2020-08-19: always use hashmap based xqvalue maps
2020-08-18: remove TXQValueObject casting
2020-08-15: faster number parsing
2020-08-15: fix slow conversion of 0E10000* to integer 0
2020-08-15: update request-combine function for refactored maps
2020-08-15: refactor TXQValueObject/TXQValueMap
2020-08-15: move object node stringification away from TXQValueObject
2020-08-15: move object serialization away from TXQValueObject
2020-08-14: remove TXQValueJSONIQStructuredItem/TXQValueJSONIQItem as it does not seem to be used anymore
2020-08-04: comments
2020-08-04: workaround for fpc bug #37468
2020-08-04: fix freeing of new map xqvalue
2020-08-02: new xqvalue storing a hashmap
2020-08-02: new (owning) hashmap functions: findKeyValuePair, assign, includeAll
2020-08-02: fix fpc 3.3.1 warnings
2020-08-02: remove a TXQValueObject cast
2020-08-02: array:subarray also check for invalid indices > 32-bit on 32-bit systems
2020-08-02: fix fpc 3.3.1 compilation error
2020-08-02: faster duplicate property check in enumerator
2020-08-02: remove furter TXQValueObject references
2020-08-02: reduce TXQValueObject references
2020-07-21: travis: use old fpc for default regexpr
2020-07-21: do not allow default regexpr for fpc 3.2.0
2020-07-21: fix bsd define with fpc3.0 linux
2020-07-21: travis do not use Lazarus RC version
2020-07-19: fix bsd compilation with fpc3.2 ?
2020-07-19: do not preserve namespaces that are overriden by the copied element name itself
2020-07-13: try needs catch expression; improve error message
2020-07-05: do not indent document node when serializinh
2020-06-13: fix > of PI in HTML being added to the text of the node
2020-06-08: also override Ansi2Wide/wide2ansi when overriding ansi2unicode/unicode2ansi
2020-06-06: fix attribute matcher using default element namespace
2020-04-21: fix eval const cast of evaluation context losing static context
2020-04-05: remove unused unit use
2020-04-05: hashmap: inline include in resize, so it does not check if the key already exists
2020-04-03: do not delete <h1> from anonymous error reports
2020-04-02: restore non-standard serialization of attributes
2020-03-30: appendBOM function
2020-03-29: handle byte-order-mark parameter; and use new serialization for file module
2020-03-29: do not escape @icon (see w3c errata)
2020-03-29: refactor serialization
2020-03-28: fix file:list and file:read-binary
2020-03-28: replace case of strings with case of hashes.
2020-03-28: ...
2020-03-28: ...
2020-03-28: fix compilation (on old fpc)?
2020-03-28: add htmlinformation.pas to git mirror
2020-03-28: refactor serialization
2020-03-28: add case insensitive hash map; and two level case insensitive hash set
2020-03-28: add forgotten file
2020-03-28: add case insensitive hash set
2020-03-28: array list: add contains and indexOf functions; only resize buffer to reduce size when half of the buffer is empty
2020-03-28: fix serialization of processing instruction and empty elements: xhtml method should never uses the empty form for non-html elements, while html method serializes non-html elements as xml
2020-03-28: remove prefixes for html, svg and mathml namespaces when serializing html/xhtml
2020-03-28: do not indent descendants of xml elements with xml:space="preserve"
2020-03-28: fix attribute serialization in default serialization
2020-03-28: always serialize elements outside the html namespaces as xml even if the output method is html
2020-03-27: simplify namespace handling during serialization; and optimization
2020-03-27: implement undeclare-prefixes parameter for xml/xhtml serialization
2020-03-27: implement escape-uri-attributes parameters for html/xhtml serialization
2020-03-27: fix hashmap not compiling on old fpc?
2020-03-27: implement include-content-type and media-type parameters for html/xhtml serialization
2020-03-27: implement actual xhtml serialization
2020-03-26: fix handling of processing instructions in HTML
2020-03-26: implement indent and suppress-indentation parameters for html serialization
2020-03-26: add hashmap enumerators
2020-03-26: fix duplicated closing tag serialization
2020-03-26: implement indent and suppress-indentation parameters for xml serialization
2020-03-26: add alternative for isNullOrWhitespace string helper method
2020-03-25: fix unusual (default) serialization parameters
2020-03-25: use local namespaces when resolving cdata section qnames
2020-03-25: refactor utf-8 string enumeration
2020-03-25: add cdata-section-elements serialization option
2020-03-24: add use-character-maps option for xml/html serialization
2020-03-24: use new hashmap
2020-03-24: add pipe support when loading files
2020-03-24: refactor node serialization
2020-03-23: various checks for invalid serialization options
2020-03-23: add hashset
2020-03-23: add helper function to get length of an utf-8 string
2020-03-23: refactor hashmap
2020-03-23: set default settings for empty sequence serialization options
2020-03-23: fix serialization of <param> html element
2020-03-23: add allow-duplicate-names option to json serialization
2020-03-23: read json-node-output-method option from serialization parameters given as xml
2020-03-23: add encoding option to json serialization: serialize all non ascii data with \u...
2020-03-23: add utf16 surrogate encoding; add helper function for striterator
2020-03-23: fix ownership tracking of hashmap values
2020-03-23: add use-character-maps option to json serialization
2020-03-23: refactor hashmap to allow substrings as key
2020-03-23: add utf8 codepoint length enumerator
2020-03-22: new hashmap, based on flre
2020-03-19: merge: compatibly with latest FPC trunk
2020-03-18: fix test cases for changed processing-node serialization
2020-03-18: fix warnings
2020-03-18: change serialization default settings. Only escape / in json functions needed to pass the w3c xquery test suite
2020-03-18: fix uninitialized variable
2020-03-17: raise error when serializing attributes with json method
2020-03-17: add unicode normalization for json method
2020-03-17: properly handle <?xml declaration, especially standalone parameter
2020-03-17: yearMonthDuration and dayTimeDuration are not primitive types
2020-03-17: run new test cases
2020-03-17: run serialization tests (properly)
2020-03-17: fix some xml/html/text method issues
2020-03-17: refactor XML/HTML/Text serialization
2020-03-17: fix output options, error codes and type confusion
2020-03-17: fix output:parameter-document option
2020-03-17: fix adaptive serialization
2020-03-17: handle declare option output:... for serialization
2020-03-17: move doc loading to context
2020-03-16: add json and adaptive method to fn:serialize
2020-03-16: json serialization change: serialize / as \/
2020-03-01: improve testsuite html output layout
2020-03-01: add xs:numeric type
2020-03-01: fix improved error messages getting stuck in endless loop
2020-02-29: improve error message "Invalid NCName" and give column in error messages
2020-02-29: fix warnings
2020-02-29: improve error messages for evaluation errors
2020-02-29: improve error messages for type errors
2020-02-29: improve parsing error messages
2020-02-28: TRecordArrayList: add GetEnumerator, addDefault methods
2020-02-28: fix priority of => operator
2020-02-25: refactor flowr parsing
2020-02-25: check for whitespace after expected tokens
2020-02-25: improve parsing error messages
2020-02-25: raise parsing error on function ($a, )
2020-02-25: simplify xquery parsing by removing most lookaheads
2020-02-16: remove casts to TXQValueObject
2020-02-14: properly ignore doctype declaration
2020-02-14: smarter file type detection. Prioritize contenttype over file content unconditionally
2020-02-14: add begins/endsWith functions to string helper
2020-02-09: fix signature of functions in random-number-generator map
2020-02-04: improve start up time by caching type descendants in O(n) rather than O(n^3)
2020-02-02: fix compilation on fpc 3.0 ?
2020-02-01: improve start up time by building standard function type signatures manually rather than running the xpath/xquery parser on the function signature. Also REMOVE op:* syntax for calling operators
2020-01-31: improve start up time by creating type checking regex lazily
2020-01-29: fix crash when try/catch is used in lambda expression
2020-01-28: fix warning
2020-01-28: cap string builder grow step at 32 MB
2020-01-22: fix httpRequest not working for post requests
2020-01-19: add random number generator to project
2020-01-19: more generic random number generator
2020-01-19: add random-number-generator
2020-01-17: do not throw exceptions from implict conversions during comparisons
2020-01-16: implement comparison of binaries
2020-01-16: fix missing paren
2020-01-16: more json setting changes. always use queryengine.defaultjsonparser
2020-01-16: reduce TXQValue memory use
2020-01-15: add options to toggle [..] and {..} syntax between xpath 3.1 and jsoniq and backward compatible behaviour
2020-01-13: improve parsing error messages
2020-01-13: simplify syntax error raising
2020-01-11: simplify handling of missing line break
2020-01-11: pchar helper to turn the first pointer (nil) to the last pointer
2020-01-07: show single line on parsing errors
2020-01-06: fix single digit entity parsing
2020-01-06: string view: line ending parsing
2019-12-20: improve missing context item error message
2019-10-13: allow shared reading when loading files
2019-09-22: fix compilation on fpc trunk and warnings
2019-09-22: remove noreturn from TXQCollation.key implementation declaration
2019-09-21: travis: use default binutils
2019-09-21: add forgotten test file
2019-09-21: travis: use bionic
2019-09-11: options for serialize-json
2019-08-30: simplify json serialization
2019-08-30: load all qt3 w3 data from files even if no environment is specified
2019-08-30: array list: toArray conversion, first/last functions, stringarraylist
2019-08-22: tests, strbuilder and memory leak fix
2019-08-22: fix strbuilder for large hex numbers
2019-08-22: refactor serialization
2019-08-22: change strbuilder for numbers
2019-08-22: fix namespace memory leak
2019-08-22: fix collation key memory leak
2019-08-19: do not abort on unknown dependencies
2019-08-19: add fn:collation-key
2019-08-19: add array list enumerator
2019-07-26: replace engine globally external files cache with context based document cache; require ttreedocument in onparsedoc rather than ttreenode
2019-07-26: free references in owning hashmaps immediately when they are replaced rather than keeping them until the map is freed. add a pointer only hashmap
2019-07-26: fix sequence in array insertion
2019-07-26: add assertions for non nil in fast list assumption
2019-07-26: do not pre allocate array by setting count property, since it breaks the assertion that there are no nil values, when an exception aborts the calculation
2019-07-26: add capacity property to fast interface list
2019-06-23: implement an array list
2019-06-09: fix warnings
2019-06-09: override multipage template variables, move setter from xidel to internet tools
2019-06-03: refactor namespace handling, use TNamespace rather than INamespace
2019-06-02: refactor interfaced objects, do not use TInterfaceObject, because it is unnecessarily complex/slow
2019-06-02: refactor node namespaces, so the document knows all its namespaces
2019-06-01: refactor xquery tree constructors. Separate document creation and element creation. Do not keep temporary nodes in IXQValues.
2019-06-01: simplify namespace management of constructed elements
2019-05-30: fix dynamic function references to type constructors use after free
2019-05-30: fix/refactor utf-8 decoding, since fpc generates broken code on pointer dereferencing and masking (fpc#35651)
2019-05-30: fix aliasing when merging multiple context item declarations
2019-05-30: fix function references to type constructors use after free
2019-05-30: fix overflow when parsing Q{namespaceurl} expressions that are not closed with }
2019-05-29: remove TAttributeList
2019-05-28: use record helper for old fpc
2019-05-26: fix warning
2019-05-26: TRTLCriticalSection helper
2019-05-25: fix warnings; remove dead/outdated code
2019-05-24: fix warnings
2019-05-24: fix warnings
2019-05-20: block allocate tree nodes
2019-05-19: do not assume all nodes are part of a document for fn:id/idref
2019-05-19: add reference counting for HTML/XML documents. Beware it: It tracks IXQvalue, not TTreeNode, so if you use TTreeNode directly you need to keep adjust the reference count manually
2019-05-19: fix uninitialized enumerator condition
2019-05-19: make all tree nodes part of a document (even if they are not a descendant of a document node in the xpath data model)
2019-04-23: only clear fpu exceptions on x86
2019-04-20: refactor html escaping. do not escape nbsp; also escape ' apos in " attributes even if not needed
2019-04-18: fix windows compilation
2019-04-16: compile videlibri for android without LCL/Lazutils
2019-04-16: fix hints/warnings; add file from previous commit to project
2019-04-16: move low-level file functions of the lcl from file module to a separate unit, so other apps can copy files without requiring lazarus
2019-04-14: fix spelling, hints, unnecessary indirections
2019-04-13: avoid using tinterfacelist
2019-04-08: use class helpers for fpc 3.0 compatibility
2019-04-08: support -CR flag (see github #19)
2019-03-30: disable array views for fpc <2.7
2019-03-30: disable type helpers for fpc <2.7
2019-03-30: add array view enumerator
2019-03-30: fix overriding of first parameter in request-combine
2019-03-30: a new string handling approach: string views
2019-01-29: refactor regex replace
2019-01-20: ...
2019-01-20: adapt to functions being moved from one unit to another
2019-01-20: fix/hide pointless warnings
2019-01-20: rearrange code to fix inline warnings
2019-01-20: rearrange code to fix inline warnings
2019-01-20: fix/hide pointless warnings
2019-01-19: rearrange code to fix inline warnings
2019-01-19: refactor regular expression wrapper to be independent of xquery unit to break dependency cycle that prevents inlining
2019-01-06: call tstringlist.create because fpc 3.3 stringlists need to perform encoding initialization there or they crash when opening a file
2019-01-06: fpc 3.3 has a reasonable string comparison function
2019-01-06: comments, copyright
2019-01-06: fix pointless fpc warnings (inlining)
2019-01-05: fix compilation on older fpc
2019-01-05: fix pointless warnings
2019-01-05: undo bad simplification
2019-01-03: fix further pointless fpc warnings
2019-01-02: disable float test on arm
2019-01-02: rearrange code to fix fpc 3.3 warnings
2018-12-29: fix stupid fpc 3.3 warnings
2018-12-29: use strbuilder for strEscape. fix non-ascii on fpc 3.3 (see https://bugs.freepascal.org/view.php?id=34776 )
2018-12-23: double check all JNI initialization.
2018-12-23: use the same JNI version (1.6) anywhere
2018-12-17: improve error handling
2018-11-18: simplify form-combine
2018-11-11: add request-decode function
2018-11-06: return length 0 for null arrays
2018-10-27: change request-combine function to accept url string as GET request; fix adding of queries to urls that do not already have queries
2018-10-07: do not allow empty extension expr.
2018-10-07: atomize arrays in node constructors
2018-10-07: implement parse-ietf-date
2018-10-07: any 3.1 map array is a function
2018-10-04: fix pointless warnings
2018-10-03: fix inner-text skipping the expected end and then returning all text of the page
2018-10-02: travis: delete temporary files with find rather than delp
2018-10-02: travis: delete temporary files after compiling
2018-10-01: travis: try to compile with different optimization levels
2018-10-01: ...
2018-10-01: ..
2018-10-01: ...
2018-10-01: travis: call apt-get update
2018-09-30: try newer fpc for travis
2018-09-30: refactor folding, might be somewhat faster
2018-09-30: adapt for refactored JSON parsing function
2018-09-26: allow empty sequence as serialize parameter
2018-09-26: allow empty expression in ?() and in element constructor {}
2018-09-26: forbid array/map namespace in annotations
2018-09-26: fix invalid optimization on partial function application that needed the context item
2018-09-26: fix atomization in ?() operator
2018-09-25: add weird 3.1 escaping
2018-09-24: change JSON parser to parse more like 3.1 (e.g. double rather than decimal, () rather than null), fix unitialized JSON parser
2018-09-24: move json parsing from xquery_json to xquery, some refactoring
2018-09-24: atomize arrays in sequences as in 3.1
2018-09-24: fix test case
2018-09-23: allow several empty expr in 3.1
2018-09-23: set serialization parameters from map
2018-09-23: add 3.1 apply function
2018-09-23: add 3.1 string constructor
2018-09-23: atomize arrays in internal toString/toJoinedString function (for (string-)join)
2018-09-22: atomize arrays in fn:data; check for arrays and maps in deep-equal
2018-09-22: remove slow casts
2018-09-22: adapt comparison operators for array atomization, refactor
2018-09-22: add 3.1 map functions
2018-09-22: change function search order so newer xquery functions are searched first in case the type signature changes in newer xquery version, e.g. for string-join
2018-09-22: add => operator
2018-09-22: remove unused variables
2018-09-20: fix parsing confusion between lookup (?key) and partial function (?) application, fix ? whitespace parsing
2018-09-20: fix map ?*
2018-09-20: add 3.1 map {} constructor syntax
2018-09-19: do not abort test suite when loading test cases whose input need 3.1 syntax
2018-09-19: implement array (contained) type checking, since that is required to run 3.1 test cases
2018-09-19: parse extension namespace prefix in 3.1 compatible way
2018-09-19: run test suite assertions as 3.1 queries
2018-09-19: mark array, map as reserved words for 3.1
2018-09-19: fix trivial indentation
2018-09-19: fix invalid module namespace
2018-09-19: fix array:insert-before to allow appending
2018-09-19: add 3.1 array functions
2018-09-19: add a sizeint array sort function
2018-09-17: add forgotten file
2018-09-17: add 3.1 array constructors
2018-09-17: add 3.1 ? lookup operator
2018-09-16: fix sort
2018-09-16: 3.1 in xidel/tests
2018-09-16: add some 3.1 functions: contains-token, default-language, parse-ietf-date, sort, tokenize, trace, error, json-doc, parse-json
2018-09-16: prepare for 3.1
2018-09-16: remove first idea for set/map
2018-09-15: make <json> part of <page>
2018-09-10: documentation
2018-09-10: add proxyUsername/proxyPassword to internet configuration
2018-09-08: add a preliminary stringify nodes function
2018-09-08: add preliminary <json> action
2018-08-26: fix call/@test attribute lost on cloning
2018-08-18: also delay reading before closing tags, so everything from the first matching text node till the end is read. (supposingly) faster innerText using hashs
2018-08-17: add a crude way to handle "read all visible text till the next line break from the HTML"
2018-08-17: documentation
2018-08-16: fix test
2018-08-16: simple CSS parser to parse style attribute to ignore text of hidden elements
2018-08-15: allow resolve-html without argument to use context node
2018-08-15: add inner-text and matched-text functions to replace deep-text and context TextNode
2018-08-15: add an event to notify about deprecated things
2018-08-12: cache common classes
2018-08-12: add utility functions SetObjectFieldAndDelete, setObjectArrayElementAndDelete, newStringArray
2018-08-12: add booleanToJboolean function
2018-08-12: fix unnecessary thread var access
2018-08-12: fix local reference leak
2018-08-04: change comment, because Lazarus tries to parse it and the comment had mismatched brackets because it has an unclosed string literal
2018-08-04: more generic generic map
2018-07-29: also retry with okhttp
2018-07-13: keep global class references
2018-06-25: actually include okhttp files in git mirror
2018-06-25: jni helper add getstaticmethod
2018-06-25: okhttp user-agent
2018-06-25: fix okhttp content-type
2018-06-24: mark needConnection/closeOpenedConnections as useless and deprecated
2018-06-24: add OkHttp internet access interface
2018-06-18: change immutable property chaining to read properties from pointer rather than from an array
2018-06-18: new strJoin function for pointers
2018-06-09: form submission option: use case SENSITIVE names when overriding fields
2018-05-27: more work on form submission function. fix several html5 compatibility issues by not ignoring: disabled attribute, inputs with invalid/unknown type, accept-charset attribute on form.
2018-05-26: use enumerator in form function to make it more readable though slower
2018-05-26: fix new enumerators
2018-05-26: add enumerators to TTreeNode so they can be enumerated in for..in loops and without knowing the actual data structure
2018-05-26: refactor xpath axes: move low level node enumerator from xquery engine to treenode/simplehtmltreeparser. use a function pointer rather than case to switch between internal axes (e.g. forward/preceding). do not decide if self is included in the axes during the enumeration, but when creating the enumerator (e.g. for descendant vs. descendant-or-self)
2018-05-18: fix warning. add useless assert
2018-05-14: fix buffer overflow read when an HTML/XML element attribute is not closed before the end of the file
2018-05-14: fix overly clever enumerator triggering valgrind errors. Properly comment the contraption
2018-05-14: fix all kind of stuff broken by the constant folding where it assumed that all constants are singletons and not sequence
2018-05-13: slightly faster contains function
2018-05-13: faster case-insensitive index of
2018-05-13: optimization: constant folding for sequence/arrays
2018-05-11: improved error messages
2018-05-09: improved error messages
2018-04-29: store debug log in temp dir rather than current dir
2018-04-19: fix redirection ignored for base uri in simpleinternet.process
2018-04-01: add string helper with RemoveFromLeft
2018-03-25: add optional callable actions (append ? to name) and function x:has-action to xidel
2018-03-25: fix crash of GetTemplateHasRealVariableDefinitions when it is called without any loaded template
2018-03-25: fix JSON-as-XML serialization not escaping keys of JSON objects
2018-03-25: use xpath strings when evaluating multipage template actions
2018-03-25: do not free temporary variables when evaluating a module because it crashes when calling a module from another query
2018-03-18: allow xquery import module declaration to import already preimported modules.
2018-03-18: add clear-log, get-log functions
2018-03-18: fix paths in module import to be relative to importing file not the current directory
2018-03-18: fix that imported module namespace prefix was checked case insensitive. add public access to query static context
2018-03-18: rename TXQMapStringObject to TXQMapStringOwningObject so it is clear that it frees everything
2018-03-18: force http methods to be uppercase
2018-03-18: improve multipage template usability: prevent it from being overriden by option wraparound; pattern paths are relative to template not calling directory; honor --silent
2018-03-14: fix x:form function: an empty <select> has no value rather than an empty value
2018-02-11: request-combine test cases
2018-01-28: fix internet tools missing file
2018-01-21: fix crash on https exception
2018-01-03: fix patterns not working in else element
2017-12-27: do not use is operator, as it can cause incomprehensible stack traces
2017-12-03: fix tests
2017-12-03: ..., do not use is operator as it leads to incomprehensible stacktraces
2017-12-03: do not keep a reference to the pattern matcher in thrown exceptions.
2017-12-02: add an universal enumerator
2017-11-26: fix sort for > 2GB arrays
2017-11-19: run test suite with debug checks turned on
2017-11-19: fix uninitialized variables in for window and function-lookup
2017-11-19: fix crash when compiled with "trash variables" as out modifier overrides zeroed memory with trash
2017-11-12: do not repeat inore functions from bbutils in xquery
2017-11-11: try type helper for JNI
2017-11-04: remove deprecated files
2017-11-04: travis ...................
2017-10-31: fix hint
2017-10-31: classify t:element template command as html rather than as template command so that it can be used in switch (prioritized) statements
2017-10-31: add jStringToString function
2017-10-31: revert signature of comparison functions to return integer rather than sizeint
2017-10-31: harden utf-8 functions against invalid utf-8
2017-10-30: switch back to UTF8Encode for utf8 output in fcl-xml wrapper as Unicode2AnsiMoveProc does not work without widestringmanager
2017-10-29: ..
2017-10-29: remove dregexpr
2017-10-29: implement a very hacky char class subtraction for fpc/sorokin's regex, so tests can pass without flre
2017-10-29: ...
2017-10-29: ..
2017-10-29: travis, pretty pictures
2017-10-29: travis
2017-10-29: disable tests failing on arm
2017-10-29: disable weird test case failing depending on cwstring/windows being loaded
2017-10-28: fix tests failing on WINE because the encoding conversion works too well (like ü to ascii becomes u, where tests expect ? )
2017-10-28: convert expected test result to CP_ACP before comparing
2017-10-28: travis
2017-10-28: Breaking Change: Return parsed XML/HTML as CP_ACP encoded string rather than CP_UTF8 strings
2017-10-28: overload strEncodingFromBOMRemove with a rawbytestring variant
2017-10-28: fix utf-8 to us-ascii conversion returning uninitialized string
2017-10-28: fix that an encoding conversion to us-ascii always set the result encoding to us-ascii
2017-10-28: fix that an invalid utf-8 string could cause an overflow during conversion
2017-10-28: ...
2017-10-28: use forked travis config
2017-10-28: ....
2017-10-28: ...
2017-10-28: ..
2017-10-28: travis paths
2017-10-28: do not have a dependency for synapse in the linux auto updater test
2017-10-28: ..
2017-10-28: try wine, qemu-arm
2017-10-28: remove Lazarus 1.5 lrs form reference
2017-10-28: adjust paths for mirror
2017-10-28: ......
2017-10-28: .....
2017-10-28: ....
2017-10-28: ...
2017-10-28: travis ..
2017-10-28: perhaps it does need lazarus after all; hints/laz stuff
2017-10-24: ........
2017-10-24: .......
2017-10-24: ......, consolidate tests
2017-10-24: .....
2017-10-24: ....
2017-10-24: ...
2017-10-24: ..
2017-10-24: try travis
2017-10-24: try travis
2017-10-23: fix invalid use of strbuilder
2017-10-23: adapt to bbutils changes
2017-10-22: remove deprecated date/time functions, fix warnings/hints
2017-10-22: list all encoding names again for fpc 2
2017-10-22: do not use SetCodePage to convert encodings since it needs a widestring manager; rewrite tests to not assume an utf-8 encoding
2017-10-22: separate bbutils/internet tools tests
2017-10-22: ...
2017-10-21: ...
2017-10-21: fix warnings/hints
2017-10-21: change many integer/longint to SizeInt for use with >=2GB arrays/strings on 64-bit systems
2017-10-18: also use my own handling for cp1252/latin1 <-> unicode conversions
2017-10-18: adapt to changed internet access function declaration
2017-10-18: run tests with optimization and heaptrc
2017-10-18: fix that a siblings-header sometimes only matched when at least one child element matched even if all children were marked as optional
2017-10-16: adapt to bbutils changes
2017-10-15: fix warnings/hints
2017-10-15: fix warnings/hints, mostly ptrunit casts
2017-10-15: clarify encodings. avoid using RawByteString when not necessary
2017-09-20: fix PUCU case conversions
2017-09-16: switch from FLREUnicode to PUCU
2017-09-16: also change CP_OEMCP to true encoding in strActualEncoding.
2017-09-16: fix compilation with fpc 2.6
2017-09-09: print something unique/useful for documents/attributes in toXQuery
2017-08-31: do not resend post requests on lost connection
2017-08-29: auto retry http request on java i/o errors
2017-08-28: fix resolving of an empty url relative to a base url with query parameters to not remove those query parameters. This triggers cascades effects: base-uri() will now return the full base url inclusive query parameters in xidel/internet tools.
2017-08-25: clarify licenses
2017-08-24: fix base uri handling
2017-08-20: speed up XML/HTML serialization using str builder
2017-08-20: add an isEmpty method to str builder
2017-08-20: add a chop method to str builder
2017-08-18: use fpc encoding name -> code page map rather than my own
2017-08-18: refactor string encoding conversions: add Windows-1252 as its own encoding (rather than treating it as latin1). Add ASCII encoding. Rename strChangeEncoding to strConvert. Remove optimized UTF-8 <-> UTF-16/32 conversion. Set codepages on the resulting strings for fpc 3.x. Improved checking for invalid utf-8 input. Add function registerFallbackUnicodeConversion to register my functions as encoding converter in the widestring manager, so that compiler implicit encoding conversions to latin-1/1252 work without a separate widestring manager library.
2017-08-18: trivially faster strDup using str builder
2017-08-13: adjustment for strbuilder change
2017-08-10: update readme. the interpreter has been complete for quite a while now
2017-08-09: add attribute entity special case of not allowing semicolon less entities
2017-08-09: add recently added entities.
2017-08-09: fix that JSON keys were sometimes treated case-insensitive
2017-08-09: fix entities by reducing trie size.
2017-08-08: fix entities and their trie. accept longest prefix match even if the entire entity does not exist.
2017-08-08: add a NOT WORKING TByteCodedTrie to store entities.
2017-08-08: TStrBuilder: appendRaw method for encoding-ignoring appending. But made private, although it seems to be useful method: if you need it, you have a broken design
2017-08-07: strDecodeHTMLEntities: add html5 replacement entities for range $80..$9F
2017-08-07: strDecodeHTMLEntities: allow invalid entities; refactor (use strbuilder, more similar to html5 tokenizing)
2017-08-07: TStrBuilder, do not use encoding of string buffer as empty strings have no encoding
2017-08-06: TStrBuilder, do not use integer for sizes
2017-08-06: fix hints and warnings
2017-08-06: made TStrBuilder unicode aware; helper functions
2017-08-06: rename TStrBuilder.append(int) to TStrBuilder.appendCodePoint; convert TStrBuilder to an object
2017-08-06: rename TStrBuilder.add to TStrBuilder.append
2017-07-08: fix memory leak, thx zbyna
2017-07-08: change default user agent to mozilla/5.0, since mozilla/3.0 is blocked on many webpages
2017-06-10: do not use heaptrc in uses
2017-06-10: hide warning
2017-06-10: make strActualEncoding public
2017-06-10: remove xquery_utf8. Merge single byte and utf-8 functions, so that the switch between encodings depending on StringCodepage/DefaultSystemCodepage
2017-06-05: prevent people from disabling al regex libraries
2017-06-05: remove deprecated package internettools_utf8; adjust paths
2017-05-02: warnings, heaptrc unit is deprecated
2017-05-01: example fixes
2017-04-17: add function to get entire int array
2017-04-01: free namespace cache even if no query engine has existed
2017-03-26: fix memory leak
2017-03-26: directly free ixqvalues on threads without a query engine (see github #12 )
2017-03-20: refactor stream internetaccess methods to use the internal callback, so it is downloaded directly into the stream without copying.
2017-03-19: fix hint, slight optimization
2017-03-19: fix unitialized variables breaking redirections
2017-03-19: free global namespace cache, even if no query engine was created (github close #11)
2017-03-19: fix uninitialized return value
2017-03-18: new block write in android internet access class
2017-03-18: bbjniutils: pass java input stream through a callback function rather than putting it in a string
2017-03-18: strbuilder stream like functions
2017-03-18: replace internal use of download callback function with a virtual method, replace upload data string with a pointer
2017-03-18: fix synapse split stream for upload
2017-03-14: write data to callback function rather than LLOXrinf  EWAULR AREINF
2017-03-12: documentation for binary search
2017-03-12: fix hints/warnings
2017-03-11: test case for button
2017-03-11: include button if passed to form function
2017-03-06: track of charset of the webpages through form request objects, so utf-8 and latin1 pages can receive differently encoded data.
2017-02-24: fix comment
2017-02-20: sibling ids
2017-02-20: handle t:test on sibling children
2017-02-20: siblings with repetition: fix and tests
2017-02-18: adapt file module for hex encoding consolidation
2017-02-18: fix generic hash map compilation
2017-02-13: add first draft of t:siblings-header/t:siblings to record the order of elements and apply that order to some other elements
2017-02-12: pattern matching language: add <t:element> to match an element of any name
2017-02-11: use node hash in pattern matcher
2017-02-11: test cases for previous changes
2017-02-11: consolidate various hex escaping function into TInternetAccess.urlEncodeData. Escape " in query url, since it is not mentioned anywhere as safe. Escape forms according to HTML5 standard, now additionally encoding !'()[\]^`{|}~..#FF.
2017-02-11: slightly faster hex encoding
2017-02-10: change bbutils code generation: Rather than generating all of bbutils, generate include files that are inserted into an already quite complete bbutils.
2017-02-06: fix file module for Windows. mostly file:exists, file:move and file:path-to-uri
2017-02-05: add pchar adding function to str builder
2017-02-01: fix crash if synapseinternetaccess is used before xquery in the uses clause.
2017-01-31: more work on cookies
2017-01-30: add subdomain separated cookies
2017-01-22: Allow mmm+ to accept either mmm or mmmm
2017-01-22: universAL parse date function to handle any date
2017-01-22: allow xpath 3 in escaped expressions (template <page> and xidel {})
2017-01-15: cookie tests
2017-01-15: new cookie handling.
2017-01-15: move strIterator and strBuilder to bbutils. Still not decided if I keep the interface, but I need it there.
2016-12-31: autoupdate: support for different languages within the same changelog
2016-12-18: fix detection of absolute uris when resolving
2016-12-18: fix wrong index in function coercion
2016-12-18: workaround for fpc bug
2016-12-11: remove pointless warning
2016-12-11: fix nanoseconds and timezones broken due to using the wrong variable
2016-12-11: fix a large number of warnings; including critically uninitialized variables
2016-12-10: fix typo
2016-12-10: fix invalid thread assertion
2016-12-06: fix invalid type in div operator.
2016-12-04: fix garbage collection crash
2016-12-03: further function documentation
2016-11-20: fix enumeration of mutable global variable declaration extension: find declarations inside functions, but skip declarations inside pattern matching
2016-11-18: parse non numbers like NaN, INF in JSON
2016-11-18: indent arrays > 8 elements
2016-11-14: meta; build script
2016-11-14: escape control characters not allowed in XML1.0, but added in XML1.1; strbuilder improvements
2016-11-12: fix allowed characters for xml schema 1.1
2016-11-07: do not indent arrays without items
2016-11-07: fix compilation on old (non-trunk) fpc
2016-11-07: fix crash
2016-11-07: new json parser
2016-11-07: correct recent term variable visitor
2016-11-05: fix windows compilation
2016-11-02: use visitor to find variable declarations rather than a half-baked visitor-like construct
2016-10-30: initialize functions during parsing
2016-10-30: refactor bin op and sequence to use the common stack instead an temporary array; minor fixes/cleanups
2016-10-29: refactor functions so the overloaded version is statically known
2016-10-29: hide op:* functions. they should not exist anyways
2016-10-28: further speed-ups
2016-10-28: fix wrong stack usage in fold
2016-10-28: pointless speed-up of pointless function
2016-10-26: fix more tests and warnings
2016-10-25: file modules fixes. mostly path normalization
2016-10-25: expath has tests, too
2016-10-25: Also disable mutable variables on xquery version
2016-10-24: allowing year 0 also shifts some calculations
2016-10-24: allow year 0 as it is used ISO 8601:2004, XML Schema 1.1
2016-10-24: update format-time to new millisecond handling
2016-10-24: add a string reverse function
2016-10-23: fix implicit casting of white space surrounded values during comparisons. <a>   INF   </a> > 1000 should evaluate to true
2016-10-23: stricter eqname parsing
2016-10-23: new xqts dependencies
2016-10-23: add a garbage collect function
2016-10-23: disable extensions on version declaration, readme
2016-10-23: do not indent empty object
2016-10-23: serialize json with line breaks
2016-10-23: better error message
2016-10-23: move xquery serialization from xidel to internet tools, better error messages
2016-10-23: laz meta
2016-10-23: fix last commit, and further speed-up
2016-10-23: minor optimizations
2016-10-23: fix missing not
2016-10-23: actually fast string comparison
2016-10-23: faster string comparison
2016-10-23: cache namespace urls in global cache, so they can be compared by string address
2016-10-23: only call reserve when it is needed
2016-10-23: keep hash of node names and compare it before a full string comparison
2016-10-22: Attempt to speed up TXQueryEngine.getNextQueriedNode
2016-10-22: move construction of access list from evaluation phase to parsing phase
2016-10-22: remove special handling of attribute axis evaluation
2016-10-22: fix error messages for schemas and attribute(name, type?) test; more cleanup
2016-10-22: clean up node matcher. unify kind tests in node tests and type matching
2016-10-21: move context item away from node matcher
2016-10-20: replace axis and namespace in TXQTermNodeMatcher by TXQPathMatchingStep
2016-10-19: restructuring that prevents fpc from inserting implicit exception frames and full  string comparisons
2016-10-19: override memory management for XQValues. Freed instances are not actually freed, but kept in a list for later reuse.
2016-10-17: do not protect stack restoration with try..finally everywhere.
2016-10-17: hide a bunch of hints
2016-10-17: fix unused variable hints
2016-10-17: major refactoring: use length+pointer rather than an array in function definitions, store function parameters in stack, avoid pushing the same arguments twice in certain cases of wrapped functions
2016-10-16: faster stack
2016-10-16: add define to en/disable stack variable name tracking.
2016-10-16: remove "uncertain" variables of patterns whose scope cannot be decided statically.
2016-10-16: refactor evaluation stack: base it on txqvlist, not xqvariablechangelog; create term variables for all variables in a try/catch
2016-10-16: refactor txqvlist
2016-10-16: fix warnings
2016-10-14: fix parsing of <?pi ?>
2016-10-12: fix crash during module loading
2016-10-03: acknowledge windows 64
2016-09-27: test for fix advanced flowers (e.g. group by ) in anonymous functions
2016-09-27: fix advanced flowers (e.g. group by ) in anonymous functions
2016-09-27: safety check in fn:ronud if called without type checking
2016-09-25: do not test random numbers against fixed numbers as they change in every fpc version
2016-09-25: do not depend on utf8tools as that does not compile with Lazarus 1.7 anymore
2016-09-23: fix compiling on android with fpc 3.1.1
2016-09-17: fix latin1 to unicode conversion
2016-09-17: fix range check error
2016-09-11: xq file module, xidel: adjust for tencoding -> tsystemcodepage change
2016-09-01: ...
2016-08-25: fix compilation
2016-08-23: deplphi compatible
2016-08-23: fix warnings
2016-08-21: fix pointless warnings
2016-08-21: fix variable reuse
2016-08-21: use codepages instead custom encoding
2016-08-21: use
2016-08-21: fix uninitialized variable
2016-08-20: reorder things, web-apps
2016-08-18: fix movefile for windows
2016-08-07: safe str to file saving
2016-08-07: add function for move a file
2016-07-24: line break for better breakpoint setting
2016-07-24: fix crash on global variables in templates
2016-07-17: fix crash when comparing a float with value of a type that is defined in an XML schema that does not have a float type
2016-07-17: fix failed filter optimization
2016-07-04: exception markings
2016-07-03: refactor comparison to avoid string and bigdecimal comparisons in the main branch
2016-07-03: minor simplification
2016-07-03: remove further TXQValueSequence casts
2016-07-03: change xqvalueSeqSqueezed from a function to a procedure as a function call causes an exception frame creation
2016-07-03: eliminate casts to txqvaluesequence
2016-07-02: update to jsoniq 1-4 by adding ?: syntax
2016-07-02: tiny strlsiEqual speed up
2016-07-02: more readable test overview
2016-07-02: split arithmetic functions to avoid low fpc compiler magic
2016-07-02: move /, // aways from binary op
2016-07-02: fix min/max for empty sequence
2016-07-02: move ! evaluation away from binary op
2016-07-02: mark further functions as exception safe
2016-07-02: fix type information lost when a sequence is converted and other references to that sequence existed
2016-07-02: avoid casts
2016-07-02: test case
2016-07-02: fix crash when casting an invalid value to a list type
2016-07-02: fix compilation error without FLRE
2016-07-01: fix function argument variables in a later defined namespace
2016-07-01: avoid TXQValueNode type tests
2016-06-30: replace type hierarchy search by a bit-field cache of all possible descendants. It makes a smala difference and might even be slower for most types, but for union types (numeric) it now runs in constant times instead linear to the union member count
2016-06-30: speed-up: more const parameters to avoid ref counting; mark functions as exception safe; split functions into exception-safe and not-exception safe parts; bypass ref counting with pointer assignments
2016-06-27: fix global variables in closures; safety checks
2016-06-26: fix a lost ref count and type
2016-06-26: micro optimization: split functions to avoid using ref counted types in the main part
2016-06-26: further micro optimization to use the faster enumerator and avoid casting
2016-06-26: ... fix nil return
2016-06-26: eliminate casts to TXQValueSequence
2016-06-26: eliminate xqvalueSeqAddMove
2016-06-26: micro optimizations
2016-06-26: move block copy to enumerator to avoid an interface casting.
2016-06-26: do not update the reference count of self for the fast enumerator. it is slightly faster, and most important, it avoid fpc's initializations (which called three functions and creates a long jump structure if an enumerator occured in the function, even if the branch containing the enumerator was never taken)
2016-06-25: reactivate hof-25 special handling
2016-06-25: make variable index mandatory
2016-06-25: do not put err:value = nil for errors without value; it has weird effects
2016-06-25: more readable function
2016-06-25: change handling of tumbling window without end as it won't work with variable stack offsets
2016-06-25: track all variable declarations, use a real variable stack and access variables based on their position on the stack, not by their names
2016-06-25: use special class for ? placeholders of partial application, not fake variables
2016-06-25: improved visiting precision, so it does not declare variables multiple times
2016-06-25: move evaluated global variable data from temporaryVariables to globallyDeclaredVariables (assuming the parser categorizes variables in local and global correctly now )
2016-06-25: refactor declared variables handling: have their own variable change log, not a parentlog hack
2016-06-25: fix count sub clause
2016-06-25: refactor flowers to precompute evaluation strategy
2016-06-25: tests
2016-06-25: minor optimization; fix indices outside the int64 range
2016-06-25: distinguish position() and last() dependancies, thus making last() fast
2016-06-25: add helper functions x:lines and x:cps
2016-06-25: allow arbitrary recursion of nested native modules' interpreted functions; fix possible synchronization/memory issues
2016-06-19: use resourcestrings
2016-06-18: mark a line I could have deleted after refactoring, but have not
2016-06-18: add a new faster enumerator; various minor performance improvements by using the new one
2016-06-18: faster enumerator
2016-06-18: minor performance improvement
2016-06-18: use buffer instead array as it might be slightly faster
2016-06-17: fix range check error
2016-06-11: translate autoupdate to english
2016-06-11: remove fixed test cases from the do not test list
2016-06-11: update example
2016-06-11: try to run as administrator, when non-admin execution has failed.
2016-06-11: add function to show downloaded in file browser
2016-06-11: do not keep download target locked, if download failed
2016-06-11: adjust for fpc3
2016-06-08: minor change to binary operator evaluation: put arguments in fixed-size array (needs pointer in type checker instead dynamic array ), do not have two branches for type checked and unchecked (changes the evaluation order in the unchecked case to the more reasonable left-to-right).
2016-06-06: fix json variable occuring everywhere
2016-06-06: meta
2016-06-06: maller xqts report (cont)
2016-06-06: smaller xqts report
2016-06-05: restore files lost in public mirror after renaming
2016-06-05: make collations public for testing
2016-06-05: fpc 3 adjustments
2016-06-05: use wrapper around string comparison functions instead using pointers to them (fixes github #4)
2016-06-05: more fpc3 adjustments: cannot mix rawbytestring var/out with string variables
2016-06-04: adjustments for FPC 3; add unicodestring<->ansistring conversion functions
2016-05-29: unload imported modules between test cases (there are different modules with the same name used in different tests)
2016-05-29: disable sorting of declared variables as it breaks function declarations in random cases
2016-05-26: refuse functions in the wrong namespace
2016-05-25: replace property record with bit coded numbers
2016-05-25: fix utf-16 to utf-32 conversion
2016-05-22: drop dependancy on UTF8 functions as they should not be needed with fpc3 anymore; drop LCL altogether
2016-05-22: fix warnings
2016-05-22: change field order
2016-05-22: merge first and second comb index
2016-05-21: use combinations as list instead a hash map
2016-05-21: drop data not required for unicode normalization
2016-05-21: more configurable defines
2016-05-21: raise pascal exception on java exception
2016-05-21: fix crash when clearing exception
2016-05-17: 0000 is a valid year in xml schema 1.1
2016-05-17: set xml schema 1.1 as default
2016-05-17: fix uninitialized variable when comparing QNames; refuse to compare functions ✔
2016-05-17: disable implicit type conversion in where clause
2016-05-17: handle special cases according to SpecialCasing.txt in upper/lower case conversion
2016-05-17: update utf8proc to v1.3.1
2016-05-16: move away from theo's utf8tools and the LCL for UTF-8 support
2016-05-16: convert JSON to UTF-8
2016-05-16: fix variables declared in multipage templates
2016-05-16: documentation
2016-05-16: laz project files
2016-05-14: update tests to stricter error checking
2016-05-14: change error code XPTY0018 to XPTY0019 in the middle of an path expression; avoid "is" call as rtti is slow  ✔
2016-05-12: functions cannot access later defined xq1 variables either ✔
2016-05-12: change errcode for missing typename in element tests to XPST0008  ✔
2016-05-12: more useful doc-available
2016-05-12: fix invalid signature in fn:id declaration ✔
2016-05-12: clear field after freeing it ✔
2016-05-12: improved error codes for schema import
2016-05-12: fix some XPST0003 / XQST0134 confusion ✔
2016-05-12: add tests
2016-05-12: reactivate xs list types
2016-05-12: minor base-uri fix
2016-05-12: fix x-string parsing
2016-05-11: not every colon makes the url absolute
2016-05-11: allow to change default query context
2016-05-11: only evaluate constant variable names, or indirect references blow up due to depending on some other unknown variable
2016-05-08: correctly set static base URI in XQTS and resolve it
2016-05-07: fix window visiting
2016-05-07: refactor pattern tests, because the array was annoying to debug
2016-05-07: only return valid XML strings from unparsed-*; load resourcecs for unparsed-* in xqts harness
2016-05-07: implement picture format changing as in w3#29555
2016-05-07: change regex, because alternations in FLRE are still broken
2016-05-07: bringt getAll for xidel; adapt to interface change
2016-05-07: implement year truncation as in w3#29555
2016-05-07: fix fractional second output of format-time with width in absence of grouping separators
2016-05-05: fix wrong reference that just, accidentally happened to be the right one
2016-05-05: minor performance adjustments
2016-05-05: special handling of weird xqts test
2016-05-05: improve variable change log performance
2016-05-05: clean up
2016-05-05: refactor variable change to return values as ixqvalue.
2016-05-05: fix some context item declaration corner cases
2016-05-05: fix importing of cycling variable declarations
2016-05-05: remove pointless debug and fix test name
2016-05-05: raise XPST0001 for variables depending on them self
2016-05-05: fix use after free
2016-05-05: add option to exclude (disputed) tests
2016-05-05: adapt harness to newest XQTS CVS
2016-05-05: change AST of modules to have an empty sequence () behind the definitions; this simplifies the code and clearly defines, what happens, if an module is evaluated
2016-05-04: fix context item during global variable evaluation
2016-05-04: reactivate safety freeing that has no effect on my tests
2016-05-04: move query creation from engine to parser, which fix the xquery 1 cycle detection test.
2016-05-04: fix tests
2016-05-04: ...
2016-05-04: fix memory leaks
2016-05-03: fix my default variables
2016-05-03: remove more pointless context cloning
2016-05-03: remove now pointless context cloning
2016-05-03: large refactoring: evaluation context is now passed as var instead const, and thus mutable; Keep persistent variable changelog for temporary variables in engine; fixes some memory leaks
2016-05-03: remove case insensitive variables from multipage template
2016-05-01: remove case insensitive variable mode
2016-05-01: fix memory leak
2016-05-01: mark json as unchecked variable for simpleinternet
2016-05-01: fix pattern access to outer variables
2016-05-01: keep a list of modules in static context, so multiple modules can share their variables
2016-05-01: convert {$foo} template assignment to $foo := . syntactically before parsing it as the parser would reject it as undefined variable
2016-05-01: check for private variables again; better check for yet-undefed global variables; fix window/typeswitch visiting; refactoring
2016-05-01: fix variable declared by my global mutable hack, move variable resolving away from namespace resolving (we do not know which global variable assignments are valid, so we need to assume they all are. but we do cannot know the names of assigned variables before the namespace resolving has completed )
2016-05-01: variable refactoring: statically find matching variable declarations for each global variable; evaluate variable declarations dynamically inside their own AST classes instead the module term; perform XQ1 cycle check only for xq1
2016-05-01: fix clone method for new type-switch representation
2016-04-30: refactor typeswitch to use a helper class instead an array
2016-04-30: fix failed variable lookup
2016-04-30: update tests
2016-04-30: disable the static variable declaration handling of the last commits in favor of a fully dynamic approach
2016-04-25: fix visiting of the last type switch clause...
2016-04-25: fix visiting of the last type switch clause
2016-04-25: the big change: refuse statically not known variables instead checking dynamically
2016-04-24: fix typo in last commit
2016-04-24: improved declare context item statement: correctly handle dependancy cycles; refuse initialization expression in modules; check item against the types in all declarations (even in indirectl imported modules)
2016-04-24: add xquery1 bullshit restrictions: variable cannot depend on later variable; modules cannot import each other in cycles
2016-04-24: improved error code for detected cycles
2016-04-24: qtsuite: handle external variables with namespaces
2016-04-24: types in element(..) have no type+ or type*
2016-04-24: reject overriden local variables, remove pointless field
2016-04-24: stricter cycle refusal, also check for cycles through nodes which were already visited
2016-04-23: first steps to handle declare context item
2016-04-23: stricter testing of variable/function/module declarations
2016-04-23: move module variable resolving/cycle testing to parsing phase
2016-04-19: better date formatting error message, because I can never remember those silly format strings
2016-04-11: less confusing error message
2016-04-11: fix headers broken by recent refactoring
2016-04-10: short cut and/or operators
2016-04-10: disable math tests, all the SIGFPEs are annoying
2016-04-04: fix uninitialized variable
2016-04-03: unify default headers across platforms
2016-04-03: simplify android internet access
2016-04-03: use custom cookies on Android. This one is necessary because Apache reject some cookie (e.g. filderstadt)
2016-04-03: parse cookies in internet access; disable Synapse cookie parsing, so that it is consistent across all platforms
2016-04-02: reorder examples
2016-04-02: fix comparestr/text mixup
2016-04-02: add wrapper class around TStringList that uses CompareStr. The normal string list uses AnsiCompareStr, which changes during initialization on fpc 3.0.0 (from AnsiCompareStr('adjust-date-to-timezone', 'adjust-dateTime-to-timezone')) = -39 to AnsiCompareStr('adjust-date-to-timezone', 'adjust-dateTime-to-timezone')) = 6), which makes an initialized sorted string list completely useless. Also change hacky name of unary operators
2016-03-31: handle functions renamed in Lazarus 1.6
2016-03-28: laz meta
2016-03-28: first UTF8 adaption for 3.0.0
2016-03-28: add filename for debug log viewer
2016-03-28: add debug log viewer
2016-03-28: remove dregexpr reference
2016-03-26: fix cloning of elements in <catch> clauses
2016-03-22: do not hide json variable name
2016-03-21: further math:pow fixes
2016-03-21: tests, especially for PI node parsing
2016-03-21: fix parsing of PI nodes with weird attributes. Since there are PI nodes in HTML, this requires a further XML/HTML mode selection in the parser and tree parser.
2016-03-19: better error message
2016-03-17: laz meta
2016-03-17: add variable $amp := '&'
2016-03-17: change case handling for P and C datetime formats
2016-03-15: adapt to new interpretation of grouping separator repetitino
2016-03-14: avoid multiple attributes in namespaces with conflicting prefixes
2016-03-14: fix accessors for namespace nodes
2016-03-13: ...
2016-03-13: add namespace-node test
2016-03-13: add computed namespace constructors
2016-03-13: fix error codes broken by 97a2c7877f38 (fix error codes for invalid types in nametests) ✔
2016-03-13: simplify math:pow, especially to handle issues on fpc 2.6 ✔
2016-03-12: do not expect ; after a declare token ✔
2016-03-12: refuse processing-instruction tests that are not valid NCNames ✔
2016-03-12: fix error codes for invalid types in nametests ✔
2016-03-12: remove casts to TXQValueDateTime
2016-03-12: remove old include files
2016-03-12: define functions in an unit xquery__functions.pas instead keeping them all in the main xquery.pas
2016-03-12: fix wrong order in derivedFrom test
2016-03-12: improved debug output and profiling
2016-03-12: adapt my tests to changed floating point exception handling
2016-03-11: fix quote flag in fn:replace
2016-03-11: improve fragment parsing of fcl-xml
2016-03-11: ..
2016-03-11: remove deprecated dependency
2016-03-11: fix corner cases when performing arithmetics with Inf, Nan, -0, etc. Auto cast non-numbers to double instead of decimal
2016-03-08: parse decimal-format declarations
2016-03-07: also remove invalid characters from redirected urls
2016-03-07: possible workaround for chunked transfers
2016-03-07: fix redirections to other servers
2016-03-06: correctly set decimal-format in XQTS tests
2016-03-06: further format-number fixes
2016-03-06: more format-number fixes
2016-03-06: fix overflow in rounding
2016-03-06: fix xqts harness
2016-03-06: format-number improvements
2016-03-06: simple fn:format-number
2016-03-02: move customized error-code handling from xidel to internetaccess/multipage classes
2016-02-28: improve error message for attempt to read from directory
2016-02-27: tests
2016-02-27: move pattern matcher parsing to finalization phase, so declared functions are known
2016-02-27: fix flower pattern matching on starting nodes with attributes
2016-02-25: only change POST to GET on redirection
2016-02-25: use refactored internet access to implement arbitrary http error code handling
2016-02-25: further refactoring/normalization: handle referer in base class; disable apache's default redirection resolving, so redirect there should land in the base class, too
2016-02-25: fix broken redirections
2016-02-25: refactor internet access classes: move error code handling from low level classes to base class, unifying http error code handling between platforms
2016-02-21: use correct context node in pxp:css
2016-02-21: fix a bunch of minor formatting issues
2016-02-21: add date time formatting function
2016-02-21: fix week of year calculation
2016-02-21: fix negative µs time stamps
2016-02-20: do not create regex for valid grouping symbols if there are none as flre is extremely slow on this expression
2016-02-20: do not attempt to read data when using the HEAD method as it gets stuck on the InternetReadfile call
2016-02-20: hack so I can define further extensions in x, which contains all the old extensions of pxp:, but no fn:* and does not show up in pxp: itself
2016-02-20: bring back the "did you mean that function..."
2016-02-20: inherit namespace when repairing missing start tags, so the output is not full of xmlns attributes
2016-02-20: add German format-integer
2016-02-20: format-integer with decimal picture string
2016-02-19: implement English W?w;o format
2016-02-19: implement silly format-integer special cases for w;t
2016-02-19: fix trescentillion (10^312), change sexdecillion to sedecillion (wikipedia lists former as primary, but latter comes from conway-wechsler)
2016-02-19: expand w-format range with the Conway-Weschler algorithm
2016-02-19: format-integer with cardinal i,I, a,A, w,W,Ww formats
2016-02-18: fix type signature of fn:concat
2016-02-18: 0-argument version for nilled, document-uri and node-name
2016-02-18: fix xs:error? to be empty-sequence()
2016-02-18: add xs:error
2016-02-18: fix type signature of references to type constructor functions
2016-02-18: improve type debug output of pxp:type-of and TXQTermSequenceType.serialize
2016-02-16: add uri-collection stub
2016-02-15: distinguish empty groups (x?) from groups that are just not there (x)?
2016-02-15: fix analyze-string with q
2016-02-15: analyze-string using Sorokins, and fix warnings
2016-02-15: fix analyze-string confusion about (()) vs. ()() by writing another regex preparser
2016-02-15: adjust my test cases to stricter XPST0081 behaviour ✔
2016-02-13: change error codes for unknown collation ✔
2016-02-13: empty namespace urls do not exist
2016-02-13: fix overflow in []
2016-02-12: stricter option parsing. taking care to distinguish xq 1 and 3 behaviour ✔
2016-02-12: stricter extension expr parsing ✔
2016-02-11: stricter default namespace parsing ✔
2016-02-08: documentation
2016-02-08: documentation
2016-02-08: define default define only when there is no define
2016-02-07: documentation
2016-02-07: replace (as txqvaluenode) with toNode, as it is 5 times faster and more flexible
2016-02-07: fix memory leak
2016-02-07: fix uninitialized variable
2016-02-07: add option to override dependencies
2016-02-07: reject trivial grammar mistakes ✔
2016-02-07: reject comments in direct constructors ✔
2016-02-07: move name prefix resolving for direct constructors to second parsing phase; store comp and directed constructors in different classes to raise correct error codes afterwards
2016-02-06: tests and safety checks
2016-02-06: prevent tag repairing from breaking the relative offsets
2016-02-06: fix handling of broken nodes that are non-identical, but are supposed to be at the same position (offset) in the document
2016-02-04: add tracing facilities :microscope:
2016-02-04: fix .[] for non nodes
2016-02-04: fix deep-equal tests
2016-02-04: simplify entity decoding by writing my own string to int conversion
2016-02-04: stricter entity parsing. first check syntax, then check length, then parse
2016-02-04: fix fn:deep-equal for case-insensitive comparison of nodes (node names should have been case sensitive, even if values are case insensitive); fix too strong and weak attribute name comparison in case of occuring namespaces
2016-02-02: laz meta (exceptions to ignore)
2016-02-02: add an option to fcl-xml's XML parser in the xqts :heavy_check_mark:
2016-02-02: ...
2016-02-02: ...
2016-02-02: improve fn:*id* functions; using a very ugly hack to store attribute data types in nodes without introducing a new field; the fcl-xml based parser is needed to use the improved fn:id function; fn:idref is not tested (since there are no tests without schema and idref dtd in the xqts) fn:element-with-id = fn:id, since a schema is needed to mark elements as id elements :heavy_check_mark:
2016-02-01: more error codes in fn:doc  :heavy_check_mark:
2016-02-01: update fcl-xml dom to internet tools tree conversion; fix namespace and document in result tree
2016-02-01: laz meta
2016-02-01: remove staticContextInitialized field as it was not used anymore after the function initialization was moved to the parsing phase
2016-01-31: raise errors on trivial url problems when importing modules
2016-01-31: fix corner case in date time comparison
2016-01-31: fix passing a ppinteger where pinteger was expected
2016-01-31: fix fn:resolve-QName
2016-01-31: allow user defined accept headers to override the default one
2016-01-30: fix math:pow(-0e0, -3)
2016-01-30: change function name resolving to cover an xqts test case ("declare function name")
2016-01-30: reject singleton passed to function expecting empty-sequence()
2016-01-30: update tests to stricter collection error checking
2016-01-30: forbid function overriding in the same query
2016-01-30: fix functiondecl regression: xquery 1 allows all function names during declaration, even reserved ones
2016-01-30: allow non character unicode codepoints in normalization
2016-01-30: minor change to fn:doc/collection on empty input
2016-01-29: modify uri resolving to pass XQTS test cases
2016-01-29: fix string to QName casting conditions check
2016-01-29: fix gYear format (allow more than 4 year digits);
2016-01-29: fix date time parsing to make the invalid input format detection independent from the input values too high detection
2016-01-29: check XML schema explicit timezone constraining facet
2016-01-29: much simpler regexps for xml's nc/names using \i and \c
2016-01-29: ascii fall back for \c, \i for non-Unicode aware regex backends
2016-01-29: use new regex library for XML schema value verification; change base64 regex because flre fails to handle alternatives
2016-01-29: adapt test cases for FOAR0002
2016-01-29: forgotten file for FOAR0002
2016-01-29: fix error for sequence to type constructors: XPTY0004 instead FORG0001
2016-01-29: fix xpath error for too big numbers: FOAR0002 instead FORG0001
2016-01-29: fix parsing of big zeros like 0E9999999999999, which are too small to trigger the huge zero case, but still too big for the default case; report too big error code for numbers that are truly too big
2016-01-29: raise exception on empty input for xqts's sake
2016-01-29: do not try to split type testing operators (instance of, ...) because they are not actually binary operators
2016-01-29: 'xmlns' is not a namespace prefix
2016-01-29: stricter parsing: raise error in parseValue when the input has been exhausted; fix //#0 and /// cases
2016-01-29: stricter node test parsing
2016-01-29: refuse some more invalid node tests; correctly resolve attribute namespace prefixes when local-resolving is disabled
2016-01-29: prevent op-except from creating fake sequences
2016-01-29: check for singletons in fake sequences when casting
2016-01-29: check for float under/overflow during input/output
2016-01-28: handle -0 in div and mod operation
2016-01-28: parse/output -0 as different value than 0; use my own float->string conversion routines. fpc's are better now (than before), but hard to test, since they change between fpc versions
2016-01-28: change catched exception from EInvalidArgument to more general EMathError, since fpc 3 raises other exceptions (on power, EInvalidOp)
2016-01-28: fix strange reuse of for loop variable
2016-01-28: even more tests
2016-01-28: fix 1.00000000*2^something to string conversion; (1.1111111111 too but it probably was not broken, at most imprecise); fix digit rounding when the entire number has been rounded away; tests
2016-01-27: fix that the wrong digit was used for rounding decision; make rounding function public; support ranges containing zero; tests
2016-01-26: reimplement truncation of binary float number to the same float number with the minimal amount of decimal digits, because the old function did not even try to get close to the precise binary float number (just picking any number in the range of decimals with the same binary float representation) and had a sign error when inserting a 5 in the max = min + 1 case.
2016-01-24: add fn:generate-id
2016-01-23: adapt to changed empty match behaviour of FLRE#18
2016-01-23: faster sequence concatenating by moving an entire block of interfaces and precomputing a length
2016-01-23: check for reserved function names also at calling site; remove deprecated namespace resolving
2016-01-23: mark fn:data as 3.x only function
2016-01-23: check for grammar constraint xgs: reserved-function-names
2016-01-21: fix regression when parsing x-strings only
2016-01-21: fix further regression which resolved the names of processing instructions
2016-01-21: fix regressions from parsing refactoring: missing name for functions returned by fn:function-lookup; not-missing name for partial function lookup; test for invalid namespaces in annotations; unresolvable namespaces in computed constructors
2016-01-20: fix that functions with different arity could override each other
2016-01-20: fix crashing safety check
2016-01-20: fix locked-up internal state after failed module parsing
2016-01-20: add forgotten files to the public mirrors
2016-01-17: check again for flower variable duplicate/existence
2016-01-17: refactor parser from single-pass to two pass parsing: first phase parsing the query, second phase resolving names using the static namespaces.
2016-01-09: add fn:analyze-string
2016-01-07: fix date time restrictions for user defined formats that do not start with the year; test cases
2016-01-07: add test for odd/even bigdecimals
2016-01-07: ...
2016-01-07: add XQ3 math module
2016-01-05: do not allow xs:duration itself in fn:sum
2016-01-05: corrected error codes when multiplying time durations with NaN/Inf
2016-01-05: fix some date time zone adjusting
2016-01-05: distinguish between date time parsing failure, because the format is invalid vs. because the year is like 25252734927766555
2016-01-05: stricter string to datetime casting rules
2016-01-04: refactor date/times to use integers instead floats for everything: store fractions of seconds as scaled integer (microseconds) instead float and timezones as minutes. this changes the behaviour of functions in bbutils, so those were renamed
2016-01-03: create new xqvalue to return no match (old one might have the wrong type annotation)
2016-01-03: forgotten file for line normalization
2016-01-03: fix warnings/hints; arrayContains will no longer ignore the slice parameters
2016-01-03: also normalize unicode line breaks x85 and x2023 to xD
2016-01-03: reimplement split to get the exact output needed by tokenize
2016-01-02: do not allow [^]
2016-01-02: modify \p{X} to (?i-)\p{X}(?i) in first occurence but \p{X} in capture groups; fix hints
2016-01-02: make my own cache
2016-01-02: refactor regexps to have an own flag set enum
2016-01-02: also move to new regex library in pattern matcher, forgotten file; fix that text nodes were also matched to non-text nodes
2016-01-02: also move to new regex library in pattern matcher
2016-01-02: forgotten file for ekTemplate/ekPattern renaming
2016-01-02: rename template option to pattern; add pattern-xml to parse patterns xml-like (or it could not parse <script> <.../> </script>)
2016-01-01: fix (?: when reencoding regexpr; have ! as special flag to allow full regexp syntax; add caching
2016-01-01: also preparse replace expression
2016-01-01: cleanup regex pre parsing, slightly faster
2016-01-01: use my own regex parser to filter for valid and invalid regex, before doing any matching
2015-12-31: refactoring: move parsing code from an include file to an unit
2015-12-31: change parsing priority to match grammar better. This BREAKS all big statements after operators, term op statement, like 123 + if (..) then 456 else 789.
2015-12-31: better checking for invalid regex
2015-12-30: slightly change regexp behaviour: no match returns returns "" for every capture group or nothing (for all); checking for FORX0003, regexp must not match ""
2015-12-30: Use FLRE
2015-12-29: refactor regex usage: move most of them in an own unit
2015-12-29: refactor attempt to move interfaces in separate unit, but it causes more problems than it solves (Lazarus automatically includes the hidden unit containing the interfaces, constant repetitions).
2015-12-29: move ignore functions from xquery to bbutils
2015-12-28: test case
2015-12-28: remove most usages of xqvalueSeqAdd. It tends to break immutability assumptions
2015-12-27: fix that the new extract all function replaced the old one
2015-12-27: add flag to extract all matches
2015-12-27: add random($max) and random-seed functions
2015-12-26: add <else> element
2015-12-26: allow indirect action calls
2015-12-24: fix warnings
2015-12-17: place form values for submit where the button/input is
2015-12-17: fix tests
2015-12-14: improved debug output for binary ops
2015-12-01: check for missing html tree when parsing matching
2015-11-11: rename orderby to order
2015-11-11: change error message for missing JSON
2015-11-11: repair missing HTML start tags in fn:doc
2015-11-10: add error codes to file module
2015-11-10: add strAfterLast/strBeforeLast functions
2015-11-10: fix docu
2015-11-09: update documentation/tests
2015-11-08: add a silly orderby method; comments
2015-11-08: add retrieve method; fix comments; fix hints
2015-11-08: parse HTML as HTML in xquery functions (e.g. doc)
2015-11-08: fix that error checking used statc
2015-11-08: new interface: move thread variables from simpleinternet to internetaccess and xquery; query,map,filter functional xqvalue interface
2015-11-08: fix some test cases that used to throw errors but seem to work nowadays
2015-10-24: throw exception on trailing ,
2015-10-24: more detailed warning
2015-10-17: try to get a backtrace from the terms
2015-10-17: improved error messages on parsing errors
2015-10-14: fix cloning of constructors with namespaces attributes
2015-10-14: allow to choose language in eval statement
2015-10-14: actually do some normalization: work with file:/// urls
2015-10-14: mark functions as complex, so future optimizatinos do not optimize them away
2015-10-14: run tests with strict type checking; fix signature
2015-10-14: finish file module implementation
2015-10-14: add strLastIndexOf
2015-10-14: fix stupid variable mixup
2015-10-14: strIndexOf/Contains for char sets
2015-10-13: fix read-binary without offset regression; test case
2015-10-13: fix various bugs; add test cases
2015-10-12: implement exparh file module
2015-10-01: fix reference lost by sequence enumerator
2015-09-06: remove debug code
2015-09-05: change syntax for http errors in <try><catch> expressions: http:123 or http:1* which is more intuitive, despite being invalid in XPath (but this language is not XPath)
2015-09-04: retry multipage request when connection fails. Delayed since some servers cannot handle too fast requests (especially Linz, Gießen. 2s delay was too low for former)
2015-09-03: fall back for servers where openSSL protocol autodetection fails
2015-08-15: slightly refactoring of multipage template: query evaluation and variable moved to virtual method of the reader
2015-08-15: add <try><catch> blocks to multipage template syntax; tests
2015-08-14: change template exceptions
2015-08-14: documentation
2015-08-14: also allow non matching queries in multipage to query the previous page; make some functions public
2015-08-12: add <pattern> element to apply pattern matching to previous pages; load referenced files also in templates loaded from strings
2015-08-11: refactor multipage classes, separate page and pattern command
2015-08-03: laz meta
2015-08-03: laz meta
2015-08-03: fix/update documentation
2015-07-07: fix a pointlessly absolute path
2015-07-07: version/meta stuff
2015-06-29: fix getContextDependencies for flower expressions
2015-06-28: fix warnings
2015-06-28: fix fn:index-of for custom collation
2015-06-28: add fn:serialization
2015-06-27: make escaping function public for Xidel
2015-06-27: change JNI_OnLoad/JNI_OnUnload calling conversion for Windows (same as jni.pas now)
2015-06-26: better error message
2015-06-25: test meta
2015-06-25: fix over/underflow when handling really big/small numbers (e.g. 1E-19327352814 )
2015-06-25: workaround for overflow when rounding to absurd high precision
2015-06-25: adjust multipart test cases to different random number generators on different platform
2015-06-25: fix overflow when handling negative indices in ranges
2015-06-25: ...
2015-06-25: fix variable overflow when handling overflow during addition/subtraction
2015-06-24: clean up
2015-06-24: fix url resolving for different windows file path
2015-06-14: adapt simple xpath/xquery detection for 3.0
2015-06-14: compare floats directly, do not use an epsilon threshold
2015-06-13: fxi wrong window variable scopes
2015-06-13: ...
2015-06-13: fix variable count/duplicate check for window clauses with nested variable declarations
2015-06-13: check for type in window clauses
2015-06-13: fix that return $foo declares a variable $foo in typeswitch expressions
2015-06-12: fix min/max for datetime singletons
2015-06-12: raise XQST0089
2015-06-10: improved error messages for invalid function arguments
2015-06-10: better collapsing of empty/singleton sequences
2015-06-07: fix index-of regression
2015-06-07: fix grouping of empty sequences, raise exception if the grouping variable is outside the flower scope
2015-06-06: sllightly refactor deep-equal comparisons, fix grouping of non comparable atomic values
2015-06-06: ...
2015-06-06: add group by
2015-06-06: slightly refactor comparisons, "NaN" is now equal to NaN in non strict type checking mode
2015-05-31: add window clauses
2015-05-30: refactor flower expressions: move let/for parsing to single sub function
2015-05-30: adapt pattern flower expressions to support more complex clauses (count)
2015-05-30: refactor flower expressions: clean up
2015-05-30: add count clause
2015-05-30: test stuff
2015-05-29: fix for after order
2015-05-29: allow arbitrary combinations of order and where for XQuery 3
2015-05-28: add allowing empty
2015-05-28: change behaviour of patterns in flower expressions, only statically known variables are set.
2015-05-28: refactor flower expressions: store "order by" specs backwards
2015-05-27: refactor flower expressions: pattern clauses get their own classes
2015-05-27: refactor flower expressions: use term classes instead records for clauses
2015-05-25: Major html parser change: table elements have now higher weight than any non-table element
2015-05-24: allow sequences as 3nd args of pxp:extract
2015-05-23: laz meta
2015-05-23: fix that TryStrToBigDecimal could cause a range check error on an invalid input instead returning "invalid input"
2015-05-19: overloadable static context
2015-05-18: fix broken relative linking
2015-05-18: fix broken comment
2015-05-18: add a preliminary pxp:transform function
2015-05-17: merge query kind detection from xidel to library
2015-05-17: merge input format detection from xidel in the internet tools library, make "parse json to xqvalue" public
2015-05-16: change absolute file paths to file:// urls, so they can be used as absolute urls for resolving
2015-05-16: add function to expand file name to absolute path
2015-05-16: less strict xquery version parsing
2015-05-16: add US-ASCII encoding for XQTS
2015-05-16: fix parsing of [ .. , .. ]
2015-05-16: stricter checking for node-test( ... ) arguments
2015-05-16: fix more missing whitespace collapse in namespace urls
2015-05-16: fix that the parser garbled namespaces urls containing entities or trimmable spaces
2015-05-16: add sequence type unions for typeswitch
2015-05-16: fix warnings
2015-05-16: fix headers on windows
2015-05-16: fix Q{...}*
2015-05-16: add try/catch expression
2015-05-15: add fn:path
2015-05-15: fix crash when calling a function reference to a native interpreted function that depends on the sender property of the static context
2015-05-14: allow native interpreted functions to access the evaluation context
2015-05-14: add xpath3's fn:unparsed-*
2015-05-14: fix document uri of document returned by parse-*
2015-05-14: changed error checking for XQTS
2015-05-14: add xpath3's parse-* function as well as a custom parse-html
2015-05-14: detect content-type text/xml-external-parsed-entity and allow root text accordingly
2015-05-12: fix closing tag rollback, when tag is followed by something (e.g. when </body> and </html> are separated by white space and rollback occurs to body)
2015-05-02: atomize in switch before calling deep-equal, test for invalid input
2015-05-02: add 2 parameter fn:round
2015-05-01: fix fn:root error code
2015-05-01: fix type error on invalid untypedAtomic values for numeric operation by actually performing the cast to double. Using the fast cast track previously used for comparisons only.
2015-04-27: add fn:environment-variable fn:available-environment-variables
2015-04-27: add strBefore, strAfter functions
2015-04-27: reject never ending comments
2015-04-27: fix tokenization: number cannot be followed by operator without whitespace
2015-04-27: fix tokenization: operator must be followed by whitespace or terminal symbol
2015-04-26: laz meta
2015-04-26: fix fn:concat to reject sequences/functions
2015-04-26: fix fn:boolean to reject binary string types
2015-04-26: fix invalid casting in value comparison (e.g. for booleans)
2015-04-25: yet another approach for pair comparison in a general comparison. Simply perform the cast. Do not try to take shortcuts (for boolean).
2015-04-25: parse external variables with default values
2015-04-25: fix casting of boolean in comparisons
2015-04-24: fix sequence unwrapping in atomic comparison
2015-04-24: fix that fn:insert-before could have returned sequence wrapped singletons
2015-04-24: stricter check for valid base64
2015-04-21: adapt tests for changed comparison, fix some tests to run with strict type checking
2015-04-21: refactored comparisons: functions become staticcontext methods; for unequal type kinds: cast to string in value comparison, cast to number/basetype in general comparison only if cast is possible.
2015-04-21: fix type signature of jn:members, jn:keys
2015-04-10: fix that tests using random numbers were breaking each other
2015-04-10: fix hints/warnings
2015-04-09: fix the extended->bigdecimal conversion depended on the default decimal separator. marked as deprecated, since it should not be used
2015-04-07: multipart tests, use same boundary header in pxp:form and pxp:form-combine
2015-04-07: revert previous commits (6a0777035f07,15a5e8c84f76) as they reverted earlier commits, not fixed them
2015-04-06: fix multipart encoding
2015-04-06: update documentation
2015-04-06: fix multipart encoding
2015-04-06: laz meta
2015-04-05: temporarily disable multipart requests, since they break videlibri
2015-04-05: fix variable mix up in multipage template
2015-04-05: adapt form-combine for multipart requests
2015-04-04: unification of various object -> requests conversions, minor changes to form parameters/results
2015-04-03: improve pxp:form for file upload (more options)
2015-04-03: assume utf-8 filesystems on non-windows
2015-04-03: adapt test since pxp:form no longer passes invalid encodings through
2015-04-03: fix url-encoded forms broken by last commits
2015-04-02: multipart encoded form objects
2015-04-01: add mime/multipart utility methods
2015-04-01: property to set content-type for data, simplification
2015-03-04: fix floating point exception when passing NaN as index (codepoint)
2015-02-15: disable range checking for fpc bug 27466
2015-02-08: comments
2015-02-08: reject operators that can not be written associatively
2015-02-08: test if QName is valid in fn:QName
2015-02-08: fix variable cycle detection to visit functions relative to the correct module
2015-02-07: fix leading lone slash
2015-02-01: adapt examples to interface changes
2015-02-01: REMOVE pxp:filter. Mark pxp:uri-combine, pxp:form-combine as functions that might be removed in future (suggesting request-combine as possible replacement)
2015-02-01: RENAME getChild/addChild/addChildMerging TO get/add/addOrdered. Update documentation
2015-02-01: fix warnings
2015-02-01: rename TextElement to TextNode.
2015-02-01: made function names CASE SENSITIVE
2015-01-10: made type names case sensitive
2015-01-10: revert hiding of untyped/anyType as it breaks element tests. fix various casting/type check error codes
2015-01-10: fix more QName casting issues
2015-01-10: fix error code mismatch between xq1 and xq3
2015-01-10: add error codes for various casting operations
2015-01-10: raise error if context item is absent in number#0
2015-01-10: ...
2015-01-10: fix minor casting issues: +INF, QName, error codes
2015-01-10: fix some minor unary minus/plus issues, slightly faster to operator
2015-01-10: remove defaults from implementation part (fix compiling issues?)
2015-01-04: raise error if context item absent in fn:normalize-space
2015-01-04: fix theoretical crashes due to TRegExpr not being thread safe
2015-01-04: fix fold-right signature (the XQuery standard is wrong here!). typecheck element types in function calls
2015-01-04: implement forgotten fast path to create numbers with schema type constructor (which does not seem to matter much though)
2015-01-04: fix range check error in comparison of big decimals (if a number had a large exponent, but no digits)
2015-01-03: fix in scope prefixes to be like cbcl-directconelem-001
2015-01-03: check various error conditions for constructors
2015-01-03: stricter conditions for constructors, reject most invalid queries
2015-01-02: fix broken content-type header setting on Windows
2014-12-31: raise error in fn:string-length() if the context item is undefined
2014-12-31: implement fn:has-children, fn:innermost, fn:outermost
2014-12-31: fix multiple native functions with the same name
2014-12-31: reject invalid XML characters in codepoints-to-string. have a schema version for XSD1.0/1.1
2014-12-31: fix registration of invalid modules. Raise syntax error on functions without body.
2014-12-31: fix named function reference to fn:error (or any functions without types) and check if arity is a valid integer.
2014-12-30: stricter prolog parsing. require special order of declarations and separators
2014-12-30: detect cycles in variable declarations to throw XQST/DY0054
2014-12-28: raise error if return statement is missing
2014-12-28: fix crash when a broken module is loaded
2014-12-28: fix error codes for some invalid literals
2014-12-27: fix module header parsing broken by previous commit
2014-12-27: fix some error codes for prod-AxisStep XQTS
2014-12-27: raise XPDY0050 on non document root nodes
2014-12-27: reject invalid axis/test combinations
2014-12-27: fix divide by NaN to return NaN
2014-12-27: fix function name resolving to call a type constructor only if the namespace url specifies a schema
2014-12-27: fix priority of namespace resolving: do not use the default function namespace, if namespace was declared for the default prefix
2014-12-27: fix crash when a filter sequences returns empty sequence
2014-12-26: fix error code
2014-12-26: fix use of unqualified function names that are forbidden in xquery 3 but allowed in 1
2014-12-26: handle ranges (e.g. in subsequences) that are outside 32-bit integer range
2014-12-26: renamed isInteger to isIntegral and BigDecimalToInteger to BigDecimalToLongint because the two different meanings of "integer" could have lead to confusion
2014-12-26: fix subtract-dates/times to use implicit timezone if none is given as input
2014-12-26: fix unary minus/plus to have lower precedence than map
2014-12-26: bigdecimalmath: fix unitialized flag in return value of unary minus operator
2014-12-26: nicer error messages for function call type mismatch
2014-12-26: use new error code XPDY0130 for to limit
2014-12-26: fix more minor casting issues after failed XQTS tests
2014-12-26: abort date time parsing if component too long
2014-12-25: fix () cast to QName?
2014-12-25: fix warnings
2014-12-25: change schema value creation to give more precise error messages
2014-12-25: improved QName casting
2014-12-25: stricter min/max for datetimes. Change primitive of duration types: ymduration != duration != dtduration.
2014-12-25: fix minor deviations of fn:avg, sum, min and max from the XPath 2 standard/XQTS
2014-12-24: improve precision of avg on datetime/duration values
2014-12-24: require that all native functions with type signature have a return type, fix mismatches between declared type and actual returned value
2014-12-24: fix return type in type signature of date component getters
2014-12-23: fix warnings
2014-12-23: errcode hackery for XQTS
2014-12-23: add xq3's string-join#1
2014-12-23: do not check max arity if max arity is maximal
2014-12-23: refactoring, keep arity as part of function name
2014-12-23: improved support for EQNames, refactoring, remove nextToken(Maybe)QName from parser, only store namespace url in annotation no prefix
2014-12-23: more support for uri qualified names, code simplification
2014-12-22: simplification (rollback parsing instead duplicated logic)
2014-12-22: refactoring: merge TXQTermReadAttribute to TXQTermNodeMatcher, rename TXQTermNodeMatcherNamespace to TXQNamespaceMode, preparation for uri qualified identifiers
2014-12-20: fix type error when passing empty sequence to function(..)*
2014-12-19: various stricter error checks for better XQTS results
2014-12-14: fix error code for function on fn:string, fn:data and atomization
2014-12-14: ...
2014-12-14: fix function coercion of sequences
2014-12-14: fix too strict type checking for user defined functions
2014-12-09: fix named references to type constructors
2014-12-09: implement function coercion
2014-12-09: raise correct error, when referencing missing/invalid functions
2014-12-08: ... fix for xxx-from-(date|time)
2014-12-08: fix types: correctly parse types surrounded by parenthesis, remove too strict type checks from functions (which effectively broke all numeric and date/time functions on XML input), fix result type of functions when no type is given, add function(*) type annotation to schema
2014-12-08: large scale refactoring: replace INamepace with string containing namespace url
2014-12-08: forgotten file
2014-12-05: fix warnings/hints (including actual bugs which luckily had no effect on the evaluation)
2014-12-05: how to calculate fibonacci numbers with higher order functions
2014-12-05: interface behaviour change: evaluate queries in the same static context => previous function declarations are available in later queries (requires function term cloning), test cases
2014-11-30: fix (possible) memory leaks
2014-11-24: fix several issues of nested closures and annotated anonymous function; always clone function body and entire signature, or neither, not only parts of it
2014-11-23: fix xquery 3 version number recognition
2014-11-23: add fn:head, fn:tail
2014-11-23: add a default parameter to keep the interface unchanged
2014-11-23: fix annotations on anonymous functions
2014-11-23: fix fold-right
2014-11-23: add partial function application, other changes
2014-11-22: add fn:function-name and fn:function-arity
2014-11-22: another function value change: type signature terms can also be owned (auto freed), context item is accessible in implementation defined functions/references (those in native modules), but not in user defined functions; implemented fn:function-lookup
2014-11-22: fix memory leak when exception occurs during function call
2014-11-22: fix that functions were able to access the context item instead causing an error
2014-11-22: change interpreted functions of native modules to have a static context, and use that one instead the current evaluation context. => problem: now they have a staticcontext without engine => add safety check for all functions accessing the engine of a static context
2014-11-17: add basic higher order functions
2014-11-17: change dynamic function call to use dynamic context from the definition of the function (is that how it is supposed to be, or should the context be undefined??)
2014-11-17: fix data() crash if the context item was undefined
2014-11-17: separate functions for xquery/xpath 1 and 3 parsing mode (also store parsing mode in static context), fix native function type signature parser to handle function types, fix error code for statically unknown function
2014-11-16: better error message on invalid JSON
2014-11-15: remove double slashes from urls before calling native libraries, because they break android's httpclient
2014-11-15: fix that adhoc fix for nil in main modules without query body broke library modules. New behaviour: Do not allow main modules without query body
2014-11-11: when parsing a XQuery module without primary expression, do not put a nil as last term
2014-11-08: fix segfault on program-end/finalization when interpreted functions were defined in a native module but not used
2014-10-26: fix function type signature for named references, do not wrap references to interpreted functions,
2014-10-26: fix that fn:data() was not defined (only fn:data(x))
2014-10-26: fix visitor for root AST
2014-10-26: add function tests
2014-10-12: implement named function references
2014-10-12: refactoring: remove txqtermstring
2014-10-12: refactoring: rename txqtermnumber -> txqtermconstant
2014-10-12: refactoring: make default txqterm childless, add new level in hierarchy for terms with children
2014-10-12: fix that closure variables where not accessable in patterns that define a new value for the same variable
2014-10-12: add closures
2014-10-12: cloning for template elements, visiting for patterns implementation
2014-10-12: fix cloning for patterns, better visiting for queries and pattern terms
2014-10-12: keep class when cloning ttreenodes (even if that class is unknown in the cloning function)
2014-10-10: update mirrors
2014-10-06: add include file to lpk package
2014-10-06: add missing test cases to mirror
2014-10-05: add anonymous functions (but no closures yet)
2014-10-05: add methods to clone the AST
2014-10-05: implement a general purpose visitor pattern on the XQuery AST, change old specific JSON literal replacing visitor to use the new visitor
2014-10-03: add XQ3 annotations, allow to annotate as %private/%public functions for module import
2014-10-01: add utf-16/32 to the recognized encoding names
2014-09-28: functions for static fields
2014-09-24: test cases for modified UTF-8 functions; changed them to detect/fix non-shortest encoding errors too
2014-09-23: UTF8 -> modified UTF-8 (= CESU-8 + special NULL encoding) conversion for all strings passed to Java
2014-09-23: forgotten file for non-lowercase protocol
2014-09-22: do not assume protocols are lowercase (untested fix, but trivial), better heuristic to decide when to add port number to host
2014-09-14: fix internettools headers on Android
2014-09-07: additional space in output, test for a failed input (actually everything works fine, but it was inputted as template instead xquery)
2014-08-24: fix test for delphi
2014-08-23: fix delphi 4 compatibility, uninitialized result
2014-08-20: better error message, tests
2014-08-17: namespace tests for pattern matching
2014-08-17: functions to test if a array contains something and to sort a string array
2014-08-14: support namespaces in pattern declared variables
2014-08-14: fix memory leak on invalid typeswitch input
2014-08-14: condense objects in pattern matching expressions
2014-08-13: meta for attributes
2014-08-06: fix handling of variables undefined by the pattern (due to being in an optional part) (add missing variables with () value)
2014-08-06: implement Balisage flowers
2014-08-06: implement context item assignments
2014-08-06: implement typeswitch pattern matching syntax for variables, necessary changes to context handing (moved from rootelement/parentelement/textelement from queryengine to dynamic context), moved nodeCollation = nil check
2014-07-22: add functions to convert binary types to decoded strings and back
2014-07-22: fix stupid hex decoding bug
2014-07-06: rename options (trivially) like in the Balisage paper
2014-06-21: better package names on synapse https error
2014-06-12: fix http headers for android internet access
2014-06-08: use ''(unknown) namespace instead ''(any) namespace in get function (does this ever matter? but $var uses unknown too)
2014-06-07: fix handling of utf-16/32 parsing
2014-05-29: fix endless loop during time parsing when an a occurs in the format string
2014-05-10: strCompareClever: fix range check error on .*0+ input
2014-05-08: more tests
2014-05-07: another strCompareClever change: do not use length for tie breaking, only first number part
2014-05-05: strCompareClever with mix of numbers with and without leading zeros
2014-04-26: CHANGED HTML ENCODING DETECTION. bom >> content-type >> meta tag. do not try auto detection on mismatch
2014-04-26: add pxp:sleep and pxp:random functions, behaving like the Pascal equivalent
2014-03-23: iterative deleteAll
2014-03-21: test case for cdata normalization
2014-03-20: changed resolve-html to prefer node baseuri over explicit given uri
2014-03-20: honor <base>-element setting base uri in html
2014-03-20: allow assignment to [0] and (0) for prepending
2014-03-20: fix memory leak after assignment to invalid object/array properties
2014-03-19: new assignment operators: $seq[index] := for sequence overriding, $seq[] := for sequence appending (like php :( ), $array(index) := for array overriding, unwrapping object property + array element assigment (but not sequence assignment)
2014-03-18: relaxed left side of := operator: unwrap single element sequences to allow assignment to
2014-03-12: strange tests from my todo list
2014-03-03: fix broken <page url="{$var}"> command in multipagetemplate for the first page
2014-03-02: fix resolve-html for attributes
2014-02-25: fix that objects where changed to strings by resolve-html
2014-02-25: handle more html elements when following
2014-02-24: code simplification: merged link target resolving of xidel, simpleinternet and multipagetemplate
2014-02-24: fix resolve-html to return empty sequence on empty sequence input
2014-02-24: some test cases
2014-02-24: simplified some functions iterating over object keys/values
2014-02-24: fix that json object serialization printed the old and new values if properties have been changed
2014-02-22: fix low level parsing of elements containing invalid / within them, changed parsing of elements without tagname
2014-02-21: added resolve-html function like resolve-uri that resolves html elements (like <a>) to GET/POST requests
2014-02-19: utility functions for xpath/xquery/123 evaluation
2014-02-19: fix too restrictive / type checking, add IXQuery.evaluate(ixqvalue)
2014-02-17: breaking compatibility change: do not allow non node values in path expressions as required in xpath
2014-02-17: new json extension compatibiliy options in xidel
2014-02-16: fix memory leak after raising parsing exception on the RHS of :=
2014-02-16: allow /* or //* to read all object property values
2014-02-16: do not allow / being applied to arrays of non objects
2014-02-16: own json extension: allow object / property, array of objects / property, object+array mix // property
2014-02-16: fix memory leak if an exception is raised during sequence evaluation
2014-02-14: more hackery with dot operator: allow $variable. "prop" if following term would be invalid
2014-02-14: reject queries with certain syntax error (instead crashing)
2014-02-10: fix memory leak when raising parsing exception about invalid usage of element constructors or invalid element matcher
2014-02-10: delete functions after matching
2014-02-10: change template expression default parsing mode from XPath 2 to to XQuery 3.
2014-02-10: change variable resolving: also search global variables, if query has module variables (probably fix for bug introduced in db9c4bd9400a)
2014-02-09: option to use xpath strings in xquery
2014-02-09: Interface change: Moved Allow* properties into a ParsingContext
2014-02-09: Decode hex encoded username:password in urls
2014-02-09: added strUnescapeHex, charDecodeDigit, charDecodeHexDigit, fix arrayIndexOf mismatch between generated code and template
2014-01-31: fix some html corner cases (ty art)
2014-01-02: escape all not allowed uri characters before calling android's apache's methods
2013-12-29: added arrayInsert, strCount[charset], strMoveRef, strEscapeToHex
2013-12-26: enable java interface without android
2013-11-29: web page images
2013-11-19: use int64 to store exponent during string conversion because the internal representation works with exponents larger than maxint
2013-11-18: fix another string conversion hidden digit rounding bug
2013-11-18: fix that not enough digit bins were allocated when dividing an integer with a hidden digit
2013-11-18: fix that string conversion might return incorrectly 0 after rounding a hidden digit away and leaving a single bin
2013-11-18: fix exception due to truncated trailing zeros when an integer number is an exact multiple of the bin size
2013-11-17: bigdecimal documentation
2013-11-17: documentation
2013-11-17: treat parentelement in context as implicit singleton in fn:last and position
2013-11-16: use my own single to string conversion function instead fpc's to avoid rounding error in 12345.6
2013-11-16: fix round-half-to-even for negative integers, reduce rounding errors for floats, tests
2013-11-16: fix strtobigdecimal for numbers starting with '+', additional tests
2013-10-27: changed partial matching in template matching error: do not calculate immediately and store in exception, instead store sender in exception and have the library user call debugMatchings explicitely; add option to remove text and non-included attributes from the output; put html on the left and template on the right side, because otherwise the indentation requires so many spaces that it causes an outofmemory error on Android
2013-10-20: fix parsing of /< in pure XPath (worked in Xquery)
2013-10-20: fix StrToBoolDef
2013-10-20: fix utf-8 decoding for > $10000 characters, utf-8 -> utf-32 conversion
2013-10-20: fix IsNan, Delphi compatible tests (do not run array tests, overload cannot be resolved)
2013-10-20: change lineending
2013-10-20: Delphi 4 compatibility: overloads, replace arbitrary pointer arithmetic with pansichar, own unicode conversion function, own isnan/strtobooldef/DivMod
2013-10-19: change line endings (->crlf)
2013-10-19: replaced exit(.) with result := .; exit
2013-10-19: replace nice C style operators with Ppascal abominations
2013-10-18: complicated imported module initialization change:  Variables are not evaluated once when registering the module and stored in the module, instead they are evaluated when the importing query is evaluated and stored there. Variables defined in modules imported by imported modules are evaluated lazy.
2013-10-17: fix isinteger for numbers with high absolute exponent, but low precision
2013-10-17: fix xml parsing failure when attribut in namespace comes before the namespace declaration in the same element
2013-10-13: documentation
2013-10-13: changed fn:collection to convert relative urls to absolute urls using the static base uri
2013-10-13: added mock internet access class
2013-10-08: do not throw an exception if the 1-argument version of resolve-uri is used on local files without absolute path, assume current dir for absolute path
2013-10-07: fix 2.7 arm compilation
2013-10-06: documentation
2013-10-06: added TXQValue.toJoinedString (= string-join)
2013-10-05: documentation
2013-10-05: add an ignore-self-test attribute to the templates
2013-10-04: fix broken html end tag repairing if uppercase tags were used
2013-10-04: added a TXQValueString.toBoolean again (not '', '0' or 'false')
2013-10-03: fix warnings, fix wrong effective boolean value for single element sequences
2013-10-03: fix xqts3 harness, load sources/params correctly, option to run single test-case
2013-10-03: fix invalid precision calculation for 0, and endless loop when dividing 0 by anything
2013-10-03: use bigdecimal when converting xs:double to xs:string, because fpc's conversion function is not precise enough
2013-10-03: use enum instead boolean for FloatToBigDecimal conversion mode
2013-10-03: return 0, instead 0.0E0 with format exponent
2013-10-03: changed precision calculation in divide again: moved non-constant precision condition of integer-division from the loop condition to a precision update in the outer loop; fix that bigdecimaltostr added an useless dot, if the hidden digit was the first digit in the first fractional bin
2013-10-03: added print scientific option to bigdecimaltostr, fix that the hidden digit was not hidden if it was an digit in the integer part
2013-10-02: ssimplified BigDecimalToStr, removed implicit rounding (call round instead), fix round in case of overflow
2013-10-01: added single/extended to bigdecimal conversion
2013-09-30: fix prettiest converted number choosing if an overflow occured (as almost always if 1-digit bins are used)
2013-09-30: double to bigdecimal conversion with perfect accuracy
2013-09-29: rewrote/simplified division function: precision now means the count of non-zero digits (previously: count of digits after decimal point),  added fast 2^i and 5^i calculation, 10^i shift, precision function, trailing zeros counter, fix bigdecimaltostr inserting an invalid zero when printing a implicitily incremented number < 1
2013-09-28: xqts: run all tests and print results, command line parameters, handle expected errors, fix assert-xml; made functions for comparable types public for correct order normalization
2013-09-27: fix annoying corner cases to throw evaluation exception (non number division by 0, nna/inf rounding, invalid regex, missing context item node, duration=>datetime conversion)); made some functions public available for use in xqts (deep equal, sort, collations, parseTerm); test cases
2013-09-27: improve parsing of numbers with super-large-exponent (> E21470000000):  do not throw exception in try-convert, return 0 if digit part is 0
2013-09-25: fix parsing of entities in CDATA sections; breaking interface change!! added additional parameter to the text event of parse(HT/X/)ML to distinguish normal/cdata
2013-09-25: raise errors on some stupid corner cases
2013-09-25: show an useful error message when invalid characters occur in a hex entity
2013-09-04: raise exception on not allowed effective boolean calculation
2013-09-03: laz meta
2013-09-03: minor casting changes: trim before casting to QName, remove spaces from base64Binary -> string
2013-09-03: Do not auto cast the integer result of an arithmetic operation of two xs:decimals to xs:integer (reverting a previous commit)
2013-09-02: fix conversion to decimal of not trimmed string, fix comparison of lower/upper bounded doubles
2013-09-02: fix casting: dynamic to QName, statically castable as QName, to derived xs:string, creating low(xs:long), untyped to xs:double in sum/min/max/avg
2013-09-02: fix precision loss when casting between float<->double by temoving an intermediate cast to decimal
2013-09-01: fix warnigns (e.g. using an unitialized variable (which caused a bug in idiv) )
2013-09-01: big decimal: reject invalid input in trystrtodecimal consisting of . and e as invalid, do not crash trying to convert it
2013-09-01: merge to template
2013-09-01: big decimal: fix parsing of numbers without digits after decimal point (e.g. (.3))
2013-09-01: big decimal: fix comparisons involving (-0)
2013-09-01: changed type behaviour of arithmetic functions: always return a numeric base type (integer/decimal/float/double), instead searching the lowest common ancestor type (faster and avoids issues with restricted sub typed). Also convert every integer-valued xs:decimal to xs:integer. e.g. type-of(xs:byte(1) + xs:byte(1)) = "integer", type-of(1.5 + 1.5) = "integer", ...
2013-09-01: LARGE REFACTORING: removed int65 storage type from xquery, added int64 type and arbitrary precision decimal types; renamed old TXQValueDecimal to TXQValueFloat,   every xs:decimal fitting in an int64 is stored in the int64 type for performance reason and then considered to be like xs:integer (since according to Kay it is valid to return a value of type X derived from Y, whenever the spec says that the type of the result has Y)
2013-09-01: fix rounding to digit far larger than input, turning it to zero
2013-09-01: big decimal: added round half up method
2013-08-31: big decimal: fix conversion to int, fix wrong result of integer division on big decimals with negative exponents (there were fractional digits)
2013-08-30: fix bigdecimal->extended conversion, fix hidden digit after multiplication
2013-08-25: renamed big float to big decimal
2013-08-25: fix documentation typos
2013-08-25: always allow object() in native function parameter types, add form-combine which calls uri-combine on the object returned by form
2013-08-25: fix MAX/MININT65 on 32 bit systems
2013-08-19: fix float/double number->string casting for 1e6
2013-08-19: fix fn:number on non convertible values
2013-08-19: basic support for xml schema list types
2013-08-19: more restrictive sub string type casting
2013-08-19: more restrictive datetime casting: do not allow minutes/seconds in 24:xx:xx
2013-08-18: rewrote low level number to string conversion function. Call str instead floattostrf for most values and transform the string. Corresponds now to the rules given in the xquery standard
2013-08-18: laz meta
2013-08-18: in error testing cases: do not just test if an error occured, but also if it has the correct error id; fix some error id typos
2013-08-18: rename type annotation of sequence to "sequence*" (used to be "sequence", was "*" after refactoring)
2013-08-18: fix that the short notation <x>{$obj.property}</x> did not work after the dot-operator introduction
2013-08-18: fix assignment to object property of objects of the previous template application (broken by the introduction of the dot operator)
2013-08-18: update test cases accordingly
2013-08-18: MAJOR REFACTORING. Added type annotation to every xqvalue, removed derived types from type class hierarchy, store all type information/facets as objects (instead classes) in a runtime accessable "schema"
2013-08-10: fix compiler hints and warnings
2013-08-10: overview comments, meta stuff
2013-08-10: added min/maxint65 constants
2013-08-09: added xquery 3 switch statement
2013-08-09: added the simple map operator !
2013-08-09: added || operator as first xquery/xpath 3.0 feature, options to set the parsing model to 3.0
2013-08-09: little refactoring to remove hard coded operators from the XQuery parser
2013-08-09: update xidel to changed object property storage
2013-08-08: apply change of jsoniq 1.0.2: libjn:remove-keys function
2013-08-08: apply change of jsoniq 1.0.2: libjn:project now works on each value in a sequence separately
2013-08-08: changed jn:keys to remove duplicates
2013-08-08: apply change of jsoniq 1.0.1/2: jn:keys, jn:members work on sequences
2013-08-08: apply change of jsoniq 1.0.1: use new library functions
2013-08-08: apply change of jsoniq 1.0.1: changed dynamic function call semantic to ignore calls on atomic/xml values
2013-08-08: apply change of jsoniq revision 1.0.1: jn:size can be called with the empty sequence
2013-08-08: apply change of jsoniq revision 1.0.1: support {| .. |} instead of jn:object
2013-08-08: apply change of jsoniq revision 1.0.1: support () for object key and array element listing
2013-08-08: apply change of jsoniq revision 4.43: allow null in value comparison expression, e.g. null eq null
2013-08-08: apply change of jsoniq revision 4.43: do not allow null in arithmetic expression
2013-08-08: extended dot operator like in jsoniq. Applies to all elements of a sequence, ignore non-objects (do not raise an error as in the newest jsoniq revision)
2013-08-08: extended . syntax to behave like an operator to access calculated properties (e.g. $obj."foo" like in jsoniq standalone)
2013-08-08: refactoring of object properties: store property accesses in ast instead assuming every dot corresponds to one access => allows to have object properties containing dots in their name, finer control over parsed dot notation (option moved from changelog to engine), indirect access through calculated values ($obj(...calculation...) := ...);; removed events to intercept variable defininig/evaluating (all variables need to be defined through the engine)
2013-08-07: array prepend function
2013-07-14: fix that resolve-uri did not work without base uri parameter in simpleinternet.process (default base uri is (and must be) taken from static context; static context is set during parsing => uri has to be set before parsing)
2013-07-13: internettools installation instructions
2013-07-13: fix progress calculation with synapse wrapper
2013-07-07: change behaviour of uri resolving: links on redirected pages are relative to the redirected page url, not the original page (necessary for berlin hu primo in VideLibri); added property to get redirected url in internetaccess
2013-07-07: clear jni exception when raising a corresponding pascal exception on a not found class or method
2013-07-01: fix pxp:url-combine, and only ignore <input type=submit> in first arg of pxp:form
2013-07-01: fix pxp:form for <select>
2013-07-01: also support short evaluation tag <s> in multi page template
2013-07-01: refactored pxp:form function, allow input-elements in 2nd/override arg, added pxp:uri-combine to combine to url-encoded data (not uri itself) (behaves like form except taking url-encoded data as 1st arg instead a form)
2013-07-01: fix memory leaks on negative unit tests
2013-07-01: template language change!: allow t:optional flags on all template elements
2013-06-30: pascal array of string to java string[] array conversion
2013-06-28: fix that json objects were not shown in debug log, also show type
2013-06-24: do not unload native backend if VideLibri activity is closed
2013-06-24: somehow fix parsing of retarded pages containing </ tag> (by ignoring it) (e.g. page of fürth library)
2013-06-23: fix example missing search paths, and a nested comment
2013-06-21: fix failed restoring after native crash by initializing bridge in all activities
2013-06-18: fix link in readme
2013-06-17: simple readme for internettools
2013-06-16: revert change in unrelated code of previous commit (todo: is the + '' necessary and I forgot to insert it in the template; or is it unneccessary and I did not bother removing in in the non-template version, because the next template conversion would remove it automatically?)
2013-06-16: simplified binary search, arrayBinarySearch functions for all arrays
2013-06-16: universal binary search, for exact match, lower bound and upper bound (seriously why is there none in the rtl for that??)
2013-06-16: parse null in json and store as jn:null() not as nil
2013-06-11: convert null string to '' (previously < (null) >), string array wrapper methods
2013-06-10: Android gui: allow users to add new libraries by downloading to VideLibri, other little changes (e.g. updated reddit test template, always enable options in gui)
2013-06-06: fix invalid logfile closing on Android
2013-06-02: add default property to get xml property function
2013-05-28: fix some temporary memory leaks of JNI local ref
2013-05-28: list possible similar functions, if an unknown function is used in Xquery
2013-05-28: function to calculate Levenshtein distance between two strings
2013-05-28: add <if> construct to multipagetemplates
2013-05-28: fix off by one error for cancel-single
2013-05-27: added callStringMethod
2013-05-26: store meta description in templates
2013-05-24: remove useless debugln in bbjniutils
2013-05-22: fix template cloning
2013-05-20: handle sites with strange https certificates
2013-05-19: fix uninitialized variable in url-decode
2013-05-19: add choose/when/otherwise like in XSLT to multipage templates
2013-05-18: add getLastContentType helper method
2013-05-18: minor improved error message, comment
2013-05-18: add pxp:uri-encode (alias for fn:encode-for-uri) and pxp:uri-decode
2013-05-17: code cleanup in androidinternetaccess: use wrapper from bbjniutils, instead own jvm env ref
2013-05-16: add bbjniutils path
2013-05-15: implemented the JSONiq object property restrictions (default off, option: pure-json-objects)
2013-05-15: free local refs in AndroidInternetAccess after usage to avoid crash when calling without returning to JVM, comments
2013-05-11: option for socks proxy in internet tools
2013-05-09: static methods in jni wrapper
2013-05-09: remove duplicate deletelocalref
2013-05-09: fix missing argument causing endless recursion
2013-05-09: replaced debugLn by __android_log_write, because debugLn is not thread safe (also add log event function)
2013-05-08: invert thread creation: create pascal thread like in native videlibri and attach to jvm (previously: create jvm thread and call videlibri from there, did not work because fpc threadvars were not initialized)
2013-05-08: more Videlibri android: split functions into independent parts, more bridge functions, java gui
2013-05-04: removed dependency on customdraw from android internet tools
2013-05-03: more modular Android internet access
2013-05-01: internet tools for android
2013-04-26: add pxp:get function to get a variable or a default value if that variable does not exist
2013-04-25: remove link anchors from downloaded pages
2013-04-25: clone method for multipage templates
2013-04-22: relative paths, more units in packahes
2013-04-04: xquery adapt for arm without extended type
2013-04-04: fix w32internetaccess for wince
2013-03-29: throw verbose error message instead range check error, if an invalid "&" string is used in Xquery
2013-03-27: meta, update link to upgraded sf repository, documentation
2013-03-25: fix crash on utf16 string encoding conversion test on fpc2.7.1 (due to abused ref counting and possibly write protected constant literals)
2013-03-25: reorder trailing --input-format to the beginning (necessary to keep cgi working, as firefox moves it from the beginning to the middle), list input-format options in cgi, catch and show exmlreaderror
2013-03-24: safety check for invalid binary ops
2013-03-24: intSqrt
2013-03-24: reverted workaround for broken fpc 2.6 stringlist, because it crashes with fpc2.6.2 which finally got a working stringlist
2013-03-23: fix compilation on 2.7.1, warnings, uninitialized result
2013-03-23: changed WIN32 to WINDOWS
2013-03-23: convert to utf-8 instead ansi when converting a fp dom tree to our format, override parsing function instead declaring new ones in TTreeParserDOM
2013-03-23: fix parsing of at in import module
2013-03-23: raise exception when evaluating a query without value (declarations only)
2013-03-22: try to run as root if write permission is missing
2013-03-22: fix name double url encoding in pxp:form
2013-03-22: log http method
2013-03-22: test
2013-03-22: move ssl certificate check option to config class, convert lower-case http method to upper-case
2013-03-21: split TXQValueInt65 constructor, because default parameter with overloaded assignment operator does not seem to compile with 2.7
2013-03-21: fix bbutils on 2.7.1
2013-03-18: allow arbitrary expressions in object names, LEXER/PARSER change, : is now a symbol, not part of an identifier token
2013-03-18: fix invalid static context dependency value for :=
2013-03-16: changed form method to accept object as name=value pairs, assume all name=value pairs passed as strings must now be url encoded (BREAKING CHANGE, previously it url encoded the first string itself)
2013-03-16: allow empty object as 2nd parameter of parse-json
2013-03-16: fix crash when empty sequence is passed to parse-json
2013-03-16: changed string value of null to "null"
2013-03-16: allow to declare interpreted pseudo-native function which are declared in XQuery, but only parsed at the first calling
2013-03-16: allow to import native modules with other prefixes, fix crash if a module is imported and no importEvent was defined
2013-03-15: changed synapse wrapper to behave like wininet (i.e. remember username+password)
2013-03-15: simplify check for last connection, remove username/password/anchor from referer
2013-03-15: comment about authorization testing
2013-03-15: add user/password support to wininet wrapper, always set INTERNET_FLAG_KEEP_CONNECTION
2013-03-12: fix missing node collation in x-strings, add property to access last query
2013-03-12: statically track context dependencies everywhere
2013-03-12: docu
2013-03-12: json function checks for urls
2013-03-11: translated w32internetaccess to English
2013-03-11: removed digibib workaround from w32internetaccess
2013-03-11: also for Windows
2013-03-11: basic error ignoring
2013-03-11: do not replace entities in html cdata (e.g. script)
2013-03-11: ignore entities not following &[a-zA-Z#]
2013-03-11: write nbsp; back in htmls
2013-03-11: changed generated decoded entity function to be more readable, only handle utf8 case, keep &nbsp; intact
2013-03-11: removed debug stuff from w32internetaccess
2013-03-11: functions to prepend/append to a string
2013-03-11: changed internetaccess back to use splitted version, because synapse is not able to parse urls reliably
2013-03-11: fix decode url again, tests
2013-03-11: change internetaccess to work on full urls, not a splitted version
2013-03-11: add event to override fn:doc
2013-03-10: parse comments and PIs in documents loaded with doc
2013-03-10: fix resolve uri for relative file paths, protocol relative paths, unittests it througly
2013-03-09: hacked jsoniq json-item() and structured-item() into the type hierarchy
2013-03-09: join sequences in x-strings, fix that single element x-string did not had string type
2013-03-09: added a join function, join(x) = string-join(x, " ") without type checks
2013-03-09: lcm, gcd for 64 functions
2013-03-09: renamed filter to extract
2013-02-28: fix that the x-string int <page>/@url was not correctly evaluated, read method from {$obj}
2013-02-28: a test case
2013-02-28: better error messages: show failed template name, attempted matches, do not show previous/last matches if there are none.
2013-02-27: unittests
2013-02-27: fix wrong json serialization of (foo) as [foo], call utf8 function to load a file
2013-02-27: fix json parsing to use the correct double/decimal/integer type even it is ambivalent
2013-02-27: fix jn:object to also check the first object for duplicated properties
2013-02-27: added jn:json-doc, refactored fn:doc
2013-02-27: workaround for single NS type system: use object(), array() as alias for xs:object, xs:array and structured-item(), json-item() as alias for item()
2013-02-27: fix peculiar behaviour of null, to be equivalent to () in all situations not involving sequences
2013-02-26: fix effective boolean value
2013-02-26: json literals (true, false, null), fix null treatment as value instead as ()
2013-02-26: more specifiy options to turn objects/json on and off
2013-02-26: use own json parser instead of fp parser (but using fp json scanner): can parse "jsoniq-multiple-top-level-items", 65-bit numbers, no unnecessary data conversion
2013-02-26: JSONiq null
2013-02-26: jn:object
2013-02-26: added static global namespace support,  JSONiq keys,size functions
2013-02-26: JSON tests, changed accessor on sequences, expr instead of exprsingle in object constructor like in JSONiq
2013-02-26: allow to set request method in multipage template
2013-02-26: JSON arrays, and dynamic function call syntax parsing
2013-02-26: laz meta
2013-02-26: raise exception on unparsable json
2013-02-23: disable 302-on-large-file-ignoring workaround in synapse internet access
2013-02-23: fix w32internetaccess compiling
2013-02-11: access to raw page in multipage
2013-02-11: xquery: allow to register own native modules, allow objects in #0-x-strings
2013-02-11: changed dependancies (xidel imports json, json does not import utf-8)
2013-02-11: fix corner case in null terminated x-string
2013-02-11: fix wrong interpretation of " in x-string (multipage+xidel cmdline), by moving string parsing down to xquery parsing level
2013-02-10: disable start tag repairing in pxp:match
2013-02-10: renamed limitDate to dueDate
2013-02-10: allow custom header and content-type setting in multipage and http units
2013-02-10: added json parsing/serializing functions to xquery engine
2013-02-10: json like object creation syntax
2013-02-01: repair omitted start tags (those allowed in html5 8.1.2.4, html,head,body,colgroup,tbody not those of invalid documents), remove those tags if double nested
2013-01-31: fix parsing of html with missing endtags in the cases listed in html-5 omitted end tags
2013-01-25: remove # hash anchor reference from all requested urls
2013-01-25: fix read command broken by changed string behaviour
2013-01-25: x-strings in multipage templates
2013-01-25: MAJOR STRING SYNTAX CHANGE. Variables are no longer replaced in "-strings, and instead x"-strings like x"..{$foo}.." were added, which is simultanously more standard compatible and more flexible
2013-01-24: function to check if the template uses unnamed variables
2013-01-21: fix treat as to raise XPDY0050 on error instead of TY0004
2013-01-14: fix typo in utf-8 detection
2013-01-12: fix range check error in line normalization
2013-01-05: support for arbitrary http methods (e.g. PUT)
2012-12-24: disable certificate checking
2012-12-24: fix redirection to another server
2012-12-23: removed lcl dependency for bbdebugutils
2012-12-23: disable automatically wininet redirection following to catch cookies set during redirections
2012-12-23: added parse location: from http header function
2012-12-20: changed array delete to be ordered, fix a bug in arrayCompare (used offset instead the length)
2012-12-19: better parsing of <script>..</script> elements (do not stop at </[:alpha:], but at </starttag)
2012-12-19: fix copy/paste error in last commit
2012-12-19: added value to html serialization option (perhaps move this from XQuery to Xidel?)
2012-12-19: made html entity serialization more (html 5) standard compatible (i.e. do NOT escape ' and line breaks; and "/<> if it is in the wrong mode)
2012-12-19: added inner-html, outer-html functions
2012-12-18: some comments
2012-12-18: intercept defineVariable in html template processor to allow setting properties of objects defined in the old variable log (i.e. the object will be copied from the old log, the property will be set, and then the object will be written in the new log)
2012-12-18: tests
2012-12-18: allow accessing undefined object properties, in the variable read override by the template parser  (xquery alone always allowed that)
2012-12-18: fix double/triple(?) entity decoding in html template parser (caused by adding an auto decoding the entities to the lower level parser, without removing the old decoder from the higher level...)
2012-12-14: some comments
2012-12-05: context namespace extensions for attributes (i.e. prefix only matching)
2012-11-29: give access to the query engine of simpleinternet
2012-11-29: change form function to support values containing line breaks, change semantic to accept only single values in later elements of the sequence
2012-11-22: faster . operator and number literals by removing clone calls left from the old type system
2012-11-22: fix serious bug that text() always returned the text-override, when used outside of node step, without checking for the non-existence of a context item. (leading to wrong value of text() if used in this way in a template (or after a template with xidel) )
2012-11-20: fix some memory leaks that occured when an exception was raised, because the XQuery expressions was invalid
2012-11-19: raise exception on usage of an undefined variable (but not on the usage of an undefined property of an defined object variable, similar to javascript)
2012-11-19: raise exception if durations are passed to xx-from-datetime, even if strict type checking is disabled
2012-11-19: XQuery error codes on all currently raised exceptions
2012-11-08: removed another lcl dependency (actually there is an fpc dialogs unit, which is why it compiled at all)
2012-11-08: documentation for sxtpfdom
2012-11-08: fix memory leak when using the wrapper function around the fpc dom
2012-11-06: test that outside variables are visible in match calls
2012-11-06: fix crash when pxp:match was called in a xquery expression that declared functions
2012-11-06: store prototype in IXQValue to keep reference count of prototype > 0 and avoid crash in objects returned by match
2012-11-06: pseudo encoding for user defined things
2012-11-05: fix warnings
2012-11-05: documentation
2012-11-05: fix warnings
2012-11-05: fix overloads (thanks Teunis)
2012-11-05: order test
2012-11-05: exceptions
2012-11-05: implemented circular module import
2012-11-05: don't allow function declaration in reserved namespaces
2012-11-05: actually enable strict type checking for bin ops, removed unary ops, remove empty sequences for comparisons with empty sequence
2012-11-05: get-property function for standard compatible objects
2012-11-05: renamed ttreeelement to ttreenode
2012-11-05: documentation
2012-11-05: renamed evalcontext
2012-11-05: fix that t/template namespaces were not declared in template queries, changed match()-function to parse the template lax (<a>{.}</a>* is so nice), some documentation
2012-11-05: make variables/functions declared in one part of the template visible to all other parts
2012-11-04: add option to override static context of newly created expressions
2012-11-04: access to pattern-matching from xquery
2012-11-04: implemented <a attrib="{..}"/>
2012-11-04: implemented <match>{$tovar}</match>
2012-11-04: give access to term through query interface
2012-11-04: implemented {1} repetition count
2012-11-04: remove template:meta encoding attribute. (since the tree parser now converts everything to utf-8, the file encoding at higher level is useless)
2012-11-04: print better errors
2012-11-04: changed doc path resolving to work better with relative paths
2012-11-04: fix another explicit freeing crash
2012-11-03: fix ttreeelement.toString which used a deprecated attribute system
2012-11-03: add missing namespaces for implicit template namespaces
2012-11-03: fix multipage template
2012-11-03: XQuery in Xidel
2012-11-02: options documentation
2012-11-02: prefix-based namespace matching extension
2012-11-02: fix bom removal
2012-11-02: fix access violation on normalize-unicode(.., ""), caused by memory leak fix
2012-11-02: read bom in xml/html files
2012-11-02: utf32 and bom detection
2012-11-01: utf 16 conversion functions (without lcl dependancies)
2012-11-01: documentation
2012-11-01: fix baseuri in form()
2012-11-01: http request function accepting objects
2012-11-01: same
2012-11-01: import fp dom
2012-11-01: don't use TCharacter from utf8tools to avoid memory leak
2012-11-01: log total count
2012-11-01: tests for utf-8
2012-11-01: utf 8 aware functions, depending on utf8tools
2012-10-31: strict type checking
2012-10-31: read namespace attributes in direct element constructor during in parsing instead during evaluation phase (fix usage of namespaces declared there for functions/typeconstructors)
2012-10-31: native modules (making everything much slower :( )
2012-10-30: fix validate { } parsing (even if the evaluation fails)
2012-10-30: some xquery with object tests
2012-10-29: renamed pxp => xquery in docu
2012-10-29: removed overload from strcopyfrom
2012-10-27: use inttostr for floats/double without fractions to avoid stupid fpc floating printing bugs
2012-10-27: fix that deep-equal always returned false for an node with children and a node without children, even if all children were ignored
2012-10-27: removed LCL dependancy
2012-10-27: fix a wrong idiv result caused by one of the previous fixed
2012-10-27: fix that namespace.uri-for-prefix returns anyURI and "" instead of () for undeclared ns
2012-10-27: code cleaning
2012-10-27: support relative collation urls
2012-10-27: better leading lone slash detection
2012-10-27: cast untypedAtomic to double before all numeric operations, check result range in numeric divide
2012-10-27: fix that whitespace in pi test was not normalized
2012-10-27: fix that min/max/sum/avg cast its argument object to double (changing the variable without making a copy)
2012-10-27: fix QName => string conversion for QNames that have a namespace url but no namespace prefix
2012-10-27: fix namespace-uri for attribute nodes
2012-10-27: also change the position() value during node steps, not only sequence filters
2012-10-27: normalize whitespace in xml:id
2012-10-27: better line ending -> #10 normalization, automatically convert entities directly when a file is parsed, do not wait for setEncoding call (actually call setEncoding with a given default encoding)
2012-10-27: better/faster line ending normalization
2012-10-27: escape all xml special when printing it
2012-10-27: preserve whitespace around cdata
2012-10-27: fix line ending normalization to #10
2012-10-27: optimization for element content parsing
2012-10-27: fix space insertion between atomic values in element content sequence (ignored empty strings)
2012-10-27: eol normalization in attribute content
2012-10-27: fix that xs:QName (xqdnkAny) didn't pick up the default element namespace
2012-10-27: fix that avg/min/sum/max called with a single element returned it unchanged instead of atomized#
2012-10-27: fix type of comment content
2012-10-27: fix inherited attributes of newly constructed element (actually just removed optimization)
2012-10-27: better fix for overriding the default namespace by an empty url (do not add an implicit xmlns="" but check that the url is empty when printing element without ns), always use url from qname even if it is empty
2012-10-27: fix stupid bug that elements without content overrides their siblings namespaces
2012-10-27: fix some complicated namespace overriding issues (an unprefixed copied child element without ns overrides ns of an unprefixed element with a xmlns="..") and some namespace printing bugs that canceled each other out (Only print namespace undeclarations if the prefix is used and actually undeclared.)
2012-10-26: fix leading pi content whitespace
2012-10-26: fix constructede text/comment/pi nodes  with leading/trailing whitespace
2012-10-26: correctly collapse whitespace
2012-10-26: fix document-uri for constructed nodes
2012-10-26: fix base-uri for constructed elements
2012-10-26: fixing cloning of pi nodes
2012-10-25: when something in xml namespace is created without prefix, use xml
2012-10-25: fix that matched were always returned in document order (also on reverse axis), if the node matching test was standalone (i.e. not part of a node step)
2012-10-25: fix same node for text/comment/pi nodes, fix parent for constructed text nodes
2012-10-25: fix incorrectly set preceding axes for constructed elements
2012-10-25: fix invalid ordering of constructed elements (only siblings were ordered)
2012-10-25: allow whitespaces between $ and variable names
2012-10-25: fix parsing of element(x,y) in path expressions
2012-10-25: removed the explicit xs:anyType, since it always existed already
2012-10-25: fix invalid parent of children of document node in an constructed element
2012-10-25: fix that the parent namespace were inherited with no-inherit when it was given in the static context
2012-10-25: implemented copy-namespaces no-inherit. fix namespace copying in non root elements
2012-10-25: corrected namespace behaviour: serialize namespaces correctly, take parents namespaces, implemented preserve/no-preserve copy-namespaces
2012-10-25: fix function arguments with namespace prefix
2012-10-25: detect xquery in simpleinternet
2012-10-25: enumerator for object properties
2012-10-24: fix index error when deleting temporary namespaces in constructed elements
2012-10-24: fixed for nodes and sequences
2012-10-24: function type checking and type promotion
2012-10-24: fix schema import parsing, so a default schema does not affect the default functions ns and a non-default schema import without prefix is possible
2012-10-24: handle namespaces in css selectors
2012-10-24: code cleaning
2012-10-24: renamed functions to be shorter, simpler. removed getVariableValueAs.. functions
2012-10-24: callback for import
2012-10-24: implemented external variables in xqts
2012-10-24: fix tree deep-equal to be correct(er?) and don't crash when comparing constructed elements
2012-10-24: fix access violation when creating certain nodes
2012-10-23: added xs:untyped, hack to set all element nodes to it
2012-10-23: implemented most of the options for attribute/element/document(...) tests
2012-10-23: replaced procedure(..., var result: IXQValue) format by function(...):IXQValue for native functions
2012-10-23: replaced TNamespace by INamespace. Should simplify things later on
2012-10-23: experimented to optimize flowers, changes reverted because they fail in a sitation like let $x := $x + 1
2012-10-23: handle qnames as name for newly constructed nodes
2012-10-22: more standard compatible namespace handling. Always add all namespace nodes as attributes, but never return a namespace node as attribute
2012-10-22: create new namespace attributes when serializing xml
2012-10-22: fix document node memory leak
2012-10-22: made tests document order independent
2012-10-22: fix except/intersect for nodes in different documents
2012-10-22: handle single quote xquery version '1.0'
2012-10-22: correctly handle some|every $a as something
2012-10-22: fix fn:root(())
2012-10-22: correct node name for PI nodes
2012-10-22: add tetDocument to possible node types
2012-10-22: fix fn:lang for non document nodes without parent
2012-10-22: fix parsing of (# .. #) (# .. #)
2012-10-22: faster to-operator and subsequence function; fix return value with singleton and invalid index
2012-10-22: brought back the cached values
2012-10-22: store attributes in normal list
2012-10-21: fix parsing of computed constructors, i.e. read {expr} instead of {exprsingle}
2012-10-21: fix parsing bug when declare command followed xquery version "1.0";
2012-10-21: let xs:Qname lookup existing ns prefixes
2012-10-21: changed node-name to return a QName
2012-10-21: removed the new node comparison function (supporting inter-document comparisons) and replaced the old one (that i forgot it existed) with it
2012-10-21: make root element depending on context item, instead an global property
2012-10-21: added kind tests: attribute+document-node
2012-10-21: fix access violations on nodes that have no parent/document
2012-10-21: optimization: detect probably constant expressions in a filter term and do not reevaluate
2012-10-20: namespace and objects tests
2012-10-20: whitelist elements instead blacklisting functions (so attribute are in the correct ns as well)
2012-10-19: ignore unnamed, non-default namespaces for functions
2012-10-19: fix deletion of dynamically created namespaces, renamed  tnamespacelist.clear to tnamespacelist.clearNoFree and tnamespacelist.freeAll => tnamespacelist.clear
2012-10-19: better debug output
2012-10-19: annotated namespace lookup with type/function/unknown, so ambigious namespace (i.e. "") are looked up correctly
2012-10-19: fix possible refcounting bug
2012-10-18: debug things
2012-10-18: fix missign brackets
2012-10-18: external functions
2012-10-18: external variables
2012-10-18: namespaces for functions
2012-10-18: namespaces for types
2012-10-18: test for static greatest/least order definition, renamed prefix from xqfo to xqeo
2012-10-18: pxp as default namespace for my extensions, option to en/disable extended strings
2012-10-18: collations only in static context, code cleaning
2012-10-18: docu, raise error on unknown default function namespace
2012-10-17: optimization: hold namespace instead prefix string
2012-10-17: modules and namespaces for variables and functions
2012-10-16: removed function "." since the new parser can work without that
2012-10-16: tests
2012-10-16: default namespaces
2012-10-16: code cleaning
2012-10-16: namespace crap for xml/html parsing and elements
2012-10-16: Basic Module variable and function support. Parse module definitions, store them in a StaticContext. Moved StaticBaseURI in that context.  DISALLOW variables ending with colon like $foobar;
2012-10-15: parse extension expression (ignored for now)
2012-10-15: parse (un)ordered {..} and validate (strict|lax){..} but do not evaluate them
2012-10-15: allow sequences  in if expressions like 'if (a,b,c) then', why ever you would want to have that
2012-10-14: use the same functions element tests in paths and typeswitch/instance of. Allow node name tests in latter. fix that a behaved like *:a
2012-10-14: implemented typeswitch statement
2012-10-14: some tests for nodes that look like constructors
2012-10-13: strip boundary space option
2012-10-13: store pointer to document in nodes and use document comparison when merging sequences, separate storage for internal (constructed) and external tress
2012-10-13: implemented computed constructors
2012-10-13: change distinct-values to return atomized values
2012-10-13: implemented direct constructors
2012-10-12: found a section type information in the standard and updated them
2012-10-12: parses xquery string (wth do they support entities??)
2012-10-12: changed int casting to round down
2012-10-12: effective boolean value semantics, "false" becomes true how stupid that sounds
2012-10-12: change to decimal casting rules to support the stupid "123e1" is not a number rule
2012-10-12: return () for fn:nilled on document nodes
2012-10-12: changed << >> to follow the spec more closely for nodes in different documents
2012-10-12: implemented deep-equal for nodes (amazing fact: even without that, it got a 100% score in the xqts deep-equal case. crap test)
2012-10-12: fix index-of/distinct-values for nodes
2012-10-12: fix comparison type check for derived types that have child types and their parent in the scheme hierarchy is  different from their parent in the implementation hierarchy (i.e. for durations and user defined types derived from leaf types )
2012-10-12: refactored instanceOf handling. Store explicitly the parent type class. Changed function with ambigious type signature (i.e. deep-equal, index-of, distinct-values) to follow the standard type handling verbatim.
2012-10-12: some more tests
2012-10-12: follow the standard types more closely when comparing decimal values
2012-10-12: some tests, documentation, renamed toSequence to toXQVList
2012-10-11: safey assignment (removes at least a warning)
2012-10-11: rewrote everything using an interface for TXQValue instead a class. added enumerator to interface.
2012-10-11: renamed as/toInteger to as/toInt64
2012-10-11: node collation to control the node name comparisons. Tracked everywhere to switch between case in/sensitive
2012-10-11: option to disable objects
2012-10-11: add variable storage to xquery class
2012-10-11: renamed exception to start with E
2012-10-11: fix getRoot for attribute nodes
2012-10-11: test to normalize #13 -> #10, didn't do what i expected
2012-10-10: fix test time to time used in XQTS
2012-10-10: add implicit timezone to currentDate()
2012-10-10: do not convert int65<->extended in round*/floor/ceiling, print extendeds without fractional part in the int64 as integers
2012-10-09: theoretically faster strlsequal (but it isn't faster, has exactly the same speed)
2012-10-08: more tests (from standard)
2012-10-08: fix range check error when sorting with empty list
2012-10-08: refactored sequence type (stored in txqtermsequenceterm as parsed value instead simple string) sequence type in flower
2012-10-08: flowers
2012-10-08: some docu
2012-10-08: forgotten file with unittests
2012-10-08: support for attribute::attribute(...)
2012-10-07: more renaming
2012-10-07: basic namespace support (full namespace support for prefixes, ignoring associated urls)
2012-10-07: fix int div, to for large numbers
2012-10-07: fix int65 comparison for negative integers, fix inttostr for negative 0
2012-10-07: more renaming, pseudoxpath => xquery, everywhere
2012-10-07: more renaming, pseudoxpath => xquery, everywhere
2012-10-07: major renaming: TPseudoXPathParser => TXQueryEngine, .parse => .parseXPath2, returns interface containing query
2012-10-07: asserts in test project
2012-10-07: trivial optimization for xxx[number]
2012-10-07: removed static type guess (was supposed to be used as complex optimization (e.g. in [2+3] to detect static number and always use that, no need to reevaluate the condition with different nodes))
2012-10-07: code cleaning
2012-10-07: removed TXQTermNodeRoot
2012-10-07: remove TXQTermNodeMatcherFunction, moved to TXQTermNodeMatcher
2012-10-07: remove commented source
2012-10-07: time tests
2012-10-07: move path compression into term classes, fix compressed path bug that filter expressions at the first step were not evaluated, do not allow mixed node / atomic values in the last step
2012-10-07: moved path parsing to term classes
2012-10-06: moved term classes into own inc file
2012-10-06: laz meta
2012-10-06: fix parsing of /]
2012-10-06: rewrote xpath parsing: store AST as different classes instead records, each class evaluates itself, much clearer parsing
2012-10-05: fix attribute memory leak
2012-10-05: include files in test project, isntead of using packages, so they are compiled with range/overflow checking
2012-10-05: add forgotten int 65 files
2012-10-05: do all integer math with 65 bit integers
2012-10-05: let fn:root return the document node, do not print <>..</> when converting document node to string
2012-10-05: checks
2012-10-05: better handling of processing instructions: low level parser: still split into attributes, mid level: pchars to extract the verbatim content of (undoing the parsing), add verbatim and parsed properties to the tree, xpath: ignore pi attributes
2012-10-05: fix attribute axis matching, tests, new test structure
2012-10-05: store attributes like normal nodes, so they form an axis for xpath
2012-10-03: accept */* anything as http result
2012-10-03: fix yyyymmdd date formatting
2012-10-03: move bbutils tests in test project
2012-09-29: docu todos
2012-09-28: removed all formatdatetime/datetostr calls since they cause valgrind errors (false positives they say...)
2012-09-26: update unit tests
2012-09-26: fix encoding detection using <?xml encoding="..">
2012-09-26: removed some const strings
2012-09-25: check for nil pointer in hasAttribute
2012-09-25: renamed TTemplateReader => TMultipageTemplateReader, TTemplateReader.performAction => TMultipageTemplateReader.callAction
2012-09-25: documentation of multi page templates
2012-09-25: fix documentation for pxp/tree parser
2012-09-25: actually implement post params as documented
2012-09-24: accept objects as urls in multipage templates. if url is $var; and var is an object, it uses $var.url; as url and $var.post; as post data (which is the format form() returns)
2012-09-24: other fix for retarded fpc const string passing
2012-09-23: remove const string parameters since they are "dangerous"
2012-09-22: removed multi page template processing from VideLibri, share the new multi page template unit with Xidel ; update templates ; remove special treating of earmarked/maxlimit in contrast to other non extendable states
2012-09-22: handle templates containing multiple actions in xidel
2012-09-22: read Content-Type header and pass to html parser to get encoding
2012-09-22: also pass headers on Windows
2012-09-22: made cookies protected
2012-09-22: give access to last http headers through internet access
2012-09-22: removed special case to handle the old, not working http streaming by the hbz, since that digibib no longer exist
2012-09-22: set progressEvent as property instead as a parameter to the transfer functions
2012-09-22: change multipage template to treat url relative to previous page
2012-09-22: don't resolve relative to an empty url
2012-09-22: moved resolveURI/isAbsoluteURI to bbutils (avoiding most dependencies), added str* prefixes, since that is the naming convention in bbutils
2012-09-22: added form() xpath function to evaluate a html form
2012-09-21: move unittests in own files
2012-09-17: allow childs for auto closed tags like <input> + tests
2012-09-17: unittest for variables containing :
2012-09-05: correct path
2012-09-05: fix timezone rounding on win32 (?why does it even rounds different there???)
2012-09-05: copyright
2012-08-21: fix memory leaks
2012-08-21: add pxp variables
2012-08-21: fix loop double free
2012-08-21: rewrote multipages template with a stupid class system
2012-08-21: docu
2012-08-20: handle cdata
2012-08-20: moved resolveURI to internetaccess
2012-08-17: moved guessType from simpleinterne to internetaccess
2012-08-17: invalid utf 8 detection at tree parser level (annoying google, why don't you have a http-equiv tag and change the encoding depending on the user agent??)
2012-08-16: fix some entity encoding issues in templates
2012-08-16: allow repeated pages and xpath test to check if page should be loaded
2012-08-16: public access to template pxp parsers
2012-08-16: support for single file templates, little changes
2012-08-16: private => protected
2012-08-16: forked multipagetemplate from VideLibri to base library
2012-08-16: split retrieve in to guessType and actual retrieve
2012-08-16: allow file:// filenames in strLoadFromFile
2012-08-16: add line breaks to  tree debug print
2012-08-12: allow partial class matches in backend (i.e. list-contains matching for class attributes, todo: other matching kinds)
2012-08-05: xml export, some escaping fixes
2012-08-04: export template parser
2012-08-04: read trailing text
2012-08-04: ascii image in docu
2012-08-02: function to set proxy (needs advanced records and new fpc. good idea?)
2012-08-02: public function to create internet object
2012-08-01: made all private fields protected
2012-07-21: missing comment
2012-07-20: html templates new command: switch-prioritized
2012-07-19: a comment (i forgot how switching works :( )
2012-07-19: fix range check error
2012-07-19: fix powers of 10
2012-07-04: inner-xml function, default property for attributes
2012-06-30: log break at real line ending
2012-06-30: use correct line endining for match error message
2012-06-30: fix str wrapping for strings already containing line breaks (not really tested)
2012-06-01: remove debug writeln
2012-06-01: optimizations in correct file
2012-06-01: faster phi
2012-06-01: use cardinals
2012-06-01: faster phi sieve
2012-05-30: theoretical memory leak prevention
2012-05-30: thread safe simple layer
2012-05-29: optimization
2012-05-26: fix url decoding oftrivial urls like http://host
2012-05-26: fix simpleinternet for new API
2012-05-26: use fpc wininet unit, better error handling
2012-05-25: check if /etc/resolv.conf has been changed
2012-05-25: check for empty page
2012-05-06: packages, missing inc files, document where to get dependencies
2012-05-05: fix no progress conditional compile
2012-05-05: disable unittests
2012-05-03: change COMPLEX FUNCTION INTERFACE: sender is now part of context | begin to changed date comparison. Insert reference date to all date parts that are not expecting in BOTH formats
2012-05-03: changed millisecond printing. Handle overflow correctly (i.e. output with 2digit ms precision, and date -0001-12-31 23:59:59.999 overflows to 0001-01-01 00:00:00.00)
2012-05-03: docu
2012-05-02: preserve case when setting property
2012-05-02: wrap long log lines
2012-05-02: fix evaluatevariable for objects
2012-05-01: set result to := '' before calling setlength because otherwise that strange fpc writes 0 bytes to random location (e.g. pointer(result) = p, in strfrompchar)
2012-05-01: allow to disable object in templates
2012-05-01: option to disable very short notation
2012-05-01: fix warnings
2012-05-01: log condensing
2012-04-30: comment
2012-04-30: minor optimizations
2012-04-28: external doc download
2012-04-27: don't use getLasttree for html in template parser
2012-04-27: use ttreeparser as tree factory instead as tree itself
2012-04-27: fn:root, fn:lang, fix parentelement = context item
2012-04-27: include previous/parent/document pointers in the tree
2012-04-26: fix range check/casting errors
2012-04-26: remove ? from last attribute in <??> nodes (better take the value verbatim?)
2012-04-26: qnames
2012-04-25: fix duration bugs: read months with 3 or 4 digits, normalize months to 0..11 instead of 1..12
2012-04-25: fix negative years for y+ formats
2012-04-25: change my inttostr: min length sets digits, not characters (for negative numbers)
2012-04-25: date arithmetic
2012-04-24: duration things (in/out/multiplication)
2012-04-24: unittests, regen
2012-04-23: own function to convert int->str, datetime->str, tdatetime->decoded datetime, decoded datetime -> tdatetime, because the fpc things doesn't really work as usual
2012-04-23: refactored date handling, don't use fpc tdatetime
2012-04-23: hexBinary/base64Binary
2012-04-22: sub date range crap
2012-04-22: parse time
2012-04-22: parse timezone in date
2012-04-21: support () and [] in pastemplates
2012-04-21: fix warnings
2012-04-21: don't detect html encoding in parser gui example (it always utf-8 from lcl and makes debugging awful)
2012-04-21: disable bbutils unittests
2012-04-20: don't process no file
2012-04-20: new pascal template command ( {%COMPARE a <>/= b} .. {%END-COMPARE}, not called if, since it only supports a single comparison), allow nested repeats/compares
2012-04-18: more flexible pxp type system
2012-04-18: read pi tags with pxp, fix some pi tag bugs
2012-04-18: include processing instructions in tree, and use ?xml to detect encoding
2012-04-18: do not read text at root level in strict mode (whitespace => ignore, text => exception)
2012-04-18: array get utilities
2012-04-18: changed default trimming
2012-04-17: add option to control white space trimming
2012-04-16: allow to use t:test at all nodes in the template (i.e. at html matchers)
2012-04-16: added else blocks: an else block is ignored, if the previous if or else block has been used.
2012-04-16: fix possible matching bug? (old source didn't make sense; new&old pass unittests)
2012-04-16: renamed loopRepetitions => contentRepetitions
2012-04-14: fix template encoding conversion
2012-04-14: removed debug things
2012-04-14: print partial matches
2012-04-14: array add, strdup
2012-04-13: custom string wrap function because the rtl version is crap
2012-04-13: anonymouse variables
2012-04-13: added static-base-uri() function
2012-04-13: search by id function
2012-04-13: string functions needed for the collation implementation (and fix the stupid range check error in the unicode coding function for the third time)
2012-04-12: fix memory leak
2012-04-11: Converted TPXPValue from a record to classes.
2012-04-10: ?+* short notation
2012-04-10: allow surrounding of closing tags (=>surround open+close)
2012-04-10: loops with fixed length
2012-04-10: very short template syntax (* for loop, {...} becomes short read, only valid at the beginning of a text node)
2012-04-10: getPrevious/insert functions in tree
2012-04-10: cache pxp expressions/regex; match-text node command; add default-text-matching and default-text-case-sensitive attributes to meta tag
2012-04-10: function to escape regexs, include and $3 range-check fix in template
2012-04-09: remove more casting
2012-04-09: force ssl3 in sourceforgeresponder
2012-04-09: remove more casting
2012-04-09: revert previous match<->html commit (match!=html, so we will keep both); started to replace casts by inline functions, because fpc2.6 finally seems to finally support inlining in a not retarded way
2012-04-09: add superfluous "and 3" in utf8=>latin1 conversion to fix fpc 2.6 range check error
2012-04-08: rename htmlXXX => matchXXX, docu
2012-01-28: skip short read commands children when showing a "template-couldn't matched error"
2011-10-13: fix typo
2011-10-04: docu
2011-10-04: docu
2011-10-04: fix lowercase doctype
2011-10-04: access to internal parsed tree
2011-10-04: and described
2011-10-04: simple internet added
2011-09-21: unittests only for debug version
2011-08-12: don't escape umlauts in get request anymore (because the new digibib doesn't understand it)
2011-07-25: htmlparser: fix cgi, meta info
2011-07-10: docu
2011-07-10: fix variables bug
2011-07-10: docu
2011-07-10: sync bbutils template (and rename function)
2011-07-09: use double changelogs in replaceVars
2011-07-09: new solution to keep old variables
2011-07-09: test
2011-07-09: trim variable in t:read
2011-07-09: fix memory leak
2011-07-09: full power of pxp in short tags
2011-07-09: docu
2011-07-09: fix obvious, undetected memory leak
2011-07-09: convert templates to new syntax
2011-07-09: restore no match error message
2011-07-09: fix cloning of sequence, error detection of invalid bin op
2011-07-08: add final variables property again, fix auto conversion of template command attributs
2011-07-08: fix memory leak, switch without child
2011-07-08: tests, fix switch without child match
2011-07-08: keep raw variables
2011-07-08: switch statement
2011-07-08: short syntax
2011-07-08: general test attribute
2011-07-08: basic namespace support, BREAKING CHANGE: the htmlparser: prefix has been replaced by template: and t:
2011-07-08: docu
2011-07-08: interface convenience functions
2011-07-04: tests
2011-07-04: test, ignore <?..?>-tags when creating tree
2011-07-03: return full node seqs by text(),node();  node seq operators
2011-06-26: let it run with range/overflow checking
2011-06-26: string<->codepoints
2011-06-23: BREAKING CHANGE: switched meaning of " and '' (so that now ' means literal string and " string with variables evaluated)
2011-06-23: fix normalize-space, tests..
2011-06-23: more tests, fix context item
2011-06-21: BREAKING CHANGE: renamed deepNodeText to deep-text
2011-06-21: complete set of comparison operators
2011-06-21: BREAKING CHANGE: disallow ==
2011-06-21: new pxp functions
2011-06-20: fix compiler warning
2011-06-17: Added type infos to all pxp values. Breaking changes:
2011-05-01: html parser white space unittests
2011-04-23: VL/HTML: When reading html try to fix broken tables (<tr><td>this<td>complete<td>crap<td>...)
2011-04-23: VL: allow all whitespace directly after <opentagX instead of space only
2011-03-02: divisor sieve
2011-02-27: internet access: transfer events and urlencode stringlsit
2011-02-21: url escape umlauts
2011-02-21: retrim after nbsp; rep
2011-02-21: replace &nbsp; by ' ' instead of #A0
2011-02-21: use http1.1 (necessary for stb due, check if it works everywhere)
2011-02-21: url encode ' ' as '+'
2011-02-17: array compare/equal, constant functions take open arrays
2011-02-16: arrayindexof
2011-02-16: more string handling function, specified what happens with #0, documentatino
2011-02-16: template based bbutils
2011-02-15: bbutils: modPow, strJoin, changed file to be ascii only to fix encoding locally broken by different editors
2011-02-01: Rewrote the low level XPath path matching and tree finding routines to fix the bug that /*/ was treated identical as //*. (Unittests say it has no effect on previously correct working XPath)
2011-01-31: pxp from root if anyone need this
2011-01-26: mime detection in sf responder and more str functions
2011-01-06: VL: unittests
2011-01-06: more flexible date time parsing
2011-01-02: internettools: urlencode as class function
2010-12-29: internet tools: docu, actually use new variables in pxp called from template parser
2010-12-29: adaptations to simple parser function definition change
2010-12-29: fix a low-level html parse bug which read the wrong text() after an element like <input checked>
2010-12-29: template parser: doc/unittest
2010-12-29: pxp: distinguish between empty strings and non-existing values
2010-12-28: template parser: switch construct
2010-12-28: pxpath command to read comments
2010-12-26: html parser: option to parse comments
2010-12-25: template parser use new variable evaluation event
2010-12-25: changed simple parser result type
2010-12-11: Modified simple html parser to read <script> as cdata (so ignore <!-- -->)
2010-10-22: template parser: unit test for current behaviour of optional in loops
2010-10-15: html parser: added warning comment for optional attribute
2010-09-24: fix stupid bug that prevents compiling under windows (which i already had fixed ages ago but forgot to merge from the windows computer)
2010-09-24: synapse-wrapper: auto follow redirection, pass referer, and accept header
2010-09-19: bbutils: removed lclproc dependency (own utf8 length and unicode->utf8 conversion), comments, added functions: smallest, exists unequal, log, factor, coprime, phi
2010-09-05: bbutils: fix stupid bugs in html entity character codes parsing, loop variable will be incremented and A mean 10 instead of 0
2010-09-04: tree parser: fix bug that the root element was not closed if the html tag was not closed
2010-09-04: bbutils: new unittest, entity encoding defaults to non strict
2010-09-04: internettools/videlibri updated to renamed bbutils
2010-09-04: actually working bbutils generation
2010-09-04: internet tools: output encoding as published property
2010-09-04: bbutils: partly auto generated
2010-08-29: internet tools: some more comments, examples and andreys regexpr engine in zip package
2010-08-29: template parser: clear change log before parsing new page
2010-08-28: html templates: allow to set variables before parsing
2010-08-28: template parser: better error handling, real case insensitive
2010-08-27: internet parser: unittests, bug fix for parent node text reading
2010-08-27: bbutils: some string->pchar conversion improved; template parser: double loop fixed, unittests simplified; pseudoxpath: more unit tests, everything case insensitive; tree: getParent
2010-08-25: bbutils: crappy message system removed, non strict entity conversion added
2010-08-25: html template parser: if and loop rewritten (dfa is really much simpler to implement than the old nfa, but of course the runtime pays for it)
2010-08-25: html template parser: tag/text matching, and read command rewritten based on tree
2010-08-25: internet tools: pxpath: unittests, comments
2010-08-25: internet tools: pxpath: unittests, free memory asap not only in destructor, virtual root element in tree parser
2010-08-25: pxpath: bug fix for matching nodes in query with xpath conditions, attribute reading of elements without attributes
2010-08-24: split old template html parser in template matcher (not ) and pseudo xpath parser (with additional features, like support for a/b/c), bbutils functions renamed
2010-08-20: wrote a Html tree parser (because dom is crap)
2010-08-13: import of old bwinf (24, 25, 28), other contests
2010-04-10: SIRD game: black/white holes, movement editing
2010-03-01: fpc2.4 compatibility (scope, casting)
2010-02-15: Windows Internet fix: arbitrary port in host allowed (fix that the port is passed to the wininet library which doesn't understand it and process it direct), fix cookie: will read them, even if the value is not semicolon ended
2010-02-14: VideLibri: Version 0.997 mit Aachen BTH und STB (und digibib suche für ersteres)
2010-02-06: components/htmlparser: the htmlparser:meta tag will also work if it is closed, unittests, documentation
2010-02-06: components/internettools: support for complete logging
2010-02-06: components/htmlparser: syntax extension: filter(text, regex [, submatch) to allow regex matching within the pseudo XPath commands instead of afterwards like before, added a htmlparser-condition attribute which can be used to define conditions which a parsed element must meet in pseudo-Xpath syntax, separated pxpath parsing in syntax tree creation and separate evaluation afterwards (slower, needs more memory, more flexible, could be cached)
2010-01-16: internet tools: allow http connections over the 8080 port
2010-01-06: bbutils/extendedhtmlparser: disabled unit tests
2010-01-05: bbutils: typo in variable name
2009-12-31: components:documentation/manage.sh of internet package (=htmlparser + autoupdate + internet access)
2009-12-30: components/autoupdate+wininet: added windows example to example changelog and on the server, changed w32internetaccess to override constructor (or it will crash)
2009-12-30: components/progressDialog: made really platform independent
2009-12-30: components/autoupdate: restructured, requires new xml tags in download descriptions, docu changed, arbitrary command line execution, platform detection, example
2009-12-29: Videlibri: more linux compatibility (disabled threads => timers), code cleaning
2009-12-26: bbdebugtools: change path to /tmp
2009-12-25: components/programs:linux compatibility: sendbackerror uses default internet access , delphi regexpr removed windows unit, auto updated rmeoved winexec, bbdebugutils uses /tmp, Videlibri: uses application.messagebox, VideLibri: fix small bug in my history
2009-12-25: components: internet access can choose between wininet and synapse
2009-12-25: components/extendedhtmlparser+TreeListView: fixed an encoding conversion bug, changed treeviewitem tag to an data record for arbitrary types (especially helpful on 64 bit)
2009-12-25: components/bbutils: changed encoding from invalid used ansitoutf8 to my own utf-8 converter, fix stable sort to work on 64 bit, unittests
2009-11-18: component update: treelistview (docu, bug fix), bbutils (e.g sort), extend html parser (useful debug/error messages)
2009-03-13: removed SVN keywords from components\data (they aren't supported from Mercurial)
2008-11-27: components: modified tlv, htmlparser, added translator
2008-10-10: components: small changes
2008-09-28: components: treelistview, regex, ...
2008-09-03: components: mainly TreeListView bug fix
2008-08-30: components: TreeListView improved, custom controls added, colordialog added
2008-08-25: components/data: bbutils, treelistview, searchbar: update, pasdoc
2008-08-05: components: htmlparser, TreeListView
2008-07-21: components: update (videlibri used)
2008-07-05: components: TreeListView, internet, others updated
2008-05-21: components/pascal: update bbutils, treelistview
2008-04-26: componenents/pascal: improved bbutils, TreeListView and new graph unit
2008-04-24: components/lazarus/progressdialog,printer: added
2008-04-16: components/pascal: graph example
2008-03-15: pascal/data/bbutils.pas: split?
2008-03-02: 
2008-02-28: 
2008-02-26: first partly import
