mail.h 4.56 KB
/* GNU mailutils - a suite of utilities for electronic mail
   Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */

#ifndef _MAIL_H
#define _MAIL_H 1

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <stdarg.h>
#include <signal.h>
#include <ctype.h>

#include <argp.h>

#ifdef HAVE_READLINE_READLINE_H
#include <readline/readline.h>
#include <readline/history.h>
#endif

#include <mailutils/mailbox.h>
#include <mailutils/message.h>
#include <mailutils/header.h>
#include <mailutils/body.h>
#include <mailutils/registrar.h>

#include <argcv.h>
#include <getline.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifndef __P
# ifdef __STDC__
#  define __P(args) args
# else
#  define __P(args) ()
# endif
#endif /*__P */

/* Type definitions */
#ifndef function_t
typedef int function_t ();
#endif

struct mail_command_entry {
  char *shortname;
  char *longname;
  function_t *func;
  char *synopsis;
};

struct mail_env_entry {
  char *var;
  int set;
  char *value;
};

/* Global variables and constants*/
mailbox_t mbox;
unsigned int cursor;
unsigned int realcursor;
unsigned int total;
FILE *ofile;
extern const struct mail_command_entry mail_command_table[];

/* Functions */
int mail_alias __P((int argc, char **argv));
int mail_alt __P((int argc, char **argv));	/* command alternates */
int mail_cd __P((int argc, char **argv));
int mail_copy __P((int argc, char **argv));
int mail_delete __P((int argc, char **argv));
int mail_discard __P((int argc, char **argv));
int mail_dp __P((int argc, char **argv));
int mail_echo __P((int argc, char **argv));
int mail_edit __P((int argc, char **argv));
int mail_exit __P((int argc, char **argv));
int mail_file __P((int argc, char **argv));
int mail_folders __P((int argc, char **argv));
int mail_followup __P((int argc, char **argv));
int mail_from __P((int argc, char **argv));
int mail_headers __P((int argc, char **argv));
int mail_hold __P((int argc, char **argv));
int mail_help __P((int argc, char **argv));
int mail_if __P((int argc, char **argv));
int mail_list __P((int argc, char **argv));
int mail_send __P((int argc, char **argv));	/* command mail */
int mail_mbox __P((int argc, char **argv));
int mail_next __P((int argc, char **argv));
int mail_pipe __P((int argc, char **argv));
int mail_previous __P((int argc, char **argv));
int mail_print __P((int argc, char **argv));
int mail_quit __P((int argc, char **argv));
int mail_reply __P((int argc, char **argv));
int mail_retain __P((int argc, char **argv));
int mail_save __P((int argc, char **argv));
int mail_set __P((int argc, char **argv));
int mail_shell __P((int argc, char **argv));
int mail_size __P((int argc, char **argv));
int mail_source __P((int argc, char **argv));
int mail_top __P((int argc, char **argv));
int mail_touch __P((int argc, char **argv));
int mail_unalias __P((int argc, char **argv));
int mail_undelete __P((int argc, char **argv));
int mail_unset __P((int argc, char **argv));
int mail_visual __P((int argc, char **argv));
int mail_write __P((int argc, char **argv));
int mail_z __P((int argc, char **argv));

int mail_eq __P((int argc, char **argv));	/* command = */

int util_expand_msglist __P((const int argc, char **argv, int **list));
int util_do_command __P((const char *cmd, ...));
int util_msglist_command __P((function_t *func, int argc, char **argv));
function_t* util_command_get __P((char *cmd));
char **util_command_completion __P((char *cmd, int start, int end));
char *util_command_generator __P((char *text, int state));
char *util_stripwhite __P((char *string));
struct mail_command_entry util_find_entry __P((char *cmd));
int util_getcols __P((void));
int util_getlines __P((void));
struct mail_env_entry *util_find_env __P((char *var));
int util_printenv __P((int set));
int util_isdeleted __P((int message));

#ifdef __cplusplus
}
#endif

#endif /* _MAIL_H */