anchor.diff:  join1([UcLetter, $:|Rest], RelativeName, [], win32)
   when is_integer(UcLetter), UcLetter >= $A, UcLetter =< $Z ->
       join1(Rest, RelativeName, [$:, UcLetter+$a-$A], win32);
  -join1([$/,$/|Rest], RelativeName, [], win32) ->
  -    join1(Rest, RelativeName, [$/,$/], win32);
  -join1([$\\,$\\|Rest], RelativeName, [], win32) ->
  -    join1(Rest, RelativeName, [$/,$/], win32);
   join1([$\\|Rest], RelativeName, Result, win32) ->
       join1([$/|Rest], RelativeName, Result, win32);
   join1([$/|Rest], RelativeName, [$., $/|Result], OsType) ->
  
positive.code:       ErrorReason :: 'non_existing' | 'preloaded' | 'interpreted'.
  find_src(Mod, Rules) when is_atom(Mod) ->
      find_src(atom_to_list(Mod), Rules);
  find_src(File0, Rules) when is_list(File0) ->
      Mod = list_to_atom(basename(File0, ".erl")),
      File = rootname(File0, ".erl"),
      case readable_file(File++".erl") of
  	true  ->
  	    try_file(File, Mod, Rules);
  	false ->
  	    try_file(undefined, Mod, Rules)
      end.
  
  try_file(File, Mod, Rules) ->
      case code:which(Mod) of
  	Possibly_Rel_Path when is_list(Possibly_Rel_Path) ->
  	    {ok, Cwd} = file:get_cwd(),
  	    Path = join(Cwd, Possibly_Rel_Path),
  	    try_file(File, Path, Mod, Rules);
  	Ecode when is_atom(Ecode) -> % Ecode :: ecode()
  	    {error, {Ecode, Mod}}
      end.
  
  %% At this point, the Mod is known to be valid.
  %% If the source name is not known, find it.
  %% Then get the compilation options.
  %% Returns: {SrcFile, Options}
  
  try_file(undefined, ObjFilename, Mod, Rules) ->
      case get_source_file(ObjFilename, Mod, Rules) of
  	{ok, File} -> try_file(File, ObjFilename, Mod, Rules);
  	Error -> Error
      end;
  try_file(Src, _ObjFilename, Mod, _Rules) ->
      List = case Mod:module_info(compile) of
  	       none -> [];
  	       List0 -> List0
  	   end,
      Options = proplists:get_value(options, List, []),
      {ok, Cwd} = file:get_cwd(),
      AbsPath = make_abs_path(Cwd, Src),
      {AbsPath, filter_options(dirname(AbsPath), Options, [])}.
  
  %% Filters the options.
  
negative.code: -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, 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]).
  