|
|
1.1 ! root 1: #include "parms.h" ! 2: #include "structs.h" ! 3: ! 4: #ifdef RCSIDENT ! 5: static char rcsid[] = "$Header: adresp.c,v 1.7.0.1 85/09/09 18:30:38 notes Rel $"; ! 6: #endif RCSIDENT ! 7: ! 8: /* ! 9: * addresp(io, fid, notenum) ! 10: * grab text from the terminal, with the appropriate ! 11: * prepending from fid, and stick it in the notefile as a response ! 12: * to notenumber notenum. OF course the policy note can't have ! 13: * responses so we check that. ! 14: * ! 15: * Original coding: Ray Essick January 1982 ! 16: */ ! 17: ! 18: addresp (io, preface, notenum, editflag) ! 19: struct io_f *io; ! 20: FILE * preface; ! 21: { ! 22: char anon; ! 23: char c; ! 24: int status; ! 25: int resp; ! 26: struct when_f now; ! 27: struct auth_f auth; ! 28: struct id_f unique; ! 29: struct daddr_f where; ! 30: struct note_f note; ! 31: ! 32: #ifndef WRITEARCH /* allowing writes */ ! 33: if (io -> descr.d_stat & ISARCH && !allow (io, DRCTOK)) ! 34: { ! 35: at (0, PROMPTMSGX); ! 36: printf ("Sorry, you can not write in an archive"); ! 37: fflush (stdout); ! 38: sleep (2); ! 39: return (0); ! 40: } ! 41: #endif WRITEARCH ! 42: resp = 0; ! 43: at (0, PROMPTMSGX); ! 44: if (editflag == EDIT) ! 45: printf ("\nEdit Response Text:\n"); ! 46: if (gettext (io, &where, preface, editflag) != 0) ! 47: { ! 48: anon = 'n'; ! 49: if ((editflag == EDIT) && io -> descr.d_stat & ANONOK) ! 50: { ! 51: anon = askyn ("Do you wish this response to be anonymous (y/n): "); ! 52: printf ("\r \r"); ! 53: if (anon == 'y') /* verify */ ! 54: { ! 55: anon = askyn ("Do you REALLY wish this response to be anonymous (y/n): "); ! 56: printf ("\r \r"); ! 57: } ! 58: } ! 59: status = 0; ! 60: if ((editflag == EDIT) && allow (io, DRCTOK)) /* director mesg */ ! 61: { ! 62: c = askyn ("Director message (y/n): "); ! 63: printf ("\r \r"); ! 64: if (c == 'y') ! 65: status |= DIRMES; ! 66: } ! 67: ! 68: gettime (&now); /* get time of writing */ ! 69: getname (&auth, anon == 'y'); /* and author */ ! 70: locknf (io, 'n'); /* lock up notesfile */ ! 71: if ((resp = putresp (io, &where, status, notenum, &now, &auth, ¬e, ! 72: NOLOCKIT, &unique, ADDID, System, ADDTIME, &now)) == 0) ! 73: { ! 74: printf ("\nSorry, this note has just been deleted.\n"); ! 75: fflush (stdout); /* force it out */ ! 76: sleep (2); ! 77: } ! 78: unlocknf (io, 'n'); /* free now */ ! 79: } ! 80: return resp; /* tell him which one */ ! 81: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.