summaryrefslogtreecommitdiff
path: root/src/rabbit_file.erl
diff options
context:
space:
mode:
authorAlexandru Scvortov <alexandru@rabbitmq.com>2011-09-22 17:23:23 +0100
committerAlexandru Scvortov <alexandru@rabbitmq.com>2011-09-22 17:23:23 +0100
commit3889d0d67e4670dd244964d3fe43aa11d68ad466 (patch)
tree55071f2aafb7da4e007eb98ee51730f3cd5bf698 /src/rabbit_file.erl
parentf203e2fa14812e82166d6cab72909135a26036fb (diff)
downloadrabbitmq-server-3889d0d67e4670dd244964d3fe43aa11d68ad466.tar.gz
fix rabbit_file:group_tokens/1
Diffstat (limited to 'src/rabbit_file.erl')
-rw-r--r--src/rabbit_file.erl15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/rabbit_file.erl b/src/rabbit_file.erl
index 7b3a3e75..5cb8e7b6 100644
--- a/src/rabbit_file.erl
+++ b/src/rabbit_file.erl
@@ -120,17 +120,12 @@ read_term_file(File) ->
error:{badmatch, Error} -> Error
end.
-group_tokens(Ts) -> lists:reverse([lists:reverse(G) || G <- group_tokens1(Ts)]).
+group_tokens(Ts) -> [lists:reverse(G) || G <- group_tokens([], Ts)].
-group_tokens1([]) -> [];
-group_tokens1([{_, N, _} | _] = Tokens) -> group_tokens([], N, Tokens);
-group_tokens1([{_, N} | _] = Tokens) -> group_tokens([], N, Tokens).
-
-group_tokens(Cur, _, []) -> [Cur];
-group_tokens(Cur, N, [T = {_, N} | Ts]) -> group_tokens([T | Cur], N, Ts);
-group_tokens(Cur, _, [{_, M} | _] = Ts) -> [Cur | group_tokens([], M, Ts)];
-group_tokens(Cur, N, [T = {_, N, _} | Ts]) -> group_tokens([T | Cur], N, Ts);
-group_tokens(Cur, _, [{_, M, _} | _] = Ts) -> [Cur | group_tokens([], M, Ts)].
+group_tokens([], []) -> [];
+group_tokens(Cur, []) -> [Cur];
+group_tokens(Cur, [T = {dot, _} | Ts]) -> [[T | Cur] | group_tokens([], Ts)];
+group_tokens(Cur, [T | Ts]) -> group_tokens([T | Cur], Ts).
write_term_file(File, Terms) ->
write_file(File, list_to_binary([io_lib:format("~w.~n", [Term]) ||