--- loncom/homework/CAPA-converter/capaCommon.c 2001/12/04 15:17:57 1.10 +++ loncom/homework/CAPA-converter/capaCommon.c 2001/12/05 18:58:21 1.11 @@ -1,6 +1,6 @@ /* The LearningOnline Network with CAPA * Helaper functions for capa convertor. - * $Id: capaCommon.c,v 1.10 2001/12/04 15:17:57 albertel Exp $ + * $Id: capaCommon.c,v 1.11 2001/12/05 18:58:21 albertel Exp $ * * Copyright Michigan State University Board of Trustees * @@ -283,17 +283,28 @@ void flush_delayed() } -void send_to(int which, char *text, va_list ap) +int current_dest=DEFAULT_DEST; +void change_destination(int which_dest) +{ + if (which_dest < MAX_DEST) { + current_dest = which_dest; + } else { + fprintf(stderr,"Tried to set destination above MAX_DEST: %d", which_dest); + exit(1); + } +} + +void send_to(int which_dest, int which, char *text, va_list ap) { if (delay) { append_message(&dyn_delayed,text,ap); } else { - if (num_streams) { + if (num_streams[which_dest]) { if (which == ALL_STREAMS) { int i; - for (i=0;i\n"); break; case MODE_BLOCK: send_stream(which,"\n"); break; case MODE_SCRIPT: send_stream(which,"\n"); break; case MODE_OUTTEXT: send_stream(which,"\n"); break; case MODE_ANSWER: send_stream(which,"\n"); break; - case MODE_HINT: send_stream(which,"\n\n\n"); break; case MODE_IMPORT: send_stream(which,"\n"); break; case MODE_NONE: break; } - mode[which]=MODE_NONE; - watch_mode[which]=0; + mode[which_dest][which]=MODE_NONE; + watch_mode[which_dest][which]=0; } void start_mode(int newmode,char* args) { - start_mode_stream(ALL_STREAMS,newmode,args); + start_mode_stream(current_dest,ALL_STREAMS,newmode,args); } -void start_mode_stream(int which,int newmode,char* args) +void start_mode_stream(int which_dest,int which,int newmode,char* args) { - if (num_streams) { + if (num_streams[which_dest]) { if (which == ALL_STREAMS) { int i; - for (i=0;i\n"); break; case MODE_BLOCK: send_stream(which,"\n",args); break; case MODE_SCRIPT: send_stream(which,"