Teach magic_uri that hostnames don't contain spaces

New test cases included. Two of them are commented out since
they are not supported but should logcially be.
This commit is contained in:
Jordan Callicoat 2009-04-11 12:24:43 +02:00 committed by Christian Dywan
parent 592e55c59b
commit 52ab540db5
2 changed files with 7 additions and 2 deletions

View file

@ -243,8 +243,9 @@ sokoke_magic_uri (const gchar* uri,
return sokoke_idn_to_punycode (g_strdup (uri)); return sokoke_idn_to_punycode (g_strdup (uri));
/* Do we have a domain, ip address or localhost? */ /* Do we have a domain, ip address or localhost? */
if ((search = strchr (uri, ':')) && search[0] && search = NULL;
!g_ascii_isalpha (search[1]) && search[1] != ' ') if (!strchr (uri, ' ') && (search = strchr (uri, ':')) &&
search[0] && !g_ascii_isalpha (search[1]))
if (!strchr (search, '.')) if (!strchr (search, '.'))
return sokoke_idn_to_punycode (g_strconcat ("http://", uri, NULL)); return sokoke_idn_to_punycode (g_strconcat ("http://", uri, NULL));
if (!strcmp (uri, "localhost") || g_str_has_prefix (uri, "localhost/")) if (!strcmp (uri, "localhost") || g_str_has_prefix (uri, "localhost/"))

View file

@ -75,6 +75,8 @@ magic_uri_uri (void)
test_input ("192.168.1.1:8000", "http://192.168.1.1:8000"); test_input ("192.168.1.1:8000", "http://192.168.1.1:8000");
test_input ("file:///home/mark/foo/bar.html", test_input ("file:///home/mark/foo/bar.html",
"file:///home/mark/foo/bar.html"); "file:///home/mark/foo/bar.html");
/* test_input ("foo:123@bar.baz", "foo:123@bar.baz"); */
/* test_input ("foo:foo@bar.baz", "foo:foo@bar.baz"); */
} }
static void static void
@ -130,6 +132,8 @@ magic_uri_search (void)
test_input ("sm de.po verbose", SM "de.po verbose"); test_input ("sm de.po verbose", SM "de.po verbose");
test_input ("sm warning: configure /dev/net: virtual", test_input ("sm warning: configure /dev/net: virtual",
SM "warning: configure /dev/net: virtual"); SM "warning: configure /dev/net: virtual");
test_input ("g \"ISO 9001:2000 certified\"", NULL);
test_input ("g conference \"April 2, 7:00 am\"", NULL);
} }
static void static void