# 2.11BSD#431 - /usr/src/new/notes/src/lprnote.c

##### Functions

    lprnote           X
    lprresp           X
    pagebreak         X

##### Macros

    NOTENEED          X
    RESPNEED          X

       1: #include "parms.h"
       2: #include "structs.h"
       3:
       4: #ifdef  RCSIDENT
       5: static char rcsid[] = "$Header: lprnote.c,v 1.7.0.3 85/03/19 19:39:05 notes Rel $";
       6: #endif	RCSIDENT
       7:
       8: /*
       9:  *	lprnote(io, lprfile, toc, notenum, note, justtitle)
      10:  *
      11:  *	prints the specified note to lprfile, and makes an entry in
      12:  *	toc file. Paging is taken care of and the page/line stuff is
      13:  *	correctly set at the conclusion.
      14:  *
      15:  *	lprresp(io, lprfile, toc, respnum, rsprec, roffset)
      16:  *
      17:  *	Same as the lprnote routine. Works for responses though.
      18:  *
      19:  *	pagebreak(lprfile)
      20:  *
      21:  *	forces a page break.
      22:  *
      23:  *	Ray Essick	May 13, 1982
      24:  */
      25:
      26: #define NOTENEED    7
      27: #define RESPNEED    7
      28:
      29: extern int  length,                 /* length of page */
      30:             left,                   /* left on the page */
      31:             page;                   /* the pae we are on */
      32:
      33: lprnote (io, lprfile, toc, notenum, note, justtitle)
      34: struct io_f *io;
      35: FILE * lprfile, *toc;
      36: struct note_f  *note;
      37: {
      38:     struct resp_f   rsprec;
      39:     int     roffset,
      40:             rblock;
      41:     char    line[CMDLEN];
      42:     int     i;
      43:     char    ztime[DATELEN];
      44:
      45:     if (left < NOTENEED)                /* room for header and some text? */
      46:     pagebreak (lprfile);                /* make it that way */
      47:
      48:     if (strcmp (note -> n_auth.asystem, Authsystem) &&
      49:         strcmp ("Anonymous", note -> n_auth.aname))
      50:     {
      51: #ifdef  USERHOST
      52:     sprintf (line, "%s@%s", note -> n_auth.aname, note -> n_auth.asystem);
      53: #else
      54:     sprintf (line, "%s!%s", note -> n_auth.asystem, note -> n_auth.aname);
      55: #endif	USERHOST
      56:     }
      57:     else
      58:     sprintf (line, "%s", note -> n_auth.aname);
      59:     sprdate (&note -> n_date, ztime);           /* format date */
      60:
      61:     fprintf (toc, "%3d%s ", notenum, note -> n_stat & DIRMES ? "(*)" : "   ");
      62:     fprintf (toc, "%-*s", TITLEN, note -> ntitle);
      63:     fprintf (toc, "%-*s  %-*s", SYSSZ + NAMESZ + 2, line, DATELEN, ztime);
      64:     if (!justtitle)                 /* no page for titles only */
      65:     fprintf (toc, "    %d", page);
      66:     putc ('\n', toc);                   /* end the line */
      67:
      68: /*
      69:  *	only proceed if we are dumping text. Otherwise we stop with
      70:  *	just the table of contents entry
      71:  */
      72:
      73:     if (justtitle)                  /* no text output */
      74:     return;
      75:
      76:     fprintf (lprfile, "\n====    ====    ====    ====    ====    ====    ====\n");
      77:     fprintf (lprfile, "Note %-3d %s  ", notenum,
      78:         note -> n_stat & DIRMES ? "(*)" : "   ");
      79:     fprintf (lprfile, "%-*s", TITLEN, note -> ntitle);  /* title */
      80:
      81:     if (note -> n_nresp)
      82:     fprintf (lprfile, "   %d response%c", note -> n_nresp,
      83:         note -> n_nresp > 1 ? 's' : ' ');
      84:     putc ('\n', lprfile);
      85:
      86:     fprintf (lprfile, "%-*s", SYSSZ + NAMESZ + 1, line);
      87:
      88:     fprintf (lprfile, "        %s\n\n", ztime);
      89:
      90:     left -= 5;                      /* count off the header lines */
      91:
      92:     left -= pageout (io, &note -> n_addr, lprfile); /* dump text */
      93:
      94:     while (left < 0)
      95:     {
      96:     page++;
      97:     left += length;
      98:     }
      99:
     100:
     101:     for (i = 1; i <= note -> n_nresp; i++)      /* dump responses */
     102:     {
     103:     if (lrsp (io, notenum, i, &rsprec, &roffset, &rblock) == -1)
     104:         break;                  /* bad chain */
     105:     lprresp (io, lprfile, toc, notenum, i, &rsprec, roffset);
     106:     }
     107: }
     108:
     109: /*
     110:  *
     111:  *	dump a response to a "pr" stream.
     112:  */
     113:
     114: lprresp (io, lprfile, toc, notenum, respnum, rsprec, phys)
     115: struct io_f *io;
     116: FILE * lprfile,
     117: *toc;
     118: struct resp_f  *rsprec;
     119: {
     120:     char    ztime[DATELEN];
     121:     char    line[CMDLEN];
     122:
     123:     if (left < RESPNEED)                /* room on page? */
     124:     pagebreak (lprfile);
     125:
     126:     if (strcmp (rsprec -> r_auth[phys].asystem, Authsystem) &&
     127:         strcmp ("Anonymous", rsprec -> r_auth[phys].aname))
     128:     {
     129: #ifdef  USERHOST
     130:     sprintf (line, "%s@%s", rsprec -> r_auth[phys].aname,
     131:         rsprec -> r_auth[phys].asystem);
     132: #else
     133:     sprintf (line, "%s!%s", rsprec -> r_auth[phys].asystem,
     134:         rsprec -> r_auth[phys].aname);
     135: #endif	USERHOST
     136:     }
     137:     else
     138:     sprintf (line, "%s", rsprec -> r_auth[phys].aname);
     139:     sprdate (&rsprec -> r_when[phys], ztime);
     140:     fprintf (lprfile, "\n==== ==== ====\n");
     141:     fprintf (lprfile, "Response %-4d to Note %-4d\n\t%-*s  %-*s\n\n",
     142:         respnum, notenum, SYSSZ + NAMESZ + 2, line, DATELEN, ztime);
     143:
     144:     left -= 5;                      /* count the header */
     145:
     146:     left -= pageout (io, &rsprec -> r_addr[phys], lprfile);
     147:
     148:     while (left < 0)
     149:     {
     150:     page++;
     151:     left += length;
     152:     }
     153: }
     154:
     155: /*
     156:  *	force a page break
     157:  */
     158:
     159: pagebreak (zfile)
     160: FILE * zfile;
     161: {
     162:     putc ('\f', zfile);                 /* form feed */
     163:     page++;
     164:     left = length;
     165: }

#### Defined functions

lprnote defined in line 33; used 1 times

- in /usr/src/new/notes/src/nfprint.c line 182

lprresp defined in line 114; used 1 times

- in line 105

pagebreak defined in line 159; used 4 times

- in line 46, 124
- in /usr/src/new/notes/src/nfprint.c line 181, 189

#### Defined variables

rcsid defined in line 5; never used

#### Defined macros

NOTENEED defined in line 26; used 1 times

- in line 45

RESPNEED defined in line 27; used 1 times

- in line 123

Last modified: 1985-03-20 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 720 |