home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / TEXT / UTILITY / CAWF2.ZIP / OUTPUT.C < prev    next >
Encoding:
C/C++ Source or Header  |  1991-06-04  |  2.3 KB  |  104 lines

  1. /*
  2.  *    output-c - output support functions for cawf(1)
  3.  */
  4.  
  5. /*
  6.  *    Copyright (c) 1991 Purdue University Research Foundation,
  7.  *    West Lafayette, Indiana 47907.  All rights reserved.
  8.  *
  9.  *    Written by Victor A. Abell <abe@mace.cc.purdue.edu>,  Purdue
  10.  *    University Computing Center.  Not derived from licensed software;
  11.  *    derived from awf(1) by Henry Spencer of the University of Toronto.
  12.  *
  13.  *    Permission is granted to anyone to use this software for any
  14.  *    purpose on any computer system, and to alter it and redistribute
  15.  *    it freely, subject to the following restrictions:
  16.  *
  17.  *    1. The author is not responsible for any consequences of use of
  18.  *       this software, even if they arise from flaws in it.
  19.  *
  20.  *    2. The origin of this software must not be misrepresented, either
  21.  *       by explicit claim or by omission.  Credits must appear in the
  22.  *       documentation.
  23.  *
  24.  *    3. Altered versions must be plainly marked as such, and must not
  25.  *       be misrepresented as being the original software.  Credits must
  26.  *       appear in the documentation.
  27.  *
  28.  *    4. This notice may not be removed or altered.
  29.  */
  30.  
  31. #include "cawf.h"
  32. #ifdef    UNIX
  33. #ifdef    USG
  34. #include <string.h>
  35. #else
  36. #include <strings.h>
  37. #endif
  38. #else
  39. #include <string.h>
  40. #endif
  41.  
  42.  
  43. /*
  44.  * LenprtHF(s, p, t) - get length of print header or footer with page number
  45.  *               interpolation
  46.  */
  47.  
  48. LenprtHF(s, p, t)
  49.     char *s;            /* header/footer string */
  50.     int p;                /* page number */
  51.     int t;                /* type: 0 = get interpolated length
  52.                      *     1 = print */
  53. {
  54.     char buf[10];            /* buffer for page number */
  55.     int len;            /* line length */
  56.     char *s1;            /* temporary string pointer */
  57.     
  58.     if (s == NULL)
  59.         return(0);
  60.     for (len = 0; *s && *s != '%'; s++) {
  61.         len++;
  62.         if (t)
  63.             Charput(*s);
  64.     }
  65.     if (*s) {
  66.         (void) sprintf(buf, "%d", p);
  67.         for (s1 = buf; *s1; s1++) {
  68.             len++;
  69.             if (t)
  70.                 Charput(*s1);
  71.         }
  72.         for (s++; *s; s++) {
  73.             len++;
  74.             if (t)
  75.                 Charput(*s);
  76.         }
  77.     }
  78.     return(len);
  79. }
  80.  
  81.  
  82. /*
  83.  * Charput(s) - put a character to output, subject to diversion
  84.  */
  85.  
  86. Charput(c)
  87.     char c;            /* character to put */
  88. {
  89.     if (Divert == 0)
  90.         putchar(c);
  91. }
  92.  
  93.  
  94. /*
  95.  * Stringput(s) - put a string to output, subject to diversion
  96.  */
  97.  
  98. Stringput(s)
  99.     char *s;        /* string to put */
  100. {
  101.     if (Divert == 0)
  102.         fputs(s, stdout);
  103. }
  104.