On Mon, Apr 21, 2014 at 12:16:27PM +0100, Jon TURNEY wrote: >If I add the site http://mirrors.kernel.org/sources.redhat.com/cygwinports/ to >setup's mirror list, using the GUI or --site option, I get two >indistinguishable >entries named http://mirrors.kernel.org in the mirror list box. > >So, to make the site chooser list entries more distinguishable, add the last >element of the URL path to the site chooser, if it exists and isn't 'cygwin' >(or >some other alternatives used by current mirrors) > >As Corinna pointed out in Nov 2010, there is still a corner case of URLs which >share protocol, hostname and the last element of the URL path being >indistinguishable. Additionally, it will need updating for any new mirrors >which >don't use one of the expected strings for the last path element in the URL. > >2014-04-19 Jon TURNEY <jon.tur...@dronecode.org.uk> > > * site.cc (init): If interesting, show the last element > of URL, as well as the protocol and sitename in the site chooser. > >Signed-off-by: Jon TURNEY <jon.tur...@dronecode.org.uk> >--- > site.cc | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > >diff --git a/site.cc b/site.cc >index 48ec0aa..70f6303 100644 >--- a/site.cc >+++ b/site.cc >@@ -173,6 +173,27 @@ site_list_type::init (const string &_url, const string >&_servername, > idx = 0; > } while (idx > 0); > key += url; >+ >+ /* add last element of url if it exists, and isn't "cygwin" to >displayed_url */ >+ if (path_offset+1 < url.length()) >+ { >+ string url_path = url.substr(path_offset+1); >+ >+ /* trim any trailing / */ >+ if (url_path.at(url_path.length()-1) == '/') >+ url_path.erase(url_path.length()-1); >+ >+ /* add the last path element, if it exists, and isn't "cygwin" >+ (or some aliases used by existing sites) */ >+ string::size_type pos = url_path.rfind('/'); >+ string lpe = url_path.substr(pos+1); >+ if ((pos != string::npos) && (lpe.compare("cygwin") != 0) && >+ (lpe.compare("cygwin.com") != 0) && (lpe.compare("cygwin32") != 0) >&& >+ (lpe.compare("gnu-win32") != 0)) >+ { >+ displayed_url.append(" (" + lpe + ")"); >+ } >+ } > }
I'd actually be ok with just displaying the whole URL even if it ends with Cygwin. Is there a reason not to do that? cgf