mirror of
https://github.com/irssi/irssi.git
synced 2026-08-09 20:00:23 +02:00
Compare commits
7 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
248a1591a2 | ||
|
|
27c02a2d96 | ||
|
|
bb7e81438d | ||
|
|
fddcbe56c9 | ||
|
|
309ea88252 | ||
|
|
24547829e7 | ||
|
|
bb600a6575 |
9 changed files with 79 additions and 17 deletions
21
NEWS
21
NEWS
|
|
@ -1,3 +1,24 @@
|
||||||
|
v1.2.1 2019-06-29 The Irssi team <staff@irssi.org>
|
||||||
|
! Contains all changes from 1.1.3
|
||||||
|
- Fix a test on big endian machines (#1014)
|
||||||
|
- Fix the compile time conditionality of wcwidth
|
||||||
|
implementation (#1019, gentoo#677804, #720)
|
||||||
|
- Fix /save no longer working on old Solaris (pre
|
||||||
|
POSIX.1-2008) (#1042, #1043)
|
||||||
|
- Fix regression of #764 where display of 8-bit (legacy
|
||||||
|
encoding) in the input prompt was broken (#1018,
|
||||||
|
#1057). Initial patch by Артём Курашов
|
||||||
|
|
||||||
|
v1.1.3 2019-06-29 The Irssi team <staff@irssi.org>
|
||||||
|
! Contains all changes from 1.0.8
|
||||||
|
- Fix regression of #779 where autolog_ignore_targets would
|
||||||
|
not matching itemless windows anymore (#1012, #1013)
|
||||||
|
|
||||||
|
v1.0.8 2019-06-29 The Irssi team <staff@irssi.org>
|
||||||
|
- Fix a use after free issue when sending the SASL login on
|
||||||
|
(automatic and manual) reconnects (#1055, #1058). Reported
|
||||||
|
by ilbelkyr
|
||||||
|
|
||||||
v1.2.0 2019-02-11 The Irssi team <staff@irssi.org>
|
v1.2.0 2019-02-11 The Irssi team <staff@irssi.org>
|
||||||
! Contains all changes from 1.1.2
|
! Contains all changes from 1.1.2
|
||||||
* Improved the /STATUSBAR commands (#858)
|
* Improved the /STATUSBAR commands (#858)
|
||||||
|
|
|
||||||
26
configure.ac
26
configure.ac
|
|
@ -1,4 +1,4 @@
|
||||||
AC_INIT(irssi, 1.2.0)
|
AC_INIT(irssi, 1.2.1)
|
||||||
AC_CONFIG_SRCDIR([src])
|
AC_CONFIG_SRCDIR([src])
|
||||||
AC_CONFIG_AUX_DIR(build-aux)
|
AC_CONFIG_AUX_DIR(build-aux)
|
||||||
AC_PREREQ(2.50)
|
AC_PREREQ(2.50)
|
||||||
|
|
@ -181,6 +181,15 @@ AC_ARG_ENABLE(gregex,
|
||||||
fi,
|
fi,
|
||||||
want_gregex=yes)
|
want_gregex=yes)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(utf8proc,
|
||||||
|
[ --disable-utf8proc Build without Julia's utf8proc],
|
||||||
|
if test x$enableval = xno ; then
|
||||||
|
want_utf8proc=no
|
||||||
|
else
|
||||||
|
want_utf8proc=yes
|
||||||
|
fi,
|
||||||
|
want_utf8proc=yes)
|
||||||
|
|
||||||
AC_ARG_WITH(capsicum,
|
AC_ARG_WITH(capsicum,
|
||||||
[ --with-capsicum Build with Capsicum support],
|
[ --with-capsicum Build with Capsicum support],
|
||||||
if test x$withval = xno; then
|
if test x$withval = xno; then
|
||||||
|
|
@ -329,7 +338,18 @@ PKG_CHECK_MODULES([OPENSSL], [openssl], [
|
||||||
dnl **
|
dnl **
|
||||||
dnl ** utf8proc
|
dnl ** utf8proc
|
||||||
dnl **
|
dnl **
|
||||||
AC_CHECK_LIB([utf8proc], [utf8proc_version])
|
if test "x$want_utf8proc" != "xno"; then
|
||||||
|
AC_CHECK_HEADER([utf8proc.h], [
|
||||||
|
AC_CHECK_LIB([utf8proc], [utf8proc_version], [
|
||||||
|
want_utf8proc=yes
|
||||||
|
LIBS="$LIBS -lutf8proc"
|
||||||
|
], [
|
||||||
|
want_utf8proc="no, library not found"
|
||||||
|
])
|
||||||
|
], [
|
||||||
|
want_utf8proc="no, library header not found"
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
|
||||||
dnl **
|
dnl **
|
||||||
dnl ** curses checks
|
dnl ** curses checks
|
||||||
|
|
@ -821,7 +841,7 @@ echo "Building with 64bit DCC support .. : $offt_64bit"
|
||||||
echo "Building with true color support.. : $want_truecolor"
|
echo "Building with true color support.. : $want_truecolor"
|
||||||
echo "Building with GRegex ............. : $want_gregex"
|
echo "Building with GRegex ............. : $want_gregex"
|
||||||
echo "Building with Capsicum ........... : $want_capsicum"
|
echo "Building with Capsicum ........... : $want_capsicum"
|
||||||
echo "Building with utf8proc ........... : $ac_cv_lib_utf8proc_utf8proc_version"
|
echo "Building with utf8proc ........... : $want_utf8proc"
|
||||||
if test "x$want_otr" = "xstatic"; then
|
if test "x$want_otr" = "xstatic"; then
|
||||||
echo "Building with OTR support ........ : static (in irssi binary)"
|
echo "Building with OTR support ........ : static (in irssi binary)"
|
||||||
elif test "x$want_otr" = "xmodule"; then
|
elif test "x$want_otr" = "xmodule"; then
|
||||||
|
|
|
||||||
|
|
@ -486,9 +486,6 @@ gboolean strarray_find_dest(char **array, const TEXT_DEST_REC *dest)
|
||||||
strarray_find(array, dest->window->name) != -1 ? TRUE : FALSE;
|
strarray_find(array, dest->window->name) != -1 ? TRUE : FALSE;
|
||||||
|
|
||||||
item = window_item_find_window(dest->window, dest->server, dest->target);
|
item = window_item_find_window(dest->window, dest->server, dest->target);
|
||||||
if (item == NULL) {
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
server_tag_len = dest->server_tag != NULL ? strlen(dest->server_tag) : 0;
|
server_tag_len = dest->server_tag != NULL ? strlen(dest->server_tag) : 0;
|
||||||
for (tmp = array; *tmp != NULL; tmp++) {
|
for (tmp = array; *tmp != NULL; tmp++) {
|
||||||
|
|
@ -507,11 +504,11 @@ gboolean strarray_find_dest(char **array, const TEXT_DEST_REC *dest)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
} else if (g_ascii_strcasecmp(str, dest->target) == 0) {
|
} else if (g_ascii_strcasecmp(str, dest->target) == 0) {
|
||||||
return TRUE;
|
return TRUE;
|
||||||
} else if (item->type == query_type &&
|
} else if (item != NULL && item->type == query_type &&
|
||||||
g_strcmp0(str, dest->target[0] == '=' ? "::dccqueries" :
|
g_strcmp0(str, dest->target[0] == '=' ? "::dccqueries" :
|
||||||
"::queries") == 0) {
|
"::queries") == 0) {
|
||||||
return TRUE;
|
return TRUE;
|
||||||
} else if (item->type == channel_type &&
|
} else if (item != NULL && item->type == channel_type &&
|
||||||
g_strcmp0(str, "::channels") == 0) {
|
g_strcmp0(str, "::channels") == 0) {
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -379,11 +379,19 @@ static void gui_entry_draw_from(GUI_ENTRY_REC *entry, int pos)
|
||||||
if (new_xpos > end_xpos)
|
if (new_xpos > end_xpos)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (entry->hidden)
|
if (entry->hidden) {
|
||||||
g_string_append_c(str, ' ');
|
g_string_append_c(str, ' ');
|
||||||
else if (unichar_isprint(c))
|
} else if (unichar_isprint(c)) {
|
||||||
g_string_append_unichar(str, c);
|
if (entry->utf8) {
|
||||||
else {
|
g_string_append_unichar(str, c);
|
||||||
|
} else if (term_type == TERM_TYPE_BIG5) {
|
||||||
|
if(c > 0xff)
|
||||||
|
g_string_append_c(str, (c >> 8) & 0xff);
|
||||||
|
g_string_append_c(str, c & 0xff);
|
||||||
|
} else {
|
||||||
|
g_string_append_c(str, c);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
g_string_append_c(str, 4);
|
g_string_append_c(str, 4);
|
||||||
g_string_append_c(str, FORMAT_STYLE_REVERSE);
|
g_string_append_c(str, FORMAT_STYLE_REVERSE);
|
||||||
g_string_append_c(str, (c & 127)+'A'-1);
|
g_string_append_c(str, (c & 127)+'A'-1);
|
||||||
|
|
|
||||||
|
|
@ -75,6 +75,8 @@ static void destroy_server_connect(SERVER_CONNECT_REC *conn)
|
||||||
|
|
||||||
g_free_not_null(ircconn->usermode);
|
g_free_not_null(ircconn->usermode);
|
||||||
g_free_not_null(ircconn->alternate_nick);
|
g_free_not_null(ircconn->alternate_nick);
|
||||||
|
g_free_not_null(ircconn->sasl_username);
|
||||||
|
g_free_not_null(ircconn->sasl_password);
|
||||||
}
|
}
|
||||||
|
|
||||||
void irc_core_init(void)
|
void irc_core_init(void)
|
||||||
|
|
|
||||||
|
|
@ -49,8 +49,8 @@ static void sig_server_connect_copy(SERVER_CONNECT_REC **dest,
|
||||||
rec->usermode = g_strdup(src->usermode);
|
rec->usermode = g_strdup(src->usermode);
|
||||||
rec->alternate_nick = g_strdup(src->alternate_nick);
|
rec->alternate_nick = g_strdup(src->alternate_nick);
|
||||||
rec->sasl_mechanism = src->sasl_mechanism;
|
rec->sasl_mechanism = src->sasl_mechanism;
|
||||||
rec->sasl_username = src->sasl_username;
|
rec->sasl_username = g_strdup(src->sasl_username);
|
||||||
rec->sasl_password = src->sasl_password;
|
rec->sasl_password = g_strdup(src->sasl_password);
|
||||||
*dest = (SERVER_CONNECT_REC *) rec;
|
*dest = (SERVER_CONNECT_REC *) rec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -101,8 +101,8 @@ static void sig_server_setup_fill_chatnet(IRC_SERVER_CONNECT_REC *conn,
|
||||||
conn->sasl_mechanism = SASL_MECHANISM_PLAIN;
|
conn->sasl_mechanism = SASL_MECHANISM_PLAIN;
|
||||||
if (ircnet->sasl_username != NULL && *ircnet->sasl_username &&
|
if (ircnet->sasl_username != NULL && *ircnet->sasl_username &&
|
||||||
ircnet->sasl_password != NULL && *ircnet->sasl_password) {
|
ircnet->sasl_password != NULL && *ircnet->sasl_password) {
|
||||||
conn->sasl_username = ircnet->sasl_username;
|
conn->sasl_username = g_strdup(ircnet->sasl_username);
|
||||||
conn->sasl_password = ircnet->sasl_password;
|
conn->sasl_password = g_strdup(ircnet->sasl_password);
|
||||||
} else
|
} else
|
||||||
g_warning("The fields sasl_username and sasl_password are either missing or empty");
|
g_warning("The fields sasl_username and sasl_password are either missing or empty");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -315,6 +315,15 @@ int config_write(CONFIG_REC *rec, const char *fname, int create_mode)
|
||||||
/* expand all symlinks; else we may replace a symlink with a regular file */
|
/* expand all symlinks; else we may replace a symlink with a regular file */
|
||||||
dest_name = realpath(base_name, NULL);
|
dest_name = realpath(base_name, NULL);
|
||||||
|
|
||||||
|
if (errno == EINVAL) {
|
||||||
|
/* variable path length not supported by glibc < 2.3, Solaris < 11 */
|
||||||
|
char resolved_path[PATH_MAX] = { 0 };
|
||||||
|
errno = 0;
|
||||||
|
if ((dest_name = realpath(base_name, resolved_path)) != NULL) {
|
||||||
|
dest_name = g_strdup(dest_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (dest_name == NULL) {
|
if (dest_name == NULL) {
|
||||||
if (errno == ENOENT) {
|
if (errno == ENOENT) {
|
||||||
dest_name = g_strdup(base_name);
|
dest_name = g_strdup(base_name);
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,12 @@ static void test_paste_join_multiline(const paste_join_multiline_test_case *test
|
||||||
g_test_message("INPUT: \"%s\"", (t1 = g_strescape(test->input, NULL)));
|
g_test_message("INPUT: \"%s\"", (t1 = g_strescape(test->input, NULL)));
|
||||||
g_free(t1);
|
g_free(t1);
|
||||||
|
|
||||||
buffer->data = (char *) g_utf8_to_ucs4_fast(test->input, -1, (glong *) &buffer->len);
|
{
|
||||||
|
glong buf_len;
|
||||||
|
buffer->data = (char *) g_utf8_to_ucs4_fast(test->input, -1, &buf_len);
|
||||||
|
buffer->len = buf_len;
|
||||||
|
}
|
||||||
|
|
||||||
paste_buffer_join_lines(buffer);
|
paste_buffer_join_lines(buffer);
|
||||||
resultstr = g_ucs4_to_utf8((unichar *) buffer->data, buffer->len, NULL, NULL, NULL);
|
resultstr = g_ucs4_to_utf8((unichar *) buffer->data, buffer->len, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue