|
|
1.1 ! root 1: #include "parms.h" ! 2: #include "structs.h" ! 3: ! 4: #ifdef RCSIDENT ! 5: static char rcsid[] = "$Header: dmpnote.c,v 1.7 85/01/18 15:08:44 notes Rel $"; ! 6: #endif RCSIDENT ! 7: ! 8: /* dmpnote - dump a note in canonical form. This routine ! 9: * will take the note specified by the arguement and dump ! 10: * it in a canonical form.. ! 11: * ! 12: * fid - file to write the output to ! 13: * note - the current descriptor for that note ! 14: * ! 15: * Original Coding: Ray Essick December 1981 ! 16: */ ! 17: ! 18: ! 19: dmpnote (io, note, num, dmpfile, extensive, protocol) ! 20: struct io_f *io; ! 21: struct note_f *note; ! 22: FILE * dmpfile; ! 23: { ! 24: char buf[256]; /* hold some strings */ ! 25: int i; ! 26: ! 27: ! 28: switch (protocol) ! 29: { ! 30: case 0: /* original */ ! 31: fprintf (dmpfile, "N:%s:%ld:%d\n", ! 32: note -> n_id.sys, note -> n_id.uniqid, note -> n_nresp); ! 33: fprintf (dmpfile, "%s\n", note -> ntitle); ! 34: ! 35: fprintf (dmpfile, "%s:%d:%s:\n", note -> n_auth.aname, ! 36: note -> n_auth.aid & UIDMASK, note -> n_auth.asystem); ! 37: ! 38: fprintf (dmpfile, "%d:%d:%d:%d:%d:%ld:\n", note -> n_date.w_year, note -> n_date.w_month, ! 39: note -> n_date.w_day, note -> n_date.w_hours, ! 40: note -> n_date.w_mins, note -> n_date.w_gmttime); ! 41: ! 42: if (extensive) ! 43: { ! 44: fprintf (dmpfile, "%d:%d:%d:%d:%d:%ld:\n", note -> n_rcvd.w_year, note -> n_rcvd.w_month, ! 45: note -> n_rcvd.w_day, note -> n_rcvd.w_hours, ! 46: note -> n_rcvd.w_mins, note -> n_rcvd.w_gmttime); ! 47: ! 48: fprintf (dmpfile, "%d:%d:%d:%d:%d:%ld:\n", note -> n_lmod.w_year, note -> n_lmod.w_month, ! 49: note -> n_lmod.w_day, note -> n_lmod.w_hours, ! 50: note -> n_lmod.w_mins, note -> n_lmod.w_gmttime); ! 51: fprintf (dmpfile, "%s\n", note -> n_from);/* dump who from */ ! 52: } ! 53: ! 54: ! 55: if (note -> n_addr.addr == 0) /* for orphans */ ! 56: note -> n_addr.textlen = 0; /* used to not init */ ! 57: fprintf (dmpfile, "%03o:%ld\n", note -> n_stat, ! 58: ((long) note -> n_addr.textlen)); /* make sure long */ ! 59: ! 60: pageout (io, ¬e -> n_addr, dmpfile); ! 61: break; ! 62: ! 63: case 1: /* protocol 1 */ ! 64: fprintf (dmpfile, "Protocol: 1 Note\n"); /* for loadem */ ! 65: fprintf (dmpfile, "Title: %s\n", note -> ntitle); ! 66: fprintf (dmpfile, "Author: %s@%s\n", ! 67: note -> n_auth.aname, note -> n_auth.asystem); ! 68: if (extensive) ! 69: fprintf (dmpfile, "Author-UID: %d\n", note -> n_auth.aid); ! 70: fprintf (dmpfile, "Note-ID: %s.%ld\n", note -> n_id.sys, ! 71: note -> n_id.uniqid); ! 72: sprdate (¬e -> n_date, buf); /* format date */ ! 73: fprintf (dmpfile, "Date-Written: %s\n", buf); ! 74: if (extensive) /* dump extra information */ ! 75: { ! 76: sprdate (¬e -> n_rcvd, buf); ! 77: fprintf (dmpfile, "Date-Received: %s\n", buf); ! 78: sprdate (¬e -> n_lmod, buf); ! 79: fprintf (dmpfile, "Date-Modified: %s\n", buf); ! 80: fprintf (dmpfile, "Source-System: %s\n", note -> n_from); ! 81: } ! 82: fprintf (dmpfile, "Status:"); /* do the bits */ ! 83: if (note -> n_stat & FRMNEWS) ! 84: fprintf (dmpfile, " Thru-News"); ! 85: if (note -> n_stat & DIRMES) ! 86: fprintf (dmpfile, " Director-Message"); ! 87: if (note -> n_stat & WRITONLY) ! 88: fprintf (dmpfile, " Write-Only"); ! 89: if (note -> n_stat & ORPHND) ! 90: fprintf (dmpfile, " Foster-Parent"); ! 91: putc ('\n', dmpfile); ! 92: if (note -> n_addr.addr == 0) /* empty */ ! 93: note -> n_addr.textlen = 0; ! 94: fprintf (dmpfile, "Text-Length: %ld bytes\n", ! 95: (long) note -> n_addr.textlen); ! 96: pageout (io, ¬e -> n_addr, dmpfile); /* dump text */ ! 97: break; ! 98: ! 99: ! 100: default: ! 101: fprintf (stderr, "dmpnote: Unsupported Protocol (%d)\n", ! 102: protocol); ! 103: break; ! 104: } ! 105: ! 106: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.