diff --git a/listversioned/listversioned.rb b/listversioned/listversioned.rb index 5d92ed2..e9e78d2 100755 --- a/listversioned/listversioned.rb +++ b/listversioned/listversioned.rb @@ -63,11 +63,16 @@ def fetch(uri_str, limit = 10) raise ArgumentError, 'HTTP redirect too deep' if limit == 0 host = URI.parse(uri_str).host + port = URI.parse(uri_str).port path = URI.parse(uri_str).path query = URI.parse(uri_str).query - Net::HTTP.start(host) {|http| - req = Net::HTTP::Get.new("#{path}?#{query}") + Net::HTTP.start(host, port) {|http| + if query + req = Net::HTTP::Get.new("#{URI.escape(path)}?#{URI.escape(query)}") + else + req = Net::HTTP::Get.new("#{URI.escape(path)}") + end req.basic_auth @user, @pass response = http.request(req) case response @@ -110,6 +115,7 @@ end def cvsparse(url) puts "\n#{url}" + body=[] begin body = fetch("#{url}/CVS/Entries").body rescue