From 898bab4509f594bc8f60990e2488d66dd8d82392 Mon Sep 17 00:00:00 2001 From: norayr Date: Thu, 18 May 2017 13:21:46 +0400 Subject: [PATCH] sending message type to the callback procedures as well. commented out simple callback, looks like it's redundant. --- IRC.Mod | 16 ++++++++-------- test.Mod | 15 +++++++++------ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/IRC.Mod b/IRC.Mod index d7b1dac..2562914 100644 --- a/IRC.Mod +++ b/IRC.Mod @@ -29,17 +29,17 @@ CONST chn* = ARRAY 32 OF CHAR; chnlist* = POINTER TO ARRAY OF chn; msg* = ARRAY msgLen OF CHAR; - cbMessage* = PROCEDURE(VAR msg : ARRAY OF CHAR); (* cb stands for callback *) - cbPrivateMessage* = PROCEDURE (VAR msg, user, ident, host: ARRAY OF CHAR); - cbPublicMessage* = PROCEDURE (VAR msg, user, ident, rcpt, host: ARRAY OF CHAR); - cbPublicMessageWithMention* = PROCEDURE(VAR msg, user, ident, rcpt, host: ARRAY OF CHAR); (* rcpt is usually the room in case of public messages *) + (*cbMessage* = PROCEDURE(VAR msg : ARRAY OF CHAR);*) (* cb stands for callback *) + cbPrivateMessage* = PROCEDURE (VAR msg, msgtype, user, ident, host: ARRAY OF CHAR); + cbPublicMessage* = PROCEDURE (VAR msg, msgtype, user, ident, rcpt, host: ARRAY OF CHAR); + cbPublicMessageWithMention* = PROCEDURE(VAR msg, msgtype, user, ident, rcpt, host: ARRAY OF CHAR); (* rcpt is usually the room in case of public messages *) instance* = RECORD owner*, user*, nick*, host*, port*: chn; connection*: Internet.Socket; channelList*: chnlist; - callbackSimple*: cbMessage; + (*callbackSimple*: cbMessage;*) callbackPrivate*: cbPrivateMessage; callbackPublic*: cbPublicMessage; callbackPublicMention*: cbPublicMessageWithMention; @@ -398,14 +398,14 @@ BEGIN END; IF rcpt = inst.nick THEN (* private message *) - inst.callbackPrivate(message, username, identname, host); + inst.callbackPrivate(message, messagetype, username, identname, host); ELSE mn := isMention(inst.nick, message); IF mn THEN cutMentionFromMessage(inst.nick, message); - inst.callbackPublicMention(message, username, identname, rcpt, host); + inst.callbackPublicMention(message, messagetype, username, identname, rcpt, host); ELSE - inst.callbackPublic(message, username, identname, rcpt, host); + inst.callbackPublic(message, messagetype, username, identname, rcpt, host); END; END; END parse; diff --git a/test.Mod b/test.Mod index 8ce1c17..4a0cd38 100644 --- a/test.Mod +++ b/test.Mod @@ -2,7 +2,7 @@ MODULE test; (* noch 13.4.2017 / 18.5.2017*) IMPORT IRC, Out, Strings := ooc2Strings; - +(* PROCEDURE onMessage(VAR msg : ARRAY OF CHAR); BEGIN Out.String("callback procedure is running, youhoo!"); Out.Ln; @@ -10,21 +10,23 @@ BEGIN Out.String(msg); Out.String("|"); Out.Ln; Out.Ln; END onMessage; - -PROCEDURE onPrivateMessage(VAR msg, user, ident, host: ARRAY OF CHAR); +*) +PROCEDURE onPrivateMessage(VAR msg, msgtype, user, ident, host: ARRAY OF CHAR); BEGIN Out.String("*** private message ***"); Out.Ln; Out.String("message: '"); Out.String(msg); Out.Char("'"); Out.Ln; + Out.String("message type: '"); Out.String(msgtype); Out.Char("'"); Out.Ln; Out.String("user: '"); Out.String(user); Out.Char("'"); Out.Ln; Out.String("ident: '"); Out.String(ident); Out.Char("'"); Out.Ln; Out.String("host: '"); Out.String(host); Out.Char("'"); Out.Ln; Out.String("*** that's it ***"); Out.Ln; END onPrivateMessage; -PROCEDURE onPublicMessage(VAR msg, user, ident, rcpt, host: ARRAY OF CHAR); +PROCEDURE onPublicMessage(VAR msg, msgtype, user, ident, rcpt, host: ARRAY OF CHAR); BEGIN Out.String("*** public message ***"); Out.Ln; Out.String("message: '"); Out.String(msg); Out.Char("'"); Out.Ln; + Out.String("message type: '"); Out.String(msgtype); Out.Char("'"); Out.Ln; Out.String("user: '"); Out.String(user); Out.Char("'"); Out.Ln; Out.String("ident: '"); Out.String(ident); Out.Char("'"); Out.Ln; Out.String("recipient: '"); Out.String(rcpt); Out.Char("'"); Out.Ln; @@ -32,10 +34,11 @@ BEGIN Out.String("*** that's it ***"); Out.Ln; END onPublicMessage; -PROCEDURE onPublicMessageWithMention(VAR msg, user, ident, rcpt, host: ARRAY OF CHAR); +PROCEDURE onPublicMessageWithMention(VAR msg, msgtype, user, ident, rcpt, host: ARRAY OF CHAR); BEGIN Out.String("*** public message, bot name mentioned ***"); Out.Ln; Out.String("message: '"); Out.String(msg); Out.Char("'"); Out.Ln; + Out.String("message type: '"); Out.String(msgtype); Out.Char("'"); Out.Ln; Out.String("user: '"); Out.String(user); Out.Char("'"); Out.Ln; Out.String("ident: '"); Out.String(ident); Out.Char("'"); Out.Ln; Out.String("recipient: '"); Out.String(rcpt); Out.Char("'"); Out.Ln; @@ -55,7 +58,7 @@ BEGIN inst.nick := "vocbot"; inst.host := "irc.freenode.net"; inst.port := "6667"; - inst.callbackSimple := onMessage; + (*inst.callbackSimple := onMessage;*) inst.callbackPrivate := onPrivateMessage; inst.callbackPublic := onPublicMessage; inst.callbackPublicMention := onPublicMessageWithMention;