Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
Added CharacterSet as a class to represent character sets,
allowing us to build singletons and composite character sets
more concisely.
|
|
* Extract IsCharacterInSet to its own module.
* Extract PercentEncodedCharacterDecoder to its own module.
|
|
Remove state 3 hole in host/port parsing state machine
|
|
Extract percent-encoded character decoding, so that
the logic is all in one class that is reused.
|
|
|
|
|
|
|
|
Path may also have colon, so make sure we don't scan
into the path element if there is one.
|
|
* Detect bad characters in host names.
* Incorporate splitting host and port into the state
machine that is parsing/decoding the host.
NOTE:
IPv6address is not checked for bad characters yet.
More research is needed to learn exactly what are
the various ways to write an IPv6 address.
|
|
A colon may be in the authority, if present, so limit
the search for scheme delimiter so we aren't scanning
the authority part, when parsing the scheme.
|
|
|
|
Extracted IsCharacterInSet function
|
|
|
|
Extract method ParseAuthority
|
|
Extract method that parses the path segments from
the whole path string.
|
|
* Extract function that parses 16-bit unsigned integers,
to use in parsing port element.
* Clean up and clarify what parts of the original URI
string are still being held onto at various points
in the code.
|
|
|
|
* Add IsRelativeReference.
* Add IsRelativePath.
* Add Query.
* Add Fragment.
* Add UserInfo.
* Fix parsing of URIs that have no scheme.
|
|
|
|
* Parts of a path are called "segments", not "steps",
in the RFC.
* The RFC specifies that path separators are always
forward slashes, so don't support other separators.
|
|
* Can now parse URIs from strings.
* This supports scheme, host, and path.
* Path separator defaults to "/" but may be customized.
|
|
|