/*
// writef.c - Oct25/91 by Jubal
// This file is a part of the TMI distribution mudlib.
// Please retain the header if you use it.
*/
#include <writef.h>
string
writef( string str, int n, int flags )
{
   int len, i;
   
   if( ! str ) str = "";
   len = strlen( str );
   if( len < n )
      {
      if( flags & JFY_RIGHT )
         {
         str = extract( PAD, 0, n - len - 1 ) + str;
      }
      else
         {
         str += extract( PAD, 0, n - len - 1 );
      }
   }
   else if( len > n )
      {
      if( ! ( flags & TRUNCATE ) )
         {
         str = extract( ERR, 0, n-1 );
         }
      else if( flags & TRUNC_RIGHT )
         {
         if( flags & TRUNC_ELL )
            str = extract( str, 0, n - 4 ) + "...";
         else
            str = extract( str, 0, n - 1 );
           }
      else
         {
         if( flags & TRUNC_ELL )
            str = "..." + extract( str, len - n + 3, len - 1 );
         else
            str = extract( str, len - n, len - 1 );
           }
   }
   if( ! ( flags & QUIET ) ) write( str );
   return str;
}