#include "sysdep.h"
#include "bool.h"
#include "FTreg.h"
#include "verb.h"
#include "verbs.h"
#include "verbrgy.h"

NORET UserRegisterRequests(NOARGS)
{
 /* Gets replaced in the user's customization file */
}

extern struct AlFieldTypeRegistry_str *bool_FTrecptr;
extern struct AlFieldTypeRegistry_str *string_FTrecptr;
extern struct AlFieldTypeRegistry_str *ci_string_FTrecptr;
extern struct AlFieldTypeRegistry_str *cicomma_FTrecptr;
extern struct AlFieldTypeRegistry_str *comma_FTrecptr;
extern struct AlFieldTypeRegistry_str *substring_FTrecptr;
extern struct AlFieldTypeRegistry_str *date_FTrecptr;
extern struct AlFieldTypeRegistry_str *int_FTrecptr;

NORET SystemRegisterRequests(NOARGS)
{
  if (AlFTreg_exists_string(bool_FTrecptr->name) == Bool_FALSE)
    RegisterFieldType(bool_FTrecptr);
  if (AlFTreg_exists_string(string_FTrecptr->name) == Bool_FALSE)
    RegisterFieldType(string_FTrecptr);
  if (AlFTreg_exists_string(ci_string_FTrecptr->name) == Bool_FALSE)
    RegisterFieldType(ci_string_FTrecptr);
  if (AlFTreg_exists_string(cicomma_FTrecptr->name) == Bool_FALSE)
    RegisterFieldType(cicomma_FTrecptr);
  if (AlFTreg_exists_string(comma_FTrecptr->name) == Bool_FALSE)
    RegisterFieldType(comma_FTrecptr);
  if (AlFTreg_exists_string(date_FTrecptr->name) == Bool_FALSE)
    RegisterFieldType(date_FTrecptr);
  if (AlFTreg_exists_string(int_FTrecptr->name) == Bool_FALSE)
    RegisterFieldType(int_FTrecptr);
  AlVerbReg_register("delete", AlVerb_create(AlVerbs_delete, 0, 0, 0));
  AlVerbReg_register("system", AlVerb_create(AlVerbs_system, 1,1,1));
  AlVerbReg_register("systembody", AlVerb_create(AlVerbs_system_body, 1,1,1));
  AlVerbReg_register("move-to", AlVerb_create(AlVerbs_move, 1, 2, 1));
  AlVerbReg_register("copy-to", AlVerb_create(AlVerbs_copy, 1, 2, 1));
  AlVerbReg_register("runrules", AlVerb_create(AlVerbs_runrules, 1, 3, 1));
  AlVerbReg_register("add", AlVerb_create(AlVerbs_add, 2, 2, 2));
  AlVerbReg_register("subtract", AlVerb_create(AlVerbs_subtract, 2, 2, 2));
  AlVerbReg_register("set", AlVerb_create(AlVerbs_set, 2, 2, 2));
  AlVerbReg_register("clear", AlVerb_create(AlVerbs_clear, 1, 1, 1));
  AlVerbReg_register("stop", AlVerb_create(AlVerbs_stop_rs, 0, 0, 0));
  AlVerbReg_register("permanent", 
	 AlVerb_create(AlVerbs_set_uprop_permanent, 1, 1, 1));
  AlVerbReg_register("nonpermanent", 
	 AlVerb_create(AlVerbs_set_uprop_nopermanent, 1, 1, 1));
  AlVerbReg_register("remail",
	 AlVerb_create(AlVerbs_resend, 1, 1, 1));
  AlVerbReg_register("sendme",
	 AlVerb_create(AlVerbs_sendme, 0, 0, 0));
  AlVerbReg_register("shell",
		     AlVerb_create(AlVerbs_shell, 1, 2, 1));
}

