sh_path.erl 389 B

12345678910
  1. -module(sh_path).
  2. -export([escape/1, unescape/1]).
  3. escape(Path) -> R = reserved(), lists:append([char_encode(Char, R) || Char <- Path]).
  4. unescape(Str) -> http_uri:decode(Str).
  5. reserved() -> sets:from_list([$/, $\\, $:, $%]).
  6. char_encode(Char, Reserved) ->
  7. case sets:is_element(Char, Reserved) of
  8. true -> [$% | http_util:integer_to_hexlist(Char)];
  9. false -> [Char] end.