| http://bugs.gentoo.org/466144 |
| |
| From 05848bb3cb10ea19ef8cba607bdabcd25560063c Mon Sep 17 00:00:00 2001 |
| From: Felipe Contreras <felipe.contreras@gmail.com> |
| Date: Sat, 18 May 2013 22:50:01 -0500 |
| Subject: Fix exo_str_looks_like_an_uri() (bug #10098). |
| |
| Commit d11199b (Check if uris also contain a slash (bug #9244)) tried to |
| fix a hang in thunar by properly recognizing that 'http:' is not an URI, |
| however, while doing so, it broke proper URIs like 'magnet:foo'. |
| |
| As the RFC clearly states: |
| |
| The following are two example URIs and their component parts: |
| |
| foo://example.com:8042/over/there?name=ferret#nose |
| \_/ \______________/\_________/ \_________/ \__/ |
| | | | | | |
| scheme authority path query fragment |
| | _____________________|__ |
| / \ / \ |
| urn:example:animal:ferret:nose |
| |
| But even with this succinct example exo_str_looks_like_an_uri() fails. |
| |
| There is an easy solution; fail only when component part is missing |
| ('urn:'), but succeed otherwise. |
| |
| This solution fixes 'magnet:foo', and doesn't break the current |
| expectation from thunar that 'http:' should fail, having the best of |
| both worlds. |
| |
| [1] http://www.ietf.org/rfc/rfc3986.txt |
| |
| Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> |
| |
| diff --git a/exo/exo-string.c b/exo/exo-string.c |
| index 33f86f9..056b36a 100644 |
| --- a/exo/exo-string.c |
| +++ b/exo/exo-string.c |
| @@ -429,7 +429,7 @@ exo_str_looks_like_an_uri (const gchar *str) |
| for (++s; g_ascii_isalnum (*s) || *s == '+' || *s == '-' || *s == '.'; ++s); |
| |
| /* <scheme> must be followed by ":" */ |
| - return (*s == ':' && *(s+1) == '/'); |
| + return (*s == ':' && *(s+1) != '\0'); |
| } |
| |
| return FALSE; |
| -- |
| cgit v0.10.1 |
| |