<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -3,7 +3,7 @@ require 'rake/gempackagetask'
 require 'date'
 
 GEM = &quot;textmate&quot;
-GEM_VERSION = &quot;0.9.5&quot;
+GEM_VERSION = &quot;0.9.6&quot;
 AUTHOR = &quot;Yehuda Katz&quot;
 EMAIL = &quot;wycats@gmail.com&quot;
 HOMEPAGE = &quot;http://yehudakatz.com&quot;</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -5,6 +5,7 @@ require &quot;rubygems&quot;
 require &quot;thor&quot;
 require &quot;open-uri&quot;
 require &quot;yaml&quot;
+require &quot;cgi&quot;
 
 class TextmateInstaller &lt; Thor
 
@@ -63,7 +64,7 @@ class TextmateInstaller &lt; Thor
             when :git
               'echo &quot;git remotes not implemented yet&quot;'
             when :svn
-              %[svn co #{e_sh location[:url]}/#{e_sh bundle_name}.tmbundle #{e_sh install_bundles_path}/#{e_sh bundle_name}.tmbundle 2&gt;&amp;1]
+              %[svn co &quot;#{location[:url]}/#{url_escape bundle_name}.tmbundle&quot; #{e_sh install_bundles_path}/#{e_sh bundle_name}.tmbundle 2&gt;&amp;1]
             when :github
               repos = find_github_bundles(denormalize_github_repo_name(bundle_name))
 
@@ -110,7 +111,7 @@ class TextmateInstaller &lt; Thor
   desc &quot;uninstall NAME&quot;, &quot;uninstall a bundle&quot;
   def uninstall(bundle_name)
     removed = false
-    
+
     puts &quot;Removing bundle...&quot;
     # When moving to the trash, maybe move the bundle into a trash/disabled_bundles subfolder
     #   named as the bundles_path key. Just in case there are multiple versions of
@@ -122,7 +123,7 @@ class TextmateInstaller &lt; Thor
         %x[osascript -e 'tell application &quot;Finder&quot; to move the POSIX file &quot;#{bundle_path}&quot; to trash']
       end
     end
-    
+
     unless removed
       say &quot;There is no bundle by that name in the system&quot;, :red
       exit
@@ -175,6 +176,11 @@ class TextmateInstaller &lt; Thor
   	str.to_s.gsub(/(?=[^a-zA-Z0-9_.\/\-\x7F-\xFF\n])/, '\\').gsub(/\n/, &quot;'\n'&quot;).sub(/^$/, &quot;''&quot;)
   end
 
+  def url_escape(str)
+    chars = ((33...47).to_a + (94...96).to_a + (123...126).to_a).map {|c| c.chr }.join + &quot;\\[\\]\\\\&quot;
+    str = str.to_s.gsub(%r{[#{chars}]}) {|m| CGI.escape(m) }
+  end
+
   CAPITALIZATION_EXCEPTIONS = %w[tmbundle on]
   # Convert a GitHub repo name into a &quot;normal&quot; TM bundle name
   # e.g. ruby-on-rails-tmbundle =&gt; Ruby on Rails.tmbundle
@@ -207,16 +213,16 @@ class TextmateInstaller &lt; Thor
 
   def git_clone(repo, name)
     bundle_name = normalize_github_repo_name(name)
-    
+
     path = &quot;#{install_bundles_path}/#{bundle_name}&quot;
-    escaped_path = &quot;#{e_sh install_bundles_path}/#{e_sh bundle_name}&quot;
-    
+    escaped_path = &quot;#{e_sh(install_bundles_path)}/#{e_sh(bundle_name)}&quot;
+
     if File.directory?(path)
       say &quot;Sorry, that bundle is already installed. Please uninstall it first.&quot;, :red
       exit
     end
-    
-    %[git clone git://github.com/#{repo}/#{name}.git #{escaped_path} 2&gt;&amp;1]
+
+    %[git clone &quot;git://github.com/#{url_escape(repo)}/#{url_escape(name)}.git&quot; #{escaped_path} 2&gt;&amp;1]
   end
 
 end</diff>
      <filename>bin/textmate</filename>
    </modified>
    <modified>
      <diff>@@ -1,24 +1,34 @@
+# -*- encoding: utf-8 -*-
+
 Gem::Specification.new do |s|
   s.name = %q{textmate}
-  s.version = &quot;0.9.3&quot;
-
-  s.specification_version = 2 if s.respond_to? :specification_version=
+  s.version = &quot;0.9.6&quot;
 
   s.required_rubygems_version = Gem::Requirement.new(&quot;&gt;= 0&quot;) if s.respond_to? :required_rubygems_version=
   s.authors = [&quot;Yehuda Katz&quot;]
   s.autorequire = %q{textmate}
-  s.date = %q{2008-05-28}
+  s.date = %q{2009-08-03}
   s.default_executable = %q{textmate}
   s.description = %q{Command-line textmate package manager}
   s.email = %q{wycats@gmail.com}
   s.executables = [&quot;textmate&quot;]
   s.extra_rdoc_files = [&quot;README.markdown&quot;, &quot;LICENSE&quot;]
   s.files = [&quot;LICENSE&quot;, &quot;README.markdown&quot;, &quot;Rakefile&quot;, &quot;bin/textmate&quot;]
-  s.has_rdoc = true
   s.homepage = %q{http://yehudakatz.com}
   s.require_paths = [&quot;bin&quot;]
-  s.rubygems_version &gt;= %q{1.1.1}
+  s.rubygems_version = %q{1.3.5}
   s.summary = %q{Command-line textmate package manager}
 
-  s.add_dependency(%q&lt;thor&gt;, [&quot;&gt;= 0.9.2&quot;])
+  if s.respond_to? :specification_version then
+    current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
+    s.specification_version = 3
+
+    if Gem::Version.new(Gem::RubyGemsVersion) &gt;= Gem::Version.new('1.2.0') then
+      s.add_runtime_dependency(%q&lt;thor&gt;, [&quot;&gt;= 0.9.2&quot;])
+    else
+      s.add_dependency(%q&lt;thor&gt;, [&quot;&gt;= 0.9.2&quot;])
+    end
+  else
+    s.add_dependency(%q&lt;thor&gt;, [&quot;&gt;= 0.9.2&quot;])
+  end
 end</diff>
      <filename>textmate.gemspec</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>fe6a8139b34c0a571e91ee150d06b2894446a262</id>
    </parent>
  </parents>
  <author>
    <name>Yehuda Katz</name>
    <email>wycats@gmail.com</email>
  </author>
  <url>http://github.com/wycats/textmate/commit/6c7c1101994fe6faf409d6b794a06c987f2c95b3</url>
  <id>6c7c1101994fe6faf409d6b794a06c987f2c95b3</id>
  <committed-date>2009-08-03T01:51:45-07:00</committed-date>
  <authored-date>2009-08-03T01:51:45-07:00</authored-date>
  <message>Fixes issue #1 -- bundles with invalid URI characters cannot be downloaded</message>
  <tree>1e8da9be24b0031bbf4a21c94cd8849032545093</tree>
  <committer>
    <name>Yehuda Katz</name>
    <email>wycats@gmail.com</email>
  </committer>
</commit>
