increase the ignore list
This commit is contained in:
		
							
								
								
									
										1331
									
								
								library/dialect/swi/os/#pl-prologflag.c#
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1331
									
								
								library/dialect/swi/os/#pl-prologflag.c#
									
									
									
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -78,7 +78,7 @@ typedef struct _PL_thread_info_t
 | 
			
		||||
} PL_thread_info_t;
 | 
			
		||||
 | 
			
		||||
PL_thread_info_t *SWI_thread_info(int tid, PL_thread_info_t *info);
 | 
			
		||||
intptr_t system_thread_id(PL_thread_info_t *info);
 | 
			
		||||
intptr_t system_thread_id(void);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@@ -1,4 +1,5 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef PL_INCL_H
 | 
			
		||||
 | 
			
		||||
#define PL_INCL_H 1
 | 
			
		||||
@@ -46,6 +47,8 @@ typedef word *			Word;
 | 
			
		||||
/* SWI internal name for a predicate */
 | 
			
		||||
typedef struct pred_entry *      Procedure;      /* predicate */
 | 
			
		||||
 | 
			
		||||
#ifndef SWI_H
 | 
			
		||||
 | 
			
		||||
/* try not to pollute the SWI space */
 | 
			
		||||
#ifdef P
 | 
			
		||||
#undef P
 | 
			
		||||
@@ -60,6 +63,8 @@ typedef struct pred_entry *      Procedure;      /* predicate */
 | 
			
		||||
#undef H
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* swi code called from pl-incl.h */
 | 
			
		||||
/* should have messages here */
 | 
			
		||||
#ifdef  DEBUG
 | 
			
		||||
@@ -270,7 +275,7 @@ users foreign language code.
 | 
			
		||||
 | 
			
		||||
		/********************************
 | 
			
		||||
		*       Error		         *
 | 
			
		||||
		*********************************/
 | 
			
		||||
v		*********************************/
 | 
			
		||||
 | 
			
		||||
#define isDefinedProcedure(pred) TRUE // TBD
 | 
			
		||||
#include "pl-error.h"
 | 
			
		||||
@@ -438,6 +443,9 @@ it mean anything?
 | 
			
		||||
#define DBLQ_CHARS              (0x0004) /* "ab" --> ['a', 'b'] */
 | 
			
		||||
#define DBLQ_ATOM               (0x0008) /* "ab" --> 'ab' */
 | 
			
		||||
#define DBLQ_STRING             (0x0010) /* "ab" --> "ab" */
 | 
			
		||||
#ifdef DBLQ_MASK
 | 
			
		||||
#undef DBLQ_MASK
 | 
			
		||||
#endif
 | 
			
		||||
#define DBLQ_MASK               (DBLQ_CHARS|DBLQ_ATOM|DBLQ_STRING)
 | 
			
		||||
#define UNKNOWN_FAIL            (0x0020) /* module */
 | 
			
		||||
#define UNKNOWN_WARNING         (0x0040) /* module */
 | 
			
		||||
@@ -3,10 +3,98 @@
 | 
			
		||||
 | 
			
		||||
#define PL_SHARED_H
 | 
			
		||||
 | 
			
		||||
/* we are in YAP */
 | 
			
		||||
#ifndef __YAP_PROLOG__
 | 
			
		||||
#define __YAP_PROLOG__ 1
 | 
			
		||||
#include "pl-types.h"
 | 
			
		||||
 | 
			
		||||
#ifndef __WINDOWS__
 | 
			
		||||
#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__MSYS__)
 | 
			
		||||
#define __WINDOWS__ 1
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !defined(O_PLMT) && !defined(YAPOR)
 | 
			
		||||
 | 
			
		||||
#define LOCAL_LD (GLOBAL_LD)
 | 
			
		||||
#define LD (GLOBAL_LD)
 | 
			
		||||
#define ARG1_LD   void
 | 
			
		||||
#define ARG_LD
 | 
			
		||||
#define GET_LD
 | 
			
		||||
#define PRED_LD
 | 
			
		||||
#define PASS_LD
 | 
			
		||||
#define PASS_LD1 
 | 
			
		||||
#define IGNORE_LD
 | 
			
		||||
 | 
			
		||||
#define REGS_FROM_LD
 | 
			
		||||
#define LD_FROM_REGS
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
#define LOCAL_LD (__PL_ld)
 | 
			
		||||
#define LD    LOCAL_LD
 | 
			
		||||
 | 
			
		||||
#define GET_LD    CACHE_REGS struct PL_local_data *__PL_ld = GLOBAL_LD;
 | 
			
		||||
#define ARG1_LD   struct PL_local_data *__PL_ld
 | 
			
		||||
 | 
			
		||||
#define ARG_LD    , ARG1_LD
 | 
			
		||||
#define PASS_LD1  LD
 | 
			
		||||
#define PASS_LD   , LD
 | 
			
		||||
#define PRED_LD   GET_LD
 | 
			
		||||
#define IGNORE_LD (void)__PL_ld;
 | 
			
		||||
 | 
			
		||||
#define REGS_FROM_LD  struct regstore_t *regcache = __PL_ld->reg_cache;
 | 
			
		||||
#define LD_FROM_REGS struct PL_local_data *__PL_ld = LOCAL_PL_local_data_p;
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
Atom                  YAP_AtomFromSWIAtom(atom_t at);
 | 
			
		||||
atom_t                YAP_SWIAtomFromAtom(Atom at);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static inline Term
 | 
			
		||||
