Pushed a fix for that. Only happens in mode(-,?), so not very likely to cause problems.
?- listing(file_search_path, [source(true)]).
...
% From /home/jan/src/swipl-devel/linux/home/boot/toplevel.pl:59
user:file_search_path(app_data, PrologAppData) :-
( current_prolog_flag(windows, true)
-> catch(win_folder(appdata, AppData), _, fail),
atom_concat(AppData, '/SWI-Prolog', PrologAppData),
( exists_directory(PrologAppData)
-> true
; catch(make_directory(PrologAppData), _, fail)
)
; catch(expand_file_name('~/lib/swipl', [PrologAppData]), _, fail)
).
user:file_search_path(app_preferences, Preferences) :-
( current_prolog_flag(windows, true)
-> Preferences = app_data('.')
; catch(expand_file_name(~, [UserHome]), _, fail)
-> Preferences = UserHome
).
user:file_search_path(user_profile, app_preferences('.')).
...
The option source(true)
is quite helpful to find the actual definition of multifile predicates and where the clauses come from/