#ifndef fset_h__
#define fset_h__

/*
 * fset.h - mmm format set def'ns and stuff.
 * Copyright (C) 1998, 1999, 2000 Rex Feany <laeos@laeos.net>
 * 
 * This file is a part of <foo>, a <desc>
 * You can find <foo> at <url>
 *
 * 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 of the License, 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.
 *
 * %W%
 *
 */

#include "tcommand.h"

/*
 * All of the formats. Index into array in fset.c so be careful!
 */

enum FSET_TYPES
{
	FORMAT_381_FSET,
	FORMAT_391_FSET,
	FORMAT_443_FSET,
	FORMAT_471_FSET,
	FORMAT_473_FSET,
	FORMAT_474_FSET,
	FORMAT_475_FSET,
	FORMAT_476_FSET,
	FORMAT_ACTION_FSET,
	FORMAT_ACTION_OTHER_FSET,
	FORMAT_ALIAS_FSET,
	FORMAT_ASSIGN_FSET,
	FORMAT_AWAY_FSET,
	FORMAT_BACK_FSET,
	
	FORMAT_BANS_FSET,
	FORMAT_BANS_HEADER_FSET,
	FORMAT_BWALL_FSET,
	
	FORMAT_CHANNEL_SIGNOFF_FSET,
	
	FORMAT_CONNECT_FSET,
	FORMAT_CTCP_FSET,
	FORMAT_CTCP_REPLY_FSET,
	FORMAT_CTCP_UNKNOWN_FSET,
	FORMAT_DCC_FSET,
	FORMAT_DCC_CHAT_FSET,
	FORMAT_DCC_CONNECT_FSET,
	FORMAT_DCC_ERROR_FSET,
	FORMAT_DCC_LOST_FSET,
	FORMAT_DCC_REQUEST_FSET,
	FORMAT_DESYNC_FSET,
	FORMAT_DISCONNECT_FSET,
	FORMAT_ENCRYPTED_NOTICE_FSET,
	FORMAT_ENCRYPTED_PRIVMSG_FSET,
	FORMAT_FLOOD_FSET,
	FORMAT_HOOK_FSET,
	
	FORMAT_IGNORE_INVITE_FSET,
	FORMAT_IGNORE_MSG_FSET,
	FORMAT_IGNORE_MSG_AWAY_FSET,
	FORMAT_IGNORE_NOTICE_FSET,
	FORMAT_IGNORE_WALL_FSET,
	
	FORMAT_INVITE_FSET,
	FORMAT_INVITE_USER_FSET,
	FORMAT_JOIN_FSET,
	FORMAT_KICK_FSET,
	FORMAT_KICK_USER_FSET,
	FORMAT_KILL_FSET,
	FORMAT_LEAVE_FSET,
	FORMAT_LINKS_FSET,
	FORMAT_LIST_FSET,
	FORMAT_MODE_FSET,
	FORMAT_MODE_CHANNEL_FSET,
	FORMAT_MSG_FSET,
	FORMAT_MSGLOG_FSET,
	FORMAT_MSG_GROUP_FSET,
	
	FORMAT_NAMES_FSET,
	FORMAT_NAMES_BANNER_FSET,
	FORMAT_NAMES_FOOTER_FSET,
	FORMAT_NAMES_IRCOP_FSET,
	FORMAT_NAMES_NICKCOLOR_FSET,
	FORMAT_NAMES_NONOP_FSET,
	FORMAT_NAMES_OP_FSET,
	FORMAT_NAMES_OPCOLOR_FSET,
	FORMAT_NAMES_VOICE_FSET,
	FORMAT_NAMES_VOICECOLOR_FSET,
	
	FORMAT_NETADD_FSET,
	FORMAT_NETJOIN_FSET,
	FORMAT_NETSPLIT_FSET,
	FORMAT_NETSPLIT_HEADER_FSET,
	
	FORMAT_NICKNAME_FSET,
	FORMAT_NICKNAME_OTHER_FSET,
	FORMAT_NICKNAME_USER_FSET,
	FORMAT_NICK_AUTO_FSET,
	FORMAT_NICK_COMP_FSET,
	FORMAT_NICK_MSG_FSET,
	
