in socket/info.c are these 2 functions. What is their usage? I don't understand them in the context of the other functions of info.c. Michael void flush_output_element(object *pl, Output_Buf *outputs) { char tbuf[MAX_BUF]; if (outputs->buf==NULL) return; sprintf(tbuf,"%d times %s", outputs->count, outputs->buf); print_message(NDI_BLACK, pl, tbuf); free_string(outputs->buf); outputs->buf=NULL; outputs->first_update=0; } /* Following checks the various buffers in the player structure and * other things, and stores/prints/whatever's the data, as appropriate. */ void check_output_buffers(object *pl, char *buf) { int i, oldest=0; if (pl->contr->outputs_count<2) { print_message(NDI_BLACK, pl, buf); return; } else { for (i=0; i<NUM_OUTPUT_BUFS; i++) { if (pl->contr->outputs[i].buf && !strcmp(buf, pl->contr->outputs[i].buf)) break; else if (pl->contr->outputs[i].first_update < pl->contr->outputs[oldest].first_update) oldest=i; } if (i<NUM_OUTPUT_BUFS) { pl->contr->outputs[i].count++; if (pl->contr->outputs[i].count>=pl->contr->outputs_count) { flush_output_element(pl, &pl->contr->outputs[i]); } } else { flush_output_element(pl, &pl->contr->outputs[oldest]); pl->contr->outputs[oldest].first_update = pticks; pl->contr->outputs[oldest].count = 1; if (pl->contr->outputs[oldest].buf!=NULL) free_string(pl->contr->outputs[oldest].buf); pl->contr->outputs[oldest].buf = add_string(buf); } } } _______________________________________________ crossfire-devel mailing list crossfire-devel at lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel