clean load library

This commit is contained in:
Vitor Santos Costa 2013-11-15 16:04:14 +00:00
parent 9eb07a8c8a
commit bb650629d9

View File

@ -33,9 +33,7 @@ load_foreign_files(Objs,Libs,Entry) :-
'$check_obj_for_load_foreign_files'(V,_,G) :- var(V), !, '$check_obj_for_load_foreign_files'(V,_,G) :- var(V), !,
'$do_error'(instantiation_error,G). '$do_error'(instantiation_error,G).
'$check_obj_for_load_foreign_files'(Obj,NewObj,_) :- atom(Obj), !, '$check_obj_for_load_foreign_files'(Obj,NewObj,_) :- atom(Obj), !,
atom_codes(Obj,ObjCodes), '$process_obj_suffix'(Obj,NewObj).
'$process_obj_suffix'(ObjCodes,NewObjCodes),
atom_codes(NewObj,NewObjCodes).
'$check_obj_for_load_foreign_files'(Obj,_,G) :- '$check_obj_for_load_foreign_files'(Obj,_,G) :-
'$do_error'(type_error(atom,Obj),G). '$do_error'(type_error(atom,Obj),G).
@ -51,23 +49,23 @@ load_foreign_files(Objs,Libs,Entry) :-
'$check_lib_for_load_foreign_files'(V,_,G) :- var(V), !, '$check_lib_for_load_foreign_files'(V,_,G) :- var(V), !,
'$do_error'(instantiation_error,G). '$do_error'(instantiation_error,G).
'$check_lib_for_load_foreign_files'(Lib,NLib,_) :- atom(Lib), !, '$check_lib_for_load_foreign_files'(Lib,NLib,_) :- atom(Lib), !,
atom_codes(Lib,LibCodes), '$process_obj_suffix'(Lib,NewLib),
'$process_obj_suffix'(LibCodes,NewLibCodes), '$checklib_prefix'(NewLib,NLib).
'$checklib_prefix'(NewLibCodes,FullLibCodes),
atom_codes(NLib,FullLibCodes).
'$check_lib_for_load_foreign_files'(Lib,_,G) :- '$check_lib_for_load_foreign_files'(Lib,_,G) :-
'$do_error'(type_error(atom,Lib),G). '$do_error'(type_error(atom,Lib),G).
'$process_obj_suffix'(ObjCodes,ObjCodes) :- '$process_obj_suffix'(Obj,Obj) :-
'$obj_suffix'(ObjSuffix), '$swi_current_prolog_flag'(shared_object_extension, ObjSuffix),
lists:append(_,ObjSuffix,ObjCodes), !. sub_atom(Obj, _, _, 0, ObjSuffix), !.
'$process_obj_suffix'(ObjCodes,NewObjCodes) :- '$process_obj_suffix'(Obj,NewObj) :-
'$obj_suffix'(ObjSuffix), '$swi_current_prolog_flag'(shared_object_extension, ObjSuffix),
lists:append(ObjCodes,ObjSuffix,NewObjCodes). atom_concat([Obj,'.',ObjSuffix],NewObj).
'$checklib_prefix'(Cs,Cs) :- is_absolute_file_name(Cs), !. '$checklib_prefix'(F,F) :- is_absolute_file_name(F), !.
'$checklib_prefix'([0'l,0'i,0'b|NewObjCodes],[0'l,0'i,0'b|NewObjCodes]) :- !. '$checklib_prefix'(F, F) :-
'$checklib_prefix'(NewObjCodes,[0'l,0'i,0'b|NewObjCodes]). sub_atom(F, 0, _, _, lib), !.
'$checklib_prefix'(F, Lib) :-
atom_concat(lib, F, Lib).
'$check_entry_for_load_foreign_files'(V,G) :- var(V), !, '$check_entry_for_load_foreign_files'(V,G) :- var(V), !,