From a7874dee6252cfbb6c419984601c25697e991382 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADtor=20Santos=20Costa?= Date: Mon, 1 Feb 2016 02:46:39 +0000 Subject: [PATCH] fix abolish --- C/stdpreds.c | 2 ++ os/sysbits.c | 2 +- pl/preds.yap | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/C/stdpreds.c b/C/stdpreds.c index 55f90cfd9..88ca4fc49 100755 --- a/C/stdpreds.c +++ b/C/stdpreds.c @@ -766,6 +766,8 @@ static Int cont_current_predicate(USES_REGS1) { PredEntry *pp; t1 = Yap_YapStripModule(t1, &t2); t3 = Yap_YapStripModule(t3, &t2); + t1 = Deref(t1); + t2 = Deref(t2); task = Deref(ARG4); pp = AddressOfTerm(EXTRA_CBACK_ARG(4, 1)); diff --git a/os/sysbits.c b/os/sysbits.c index bb7cf44a6..325d02895 100644 --- a/os/sysbits.c +++ b/os/sysbits.c @@ -675,7 +675,7 @@ prolog_expanded_file_system_path( USES_REGS1 ) const char *rc = myrealpath(out, LOCAL_FileNameBuf2 ); return Yap_unify(MkAtomTerm(Yap_LookupAtom(rc)), ARG4); } else { - char *pt =strncpy( LOCAL_FileNameBuf2, p0, YAP_FILENAME_MAX ); + char *pt =stpncpy( LOCAL_FileNameBuf2, p0, YAP_FILENAME_MAX ); printf("%s\n", LOCAL_FileNameBuf2); if ( !dir_separator( pt[-1] )) { #if ATARI || _MSC_VER || defined(__MINGW32__) diff --git a/pl/preds.yap b/pl/preds.yap index 907cb397b..5688cb99c 100644 --- a/pl/preds.yap +++ b/pl/preds.yap @@ -292,7 +292,7 @@ abolish(X0) :- '$new_abolish'(V,M) :- var(V), !, '$abolish_all'(M). -'$new_abolish'(A,M) :- atom(A), !, +'$new_abolish'(A/V,M) :- atom(A), var(V), !, '$abolish_all_atoms'(A,M). '$new_abolish'(Na//Ar1, M) :- integer(Ar1),