Re: Centering text on the 80 column display

From: Matt Knecht (hex@VOICENET.COM)
Date: 03/27/98


On Thu, 26 Mar 1998, Chris Hyde wrote:

>Hello there...
>        I am trying to write a function that will center a string of text
>in an 80 column display.  I was wondering if anyone else has attempted

Here's a cut and paste for some code I wrote dealing with player formations.
This code centers the formation members's name in a field of 20 chars.
Just replace the twenty with 80 and it should work fine.

        center = 20 - (strlen(GET_NAME(f->follower)));
        if (center <= 0) {
          sprintf(buf, "%s[%.20s]%s ", color, GET_NAME(f->follower), CCNRM(ch, C
_SPR));
          break;
        } else if (!(center % 2)) {
          sprintf(buf, "%s[", color);
          for (x = 0; x < center/2; x++)
            sprintf(buf, "%s ", buf);
          sprintf(buf, "%s%s", buf, GET_NAME(f->follower));
          for (x = 0; x < center/2; x++)
            sprintf(buf, "%s ", buf);
          sprintf(buf, "%s]%s ", buf, CCNRM(ch, C_SPR));
          break;
        } else {
          sprintf(buf, "%s[", color);
          for (x = 0; x <= center/2; x++)
            sprintf(buf, "%s ", buf);
          sprintf(buf, "%s%s", buf, GET_NAME(f->follower));
          for (x = 0; x < center/2; x++)
            sprintf(buf, "%s ", buf);
          sprintf(buf, "%s]%s ", buf, CCNRM(ch, C_SPR));
          break;
        }

Hmmm.. I must've written this a long time ago.  It's probably much more
efficient to use strcat(buf, ' ') instead of sprintf(buf, "%s ", buf).

--
Hextall, Implementor of Exile     *    888`98  9b.dP  888  888     888`98
exile.linex.com 4000              *    888+8,   d8b   888  888  ,  888+8,
The mud you've been looking for   *    888,d8  d8 9b  888  888,d8  888,d8


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST