#ifndef _verbs_h_
#define _verbs_h_ 1

#include "sysdep.h"
#include "msg.h"
#include "folder.h"
#include "rule.h"
#include "ruleset.h"
#include "darray.h"

/* These are used to communicate context information when calling the 
   verb procedures */

extern Msg AlVerbs_current_msg;
extern AlFolder AlVerbs_current_folder;
extern AlRule AlVerbs_current_rule;
extern AlRuleSet AlVerbs_current_ruleset;

extern const char *AlVerbs_sendme_username;

/* This defines the execution procedures for the predefined verbs */

extern NORET AlVerbs_delete PROTOTYPE((Darray));
extern NORET AlVerbs_move PROTOTYPE((Darray));
extern NORET AlVerbs_copy PROTOTYPE((Darray));
extern NORET AlVerbs_system PROTOTYPE((Darray));
extern NORET AlVerbs_system_body PROTOTYPE((Darray));
extern NORET AlVerbs_runrules PROTOTYPE((Darray));
extern NORET AlVerbs_add PROTOTYPE((Darray));
extern NORET AlVerbs_subtract PROTOTYPE((Darray));
extern NORET AlVerbs_set PROTOTYPE((Darray));
extern NORET AlVerbs_clear PROTOTYPE((Darray));
extern NORET AlVerbs_stop_rs PROTOTYPE((Darray));
extern NORET AlVerbs_set_uprop_permanent PROTOTYPE((Darray));
extern NORET AlVerbs_set_uprop_nopermanent PROTOTYPE((Darray));
extern NORET AlVerbs_resend PROTOTYPE((Darray));
extern NORET AlVerbs_sendme PROTOTYPE((Darray));
extern NORET AlVerbs_send_to_all_recipients PROTOTYPE((NOARGS));
extern NORET AlVerbs_shell PROTOTYPE((Darray));

#endif
