Skip to content

Commit

Permalink
Merge branch 'mhowlett-fork'
Browse files Browse the repository at this point in the history
  • Loading branch information
ragnard committed Dec 6, 2009
2 parents b2d594a + 6b45c32 commit 87c14ec
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions src/main/clojure/redis/internal.clj
Expand Up @@ -120,21 +120,24 @@
(defmethod parse-reply \+
[#^BufferedReader reader]
(read-line-crlf reader))

(defn- do-read [#^Reader reader #^chars cbuf offset length]
(let [nread (.read reader cbuf offset length)]
(if (not= nread length)
(recur reader cbuf (+ offset nread) (- length nread)))))

(defmethod parse-reply \$
[#^BufferedReader reader]
(let [line (read-line-crlf reader)
length (parse-int line)]
(if (< length 0)
nil
(let [#^chars cbuf (char-array length)
nread (.read reader cbuf 0 length)]
(if (not= nread length)
(throw (Exception. "Could not read correct number of bytes"))
(do
(read-crlf reader) ;; CRLF
(String. cbuf)))))))

(let [#^chars cbuf (char-array length)]
(do
(do-read reader cbuf 0 length)
(read-crlf reader) ;; CRLF
(String. cbuf))))))

(defmethod parse-reply \*
[#^BufferedReader reader]
(let [line (read-line-crlf reader)
Expand Down

0 comments on commit 87c14ec

Please sign in to comment.