home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0020 - 0029 / ibm0020-0029 / ibm0028.tar / ibm0028 / GRLF-C-2.ZIP / GFUNC / CENTERS.C < prev    next >
Encoding:
C/C++ Source or Header  |  1990-05-30  |  970 b   |  50 lines

  1. /*
  2.  * centers.c
  3.  * contains: centers()
  4.  *
  5.  */
  6.  
  7. #include <stdio.h>
  8. #include <string.h>
  9. #include "gfuncts.h"
  10.  
  11. /*
  12.  *  void
  13.  * centers(dest,source,cols)
  14.  *
  15.  * ARGUMENT
  16.  *  (int)    dest    =    destination for centered string
  17.  *  (int)    source    =    source string to be centered
  18.  *  (int)    cols    =    Number of columns to center on
  19.  *
  20.  * DESCRIPTION
  21.  *  The source string is centered on a width which is the lesser of "cols"
  22.  *  or global variable gmaxcol, and is transferred to the destination string
  23.  *  with leading blanks as required to center correctly.
  24.  *
  25.  * AUTHOR
  26.  *   Copyright (C)1987-1990 Greenleaf Software Inc.
  27.  *
  28.  * MODIFICATIONS
  29.  *
  30.  */
  31. void GF_CONV centers(outstr,instr,cols)
  32. int cols;
  33. char *outstr,*instr;
  34. {
  35.     int i,left,icols;
  36.     char *pi,*po;
  37.  
  38.     icols=xmin(cols,gmaxcol);
  39.     if(icols<=1)
  40.         return;
  41.     left=(icols-strlen(instr))/2;
  42.     pi=instr;
  43.     po=outstr;
  44.     for(i=1;i<=left;i++)
  45.         *po++=' ';
  46.     while((*po++ = *pi++)!=0)
  47.         ;
  48.     *po='\0';
  49. }
  50.