The formatting of /NAMES and /SCAN output has been substantially reworked. The old /FSETs NAMES_BOTCOLOR, NAMES_FRIENDCOLOR, NAMES_NICKCOLOR, NAMES_OPCOLOR, NAMES_SHITCOLOR and NAMES_VOICECOLOR have been replaced with these new /FSETs: ....................NAMES_NICK %B$[10]0 ................NAMES_NICK_BOT %G$[10]0 .............NAMES_NICK_FRIEND %Y$[10]0 .................NAMES_NICK_ME %W$[10]0 ...............NAMES_NICK_SHIT %R$[10]0 ....................NAMES_USER %K[ %n$1-%K] .............NAMES_USER_CHANOP %K[%C$0%n$1-%K] ..............NAMES_USER_IRCOP %K[%R$0%n$1-%K] ..............NAMES_USER_VOICE %K[%M$0%n$1-%K] The NAMES_NICK formats control how the nick itself is displayed, depending on the status of the nick as recognised by BitchX (the priority order is NAMES_NICK_ME > NAMES_NICK_BOT > NAMES_NICK_FRIEND > NAMES_NICK_SHIT > NAMES_NICK). The NAMES_USER formats control how the overall entry appears in the /NAMES or /SCAN line, depending on the channel status of the nick (the priority order is NAMES_USER_CHANOP > NAMES_USER_VOICE > NAMES_USER_IRCOP > NAMES_USER). You'll need to update any scripts or custom formats that altered the old formats. If you just use the defaults, the main difference you'll see is that your own nick is now shown in white, and voiced users are shown with the '+' sent by the server instead of the 'v'. You can go back to the old look by setting these formats: /FSET NAMES_NICK_ME %B$[10]0 /FSET NAMES_USER_VOICE %K[%Mv%n$1-%K] git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@46 13b04d17-f746-0410-82c6-800466cd88b0
1095 lines
44 KiB
C
1095 lines
44 KiB
C
#include "irc.h"
|
|
static char cvsrevision[] = "$Id$";
|
|
CVS_REVISION(fset_c)
|
|
#include "struct.h"
|
|
|
|
#include "alist.h"
|
|
#include "ircaux.h"
|
|
#include "screen.h"
|
|
#include "hook.h"
|
|
#include "output.h"
|
|
#include "misc.h"
|
|
#include "list.h"
|
|
#include "vars.h"
|
|
#define MAIN_SOURCE
|
|
#include "modval.h"
|
|
|
|
extern void reinit_status (Window *, char *, int);
|
|
|
|
typedef struct _fset_number_ {
|
|
struct _fset_number_ *next;
|
|
int numeric;
|
|
char *format;
|
|
} FsetNumber;
|
|
|
|
static FsetNumber *numeric_fset = NULL;
|
|
|
|
IrcVariable fset_array[] =
|
|
{
|
|
{ "ACTION", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "ACTION_AR", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "ACTION_CHANNEL", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "ACTION_OTHER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "ACTION_OTHER_AR", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "ACTION_USER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "ACTION_USER_AR", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "ALIAS", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "ASSIGN", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "AWAY", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "BACK", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "BANS", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "BANS_FOOTER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "BANS_HEADER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "BITCH", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "BOT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "BOT_FOOTER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "BOT_HEADER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "BWALL", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
|
|
{ "CHANNEL_SIGNOFF", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
|
|
{ "COMPLETE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "CONNECT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "CSET", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "CTCP", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "CTCP_CLOAK", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "CTCP_CLOAK_FUNC", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "CTCP_CLOAK_FUNC_USER",0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "CTCP_CLOAK_UNKNOWN", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "CTCP_CLOAK_UNKNOWN_USER", 0,STR_TYPE_VAR,0,NULL, NULL, 0, 0},
|
|
{ "CTCP_CLOAK_USER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "CTCP_FUNC", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "CTCP_FUNC_USER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "CTCP_REPLY", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "CTCP_UNKNOWN", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "CTCP_UNKNOWN_USER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "CTCP_USER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "DCC", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "DCC_CHAT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "DCC_CONNECT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "DCC_ERROR", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "DCC_LOST", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "DCC_REQUEST", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "DESYNC", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
|
|
{ "DISCONNECT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "EBANS", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "EBANS_FOOTER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "EBANS_HEADER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "ENCRYPTED_NOTICE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "ENCRYPTED_PRIVMSG", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "FLOOD", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "FRIEND_JOIN", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "HELP", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "HOOK", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
|
|
{ "IGNORE_INVITE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "IGNORE_MSG", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "IGNORE_MSG_AWAY", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "IGNORE_NOTICE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "IGNORE_WALL", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
|
|
{ "INVITE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "INVITE_USER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "JOIN", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "KICK", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "KICK_USER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "KILL", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "LASTLOG", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "LEAVE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "LINKS", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "LIST", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "MAIL", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "MODE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "MODE_CHANNEL", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "MSG", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "MSGCOUNT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "MSGLOG", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "MSG_GROUP", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_BANNER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_BOT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_FOOTER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_FRIEND", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_IRCOP", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_NICK", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_NICK_BOT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_NICK_FRIEND", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_NICK_ME", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_NICK_SHIT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_NONOP", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_OP", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_SHIT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_USER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_USER_CHANOP", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_USER_IRCOP", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_USER_VOICE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NAMES_VOICE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
|
|
{ "NETADD", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NETJOIN", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NETSPLIT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NETSPLIT_HEADER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NICKNAME", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NICKNAME_OTHER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NICKNAME_USER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NICK_AUTO", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NICK_COMP", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NICK_MSG", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NONICK", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NOTE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NOTICE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NOTIFY_OFF", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NOTIFY_ON", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NOTIFY_SIGNOFF", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "NOTIFY_SIGNON", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "OPER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "OV", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "PASTE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "PUBLIC", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "PUBLIC_AR", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "PUBLIC_MSG", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "PUBLIC_MSG_AR", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "PUBLIC_NOTICE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "PUBLIC_NOTICE_AR", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "PUBLIC_OTHER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "PUBLIC_OTHER_AR", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "REL", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "RELM", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "RELN", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "RELS", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "RELSM", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "RELSN", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SEND_ACTION", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SEND_ACTION_OTHER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SEND_AWAY", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SEND_CTCP", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SEND_DCC_CHAT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SEND_ENCRYPTED_MSG", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SEND_ENCRYPTED_NOTICE",0,STR_TYPE_VAR,0, NULL, NULL, 0, 0},
|
|
{ "SEND_MSG", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SEND_NOTICE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SEND_PUBLIC", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SEND_PUBLIC_OTHER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_MSG1", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_MSG1_FROM", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_MSG2", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_MSG2_FROM", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
|
|
{ "SERVER_NOTICE_BOT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_BOT1", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_BOT_ALARM",0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_CLIENT_CONNECT",0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_CLIENT_EXIT",0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_CLIENT_INVALID",0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_CLIENT_TERM",0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_FAKE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_GLINE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_KILL", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_KILL_LOCAL", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_KLINE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_NICKC", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_OPER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_REHASH", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_STATS", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_TRAFFIC_HIGH", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_TRAFFIC_NORM", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SERVER_NOTICE_UNAUTH",0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
|
|
{ "SET", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SET_NOVALUE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SHITLIST", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SHITLIST_FOOTER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SHITLIST_HEADER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SIGNOFF", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SILENCE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "SMODE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "STATUS", 0,STR_TYPE_VAR, 0, NULL, reinit_status, 0, 0},
|
|
{ "STATUS1", 0,STR_TYPE_VAR, 0, NULL, reinit_status, 0, 0},
|
|
{ "STATUS2", 0,STR_TYPE_VAR, 0, NULL, reinit_status, 0, 0},
|
|
{ "STATUS3", 0,STR_TYPE_VAR, 0, NULL, reinit_status, 0, 0},
|
|
{ "TIMER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "TOPIC", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "TOPIC_CHANGE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "TOPIC_CHANGE_HEADER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "TOPIC_SETBY", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "TOPIC_UNSET", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "TRACE_OPER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "TRACE_SERVER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "TRACE_USER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "USAGE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "USERLIST", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "USERLIST_FOOTER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "USERLIST_HEADER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "USERMODE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "USERS", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "USERS_HEADER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "USERS_SHIT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "USERS_TITLE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "USERS_USER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "VERSION", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WALL", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WALLOP", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WALL_AR", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WATCH_SIGNON", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WATCH_SIGNOFF", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHO", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_ADMIN", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_AWAY", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_BOT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_CHANNELS", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_FOOTER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_FRIEND", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_HEADER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_HELP", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_IDLE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_NAME", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_NICK", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_OPER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_REGISTER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_SERVER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_SERVICE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_SHIT", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_SIGNON", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOIS_ACTUALLY", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOLEFT_FOOTER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOLEFT_HEADER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOLEFT_USER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOWAS_HEADER", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WHOWAS_NICK", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WIDELIST", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "WINDOW_SET", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ "XTERM_TITLE", 0,STR_TYPE_VAR, 0, NULL, NULL, 0, 0},
|
|
{ NULL, 0, 0, 0, NULL, NULL, 0, 0}
|
|
};
|
|
|
|
typedef struct FSet_struc
|
|
{
|
|
IrcVariable **list;
|
|
int max;
|
|
int max_set;
|
|
alist_func func;
|
|
unsigned long hash;
|
|
} FSet;
|
|
|
|
int strncasecmp(const char *s1, const char *s2, size_t n);
|
|
|
|
FSet ext_fset_list = { NULL, 0, 0, strncasecmp, 0};
|
|
|
|
void delete_all_ext_fset(void)
|
|
{
|
|
IrcVariable *ptr;
|
|
int index;
|
|
|
|
for (index = 0; index < ext_fset_list.max; index++)
|
|
{
|
|
ptr = ext_fset_list.list[index];
|
|
new_free(&ptr->name);
|
|
new_free(&ptr->string);
|
|
new_free(&ptr);
|
|
}
|
|
new_free(&ext_fset_list.list);
|
|
ext_fset_list.max = 0;
|
|
ext_fset_list.max_set = 0;
|
|
}
|
|
|
|
void add_new_fset(char *name, char *args)
|
|
{
|
|
if (args && *args)
|
|
{
|
|
IrcVariable *tmp = NULL;
|
|
int cnt, loc;
|
|
tmp = (IrcVariable *)find_array_item((Array *)&ext_fset_list, name, &cnt, &loc);
|
|
if (!tmp || cnt >= 0)
|
|
{
|
|
tmp = new_malloc(sizeof(IrcVariable));
|
|
tmp->name = m_strdup(name);
|
|
tmp->type = STR_TYPE_VAR;
|
|
add_to_array((Array *)&ext_fset_list, (Array_item *)tmp);
|
|
}
|
|
malloc_strcpy(&tmp->string, args);
|
|
}
|
|
else
|
|
{
|
|
IrcVariable *tmp;
|
|
if ((tmp = (IrcVariable *)remove_from_array((Array *)&ext_fset_list, name)))
|
|
{
|
|
new_free(&tmp->name);
|
|
new_free(&tmp->string);
|
|
new_free(&tmp);
|
|
}
|
|
}
|
|
}
|
|
|
|
IrcVariable *find_ext_fset_var(char *name)
|
|
{
|
|
IrcVariable *tmp = NULL;
|
|
int loc, cnt;
|
|
tmp = (IrcVariable *)find_array_item((Array *)&ext_fset_list, name, &cnt, &loc);
|
|
if (tmp && cnt < 0)
|
|
return tmp;
|
|
return NULL;
|
|
}
|
|
|
|
|
|
|
|
char *BX_fget_string_var(enum FSET_TYPES var)
|
|
{
|
|
IrcVariable *tmp = NULL;
|
|
if ((tmp = find_ext_fset_var(fset_array[var].name)))
|
|
return tmp->string;
|
|
return (fset_array[var].string);
|
|
}
|
|
|
|
void BX_fset_string_var(enum FSET_TYPES var, char *value)
|
|
{
|
|
if (value && *value)
|
|
malloc_strcpy(&(fset_array[var].string), value);
|
|
else
|
|
new_free(&(fset_array[var].string));
|
|
}
|
|
|
|
static int find_fset_variable(IrcVariable *array, char *org_name, int *cnt)
|
|
{
|
|
IrcVariable *v, *first;
|
|
int len, var_index;
|
|
char *name = NULL;
|
|
|
|
name = LOCAL_COPY(org_name);
|
|
upper(name);
|
|
len = strlen(name);
|
|
var_index = 0;
|
|
for (first = array; first->name; first++, var_index++)
|
|
{
|
|
if (strncmp(name, first->name, len) == 0)
|
|
{
|
|
*cnt = 1;
|
|
break;
|
|
}
|
|
}
|
|
if (first->name)
|
|
{
|
|
if (strlen(first->name) != len)
|
|
{
|
|
v = first;
|
|
for (v++; v->name; v++, (*cnt)++)
|
|
{
|
|
if (strncmp(name, v->name, len) != 0)
|
|
break;
|
|
}
|
|
}
|
|
return (var_index);
|
|
}
|
|
else
|
|
{
|
|
*cnt = 0;
|
|
return (-1);
|
|
}
|
|
}
|
|
|
|
|
|
static void set_fset_var_value(int var_index, char *name, char *value)
|
|
{
|
|
IrcVariable *var = NULL;
|
|
if (name)
|
|
var = find_ext_fset_var(name);
|
|
if (!var)
|
|
var = &(fset_array[var_index]);
|
|
|
|
switch (var->type)
|
|
{
|
|
case STR_TYPE_VAR:
|
|
{
|
|
if (value)
|
|
{
|
|
if (*value)
|
|
malloc_strcpy(&(var->string), value);
|
|
else
|
|
{
|
|
put_it("%s", convert_output_format(fget_string_var(FORMAT_SET_FSET), "%s %s", var->name, var->string?var->string:empty_string));
|
|
return;
|
|
}
|
|
} else
|
|
new_free(&(var->string));
|
|
if (var->func)
|
|
(var->func) (current_window, var->string, 0);
|
|
say("Value of %s set to %s", var->name, var->string ?
|
|
var->string : "<EMPTY>");
|
|
}
|
|
break;
|
|
default:
|
|
say("FSET_type not supported");
|
|
}
|
|
}
|
|
|
|
static inline void fset_variable_case1(char *name, int var_index, char *args)
|
|
{
|
|
set_fset_var_value(var_index, name, args);
|
|
}
|
|
|
|
static inline void fset_variable_casedef(char *name, int cnt, int var_index, char *args)
|
|
{
|
|
FsetNumber *tmp;
|
|
for (cnt += var_index; var_index < cnt; var_index++)
|
|
set_fset_var_value(var_index, NULL, args);
|
|
if (!is_number(name))
|
|
return;
|
|
for (tmp = numeric_fset; tmp; tmp = tmp->next)
|
|
if (my_atol(name) == tmp->numeric)
|
|
put_it("%s", convert_output_format(fget_string_var(FORMAT_SET_FSET), "%d %s", tmp->numeric, tmp->format));
|
|
}
|
|
|
|
static inline void fset_variable_noargs(char *name)
|
|
{
|
|
int var_index = 0;
|
|
FsetNumber *tmp;
|
|
for (var_index = 0; var_index < NUMBER_OF_FSET; var_index++)
|
|
set_fset_var_value(var_index, NULL, empty_string);
|
|
for (var_index = 0; var_index < ext_fset_list.max; var_index++)
|
|
set_fset_var_value(var_index, (*ext_fset_list.list[var_index]).name, empty_string);
|
|
for (tmp = numeric_fset; tmp; tmp = tmp->next)
|
|
put_it("%s", convert_output_format(fget_string_var(FORMAT_SET_FSET), "%d %s", tmp->numeric, tmp->format));
|
|
}
|
|
|
|
BUILT_IN_COMMAND(fset_variable)
|
|
{
|
|
char *var;
|
|
char *name = NULL;
|
|
int cnt, var_index;
|
|
int hook = 0, remove = 0;
|
|
|
|
if ((var = next_arg(args, &args)) != NULL)
|
|
{
|
|
if (*var == '-')
|
|
{
|
|
var++;
|
|
remove = 1;
|
|
}
|
|
else if (*var == '+')
|
|
{
|
|
var++;
|
|
add_new_fset(var, args);
|
|
return;
|
|
}
|
|
if (!my_strnicmp(var, "FORMAT_", 7))
|
|
var = var + 7;
|
|
if (is_number(var))
|
|
{
|
|
add_numeric_fset(var, remove, args, 1);
|
|
return;
|
|
}
|
|
else if (remove)
|
|
args = NULL;
|
|
var_index = find_fset_variable(fset_array, var, &cnt);
|
|
|
|
if ((cnt >= 0) || !(fset_array[var_index].int_flags & VIF_PENDING))
|
|
hook = 1;
|
|
|
|
if (cnt < 0)
|
|
fset_array[var_index].int_flags |= VIF_PENDING;
|
|
|
|
if (hook)
|
|
hook = do_hook(SET_LIST, "%s %s", var, args ? args : empty_string);
|
|
else
|
|
hook = 1;
|
|
|
|
if (cnt < 0)
|
|
fset_array[var_index].int_flags &= ~VIF_PENDING;
|
|
|
|
if (hook)
|
|
{
|
|
switch (cnt)
|
|
{
|
|
case 0:
|
|
say("No such variable \"%s\"", var);
|
|
return;
|
|
case 1:
|
|
fset_variable_case1(name, var_index, args);
|
|
return;
|
|
default:
|
|
say("%s is ambiguous", var);
|
|
fset_variable_casedef(name, cnt, var_index, empty_string);
|
|
return;
|
|
}
|
|
}
|
|
} else
|
|
fset_variable_noargs(name);
|
|
}
|
|
|
|
|
|
void create_fsets(Window *win, int ansi)
|
|
{
|
|
#ifdef VAR_DEBUG
|
|
int i;
|
|
|
|
for (i = 1; i < NUMBER_OF_CSETS - 1; i++)
|
|
if (strcmp(fset_array[i-1].name, fset_array[i].name) >= 0)
|
|
ircpanic("Variable [%d] (%s) is out of order.", i, fset_array[i].name);
|
|
#endif
|
|
#if 0
|
|
fset_string_var(FORMAT_381_FSET, DEFAULT_FORMAT_381_FSET);
|
|
fset_string_var(FORMAT_391_FSET, DEFAULT_FORMAT_391_FSET);
|
|
fset_string_var(FORMAT_471_FSET, DEFAULT_FORMAT_471_FSET);
|
|
fset_string_var(FORMAT_473_FSET, DEFAULT_FORMAT_473_FSET);
|
|
fset_string_var(FORMAT_474_FSET, DEFAULT_FORMAT_474_FSET);
|
|
fset_string_var(FORMAT_475_FSET, DEFAULT_FORMAT_475_FSET);
|
|
fset_string_var(FORMAT_476_FSET, DEFAULT_FORMAT_476_FSET);
|
|
#else
|
|
add_numeric_fset("381", 0, DEFAULT_FORMAT_381_FSET, 0);
|
|
add_numeric_fset("391", 0, DEFAULT_FORMAT_391_FSET, 0);
|
|
add_numeric_fset("471", 0, DEFAULT_FORMAT_471_FSET, 0);
|
|
add_numeric_fset("473", 0, DEFAULT_FORMAT_473_FSET, 0);
|
|
add_numeric_fset("474", 0, DEFAULT_FORMAT_474_FSET, 0);
|
|
add_numeric_fset("475", 0, DEFAULT_FORMAT_475_FSET, 0);
|
|
add_numeric_fset("476", 0, DEFAULT_FORMAT_476_FSET, 0);
|
|
#endif
|
|
fset_string_var(FORMAT_ACTION_FSET, DEFAULT_FORMAT_ACTION_FSET);
|
|
fset_string_var(FORMAT_ACTION_AR_FSET, DEFAULT_FORMAT_ACTION_AR_FSET);
|
|
fset_string_var(FORMAT_ACTION_CHANNEL_FSET, DEFAULT_FORMAT_ACTION_CHANNEL_FSET);
|
|
fset_string_var(FORMAT_ACTION_OTHER_FSET, DEFAULT_FORMAT_ACTION_OTHER_FSET);
|
|
fset_string_var(FORMAT_ACTION_OTHER_AR_FSET, DEFAULT_FORMAT_ACTION_OTHER_AR_FSET);
|
|
fset_string_var(FORMAT_ACTION_USER_FSET, DEFAULT_FORMAT_ACTION_USER_FSET);
|
|
fset_string_var(FORMAT_ACTION_USER_AR_FSET, DEFAULT_FORMAT_ACTION_USER_AR_FSET);
|
|
fset_string_var(FORMAT_ACTION_FSET, DEFAULT_FORMAT_ACTION_FSET);
|
|
fset_string_var(FORMAT_ACTION_AR_FSET, DEFAULT_FORMAT_ACTION_AR_FSET);
|
|
fset_string_var(FORMAT_ACTION_CHANNEL_FSET, DEFAULT_FORMAT_ACTION_CHANNEL_FSET);
|
|
fset_string_var(FORMAT_ACTION_OTHER_FSET, DEFAULT_FORMAT_ACTION_OTHER_FSET);
|
|
fset_string_var(FORMAT_ACTION_OTHER_AR_FSET, DEFAULT_FORMAT_ACTION_OTHER_AR_FSET);
|
|
fset_string_var(FORMAT_ACTION_USER_FSET, DEFAULT_FORMAT_ACTION_USER_FSET);
|
|
fset_string_var(FORMAT_ACTION_USER_AR_FSET, DEFAULT_FORMAT_ACTION_USER_AR_FSET);
|
|
fset_string_var(FORMAT_ALIAS_FSET, DEFAULT_FORMAT_ALIAS_FSET);
|
|
fset_string_var(FORMAT_ASSIGN_FSET, DEFAULT_FORMAT_ASSIGN_FSET);
|
|
fset_string_var(FORMAT_AWAY_FSET, DEFAULT_FORMAT_AWAY_FSET);
|
|
fset_string_var(FORMAT_BACK_FSET, DEFAULT_FORMAT_BACK_FSET);
|
|
|
|
fset_string_var(FORMAT_BANS_HEADER_FSET, DEFAULT_FORMAT_BANS_HEADER_FSET);
|
|
fset_string_var(FORMAT_BANS_FSET, DEFAULT_FORMAT_BANS_FSET);
|
|
#if defined(DEFAULT_FORMAT_BANS_FOOTER_FSET)
|
|
fset_string_var(FORMAT_BANS_FOOTER_FSET, DEFAULT_FORMAT_BANS_FOOTER_FSET);
|
|
#endif
|
|
|
|
fset_string_var(FORMAT_BITCH_FSET, DEFAULT_FORMAT_BITCH_FSET);
|
|
fset_string_var(FORMAT_BOT_HEADER_FSET, DEFAULT_FORMAT_BOT_HEADER_FSET);
|
|
fset_string_var(FORMAT_BOT_FOOTER_FSET, DEFAULT_FORMAT_BOT_FOOTER_FSET);
|
|
fset_string_var(FORMAT_BOT_FSET, DEFAULT_FORMAT_BOT_FSET);
|
|
fset_string_var(FORMAT_BWALL_FSET, DEFAULT_FORMAT_BWALL_FSET);
|
|
fset_string_var(FORMAT_CHANNEL_SIGNOFF_FSET, DEFAULT_FORMAT_CHANNEL_SIGNOFF_FSET);
|
|
fset_string_var(FORMAT_CONNECT_FSET, DEFAULT_FORMAT_CONNECT_FSET);
|
|
fset_string_var(FORMAT_COMPLETE_FSET, DEFAULT_FORMAT_COMPLETE_FSET);
|
|
fset_string_var(FORMAT_CTCP_FSET, DEFAULT_FORMAT_CTCP_FSET);
|
|
fset_string_var(FORMAT_CTCP_CLOAK_FSET, DEFAULT_FORMAT_CTCP_CLOAK_FSET);
|
|
fset_string_var(FORMAT_CTCP_CLOAK_FUNC_FSET, DEFAULT_FORMAT_CTCP_CLOAK_FUNC_FSET);
|
|
fset_string_var(FORMAT_CTCP_CLOAK_FUNC_USER_FSET, DEFAULT_FORMAT_CTCP_CLOAK_FUNC_USER_FSET);
|
|
fset_string_var(FORMAT_CTCP_CLOAK_UNKNOWN_FSET, DEFAULT_FORMAT_CTCP_CLOAK_UNKNOWN_FSET);
|
|
fset_string_var(FORMAT_CTCP_CLOAK_UNKNOWN_USER_FSET, DEFAULT_FORMAT_CTCP_CLOAK_UNKNOWN_USER_FSET);
|
|
fset_string_var(FORMAT_CTCP_CLOAK_USER_FSET, DEFAULT_FORMAT_CTCP_CLOAK_USER_FSET);
|
|
fset_string_var(FORMAT_CTCP_FUNC_FSET, DEFAULT_FORMAT_CTCP_FUNC_FSET);
|
|
fset_string_var(FORMAT_CTCP_FUNC_USER_FSET, DEFAULT_FORMAT_CTCP_FUNC_USER_FSET);
|
|
fset_string_var(FORMAT_CTCP_UNKNOWN_FSET, DEFAULT_FORMAT_CTCP_UNKNOWN_FSET);
|
|
fset_string_var(FORMAT_CTCP_UNKNOWN_USER_FSET, DEFAULT_FORMAT_CTCP_UNKNOWN_USER_FSET);
|
|
fset_string_var(FORMAT_CTCP_USER_FSET, DEFAULT_FORMAT_CTCP_USER_FSET);
|
|
fset_string_var(FORMAT_CTCP_REPLY_FSET, DEFAULT_FORMAT_CTCP_REPLY_FSET);
|
|
fset_string_var(FORMAT_DCC_CHAT_FSET, DEFAULT_FORMAT_DCC_CHAT_FSET);
|
|
fset_string_var(FORMAT_DCC_CONNECT_FSET, DEFAULT_FORMAT_DCC_CONNECT_FSET);
|
|
fset_string_var(FORMAT_DCC_ERROR_FSET, DEFAULT_FORMAT_DCC_ERROR_FSET);
|
|
fset_string_var(FORMAT_DCC_LOST_FSET, DEFAULT_FORMAT_DCC_LOST_FSET);
|
|
fset_string_var(FORMAT_DCC_REQUEST_FSET, DEFAULT_FORMAT_DCC_REQUEST_FSET);
|
|
fset_string_var(FORMAT_DESYNC_FSET, DEFAULT_FORMAT_DESYNC_FSET);
|
|
fset_string_var(FORMAT_DISCONNECT_FSET, DEFAULT_FORMAT_DISCONNECT_FSET);
|
|
fset_string_var(FORMAT_ENCRYPTED_NOTICE_FSET, DEFAULT_FORMAT_ENCRYPTED_NOTICE_FSET);
|
|
fset_string_var(FORMAT_ENCRYPTED_PRIVMSG_FSET, DEFAULT_FORMAT_ENCRYPTED_PRIVMSG_FSET);
|
|
fset_string_var(FORMAT_FLOOD_FSET, DEFAULT_FORMAT_FLOOD_FSET);
|
|
fset_string_var(FORMAT_FRIEND_JOIN_FSET, DEFAULT_FORMAT_FRIEND_JOIN_FSET);
|
|
fset_string_var(FORMAT_HELP_FSET, DEFAULT_FORMAT_HELP_FSET);
|
|
fset_string_var(FORMAT_HOOK_FSET, DEFAULT_FORMAT_HOOK_FSET);
|
|
fset_string_var(FORMAT_INVITE_FSET, DEFAULT_FORMAT_INVITE_FSET);
|
|
fset_string_var(FORMAT_INVITE_USER_FSET, DEFAULT_FORMAT_INVITE_USER_FSET);
|
|
fset_string_var(FORMAT_JOIN_FSET, DEFAULT_FORMAT_JOIN_FSET);
|
|
fset_string_var(FORMAT_KICK_FSET, DEFAULT_FORMAT_KICK_FSET);
|
|
fset_string_var(FORMAT_KICK_USER_FSET, DEFAULT_FORMAT_KICK_USER_FSET);
|
|
fset_string_var(FORMAT_KILL_FSET, DEFAULT_FORMAT_KILL_FSET);
|
|
fset_string_var(FORMAT_LEAVE_FSET, DEFAULT_FORMAT_LEAVE_FSET);
|
|
fset_string_var(FORMAT_LINKS_FSET, DEFAULT_FORMAT_LINKS_FSET);
|
|
fset_string_var(FORMAT_LINKS_FSET, DEFAULT_FORMAT_LINKS_FSET);
|
|
fset_string_var(FORMAT_LIST_FSET, DEFAULT_FORMAT_LIST_FSET);
|
|
fset_string_var(FORMAT_MAIL_FSET, DEFAULT_FORMAT_MAIL_FSET);
|
|
fset_string_var(FORMAT_MSGCOUNT_FSET, DEFAULT_FORMAT_MSGCOUNT_FSET);
|
|
fset_string_var(FORMAT_MSGLOG_FSET, DEFAULT_FORMAT_MSGLOG_FSET);
|
|
fset_string_var(FORMAT_MODE_FSET, DEFAULT_FORMAT_MODE_FSET);
|
|
fset_string_var(FORMAT_SMODE_FSET, DEFAULT_FORMAT_SMODE_FSET);
|
|
fset_string_var(FORMAT_MODE_CHANNEL_FSET, DEFAULT_FORMAT_MODE_CHANNEL_FSET);
|
|
fset_string_var(FORMAT_MSG_FSET, DEFAULT_FORMAT_MSG_FSET);
|
|
fset_string_var(FORMAT_OPER_FSET, DEFAULT_FORMAT_OPER_FSET);
|
|
fset_string_var(FORMAT_IGNORE_INVITE_FSET, DEFAULT_FORMAT_IGNORE_INVITE_FSET);
|
|
fset_string_var(FORMAT_IGNORE_MSG_FSET, DEFAULT_FORMAT_IGNORE_MSG_FSET);
|
|
fset_string_var(FORMAT_IGNORE_MSG_AWAY_FSET, DEFAULT_FORMAT_IGNORE_MSG_AWAY_FSET);
|
|
fset_string_var(FORMAT_IGNORE_NOTICE_FSET, DEFAULT_FORMAT_IGNORE_NOTICE_FSET);
|
|
fset_string_var(FORMAT_IGNORE_WALL_FSET, DEFAULT_FORMAT_IGNORE_WALL_FSET);
|
|
fset_string_var(FORMAT_MSG_GROUP_FSET, DEFAULT_FORMAT_MSG_GROUP_FSET);
|
|
fset_string_var(FORMAT_NAMES_FSET, DEFAULT_FORMAT_NAMES_FSET);
|
|
fset_string_var(FORMAT_NAMES_BOT_FSET, DEFAULT_FORMAT_NAMES_BOT_FSET);
|
|
fset_string_var(FORMAT_NAMES_FRIEND_FSET, DEFAULT_FORMAT_NAMES_FRIEND_FSET);
|
|
fset_string_var(FORMAT_NAMES_NICK_FSET, DEFAULT_FORMAT_NAMES_NICK_FSET);
|
|
fset_string_var(FORMAT_NAMES_NICK_BOT_FSET, DEFAULT_FORMAT_NAMES_NICK_BOT_FSET);
|
|
fset_string_var(FORMAT_NAMES_NICK_FRIEND_FSET, DEFAULT_FORMAT_NAMES_NICK_FRIEND_FSET);
|
|
fset_string_var(FORMAT_NAMES_NICK_ME_FSET, DEFAULT_FORMAT_NAMES_NICK_ME_FSET);
|
|
fset_string_var(FORMAT_NAMES_NICK_SHIT_FSET, DEFAULT_FORMAT_NAMES_NICK_SHIT_FSET);
|
|
fset_string_var(FORMAT_NAMES_NONOP_FSET, DEFAULT_FORMAT_NAMES_NONOP_FSET);
|
|
fset_string_var(FORMAT_NAMES_OP_FSET, DEFAULT_FORMAT_NAMES_OP_FSET);
|
|
fset_string_var(FORMAT_NAMES_IRCOP_FSET, DEFAULT_FORMAT_NAMES_IRCOP_FSET);
|
|
fset_string_var(FORMAT_NAMES_SHIT_FSET, DEFAULT_FORMAT_NAMES_SHIT_FSET);
|
|
fset_string_var(FORMAT_NAMES_USER_FSET, DEFAULT_FORMAT_NAMES_USER_FSET);
|
|
fset_string_var(FORMAT_NAMES_USER_CHANOP_FSET, DEFAULT_FORMAT_NAMES_USER_CHANOP_FSET);
|
|
fset_string_var(FORMAT_NAMES_USER_IRCOP_FSET, DEFAULT_FORMAT_NAMES_USER_IRCOP_FSET);
|
|
fset_string_var(FORMAT_NAMES_USER_VOICE_FSET, DEFAULT_FORMAT_NAMES_USER_VOICE_FSET);
|
|
fset_string_var(FORMAT_NAMES_VOICE_FSET, DEFAULT_FORMAT_NAMES_VOICE_FSET);
|
|
fset_string_var(FORMAT_NETADD_FSET, DEFAULT_FORMAT_NETADD_FSET);
|
|
fset_string_var(FORMAT_NETJOIN_FSET, DEFAULT_FORMAT_NETJOIN_FSET);
|
|
fset_string_var(FORMAT_NETSPLIT_FSET, DEFAULT_FORMAT_NETSPLIT_FSET);
|
|
fset_string_var(FORMAT_NICKNAME_FSET, DEFAULT_FORMAT_NICKNAME_FSET);
|
|
fset_string_var(FORMAT_NICKNAME_OTHER_FSET, DEFAULT_FORMAT_NICKNAME_OTHER_FSET);
|
|
fset_string_var(FORMAT_NICKNAME_USER_FSET, DEFAULT_FORMAT_NICKNAME_USER_FSET);
|
|
fset_string_var(FORMAT_NONICK_FSET, DEFAULT_FORMAT_NONICK_FSET);
|
|
fset_string_var(FORMAT_NOTE_FSET, DEFAULT_FORMAT_NOTE_FSET);
|
|
fset_string_var(FORMAT_NOTICE_FSET, DEFAULT_FORMAT_NOTICE_FSET);
|
|
fset_string_var(FORMAT_REL_FSET, DEFAULT_FORMAT_REL_FSET);
|
|
fset_string_var(FORMAT_RELN_FSET, DEFAULT_FORMAT_RELN_FSET);
|
|
fset_string_var(FORMAT_RELM_FSET, DEFAULT_FORMAT_RELM_FSET);
|
|
fset_string_var(FORMAT_RELSN_FSET, DEFAULT_FORMAT_RELSN_FSET);
|
|
fset_string_var(FORMAT_RELS_FSET, DEFAULT_FORMAT_RELS_FSET);
|
|
fset_string_var(FORMAT_RELSM_FSET, DEFAULT_FORMAT_RELSM_FSET);
|
|
fset_string_var(FORMAT_NOTIFY_SIGNOFF_FSET, DEFAULT_FORMAT_NOTIFY_SIGNOFF_FSET);
|
|
fset_string_var(FORMAT_NOTIFY_SIGNON_FSET, DEFAULT_FORMAT_NOTIFY_SIGNON_FSET);
|
|
fset_string_var(FORMAT_PASTE_FSET, DEFAULT_FORMAT_PASTE_FSET);
|
|
fset_string_var(FORMAT_PUBLIC_FSET, DEFAULT_FORMAT_PUBLIC_FSET);
|
|
fset_string_var(FORMAT_PUBLIC_AR_FSET, DEFAULT_FORMAT_PUBLIC_AR_FSET);
|
|
fset_string_var(FORMAT_PUBLIC_MSG_FSET, DEFAULT_FORMAT_PUBLIC_MSG_FSET);
|
|
fset_string_var(FORMAT_PUBLIC_MSG_AR_FSET, DEFAULT_FORMAT_PUBLIC_MSG_AR_FSET);
|
|
fset_string_var(FORMAT_PUBLIC_NOTICE_FSET, DEFAULT_FORMAT_PUBLIC_NOTICE_FSET);
|
|
fset_string_var(FORMAT_PUBLIC_NOTICE_AR_FSET, DEFAULT_FORMAT_PUBLIC_NOTICE_AR_FSET);
|
|
fset_string_var(FORMAT_PUBLIC_OTHER_FSET, DEFAULT_FORMAT_PUBLIC_OTHER_FSET);
|
|
fset_string_var(FORMAT_PUBLIC_OTHER_AR_FSET, DEFAULT_FORMAT_PUBLIC_OTHER_AR_FSET);
|
|
fset_string_var(FORMAT_SEND_ACTION_FSET, DEFAULT_FORMAT_SEND_ACTION_FSET);
|
|
fset_string_var(FORMAT_SEND_ACTION_OTHER_FSET, DEFAULT_FORMAT_SEND_ACTION_OTHER_FSET);
|
|
fset_string_var(FORMAT_SEND_ACTION_FSET, DEFAULT_FORMAT_SEND_ACTION_FSET);
|
|
fset_string_var(FORMAT_SEND_ACTION_OTHER_FSET, DEFAULT_FORMAT_SEND_ACTION_OTHER_FSET);
|
|
fset_string_var(FORMAT_SEND_AWAY_FSET, DEFAULT_FORMAT_SEND_AWAY_FSET);
|
|
fset_string_var(FORMAT_SEND_CTCP_FSET, DEFAULT_FORMAT_SEND_CTCP_FSET);
|
|
fset_string_var(FORMAT_SEND_DCC_CHAT_FSET, DEFAULT_FORMAT_SEND_DCC_CHAT_FSET);
|
|
fset_string_var(FORMAT_SEND_ENCRYPTED_NOTICE_FSET, DEFAULT_FORMAT_SEND_ENCRYPTED_NOTICE_FSET);
|
|
fset_string_var(FORMAT_SEND_ENCRYPTED_MSG_FSET, DEFAULT_FORMAT_SEND_ENCRYPTED_MSG_FSET);
|
|
|
|
fset_string_var(FORMAT_SEND_MSG_FSET, DEFAULT_FORMAT_SEND_MSG_FSET);
|
|
fset_string_var(FORMAT_SEND_NOTICE_FSET, DEFAULT_FORMAT_SEND_NOTICE_FSET);
|
|
fset_string_var(FORMAT_SEND_PUBLIC_FSET, DEFAULT_FORMAT_SEND_PUBLIC_FSET);
|
|
fset_string_var(FORMAT_SEND_PUBLIC_OTHER_FSET, DEFAULT_FORMAT_SEND_PUBLIC_OTHER_FSET);
|
|
fset_string_var(FORMAT_SERVER_FSET, DEFAULT_FORMAT_SERVER_FSET);
|
|
fset_string_var(FORMAT_SERVER_MSG1_FSET, DEFAULT_FORMAT_SERVER_MSG1_FSET);
|
|
fset_string_var(FORMAT_SERVER_MSG1_FROM_FSET, DEFAULT_FORMAT_SERVER_MSG1_FROM_FSET);
|
|
fset_string_var(FORMAT_SERVER_MSG2_FSET, DEFAULT_FORMAT_SERVER_MSG2_FSET);
|
|
fset_string_var(FORMAT_SERVER_MSG2_FROM_FSET, DEFAULT_FORMAT_SERVER_MSG2_FROM_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_FSET, DEFAULT_FORMAT_SERVER_NOTICE_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_BOT_FSET, DEFAULT_FORMAT_SERVER_NOTICE_BOT_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_BOT1_FSET, DEFAULT_FORMAT_SERVER_NOTICE_BOT1_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_BOT_ALARM_FSET, DEFAULT_FORMAT_SERVER_NOTICE_BOT_ALARM_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_CLIENT_CONNECT_FSET, DEFAULT_FORMAT_SERVER_NOTICE_CLIENT_CONNECT_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_CLIENT_EXIT_FSET, DEFAULT_FORMAT_SERVER_NOTICE_CLIENT_EXIT_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_CLIENT_INVALID_FSET, DEFAULT_FORMAT_SERVER_NOTICE_CLIENT_INVALID_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_CLIENT_TERM_FSET, DEFAULT_FORMAT_SERVER_NOTICE_CLIENT_TERM_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_FAKE_FSET, DEFAULT_FORMAT_SERVER_NOTICE_FAKE_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_KILL_FSET, DEFAULT_FORMAT_SERVER_NOTICE_KILL_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_KILL_LOCAL_FSET, DEFAULT_FORMAT_SERVER_NOTICE_KILL_LOCAL_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_KLINE_FSET, DEFAULT_FORMAT_SERVER_NOTICE_KLINE_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_GLINE_FSET, DEFAULT_FORMAT_SERVER_NOTICE_GLINE_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_NICK_COLLISION_FSET, DEFAULT_FORMAT_SERVER_NOTICE_NICK_COLLISION_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_OPER_FSET, DEFAULT_FORMAT_SERVER_NOTICE_OPER_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_REHASH_FSET, DEFAULT_FORMAT_SERVER_NOTICE_REHASH_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_STATS_FSET, DEFAULT_FORMAT_SERVER_NOTICE_STATS_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_TRAFFIC_HIGH_FSET, DEFAULT_FORMAT_SERVER_NOTICE_TRAFFIC_HIGH_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_TRAFFIC_NORM_FSET, DEFAULT_FORMAT_SERVER_NOTICE_TRAFFIC_NORM_FSET);
|
|
fset_string_var(FORMAT_SERVER_NOTICE_UNAUTH_FSET, DEFAULT_FORMAT_SERVER_NOTICE_UNAUTH_FSET);
|
|
fset_string_var(FORMAT_SET_FSET, DEFAULT_FORMAT_SET_FSET);
|
|
fset_string_var(FORMAT_CSET_FSET, DEFAULT_FORMAT_CSET_FSET);
|
|
fset_string_var(FORMAT_SET_NOVALUE_FSET, DEFAULT_FORMAT_SET_NOVALUE_FSET);
|
|
fset_string_var(FORMAT_SHITLIST_FSET, DEFAULT_FORMAT_SHITLIST_FSET);
|
|
fset_string_var(FORMAT_SHITLIST_FOOTER_FSET, DEFAULT_FORMAT_SHITLIST_FOOTER_FSET);
|
|
fset_string_var(FORMAT_SHITLIST_HEADER_FSET, DEFAULT_FORMAT_SHITLIST_HEADER_FSET);
|
|
fset_string_var(FORMAT_SIGNOFF_FSET, DEFAULT_FORMAT_SIGNOFF_FSET);
|
|
fset_string_var(FORMAT_SILENCE_FSET, DEFAULT_FORMAT_SILENCE_FSET);
|
|
fset_string_var(FORMAT_TRACE_OPER_FSET, DEFAULT_FORMAT_TRACE_OPER_FSET);
|
|
fset_string_var(FORMAT_TRACE_SERVER_FSET, DEFAULT_FORMAT_TRACE_SERVER_FSET);
|
|
fset_string_var(FORMAT_TRACE_USER_FSET, DEFAULT_FORMAT_TRACE_USER_FSET);
|
|
fset_string_var(FORMAT_TIMER_FSET, DEFAULT_FORMAT_TIMER_FSET);
|
|
fset_string_var(FORMAT_TOPIC_FSET, DEFAULT_FORMAT_TOPIC_FSET);
|
|
fset_string_var(FORMAT_TOPIC_CHANGE_FSET, DEFAULT_FORMAT_TOPIC_CHANGE_FSET);
|
|
fset_string_var(FORMAT_TOPIC_SETBY_FSET, DEFAULT_FORMAT_TOPIC_SETBY_FSET);
|
|
fset_string_var(FORMAT_TOPIC_UNSET_FSET, DEFAULT_FORMAT_TOPIC_UNSET_FSET);
|
|
fset_string_var(FORMAT_USAGE_FSET, DEFAULT_FORMAT_USAGE_FSET);
|
|
fset_string_var(FORMAT_USERMODE_FSET, DEFAULT_FORMAT_USERMODE_FSET);
|
|
fset_string_var(FORMAT_USERLIST_FSET, DEFAULT_FORMAT_USERLIST_FSET);
|
|
fset_string_var(FORMAT_USERLIST_FOOTER_FSET, DEFAULT_FORMAT_USERLIST_FOOTER_FSET);
|
|
fset_string_var(FORMAT_USERLIST_HEADER_FSET, DEFAULT_FORMAT_USERLIST_HEADER_FSET);
|
|
fset_string_var(FORMAT_USERS_FSET, DEFAULT_FORMAT_USERS_FSET);
|
|
fset_string_var(FORMAT_USERS_USER_FSET, DEFAULT_FORMAT_USERS_USER_FSET);
|
|
fset_string_var(FORMAT_USERS_TITLE_FSET, DEFAULT_FORMAT_USERS_TITLE_FSET);
|
|
fset_string_var(FORMAT_USERS_SHIT_FSET, DEFAULT_FORMAT_USERS_SHIT_FSET);
|
|
fset_string_var(FORMAT_USERS_HEADER_FSET, DEFAULT_FORMAT_USERS_HEADER_FSET);
|
|
fset_string_var(FORMAT_VERSION_FSET, DEFAULT_FORMAT_VERSION_FSET);
|
|
fset_string_var(FORMAT_WALL_FSET, DEFAULT_FORMAT_WALL_FSET);
|
|
fset_string_var(FORMAT_WALL_AR_FSET, DEFAULT_FORMAT_WALL_AR_FSET);
|
|
fset_string_var(FORMAT_WALLOP_FSET, DEFAULT_FORMAT_WALLOP_FSET);
|
|
fset_string_var(FORMAT_WHO_FSET, DEFAULT_FORMAT_WHO_FSET);
|
|
fset_string_var(FORMAT_WHOIS_AWAY_FSET, DEFAULT_FORMAT_WHOIS_AWAY_FSET);
|
|
fset_string_var(FORMAT_WHOIS_BOT_FSET, DEFAULT_FORMAT_WHOIS_BOT_FSET);
|
|
fset_string_var(FORMAT_WHOIS_CHANNELS_FSET, DEFAULT_FORMAT_WHOIS_CHANNELS_FSET);
|
|
fset_string_var(FORMAT_WHOIS_FRIEND_FSET, DEFAULT_FORMAT_WHOIS_FRIEND_FSET);
|
|
fset_string_var(FORMAT_WHOIS_HEADER_FSET, DEFAULT_FORMAT_WHOIS_HEADER_FSET);
|
|
fset_string_var(FORMAT_WHOIS_IDLE_FSET, DEFAULT_FORMAT_WHOIS_IDLE_FSET);
|
|
fset_string_var(FORMAT_WHOIS_SHIT_FSET, DEFAULT_FORMAT_WHOIS_SHIT_FSET);
|
|
fset_string_var(FORMAT_WHOIS_SIGNON_FSET, DEFAULT_FORMAT_WHOIS_SIGNON_FSET);
|
|
fset_string_var(FORMAT_WHOIS_ACTUALLY_FSET, DEFAULT_FORMAT_WHOIS_ACTUALLY_FSET);
|
|
fset_string_var(FORMAT_WHOIS_NAME_FSET, DEFAULT_FORMAT_WHOIS_NAME_FSET);
|
|
fset_string_var(FORMAT_WHOIS_NICK_FSET, DEFAULT_FORMAT_WHOIS_NICK_FSET);
|
|
fset_string_var(FORMAT_WHOIS_OPER_FSET, DEFAULT_FORMAT_WHOIS_OPER_FSET);
|
|
fset_string_var(FORMAT_WHOIS_SERVER_FSET, DEFAULT_FORMAT_WHOIS_SERVER_FSET);
|
|
fset_string_var(FORMAT_WHOLEFT_HEADER_FSET, DEFAULT_FORMAT_WHOLEFT_HEADER_FSET);
|
|
fset_string_var(FORMAT_WHOLEFT_USER_FSET, DEFAULT_FORMAT_WHOLEFT_USER_FSET);
|
|
fset_string_var(FORMAT_WHOWAS_HEADER_FSET, DEFAULT_FORMAT_WHOWAS_HEADER_FSET);
|
|
fset_string_var(FORMAT_WHOWAS_NICK_FSET, DEFAULT_FORMAT_WHOWAS_NICK_FSET);
|
|
fset_string_var(FORMAT_WHOIS_ADMIN_FSET, DEFAULT_FORMAT_WHOIS_ADMIN_FSET);
|
|
fset_string_var(FORMAT_WHOIS_SERVICE_FSET, DEFAULT_FORMAT_WHOIS_SERVICE_FSET);
|
|
fset_string_var(FORMAT_WHOIS_HELP_FSET, DEFAULT_FORMAT_WHOIS_HELP_FSET);
|
|
fset_string_var(FORMAT_WHOIS_REGISTER_FSET, DEFAULT_FORMAT_WHOIS_REGISTER_FSET);
|
|
fset_string_var(FORMAT_WHOIS_AWAY_FSET, DEFAULT_FORMAT_WHOIS_AWAY_FSET);
|
|
fset_string_var(FORMAT_WHOIS_BOT_FSET, DEFAULT_FORMAT_WHOIS_BOT_FSET);
|
|
fset_string_var(FORMAT_WHOIS_CHANNELS_FSET, DEFAULT_FORMAT_WHOIS_CHANNELS_FSET);
|
|
fset_string_var(FORMAT_WHOIS_FRIEND_FSET, DEFAULT_FORMAT_WHOIS_FRIEND_FSET);
|
|
fset_string_var(FORMAT_WHOIS_HEADER_FSET, DEFAULT_FORMAT_WHOIS_HEADER_FSET);
|
|
fset_string_var(FORMAT_WHOIS_IDLE_FSET, DEFAULT_FORMAT_WHOIS_IDLE_FSET);
|
|
fset_string_var(FORMAT_WHOIS_SHIT_FSET, DEFAULT_FORMAT_WHOIS_SHIT_FSET);
|
|
fset_string_var(FORMAT_WHOIS_SIGNON_FSET, DEFAULT_FORMAT_WHOIS_SIGNON_FSET);
|
|
fset_string_var(FORMAT_WHOIS_ACTUALLY_FSET, DEFAULT_FORMAT_WHOIS_ACTUALLY_FSET);
|
|
fset_string_var(FORMAT_WHOIS_NAME_FSET, DEFAULT_FORMAT_WHOIS_NAME_FSET);
|
|
fset_string_var(FORMAT_WHOIS_NICK_FSET, DEFAULT_FORMAT_WHOIS_NICK_FSET);
|
|
fset_string_var(FORMAT_WHOIS_OPER_FSET, DEFAULT_FORMAT_WHOIS_OPER_FSET);
|
|
fset_string_var(FORMAT_WHOIS_SERVER_FSET, DEFAULT_FORMAT_WHOIS_SERVER_FSET);
|
|
fset_string_var(FORMAT_WHOLEFT_HEADER_FSET, DEFAULT_FORMAT_WHOLEFT_HEADER_FSET);
|
|
fset_string_var(FORMAT_WHOLEFT_USER_FSET, DEFAULT_FORMAT_WHOLEFT_USER_FSET);
|
|
fset_string_var(FORMAT_WHOWAS_HEADER_FSET, DEFAULT_FORMAT_WHOWAS_HEADER_FSET);
|
|
fset_string_var(FORMAT_WHOWAS_NICK_FSET, DEFAULT_FORMAT_WHOWAS_NICK_FSET);
|
|
fset_string_var(FORMAT_WHOIS_ADMIN_FSET, DEFAULT_FORMAT_WHOIS_ADMIN_FSET);
|
|
fset_string_var(FORMAT_WHOIS_SERVICE_FSET, DEFAULT_FORMAT_WHOIS_SERVICE_FSET);
|
|
fset_string_var(FORMAT_WHOIS_HELP_FSET, DEFAULT_FORMAT_WHOIS_HELP_FSET);
|
|
fset_string_var(FORMAT_WHOIS_REGISTER_FSET, DEFAULT_FORMAT_WHOIS_REGISTER_FSET);
|
|
fset_string_var(FORMAT_WIDELIST_FSET, DEFAULT_FORMAT_WIDELIST_FSET);
|
|
fset_string_var(FORMAT_WINDOW_SET_FSET, DEFAULT_FORMAT_WINDOW_SET_FSET);
|
|
fset_string_var(FORMAT_NICK_MSG_FSET, DEFAULT_FORMAT_NICK_MSG_FSET);
|
|
fset_string_var(FORMAT_NICK_COMP_FSET, DEFAULT_FORMAT_NICK_COMP_FSET);
|
|
fset_string_var(FORMAT_NICK_AUTO_FSET, DEFAULT_FORMAT_NICK_AUTO_FSET);
|
|
fset_string_var(FORMAT_STATUS_FSET, DEFAULT_FORMAT_STATUS_FSET);
|
|
fset_string_var(FORMAT_STATUS1_FSET, DEFAULT_FORMAT_STATUS1_FSET);
|
|
fset_string_var(FORMAT_STATUS2_FSET, DEFAULT_FORMAT_STATUS2_FSET);
|
|
fset_string_var(FORMAT_STATUS3_FSET, DEFAULT_FORMAT_STATUS3_FSET);
|
|
fset_string_var(FORMAT_NOTIFY_OFF_FSET, DEFAULT_FORMAT_NOTIFY_OFF_FSET);
|
|
fset_string_var(FORMAT_NOTIFY_ON_FSET, DEFAULT_FORMAT_NOTIFY_ON_FSET);
|
|
fset_string_var(FORMAT_OV_FSET, DEFAULT_FORMAT_OV_FSET);
|
|
|
|
fset_string_var(FORMAT_WHOIS_FOOTER_FSET, NULL);
|
|
fset_string_var(FORMAT_XTERM_TITLE_FSET, NULL);
|
|
fset_string_var(FORMAT_DCC_FSET, NULL);
|
|
fset_string_var(FORMAT_NAMES_FOOTER_FSET, NULL);
|
|
fset_string_var(FORMAT_NETSPLIT_HEADER_FSET, NULL);
|
|
fset_string_var(FORMAT_TOPIC_CHANGE_HEADER_FSET, NULL);
|
|
fset_string_var(FORMAT_WHOLEFT_FOOTER_FSET, NULL);
|
|
fset_string_var(FORMAT_LASTLOG_FSET, DEFAULT_FORMAT_LASTLOG_FSET);
|
|
fset_string_var(FORMAT_EBANS_FSET, DEFAULT_FORMAT_EBANS_FSET);
|
|
fset_string_var(FORMAT_EBANS_HEADER_FSET, DEFAULT_FORMAT_EBANS_HEADER_FSET);
|
|
|
|
fset_string_var(FORMAT_WATCH_SIGNOFF_FSET, DEFAULT_FORMAT_WATCH_SIGNOFF_FSET);
|
|
fset_string_var(FORMAT_WATCH_SIGNON_FSET, DEFAULT_FORMAT_WATCH_SIGNON_FSET);
|
|
|
|
#if defined(DEFAULT_FORMAT_EBANS_FOOTER_FSET)
|
|
fset_string_var(FORMAT_EBANS_FOOTER_FSET, DEFAULT_FORMAT_EBANS_FOOTER_FSET);
|
|
#endif
|
|
}
|
|
|
|
int save_formats(FILE *outfile)
|
|
{
|
|
char thefile[BIG_BUFFER_SIZE+1];
|
|
char *p;
|
|
int i;
|
|
int count = 0;
|
|
FsetNumber *tmp;
|
|
|
|
#if defined(__EMX__) || defined(WINNT)
|
|
sprintf(thefile, "%s/%s.fmt", get_string_var(CTOOLZ_DIR_VAR), version);
|
|
#else
|
|
sprintf(thefile, "%s/%s.formats", get_string_var(CTOOLZ_DIR_VAR), version);
|
|
#endif
|
|
p = expand_twiddle(thefile);
|
|
outfile = fopen(p, "w");
|
|
if (!outfile)
|
|
{
|
|
bitchsay("Cannot open file %s for saving!", thefile);
|
|
new_free(&p);
|
|
return 1;
|
|
}
|
|
for (i = 0; i < NUMBER_OF_FSET; i++)
|
|
{
|
|
|
|
if (fset_array[i].string)
|
|
fprintf(outfile, "FSET %s %s\n", fset_array[i].name, fset_array[i].string);
|
|
else
|
|
fprintf(outfile, "FSET -%s\n", fset_array[i].name);
|
|
}
|
|
count = NUMBER_OF_FSET;
|
|
for (tmp = numeric_fset; tmp; tmp = tmp->next) {
|
|
fprintf(outfile, "FSET %d %s\n", tmp->numeric, tmp->format);
|
|
count++;
|
|
}
|
|
|
|
fclose(outfile);
|
|
bitchsay("Saved %d formats to %s", count, thefile);
|
|
new_free(&p);
|
|
return 0;
|
|
}
|
|
|
|
void clear_fset(void)
|
|
{
|
|
int i;
|
|
for (i = 0; i < NUMBER_OF_FSET; i++)
|
|
{
|
|
if (fset_array[i].string)
|
|
new_free(&fset_array[i].string);
|
|
}
|
|
}
|
|
|
|
char *get_all_fset(void)
|
|
{
|
|
int i;
|
|
char *ret = NULL;
|
|
IrcVariable *ptr;
|
|
FsetNumber *tmp = numeric_fset;
|
|
for (i = 0; i < NUMBER_OF_FSET; i++)
|
|
m_s3cat(&ret, space, fset_array[i].name);
|
|
for (i = 0; i < ext_fset_list.max; i++)
|
|
{
|
|
ptr = ext_fset_list.list[i];
|
|
m_s3cat(&ret, space, ptr->name);
|
|
}
|
|
for (tmp = numeric_fset; tmp; tmp = tmp->next)
|
|
m_s3cat(&ret, space, ltoa(tmp->numeric));
|
|
return ret;
|
|
}
|
|
|
|
char *get_fset(char *str)
|
|
{
|
|
int i;
|
|
char *ret = NULL;
|
|
IrcVariable *ptr;
|
|
FsetNumber *tmp;
|
|
if (!str || !*str)
|
|
return get_all_fset();
|
|
for (i = 0; i < NUMBER_OF_FSET; i++)
|
|
if (wild_match(str, fset_array[i].name))
|
|
m_s3cat(&ret, space, fset_array[i].name);
|
|
for (i = 0; i < ext_fset_list.max; i++)
|
|
{
|
|
ptr = ext_fset_list.list[i];
|
|
if (wild_match(str, ptr->name))
|
|
m_s3cat(&ret, space, ptr->name);
|
|
}
|
|
for (tmp = numeric_fset; tmp; tmp = tmp->next)
|
|
if (wild_match(str, ltoa(tmp->numeric)))
|
|
m_s3cat(&ret, space, ltoa(tmp->numeric));
|
|
return ret ? ret : m_strdup(empty_string);
|
|
}
|
|
|
|
IrcVariable *fget_var_address(char *var_name)
|
|
{
|
|
IrcVariable *var = NULL;
|
|
int cnt,
|
|
msv_index;
|
|
char *tmp_var = alloca(strlen(var_name)+1);
|
|
strcpy(tmp_var, var_name);
|
|
upper(tmp_var);
|
|
if ((var = find_ext_fset_var(tmp_var)))
|
|
return var;
|
|
if ((find_fixed_array_item (fset_array, sizeof(IrcVariable), NUMBER_OF_FSET, tmp_var, &cnt, &msv_index) == NULL))
|
|
return NULL;
|
|
if (cnt >= 0)
|
|
return NULL;
|
|
return &fset_array[msv_index];
|
|
}
|
|
|
|
char *make_fstring_var(const char *var_name)
|
|
{
|
|
IrcVariable *var = NULL;
|
|
int cnt,
|
|
msv_index;
|
|
char *ret = NULL;
|
|
char *tmp_var;
|
|
|
|
tmp_var = LOCAL_COPY(var_name);
|
|
upper(tmp_var);
|
|
if ((var = find_ext_fset_var(tmp_var)))
|
|
return m_strdup(var->string);
|
|
|
|
if (!strncmp(tmp_var, "FORMAT_", 7))
|
|
tmp_var += 7;
|
|
if ((find_fixed_array_item (fset_array, sizeof(IrcVariable), NUMBER_OF_FSET, tmp_var, &cnt, &msv_index) == NULL))
|
|
{
|
|
if ((ret = find_numeric_fset(my_atol(tmp_var))))
|
|
return m_strdup(ret);
|
|
return NULL;
|
|
}
|
|
if (cnt >= 0)
|
|
return NULL;
|
|
switch (fset_array[msv_index].type)
|
|
{
|
|
case STR_TYPE_VAR:
|
|
ret = m_strdup(fset_array[msv_index].string);
|
|
break;
|
|
case INT_TYPE_VAR:
|
|
ret = m_strdup(ltoa(fset_array[msv_index].integer));
|
|
break;
|
|
case BOOL_TYPE_VAR:
|
|
ret = m_strdup(var_settings[fset_array[msv_index].integer]);
|
|
break;
|
|
case CHAR_TYPE_VAR:
|
|
ret = m_dupchar(fset_array[msv_index].integer);
|
|
break;
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
#ifdef WANT_TCL
|
|
char *fset_rem_str(ClientData *cd, Tcl_Interp *intp, char *name1, char *name2, int flags)
|
|
{
|
|
char *s;
|
|
IrcVariable *n;
|
|
n = (IrcVariable *)cd;
|
|
if ((s = Tcl_GetVar(intp, name1, TCL_GLOBAL_ONLY)))
|
|
{
|
|
malloc_strcpy(&n->string, s);
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
void add_tcl_fset(Tcl_Interp *irp)
|
|
{
|
|
char varname[180];
|
|
int i = 0;
|
|
for(i = 0; fset_array[i].name; i++)
|
|
{
|
|
int type_of = -1;
|
|
switch(fset_array[i].type)
|
|
{
|
|
case INT_TYPE_VAR:
|
|
type_of = TCL_LINK_INT;
|
|
break;
|
|
case STR_TYPE_VAR:
|
|
type_of = TCL_LINK_STRING;
|
|
break;
|
|
case BOOL_TYPE_VAR:
|
|
type_of = TCL_LINK_BOOLEAN;
|
|
break;
|
|
default:
|
|
continue;
|
|
}
|
|
strncpy(varname, fset_array[i].name, 80);
|
|
lower(varname);
|
|
type_of |= TCL_LINK_READ_ONLY;
|
|
Tcl_LinkVar(irp, varname,
|
|
(fset_array[i].type == STR_TYPE_VAR) ?
|
|
(char *)&fset_array[i].string :
|
|
(char *)&fset_array[i].integer,
|
|
type_of);
|
|
#if 0
|
|
if (fset_array[i].type == STR_TYPE_VAR)
|
|
{
|
|
Tcl_TraceVar(irp, varname, TCL_TRACE_WRITES,
|
|
(Tcl_VarTraceProc *)fset_rem_str, (ClientData)&fset_array[i]);
|
|
}
|
|
#endif
|
|
}
|
|
}
|
|
#endif
|
|
|
|
|
|
#ifdef GUI
|
|
IrcVariable *return_fset_var(int nummer)
|
|
{
|
|
return &fset_array[nummer];
|
|
}
|
|
#endif
|
|
|
|
/* This is a horrible hack so that the standard List functions can be used
|
|
* for the numeric list.
|
|
*/
|
|
int compare_number(List *item1, List *item2)
|
|
{
|
|
FsetNumber *real1 = (FsetNumber *)item1;
|
|
FsetNumber *real2 = (FsetNumber *)item2;
|
|
|
|
return real1->numeric - real2->numeric;
|
|
}
|
|
|
|
char *find_numeric_fset(int numeric)
|
|
{
|
|
FsetNumber *tmp = numeric_fset;
|
|
while (tmp)
|
|
{
|
|
if (tmp->numeric == numeric)
|
|
return tmp->format;
|
|
tmp = tmp->next;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
void add_numeric_fset(char *name, int remove, char *args, int verbose)
|
|
{
|
|
FsetNumber *tmp = numeric_fset, *last = NULL;
|
|
int num = my_atol(name);
|
|
for (tmp = numeric_fset; tmp; tmp = tmp->next)
|
|
{
|
|
if (num == tmp->numeric)
|
|
{
|
|
if (remove)
|
|
{
|
|
if (last)
|
|
last->next = tmp->next;
|
|
else
|
|
numeric_fset = tmp->next;
|
|
new_free(&tmp->format);
|
|
new_free(&tmp);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (args && *args)
|
|
malloc_strcpy(&tmp->format, args);
|
|
if (verbose)
|
|
bitchsay("Numeric %d is %s", num, tmp->format);
|
|
return;
|
|
}
|
|
}
|
|
last = tmp;
|
|
}
|
|
if (!args || !*args)
|
|
{
|
|
if (verbose)
|
|
bitchsay("No such Numeric Fset %d", num);
|
|
return;
|
|
}
|
|
tmp = (FsetNumber *) new_malloc(sizeof(FsetNumber));
|
|
tmp->numeric = num;
|
|
tmp->format = m_strdup(args);
|
|
add_to_list_ext((List **)&numeric_fset, (List *)tmp, compare_number);
|
|
if (verbose)
|
|
bitchsay("Added Numeric %d as %s", num, tmp->format);
|
|
}
|
|
|