home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / fileutil / cawf / output.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-02-21  |  1.9 KB  |  76 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. #include <strings.h>
  34. #else
  35. #include <string.h>
  36. #endif
  37.  
  38.  
  39. /*
  40.  * LenprtHF(s, p, t) - get length or print header or footer with page number
  41.  *               interpolation
  42.  */
  43.  
  44. LenprtHF(s, p, t)
  45.     char *s;            /* header/footer string */
  46.     int p;                /* page number */
  47.     int t;                /* type: 0 = get interpolated length
  48.                      *     1 = print */
  49. {
  50.     char buf[10];            /* buffer for page number */
  51.     int len;            /* line length */
  52.     char *s1;            /* temporary string pointer */
  53.     
  54.     if (s == NULL)
  55.         return(0);
  56.     for (len = 0; *s && *s != '%'; s++) {
  57.         len++;
  58.         if (t)
  59.             putchar(*s);
  60.     }
  61.     if (*s) {
  62.         (void) sprintf(buf, "%d", p);
  63.         for (s1 = buf; *s1; s1++) {
  64.             len++;
  65.             if (t)
  66.                 putchar(*s1);
  67.         }
  68.         for (s++; *s; s++) {
  69.             len++;
  70.             if (t)
  71.                 putchar(*s);
  72.         }
  73.     }
  74.     return(len);
  75. }
  76.