mirror of
https://github.com/vishapoberon/vipak.git
synced 2026-04-05 20:42:26 +00:00
smth
This commit is contained in:
parent
dc45cb3765
commit
fe9a02f600
1 changed files with 53 additions and 9 deletions
62
IRC.Mod
62
IRC.Mod
|
|
@ -17,6 +17,7 @@ CONST
|
||||||
numRPLCREATED = "003";
|
numRPLCREATED = "003";
|
||||||
numRPLMYINFO = "004";
|
numRPLMYINFO = "004";
|
||||||
|
|
||||||
|
eofMOTD="End of /MOTD";
|
||||||
errClosingLink = "ERROR :Closing Link:";
|
errClosingLink = "ERROR :Closing Link:";
|
||||||
|
|
||||||
TYPE
|
TYPE
|
||||||
|
|
@ -116,9 +117,22 @@ BEGIN
|
||||||
Strings.Append(" ", ln);
|
Strings.Append(" ", ln);
|
||||||
Strings.Append(chan, ln);
|
Strings.Append(chan, ln);
|
||||||
Strings.Append(eol, ln);
|
Strings.Append(eol, ln);
|
||||||
Out.String("JOIN LINE FORMED: "); Out.String(ln); Out.Ln;
|
|
||||||
END formJoinLine;
|
END formJoinLine;
|
||||||
|
|
||||||
|
PROCEDURE formModeJoinLine(VAR str, nick, chan: ARRAY OF CHAR);
|
||||||
|
BEGIN
|
||||||
|
COPY (cmdMode, str);
|
||||||
|
Strings.Append(" ", str);
|
||||||
|
Strings.Append(nick, str);
|
||||||
|
Strings.Append(" +C", str);
|
||||||
|
Strings.Append(eol, str);
|
||||||
|
|
||||||
|
Strings.Append(cmdJoin, str);
|
||||||
|
Strings.Append(" ", str);
|
||||||
|
Strings.Append(chan, str);
|
||||||
|
Strings.Append(eol, str);
|
||||||
|
END formModeJoinLine;
|
||||||
|
|
||||||
PROCEDURE isPing(VAR line: ARRAY OF CHAR): BOOLEAN;
|
PROCEDURE isPing(VAR line: ARRAY OF CHAR): BOOLEAN;
|
||||||
VAR
|
VAR
|
||||||
tmp: ARRAY 5 OF CHAR;
|
tmp: ARRAY 5 OF CHAR;
|
||||||
|
|
@ -136,11 +150,31 @@ BEGIN
|
||||||
IF line[0] = ':' THEN RETURN TRUE ELSE RETURN FALSE END
|
IF line[0] = ':' THEN RETURN TRUE ELSE RETURN FALSE END
|
||||||
END serverMsg;
|
END serverMsg;
|
||||||
|
|
||||||
PROCEDURE rplWelcome(VAR line : ARRAY OF CHAR): BOOLEAN;
|
PROCEDURE contains (VAR line : ARRAY OF CHAR; pattern: ARRAY OF CHAR): BOOLEAN;
|
||||||
VAR
|
VAR
|
||||||
found: BOOLEAN;
|
found: BOOLEAN;
|
||||||
pos : INTEGER;
|
pos : INTEGER;
|
||||||
i : INTEGER;
|
i : INTEGER;
|
||||||
|
patternLength: INTEGER;
|
||||||
|
tmpline: POINTER TO ARRAY OF CHAR;
|
||||||
|
BEGIN
|
||||||
|
i := 0;
|
||||||
|
patternLength := Strings.Length(pattern);
|
||||||
|
NEW(tmpline, patternLength+1);
|
||||||
|
found := FALSE;
|
||||||
|
REPEAT
|
||||||
|
Strings.Extract(line, i, patternLength, tmpline^);
|
||||||
|
Out.String("COMPARING: "); Out.String(pattern); Out.String (" "); Out.String (tmpline^); Out.Ln;
|
||||||
|
found := Strings.Equal(pattern, tmpline^);
|
||||||
|
INC(i);
|
||||||
|
UNTIL found OR (i = LEN(line) - patternLength - 1);
|
||||||
|
IF found THEN RETURN TRUE ELSE RETURN FALSE END
|
||||||
|
END contains;
|
||||||
|
|
||||||
|
PROCEDURE rplWelcome(VAR line : ARRAY OF CHAR): BOOLEAN;
|
||||||
|
VAR
|
||||||
|
found: BOOLEAN;
|
||||||
|
pos : INTEGER;
|
||||||
BEGIN
|
BEGIN
|
||||||
Strings.FindNext(numRPLWELCOME, line, 0, found, pos);
|
Strings.FindNext(numRPLWELCOME, line, 0, found, pos);
|
||||||
IF found THEN RETURN TRUE ELSE RETURN FALSE END
|
IF found THEN RETURN TRUE ELSE RETURN FALSE END
|
||||||
|
|
@ -235,6 +269,14 @@ BEGIN
|
||||||
b := Send(inst, str);
|
b := Send(inst, str);
|
||||||
END Mode;
|
END Mode;
|
||||||
|
|
||||||
|
PROCEDURE ModeAndJoin*(VAR inst : instance);
|
||||||
|
VAR str: ARRAY msgLen OF CHAR;
|
||||||
|
b: BOOLEAN;
|
||||||
|
BEGIN
|
||||||
|
formModeJoinLine(str, inst.nick, inst.channelList^[0]);
|
||||||
|
b := Send(inst, str);
|
||||||
|
END ModeAndJoin;
|
||||||
|
|
||||||
PROCEDURE Join*(VAR inst: instance);
|
PROCEDURE Join*(VAR inst: instance);
|
||||||
VAR
|
VAR
|
||||||
str: ARRAY msgLen OF CHAR;
|
str: ARRAY msgLen OF CHAR;
|
||||||
|
|
@ -251,19 +293,23 @@ VAR
|
||||||
b : BOOLEAN;
|
b : BOOLEAN;
|
||||||
BEGIN
|
BEGIN
|
||||||
b := TRUE;
|
b := TRUE;
|
||||||
IF isPing(line) THEN Pong(inst, line) END;
|
IF isPing(line) THEN
|
||||||
|
Pong(inst, line);
|
||||||
|
END;
|
||||||
IF error(line) THEN
|
IF error(line) THEN
|
||||||
Disconnect(inst);
|
Disconnect(inst);
|
||||||
b := FALSE;
|
b := FALSE;
|
||||||
ELSE
|
ELSE
|
||||||
IF serverMsg(line) THEN
|
(*IF serverMsg(line) THEN*)
|
||||||
IF rplWelcome(line) THEN
|
IF rplWelcome(line) THEN
|
||||||
Mode(inst);
|
(*IF contains(line, eofMOTD) THEN*)
|
||||||
Join(inst);
|
(*Mode(inst);
|
||||||
|
Join(inst);*)
|
||||||
|
ModeAndJoin(inst);
|
||||||
ELSE
|
ELSE
|
||||||
inst.callback(line);
|
inst.callback(line);
|
||||||
END;
|
END;
|
||||||
END;
|
(*END;*)
|
||||||
END;
|
END;
|
||||||
RETURN b;
|
RETURN b;
|
||||||
END processResponse;
|
END processResponse;
|
||||||
|
|
@ -281,6 +327,4 @@ END Loop;
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
eol[0] := LF; eol[1] := CR; eol[2] := 0X;
|
eol[0] := LF; eol[1] := CR; eol[2] := 0X;
|
||||||
|
|
||||||
|
|
||||||
END IRC.
|
END IRC.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue