#include <sys/param.h>
#include <dictionary.h>
#include <dicterrors.h>
#include <dict_errs.h>
#include <errno.h>
#include <dictvariables.h>
#include <stdio.h>
#include <strings.h>

dictInitializePaths(directory, list_name, index_name)
char *directory, *list_name, *index_name;
{
     int len;
     int addslash;

     if (! (directory && list_name && index_name && *directory && *list_name
	    && *index_name)) {
	  dict_set_error(DICT_PATH_NULL_NAME);
	  return(dict_error_code);
     }
     
     len = strlen(directory);
     if (directory[len - 1] == '/')
	  addslash = 0;
     else
	  addslash = 1;

     if (len + addslash + 1 > MAXPATHLEN) {
	  dict_set_error(ENAMETOOLONG);
	  return(dict_error_code);
     }
     strcpy(_dict_directory, directory);
     if (addslash) {
	  _dict_directory[len] = '/';
	  _dict_directory[len + 1] = '\0';
	  len += 2;
     }
     else {
	  len += 1;
     }
     
     if (len + strlen(list_name) > MAXPATHLEN) {
	  dict_set_error(ENAMETOOLONG);
	  return(dict_error_code);
     }
     sprintf(_dict_list_path, "%s%s", _dict_directory, list_name);

     if (len + strlen(index_name) > MAXPATHLEN) {
	  dict_set_error(ENAMETOOLONG);
	  return(dict_error_code);
     }
     sprintf(_dict_index_path, "%s%s", _dict_directory, index_name);

     _dict_paths_initialized = 1;
     
     return(0);
}

