559
559
string(S, none, _Adj, none, _Pad) -> S;
560
560
string(S, F, Adj, none, Pad) ->
561
N = lists:flatlength(S),
562
if N > F -> flat_trunc(S, F);
564
true -> adjust(S, chars(Pad, F-N), Adj)
561
string_field(S, F, Adj, lists:flatlength(S), Pad);
566
562
string(S, none, _Adj, P, Pad) ->
567
N = lists:flatlength(S),
568
if N > P -> flat_trunc(S, P);
570
true -> [S|chars(Pad, P-N)]
572
string(S, F, Adj, F, Pad) ->
573
string(S, none, Adj, F, Pad);
574
string(S, F, Adj, P, Pad) when F > P ->
575
N = lists:flatlength(S),
576
if N > F -> flat_trunc(S, F);
578
N > P -> adjust(flat_trunc(S, P), chars(Pad, F-P), Adj);
579
N =:= P -> adjust(S, chars(Pad, F-P), Adj);
580
true -> adjust([S|chars(Pad, P-N)], chars(Pad, F-P), Adj)
563
string_field(S, P, left, lists:flatlength(S), Pad);
564
string(S, F, Adj, P, Pad) when F >= P ->
565
N = lists:flatlength(S),
568
adjust(flat_trunc(S, P), chars(Pad, F-P), Adj);
570
adjust([S|chars(Pad, P-N)], chars(Pad, F-P), Adj);
572
adjust(S, chars(Pad, F-P), Adj)
575
string_field(S, F, Adj, N, Pad)
578
string_field(S, F, _Adj, N, _Pad) when N > F ->
580
string_field(S, F, Adj, N, Pad) when N < F ->
581
adjust(S, chars(Pad, F-N), Adj);
582
string_field(S, _, _, _, _) -> % N == F
583
585
%% unprefixed_integer(Int, Field, Adjust, Base, PadChar, Lowercase)
626
628
adjust(Data, [], _) -> Data;
627
adjust(Data, Pad, left) -> [Data,Pad];
628
adjust(Data, Pad, right) -> [Pad,Data].
629
adjust(Data, Pad, left) -> [Data|Pad];
630
adjust(Data, Pad, right) -> [Pad|Data].
630
632
%% Flatten and truncate a deep list to at most N elements.