OpenList(int n USES_REGS)
 | 
			
		||||
{
 | 
			
		||||
  Term t;
 | 
			
		||||
  BACKUP_H();
 | 
			
		||||
 | 
			
		||||
  while (HR+2*n > ASP-1024) {
 | 
			
		||||
    if (!Yap_dogc( 0, (Term *)NULL PASS_REGS )) {
 | 
			
		||||
      RECOVER_H();
 | 
			
		||||
      return FALSE;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  t = AbsPair(HR);
 | 
			
		||||
  HR += 2*n;
 | 
			
		||||
 | 
			
		||||
  RECOVER_H();
 | 
			
		||||
  return t;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline Term
 | 
			
		||||
ExtendList(Term t0, Term inp)
 | 
			
		||||
{
 | 
			
		||||
  Term t;
 | 
			
		||||
  CELL *ptr = RepPair(t0);
 | 
			
		||||
  BACKUP_H();
 | 
			
		||||
 | 
			
		||||
  ptr[0] = inp;
 | 
			
		||||
  ptr[1] = AbsPair(ptr+2);
 | 
			
		||||
  t = AbsPair(ptr+2);
 | 
			
		||||
 | 
			
		||||
  RECOVER_H();
 | 
			
		||||
  return t;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline int
 | 
			
		||||
CloseList(Term t0, Term tail)
 | 
			
		||||
{
 | 
			
		||||
  CELL *ptr = RepPair(t0);
 | 
			
		||||
 | 
			
		||||
  RESET_VARIABLE(ptr-1);
 | 
			
		||||
  if (!Yap_unify((Term)(ptr-1), tail))
 | 
			
		||||
    return FALSE;
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifndef __YAP_PROLOG__
 | 
			
		||||
 | 
			
		||||
#include <assert.h>
 | 
			
		||||
 | 
			
		||||
@@ -22,12 +110,6 @@
 | 
			
		||||
#define PL_KERNEL 1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __WINDOWS__
 | 
			
		||||
#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__MSYS__)
 | 
			
		||||
#define __WINDOWS__ 1
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// SWI Options
 | 
			
		||||
#define O_STRING		1
 | 
			
		||||
@@ -59,7 +141,7 @@
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <SWI-Stream.h>
 | 
			
		||||
//#include <SWI-Stream.h>
 | 
			
		||||
#include <SWI-Prolog.h>
 | 
			
		||||
 | 
			
		||||
#define COMMON(X) extern X
 | 
			
		||||
@@ -90,39 +172,6 @@ typedef uintptr_t		word;		/* Anonymous 4 byte object */
 | 
			
		||||
#define GLOBAL_LD (LOCAL_PL_local_data_p)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if !defined(O_PLMT) && !defined(YAPOR)
 | 
			
		||||
 | 
			
		||||
#define LOCAL_LD (GLOBAL_LD)
 | 
			
		||||
#define LD (GLOBAL_LD)
 | 
			
		||||
#define ARG1_LD   void
 | 
			
		||||
#define ARG_LD
 | 
			
		||||
#define GET_LD
 | 
			
		||||
#define PRED_LD
 | 
			
		||||
#define PASS_LD
 | 
			
		||||
#define PASS_LD1 
 | 
			
		||||
#define IGNORE_LD
 | 
			
		||||
 | 
			
		||||
#define REGS_FROM_LD
 | 
			
		||||
#define LD_FROM_REGS
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
#define LOCAL_LD (__PL_ld)
 | 
			
		||||
#define LD	  LOCAL_LD
 | 
			
		||||
 | 
			
		||||
#define GET_LD	  CACHE_REGS struct PL_local_data *__PL_ld = GLOBAL_LD;
 | 
			
		||||
#define ARG1_LD   struct PL_local_data *__PL_ld
 | 
			
		||||
 | 
			
		||||
#define ARG_LD    , ARG1_LD
 | 
			
		||||
#define PASS_LD1  LD
 | 
			
		||||
#define PASS_LD   , LD
 | 
			
		||||
#define PRED_LD   GET_LD
 | 
			
		||||
#define IGNORE_LD (void)__PL_ld;
 | 
			
		||||
 | 
			
		||||
#define REGS_FROM_LD  struct regstore_t *regcache = __PL_ld->reg_cache;
 | 
			
		||||
#define LD_FROM_REGS struct PL_local_data *__PL_ld = LOCAL_PL_local_data_p;
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
		 /*******************************
 | 
			
		||||
		 *	    STREAM I/O		*
 | 
			
		||||
@@ -247,7 +296,7 @@ typedef struct initialise_handle * InitialiseHandle;
 | 
			
		||||
/* Flags on module.  Most of these flags are copied to the read context
 | 
			
		||||
   in pl-read.c.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef M_SYSTEM
 | 
			
		||||
#define M_SYSTEM		(0x0001) /* system module */
 | 
			
		||||
#define M_CHARESCAPE		(0x0002) /* module */
 | 
			
		||||
#define DBLQ_CHARS		(0x0004) /* "ab" --> ['a', 'b'] */
 | 
			
		||||
@@ -258,7 +307,7 @@ typedef struct initialise_handle * InitialiseHandle;
 | 
			
		||||
#define UNKNOWN_WARNING		(0x0040) /* module */
 | 
			
		||||
#define UNKNOWN_ERROR		(0x0080) /* module */
 | 
			
		||||
#define UNKNOWN_MASK		(UNKNOWN_ERROR|UNKNOWN_WARNING|UNKNOWN_FAIL)
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
extern unsigned int
 | 
			
		||||
getUnknownModule(module_t m);
 | 
			
		||||
 | 
			
		||||
@@ -303,85 +352,7 @@ COMMON(void)		Yap_setCurrentSourceLocation( void *rd );
 | 
			
		||||
 | 
			
		||||
extern int raiseSignal(PL_local_data_t *ld, int sig);
 | 
			
		||||
 | 
			
		||||
#ifdef YATOM_H
 | 
			
		||||
 | 
			
		||||
static inline atom_t
 | 
			
		||||
AtomToSWIAtom(Atom at)
 | 
			
		||||
{
 | 
			
		||||
  TranslationEntry *p;
 | 
			
		||||
 | 
			
		||||
  if ((p = Yap_GetTranslationProp(at)) != NULL)
 | 
			
		||||
    return (atom_t)(p->Translation*2+1);
 | 
			
		||||
  return (atom_t)at;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
static inline Atom
 | 
			
		||||
SWIAtomToAtom(atom_t at)
 | 
			
		||||
{
 | 
			
		||||
  if ((CELL)at & 1)
 | 
			
		||||
    return SWI_Atoms[at/2];
 | 
			
		||||
  return (Atom)at;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Atom                  YAP_AtomFromSWIAtom(atom_t at);
 | 
			
		||||
atom_t                YAP_SWIAtomFromAtom(Atom at);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* This is silly, but let's keep it like that for now */
 | 
			
		||||
static inline Functor
 | 
			
		||||
SWIFunctorToFunctor(functor_t f)
 | 
			
		||||
{
 | 
			
		||||
  if (((CELL)(f) & 2) && ((CELL)f) < N_SWI_FUNCTORS*4+2)
 | 
			
		||||
    return SWI_Functors[((CELL)f)/4];
 | 
			
		||||
  return (Functor)f;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline Term
 | 
			
		||||
OpenList(int n USES_REGS)
 | 
			
		||||
{
 | 
			
		||||
  Term t;
 | 
			
		||||
  BACKUP_H();
 | 
			
		||||
 | 
			
		||||
  while (HR+2*n > ASP-1024) {
 | 
			
		||||
    if (!Yap_dogc( 0, (Term *)NULL PASS_REGS )) {
 | 
			
		||||
      RECOVER_H();
 | 
			
		||||
      return FALSE;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  t = AbsPair(HR);
 | 
			
		||||
  HR += 2*n;
 | 
			
		||||
 | 
			
		||||
  RECOVER_H();
 | 
			
		||||
  return t;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline Term
 | 
			
		||||
ExtendList(Term t0, Term inp)
 | 
			
		||||
{
 | 
			
		||||
  Term t;
 | 
			
		||||
  CELL *ptr = RepPair(t0);
 | 
			
		||||
  BACKUP_H();
 | 
			
		||||
 | 
			
		||||
  ptr[0] = inp;
 | 
			
		||||
  ptr[1] = AbsPair(ptr+2);
 | 
			
		||||
  t = AbsPair(ptr+2);
 | 
			
		||||
 | 
			
		||||
  RECOVER_H();
 | 
			
		||||
  return t;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline int
 | 
			
		||||
CloseList(Term t0, Term tail)
 | 
			
		||||
{
 | 
			
		||||
  CELL *ptr = RepPair(t0);
 | 
			
		||||
 | 
			
		||||
  RESET_VARIABLE(ptr-1);
 | 
			
		||||
  if (!Yap_unify((Term)(ptr-1), tail))
 | 
			
		||||
    return FALSE;
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* YAP codee */
 | 
			
		||||
 | 
			
		||||
#endif /* PL_SHARED_INCLUDE */
 | 
			
		||||
							
								
								
									
										82
									
								
								library/dialect/swi/os/pl-utf8.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								library/dialect/swi/os/pl-utf8.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,82 @@
 | 
			
		||||
/*  $Id$
 | 
			
		||||
 | 
			
		||||
    Part of SWI-Prolog
 | 
			
		||||
 | 
			
		||||
    Author:        Jan Wielemaker and Anjo Anjewierden
 | 
			
		||||
    E-mail:        jan@swi.psy.uva.nl
 | 
			
		||||
    WWW:           http://www.swi-prolog.org
 | 
			
		||||
    Copyright (C): 1985-2002, University of Amsterdam
 | 
			
		||||
 | 
			
		||||
    This library is free software; you can redistribute it and/or
 | 
			
		||||
    modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
    License as published by the Free Software Foundation; either
 | 
			
		||||
    version 2.1 of the License, or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
    This library is distributed in the hope that it will be useful,
 | 
			
		||||
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
    Lesser General Public License for more details.
 | 
			
		||||
 | 
			
		||||
    You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
    License along with this library; if not, write to the Free Software
 | 
			
		||||
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef UTF8_H_INCLUDED
 | 
			
		||||
#define UTF8_H_INCLUDED
 | 
			
		||||
 | 
			
		||||
#include <wchar.h>
 | 
			
		||||
 | 
			
		||||
#define PL_MB_LEN_MAX 16
 | 
			
		||||
 | 
			
		||||
#define UTF8_MALFORMED_REPLACEMENT 0xfffd
 | 
			
		||||
 | 
			
		||||
#define ISUTF8_MB(c) ((unsigned)(c) >= 0xc0 && (unsigned)(c) <= 0xfd)
 | 
			
		||||
 | 
			
		||||
#define ISUTF8_CB(c)  (((c)&0xc0) == 0x80) /* Is continuation byte */
 | 
			
		||||
#define ISUTF8_FB2(c) (((c)&0xe0) == 0xc0)
 | 
			
		||||
#define ISUTF8_FB3(c) (((c)&0xf0) == 0xe0)
 | 
			
		||||
#define ISUTF8_FB4(c) (((c)&0xf8) == 0xf0)
 | 
			
		||||
#define ISUTF8_FB5(c) (((c)&0xfc) == 0xf8)
 | 
			
		||||
#define ISUTF8_FB6(c) (((c)&0xfe) == 0xfc)
 | 
			
		||||
 | 
			
		||||
#define UTF8_FBN(c) (!(c&0x80)     ? 0 : \
 | 
			
		||||
		     ISUTF8_FB2(c) ? 1 : \
 | 
			
		||||
		     ISUTF8_FB3(c) ? 2 : \
 | 
			
		||||
		     ISUTF8_FB4(c) ? 3 : \
 | 
			
		||||
		     ISUTF8_FB5(c) ? 4 : \
 | 
			
		||||
		     ISUTF8_FB6(c) ? 5 : -1)
 | 
			
		||||
#define UTF8_FBV(c,n) ( n == 0 ? c : (c & ((0x01<<(6-n))-1)) )
 | 
			
		||||
 | 
			
		||||
#define utf8_get_char(in, chr) \
 | 
			
		||||
	(*(in) & 0x80 ? _PL__utf8_get_char(in, chr) \
 | 
			
		||||
		      : (*(chr) = *(in), (char *)(in)+1))
 | 
			
		||||
#define utf8_skip_char(in) \
 | 
			
		||||
	(*(in) & 0x80 ? _PL__utf8_skip_char(in) \
 | 
			
		||||
		      : (char *)(in)+1)
 | 
			
		||||
#define utf8_put_char(out, chr) \
 | 
			
		||||
	((chr) < 0x80 ? out[0]=(char)(chr), out+1 \
 | 
			
		||||
		      : _PL__utf8_put_char(out, (chr)))
 | 
			
		||||
 | 
			
		||||
extern char *_PL__utf8_get_char(const char *in, int *chr);
 | 
			
		||||
extern char *_PL__utf8_put_char(char *out, int chr);
 | 
			
		||||
extern char *_PL__utf8_skip_char(const char *out);
 | 
			
		||||
 | 
			
		||||
extern size_t utf8_strlen(const char *s, size_t len);
 | 
			
		||||
extern size_t utf8_strlen1(const char *s);
 | 
			
		||||
extern const char * utf8_skip(const char *s, int n);
 | 
			
		||||
extern int    utf8_strncmp(const char *s1, const char *s2, size_t n);
 | 
			
		||||
extern int    utf8_strprefix(const char *s1, const char *s2);
 | 
			
		||||
/// copy a wide string to an UTF-8 version.
 | 
			
		||||
extern char *utf8_wcscpy(char *sf, const wchar_t *s0);
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
  S_ASCII,
 | 
			
		||||
  S_LATIN,
 | 
			
		||||
  S_WIDE
 | 
			
		||||
} unicode_type_t;
 | 
			
		||||
 | 
			
		||||
extern unicode_type_t _PL__utf8_type(const char *in0, size_t len);
 | 
			
		||||
 | 
			
		||||
#endif /*UTF8_H_INCLUDED*/
 | 
			
		||||
@@ -34,8 +34,6 @@ typedef Term		(*Func)(term_t);	/* foreign functions */
 | 
			
		||||
extern const char *Yap_GetCurrentPredName(void);
 | 
			
		||||
extern Int     Yap_GetCurrentPredArity(void);
 | 
			
		||||
extern term_t Yap_fetch_module_for_format(term_t args, Term *modp);
 | 
			
		||||
extern IOENC Yap_DefaultEncoding(void);
 | 
			
		||||
extern void Yap_SetDefaultEncoding(IOENC);
 | 
			
		||||
extern void Yap_setCurrentSourceLocation( void *rd );
 | 
			
		||||
extern void   *Yap_GetStreamHandle(Atom at);
 | 
			
		||||
extern void	Yap_WriteAtom(IOSTREAM *s, Atom atom);
 | 
			
		||||
@@ -233,9 +231,9 @@ unblockSignal(int sig)
 | 
			
		||||
atom_t ATOM_;
 | 
			
		||||
 | 
			
		||||
#if THREADS
 | 
			
		||||
intptr_t system_thread_id(PL_thread_info_t *info);
 | 
			
		||||
intptr_t system_thread_id(void);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
extern Term Yap_StringToTerm(const char *s, size_t len, term_t bindings);
 | 
			
		||||
extern Term Yap_StringToTerm(const char *s, size_t len, encoding_t enc, int prio,Term *bindingsp);
 | 
			
		||||
 | 
			
		||||
#endif /* PL_YAP_H */
 | 
			
		||||
@@ -41,7 +41,6 @@ static char SccsId[] = "%W% %G%";
 | 
			
		||||
#include "absmi.h"
 | 
			
		||||
#include "yapio.h"
 | 
			
		||||
#include "alloc.h"
 | 
			
		||||
#include "pl-incl.h"
 | 
			
		||||
#include <math.h>
 | 
			
		||||
#if STDC_HEADERS
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
@@ -111,8 +110,8 @@ static char SccsId[] = "%W% %G%";
 | 
			
		||||
static void
 | 
			
		||||
Yap_FileError(yap_error_number type, Term where, const char *format,...)
 | 
			
		||||
{
 | 
			
		||||
  GET_LD
 | 
			
		||||
    if ( truePrologFlag(PLFLAG_FILEERRORS) ) {
 | 
			
		||||
  
 | 
			
		||||
    if ( trueLocalPrologFlag(FILEERRORS_FLAG) ) {
 | 
			
		||||
      va_list ap;
 | 
			
		||||
 | 
			
		||||
      va_start (ap, format);
 | 
			
		||||
@@ -133,11 +132,11 @@ static Int p_system( USES_REGS1 );
 | 
			
		||||
static Int p_mv( USES_REGS1 );
 | 
			
		||||
static Int p_dir_sp( USES_REGS1 );
 | 
			
		||||
static void InitRandom(void);
 | 
			
		||||
static Int p_srandom( USES_REGS1 );
 | 
			
		||||
static Int p_alarm( USES_REGS1 );
 | 
			
		||||
static Int p_getenv( USES_REGS1 );
 | 
			
		||||
static Int p_putenv( USES_REGS1 );
 | 
			
		||||
static bool set_fpu_exceptions(bool);
 | 
			
		||||
static char *expandVars(const char *pattern, char *expanded, int maxlen);
 | 
			
		||||
#ifdef MACYAP
 | 
			
		||||
static int chdir(char *);
 | 
			
		||||
/* #define signal	skel_signal */
 | 
			
		||||
@@ -354,9 +353,12 @@ char *libdir = NULL;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
IsAbsolutePath(const char *p)
 | 
			
		||||
bool
 | 
			
		||||
Yap_IsAbsolutePath(const char *p0)
 | 
			
		||||
{
 | 
			
		||||
  // verify first if expansion is needed: ~/ or $HOME/
 | 
			
		||||
  char c[MAXPATHLEN+1];
 | 
			
		||||
  char *p = expandVars( p0, c, MAXPATHLEN );
 | 
			
		||||
#if _WIN32 || __MINGW32__
 | 
			
		||||
  return !PathIsRelative(p);
 | 
			
		||||
#else
 | 
			
		||||
@@ -375,6 +377,7 @@ yapExpandVars (const char *source, char *result)
 | 
			
		||||
{
 | 
			
		||||
  const char *src = source;
 | 
			
		||||
  char *res = result;
 | 
			
		||||
 | 
			
		||||
  if(result == NULL)
 | 
			
		||||
    result = malloc( YAP_FILENAME_MAX+1);
 | 
			
		||||
 | 
			
		||||
@@ -458,14 +461,14 @@ yapExpandVars (const char *source, char *result)
 | 
			
		||||
  return result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
char *
 | 
			
		||||
static char *
 | 
			
		||||
expandVars(const char *pattern, char *expanded, int maxlen)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
  return yapExpandVars(pattern, expanded);
 | 
			
		||||
#if ( __WIN32 || __MINGW32__ ) && defined(ENABLE_SYSTEM_EXPANSION)
 | 
			
		||||
  DWORD  retval=0;
 | 
			
		||||
  // notice that the file does not need to exist1
 | 
			
		||||
  // notice that the file does not need to exist
 | 
			
		||||
  if (ini == NULL) {
 | 
			
		||||
    ini = malloc(strlen(w)+1);
 | 
			
		||||
  }
 | 
			
		||||
@@ -574,13 +577,13 @@ unix2win( const char *source, char *target, int max)
 | 
			
		||||
#if O_XOS
 | 
			
		||||
char *
 | 
			
		||||
PrologPath(const char *p, char *buf, size_t len)
 | 
			
		||||
{ GET_LD
 | 
			
		||||
    int flags = (truePrologFlag(PLFLAG_FILE_CASE) ? 0 : XOS_DOWNCASE);
 | 
			
		||||
{ 
 | 
			
		||||
  int flags = (trueGlobalPrologFlag(PLFLAG_FILE_CASE) ? 0 : XOS_DOWNCASE);
 | 
			
		||||
 | 
			
		||||
  return _xos_canonical_filename(p, buf, len, flags);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
char *
 | 
			
		||||
static char *
 | 
			
		||||
OsPath(const char *p, char *buf)
 | 
			
		||||
{
 | 
			
		||||
  if()z
 | 
			
		||||
@@ -589,7 +592,7 @@ OsPath(const char *p, char *buf)
 | 
			
		||||
  return buf;
 | 
			
		||||
}
 | 
			
		||||
#else
 | 
			
		||||
char *
 | 
			
		||||
static char *
 | 
			
		||||
OsPath(const char *X, char *Y) {
 | 
			
		||||
  if (X!=Y && Y) strcpy(Y,X);
 | 
			
		||||
  return (char *)Y  ;
 | 
			
		||||
@@ -602,9 +605,9 @@ OsPath(const char *X, char *Y) {
 | 
			
		||||
#define HAVE_WORDEXP 1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
bool ChDir(const char *path) {
 | 
			
		||||
static bool ChDir(const char *path) {
 | 
			
		||||
  bool rc = false;
 | 
			
		||||
  char *qpath = AbsoluteFile(path, NULL);
 | 
			
		||||
  char *qpath = Yap_AbsoluteFile(path, NULL);
 | 
			
		||||
 | 
			
		||||
#ifdef __ANDROID__
 | 
			
		||||
  if (GLOBAL_AssetsWD) {
 | 
			
		||||
@@ -630,7 +633,7 @@ bool ChDir(const char *path) {
 | 
			
		||||
  }
 | 
			
		||||
#endif
 | 
			
		||||
#if _WIN32 || defined(__MINGW32__)
 | 
			
		||||
  GET_LD
 | 
			
		||||
  
 | 
			
		||||
    if ((rc = (SetCurrentDirectory(qpath) != 0)) == 0)
 | 
			
		||||
      {
 | 
			
		||||
	Yap_WinError("SetCurrentDirectory failed" );
 | 
			
		||||
@@ -675,6 +678,7 @@ static char *myrealpath( const char *path, char *out)
 | 
			
		||||
{
 | 
			
		||||
#if _WIN32 || defined(__MINGW32__)
 | 
			
		||||
  DWORD  retval=0;
 | 
			
		||||
 | 
			
		||||
  // notice that the file does not need to exist
 | 
			
		||||
  retval = GetFullPathName(path,
 | 
			
		||||
			   YAP_FILENAME_MAX,
 | 
			
		||||
@@ -713,9 +717,9 @@ static char *myrealpath( const char *path, char *out)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
char *
 | 
			
		||||
AbsoluteFile(const char *spec, char *tmp)
 | 
			
		||||
Yap_AbsoluteFile(const char *spec, char *tmp)
 | 
			
		||||
{
 | 
			
		||||
  GET_LD
 | 
			
		||||
  
 | 
			
		||||
    char *rc;
 | 
			
		||||
  char o[YAP_FILENAME_MAX+1];
 | 
			
		||||
#if _WIN32 || defined(__MINGW32__)
 | 
			
		||||
@@ -731,7 +735,7 @@ AbsoluteFile(const char *spec, char *tmp)
 | 
			
		||||
      return NULL;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if ( 1 || truePrologFlag(PLFLAG_FILEVARS) )
 | 
			
		||||
  if ( 1 || trueGlobalPrologFlag(FILE_NAME_VARIABLES_FLAG) )
 | 
			
		||||
    {
 | 
			
		||||
      spec=expandVars(spec,o,YAP_FILENAME_MAX);
 | 
			
		||||
    }
 | 
			
		||||
@@ -741,7 +745,8 @@ AbsoluteFile(const char *spec, char *tmp)
 | 
			
		||||
  return rc;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
char *canoniseFileName( char *path) {
 | 
			
		||||
/*
 | 
			
		||||
static char *canoniseFileName( char *path) {
 | 
			
		||||
#if HAVE_REALPATH && HAVE_BASENAME
 | 
			
		||||
#if _WIN32 || defined(__MINGW32__)
 | 
			
		||||
  char *o = malloc(YAP_FILENAME_MAX+1);
 | 
			
		||||
@@ -763,13 +768,56 @@ char *canoniseFileName( char *path) {
 | 
			
		||||
  return rc;
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
atom_t TemporaryFile( const char *prefix, int *fd) {
 | 
			
		||||
static Int
 | 
			
		||||
absolute_file_name( USES_REGS1 )
 | 
			
		||||
{
 | 
			
		||||
  Term t = Deref(ARG1);
 | 
			
		||||
  const char *fp;
 | 
			
		||||
  bool rc;
 | 
			
		||||
  char s[MAXPATHLEN+1];
 | 
			
		||||
  
 | 
			
		||||
  if (IsVarTerm(t)) {
 | 
			
		||||
    Yap_Error(INSTANTIATION_ERROR, t, "absolute_file_name");
 | 
			
		||||
    return false;
 | 
			
		||||
  } else if (!IsAtomTerm(t)) {
 | 
			
		||||
    Yap_Error(TYPE_ERROR_ATOM, t, "absolute_file_name");
 | 
			
		||||
    return false;
 | 
			
		||||
  }
 | 
			
		||||
  if (!(fp = Yap_AbsoluteFile( RepAtom(AtomOfTerm(t))->StrOfAE, s)))
 | 
			
		||||
    return false;
 | 
			
		||||
  rc = Yap_unify(MkAtomTerm(Yap_LookupAtom(fp)), ARG2);
 | 
			
		||||
  if (fp != s)
 | 
			
		||||
    free( (void *)fp );
 | 
			
		||||
  return rc;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static Int
 | 
			
		||||
prolog_to_os_filename( USES_REGS1 )
 | 
			
		||||
{
 | 
			
		||||
  Term t = Deref(ARG1);
 | 
			
		||||
  const char *fp;
 | 
			
		||||
  char out[MAXPATHLEN+1];
 | 
			
		||||
  
 | 
			
		||||
  if (IsVarTerm(t)) {
 | 
			
		||||
    Yap_Error(INSTANTIATION_ERROR, t, "absolute_file_name");
 | 
			
		||||
    return false;
 | 
			
		||||
  } else if (!IsAtomTerm(t)) {
 | 
			
		||||
    Yap_Error(TYPE_ERROR_ATOM, t, "absolute_file_name");
 | 
			
		||||
    return false;
 | 
			
		||||
  }
 | 
			
		||||
  if (!(fp = OsPath( RepAtom(AtomOfTerm(t))->StrOfAE, out)))
 | 
			
		||||
    return false;
 | 
			
		||||
  return Yap_unify(MkAtomTerm(Yap_LookupAtom(fp)), ARG2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Atom Yap_TemporaryFile( const char *prefix, int *fd) {
 | 
			
		||||
#if HAVE_MKSTEMP
 | 
			
		||||
  char *tmp = malloc(PATH_MAX);
 | 
			
		||||
  int n;
 | 
			
		||||
  int f;
 | 
			
		||||
  if (tmp == NULL) return (atom_t)0;
 | 
			
		||||
  if (tmp == NULL) return NIL;
 | 
			
		||||
  strncpy(tmp, prefix, PATH_MAX-1);
 | 
			
		||||
  n = strlen( tmp );
 | 
			
		||||
  if (n >= 6 &&
 | 
			
		||||
@@ -785,9 +833,9 @@ atom_t TemporaryFile( const char *prefix, int *fd) {
 | 
			
		||||
    f = mkstemp(tmp);
 | 
			
		||||
  }
 | 
			
		||||
  if (fd) *fd = f;
 | 
			
		||||
  return  YAP_SWIAtomFromAtom(Yap_LookupAtom(tmp));
 | 
			
		||||
  return  Yap_LookupAtom(tmp);
 | 
			
		||||
#else
 | 
			
		||||
  return ATOM_nil;
 | 
			
		||||
  return AtomNil;
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -827,9 +875,8 @@ initSysPath(Term tlib, Term tcommons, bool dir_done, bool commons_done) {
 | 
			
		||||
        if (! Yap_unify( tlib,
 | 
			
		||||
                         MkAtomTerm(Yap_LookupAtom(LOCAL_FileNameBuf))) )
 | 
			
		||||
          return FALSE;
 | 
			
		||||
	dir_done = true;
 | 
			
		||||
      }
 | 
			
		||||
    dir_done = true;
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
  if (!commons_done) {
 | 
			
		||||
    LOCAL_FileNameBuf[len] = '\0';
 | 
			
		||||
@@ -905,20 +952,20 @@ initSysPath(Term tlib, Term tcommons, bool dir_done, bool commons_done) {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static Int
 | 
			
		||||
p_libraries_path( USES_REGS1 )
 | 
			
		||||
libraries_directories( USES_REGS1 )
 | 
			
		||||
{
 | 
			
		||||
  return initSysPath( ARG1, ARG2 , false, false );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static Int
 | 
			
		||||
p_library_dir( USES_REGS1 )
 | 
			
		||||
system_library( USES_REGS1 )
 | 
			
		||||
{
 | 
			
		||||
  return initSysPath( ARG1, MkVarTerm(), false, true );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static Int
 | 
			
		||||
p_commons_dir( USES_REGS1 )
 | 
			
		||||
commons_library( USES_REGS1 )
 | 
			
		||||
{
 | 
			
		||||
  return initSysPath( MkVarTerm(), ARG1, true, false );
 | 
			
		||||
}
 | 
			
		||||
@@ -1502,7 +1549,7 @@ real_cputime ()
 | 
			
		||||
static hrtime_t StartOfWTimes;
 | 
			
		||||
 | 
			
		||||
/* since last call to walltime */
 | 
			
		||||
#define  LastWtime (*(hrtime_t *)ALIGN_BY_TYPE(LastWtimePtr,hrtime_t))
 | 
			
		||||
#define  LastWtime (*(hrtime_t *)ALIGN_BY_TYPE(GLOBAL_LastWtimePtr,hrtime_t))
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
InitWTime (void)
 | 
			
		||||
@@ -1513,7 +1560,7 @@ InitWTime (void)
 | 
			
		||||
static void
 | 
			
		||||
InitLastWtime(void) {
 | 
			
		||||
  /* ask for twice the space in order to guarantee alignment */
 | 
			
		||||
  LastWtimePtr = (void *)Yap_AllocCodeSpace(2*sizeof(hrtime_t));
 | 
			
		||||
  GLOBAL_LastWtimePtr = (void *)Yap_AllocCodeSpace(2*sizeof(hrtime_t));
 | 
			
		||||
  LastWtime = StartOfWTimes;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -1542,7 +1589,7 @@ void Yap_walltime_interval(Int *now,Int *interval)
 | 
			
		||||
static struct timeval StartOfWTimes;
 | 
			
		||||
 | 
			
		||||
/* since last call to walltime */
 | 
			
		||||
#define LastWtime (*(struct timeval *)LastWtimePtr)
 | 
			
		||||
#define LastWtime (*(struct timeval *)GLOBAL_LastWtimePtr)
 | 
			
		||||
 | 
			
		||||
/* store user time in this variable */
 | 
			
		||||
static void
 | 
			
		||||
@@ -1553,7 +1600,7 @@ InitWTime (void)
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
InitLastWtime(void) {
 | 
			
		||||
  LastWtimePtr = (void *)Yap_AllocCodeSpace(sizeof(struct timeval));
 | 
			
		||||
  GLOBAL_LastWtimePtr = (void *)Yap_AllocCodeSpace(sizeof(struct timeval));
 | 
			
		||||
  LastWtime.tv_usec = StartOfWTimes.tv_usec;
 | 
			
		||||
  LastWtime.tv_sec = StartOfWTimes.tv_sec;
 | 
			
		||||
}
 | 
			
		||||
@@ -1595,7 +1642,7 @@ void Yap_walltime_interval(Int *now,Int *interval)
 | 
			
		||||
static struct _timeb StartOfWTimes;
 | 
			
		||||
 | 
			
		||||
/* since last call to walltime */
 | 
			
		||||
#define LastWtime (*(struct timeb *)LastWtimePtr)
 | 
			
		||||
#define LastWtime (*(struct timeb *)GLOBAL_LastWtimePtr)
 | 
			
		||||
 | 
			
		||||
/* store user time in this variable */
 | 
			
		||||
static void
 | 
			
		||||
@@ -1606,7 +1653,7 @@ InitWTime (void)
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
InitLastWtime(void) {
 | 
			
		||||
  LastWtimePtr = (void *)Yap_AllocCodeSpace(sizeof(struct timeb));
 | 
			
		||||
  GLOBAL_LastWtimePtr = (void *)Yap_AllocCodeSpace(sizeof(struct timeb));
 | 
			
		||||
  LastWtime.time = StartOfWTimes.time;
 | 
			
		||||
  LastWtime.millitm = StartOfWTimes.millitm;
 | 
			
		||||
}
 | 
			
		||||
@@ -1643,7 +1690,7 @@ void Yap_walltime_interval(Int *now,Int *interval)
 | 
			
		||||
 | 
			
		||||
static clock_t StartOfWTimes;
 | 
			
		||||
 | 
			
		||||
#define LastWtime (*(clock_t *)LastWtimePtr)
 | 
			
		||||
#define LastWtime (*(clock_t *)GLOBAL_LastWtimePtr)
 | 
			
		||||
 | 
			
		||||
/* store user time in this variable */
 | 
			
		||||
static void
 | 
			
		||||
@@ -1654,7 +1701,7 @@ InitWTime (void)
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
InitLastWtime(void) {
 | 
			
		||||
  LastWtimePtr = (void *)Yap_AllocCodeSpace(sizeof(clock_t));
 | 
			
		||||
  GLOBAL_LastWtimePtr = (void *)Yap_AllocCodeSpace(sizeof(clock_t));
 | 
			
		||||
  LastWtime = StartOfWTimes;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -1671,7 +1718,7 @@ void Yap_walltime_interval(Int *now,Int *interval)
 | 
			
		||||
  clock_t t;
 | 
			
		||||
  t = times(NULL);
 | 
			
		||||
  *now = ((t - StartOfWTimes)*1000) / TicksPerSec;
 | 
			
		||||
  *interval = (t - LastWtime) * 1000 / TicksPerSec;
 | 
			
		||||
  *interval = (t - GLOBAL_LastWtime) * 1000 / TicksPerSec;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* HAVE_TIMES */
 | 
			
		||||
@@ -1776,7 +1823,7 @@ p_release_random_state ( USES_REGS1 )
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
static Int
 | 
			
		||||
p_srandom ( USES_REGS1 )
 | 
			
		||||
Srandom ( USES_REGS1 )
 | 
			
		||||
{
 | 
			
		||||
  register Term t0 = Deref (ARG1);
 | 
			
		||||
  if (IsVarTerm (t0)) {
 | 
			
		||||
@@ -2320,11 +2367,6 @@ MSCHandleSignal(DWORD dwCtrlType) {
 | 
			
		||||
    return volume_header(file);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  char * PL_cwd(char *cwd, size_t cwdlen)
 | 
			
		||||
  {
 | 
			
		||||
    return (char *)Yap_getcwd( (const char *)cwd, cwdlen );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const char * Yap_getcwd(const char *cwd, size_t cwdlen)
 | 
			
		||||
  {
 | 
			
		||||
#if _WIN32 || defined(__MINGW32__)
 | 
			
		||||
@@ -2334,17 +2376,35 @@ MSCHandleSignal(DWORD dwCtrlType) {
 | 
			
		||||
	return NULL;
 | 
			
		||||
      }
 | 
			
		||||
    return (char *)cwd;
 | 
			
		||||
#else
 | 
			
		||||
#if __ANDROID__
 | 
			
		||||
#elif __ANDROID__
 | 
			
		||||
    if (GLOBAL_AssetsWD) {
 | 
			
		||||
      return strncpy( (char *)cwd, (const char *)GLOBAL_AssetsWD, cwdlen);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
    return getcwd((char *)cwd, cwdlen);
 | 
			
		||||
#endif
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static Int
 | 
			
		||||
  working_directory(USES_REGS1)
 | 
			
		||||
  {
 | 
			
		||||
    char dir[YAP_FILENAME_MAX+1];
 | 
			
		||||
    Term t1 = Deref(ARG1), t2;
 | 
			
		||||
    if ( !IsVarTerm( t1 ) && !IsAtomTerm(t1) ) {
 | 
			
		||||
      Yap_Error(TYPE_ERROR_ATOM, t1, "working_directory");
 | 
			
		||||
    }
 | 
			
		||||
    if (!Yap_unify( t1, MkAtomTerm(Yap_LookupAtom(Yap_getcwd(dir,YAP_FILENAME_MAX )))) )
 | 
			
		||||
      return false;
 | 
			
		||||
    t2 = Deref(ARG2);
 | 
			
		||||
    if ( IsVarTerm( t2 ) ) {
 | 
			
		||||
      Yap_Error(INSTANTIATION_ERROR, t2, "working_directory");
 | 
			
		||||
    }    
 | 
			
		||||
   if ( !IsAtomTerm(t2) ) {
 | 
			
		||||
      Yap_Error(TYPE_ERROR_ATOM, t2, "working_directory");
 | 
			
		||||
    }
 | 
			
		||||
   ChDir(RepAtom(AtomOfTerm(t2))->StrOfAE);
 | 
			
		||||
   return true;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static char *
 | 
			
		||||
    expandWithPrefix(const char *source, const char *root, char *result)
 | 
			
		||||
@@ -2355,12 +2415,12 @@ MSCHandleSignal(DWORD dwCtrlType) {
 | 
			
		||||
 | 
			
		||||
    work = expandVars( source, ares1, YAP_FILENAME_MAX);
 | 
			
		||||
    // expand names first
 | 
			
		||||
    if (root && !IsAbsolutePath( source ) ) {
 | 
			
		||||
    if (root && !Yap_IsAbsolutePath( source ) ) {
 | 
			
		||||
      char ares2[YAP_FILENAME_MAX+1];
 | 
			
		||||
      strncpy( ares2, root, YAP_FILENAME_MAX );
 | 
			
		||||
      strncat( ares2, "/", YAP_FILENAME_MAX );
 | 
			
		||||
      strncat( ares2, work, YAP_FILENAME_MAX );
 | 
			
		||||
      return AbsoluteFile( ares2, result );
 | 
			
		||||
      return Yap_AbsoluteFile( ares2, result );
 | 
			
		||||
    } else {
 | 
			
		||||
      // expand path
 | 
			
		||||
      return myrealpath( work, result);
 | 
			
		||||
@@ -3335,8 +3395,8 @@ MSCHandleSignal(DWORD dwCtrlType) {
 | 
			
		||||
    Yap_ReInitWallTime (void)
 | 
			
		||||
  {
 | 
			
		||||
    InitWTime();
 | 
			
		||||
    if (Yap_heap_regs->last_wtime != NULL)
 | 
			
		||||
      Yap_FreeCodeSpace(Yap_heap_regs->last_wtime);
 | 
			
		||||
    if (Yap_global->LastWtimePtr_ != NULL)
 | 
			
		||||
      Yap_FreeCodeSpace(Yap_global->LastWtimePtr_);
 | 
			
		||||
    InitLastWtime();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -3615,23 +3675,24 @@ MSCHandleSignal(DWORD dwCtrlType) {
 | 
			
		||||
 | 
			
		||||
    /* can only do after heap is initialised */
 | 
			
		||||
    InitLastWtime();
 | 
			
		||||
    Yap_InitCPred ("srandom", 1, p_srandom, SafePredFlag);
 | 
			
		||||
    Yap_InitCPred ("srandom", 1, Srandom, SafePredFlag);
 | 
			
		||||
#if HAVE_RANDOM
 | 
			
		||||
    Yap_InitCPred ("init_random_state", 3, p_init_random_state, SafePredFlag);
 | 
			
		||||
    Yap_InitCPred ("set_random_state", 2, p_set_random_state, SafePredFlag);
 | 
			
		||||
    Yap_InitCPred ("release_random_state", 1, p_release_random_state, SafePredFlag);
 | 
			
		||||
#endif
 | 
			
		||||
    Yap_InitCPred ("$absolute_file_name", 2, absolute_file_name, SafePredFlag|SyncPredFlag);
 | 
			
		||||
    Yap_InitCPred ("log_event", 1, p_log_event, SafePredFlag|SyncPredFlag);
 | 
			
		||||
    Yap_InitCPred ("sh", 0, p_sh, SafePredFlag|SyncPredFlag);
 | 
			
		||||
    Yap_InitCPred ("$shell", 1, p_shell, SafePredFlag|SyncPredFlag|UserCPredFlag);
 | 
			
		||||
    Yap_InitCPred ("$shell", 1, p_shell, SafePredFlag|SyncPredFlag);
 | 
			
		||||
    Yap_InitCPred ("system", 1, p_system, SafePredFlag|SyncPredFlag|UserCPredFlag);
 | 
			
		||||
    Yap_InitCPred ("rename", 2, p_mv, SafePredFlag|SyncPredFlag);
 | 
			
		||||
    Yap_InitCPred ("$yap_home", 1, p_yap_home, SafePredFlag);
 | 
			
		||||
    Yap_InitCPred ("$yap_paths", 3, p_yap_paths, SafePredFlag);
 | 
			
		||||
    Yap_InitCPred ("$dir_separator", 1, p_dir_sp, SafePredFlag);
 | 
			
		||||
    Yap_InitCPred ("libraries_directories",2, p_libraries_path, 0);
 | 
			
		||||
    Yap_InitCPred ("system_library", 1, p_library_dir, 0);
 | 
			
		||||
    Yap_InitCPred ("commons_library", 1, p_commons_dir, 0);
 | 
			
		||||
    Yap_InitCPred ("libraries_directories",2, libraries_directories, 0);
 | 
			
		||||
    Yap_InitCPred ("system_library", 1, system_library, 0);
 | 
			
		||||
    Yap_InitCPred ("commons_library", 1, commons_library, 0);
 | 
			
		||||
    Yap_InitCPred ("$alarm", 4, p_alarm, SafePredFlag|SyncPredFlag);
 | 
			
		||||
    Yap_InitCPred ("$getenv", 2, p_getenv, SafePredFlag);
 | 
			
		||||
    Yap_InitCPred ("$putenv", 2, p_putenv, SafePredFlag|SyncPredFlag);
 | 
			
		||||
@@ -3643,6 +3704,8 @@ MSCHandleSignal(DWORD dwCtrlType) {
 | 
			
		||||
    Yap_InitCPred ("$ld_path", 1, p_ld_path, SafePredFlag);
 | 
			
		||||
    Yap_InitCPred ("$address_bits", 1, p_address_bits, SafePredFlag);
 | 
			
		||||
    Yap_InitCPred ("$expand_file_name", 2, p_expand_file_name, SyncPredFlag);
 | 
			
		||||
    Yap_InitCPred ("working_directory", 2,working_directory, SyncPredFlag);
 | 
			
		||||
    Yap_InitCPred ("prolog_to_os_filename", 2, prolog_to_os_filename, SyncPredFlag);
 | 
			
		||||
    Yap_InitCPred ("$fpe_error", 0, p_fpe_error, 0);
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
    Yap_InitCPred ("win_registry_get_value", 3, p_win_registry_get_value,0);
 | 
			
		||||
@@ -1,4 +1,224 @@
 | 
			
		||||
/******************************************************************************\
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/******************************************************************************	\
 | 
			
		||||
*                                                                              *
 | 
			
		||||
*    SimpleCUDD library (www.cs.kuleuven.be/~theo/tools/simplecudd.html)       *
 | 
			
		||||
*  SimpleCUDD was developed at Katholieke Universiteit Leuven(www.kuleuven.be) *
 | 
			
		||||
@@ -193,6 +193,7 @@
 | 
			
		||||
#include <math.h>
 | 
			
		||||
#include <time.h>
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#include "../cudd_config.h"
 | 
			
		||||
#if HAVE_UTIL_H
 | 
			
		||||
#include <util.h>
 | 
			
		||||
#endif
 | 
			
		||||
@@ -192,6 +192,7 @@
 | 
			
		||||
#include <time.h>
 | 
			
		||||
#include "pqueue.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#include "../cudd_config.h"
 | 
			
		||||
#if HAVE_UTIL_H
 | 
			
		||||
#include <util.h>
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										0
									
								
								packages/swig/java/java_class_filelist
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packages/swig/java/java_class_filelist
									
									
									
									
									
										Normal file
									
								
							
		Reference in New Issue
	
	Block a user