diff --git a/src/eFmt.erl b/src/eFmt.erl index 460cfd9..087fe0d 100644 --- a/src/eFmt.erl +++ b/src/eFmt.erl @@ -181,27 +181,39 @@ writeMapBody(I, D, E, BinAcc) -> end end. -writeBinary(Bin, D) -> +writeBinary(Bin, D, BinAcc) -> if D == 1 -> - <<"...">>; + <>">>; true -> - <<"<<", Bin/binary, ">>">> + case Bin of + <<>> -> + <>">>; + <> -> + <>">>; + <> -> + writeBinary(LeftBin, D - 1, <>); + _ -> + L = bit_size(Bin), + <> = Bin, + <>">> + end end. writeTerm(_Term, 0, _E) -> <<"...">>; writeTerm(Term, _D, _E) when is_integer(Term) -> ?writeInt(Term); -writeTerm(Term, _D, _E) when is_float(Term) -> ?writeFloat(Term); writeTerm(Atom, _D, E) when is_atom(Atom) -> ?writeAtom(Atom, E); -writeTerm(Term, _D, _E) when is_port(Term) -> ?writePort(Term); -writeTerm(Term, _D, _E) when is_pid(Term) -> ?writePid(Term); -writeTerm(Term, _D, _E) when is_reference(Term) -> ?writeRef(Term); -writeTerm(Term, _D, _E) when is_function(Term) -> ?writeFun(Term); -writeTerm(Term, D, _E) when is_binary(Term) -> writeBinary(Term, D); -writeTerm(Term, D, _E) when is_bitstring(Term) -> writeBinary(Term, D); writeTerm(Term, D, E) when is_list(Term) -> writeList(Term, D, E, <<"[">>); writeTerm(Term, D, E) when is_map(Term) -> writeMap(Term, D, E, <<"#{">>); -writeTerm(Term, D, E) when is_tuple(Term) -> writeTuple(Term, D, E, 1, tuple_size(Term), <<"{">>). +writeTerm(Term, D, E) when is_tuple(Term) -> writeTuple(Term, D, E, 1, tuple_size(Term), <<"{">>); +writeTerm(Term, D, _E) when is_bitstring(Term) -> writeBinary(Term, D, <<"<<">>); +writeTerm(Term, _D, _E) when is_pid(Term) -> ?writePid(Term); +writeTerm(Term, _D, _E) when is_float(Term) -> ?writeFloat(Term); +writeTerm(Term, _D, _E) when is_port(Term) -> ?writePort(Term); +writeTerm(Term, _D, _E) when is_reference(Term) -> ?writeRef(Term); +writeTerm(Term, _D, _E) when is_function(Term) -> ?writeFun(Term). + + %% ********************************************** eFmt end ************************************************************* %% ********************************************** eFmtFormat start *****************************************************