74 lines
1.9 KiB
C
74 lines
1.9 KiB
C
|
|
/*
|
|
* io.h
|
|
*
|
|
* Communication between PSSE and the outside world, via libcurl.
|
|
*
|
|
* (c) 2019 Simon Brooke <simon@journeyman.cc>
|
|
* Licensed under GPL version 2.0, or, at your option, any later version.
|
|
*/
|
|
|
|
#ifndef __psse_io_io_h
|
|
#define __psse_io_io_h
|
|
|
|
#include <stdbool.h>
|
|
#include <curl/curl.h>
|
|
|
|
/*
|
|
* wide characters
|
|
*/
|
|
#include <wctype.h>
|
|
|
|
#include "io/fopen.h"
|
|
#include "memory/pointer.h"
|
|
|
|
extern CURLSH *io_share;
|
|
|
|
int initialise_io( );
|
|
struct pso_pointer initialise_default_streams( struct pso_pointer
|
|
frame_pointer,
|
|
struct pso_pointer env );
|
|
|
|
#define C_IO_IN L"*in*"
|
|
#define C_IO_OUT L"*out*"
|
|
#define C_IO_LOG L"*log*"
|
|
#define C_IO_READBASE L"*read_base*"
|
|
#define C_IO_READTABLE L"*read_table*"
|
|
|
|
extern struct pso_pointer lisp_io_in;
|
|
extern struct pso_pointer lisp_io_out;
|
|
extern struct pso_pointer lisp_io_log;
|
|
extern struct pso_pointer lisp_io_readbase;
|
|
extern struct pso_pointer lisp_io_read_table;
|
|
|
|
extern struct pso_pointer lisp_stdin;
|
|
extern struct pso_pointer lisp_stdout;
|
|
extern struct pso_pointer lisp_stderr;
|
|
|
|
#define INITIAL_PROMPT L"psse ]"
|
|
#define C_IO_PROMPT L"*prompt*"
|
|
|
|
extern struct pso_pointer lisp_io_prompt;
|
|
|
|
|
|
|
|
URL_FILE *file_to_url_file( FILE * f );
|
|
wint_t url_fgetwc( URL_FILE * input );
|
|
wint_t url_ungetwc( wint_t wc, URL_FILE * input );
|
|
|
|
|
|
struct pso_pointer push_back_character( struct pso_pointer c,
|
|
struct pso_pointer r );
|
|
|
|
struct pso_pointer get_default_stream( bool inputp, struct pso_pointer env );
|
|
|
|
URL_FILE *stream_get_url_file( struct pso_pointer s );
|
|
|
|
struct pso_pointer
|
|
lisp_close( struct pso_pointer frame_pointer, struct pso_pointer env );
|
|
struct pso_pointer
|
|
lisp_open( struct pso_pointer frame_pointer, struct pso_pointer env );
|
|
struct pso_pointer
|
|
lisp_slurp( struct pso_pointer frame_pointer, struct pso_pointer env );
|
|
|
|
#endif
|