mirror of
https://github.com/weechat/weechat.git
synced 2026-07-03 08:13:14 +02:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4e6687759a | |||
| f968bb9c91 | |||
| 6b1d55203b | |||
| 65cdc2603a | |||
| 7640273c30 | |||
| e87d2b4717 | |||
| b80c58fb39 | |||
| b06e3ed68e | |||
| c3c2609acd | |||
| 6247e437c0 |
@@ -84,7 +84,6 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
- macos-12
|
- macos-12
|
||||||
- macos-11
|
|
||||||
config:
|
config:
|
||||||
- { name: "gcc", cc: "gcc", cxx: "g++" }
|
- { name: "gcc", cc: "gcc", cxx: "g++" }
|
||||||
- { name: "clang", cc: "clang", cxx: "clang++" }
|
- { name: "clang", cc: "clang", cxx: "clang++" }
|
||||||
|
|||||||
@@ -10,6 +10,23 @@ This document lists all the changes for each version. +
|
|||||||
For a list of important changes that require manual actions, please look at release notes.
|
For a list of important changes that require manual actions, please look at release notes.
|
||||||
|
|
||||||
|
|
||||||
|
[[v4.0.9]]
|
||||||
|
== Version 4.0.9 (under dev)
|
||||||
|
|
||||||
|
Bug fixes::
|
||||||
|
|
||||||
|
* core, relay: fix include directory of libzstd
|
||||||
|
* core: add missing mouse events "alt-ctrl-button2" and "alt-ctrl-button3"
|
||||||
|
* irc: fix crash in split of IRC message containing a newline if the server is not given
|
||||||
|
* python: fix truncation of unsigned long long integer returned by function string_parse_size
|
||||||
|
* script: always display list of scripts when searching scripts with `/script search` (issue #2077)
|
||||||
|
* tcl: fix truncation of long integer returned by function hdata_long
|
||||||
|
* trigger: fix memory leak when adding a new trigger with `/trigger` command
|
||||||
|
|
||||||
|
Build::
|
||||||
|
|
||||||
|
* ruby: add detection of Ruby 3.3
|
||||||
|
|
||||||
[[v4.0.8]]
|
[[v4.0.8]]
|
||||||
== Version 4.0.8 (2024-01-20)
|
== Version 4.0.8 (2024-01-20)
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ if(PKG_CONFIG_FOUND)
|
|||||||
# set specific search path for macOS
|
# set specific search path for macOS
|
||||||
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/ruby/lib/pkgconfig")
|
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/ruby/lib/pkgconfig")
|
||||||
endif()
|
endif()
|
||||||
pkg_search_module(RUBY ruby-3.2 ruby-3.1 ruby-3.0 ruby-2.7 ruby-2.6 ruby-2.5 ruby-2.4 ruby-2.3 ruby-2.2 ruby-2.1 ruby-2.0 ruby-1.9 ruby)
|
pkg_search_module(RUBY ruby-3.3 ruby-3.2 ruby-3.1 ruby-3.0 ruby-2.7 ruby-2.6 ruby-2.5 ruby-2.4 ruby-2.3 ruby-2.2 ruby-2.1 ruby-2.0 ruby-1.9 ruby)
|
||||||
if(RUBY_FOUND AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
if(RUBY_FOUND AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||||
# FIXME: weird hack: hardcoding the Ruby lib location on macOS
|
# FIXME: weird hack: hardcoding the Ruby lib location on macOS
|
||||||
set(RUBY_LDFLAGS "${RUBY_LDFLAGS} -L/usr/local/opt/ruby/lib")
|
set(RUBY_LDFLAGS "${RUBY_LDFLAGS} -L/usr/local/opt/ruby/lib")
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ include_directories(${GNUTLS_INCLUDE_PATH})
|
|||||||
|
|
||||||
include_directories(${CURL_INCLUDE_DIRS})
|
include_directories(${CURL_INCLUDE_DIRS})
|
||||||
|
|
||||||
include_directories(${ZSTD_INCLUDE_DIRS})
|
include_directories(${LIBZSTD_INCLUDE_DIRS})
|
||||||
|
|
||||||
include_directories("${CMAKE_BINARY_DIR}")
|
include_directories("${CMAKE_BINARY_DIR}")
|
||||||
add_library(weechat_core STATIC ${LIB_CORE_SRC})
|
add_library(weechat_core STATIC ${LIB_CORE_SRC})
|
||||||
|
|||||||
@@ -74,6 +74,8 @@ char *gui_mouse_button_codes[][2] =
|
|||||||
{ "*", "alt-button2" },
|
{ "*", "alt-button2" },
|
||||||
{ ")", "alt-button3" },
|
{ ")", "alt-button3" },
|
||||||
{ "8", "alt-ctrl-button1" },
|
{ "8", "alt-ctrl-button1" },
|
||||||
|
{ ":", "alt-ctrl-button2" },
|
||||||
|
{ "9", "alt-ctrl-button3" },
|
||||||
{ NULL, NULL } };
|
{ NULL, NULL } };
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1683,8 +1683,9 @@ irc_message_split (struct t_irc_server *server, const char *message)
|
|||||||
}
|
}
|
||||||
|
|
||||||
multiline = (
|
multiline = (
|
||||||
((weechat_strcasecmp (command, "privmsg") == 0)
|
server
|
||||||
|| (weechat_strcasecmp (command, "notice") == 0))
|
&& ((weechat_strcasecmp (command, "privmsg") == 0)
|
||||||
|
|| (weechat_strcasecmp (command, "notice") == 0))
|
||||||
&& message
|
&& message
|
||||||
&& strchr (message, '\n')
|
&& strchr (message, '\n')
|
||||||
&& (index_args + 1 <= argc - 1)
|
&& (index_args + 1 <= argc - 1)
|
||||||
|
|||||||
@@ -80,8 +80,8 @@
|
|||||||
return PyLong_FromLong((long)__int)
|
return PyLong_FromLong((long)__int)
|
||||||
#define API_RETURN_LONG(__long) \
|
#define API_RETURN_LONG(__long) \
|
||||||
return PyLong_FromLong(__long)
|
return PyLong_FromLong(__long)
|
||||||
#define API_RETURN_LONGLONG(__longlong) \
|
#define API_RETURN_ULONGLONG(__ulonglong) \
|
||||||
return PyLong_FromLongLong(__longlong)
|
return PyLong_FromUnsignedLongLong(__ulonglong)
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -376,14 +376,14 @@ API_FUNC(string_parse_size)
|
|||||||
char *size;
|
char *size;
|
||||||
unsigned long long value;
|
unsigned long long value;
|
||||||
|
|
||||||
API_INIT_FUNC(1, "string_parse_size", API_RETURN_LONGLONG(0));
|
API_INIT_FUNC(1, "string_parse_size", API_RETURN_ULONGLONG(0));
|
||||||
size = NULL;
|
size = NULL;
|
||||||
if (!PyArg_ParseTuple (args, "s", &size))
|
if (!PyArg_ParseTuple (args, "s", &size))
|
||||||
API_WRONG_ARGS(API_RETURN_LONGLONG(0));
|
API_WRONG_ARGS(API_RETURN_ULONGLONG(0));
|
||||||
|
|
||||||
value = weechat_string_parse_size (size);
|
value = weechat_string_parse_size (size);
|
||||||
|
|
||||||
API_RETURN_LONGLONG(value);
|
API_RETURN_ULONGLONG(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
API_FUNC(string_color_code_size)
|
API_FUNC(string_color_code_size)
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ list(APPEND LINK_LIBS ${GCRYPT_LDFLAGS})
|
|||||||
|
|
||||||
list(APPEND LINK_LIBS ${ZLIB_LIBRARY})
|
list(APPEND LINK_LIBS ${ZLIB_LIBRARY})
|
||||||
|
|
||||||
include_directories(${ZSTD_INCLUDE_DIRS})
|
include_directories(${LIBZSTD_INCLUDE_DIRS})
|
||||||
list(APPEND LINK_LIBS ${LIBZSTD_LDFLAGS})
|
list(APPEND LINK_LIBS ${LIBZSTD_LDFLAGS})
|
||||||
|
|
||||||
target_link_libraries(relay ${LINK_LIBS} coverage_config)
|
target_link_libraries(relay ${LINK_LIBS} coverage_config)
|
||||||
|
|||||||
@@ -1314,6 +1314,11 @@ script_action_run_all ()
|
|||||||
script_buffer_open ();
|
script_buffer_open ();
|
||||||
script_buffer_refresh (1);
|
script_buffer_refresh (1);
|
||||||
}
|
}
|
||||||
|
if (script_buffer_detail_script)
|
||||||
|
{
|
||||||
|
/* back to list of scripts */
|
||||||
|
script_buffer_show_detail_script (NULL);
|
||||||
|
}
|
||||||
weechat_buffer_set (script_buffer, "display", "1");
|
weechat_buffer_set (script_buffer, "display", "1");
|
||||||
}
|
}
|
||||||
else if (weechat_strcmp (argv[0], "list") == 0)
|
else if (weechat_strcmp (argv[0], "list") == 0)
|
||||||
|
|||||||
@@ -5510,7 +5510,8 @@ API_FUNC(hdata_long)
|
|||||||
{
|
{
|
||||||
Tcl_Obj *objp;
|
Tcl_Obj *objp;
|
||||||
char *hdata, *pointer, *name;
|
char *hdata, *pointer, *name;
|
||||||
int result, i;
|
long result;
|
||||||
|
int i;
|
||||||
|
|
||||||
API_INIT_FUNC(1, "hdata_long", API_RETURN_LONG(0));
|
API_INIT_FUNC(1, "hdata_long", API_RETURN_LONG(0));
|
||||||
if (objc < 4)
|
if (objc < 4)
|
||||||
|
|||||||
@@ -656,16 +656,6 @@ trigger_command_trigger (const void *pointer, void *data,
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ptr_trigger = trigger_alloc (sargv[0]);
|
|
||||||
if (!ptr_trigger)
|
|
||||||
{
|
|
||||||
weechat_printf_date_tags (
|
|
||||||
NULL, 0, "no_trigger",
|
|
||||||
_("%s%s: failed to create trigger \"%s\""),
|
|
||||||
weechat_prefix ("error"), TRIGGER_PLUGIN_NAME,
|
|
||||||
sargv[0]);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
ptr_trigger = trigger_new (
|
ptr_trigger = trigger_new (
|
||||||
sargv[0], /* name */
|
sargv[0], /* name */
|
||||||
(weechat_strcmp (argv[1], "addoff") == 0) ? "off" : "on",
|
(weechat_strcmp (argv[1], "addoff") == 0) ? "off" : "on",
|
||||||
|
|||||||
@@ -1997,6 +1997,21 @@ TEST(IrcMessage, Split)
|
|||||||
hashtable_remove (server->cap_list, "batch");
|
hashtable_remove (server->cap_list, "batch");
|
||||||
hashtable_remove (server->cap_list, "draft/multiline");
|
hashtable_remove (server->cap_list, "draft/multiline");
|
||||||
|
|
||||||
|
/* PRIVMSG with newlines but no server: BATCH is not used */
|
||||||
|
hashtable = irc_message_split (NULL, "PRIVMSG #channel :test\n\nline 3");
|
||||||
|
CHECK(hashtable);
|
||||||
|
LONGS_EQUAL(7, hashtable->items_count);
|
||||||
|
STRCMP_EQUAL("3", (const char *)hashtable_get (hashtable, "count"));
|
||||||
|
STRCMP_EQUAL("PRIVMSG #channel :test",
|
||||||
|
(const char *)hashtable_get (hashtable, "msg1"));
|
||||||
|
STRCMP_EQUAL("test", (const char *)hashtable_get (hashtable, "args1"));
|
||||||
|
STRCMP_EQUAL("PRIVMSG #channel :",
|
||||||
|
(const char *)hashtable_get (hashtable, "msg2"));
|
||||||
|
STRCMP_EQUAL("", (const char *)hashtable_get (hashtable, "args2"));
|
||||||
|
STRCMP_EQUAL("PRIVMSG #channel :line 3",
|
||||||
|
(const char *)hashtable_get (hashtable, "msg3"));
|
||||||
|
STRCMP_EQUAL("line 3", (const char *)hashtable_get (hashtable, "args3"));
|
||||||
|
|
||||||
/* 005: no split */
|
/* 005: no split */
|
||||||
hashtable = irc_message_split (server, "005 nick " MSG_005);
|
hashtable = irc_message_split (server, "005 nick " MSG_005);
|
||||||
CHECK(hashtable);
|
CHECK(hashtable);
|
||||||
|
|||||||
+1
-1
@@ -40,7 +40,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
WEECHAT_STABLE="4.0.8"
|
WEECHAT_STABLE="4.0.8"
|
||||||
WEECHAT_DEVEL="4.0.8"
|
WEECHAT_DEVEL="4.0.9-dev"
|
||||||
|
|
||||||
STABLE_MAJOR=$(echo "${WEECHAT_STABLE}" | cut -d"." -f1)
|
STABLE_MAJOR=$(echo "${WEECHAT_STABLE}" | cut -d"." -f1)
|
||||||
STABLE_MINOR=$(echo "${WEECHAT_STABLE}" | cut -d"." -f2)
|
STABLE_MINOR=$(echo "${WEECHAT_STABLE}" | cut -d"." -f2)
|
||||||
|
|||||||
Reference in New Issue
Block a user