Commit Graph

52 Commits

Author SHA1 Message Date
achmizs
a4a9ed2c15 Added #define to IRCClient.h 2021-12-04 04:31:10 -05:00
Said Achmiz
9333d0d477 Fixed bug in IRCClientSession join method 2016-04-03 12:34:59 -04:00
Said Achmiz
5fa3aed5da Fix project layout 2016-03-14 16:20:34 -04:00
Said Achmiz
a085091128 Fix project layout 2016-03-14 16:14:42 -04:00
Said Achmiz
948c255646 Add libircclient to distribution, clean up ignored files 2016-03-12 19:22:40 -05:00
Said Achmiz
3cf8d3f19c Transition to building libircclient in Xcode 2016-03-12 19:09:08 -05:00
Said Achmiz
247b3785c3 Fix deprecated method use in CTCP TIME reply code 2016-03-11 21:23:29 -05:00
Said Achmiz
1982408acd Fix unsafe deprecated method usage 2016-03-11 02:48:59 -05:00
Said Achmiz
548aeed8f1 Configure build settings for iOS compatibility 2016-03-11 02:46:41 -05:00
Said Achmiz
3f03efb091 Update headers for iOS compatibility 2016-03-11 02:30:54 -05:00
Said Achmiz
939895835c Updated README 2016-03-11 02:18:37 -05:00
Said Achmiz
f7196c60fb Improve some comments 2016-03-06 15:35:59 -05:00
Said Achmiz
920b89d9cc Fix grammatical error in README 2016-03-06 13:35:33 -05:00
achmizs
2d8e245ced Check that delegate implements optional methods before calling them 2016-01-12 15:28:03 -05:00
achmizs
fb1a3e4395 Added 'user info' property to both classes. 2016-01-12 14:58:45 -05:00
achmizs
e48560fdce Modify delegate methods to send self with message
The methods declared in IRCClientSessionDelegate and
IRCClientChannelDelegate now have an additional parameter, for
the session or the channel to send a reference to itself. This is
in order that a single delegate object may manage multiple sessions
or channels, and disambiguate between them when receiving messages.
2016-01-12 14:55:24 -05:00
achmizs
6210a28a9e Correct an outdated comment 2016-01-11 14:00:22 -05:00
achmizs
11bcf9913e Merge branch 'master' of https://github.com/achmizs/IRCClient 2016-01-11 12:14:42 -05:00
achmizs
a85cc4a1f0 Remove extraneous @synthesize lines 2016-01-11 12:12:32 -05:00
achmizs
9ab0d37f6c Update README_libircclient 2015-12-30 17:36:05 -05:00
achmizs
2ad67cd856 Fix possible bad access bug 2015-12-24 23:31:30 -05:00
achmizs
ba62ccdfc3 Update documentation 2015-12-24 16:22:04 -05:00
achmizs
702f7e9ab7 Update documentation 2015-12-24 16:17:21 -05:00
achmizs
554522c5ce Banish NSString to the depths of oblivion (encoding fix)
IRCClient is now entirely text-encoding-agnostic[1]. It takes values
for messages, nicks, channels, etc. as NSData objects which should
contain null-terminated C strings, and returns values likewise.
The 'encoding' property of IRCClientSession and IRCClientChannel is
no longer used for any[1] internal functions. It is the responsibility
of the framework's user to select an appropriate encoding for display
of received C-strings (storing this encoding with session and channel
objects is the function of the 'encoding' property).

