an experimental irc client

Add explicit join commands. Will open buffer when using join command

authored by

Palanix and committed by rockorager.dev 8b706ad6 96a069cd

+10 -4
+10 -4
src/app.zig
··· 53 53 }; 54 54 55 55 pub const App = struct { 56 + explicit_join: bool = false, 56 57 alloc: std.mem.Allocator, 57 58 /// System certificate bundle 58 59 bundle: std.crypto.Certificate.Bundle = .{}, ··· 637 638 var channel = try client.getOrCreateChannel(target); 638 639 639 640 // If it's our nick, we request chat history 640 - if (mem.eql(u8, user.nick, client.nickname())) 641 - try client.requestHistory(.after, channel) 642 - else 643 - try channel.addMember(user, .{}); 641 + if (mem.eql(u8, user.nick, client.nickname())) { 642 + try client.requestHistory(.after, channel); 643 + if (self.explicit_join) { 644 + self.selectChannelName(client, target); 645 + self.explicit_join = false; 646 + } 647 + } else try channel.addMember(user, .{}); 644 648 }, 645 649 .MARKREAD => { 646 650 var iter = msg.paramIterator(); ··· 866 870 cmd[start + 1 ..], 867 871 }, 868 872 ); 873 + // Ensure buffer exists 874 + self.explicit_join = true; 869 875 return client.queueWrite(msg); 870 876 }, 871 877 .me => {