anchor.diff:  -export([absname/1, absname/2, absname_join/2, 
   	 basename/1, basename/2, dirname/1,
   	 extension/1, join/1, join/2, pathtype/1,
  -	 rootname/1, rootname/2, split/1, nativename/1]).
  --export([find_src/1, find_src/2, flatten/1]).
  +         rootname/1, rootname/2, split/1, flatten/1, nativename/1,
  +         safe_relative_path/1]).
  +-export([find_src/1, find_src/2]). % deprecated
  +-export([basedir/2, basedir/3]).
   
   %% Undocumented and unsupported exports.
   -export([append/2]).
  
positive.code:     Letter = fix_driveletter(Letter0),
      L = binary:split(Rest,[<<"/">>,<<"\\">>],[global]),
      [<<Letter,$:>> | [ X || X <- L, X =/= <<>> ]];
  win32_splitb(<<Slash,Slash,Rest/binary>>) when ((Slash =:= $\\) orelse (Slash =:= $/)) ->
      L = binary:split(Rest,[<<"/">>,<<"\\">>],[global]),
      [<<$/,$/>> | [ X || X <- L, X =/= <<>> ]];
  win32_splitb(<<Slash,Rest/binary>>) when ((Slash =:= $\\) orelse (Slash =:= $/)) ->
      L = binary:split(Rest,[<<"/">>,<<"\\">>],[global]),
      [<<$/>> | [ X || X <- L, X =/= <<>> ]];
  
negative.code: 
  -spec basename(Filename) -> file:filename_all() when
        Filename :: file:name_all().
  
  basename(Name) when is_binary(Name) ->
      case os:type() of
  	{win32,_} ->
  