[1] The one exception is the reply string to CTCP TIME requests, which
uses the specified encoding for the session.
2015-12-24 15:34:26 -05:00
achmizs
8b8a11af25 Add support for 'anonymous' PRIVMSG and NOTICE
IRCClient now supports PRIVMSG and NOTICE messages that are not
addressed to the client's nick, nor to any channel the client is on.
An example is the AUTH messages that some servers emit at the start
of the connection process.
2015-12-24 02:00:41 -05:00
achmizs
899a91d410 Fix bad access bugs (hopefully)
In some callbacks, NSData objects to be passed to IRCClientSession's
event handlers would be nil (if e.g. a user parted a channel without
giving a reason). Those object references would then be sent messages.
This is bad. Instead, an NSData object is always allocated now, even
for blank reasons/messages/notices/etc. This object simply contains a
single null byte (i.e. it holds an empty, null-terminated C string).
2015-12-23 19:37:00 -05:00
achmizs
4c7b83d045 Add IRC_Numerics.plist
IRC_Numerics.plist contains a mapping of known IRC numeric message
codes (taken from https://www.alien.net.au/irc/irc2numerics.html) to
their ASCII names. This is mostly for internal dev/debugging use.
2015-12-23 17:24:16 -05:00
achmizs
06c7c487eb Change the way nick/username/realname are set
Rather than have properties, setting which does nothing, we now
have readonly properties for nickname/username/realname, and a single
setter method, which may be called prior to the session connecting.
That way we won't have people setting the properties, and having the
properties then not reflecting the state of the connection!
2015-12-23 11:04:22 -05:00
achmizs
dabb1c6bcd Remove extraneous includes/declarations 2015-12-23 10:32:55 -05:00
achmizs
a02c297a09 Fix minor null termination issue
Default (blank) topic is now properly null-terminated.
2015-12-23 10:28:22 -05:00
achmizs
0ea3f0ab06 Correct channel name bug
The IRCClientChannel 'name' property was readwrite. This is obviously
incorrect - you cannot change the name of a channel the user has joined,
so you shouldn't be able to change the object's name property!
2015-12-23 10:24:16 -05:00
achmizs
710aa0a465 Fix more null termination bugs 2015-12-22 18:33:01 -05:00
achmizs
558399ad6c Add NSData_SA_NSDataExtensions 2015-12-22 17:19:54 -05:00
achmizs
cf25915c92 Solve null-termination problems (with SA_NSDataExtensions)
IRCClient should no longer have any issues with null termination
of strings (expecting terminated strings and not getting them,
or vice versa).
2015-12-22 17:16:09 -05:00
achmizs
65f44138ef Rectify property behavior
IRCClientChannel and IRCClientSession had properties which were defined
and adorned with memory management keywords in contravention of best
practices and Apple recommendations. These have been rectified.

No API changes accompany this fix.
2015-12-22 13:33:04 -05:00
achmizs
d2ea0bf7fb Rectify embedded documentation (event names)
The comments for some methods in IRCClientSession.h and
IRCClientChannel.h were incorrect (they still talked about the old
event names, from version 1.0). This commit fixes those errors.
2015-12-21 18:52:59 -05:00
achmizs
ae40b333fd Updated documentation 2015-12-19 16:26:11 -05:00
achmizs
5686262717 Updated documentation 2015-12-19 08:29:12 -05:00
achmizs
e882290630 Updated README 2015-12-18 21:34:18 -05:00
achmizs
f654a76fcd Updated README 2015-12-18 21:06:32 -05:00
achmizs
65350da5fd stuff2 2015-12-18 20:49:25 -05:00
achmizs
ba9ff86feb stuff 2015-12-18 19:35:39 -05:00
achmizs
683567d1cf fixed again 2015-12-16 15:40:37 -05:00
achmizs
7d6538c1bd fixed gitignore 2015-12-16 15:38:49 -05:00
achmizs
0701c7b054 test 2015-12-16 15:34:58 -05:00
achmizs
15ca5e4e4b moved a file 2015-12-16 15:14:04 -05:00
achmizs
d8c94018f2 moved a file 2015-12-16 15:13:16 -05:00
achmizs
b9358a5f60 moved a file 2015-12-16 15:12:00 -05:00
achmizs
e4ba2bc334 README added 2015-12-16 15:11:02 -05:00
achmizs
71db0608e3 .gitignore set up 2015-12-16 15:07:22 -05:00