ssuominen    14/05/26 13:21:26

  Added:                exo-0.10.2-exo_str_looks_like_an_uri.patch
  Log:
  Apply upstream patch for bug 466144 to fix exo_str_looks_like_an_uri() 
function. Thanks to "nandhp" for reporting and Sasha Medvedev for pointing out 
the patch.
  
  (Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key 
4868F14D)

Revision  Changes    Path
1.1                  
xfce-base/exo/files/exo-0.10.2-exo_str_looks_like_an_uri.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/xfce-base/exo/files/exo-0.10.2-exo_str_looks_like_an_uri.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/xfce-base/exo/files/exo-0.10.2-exo_str_looks_like_an_uri.patch?rev=1.1&content-type=text/plain

Index: exo-0.10.2-exo_str_looks_like_an_uri.patch
===================================================================
http://bugs.gentoo.org/466144

>From 05848bb3cb10ea19ef8cba607bdabcd25560063c Mon Sep 17 00:00:00 2001
From: Felipe Contreras <felipe.contre...@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.contre...@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





Reply via email to