aboutsummaryrefslogtreecommitdiffstats
path: root/irc_channel.c
Commit message (Collapse)AuthorAgeLines
* Add nick_lowercase and nick_underscores settingsdequis2016-12-25-1/+1
|
* irc_channel_add_user: Don't call update_ops if not neededdequis2016-03-20-1/+3
| | | | | It only affects irc->user and irc->root, and this was calling it for everyone.
* set_eval_channel_type: skip the channel free/init if nothing is changeddequis2015-11-28-0/+5
| | | | | | | Fixes trac ticket 1108: https://bugs.bitlbee.org/bitlbee/ticket/1108 I would have ignored that ticket (it's about some sort of legacy migration) but the fix sounds like a sane thing to do
* irc: Send numeric error when failing to join a channeldequis2015-11-26-0/+4
| | | | | | | | | | | | | This fixes issues like getting a blank window with a channel that the irc client thinks the user is in but bitlbee doesn't. The error is sent either by returning NULL in the chat_join prpl function, or by calling imcb_chat_free() before the user is added to the channel. This wasn't possible before since purple returned NULL in its chat_join, which resulted in other bugs too. Since that's fixed, I can finally apply this, which has been in my stash for a very long while.
* IRCv3 multi-prefix... but mostly just adding prefixes to WHOdequis2015-10-08-0/+12
| | | | | | | | | We can't actually have multiple prefixes internally, so the only thing missing for multi-prefix compliance is actually having the prefix in the WHO reply, which is a rfc1459 thing. Note to future self: check irc logs for the implementation I threw away. The one that actually handled multiple prefixes. I hope that's useful.
* irc_channel_name_gen: handle g_convert_with_fallback failuresdequis2015-08-27-0/+10
| | | | | | | | | | First fallback to ASCII without TRANSLIT, and if that fails too, just give up by returning NULL. Basically the same thing as 3a27896 (a netbsd specific fix), but for channel names. This wasn't needed before because the older version of this code caught the NULL from the ASCII//TRANSLIT attempt and gave up immediately, while the refactored version lacked null checking.
* Restore old autojoin logic and a hopefully better fix for the problemWilmer van der Gaast2015-07-29-4/+4
| | | | jgeboski was trying to solve. #1221 for details.
* irc_channel: use irc_t instead of bee_tdequis2015-04-06-7/+7
| | | | Fixes the test suite. I guess it's useful for something.
* irc: split bee_irc_chat_name_hint in a few functionsdequis2015-04-06-0/+80
| | | | Also split underscore_dedupe from nick_dedupe.
* Reindent everything to K&R style with tabsIndent2015-02-20-470/+502
| | | | | | | Used uncrustify, with the configuration file in ./doc/uncrustify.cfg Commit author set to "Indent <please@skip.me>" so that it's easier to skip while doing git blame.
* irc_commands: implemented KICK supportjgeboski2015-01-29-0/+19
| | | | | | | | | | | With similar commands being supported, such as INVITE, the KICK command should be supported as well. The key motivation behind supporting KICK is having for having a way to remove users from group chats. As of now, there is no way for a bitlbee user to remove a user from a group chat. With no current KICK implementation, it made using this command a prime candidate for the UI side of this implementation. In addition, the KICK command has been supported in the control channel as well. This is to keep the INVITE/KICK pair consistent.
* irc-channel: implemented a special mode for show_usersjgeboski2015-01-28-6/+8
| | | | | | | | | | | | | This allows for users to be declared as being special, which does not have any specific meaning. The meaning of being special is different from protocol-to-protocol, which many protocols do not even implement. This functionality is mainly geared towards a special user state which only some protocols may actually need to define. For example, with the third-party Steam plugin, this can be used for denoting a user which is actively playing a game. By default, this mode will not actually be used by any plugin. However, it does default to the half-operator user mode.
* channel: fixed auto-join occurring when disabledjgeboski2015-01-16-1/+1
| | | | | | | | | | | | | | With the auto_join channel flag set to false, the channel is still auto-joined. This can lead to the channel being "doubly" joined if a client previously sent a channel join request. The result of being "doubly" joined is really undefined, but most notably memory leaks can occur. It also appears, based on the comment under the modified condition, the previous condition was incorrect. Another patch should probably implement some sort of check to ensure a channel is not already joined, assuming the auto_join flag is enabled.
* Replace isdigit/isalpha/.../tolower/toupper with glib variantsdequis2015-01-16-2/+2
| | | | | | | | | | | This fixes warnings about passing signed chars to them (apparently they are implemented as macros that do array lookups without checks in some platforms, yay) Specifically: functions=isalnum|isalpha|isdigit|isspace|isxdigit|tolower|toupper sed -ir "s/$functions/g_ascii_&/g" **/*.c
* Fix incorrect Free Software Foundation addressMatej Cepl2015-01-16-2/+2
|
* Don't save the "type" channel setting, it's an XML attribute already. ThisWilmer van der Gaast2013-10-14-1/+4
| | | | | | fix is ugly as it's putting a detail relevant to XML storage elsewhere in the code. But I don't think we should have any other storage formats anyway.
* I'm still bored on a long flight. Wrote a script to automatically updateWilmer van der Gaast2013-02-21-1/+1
| | | | | | | my copyright mentions since some were getting pretty stale. Left files not touched since before 2012 alone so that this change doesn't touch almost EVERY source file.
* ! modified for control channel fill_by setting to for example create aWilmer van der Gaast2013-02-21-18/+38
| | | | | | separate control channel with all contacts *not* in a certain group/from a certain IM account/network, etc.
* Fixing NULL pointer dereference in irc_channel_free(). This seems to happenWilmer van der Gaast2012-02-17-1/+5
| | | | | | | for example when the user gets invited to a channel that already exists. Separately, I should handle invites like that better. Will file a bug for that.
* Clean up pastebuf_timer when cleaning up channels, and properly clean upWilmer van der Gaast2010-12-02-0/+2
| | | | | | | channel-chatroom reference when leaving a chatroom. This fixes two very similar crash bugs when leaving a chatroom within the paste_buffer_delay period.
* Added irc_channel_with_user() function to find a suitable channel to showWilmer van der Gaast2010-11-20-0/+37
| | | | | a user's message in, instead of just &bitlbee by default.
* Force the default/first channel to be a control channel, fixing one crashWilmer van der Gaast2010-10-01-1/+1
| | | | | bug and preventing a generally confusing and undesirable setup.
* Added some neat whatsnew code that keeps track of the newest version ofWilmer van der Gaast2010-08-21-0/+1
| | | | | | | | | | BitlBee used by a user, and if it looks like s/he hasn't used this one before, show a list of new features that may be interesting. Since I don't think im.bitlbee.org users will read any changelogs ever, this is probably not a bad idea. If you hate it, the following command should get rid of it forever: set last_version 9999999
* blist should only show contacts that are (or would be if they were online)Wilmer van der Gaast2010-08-14-0/+25
| | | | | in the current channel.
* Set channel mode +C for control channels.Wilmer van der Gaast2010-08-04-0/+50
|
* Restore default_target setting, kill last_root_cmd variable and just useWilmer van der Gaast2010-07-29-18/+13
| | | | | the last_channel variable, like for any other user.
* Clean up references from irc_user structs to channels that are being free()d.Wilmer van der Gaast2010-07-29-0/+9
|
* Use the account tag in a few places and store it in the XML file as anWilmer van der Gaast2010-07-24-1/+1
| | | | | attribute, not as a setting (since all accounts have it anyway).
* Whoops. Small memory management screw-up.Wilmer van der Gaast2010-07-19-1/+3
|
* One of the last few things I wanted to get done in this branch: combiningWilmer van der Gaast2010-07-18-0/+48
| | | | | | show_offline and away_devoice and possibly other ideas into one setting called show_users. Documentation will come soon. :-P
* Move control channel autoconfiguration to irc_cmd_join() instead so that itWilmer van der Gaast2010-07-14-18/+0
| | | | | | only triggers on channels created by the user. (And not at identify time, which was causing odd problems on my test setup.)
* Kick the user instead of parting him/her when cleaning up a channel. This isWilmer van der Gaast2010-07-04-3/+8
| | | | | what the older version also did so that Irssi won't clean up the window.
* Added automatic joining of channels. Auto-rejoin functionality forWilmer van der Gaast2010-07-04-1/+48
| | | | | groupchats not reimplemented yet but that's the next step.
* Disable the code added in the previous change during shutdown, since it'sWilmer van der Gaast2010-07-01-1/+7
| | | | | pointless at that stage and may cause crashes.
* Flush channels when the user leaves them. Also, don't update a controlWilmer van der Gaast2010-07-01-0/+11
| | | | | channel if the user isn't in it.
* Also, automatically set up per-protocol channels if the name's a protocolWilmer van der Gaast2010-06-30-0/+4
| | | | | name.
* Also allow selecting contacts for a channel by protocol instead of account.Wilmer van der Gaast2010-06-30-0/+22
| | | | | | If someone has two MSN accts and wants contacts from both in one channel, this is now possible.
* An empty string is not a valid channel name.Wilmer van der Gaast2010-06-28-0/+3
|
* Callers shouldn't have to expect that irc_channel_del_user() frees the channelWilmer van der Gaast2010-06-28-1/+35
| | | | | so if it wants to (temporary channels), do it via a timer.
* Mark nameless groupchat channels as temporary so they don't stick aroundWilmer van der Gaast2010-06-28-0/+5
| | | | | forever.
* irc_channel_name_strip() instead of nick_strip().Wilmer van der Gaast2010-06-27-0/+11
|
* Remember in which channel the user talked to someone and show responses inWilmer van der Gaast2010-06-26-1/+1
| | | | | that same channel.
* More correct handling of channel names (according to RFC 1459). PrettyWilmer van der Gaast2010-06-16-10/+49
| | | | | | much any 8-bit character is allowed in there - while nicknames are very restricted.
* Allow moving contacts around between groups. Works with at least Jabber,Wilmer van der Gaast2010-06-09-1/+21
| | | | | will check the others now.
* Some cleanup improvements.Wilmer van der Gaast2010-06-08-0/+7
|
* Restore "ops" command completely, and set user op status *just* beforeWilmer van der Gaast2010-06-07-4/+28
| | | | | s/he joins.
* Added "channel list" command and the ability to use only part of theWilmer van der Gaast2010-06-07-2/+42
| | | | | channel name or a number in "chan set"/etc.
* Added /part msgs, and the ability to silently remove users from channelsWilmer van der Gaast2010-06-06-4/+4
| | | | | (when sending a /quit instead, for example).
* Chatroom improvements. Merged chatroom stub into normal chatroom stuff,Wilmer van der Gaast2010-06-05-47/+3
| | | | | | restored "chat add" behaviour a little bit better (don't clean up a channel when its room disappears, just disconnect it from the groupchat).
* Bug fixes, control channel behaviour is mostly okay again.Wilmer van der Gaast2010-06-05-2/+9
|