/*
  Pirate Bulletin Board System
  Copyright (C) 1990, Edward Luke
  
  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 1, 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.
  
  
  Email address:
  lush@erc.MsState.EDU
  */
#include "bbs.h"

int Create(),Select(),Boards(),Post(),Users(),Goodbye(),Read() ;
int Help(), New(), Mail(), Files(), Talk(), Xyz(), Zap()  ;
int Maintenance(), Visit(), Info() ;

struct commands cmdlist[] = {
    "Create",       Create,       10,  "Post",       "Create",
    "Select",	    Select,        0,  "Read",       "Select",
    "Boards",       Boards,        0,  "Select",     "Boards",
    "Post",         Post,          0,  "Read",       "Post",
    "Users",        Users,         0,  "Talk",       "Users",
    "Goodbye",      Goodbye,       0,  "Goodbye",    "Goodbye",
    "Read",         Read,          0,  "Read",       "Select",
    "Help",         Help,          0,  "Select",     "Help",
    "New",          New,           0,  "Select",     "Select",
    "Mail",         Mail,          0,  "New",        "Mail",
    "Files",        Files,         0,  "Files",      "Files",
    "Talk",         Talk,          0,  "Talk",       "Talk",
    "Xyz",          Xyz,           0,  "Xyz",        "Xyz",
    "Admin",        Maintenance, 255,  "Admin",      "Admin",
    "Visit",        Visit,         0,  "Visit",      "Visit",
    "Info",         Info,          0,  "Info",       "Info",
    "Zap",          Zap,           0,  "Zap",     "Boards",
    NULL,           NULL,          0,  NULL,         NULL   } ;

int d_board(),d_user(),d_exit() ;

int m_send(), m_new(), m_read(), m_help() ;

struct commands maillist[] = {
    "Send",    m_send,      0,    "Send",        "Exit",
    "New",     m_new,       0,    "Send",        "Exit",
    "Read",    m_read,      0,    "Send",        "Exit",
    "Exit",    d_exit,      0,    "Exit",        "Exit",
    "Help",    m_help,      0,    "Help",        "Help",
    NULL,      NULL,        0,    NULL,          NULL   } ;

int f_list(), f_download(), f_upload(), f_help(), f_protocol(), f_select() ;
int f_text() ; 

struct commands filelist[] = {
    "Select",  f_select,    0,    "List",        "Exit",
    "List",    f_list,      0,    "Download",    "Select",
    "Protocol",f_protocol,  0,    "Download",    "Select",
    "Download",f_download,  0,    "Download",    "Select",
    "Upload",  f_upload,    0,    "Exit",        "Select",
    "Text",    f_text,      0,    "List",        "Select",
    "Help",    f_help,      0,    "List",        "Exit",
    "Exit",    d_exit,      0,    "Exit",        "Exit",
    NULL,       NULL,       0,    NULL,          NULL   } ;

int x_passwd(), x_terminal(), x_level(), x_help(), x_name(),x_csh(), x_cloak()  ;
int Conditions() ;


struct commands xyzlist[] = {
    "Cloak",   x_cloak,    10,    "Cloak",       "Exit",
    "Passwd",  x_passwd,    0,    "Passwd",      "Exit",
    "Name",    x_name,      0,    "Passwd",      "Exit",
    "Terminal",x_terminal,  0,    "Terminal",    "Exit",
    "Help",    x_help,      0,    "Help",        "Exit",
    "Gnu General Public License", Conditions, 0, "G", "G",
    "Exit",    d_exit,      0,    "Help",        "Exit",
    NULL,       NULL,       0,    NULL,          NULL   } ;

int t_users(), t_help(), t_talk(), t_chat(), t_irc() ;

struct commands talklist[] = {
    "Users",   t_users,     0,    "Users",       "Exit",
    "Talk",    t_talk,      0,    "Talk",        "Exit",
    "Chat",    t_chat,      0,    "Chat",        "Exit",
    "IRC",     t_irc,     255,    "IRC",         "Exit",
    "Help",    t_help,      0,    "Help",        "Exit",
    "Exit",    d_exit,      0,    "Help",        "Exit",
    NULL,      NULL,        0,    NULL,           NULL,   } ;

int m_uclean(), m_fclean(), m_tclean(), a_help(), m_info() ;

struct commands maintlist[] = {
    "User Clean",  m_uclean, 255, "User Clean",   "Exit",
    "Level",       x_level,  255, "Level" ,       "Exit",
    "Shell",       x_csh,    255, "Exit" ,        "Exit",
    "Info",        m_info,   255, "Info",         "Info",
    "Delete User", d_user,   255, "Delete",       "Exit",
    "Board Delete",d_board,  255, "Board",        "Exit",
    "Help",        a_help,     0, "Help",         "Exit",
    "Exit",        d_exit,     0, "Exit",         "Exit",
    NULL,          NULL,       0,  NULL,          NULL,    } ;
