From c9a557891f549d235ada8f2dd92c851598bcdc0a Mon Sep 17 00:00:00 2001
From: Chris Gray <chrismgray@gmail.com>
Date: Wed, 9 Nov 2011 22:23:15 -0700
Subject: [PATCH 1/2] Allow foo// meaning the function / in namespace foo

---
 src/jvm/clojure/lang/LispReader.java |   10 +---------
 src/jvm/clojure/lang/Symbol.java     |    2 +-
 2 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/src/jvm/clojure/lang/LispReader.java b/src/jvm/clojure/lang/LispReader.java
index dbb59a6..ddcc8bd 100644
--- a/src/jvm/clojure/lang/LispReader.java
+++ b/src/jvm/clojure/lang/LispReader.java
@@ -58,7 +58,7 @@ static Symbol DEREF = Symbol.intern("clojure.core", "deref");
 static IFn[] macros = new IFn[256];
 static IFn[] dispatchMacros = new IFn[256];
 //static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^:/]][^:/]*/)?[\\D&&[^:/]][^:/]*");
-static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^/]].*/)?([\\D&&[^/]][^/]*)");
+static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^/]].*/)?(/|[\\D&&[^/]][^/]*)");
 //static Pattern varPat = Pattern.compile("([\\D&&[^:\\.]][^:\\.]*):([\\D&&[^:\\.]][^:\\.]*)");
 //static Pattern intPat = Pattern.compile("[-+]?[0-9]+\\.?");
 static Pattern intPat =
@@ -304,14 +304,6 @@ static private Object interpretToken(String s) {
 		{
 		return RT.F;
 		}
-	else if(s.equals("/"))
-		{
-		return SLASH;
-		}
-	else if(s.equals("clojure.core//"))
-		{
-		return CLOJURE_SLASH;
-		}
 	Object ret = null;
 
 	ret = matchSymbol(s);
diff --git a/src/jvm/clojure/lang/Symbol.java b/src/jvm/clojure/lang/Symbol.java
index 193ed0b..5338166 100644
--- a/src/jvm/clojure/lang/Symbol.java
+++ b/src/jvm/clojure/lang/Symbol.java
@@ -52,7 +52,7 @@ static public Symbol intern(String ns, String name){
 }
 
 static public Symbol intern(String nsname){
-	int i = nsname.lastIndexOf('/');
+	int i = nsname.indexOf('/');
 	if(i == -1 || nsname.equals("/"))
 		return new Symbol(null, nsname.intern());
 	else
-- 
1.7.7.1


From d0b639be25bfd73e666ef94f46fa8ad900f0b705 Mon Sep 17 00:00:00 2001
From: Chris Gray <chrismgray@gmail.com>
Date: Thu, 10 Nov 2011 08:06:24 -0700
Subject: [PATCH 2/2] Added regression tests

---
 test/clojure/test_clojure/reader.clj |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/test/clojure/test_clojure/reader.clj b/test/clojure/test_clojure/reader.clj
index 7a06034..85745ae 100644
--- a/test/clojure/test_clojure/reader.clj
+++ b/test/clojure/test_clojure/reader.clj
@@ -315,3 +315,11 @@
 ;; (read stream eof-is-error eof-value is-recursive)
 
 (deftest t-read)
+
+(deftest division
+  (is (= clojure.core// /))
+  (binding [*ns* *ns*]
+    (eval '(do (ns foo
+                 (:require [clojure.core :as bar])
+                 (:use [clojure.test]))
+               (is (= clojure.core// bar//))))))
-- 
1.7.7.1

