diff --git a/server.pl b/server.pl index c9e191d..ea6a1af 100755 --- a/server.pl +++ b/server.pl @@ -174,7 +174,7 @@ filetype_suffix(File, SuffixLower) :- last(Parts, Suffix), string_lower(Suffix, SuffixLower). files_to_filetypes(Files, FileTypes) :- - setof( + findall( Suffix, ( member(File, Files), @@ -184,31 +184,34 @@ files_to_filetypes(Files, FileTypes) :- format(atom(Suffix), '.~w', [SuffixWithoutDot]), format(user_error, 'Formatted suffix with dot: ~w~n', [Suffix]) ), - FileTypes - ), !. + FileTypeList + ), + list_to_set(FileTypeList, FileTypes), !. files_to_filetypes(_Files, []). % If no file types could be extracted, return an empty list file_to_basename(File, BaseName) :- split_string(File, "/", "", Parts), last(Parts, BaseName). files_to_basenames(Files, BaseNames) :- - setof( + findall( BaseName, ( member(File, Files), file_to_basename(File, BaseName) ), - BaseNames - ), !. + BaseNameList + ), + list_to_set(BaseNameList, BaseNames), !. files_to_basenames(_Files, []). % If no basenames could be extracted, return an empty list files_with_prefix_slash(Files, PrefixedFiles) :- - setof( + findall( PrefixedFile, ( member(File, Files), format(atom(PrefixedFile), '/~w', [File]) ), - PrefixedFiles - ), !. + PrefixedFileList + ), + list_to_set(PrefixedFileList, PrefixedFiles), !. files_with_prefix_slash(_Files, []). % If no files could be prefixed, return an empty list git_ssh_url(Name, URL) :- git_url(BaseURL),