privately registered suffixes (github.io,
blogspot.com, s3.amazonaws.com, …) are now
part of the public suffix list lookup (#65).
public_suffix() and ada_get_domain() gained an
icann_only argument, defaulting to FALSE; pass
icann_only = TRUE for the previous behaviour.
public_suffix("foo.github.io") # "github.io" (was "io")
ada_get_domain("https://foo.github.io/p") # "foo.github.io"
ada_get_domain("https://foo.github.io/p", icann_only = TRUE) # "github.io"public_suffix() now honours the exception
(!) rules of the public suffix list, which were previously
stored with their ! prefix and could never match.
public_suffix("city.kobe.jp") is now "kobe.jp"
rather than "city.kobe.jp", and
ada_get_domain() returns a domain instead of
"" for hosts under those rulesada_get_domain() no longer strips a leading
www. before looking up the suffix; the result is unchanged
for ordinary hosts but www.ck and similar no longer come
back as NAurl_decode2() dropping the remainder of a string
after a % that is not followed by two hex digits (the
escape is now passed through verbatim)public_suffix() erroring on two or more bare
hostnames matching a wildcard rule,
e.g. public_suffix(c("a.b.ck", "c.d.ck"))public_suffix() now accepts full URLs with a path
(#54), and returns the same suffix for a URL and its hostnameada_get_domain() now accepts a bare domain, so it is
idempotent (#36); schemeless input with a path is still
NAada_get_basename() gained the decode
argument the other getters have, and no longer appends //
for schemes without an authority componentNAada_clear_*() functions #57ada_set_*() functions #15 h/t @chainsawriot for the
c++ templateada_get_basename() #56url_decode2 as a fast alternative to
utils::URLdecodeada_get_* and
ada_has_* #26 and #30 h/t Chung-hong Chan (@chainsawriot)ada_get_domain() #43ada_url_parserada_get_*