#include #include #include "local_proto.h" static char cur[2000]; static char *sessionfile = NULL; static FILE *fd; int add_to_session (int indent, char *buf) { accept (); sprintf (cur, "%s%s", indent?" ":"", buf); return 0; } int accept (void) { if (sessionfile == NULL) { *cur = 0; sessionfile = G_tempfile(); fd = fopen (sessionfile, "w"); if (fd == NULL) { error ("session file","","can't open"); return 1; } } if (fd != NULL && *cur) { fprintf (fd, "%s\n", cur); fflush (fd); *cur = 0; } return 0; } int reject (void) { *cur = 0; return 0; } int print_session (FILE *out) { FILE *in; char buf[1024]; if (sessionfile == NULL) return 1; if (fd != NULL) fflush (fd); if ((in = fopen (sessionfile, "r")) == NULL) { error ("session file","","can't open"); return 1; } while (fgets(buf, sizeof buf, in)) fprintf (out, "%s",buf); fclose (in); return 0; }