#include <mailer.h>
// Some muds don't have this...if you already do, please
// uncomment or delete this function.  *Inspiral*
// mudlib: basis
// date:   1992/09/05
// author: Truilkan
 
void mkdirs(string path)
{
        string *parts, dir;
        int j;
 
        seteuid(geteuid(previous_object()));
        parts = explode(path, "/");
        dir = "";
        for (j = 0; j < sizeof(parts); j++) {
                dir += parts[j];
                mkdir(dir);
                dir += "/";
        }
}
 
 
/*
// Function: data_netmail_file( string mud )
// Author:   Inspiral@Tabor
// Date:     12/23/93
*/
 
// this simul_efun returns a savefile in the form:
// NETMAIL_DIR + mud[0..0] + "/" + mud ... "/data/mail/net/t/tabor"
// If the proper path does not exist, it creates directories along the way
string data_netmail_file( string mud ) {
  string path;
 
  if( !mud || mud == "" ) 
          return 0;
 
  mud = lower_case( mud );
  path = NETMAIL_DIR + mud[ 0..0 ];
 
  if( !directory_exists( path ) )
    mkdirs( path );
 
  return path + "/" + mud;
}
 
/*
//
// File:    strip_backspace, a simul_efun.
// Author:  Inspiral@Tabor
// Created: 94-01-10
// Purpose: Strip the backspace and previous character from an incoming
//          string message.
//
*/
 
string strip_backspace( string str ) {
  mixed str_arr;
  int i;
 
  if( !stringp( str ) || !(i = strlen( str )) )
      return str;
 
  str_arr = allocate( i );
 
  while( i-- ) {
    if( i < 0 ) break;
    if( str[i] == '\b' ) {
       i--;
       continue;
    }
    str_arr[i] = str[i..i];
  }
 
  str_arr -= ({ 0 });
  str = implode( str_arr, "" );
  return str;
}
 
string user_mbox_file( string name ) {
  string path;
  if( !name || name == "" ) return 0;
  name = lower_case( name );
  path = MBOXDIR + name[ 0..0 ];
  if( !directory_exists( path ) )
    mkdirs( path );
  return path + "/" + name;
}
string mail_mesg_file( mixed date_id ) {
  string path;
  if( !date_id ) return 0;
  if( !(date_id = to_int( date_id )) ) return 0;
  date_id = date_id + "";
  path = MESGDIR + date_id[ <2..<2 ] + "/" + date_id[ <1..<1 ];
  if( !directory_exists( path ) )
    mkdirs( path );
  return path + "/" + date_id;
}
int last_char( string arg1, mixed arg2 ) {
  int tst;
  if( !strlen( arg1 ) ) return 0;
  tst = strlen( arg1 ) - 1;
  if( intp( arg2 ) )
      return (arg1[tst] == arg2);
  return (arg1[tst..tst] == arg2);
}
/* EOF */