1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-18 17:14:47 +02:00

Compare commits

..

17 Commits

Author SHA1 Message Date
Sébastien Helleu 7495650be5 core: fix screenshot URL in README 2016-12-17 10:01:55 +01:00
Sébastien Helleu 1a1a9a9503 Version 1.1.2-dev 2015-01-25 09:23:10 +01:00
Sébastien Helleu b42ae05a65 Version 1.1.1 2015-01-25 08:40:23 +01:00
Sébastien Helleu c229030860 core: fix random error when creating symbolic link weechat-curses on make install with cmake (bug #40313)
(cherry picked from commit a6327bc6f2)
2015-01-24 16:34:52 +01:00
Sébastien Helleu b35873fc3e irc: don't close channel buffer on second /part when option irc.look.part_closes_buffer is off (closes #313)
(cherry picked from commit 1a68242f95)
2015-01-24 09:38:03 +01:00
Sébastien Helleu 0796f343ee core: fix crash when a root bar has conditions different from active/inactive/nicklist (closes #317)
(cherry picked from commit ed9e146e46)
2015-01-23 21:21:55 +01:00
Sébastien Helleu 470b1892d8 irc: fix restore of query buffers on /upgrade (closes #315)
After /upgrade it was not possible to send a message in the query buffer or to
receive messages from this nick.

This commit fixes the search of query buffer when creating the irc channel
(with type "private").

The bug was introduced by commit 9749b65f7e.

(cherry picked from commit a617cd857a)
2015-01-23 20:02:40 +01:00
Sébastien Helleu 0cf4640b9b core: check that filename is not NULL in function util_file_get_content
(cherry picked from commit 083a6c741d)
2015-01-23 07:38:56 +01:00
Sébastien Helleu d039fd0f8c irc: fix /join on a channel buffer opened with autojoin but which failed to join
(cherry picked from commit 860ca4be20)
2015-01-19 20:23:32 +01:00
Sébastien Helleu d611982ba6 Version 1.1.1-dev 2015-01-17 15:22:15 +01:00
Sébastien Helleu 5dd36f8fda irc: send QUIT to server and no PART for channels when the server buffer is closed (closes #294)
(cherry picked from commit 99d20e97c6)
2015-01-17 15:19:33 +01:00
Sébastien Helleu 9040494016 irc: fix order of channel buffers opened (closes #303)
(cherry picked from commit 9fbd138518)
2015-01-17 14:39:31 +01:00
Sébastien Helleu d4908ba8f3 irc: fix crash in buffer close when server name is the same as a channel name (closes #305)
(cherry picked from commit 9749b65f7e)
2015-01-17 14:38:34 +01:00
Sébastien Helleu eb81c4752b Version 1.1 2015-01-11 09:39:40 +01:00
Sébastien Helleu e95350a6b2 core: add version 1.0.1 in weechat.spec 2015-01-11 09:37:15 +01:00
Sébastien Helleu 2021e63cd6 irc: fix warning on cast of a pointer 2015-01-10 09:29:13 +01:00
Krzysztof Korościk 91b108e570 weechat_user.pl: update translations 2015-01-09 22:03:31 +01:00
14 changed files with 174 additions and 77 deletions
+2 -2
View File
@@ -34,8 +34,8 @@ endif()
# version
set(VERSION_MAJOR "1")
set(VERSION_MINOR "1-rc2")
set(VERSION_PATCH "")
set(VERSION_MINOR "1")
set(VERSION_PATCH "2-dev")
if(VERSION_PATCH STREQUAL "")
set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR})
else()
+21 -1
View File
@@ -13,7 +13,27 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
(file 'ReleaseNotes.asciidoc' in sources).
== Version 1.1 (under dev)
== Version 1.1.1 (2015-01-25)
=== Bugs fixed
* core: fix random error when creating symbolic link weechat-curses on
make install with cmake (bug #40313)
* core: fix crash when a root bar has conditions different from
active/inactive/nicklist (closes #317)
* irc: don't close channel buffer on second /part when option
irc.look.part_closes_buffer is off (closes #313)
* irc: fix /join on a channel buffer opened with autojoin but which failed to
join
* irc: send QUIT to server and no PART for channels when the server buffer
is closed (closes #294)
* irc: fix order of channel buffers opened when option irc.look.server_buffer
is set to "independent", irc.look.buffer_open_before_autojoin to "on" and
irc.look.new_channel_position to "near_server" (closes #303)
* irc: fix crash in buffer close when server name is the same as a channel name
(closes #305)
== Version 1.1 (2015-01-11)
=== New features
+1 -1
View File
@@ -24,7 +24,7 @@ image:https://travis-ci.org/weechat/weechat.svg?branch=master["Build Status", li
* Developed from scratch.
* Free software, released under GPLv3.
image::http://static.weechat.org/images/screenshots/weechat/medium/weechat_2013-04-27_phlux_shadow.png[align="center"]
image::https://weechat.org/media/images/screenshots/weechat/medium/weechat_2013-04-27_phlux_shadow.png[align="center"]
== Install
+5 -1
View File
@@ -15,7 +15,11 @@ https://weechat.org/files/changelog/ChangeLog-devel.html[ChangeLog]
(file 'ChangeLog.asciidoc' in sources).
== Version 1.1 (under dev)
== Version 1.1.1 (2015-01-25)
Bug fix and maintenance release.
== Version 1.1 (2015-01-11)
=== New format for regex replacement in triggers
+1 -1
View File
@@ -24,7 +24,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.56)
AC_INIT(WeeChat, 1.1-rc2, flashcode@flashtux.org)
AC_INIT(WeeChat, 1.1.2-dev, flashcode@flashtux.org)
AC_CONFIG_SRCDIR([configure.ac])
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE([foreign])
+4 -5
View File
@@ -860,16 +860,15 @@ Przykłady wypełnień paska 'nicklist':
[[bar_conditions]]
==== Warunki
// TRANSLATION MISSING
The option 'conditions' is a string which is evaluated to know if the bar
must be displayed or not.
Opcja 'conditions' jest jest przetwarzana w celu sprawdzenia czy pasek ma być
wyświetlony czy nie.
Ciąg może być:
Dostępne opcje:
* 'active': okno musi być aktywne
* 'inactive': okno musi być nieaktywne
* 'nicklist': bufor wyświetlany w oknie musi mieć listę nicków
* wyrażenie: jest wykonywane jako logiczne (zobacz komendę
* wyrażenie: jest wykonywane jako wyrażenie logiczne (zobacz komendę
<<command_weechat_eval,/eval>>)
Dla wyrażeń dostępne są następujące zmienne:
+3
View File
@@ -659,6 +659,9 @@ util_file_get_content (const char *filename)
FILE *f;
size_t count, fp;
if (!filename)
return NULL;
buffer = NULL;
fp = 0;
+16 -8
View File
@@ -84,15 +84,23 @@ add_dependencies(${EXECUTABLE} weechat_gui_curses)
# Due to circular references, we must link two times with libweechat_core.a
target_link_libraries(${EXECUTABLE} ${STATIC_LIBS} weechat_gui_curses ${EXTRA_LIBS} ${STATIC_LIBS})
install(TARGETS ${EXECUTABLE} RUNTIME DESTINATION bin)
# Create a symbolic link weechat-curses -> weechat
# This link is created for compatibility with old versions on /upgrade.
# It may be removed in future.
install(CODE "
EXECUTE_PROCESS(
COMMAND ${CMAKE_COMMAND} -E remove -f \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/weechat-curses${CMAKE_EXECUTABLE_SUFFIX}\"
COMMAND ${CMAKE_COMMAND} -E create_symlink weechat${CMAKE_EXECUTABLE_SUFFIX} \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/weechat-curses${CMAKE_EXECUTABLE_SUFFIX}\"
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE}-curses${CMAKE_EXECUTABLE_SUFFIX}
COMMAND ${CMAKE_COMMAND} -E remove -f "weechat-curses${CMAKE_EXECUTABLE_SUFFIX}"
COMMAND ${CMAKE_COMMAND} -E create_symlink "weechat${CMAKE_EXECUTABLE_SUFFIX}" "weechat-curses${CMAKE_EXECUTABLE_SUFFIX}"
DEPENDS ${EXECUTABLE}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Creating symbolic link ${EXECUTABLE}-curses${CMAKE_EXECUTABLE_SUFFIX}"
)
LIST(APPEND CMAKE_INSTALL_MANIFEST_FILES \"${CMAKE_INSTALL_PREFIX}/bin/weechat-curses${CMAKE_EXECUTABLE_SUFFIX}\")
")
add_custom_target(${EXECUTABLE}-curses${CMAKE_EXECUTABLE_SUFFIX} ALL
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE}-curses${CMAKE_EXECUTABLE_SUFFIX}
)
add_dependencies(${EXECUTABLE}-curses${CMAKE_EXECUTABLE_SUFFIX} ${EXECUTABLE})
list(APPEND CMAKE_INSTALL_MANIFEST_FILES "${CMAKE_INSTALL_PREFIX}/bin/weechat-curses${CMAKE_EXECUTABLE_SUFFIX}")
# Install executable and symbolic link
install(TARGETS ${EXECUTABLE} RUNTIME DESTINATION bin)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE}-curses${CMAKE_EXECUTABLE_SUFFIX} DESTINATION bin)
+4 -3
View File
@@ -402,7 +402,7 @@ gui_bar_check_conditions (struct t_gui_bar *bar,
}
else if (string_strcasecmp (conditions, "nicklist") == 0)
{
if (window->buffer && !window->buffer->nicklist)
if (window && window->buffer && !window->buffer->nicklist)
return 0;
}
else if (conditions[0])
@@ -415,7 +415,8 @@ gui_bar_check_conditions (struct t_gui_bar *bar,
if (pointers)
{
hashtable_set (pointers, "window", window);
hashtable_set (pointers, "buffer", window->buffer);
if (window)
hashtable_set (pointers, "buffer", window->buffer);
}
extra_vars = hashtable_new (32,
WEECHAT_HASHTABLE_STRING,
@@ -429,7 +430,7 @@ gui_bar_check_conditions (struct t_gui_bar *bar,
hashtable_set (extra_vars, "inactive",
(gui_current_window && (gui_current_window != window)) ? "1" : "0");
hashtable_set (extra_vars, "nicklist",
(window->buffer && window->buffer->nicklist) ? "1" : "0");
(window && window->buffer && window->buffer->nicklist) ? "1" : "0");
}
options = hashtable_new (32,
WEECHAT_HASHTABLE_STRING,
+8 -4
View File
@@ -141,16 +141,20 @@ irc_buffer_close_cb (void *data, struct t_gui_buffer *buffer)
{
if (ptr_server)
{
/* send PART on all channels for server, then disconnect from server */
if (!ptr_server->disconnected)
{
/* send QUIT to server, then disconnect */
irc_command_quit_server (ptr_server, NULL);
irc_server_disconnect (ptr_server, 0, 0);
}
ptr_channel = ptr_server->channels;
while (ptr_channel)
{
next_channel = ptr_channel->next_channel;
weechat_buffer_close (ptr_channel->buffer);
if (ptr_channel->buffer != buffer)
weechat_buffer_close (ptr_channel->buffer);
ptr_channel = next_channel;
}
if (!ptr_server->disconnected)
irc_server_disconnect (ptr_server, 0, 0);
ptr_server->buffer = NULL;
}
}
+61 -42
View File
@@ -76,59 +76,69 @@ irc_channel_move_near_server (struct t_irc_server *server, int channel_type,
int number, number_channel, number_last_channel, number_last_private;
int number_found;
char str_number[32];
struct t_irc_channel *ptr_channel;
const char *ptr_type, *ptr_server_name;
struct t_hdata *hdata_buffer;
struct t_gui_buffer *ptr_buffer;
number = weechat_buffer_get_integer (buffer, "number");
number_last_channel = 0;
number_last_private = 0;
number_found = 0;
if (server->channels)
hdata_buffer = weechat_hdata_get ("buffer");
ptr_buffer = weechat_hdata_get_list (hdata_buffer, "gui_buffers");
while (ptr_buffer)
{
/* search last channel/pv number for server */
for (ptr_channel = server->channels; ptr_channel;
ptr_channel = ptr_channel->next_channel)
if ((ptr_buffer != buffer)
&& (weechat_buffer_get_pointer (ptr_buffer,
"plugin") == weechat_irc_plugin))
{
if (ptr_channel->buffer)
ptr_type = weechat_buffer_get_string (ptr_buffer,
"localvar_type");
ptr_server_name = weechat_buffer_get_string (ptr_buffer,
"localvar_server");
number_channel = weechat_buffer_get_integer (ptr_buffer,
"number");
if (ptr_type && ptr_type[0]
&& ptr_server_name && ptr_server_name[0]
&& (strcmp (ptr_server_name, server->name) == 0))
{
number_channel = weechat_buffer_get_integer (
ptr_channel->buffer, "number");
switch (ptr_channel->type)
if (strcmp (ptr_type, "channel") == 0)
{
case IRC_CHANNEL_TYPE_CHANNEL:
if (number_channel > number_last_channel)
number_last_channel = number_channel;
break;
case IRC_CHANNEL_TYPE_PRIVATE:
if (number_channel > number_last_private)
number_last_private = number_channel;
break;
if (number_channel > number_last_channel)
number_last_channel = number_channel;
}
else if (strcmp (ptr_type, "private") == 0)
{
if (number_channel > number_last_private)
number_last_private = number_channel;
}
}
}
/* use last channel/pv number + 1 */
switch (channel_type)
{
case IRC_CHANNEL_TYPE_CHANNEL:
if (number_last_channel > 0)
number_found = number_last_channel + 1;
break;
case IRC_CHANNEL_TYPE_PRIVATE:
if (number_last_private > 0)
number_found = number_last_private + 1;
else if (number_last_channel > 0)
number_found = number_last_channel + 1;
break;
}
/* move to next buffer */
ptr_buffer = weechat_hdata_move (hdata_buffer, ptr_buffer, 1);
}
else
/* use last channel/pv number + 1 */
switch (channel_type)
{
if (weechat_config_integer (irc_config_look_server_buffer) ==
IRC_CONFIG_LOOK_SERVER_BUFFER_INDEPENDENT)
{
number_found = weechat_buffer_get_integer (server->buffer, "number") + 1;
}
case IRC_CHANNEL_TYPE_CHANNEL:
if (number_last_channel > 0)
number_found = number_last_channel + 1;
break;
case IRC_CHANNEL_TYPE_PRIVATE:
if (number_last_private > 0)
number_found = number_last_private + 1;
else if (number_last_channel > 0)
number_found = number_last_channel + 1;
break;
}
if ((number_found == 0)
&& (weechat_config_integer (irc_config_look_server_buffer) ==
IRC_CONFIG_LOOK_SERVER_BUFFER_INDEPENDENT))
{
number_found = weechat_buffer_get_integer (server->buffer, "number") + 1;
}
/* switch to number found */
@@ -169,12 +179,12 @@ irc_channel_search (struct t_irc_server *server, const char *channel_name)
*/
struct t_gui_buffer *
irc_channel_search_buffer (struct t_irc_server *server,
irc_channel_search_buffer (struct t_irc_server *server, int channel_type,
const char *channel_name)
{
struct t_hdata *hdata_buffer;
struct t_gui_buffer *ptr_buffer;
const char *ptr_server_name, *ptr_channel_name;
const char *ptr_type, *ptr_server_name, *ptr_channel_name;
hdata_buffer = weechat_hdata_get ("buffer");
ptr_buffer = weechat_hdata_get_list (hdata_buffer, "gui_buffers");
@@ -184,12 +194,18 @@ irc_channel_search_buffer (struct t_irc_server *server,
if (weechat_buffer_get_pointer (ptr_buffer,
"plugin") == weechat_irc_plugin)
{
ptr_type = weechat_buffer_get_string (ptr_buffer, "localvar_type");
ptr_server_name = weechat_buffer_get_string (ptr_buffer,
"localvar_server");
ptr_channel_name = weechat_buffer_get_string (ptr_buffer,
"localvar_channel");
if (ptr_server_name && ptr_server_name[0]
if (ptr_type && ptr_type[0]
&& ptr_server_name && ptr_server_name[0]
&& ptr_channel_name && ptr_channel_name[0]
&& (((channel_type == IRC_CHANNEL_TYPE_CHANNEL)
&& (strcmp (ptr_type, "channel") == 0))
|| ((channel_type == IRC_CHANNEL_TYPE_PRIVATE)
&& (strcmp (ptr_type, "private") == 0)))
&& (strcmp (ptr_server_name, server->name) == 0)
&& ((irc_server_strcasecmp (server, ptr_channel_name,
channel_name) == 0)))
@@ -227,9 +243,12 @@ irc_channel_create_buffer (struct t_irc_server *server,
buffer_name = irc_buffer_build_name (server->name, channel_name);
ptr_buffer = irc_channel_search_buffer (server, channel_name);
ptr_buffer = irc_channel_search_buffer (server, channel_type,
channel_name);
if (ptr_buffer)
{
weechat_nicklist_remove_all (ptr_buffer);
}
else
{
ptr_buffer_for_merge = NULL;
+39 -6
View File
@@ -2330,6 +2330,7 @@ irc_command_join (void *data, struct t_gui_buffer *buffer, int argc,
char **argv, char **argv_eol)
{
int i, arg_channels, noswitch;
const char *ptr_type, *ptr_server_name, *ptr_channel_name;
IRC_BUFFER_GET_SERVER_CHANNEL(buffer);
@@ -2363,6 +2364,18 @@ irc_command_join (void *data, struct t_gui_buffer *buffer, int argc,
}
}
if (!ptr_server)
{
if ((weechat_buffer_get_pointer (buffer,
"plugin") == weechat_irc_plugin))
{
ptr_server_name = weechat_buffer_get_string (buffer,
"localvar_server");
if (ptr_server_name)
ptr_server = irc_server_search (ptr_server_name);
}
}
IRC_COMMAND_CHECK_SERVER("join", 1);
if (arg_channels < argc)
@@ -2379,7 +2392,21 @@ irc_command_join (void *data, struct t_gui_buffer *buffer, int argc,
1, noswitch);
}
else
WEECHAT_COMMAND_ERROR;
{
ptr_type = weechat_buffer_get_string (buffer, "localvar_type");
ptr_channel_name = weechat_buffer_get_string (buffer,
"localvar_channel");
if ((weechat_buffer_get_pointer (buffer,
"plugin") == weechat_irc_plugin)
&& ptr_type && ptr_channel_name
&& (strcmp (ptr_type, "channel") == 0))
{
irc_command_join_server (ptr_server, ptr_channel_name,
1, noswitch);
}
else
WEECHAT_COMMAND_ERROR;
}
}
return WEECHAT_RC_OK;
@@ -3623,6 +3650,7 @@ irc_command_part (void *data, struct t_gui_buffer *buffer, int argc,
{
if (irc_channel_is_channel (ptr_server, argv[1]))
{
ptr_channel = irc_channel_search (ptr_server, argv[1]);
channel_name = argv[1];
pos_args = argv_eol[2];
}
@@ -3652,15 +3680,20 @@ irc_command_part (void *data, struct t_gui_buffer *buffer, int argc,
weechat_prefix ("error"), IRC_PLUGIN_NAME, "part");
return WEECHAT_RC_OK;
}
if (!ptr_channel->nicks)
{
weechat_buffer_close (ptr_channel->buffer);
return WEECHAT_RC_OK;
}
channel_name = ptr_channel->name;
pos_args = NULL;
}
if (ptr_channel && !ptr_channel->nicks)
{
if ((ptr_channel->type == IRC_CHANNEL_TYPE_PRIVATE)
|| weechat_config_boolean (irc_config_look_part_closes_buffer))
{
weechat_buffer_close (ptr_channel->buffer);
}
return WEECHAT_RC_OK;
}
irc_command_part_channel (ptr_server, channel_name, pos_args);
return WEECHAT_RC_OK;
+2 -2
View File
@@ -4422,12 +4422,12 @@ int
irc_server_auto_connect_timer_cb (void *data, int remaining_calls)
{
struct t_irc_server *ptr_server;
int auto_connect;
void *auto_connect;
/* make C compiler happy */
(void) remaining_calls;
auto_connect = (int)data;
auto_connect = data;
for (ptr_server = irc_servers; ptr_server;
ptr_server = ptr_server->next_server)
+7 -1
View File
@@ -23,7 +23,7 @@
#
%define name weechat
%define version 1.0
%define version 1.1.1
%define release 1
Name: %{name}
@@ -77,6 +77,12 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/share/icons/hicolor/32x32/apps/weechat.png
%changelog
* Sun Jan 25 2015 Sébastien Helleu <flashcode@flashtux.org> 1.1.1-1
- Released version 1.1.1
* Sun Jan 11 2015 Sébastien Helleu <flashcode@flashtux.org> 1.1-1
- Released version 1.1
* Sun Sep 28 2014 Sébastien Helleu <flashcode@flashtux.org> 1.0.1-1
- Released version 1.0.1
* Fri Aug 15 2014 Sébastien Helleu <flashcode@flashtux.org> 1.0-1
- Released version 1.0
* Sun Feb 09 2014 Sébastien Helleu <flashcode@flashtux.org> 0.4.3-1