--- loncom/homework/CAPA-converter/capaCommon.c 2001/11/18 09:40:45 1.9 +++ loncom/homework/CAPA-converter/capaCommon.c 2001/12/05 18:58:21 1.11 @@ -1,3 +1,30 @@ +/* The LearningOnline Network with CAPA + * Helaper functions for capa convertor. + * $Id: capaCommon.c,v 1.11 2001/12/05 18:58:21 albertel Exp $ + * + * Copyright Michigan State University Board of Trustees + * + * This file is part of the LearningOnline Network with CAPA (LON-CAPA). + * + * LON-CAPA is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * LON-CAPA is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with LON-CAPA; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * /home/httpd/html/adm/gpl.txt + * + * http://www.lon-capa.org/ + */ + /* =||>|===================== capaCommon.c =====================|<||= */ /* created 1994 by Isaac Tsai */ /* 1994, 1995, 1996, 1997, 1998, 1999 copyrighted by Isaac Tsai */ @@ -256,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,"