Avoid setof, favor findall; less buggy.

This commit is contained in:
2026-04-20 16:49:07 +01:00
parent c713683837
commit f821bab9b6

View File

@@ -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),