Accepting request 982650 from home:ailin_nemui:branches:server:irc
- backport first set of fixes: - add use-isystem-for-include.patch, fixes build with perl 5.36 (#1381) - add fix-textbuffer-view.patch, fixes lost lines on display (#1382) - add default-hash-chan.patch, default to joining #-channels again (#1385) OBS-URL: https://build.opensuse.org/request/show/982650 OBS-URL: https://build.opensuse.org/package/show/server:irc/irssi?expand=0&rev=128
This commit is contained in:
parent
8a7d94e7b8
commit
d870fb86b4
28
default-hash-chan.patch
Normal file
28
default-hash-chan.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From 4864c334fcb45d64441ddafdec814b787829fc10 Mon Sep 17 00:00:00 2001
|
||||
From: ailin-nemui <ailin-nemui@users.noreply.github.com>
|
||||
Date: Mon, 13 Jun 2022 07:39:29 +0200
|
||||
Subject: [PATCH] Merge pull request #1388 from ailin-nemui/default-hash-chan
|
||||
|
||||
default to hash channels
|
||||
|
||||
(cherry picked from commit a5f5ea7d79274fcf547ef81f019b0c38c6863051)
|
||||
---
|
||||
src/irc/core/irc-channels.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/irc/core/irc-channels.c b/src/irc/core/irc-channels.c
|
||||
index b0fba9b1..24f57f8d 100644
|
||||
--- a/src/irc/core/irc-channels.c
|
||||
+++ b/src/irc/core/irc-channels.c
|
||||
@@ -71,7 +71,7 @@ static char *force_channel_name(IRC_SERVER_REC *server, const char *name)
|
||||
return g_strdup(name);
|
||||
|
||||
chantypes = g_hash_table_lookup(server->isupport, "chantypes");
|
||||
- if (chantypes == NULL || *chantypes == '\0')
|
||||
+ if (chantypes == NULL || *chantypes == '\0' || strchr(chantypes, '#') != NULL)
|
||||
chantypes = "#";
|
||||
|
||||
return g_strdup_printf("%c%s", *chantypes, name);
|
||||
--
|
||||
2.36.1
|
||||
|
174
fix-textbuffer-view.patch
Normal file
174
fix-textbuffer-view.patch
Normal file
@ -0,0 +1,174 @@
|
||||
From 6a4400f9041a2bb110db5fee45ad07c06172f6f6 Mon Sep 17 00:00:00 2001
|
||||
From: Ailin Nemui <ailin@d5421s.localdomain>
|
||||
Date: Mon, 13 Jun 2022 09:03:18 +0200
|
||||
Subject: [PATCH 2/4] Merge branch 'fix-textbuffer-view-1.4.1' into
|
||||
fix-textbuffer-view-1.4.1-squash
|
||||
|
||||
(cherry picked from commit b0979a77b2a602cb8875e23f38208af902ca10db)
|
||||
---
|
||||
.github/workflows/clangformat.yml | 6 ++--
|
||||
src/fe-text/textbuffer-commands.c | 1 +
|
||||
src/fe-text/textbuffer-view.c | 52 +++++++++++++++++++------------
|
||||
3 files changed, 36 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/src/fe-text/textbuffer-commands.c b/src/fe-text/textbuffer-commands.c
|
||||
index f30eab0e..6ed7c39c 100644
|
||||
--- a/src/fe-text/textbuffer-commands.c
|
||||
+++ b/src/fe-text/textbuffer-commands.c
|
||||
@@ -393,6 +393,7 @@ static void cmd_scrollback_redraw(void)
|
||||
|
||||
term_refresh_freeze();
|
||||
textbuffer_view_reset_cache(gui->view);
|
||||
+ textbuffer_view_resize(gui->view, gui->view->width, gui->view->height);
|
||||
gui_window_redraw(active_win);
|
||||
term_refresh_thaw();
|
||||
}
|
||||
diff --git a/src/fe-text/textbuffer-view.c b/src/fe-text/textbuffer-view.c
|
||||
index 79f3522c..ba353288 100644
|
||||
--- a/src/fe-text/textbuffer-view.c
|
||||
+++ b/src/fe-text/textbuffer-view.c
|
||||
@@ -402,10 +402,9 @@ view_update_line_cache(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
|
||||
|
||||
if (rec->count > 1) {
|
||||
for (pos = 0; lines != NULL; pos++) {
|
||||
- void *data = lines->data;
|
||||
+ LINE_CACHE_SUB_REC *data = lines->data;
|
||||
|
||||
- memcpy(&rec->lines[pos], data,
|
||||
- sizeof(LINE_CACHE_SUB_REC));
|
||||
+ memcpy(&rec->lines[pos], data, sizeof(LINE_CACHE_SUB_REC));
|
||||
|
||||
lines = g_slist_remove(lines, data);
|
||||
g_free(data);
|
||||
@@ -427,7 +426,7 @@ static void view_remove_cache(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line,
|
||||
|
||||
cache = g_hash_table_lookup(view->cache->line_cache, line);
|
||||
if (cache != NULL) {
|
||||
- g_free(cache);
|
||||
+ line_cache_destroy(NULL, cache);
|
||||
g_hash_table_remove(view->cache->line_cache, line);
|
||||
}
|
||||
}
|
||||
@@ -438,7 +437,7 @@ static void view_update_cache(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line,
|
||||
view_remove_cache(view, line, update_counter);
|
||||
|
||||
if (view->buffer->cur_line == line)
|
||||
- view->cache->last_linecount = view_get_linecount(view, line);
|
||||
+ view_get_linecount(view, line);
|
||||
}
|
||||
|
||||
void textbuffer_view_reset_cache(TEXT_BUFFER_VIEW_REC *view)
|
||||
@@ -467,6 +466,7 @@ static int view_line_draw(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line,
|
||||
unichar chr;
|
||||
int xpos, color, drawcount, first, need_move, need_clrtoeol, char_width;
|
||||
unsigned int fg24, bg24;
|
||||
+ fg24 = bg24 = UINT_MAX;
|
||||
|
||||
if (view->dirty) /* don't bother drawing anything - redraw is coming */
|
||||
return 0;
|
||||
@@ -767,7 +767,6 @@ static void view_unregister_indent_func(TEXT_BUFFER_VIEW_REC *view,
|
||||
/* recreate cache so it won't contain references
|
||||
to the indent function */
|
||||
textbuffer_view_reset_cache(view);
|
||||
- view->cache = textbuffer_cache_get(view->siblings, view->width);
|
||||
}
|
||||
|
||||
void textbuffer_views_unregister_indent_func(INDENT_FUNC indent_func)
|
||||
@@ -1033,13 +1032,17 @@ void textbuffer_view_clear(TEXT_BUFFER_VIEW_REC *view)
|
||||
/* Scroll the view up/down */
|
||||
void textbuffer_view_scroll(TEXT_BUFFER_VIEW_REC *view, int lines)
|
||||
{
|
||||
- int count;
|
||||
+ int count, ypos;
|
||||
|
||||
g_return_if_fail(view != NULL);
|
||||
|
||||
- count = view_scroll(view, &view->startline, &view->subline,
|
||||
- lines, TRUE);
|
||||
- view->ypos += lines < 0 ? count : -count;
|
||||
+ count = view_scroll(view, &view->startline, &view->subline, lines, TRUE);
|
||||
+
|
||||
+ ypos = view->ypos + (lines < 0 ? count : -count);
|
||||
+ textbuffer_view_init_ypos(view);
|
||||
+ if (ypos != view->ypos)
|
||||
+ textbuffer_view_resize(view, view->width, view->height);
|
||||
+
|
||||
view->bottom = view_is_bottom(view);
|
||||
if (view->bottom) view->more_text = FALSE;
|
||||
|
||||
@@ -1079,10 +1082,10 @@ LINE_CACHE_REC *textbuffer_view_get_line_cache(TEXT_BUFFER_VIEW_REC *view,
|
||||
cache = g_hash_table_lookup(view->cache->line_cache, line);
|
||||
if (cache == NULL)
|
||||
cache = view_update_line_cache(view, line);
|
||||
- else
|
||||
+ else
|
||||
cache->last_access = time(NULL);
|
||||
|
||||
- return cache;
|
||||
+ return cache;
|
||||
}
|
||||
|
||||
static void view_insert_line(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
|
||||
@@ -1263,12 +1266,13 @@ static void view_remove_line(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line,
|
||||
view_bookmarks_check(view, line);
|
||||
|
||||
if (view->buffer->cur_line == line) {
|
||||
- /* the last line is being removed */
|
||||
+ /* the last line is being removed */
|
||||
LINE_REC *prevline;
|
||||
|
||||
- prevline = view->buffer->first_line == line ? NULL :
|
||||
- textbuffer_line_last(view->buffer)->prev;
|
||||
- view->cache->last_linecount = prevline == NULL ? 0 :
|
||||
+ prevline = view->buffer->first_line == line ?
|
||||
+ NULL :
|
||||
+ textbuffer_line_last(view->buffer)->prev;
|
||||
+ if (prevline != NULL)
|
||||
view_get_linecount(view, prevline);
|
||||
}
|
||||
|
||||
@@ -1474,8 +1478,10 @@ void textbuffer_view_set_window(TEXT_BUFFER_VIEW_REC *view,
|
||||
|
||||
if (view->window != window) {
|
||||
view->window = window;
|
||||
- if (window != NULL)
|
||||
+ if (window != NULL) {
|
||||
+ textbuffer_view_resize(view, view->width, view->height);
|
||||
view->dirty = TRUE;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1504,12 +1510,18 @@ static int line_cache_check_remove(void *key, LINE_CACHE_REC *cache,
|
||||
static int sig_check_linecache(void)
|
||||
{
|
||||
GSList *tmp, *caches;
|
||||
- time_t now;
|
||||
+ time_t now;
|
||||
|
||||
- now = time(NULL); caches = NULL;
|
||||
+ now = time(NULL);
|
||||
+ caches = NULL;
|
||||
for (tmp = views; tmp != NULL; tmp = tmp->next) {
|
||||
TEXT_BUFFER_VIEW_REC *rec = tmp->data;
|
||||
|
||||
+ if (rec->window != NULL) {
|
||||
+ /* keep visible lines mapped */
|
||||
+ view_get_lines_height(rec, rec->startline, rec->subline, NULL);
|
||||
+ }
|
||||
+
|
||||
if (g_slist_find(caches, rec->cache) != NULL)
|
||||
continue;
|
||||
|
||||
@@ -1519,7 +1531,7 @@ static int sig_check_linecache(void)
|
||||
&now);
|
||||
}
|
||||
|
||||
- g_slist_free(caches);
|
||||
+ g_slist_free(caches);
|
||||
return 1;
|
||||
}
|
||||
|
||||
--
|
||||
2.36.1
|
||||
|
@ -1,3 +1,14 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 14 14:52:59 UTC 2022 - Ailin Nemui <ailin.nemui@gmail.com>
|
||||
|
||||
- backport first set of fixes:
|
||||
- add use-isystem-for-include.patch, fixes build with perl 5.36
|
||||
(#1381)
|
||||
- add fix-textbuffer-view.patch, fixes lost lines on display
|
||||
(#1382)
|
||||
- add default-hash-chan.patch, default to joining #-channels
|
||||
again (#1385)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jun 11 17:47:05 UTC 2022 - Ailin Nemui <ailin.nemui@gmail.com>
|
||||
|
||||
|
@ -29,6 +29,12 @@ Source2: irssi.png
|
||||
Source3: https://github.com/irssi/irssi/releases/download/%{version}/irssi-%{version}.tar.xz.asc
|
||||
# https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x7EE65E3082A5FB06AC7C368D00CCB587DDBEF0E1
|
||||
Source4: %{name}.keyring
|
||||
# PATCH-FIX-UPSTREAM use-isystem-for-include.patch -- based on PR 1384
|
||||
Patch1: use-isystem-for-include.patch
|
||||
# PATCH-FIX-UPSTREAM fix-textbuffer-view.patch -- based on PR 1387
|
||||
Patch2: fix-textbuffer-view.patch
|
||||
# PATCH-FIX-UPSTREAM default-hash-chan.patch -- based on PR 1388
|
||||
Patch3: default-hash-chan.patch
|
||||
BuildRequires: meson
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: ncurses-devel
|
||||
@ -72,6 +78,7 @@ compile plugins for the irssi package.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%autopatch -p1
|
||||
|
||||
%build
|
||||
%meson \
|
||||
@ -83,6 +90,7 @@ compile plugins for the irssi package.
|
||||
%if 0%{?suse_version} > 1330
|
||||
-Dwith-otr=yes \
|
||||
%endif
|
||||
-DPACKAGE_VERSION="%{version}-oS1" \
|
||||
#
|
||||
%meson_build
|
||||
|
||||
|
86
use-isystem-for-include.patch
Normal file
86
use-isystem-for-include.patch
Normal file
@ -0,0 +1,86 @@
|
||||
From 0658076c0ddee8663b2eb8f8a1bf73b0b9c95ec8 Mon Sep 17 00:00:00 2001
|
||||
From: Ailin Nemui <ailin@d5421s.localdomain>
|
||||
Date: Sun, 12 Jun 2022 17:13:28 +0200
|
||||
Subject: [PATCH 1/4] use -isystem instead of -I for include directories
|
||||
|
||||
limits warnings to our own code
|
||||
|
||||
(cherry picked from commit 528632bba2257cd9532417163f0952275a25da1f)
|
||||
---
|
||||
meson.build | 21 ++++++++++++---------
|
||||
1 file changed, 12 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 71dacead..d9eb935f 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -168,7 +168,7 @@ message('*** Or alternatively install your distribution\'s package')
|
||||
message('*** On Debian: sudo apt-get install libglib2.0-dev')
|
||||
message('*** On Redhat: dnf install glib2-devel')
|
||||
if not require_glib_internal
|
||||
- glib_dep = dependency('glib-2.0', version : '>=2.32', required : not want_glib_internal, static : want_static_dependency)
|
||||
+ glib_dep = dependency('glib-2.0', version : '>=2.32', required : not want_glib_internal, static : want_static_dependency, include_type : 'system')
|
||||
else
|
||||
glib_dep = dependency('', required : false)
|
||||
endif
|
||||
@@ -250,9 +250,9 @@ if not glib_dep.found()
|
||||
dependencies : glib_internal_dependencies,
|
||||
sources : glib_internal_build_t,
|
||||
compile_args : [
|
||||
- '-I' + (meson.current_source_dir() / 'subprojects' / glib_internal_version / 'glib'),
|
||||
- '-I' + (meson.current_source_dir() / 'subprojects' / glib_internal_version),
|
||||
- '-I' + (meson.current_build_dir() / 'build-subprojects' / 'glib' / 'glib'),
|
||||
+ '-isystem' + (meson.current_source_dir() / 'subprojects' / glib_internal_version / 'glib'),
|
||||
+ '-isystem' + (meson.current_source_dir() / 'subprojects' / glib_internal_version),
|
||||
+ '-isystem' + (meson.current_build_dir() / 'build-subprojects' / 'glib' / 'glib'),
|
||||
],
|
||||
link_args : [ meson.current_build_dir() / 'build-subprojects' / 'glib' / 'glib' / 'libglib-2.0.a' ],
|
||||
)
|
||||
@@ -265,12 +265,12 @@ if not glib_dep.found()
|
||||
gmodule_dep = declare_dependency(sources : glib_internal_build_t,
|
||||
dependencies : libdl_dep,
|
||||
compile_args : [
|
||||
- '-I' + (meson.current_source_dir() / 'subprojects' / glib_internal_version / 'gmodule'),
|
||||
+ '-isystem' + (meson.current_source_dir() / 'subprojects' / glib_internal_version / 'gmodule'),
|
||||
],
|
||||
link_args : [ meson.current_build_dir() / 'build-subprojects' / 'glib' / 'gmodule' / 'libgmodule-2.0.a' ],
|
||||
)
|
||||
else
|
||||
- gmodule_dep = dependency('gmodule-2.0', static : want_static_dependency)
|
||||
+ gmodule_dep = dependency('gmodule-2.0', static : want_static_dependency, include_type : 'system')
|
||||
endif
|
||||
dep += glib_dep
|
||||
dep += gmodule_dep
|
||||
@@ -279,7 +279,7 @@ if glib_internal and want_static_dependency and want_fuzzer
|
||||
openssl_proj = subproject('openssl', default_options : ['default_library=static', 'asm=disabled'])
|
||||
openssl_dep = openssl_proj.get_variable('openssl_dep')
|
||||
else
|
||||
- openssl_dep = dependency('openssl', static : want_static_dependency)
|
||||
+ openssl_dep = dependency('openssl', static : want_static_dependency, include_type : 'system')
|
||||
endif
|
||||
dep += openssl_dep
|
||||
|
||||
@@ -338,6 +338,9 @@ if want_perl
|
||||
endif
|
||||
foreach fl : perl_ccopts
|
||||
if fl.startswith('-D') or fl.startswith('-U') or fl.startswith('-I') or fl.startswith('-i') or fl.startswith('-f') or fl.startswith('-m')
|
||||
+ if fl.startswith('-I')
|
||||
+ fl = '-isystem' + fl.split('-I')[1]
|
||||
+ endif
|
||||
perl_cflags += fl
|
||||
endif
|
||||
endforeach
|
||||
@@ -469,8 +472,8 @@ endif
|
||||
|
||||
have_otr = false
|
||||
if want_otr
|
||||
- libgcrypt = dependency('libgcrypt', version : '>=1.2.0', required : require_otr, static : want_static_dependency)
|
||||
- libotr = dependency('libotr', version : '>=4.1.0', required : require_otr, static : want_static_dependency)
|
||||
+ libgcrypt = dependency('libgcrypt', version : '>=1.2.0', required : require_otr, static : want_static_dependency, include_type : 'system')
|
||||
+ libotr = dependency('libotr', version : '>=4.1.0', required : require_otr, static : want_static_dependency, include_type : 'system')
|
||||
if libgcrypt.found() and libotr.found()
|
||||
dep += libgcrypt
|
||||
dep += libotr
|
||||
--
|
||||
2.36.1
|
||||
|
Loading…
Reference in New Issue
Block a user