	FORMAT_NONICK_FSET,
	FORMAT_NOTE_FSET,
	FORMAT_NOTICE_FSET,
	FORMAT_NOTIFY_OFF_FSET,
	FORMAT_NOTIFY_ON_FSET,
	FORMAT_NOTIFY_SIGNOFF_FSET,
	FORMAT_NOTIFY_SIGNOFF_UH_FSET,
	FORMAT_NOTIFY_SIGNON_FSET,
	FORMAT_NOTIFY_SIGNON_UH_FSET,
	FORMAT_OPER_FSET,
	FORMAT_PUBLIC_FSET,
	FORMAT_PUBLIC_AR_FSET,
	FORMAT_PUBLIC_MSG_FSET,
	FORMAT_PUBLIC_MSG_AR_FSET,
	FORMAT_PUBLIC_NOTICE_FSET,
	FORMAT_PUBLIC_NOTICE_AR_FSET,
	FORMAT_PUBLIC_OTHER_FSET,
	FORMAT_PUBLIC_OTHER_AR_FSET,
	FORMAT_SEND_ACTION_FSET,
	FORMAT_SEND_ACTION_OTHER_FSET,
	FORMAT_SEND_AWAY_FSET,
	FORMAT_SEND_CTCP_FSET,
	FORMAT_SEND_DCC_CHAT_FSET,
	FORMAT_SEND_MSG_FSET,
	
	FORMAT_SEND_NOTICE_FSET,
	FORMAT_SEND_PUBLIC_FSET,
	FORMAT_SEND_PUBLIC_OTHER_FSET,
	FORMAT_SERVER_FSET,
	FORMAT_SERVER_MSG1_FSET,
	FORMAT_SERVER_MSG1_FROM_FSET,
	FORMAT_SERVER_MSG2_FSET,
	FORMAT_SERVER_MSG2_FROM_FSET,
	
	FORMAT_SERVER_NOTICE_FSET,
	
	FORMAT_SET_FSET,
	FORMAT_SET_NOVALUE_FSET,
	
	FORMAT_SIGNOFF_FSET,
	FORMAT_SILENCE_FSET,
	FORMAT_SMODE_FSET,
	FORMAT_STATUS_FSET,
	FORMAT_STATUS2_FSET,
	FORMAT_TIMER_FSET,
	FORMAT_TOPIC_FSET,
	FORMAT_TOPIC_CHANGE_FSET,
	FORMAT_TOPIC_CHANGE_HEADER_FSET,
	FORMAT_TOPIC_SETBY_FSET,
	FORMAT_TOPIC_UNSET_FSET,
	FORMAT_TRACE_OPER_FSET,
	FORMAT_TRACE_SERVER_FSET,
	FORMAT_TRACE_USER_FSET,
	FORMAT_USAGE_FSET,
	
	FORMAT_USERMODE_FSET,
	FORMAT_USERS_FSET,
	FORMAT_USERS_HEADER_FSET,
	FORMAT_USERS_USER_FSET,
	FORMAT_VERSION_FSET,
	FORMAT_WALL_FSET,
	FORMAT_WALLOP_FSET,
	FORMAT_WALL_AR_FSET,
	FORMAT_WHO_FSET,
	FORMAT_WHOIS_AWAY_FSET,
	FORMAT_WHOIS_CHANNELS_FSET,
	FORMAT_WHOIS_FOOTER_FSET,
	FORMAT_WHOIS_HEADER_FSET,
	FORMAT_WHOIS_IDLE_FSET,
	FORMAT_WHOIS_NAME_FSET,
	FORMAT_WHOIS_NICK_FSET,
	FORMAT_WHOIS_OPER_FSET,
	FORMAT_WHOIS_SERVER_FSET,
	FORMAT_WHOIS_SIGNON_FSET,
	FORMAT_WHOLEFT_FOOTER_FSET,
	FORMAT_WHOLEFT_HEADER_FSET,
	FORMAT_WHOLEFT_USER_FSET,
	FORMAT_WHOWAS_HEADER_FSET,
	FORMAT_WHOWAS_NICK_FSET,
	FORMAT_WIDELIST_FSET,
	FORMAT_WINDOW_SET_FSET,
	NUMBER_OF_FSET
};


char *get_fset_var(enum FSET_TYPES var);
void cmd_fset(struct command *cmd, char *args);
char *make_fstring_var(char *var_name);
int save_formats (FILE * outfile);


#endif /* fset_h__ */
