diff --git a/extra/bencode/bencode-tests.factor b/extra/bencode/bencode-tests.factor index 2ef6796681..b9a1bcb0b4 100644 --- a/extra/bencode/bencode-tests.factor +++ b/extra/bencode/bencode-tests.factor @@ -6,6 +6,8 @@ USING: bencode linked-assocs tools.test ; { "4:spam" } [ "spam" >bencode ] unit-test +{ "3:\x01\x02\x03" } [ B{ 1 2 3 } >bencode ] unit-test + { { "spam" 42 } } [ "l4:spami42ee" bencode> ] unit-test { LH{ { "bar" "spam" } { "foo" 42 } } } [ diff --git a/extra/bencode/bencode.factor b/extra/bencode/bencode.factor index 7173b93c12..b23ea09c71 100644 --- a/extra/bencode/bencode.factor +++ b/extra/bencode/bencode.factor @@ -1,6 +1,6 @@ -USING: arrays assocs combinators io io.encodings.ascii -io.encodings.string io.streams.string kernel linked-assocs math -math.parser sequences strings ; +USING: arrays assocs byte-arrays combinators io +io.streams.string kernel linked-assocs math math.parser +sequences strings ; IN: bencode GENERIC: >bencode ( obj -- bencode ) @@ -11,6 +11,8 @@ M: integer >bencode M: string >bencode [ length number>string ":" ] keep 3append ; +M: byte-array >bencode "" like >bencode ; + M: sequence >bencode [ >bencode ] map concat "l" "e" surround ;