/**********************************************************************
 * PTlink IRC Services is (C) CopyRight PTlink IRC Software 1999-2005 *
 *                     http://software.pt-link.net                    *
 * This program is distributed under GNU Public License               *
 * Please read the file COPYING for copyright information.            *
 **********************************************************************  

  Description: nickserv module header file

 *  $Id: nickserv.h,v 1.3 2005/10/18 16:25:06 jpinto Exp $
*/

#ifndef _NICKSERV_H_
#define _NICKSERV_H_
#include "strhand.h" /* we need for the options mask */

/* nickserv flags */
#define NFL_PRIVATE     0x00000001  	/* nick info is private */
#define NFL_SUSPENDED	0x00000002	/* nick is suspended */
#define NFL_NOEXPIRE    0x00000004  	/* nick will not expire */
#define NFL_NONEWS	0x00000008  	/* nick should received  newsletter */
#define NFL_HIDEEMAIL	0x00000010	/* nick wants to hide email from ns info */
#define NFL_AUTHENTIC	0x00000020	/* nick email was authenticated */
#define NFL_PROTECTED	0x00000040	/* nick is protected */
#define NFL_USEMSG	0x00000080	/* nick wants msg instead of notices */
/* NOTE: NFL_USEMSG is also defined on src/lang.c ! */ 

/* nickserv status */
#define NST_ONLINE	0x00000001	/* nick is online */
#define NST_FULLREG	0x00000002	/* nick is fully registered, will get +r */

/* misc macros */
#define IsPrivateNick(x)        ((x)->flags & NFL_PRIVATE)
#define IsHideEmail(x)		((x)->flags & NFL_HIDEEMAIL)

#define IsOnline(x)		((x)->status & NST_ONLINE)
#define SetOnline(x)		((x)->status |= NST_ONLINE)
#define ClearOnline(x)		((x)->status &= ~NST_ONLINE)

#define IsAuthenticated(x)	((x)->flags & NFL_AUTHENTIC)
#define SetAuthenticated(x)	((x)->flags |= NFL_AUTHENTIC)
#define ClearAuthenticated(x)	((x)->flags &= ~NFL_AUTHENTIC)

#define IsProtected(x)		((x)->flags & NFL_PROTECTED)
#define SetProtected(x)		((x)->flags |= NFL_PROTECTED)
#define ClearProtected(x)	((x)->flags &= ~NFL_PROTECTED)

#define WantsMsg(x)		((x)->flags & NFL_USEMSG)

#define IsFullRegistered(x)	((x)->status & NST_FULLREGISTERED)


OptionMask nick_options_mask[] =
  {
    { "private", NFL_PRIVATE, NULL },
    { "nonews", NFL_NONEWS, NULL },
    { "noexpire", NFL_NOEXPIRE, NULL },
    { "hideemail", NFL_HIDEEMAIL, NULL },
    { "protected", NFL_PROTECTED, NULL },
    { "suspended", NFL_SUSPENDED, NULL },
    { "usemsg", NFL_USEMSG, NULL },
    { NULL }
};

/* extra data constants defined here */
#define ED_GROUPS 0

#ifdef NICKSERV
#else
#endif

#endif


syntax highlighted by Code2HTML, v. 0.9.1