1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-29 06:16:40 +02:00
Sébastien Helleu cf6aca1619 core: add pointer in some callbacks (closes #406)
This pointer is the first argument received by callbacks, and the
existing argument "data" is now automatically freed by WeeChat when the
object containing the callback is removed.

With this new pointer, the linked list of callbacks in scripts has been
removed. This will improve speed of scripts (using a lot of hooks),
reduce memory used by scripts and reduce time to unload scripts.

Following functions are affected in the C API:

* exec_on_files
* config_new
* config_new_section
* config_new_option
* hook_command
* hook_command_run
* hook_timer
* hook_fd
* hook_process
* hook_process_hashtable
* hook_connect
* hook_print
* hook_signal
* hook_hsignal
* hook_config
* hook_completion
* hook_modifier
* hook_info
* hook_info_hashtable
* hook_infolist
* hook_hdata
* hook_focus
* unhook_all_plugin
* buffer_new
* bar_item_new
* upgrade_new
* upgrade_read
2016-03-21 18:11:21 +01:00
2016-02-29 21:24:11 +01:00
2016-01-01 11:09:53 +01:00
2014-10-11 17:05:26 +02:00
2016-01-01 11:09:53 +01:00
2016-01-01 11:09:53 +01:00
2007-07-02 12:25:13 +00:00
2016-01-01 11:09:53 +01:00
2016-01-01 11:09:53 +01:00
2016-01-10 10:31:35 +01:00
2016-01-10 09:17:50 +01:00

= WeeChat
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: en


image:https://travis-ci.org/weechat/weechat.svg?branch=master["Build Status", link="https://travis-ci.org/weechat/weechat"]
image:https://img.shields.io/badge/diaspora*-follow-blue.svg["Diaspora*", link="https://diasp.eu/u/weechat"]
image:https://img.shields.io/badge/google%2B-follow-blue.svg["Google+", link="https://plus.google.com/+WeeChat"]
image:https://img.shields.io/badge/devel%20blog-follow-blue.svg["Devel blog", link="http://dev.weechat.org/"]
image:https://img.shields.io/badge/slant-recommend-28acad.svg["Slant", link="http://www.slant.co/topics/1323/~irc-clients-for-linux"]
image:https://img.shields.io/badge/paypal-donate%20%E2%9D%A4-yellow.svg["Paypal", link="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=4LSMSNLUAJWNS"]

WeeChat (Wee Enhanced Environment for Chat) is a free chat client, fast and
light, designed for many operating systems.
It is highly customizable and extensible with scripts.

Homepage: https://weechat.org/

== Features

* Modular chat client with a lightweight core and optional plugins.
* Multi-platform (GNU/Linux, *BSD, Mac OS X, QNX, Windows & other).
* Multi-protocols architecture (mainly IRC).
* Compliant with IRC RFCs 1459, 2810, 2811, 2812 and 2813.
* Small, fast and very light.
* Customizable and extensible with plugins (C, Perl, Python, Ruby, Lua, Tcl,
  Guile, Javascript).
* Fully documented and translated into several languages.
* Developed from scratch.
* Free software, released under GPLv3.

image::https://weechat.org/media/images/screenshots/weechat/medium/weechat_2013-04-27_phlux_shadow.png[align="center"]

Other screenshots are on https://weechat.org/about/screenshots/[this page].

== Install

=== Dependencies

Following packages are *required*:

* CMake
* libncurses
* libcurl
* zlib
* libgcrypt

Following packages are optional:

* for i18n: gettext
* for SSL: gnutls, ca-certificates
* for spell checking: aspell
* for scripting: python, perl, ruby, lua, tcl, guile, libv8 (javascript)
* for building doc: asciidoc, source-highlight
  (for man page: xsltproc, docbook-xml, docbook-xsl)
* for building tests: C++ compiler, CppUTest

For a complete list of dependencies and versions recommended, please look at
https://weechat.org/files/doc/devel/weechat_user.en.html#dependencies[user's guide].

=== Compile

WeeChat can be built with http://cmake.org/[CMake] (recommended) or autotools.

[NOTE]
Only CMake is officially supported to build WeeChat. You should only use
autotools if you are not able to use CMake. +
Building with autotools requires more dependencies and is slower than with CMake.

----
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/directory
$ make
$ make install     (as root for installation in system directories)
----

For more information or installation with autotools, please look at
https://weechat.org/files/doc/devel/weechat_user.en.html#compile_with_autotools[user's guide].

== Copyright

Copyright (C) 2003-2016 Sébastien Helleu <flashcode@flashtux.org>

This file is part of WeeChat, the extensible chat client.

WeeChat is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

WeeChat is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with WeeChat.  If not, see <http://www.gnu.org/licenses/>.
Languages
C 79.4%
C++ 17.8%
Python 1.7%
CMake 0.8%
Shell 0.2%
Other 0.1%