|
|
1.1 ! root 1: # include "monitor.h" ! 2: # include <trace.h> ! 3: # include <resp.h> ! 4: # include <sccs.h> ! 5: ! 6: SCCSID(@(#)trapquery.c 8.1 12/31/84) ! 7: ! 8: ! 9: ! 10: ! 11: /* ! 12: ** TRAPQUERY -- trap queries which succeeded. ! 13: ** ! 14: ** This module traps the current query into the file ! 15: ** specified by Trapfile. It will open Trapfile if ! 16: ** it is not already open. ! 17: ** ! 18: ** Parameters: ! 19: ** retcode -- the return code of the query. ! 20: ** name -- the name of the file in which to dump the ! 21: ** query buffer. ! 22: ** ! 23: ** Returns: ! 24: ** none. ! 25: ** ! 26: ** Side Effects: ! 27: ** Outputs the query buffer to Trapfile. ! 28: ** ! 29: ** Called By: ! 30: ** go. ! 31: ** ! 32: ** Files: ! 33: ** Trapfile -- the descriptor of the file in which to ! 34: ** trap the query. ! 35: ** Qbname -- the name of the query buffer. ! 36: ** ! 37: ** Trace Flags: ! 38: ** none ! 39: ** ! 40: ** Bugs: ! 41: ** If 'name' (that is, the {querytrap} macro) changes ! 42: ** during a run, the output file does not change. ! 43: */ ! 44: ! 45: FILE *Trapfile; ! 46: ! 47: trapquery(resp, name) ! 48: struct resp *resp; ! 49: char *name; ! 50: { ! 51: register FILE *iop; ! 52: static int first; ! 53: register char *sp, c; ! 54: int timevec[2]; ! 55: extern fgetc(); ! 56: extern char *ctime(); ! 57: ! 58: if (first < 0) ! 59: return; ! 60: if (Trapfile == NULL) ! 61: { ! 62: if ((Trapfile = fopen(name, "a")) == NULL) ! 63: { ! 64: printf("can't trap query in %s\n", name); ! 65: first = -1; ! 66: return; ! 67: } ! 68: } ! 69: if (first == 0) ! 70: { ! 71: time(timevec); ! 72: sp = ctime(timevec); ! 73: while (*sp) ! 74: putc(*sp++, Trapfile); ! 75: first++; ! 76: } ! 77: ! 78: if ((iop = fopen(Qbname, "r")) == NULL) ! 79: syserr("go: open 1"); ! 80: macinit(fgetc, iop, 1); ! 81: ! 82: while ((c = macgetch()) > 0) ! 83: putc(c, Trapfile); ! 84: ! 85: if (resp->resp_resp == 0) ! 86: { ! 87: sp = (char *) locv(resp->resp_tups); ! 88: while (*sp) ! 89: putc(*sp++, Trapfile); ! 90: putc('\n', Trapfile); ! 91: } ! 92: ! 93: fclose(iop); ! 94: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.