From ba7861b2180391d31a3d26357573f69723a57bc8 Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Sun, 28 Feb 2010 22:19:52 +0000 Subject: [PATCH] fix set_source_module add time_file/2 and flag/3 (and current_flag/1). --- library/dialect/swi.yap | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/library/dialect/swi.yap b/library/dialect/swi.yap index d665c75fa..1d2505c53 100755 --- a/library/dialect/swi.yap +++ b/library/dialect/swi.yap @@ -40,6 +40,7 @@ :- use_module(library(system), [datime/1, mktime/2, + file_property/2, sleep/1]). :- use_module(library(arg), @@ -356,7 +357,33 @@ prolog:'$set_source_module'(Source0, SourceF) :- prolog_load_context(module, Source0), module(SourceF). +prolog:'$set_source_module'(Source0, SourceF) :- + current_module(Source0, SourceF). + prolog:'$declare_module'(Name, Context, _, _, _) :- add_import_module(Name, Context, start). prolog:'$set_predicate_attribute'(_, _, _). + +prolog:time_file(File, Time) :- + file_property(File, mod_time(Date)), + Time is Date*1.0. + +prolog:flag(Key, Old, New) :- + recorded(Key, Old, R), !, + ( + Old \== New + -> + erase(R), + recorda(Key, New, _) + ; + true + ). +prolog:flag(Key, 0, New) :- + functor(Key, N, Ar), + functor(K, N, Ar), + assert(swi:flag(K)), + recorda(K, New, _). + +prolog:current_flag(Key) :- + swi:flag(Key).