|
|
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.