use YAPSHAREDIR instead of YAP_PL_SRCDIR to book from Prolog files.
This commit is contained in:
parent
e4f3a127e0
commit
08257b2817
@ -364,6 +364,9 @@
|
|||||||
#if !HAVE_STRNCPY
|
#if !HAVE_STRNCPY
|
||||||
#define strncpy(X,Y,Z) strcpy(X,Y)
|
#define strncpy(X,Y,Z) strcpy(X,Y)
|
||||||
#endif
|
#endif
|
||||||
|
#if !HAVE_STRNCAT
|
||||||
|
#define strncat(X,Y,Z) strcat(X,Y)
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(_MSC_VER) && defined(YAP_EXPORTS)
|
#if defined(_MSC_VER) && defined(YAP_EXPORTS)
|
||||||
#define X_API __declspec(dllexport)
|
#define X_API __declspec(dllexport)
|
||||||
@ -2264,6 +2267,25 @@ do_bootfile (char *bootfilename)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
construct_init_file(char *boot_file, char *BootFile)
|
||||||
|
{
|
||||||
|
/* trust YAPSHAREDIR over YAP_PL_SRCDIR, and notice that the code is / dependent. */
|
||||||
|
#if HAVE_GETENV
|
||||||
|
if (getenv("YAPSHAREDIR")) {
|
||||||
|
strncpy(boot_file, getenv("YAPSHAREDIR"), 256);
|
||||||
|
strncat(boot_file, "/pl/", 255);
|
||||||
|
} else {
|
||||||
|
#endif
|
||||||
|
strncpy(boot_file, YAP_PL_SRCDIR, 256);
|
||||||
|
strncat(boot_file, "/", 255);
|
||||||
|
#if HAVE_GETENV
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
strncat(boot_file, BootFile, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* this routine is supposed to be called from an external program
|
/* this routine is supposed to be called from an external program
|
||||||
that wants to control Yap */
|
that wants to control Yap */
|
||||||
|
|
||||||
@ -2489,21 +2511,7 @@ YAP_Init(YAP_init_args *yap_init)
|
|||||||
|
|
||||||
/* read the bootfile */
|
/* read the bootfile */
|
||||||
if (!do_bootstrap) {
|
if (!do_bootstrap) {
|
||||||
#if HAVE_STRNCAT
|
construct_init_file(boot_file, BootFile);
|
||||||
strncpy(boot_file, YAP_PL_SRCDIR, 256);
|
|
||||||
#else
|
|
||||||
strcpy(boot_file, YAP_PL_SRCDIR);
|
|
||||||
#endif
|
|
||||||
#if HAVE_STRNCAT
|
|
||||||
strncat(boot_file, "/", 255);
|
|
||||||
#else
|
|
||||||
strcat(boot_file, "/");
|
|
||||||
#endif
|
|
||||||
#if HAVE_STRNCAT
|
|
||||||
strncat(boot_file, BootFile, 255);
|
|
||||||
#else
|
|
||||||
strcat(boot_file, BootFile);
|
|
||||||
#endif
|
|
||||||
yap_init->YapPrologBootFile = boot_file;
|
yap_init->YapPrologBootFile = boot_file;
|
||||||
}
|
}
|
||||||
do_bootfile (yap_init->YapPrologBootFile ? yap_init->YapPrologBootFile : BootFile);
|
do_bootfile (yap_init->YapPrologBootFile ? yap_init->YapPrologBootFile : BootFile);
|
||||||
@ -2513,21 +2521,7 @@ YAP_Init(YAP_init_args *yap_init)
|
|||||||
Atom atfile;
|
Atom atfile;
|
||||||
Functor fgoal;
|
Functor fgoal;
|
||||||
YAP_Term goal, as[2];
|
YAP_Term goal, as[2];
|
||||||
#if HAVE_STRNCAT
|
construct_init_file(init_file, InitFile);
|
||||||
strncpy(init_file, YAP_PL_SRCDIR, 256);
|
|
||||||
#else
|
|
||||||
strcpy(init_file, YAP_PL_SRCDIR);
|
|
||||||
#endif
|
|
||||||
#if HAVE_STRNCAT
|
|
||||||
strncat(init_file, "/", 255);
|
|
||||||
#else
|
|
||||||
strcat(init_file, "/");
|
|
||||||
#endif
|
|
||||||
#if HAVE_STRNCAT
|
|
||||||
strncat(init_file, InitFile, 255);
|
|
||||||
#else
|
|
||||||
strcat(init_file, InitFile);
|
|
||||||
#endif
|
|
||||||
/* consult init file */
|
/* consult init file */
|
||||||
atfile = Yap_LookupAtom(init_file);
|
atfile = Yap_LookupAtom(init_file);
|
||||||
as[0] = MkAtomTerm(atfile);
|
as[0] = MkAtomTerm(atfile);
|
||||||
|
Reference in New Issue
Block a user