[Xfce4-commits] <exo:master> Fix exo_str_looks_like_an_uri() (bug #10098).
Nick Schermer
noreply at xfce.org
Sun May 19 14:48:01 CEST 2013
Updating branch refs/heads/master
to 05848bb3cb10ea19ef8cba607bdabcd25560063c (commit)
from f76f551fb0e80fdbf259f85634ec62e7158898c5 (commit)
commit 05848bb3cb10ea19ef8cba607bdabcd25560063c
Author: Felipe Contreras <felipe.contreras at gmail.com>
Date: Sat May 18 22:50:01 2013 -0500
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 at gmail.com>
exo/exo-string.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
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;
More information about the Xfce4-commits
mailing list