--- loncom/homework/CAPA-converter/capaCommon.h 2001/11/15 21:42:42 1.5 +++ loncom/homework/CAPA-converter/capaCommon.h 2001/11/18 09:40:45 1.6 @@ -139,15 +139,6 @@ typedef struct { #define leap_years_since_year_1(yr) ((yr) / 4 - centuries_since_1700(yr) + quad_centuries_since_1700(yr)) -int mode; -#define MODE_NONE 0 -#define MODE_COMMENT 1 -#define MODE_BLOCK 2 -#define MODE_SCRIPT 3 -#define MODE_OUTTEXT 4 -#define MODE_ANSWER 5 -#define MODE_HINT 6 - struct dyn_string { int len; int max; @@ -156,21 +147,57 @@ struct dyn_string { struct dyn_string dyn_out; struct dyn_string dyn_delayed; extern int dyn_maxlen; +extern char *import_prefix; + +#define MAX_CACHE 100 +#define CACHE_ERROR 100 +extern struct dyn_string cached_data[MAX_CACHE]; +extern int current_cache; +extern int do_cache[MAX_CACHE]; + +#define MAX_STREAMS 100 +#define ALL_STREAMS -1 +extern struct dyn_string streams[MAX_STREAMS]; +extern int num_streams; + +int mode[MAX_STREAMS]; +#define MODE_NONE 0 +#define MODE_COMMENT 1 +#define MODE_BLOCK 2 +#define MODE_SCRIPT 3 +#define MODE_OUTTEXT 4 +#define MODE_ANSWER 5 +#define MODE_HINT 6 +#define MODE_IMPORT 7 +/* end_mode always sets this to 0, if you want to check if any other + mode has been entered. Set this to 1 and check again if it has been + set back to zero. +*/ +extern int watch_mode[MAX_STREAMS]; /*=============================================================================*/ /* CAPA PROTOTYPES FOR FUNCTIONS IN COMMON.C */ /*=============================================================================*/ /*-----------------------------------------------------------------------------*/ -int capa_parse CAPA_ARG((int set,Problem_t **problem,char *filename,int *num_questions,void (*func_ptr)())); -void send CAPA_ARG((char* text,...)); -void end_mode CAPA_ARG((void)); -void start_mode CAPA_ARG((int newmode,char* args)); -void dyn_init(); -void dyn_free(); +int capa_parse(int set,Problem_t **problem,char *filename,int *num_questions,void (*func_ptr)()); +void send(char* text,...); +void end_mode(void); +void end_mode_stream(int which); +void start_mode(int newmode,char* args); +void start_mode_stream(int which,int newmode,char* args); +void dyn_init(struct dyn_string *dyn); +void dyn_free(struct dyn_string *dyn); int append_message(struct dyn_string *dyn_msg,char *format,va_list ap); void add_delayed(char *format, ...); void flush_delayed(); void start_delayed(); void end_delayed(); +void send_stream(int which,char* text,...); +void start_streams(int num); +void end_streams(int which); +void new_cache(); +void delete_cache(); +void start_cache(); +void stop_cache(); /*============================================================================*/ #endif /* CAPA_COMMON_H */