tfe-1.0/area/
tfe-1.0/files/
tfe-1.0/logs/
tfe-1.0/logs/immortal/
tfe-1.0/logs/mob/
tfe-1.0/logs/object/
tfe-1.0/logs/player/
tfe-1.0/logs/room/
tfe-1.0/notes/clans/
tfe-1.0/player/
tfe-1.0/prev/
tfe-1.0/prev/area/
tfe-1.0/prev/player/
tfe-1.0/prev/rooms/
tfe-1.0/rooms/
tfe-1.0/src-gc/
tfe-1.0/src-msvc/
tfe-1.0/src-unix/
tfe-1.0/www/
tfe-1.0/www/html/
int           strcasecmp     ( const char*, const char* );
int           strncasecmp    ( const char*, const char*, int );
int           strncmp        ( const char*, const char*, int );
int           rstrcasecmp    ( const char*, const char* );
int           rstrncasecmp   ( const char*, const char*, int );
char*         strcat         ( char*, const char* );

bool          matches        ( const char*&, const char* );
bool          exact_match    ( const char*&, const char* );
bool          fmatches       ( const char*, const char*, int = 0 );
bool          number_arg     ( const char*&, int& );

bool          contains_word  ( const char*&, const char*, char* );
bool          two_argument   ( const char*&, const char*, char* );
char*         one_argument   ( const char*, char* );

int           subset         ( const char*, const char*, bool = FALSE );
int           member         ( const char*, const char*, bool = FALSE );
int           compare        ( const char*, const char*, bool = FALSE,
                               int = 3 );

bool          isvowel           ( char letter );
bool          is_name           ( char*, const char*, bool = FALSE );
const char*   break_line        ( const char*, char*, int );
const char*   word_list         ( const char**, int, bool = TRUE );
void          smash_spaces      ( char* );
char*         capitalize        ( char* );
char*         capitalize_words  ( const char* );
void          add_spaces        ( char*, int );
char*         seperate          ( char*, bool );


/*
 *  INLINE UTILITY ROUTINES
 */


inline int count( const char* s )
{
  int i;

  for( ; *s == ' '; s++ );

  for( i = 0; *s != '\0'; i++ ) {
    for( ; *s != '\0' && *s != ' '; s++ );
    for( ; *s == ' '; s++ );
    }

  return i;
}


inline int count( char* s )
{
  return count( (const char*) s );
}


inline char* truncate( char* string, int length )
{
  if( strlen( string ) > length ) 
    strcpy( string+length-3, "..." );

  return string;
}


inline void skip_spaces( char*& arg )
{
  for( ; isspace( *arg ); arg++ );
  return;
}


inline void skip_spaces( const char*& arg )
{
  for( ; isspace( *arg ); arg++ );
  return;
}


inline bool matches( const char*& argument, const char* word, bool exact )
{
  return( exact ? exact_match( argument, word )
    : matches( argument, word ) );
}


/*
 *   STATIC STRINGS
 */


extern char  static_storage  [ 10*THREE_LINES ]; 
extern int       store_pntr;


inline char* static_string( void )
{
  store_pntr = ( store_pntr+1 )%10;
  return &static_storage[store_pntr*THREE_LINES];
}


inline char* static_string( const char* msg )
{
  char* tmp  = static_string( );

  strcpy( tmp, msg );

  return tmp;
}