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_*