be more struct; better support fir encodings.

This commit is contained in:
Vítor Santos Costa 2016-02-14 04:18:15 +00:00
parent fb966536a9
commit 05a978ce82
4 changed files with 54 additions and 53 deletions

View File

@ -1460,7 +1460,7 @@ OpenRestore(char *inpf, char *YapLibDir, CELL *Astate, CELL *ATrail, CELL *AStac
} }
FILE * FILE *
Yap_OpenRestore(char *inpf, char *YapLibDir) Yap_OpenRestore(const char *inpf, char *YapLibDir)
{ {
FILE *stream = NULL; FILE *stream = NULL;

View File

@ -258,21 +258,21 @@ Yap_readText( void *buf, seq_tv_t *inp, encoding_t *enc, int *minimal, size_t *l
if ( !(inp->type & (YAP_STRING_CHARS|YAP_STRING_WCHARS))) if ( !(inp->type & (YAP_STRING_CHARS|YAP_STRING_WCHARS)))
{ {
if ( !(inp->type & YAP_STRING_TERM)) { if ( !(inp->type & YAP_STRING_TERM)) {
if (IsVarTerm(inp->val.t)) { if (IsVarTerm(inp->val.t)) {
LOCAL_Error_TYPE = INSTANTIATION_ERROR; LOCAL_Error_TYPE = INSTANTIATION_ERROR;
} else if (!IsAtomTerm(inp->val.t) && inp->type == YAP_STRING_ATOM) { } else if (!IsAtomTerm(inp->val.t) && inp->type == YAP_STRING_ATOM) {
LOCAL_Error_TYPE = TYPE_ERROR_ATOM; LOCAL_Error_TYPE = TYPE_ERROR_ATOM;
} else if (!IsStringTerm(inp->val.t) && inp->type == YAP_STRING_STRING) { } else if (!IsStringTerm(inp->val.t) && inp->type == YAP_STRING_STRING) {
LOCAL_Error_TYPE = TYPE_ERROR_STRING; LOCAL_Error_TYPE = TYPE_ERROR_STRING;
}else if (!IsPairTerm(inp->val.t) && }else if (!IsPairTerm(inp->val.t) &&
!IsStringTerm(inp->val.t) && !IsStringTerm(inp->val.t) &&
inp->type == (YAP_STRING_ATOMS_CODES|YAP_STRING_STRING)) { inp->type == (YAP_STRING_ATOMS_CODES|YAP_STRING_STRING)) {
LOCAL_Error_TYPE = TYPE_ERROR_LIST; LOCAL_Error_TYPE = TYPE_ERROR_LIST;
} else if (!IsNumTerm(inp->val.t) && (inp->type & ( YAP_STRING_INT|YAP_STRING_FLOAT| YAP_STRING_BIG)) == inp->type) { } else if (!IsNumTerm(inp->val.t) && (inp->type & ( YAP_STRING_INT|YAP_STRING_FLOAT| YAP_STRING_BIG)) == inp->type) {
LOCAL_Error_TYPE = TYPE_ERROR_NUMBER; LOCAL_Error_TYPE = TYPE_ERROR_NUMBER;
}
LOCAL_Error_Term = inp->val.t;
} }
LOCAL_Error_Term = inp->val.t;
}
} }
if (LOCAL_Error_TYPE != YAP_NO_ERROR) if (LOCAL_Error_TYPE != YAP_NO_ERROR)
return NULL; return NULL;

View File

@ -326,10 +326,10 @@ real_path( EPath, File),
exists_directory(F). exists_directory(F).
'$check_file'(_F, _Type, none) :- !. '$check_file'(_F, _Type, none) :- !.
'$check_file'(F, _Type, exist) :- '$check_file'(F, _Type, exist) :-
'$access_file'(F, exist). % if it has a type cannot be a directory.. '$access_file'(F, exist). % if it has a type cannot be a directory..
'$check_file'(F, _Type, Access) :- '$check_file'(F, _Type, Access) :-
'$access_file'(F, Access), '$access_file'(F, Access),
\+ exists_directory(F). % if it has a type cannot be a directory.. \+ exists_directory(F). % if it has a type cannot be a directory..
'$suffix'(Last, _Opts) --> '$suffix'(Last, _Opts) -->
{ lists:append(_, [0'.|Alphas], Last), '$id'(Alphas, _, [] ) }, { lists:append(_, [0'.|Alphas], Last), '$id'(Alphas, _, [] ) },

View File

@ -422,7 +422,8 @@ stream_position_data(Prop, Term, Value) :-
'$stream_position_field'(line_position, 3). '$stream_position_field'(line_position, 3).
'$stream_position_field'(byte_count, 4). '$stream_position_field'(byte_count, 4).
'$set_encoding'(Enc) :-
stream_property(loop_stream, Enc).
%! @} %! @}