From: Anders N. <and...@gm...> - 2009-02-17 16:39:39
|
Hi yaws_config:del_tail/1 is rather broken 1, leading ".." is removed together with next part 2, "../.." -> removes previous and next part I think this patch fixes the problem. ~/src> diff --normal yaws-1.80/src/yaws_config.erl yaws-my/src/ 283,290c283,299 < del_tail([_H, ".." |Tail]) -> < del_tail(Tail); < del_tail(["..", _H |Tail]) -> < del_tail(Tail); < del_tail([_X, _Y]) -> < []; < del_tail([H|T]) -> < [H|del_tail(T)]. --- > del_tail(Parts) -> > del_tail(Parts,[]). > %% Initial ".." should be preserved > del_tail([".." |Tail], Acc) -> > del_tail(Tail, [".."|Acc]); > del_tail(Parts, Acc) -> > del_tail2(Parts, Acc). > > %% Embedded ".." should be removed together with preceding dir > del_tail2([_H, ".." |Tail], Acc) -> > del_tail2(Tail, Acc); > del_tail2([".." |Tail], [_P|Acc]) -> > del_tail2(Tail, Acc); > del_tail2([_X, _Y], Acc) -> > lists:reverse(Acc); > del_tail2([H|T], Acc) -> > del_tail2(T, [H|Acc]). |