48 #define STREAM_PB_SIZE 8 53 #define STREAM_MODE_READ 0 54 #define STREAM_MODE_WRITE 1 55 #define STREAM_MODE_APPEND 2 57 #define STREAM_EOF_ACTION_ERROR 0 58 #define STREAM_EOF_ACTION_EOF_CODE 1 59 #define STREAM_EOF_ACTION_RESET 2 61 #define STREAM_BUFFERING_NONE 0 62 #define STREAM_BUFFERING_LINE 1 63 #define STREAM_BUFFERING_BLOCK 2 66 #define STREAM_EOF_NOT 0 67 #define STREAM_EOF_AT 1 68 #define STREAM_EOF_PAST 2 73 #define STREAM_CHECK_VALID 0 74 #define STREAM_CHECK_EXIST 1 75 #define STREAM_CHECK_INPUT 2 76 #define STREAM_CHECK_OUTPUT 3 81 #define STREAM_FCT_UNDEFINED ((StmFct) (-1)) 87 #define TERM_STREAM_ATOM 1 88 #define TERM_STREAM_CHARS 2 89 #define TERM_STREAM_CODES 3 104 unsigned reposition:1;
105 unsigned eof_action:2;
106 unsigned buffering:2;
107 unsigned special_close:1;
191 #ifdef STREAM_SUPP_FILE 223 int pl_atom_user_error;
426 #define PB_Init(pb) pb.ptr = pb.buff, pb.nb_elems = 0; 430 #define PB_Is_Empty(pb) (pb.nb_elems == 0) 434 #define PB_Push(pb, elem) \ 437 *(pb.ptr) = (elem); \ 438 if (pb.ptr != pb.buff + STREAM_PB_SIZE - 1) \ 442 if (pb.nb_elems < STREAM_PB_SIZE) \ 450 #define PB_Pop(pb, elem) \ 453 if (pb.ptr != pb.buff) \ 456 pb.ptr = pb.buff + STREAM_PB_SIZE - 1; \ 465 #define PB_Top(pb, elem) \ 468 if (pb.ptr != pb.buff) \ 469 (elem) = pb.ptr[-1]; \ 471 (elem) = pb.buff[STREAM_PB_SIZE - 1]; \ WamWord pl_last_input_sora
int Pl_Io_Fileno_Of_Stream(int stm)
Definition: stream_supp.c:1007
PlLong file
Definition: stream_supp.h:140
StmFct fct_seek
Definition: stream_supp.h:150
CHAR32_T Pl_Stream_Get_Key(StmInf *pstm, Bool echo, Bool catch_ctrl_c)
Definition: stream_supp.c:1275
PlLong char_count
Definition: stream_supp.h:156
PStmLst next
Definition: stream_supp.h:133
#define CHAR32_T
Definition: pl_wchar.h:9
int pl_stm_top_level_input
Bool Pl_Add_Alias_To_Stream(int atom_alias, int stm)
Definition: stream_supp.c:541
void Pl_Close_Stm(int stm, Bool force)
Definition: stream_c.c:496
WamWord pl_last_output_sora
char * Pl_Term_Write_Str_Stream(int stm)
Definition: stream_supp.c:1912
PbStk pb_char
Definition: stream_supp.h:154
StmLst * mirror_of
Definition: stream_supp.h:143
StmLst * mirror
Definition: stream_supp.h:142
int Pl_Stream_Set_Position_LC(StmInf *pstm, PlLong line_count, PlLong line_pos)
Definition: stream_supp.c:1724
void Pl_Stream_Putc(CHAR32_T c, StmInf *pstm)
Definition: stream_supp.c:1512
int(* StmFct)()
Definition: stream_supp.h:126
#define STREAM_PB_SIZE
Definition: stream_supp.h:48
static CHAR32_T c
Definition: scan_supp.c:65
Definition: stream_supp.h:115
void Pl_Delete_Str_Stream(int stm)
Definition: stream_supp.c:1884
void Pl_Add_Mirror_To_Stream(int stm, int m_stm)
Definition: stream_supp.c:605
WamWord Pl_Make_Stream_Tagged_Word(int stm)
Definition: stream_supp.c:915
int pl_stm_debugger_input
Definition: stream_supp.h:176
int pl_stm_top_level_output
StmFct fct_close
Definition: stream_supp.h:148
char * format
Definition: hexfilter.c:78
void Pl_Stream_Flush(StmInf *pstm)
Definition: stream_supp.c:1584
Definition: stream_supp.h:130
StmFct fct_clearerr
Definition: stream_supp.h:151
Bool buff_alloc_size
Definition: stream_supp.h:180
char * ptr
Definition: stream_supp.h:179
int Pl_Add_Stream_For_Stdio_File(char *path, int mode, Bool text)
Definition: stream_supp.c:377
int pl_atom_stream_position
int Pl_Add_Str_Stream(char *buff, int prop_other)
Definition: stream_supp.c:1820
intptr_t PlLong
Definition: gprolog.h:88
char * buff
Definition: stream_supp.h:178
int Pl_Get_Stream_Or_Alias(WamWord sora_word, int test_mask)
Definition: stream_supp.c:793
int Pl_Add_Stream_For_Stdio_Desc(FILE *f, int atom_path, int mode, int text)
Definition: stream_supp.c:352
StmFct fct_getc
Definition: stream_supp.h:145
PlLong atom
Definition: stream_supp.h:168
void Pl_Stream_Get_Position(StmInf *pstm, PlLong *offset, PlLong *char_count, PlLong *line_count, PlLong *line_pos)
Definition: stream_supp.c:1644
static StmInf * pstm_o
Definition: debugger_c.c:107
void Pl_Check_Stream_Type(int stm, Bool check_text, Bool for_input)
Definition: stream_supp.c:868
StmProp prop
Definition: stream_supp.h:141
int nb_elems
Definition: stream_supp.h:119
StmFct fct_flush
Definition: stream_supp.h:147
void Pl_Stream_Ungetc(CHAR32_T c, StmInf *pstm)
Definition: stream_supp.c:1382
int pl_stm_debugger_output
PlLong line_count
Definition: stream_supp.h:157
void Pl_Reassign_Alias(int atom_alias, int stm)
Definition: stream_supp.c:568
void Pl_Stdio_Set_Buffering(FILE *f, int buffering)
Definition: stream_supp.c:948
Bool Pl_Del_Mirror_From_Stream(int stm, int m_stm)
Definition: stream_supp.c:638
Bool eof_reached
Definition: stream_supp.h:153
int pl_atom_debugger_input
CHAR32_T Pl_Stream_Peekc(StmInf *pstm)
Definition: stream_supp.c:1417
int Pl_Find_Stream_By_Alias(int atom_alias)
Definition: stream_supp.c:524
PbStk pb_line_pos
Definition: stream_supp.h:159
Definition: stream_supp.h:166
StmFct fct_putc
Definition: stream_supp.h:146
void Pl_Set_Stream_Buffering(int stm)
Definition: stream_supp.c:761
int Pl_Stream_Puts(char *str, StmInf *pstm)
Definition: stream_supp.c:1531
static StmInf * pstm_i
Definition: debugger_c.c:106
int stm
Definition: stream_supp.h:132
void Pl_Delete_Stream(int stm)
Definition: stream_supp.c:476
int Pl_Stream_End_Of_Stream(StmInf *pstm)
Definition: stream_supp.c:1619
int pl_atom_top_level_input
int pl_atom_top_level_output
int pl_atom_debugger_output
Definition: stream_supp.h:137
int Pl_Stream_Printf(StmInf *pstm, char *format,...)
Definition: stream_supp.c:1554
Definition: stream_supp.h:98
void Pl_Flush_All_Streams(void)
Definition: stream_supp.c:744
void Pl_PB_Empty_Buffer(StmInf *pstm)
Definition: stream_supp.c:1262
StmFct fct_tell
Definition: stream_supp.h:149
CHAR32_T Pl_Stream_Getc(StmInf *pstm)
Definition: stream_supp.c:1334
int stm
Definition: stream_supp.h:169
long WamWord
Definition: LINUX_SIGSEGV.c:4
FILE * Pl_Stdio_Desc_Of_Stream(int stm)
Definition: stream_supp.c:985
FILE * f
Definition: sparc64-setx.c:6
char * Pl_Stream_Gets_Prompt(char *prompt, StmInf *pstm_o, char *str, int size, StmInf *pstm_i)
Definition: stream_supp.c:1480
int Pl_Find_Stream_From_PStm(StmInf *pstm)
Definition: stream_supp.c:725
Bool Pl_Stdio_Is_Repositionable(FILE *f)
Definition: stream_supp.c:933
int Bool
Definition: bool.h:65
struct stm_lst * PStmLst
Definition: stream_supp.h:128
Bool pl_stream_use_linedit
int Pl_Stream_Set_Position(StmInf *pstm, int whence, PlLong offset, PlLong char_count, PlLong line_count, PlLong line_pos)
Definition: stream_supp.c:1684
int * ptr
Definition: stream_supp.h:118
int Pl_Add_Stream(int atom_file_name, PlLong file, StmProp prop, StmFct fct_getc, StmFct fct_putc, StmFct fct_flush, StmFct fct_close, StmFct fct_tell, StmFct fct_seek, StmFct fct_clearerr)
Definition: stream_supp.c:445
PlLong line_pos
Definition: stream_supp.h:158
char * Pl_Stream_Gets(char *str, int size, StmInf *pstm)
Definition: stream_supp.c:1444
int Pl_Stream_Close(StmInf *pstm)
Definition: stream_supp.c:1600
int atom_file_name
Definition: stream_supp.h:139