From 6d751661b8cdcbc988fffbb68400a0fb6037b593 Mon Sep 17 00:00:00 2001 From: norayr Date: Mon, 22 May 2017 15:43:55 +0400 Subject: [PATCH] added talk method to IRC module. --- IRC.Mod | 19 +++++++++++++++++++ test.Mod | 1 + 2 files changed, 20 insertions(+) diff --git a/IRC.Mod b/IRC.Mod index 2d98bb8..a33864f 100644 --- a/IRC.Mod +++ b/IRC.Mod @@ -540,6 +540,25 @@ BEGIN Out.String("exiting."); Out.Ln; END finalize; +PROCEDURE sendMsgToDst*(VAR inst: instance; VAR dst: ARRAY OF CHAR; msg: ARRAY OF CHAR); +VAR + s: POINTER TO ARRAY OF CHAR; + i, j: LONGINT; + b: BOOLEAN; +BEGIN + i := Strings.Length(msg); + j := Strings.Length(dst); + NEW(s, i + j + Strings.Length(msgPRIVMSG) + 6(* to fit a colon and two spaces and eol *)); + COPY(msgPRIVMSG, s^); + Strings.Append(' ', s^); + Strings.Append(dst, s^); + Strings.Append(' :', s^); + Strings.Append(msg, s^); + sh.appendLFCR(s^); + Out.String("sending: "); Out.String(s^); Out.Ln; + b := Send(inst, s^); +END sendMsgToDst; + PROCEDURE processFurther(VAR inst: instance; VAR line: ARRAY OF CHAR); VAR message: ARRAY msgLen OF CHAR; diff --git a/test.Mod b/test.Mod index 8052808..710bd5f 100644 --- a/test.Mod +++ b/test.Mod @@ -27,6 +27,7 @@ BEGIN 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; + IRC.sendMsgToDst(inst, user, "hello, nice to meet you"); END onPrivateMessage; PROCEDURE onPublicMessage(VAR msg, msgtype, user, ident, rcpt, host: ARRAY OF CHAR);