From c21436cb353f8194db647bde2a5ef434eb3dcb2a Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Sun, 25 Jun 2023 23:58:12 +0900 Subject: [ruby/uri] Fix host part in relative referece #83 In relative referece, host part can be ommitted but can not be empty. https://github.com/ruby/uri/commit/2980f0ba02 --- lib/uri/rfc3986_parser.rb | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/uri/rfc3986_parser.rb b/lib/uri/rfc3986_parser.rb index 59e2be2805..ffdcfa9227 100644 --- a/lib/uri/rfc3986_parser.rb +++ b/lib/uri/rfc3986_parser.rb @@ -26,11 +26,6 @@ module URI ]x USERINFO = /(?:%\h\h|[!$&-.0-9:;=A-Z_a-z~])*+/ - AUTHORITY = %r[ - (?:(?#{USERINFO.source})@)? - (?#{HOST.source.delete(" \n")}) - (?::(?\d*+))? - ]x SCHEME = %r[[A-Za-z][+\-.0-9A-Za-z]*+].source SEG = %r[(?:%\h\h|[!$&-.0-9:;=@A-Z_a-z~/])].source @@ -42,7 +37,11 @@ module URI (? (?#{SCHEME}): (?// - (?#{AUTHORITY}) + (? + (?:(?#{USERINFO.source})@)? + (?#{HOST.source.delete(" \n")}) + (?::(?\d*+))? + ) (?(?:/\g*+)?) | (?/((?!/)\g++)?) | (?(?!/)\g++) @@ -56,7 +55,11 @@ module URI (?#{SEG}){0} (? (?// - (?#{AUTHORITY}) + (? + (?:(?#{USERINFO.source})@)? + (?#{HOST.source.delete(" \n")}(?\d*+))? + ) (?(?:/\g*+)?) | (?/\g*+) | (?#{SEG_NC}++(?:/\g*+)?) -- cgit v1.2.3