From 9f4a601887b12893e6038fc225f8e26797788e89 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Thu, 18 Jun 2015 23:27:35 +0200 Subject: [PATCH] Rebase against 6fe55462107b4dcc31f919296a6e5870dcc881a3. --- README.md | 2 +- debian/changelog | 2 + patches/patchinstall.sh | 123 ++++---- ...k-notification-conditions-and-add-te.patch | 282 ------------------ patches/riched20-Link_Notification/definition | 1 - 5 files changed, 55 insertions(+), 355 deletions(-) delete mode 100644 patches/riched20-Link_Notification/0001-riched20-Fix-link-notification-conditions-and-add-te.patch delete mode 100644 patches/riched20-Link_Notification/definition diff --git a/README.md b/README.md index 9b5bc705..9b4b393a 100644 --- a/README.md +++ b/README.md @@ -153,7 +153,7 @@ for more details.* * Fix handling of opening read-only files for FILE_DELETE_ON_CLOSE ([Wine Bug #38417](https://bugs.winehq.org/show_bug.cgi?id=38417)) * Fix handling of window attributes for WS_EX_LAYERED | WS_EX_COMPOSITED ([Wine Bug #37876](https://bugs.winehq.org/show_bug.cgi?id=37876)) * Fix issues with dragging layers between images in Adobe Photoshop 7.0 ([Wine Bug #12007](https://bugs.winehq.org/show_bug.cgi?id=12007)) -* Fix link notification conditions for riched20 ([Wine Bug #35949](https://bugs.winehq.org/show_bug.cgi?id=35949)) +* ~~Fix link notification conditions for riched20~~ ([Wine Bug #35949](https://bugs.winehq.org/show_bug.cgi?id=35949)) * Fix missing video introduced by pixelformat changes. ([Wine Bug #36900](https://bugs.winehq.org/show_bug.cgi?id=36900)) * Fix multithreading issues with fullscreen clipping ([Wine Bug #38087](https://bugs.winehq.org/show_bug.cgi?id=38087)) * Fix possible segfault in pulse_rd_loop of PulseAudio backend diff --git a/debian/changelog b/debian/changelog index e4b47de5..ad6904ec 100644 --- a/debian/changelog +++ b/debian/changelog @@ -18,6 +18,8 @@ wine-staging (1.7.46) UNRELEASED; urgency=low (accepted upstream). * Removed patch to use random names when caching very long urls in wininet (accepted upstream). + * Removed patch to fix link notification conditions for riched20 (accepted + upstream). * Removed patch to fix linking against libunwind on Linux (fixed upstream). -- Sebastian Lackner Sun, 14 Jun 2015 09:15:50 +0200 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 9c7efd83..8c7776c3 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -55,7 +55,7 @@ version() echo "Copyright (C) 2014-2015 the Wine Staging project authors." echo "" echo "Patchset to be applied on upstream Wine:" - echo " commit 9e96beefae97bb63845b1cac6f372de515465ada" + echo " commit 6fe55462107b4dcc31f919296a6e5870dcc881a3" echo "" } @@ -195,7 +195,6 @@ patch_enable_all () enable_quartz_MediaSeeking_Positions="$1" enable_regedit_Reg_Parser="$1" enable_riched20_IText_Interface="$1" - enable_riched20_Link_Notification="$1" enable_rpcrt4_Pipe_Transport="$1" enable_rpcrt4_Use_After_Free="$1" enable_secur32_ANSI_NTLM_Credentials="$1" @@ -665,9 +664,6 @@ patch_enable () riched20-IText_Interface) enable_riched20_IText_Interface="$2" ;; - riched20-Link_Notification) - enable_riched20_Link_Notification="$2" - ;; rpcrt4-Pipe_Transport) enable_rpcrt4_Pipe_Transport="$2" ;; @@ -4171,21 +4167,6 @@ if test "$enable_riched20_IText_Interface" -eq 1; then ) >> "$patchlist" fi -# Patchset riched20-Link_Notification -# | -# | This patchset fixes the following Wine bugs: -# | * [#35949] Fix link notification conditions for riched20 -# | -# | Modified files: -# | * dlls/riched20/editor.c, dlls/riched20/tests/editor.c -# | -if test "$enable_riched20_Link_Notification" -eq 1; then - patch_apply riched20-Link_Notification/0001-riched20-Fix-link-notification-conditions-and-add-te.patch - ( - echo '+ { "Alex Henrie", "riched20: Fix link notification conditions and add tests.", 1 },'; - ) >> "$patchlist" -fi - # Patchset rpcrt4-Use_After_Free # | # | This patchset fixes the following Wine bugs: @@ -5085,6 +5066,57 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then ) >> "$patchlist" fi +# Patchset wined3d-UnhandledBlendFactor +# | +# | Modified files: +# | * dlls/wined3d/state.c +# | +if test "$enable_wined3d_UnhandledBlendFactor" -eq 1; then + patch_apply wined3d-UnhandledBlendFactor/0001-wined3d-Silence-repeated-Unhandled-blend-factor-0-me.patch + ( + echo '+ { "Sebastian Lackner", "wined3d: Silence repeated '\''Unhandled blend factor 0'\'' messages.", 1 },'; + ) >> "$patchlist" +fi + +# Patchset wined3d-wined3d_swapchain_present +# | +# | Modified files: +# | * dlls/wined3d/swapchain.c +# | +if test "$enable_wined3d_wined3d_swapchain_present" -eq 1; then + patch_apply wined3d-wined3d_swapchain_present/0001-wined3d-Silence-repeated-wined3d_swapchain_present-F.patch + ( + echo '+ { "Sebastian Lackner", "wined3d: Silence repeated wined3d_swapchain_present FIXME.", 1 },'; + ) >> "$patchlist" +fi + +# Patchset wined3d-resource_check_usage +# | +# | Modified files: +# | * dlls/wined3d/resource.c +# | +if test "$enable_wined3d_resource_check_usage" -eq 1; then + patch_apply wined3d-resource_check_usage/0001-wined3d-Silence-repeated-resource_check_usage-FIXME.patch + ( + echo '+ { "Erich E. Hoover", "wined3d: Silence repeated resource_check_usage FIXME.", 2 },'; + ) >> "$patchlist" +fi + +# Patchset wined3d-Multisampling +# | +# | This patchset fixes the following Wine bugs: +# | * [#12652] Allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE. +# | +# | Modified files: +# | * dlls/wined3d/directx.c, dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h +# | +if test "$enable_wined3d_Multisampling" -eq 1; then + patch_apply wined3d-Multisampling/0001-wined3d-Allow-to-specify-multisampling-AA-quality-le.patch + ( + echo '+ { "Austin English", "wined3d: Allow to specify multisampling AA quality levels via registry.", 1 },'; + ) >> "$patchlist" +fi + # Patchset wined3d-Revert_PixelFormat # | # | This patchset fixes the following Wine bugs: @@ -5119,57 +5151,6 @@ if test "$enable_wined3d_Revert_PixelFormat" -eq 1; then ) >> "$patchlist" fi -# Patchset wined3d-resource_check_usage -# | -# | Modified files: -# | * dlls/wined3d/resource.c -# | -if test "$enable_wined3d_resource_check_usage" -eq 1; then - patch_apply wined3d-resource_check_usage/0001-wined3d-Silence-repeated-resource_check_usage-FIXME.patch - ( - echo '+ { "Erich E. Hoover", "wined3d: Silence repeated resource_check_usage FIXME.", 2 },'; - ) >> "$patchlist" -fi - -# Patchset wined3d-UnhandledBlendFactor -# | -# | Modified files: -# | * dlls/wined3d/state.c -# | -if test "$enable_wined3d_UnhandledBlendFactor" -eq 1; then - patch_apply wined3d-UnhandledBlendFactor/0001-wined3d-Silence-repeated-Unhandled-blend-factor-0-me.patch - ( - echo '+ { "Sebastian Lackner", "wined3d: Silence repeated '\''Unhandled blend factor 0'\'' messages.", 1 },'; - ) >> "$patchlist" -fi - -# Patchset wined3d-wined3d_swapchain_present -# | -# | Modified files: -# | * dlls/wined3d/swapchain.c -# | -if test "$enable_wined3d_wined3d_swapchain_present" -eq 1; then - patch_apply wined3d-wined3d_swapchain_present/0001-wined3d-Silence-repeated-wined3d_swapchain_present-F.patch - ( - echo '+ { "Sebastian Lackner", "wined3d: Silence repeated wined3d_swapchain_present FIXME.", 1 },'; - ) >> "$patchlist" -fi - -# Patchset wined3d-Multisampling -# | -# | This patchset fixes the following Wine bugs: -# | * [#12652] Allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE. -# | -# | Modified files: -# | * dlls/wined3d/directx.c, dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h -# | -if test "$enable_wined3d_Multisampling" -eq 1; then - patch_apply wined3d-Multisampling/0001-wined3d-Allow-to-specify-multisampling-AA-quality-le.patch - ( - echo '+ { "Austin English", "wined3d: Allow to specify multisampling AA quality levels via registry.", 1 },'; - ) >> "$patchlist" -fi - # Patchset wined3d-CSMT_Main # | # | This patchset fixes the following Wine bugs: diff --git a/patches/riched20-Link_Notification/0001-riched20-Fix-link-notification-conditions-and-add-te.patch b/patches/riched20-Link_Notification/0001-riched20-Fix-link-notification-conditions-and-add-te.patch deleted file mode 100644 index eaff7e79..00000000 --- a/patches/riched20-Link_Notification/0001-riched20-Fix-link-notification-conditions-and-add-te.patch +++ /dev/null @@ -1,282 +0,0 @@ -From f38b5b90a84ab9acc82032c0f360cb34705aad92 Mon Sep 17 00:00:00 2001 -From: Alex Henrie -Date: Thu, 4 Jun 2015 00:34:40 -0600 -Subject: riched20: Fix link notification conditions and add tests. - -Fixes https://bugs.winehq.org/show_bug.cgi?id=35949 ---- - dlls/riched20/editor.c | 13 +++- - dlls/riched20/tests/editor.c | 178 +++++++++++++++++++++++++++++++++++++++---- - 2 files changed, 172 insertions(+), 19 deletions(-) - -diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c -index 38861fd..33b4462 100644 ---- a/dlls/riched20/editor.c -+++ b/dlls/riched20/editor.c -@@ -4121,6 +4121,10 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam, - return 0; - case WM_SETCURSOR: - { -+ POINT cursor_pos; -+ if (wParam == (WPARAM)editor->hWnd && GetCursorPos(&cursor_pos) && -+ ScreenToClient(editor->hWnd, &cursor_pos)) -+ ME_LinkNotify(editor, msg, 0, MAKELPARAM(cursor_pos.x, cursor_pos.y)); - return ME_SetCursor(editor); - } - case WM_LBUTTONDBLCLK: -@@ -4135,7 +4139,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam, - ME_CalculateClickCount(editor, msg, wParam, lParam)); - ITextHost_TxSetCapture(editor->texthost, TRUE); - editor->bMouseCaptured = TRUE; -- ME_LinkNotify(editor,msg,wParam,lParam); -+ ME_LinkNotify(editor, msg, wParam, lParam); - if (!ME_SetCursor(editor)) goto do_default; - break; - } -@@ -4145,7 +4149,8 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam, - return 0; - if (editor->bMouseCaptured) - ME_MouseMove(editor, (short)LOWORD(lParam), (short)HIWORD(lParam)); -- ME_LinkNotify(editor,msg,wParam,lParam); -+ else -+ ME_LinkNotify(editor, msg, wParam, lParam); - /* Set cursor if mouse is captured, since WM_SETCURSOR won't be received. */ - if (editor->bMouseCaptured) - ME_SetCursor(editor); -@@ -4163,15 +4168,17 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam, - else - { - ME_SetCursor(editor); -- ME_LinkNotify(editor,msg,wParam,lParam); -+ ME_LinkNotify(editor, msg, wParam, lParam); - } - break; - case WM_RBUTTONUP: - case WM_RBUTTONDOWN: -+ case WM_RBUTTONDBLCLK: - ME_CommitUndo(editor); /* End coalesced undos for typed characters */ - if ((editor->nEventMask & ENM_MOUSEEVENTS) && - !ME_FilterEvent(editor, msg, &wParam, &lParam)) - return 0; -+ ME_LinkNotify(editor, msg, wParam, lParam); - goto do_default; - case WM_CONTEXTMENU: - if (!ME_ShowContextMenu(editor, (short)LOWORD(lParam), (short)HIWORD(lParam))) -diff --git a/dlls/riched20/tests/editor.c b/dlls/riched20/tests/editor.c -index 09437ef..d2ea70c 100644 ---- a/dlls/riched20/tests/editor.c -+++ b/dlls/riched20/tests/editor.c -@@ -6004,26 +6004,155 @@ static void test_WM_NOTIFY(void) - DestroyWindow(parent); - } - --static int cpMin_EN_LINK = -1; --static int cpMax_EN_LINK = -1; -+static ENLINK enlink; -+#define CURSOR_CLIENT_X 5 -+#define CURSOR_CLIENT_Y 5 -+#define WP_PARENT 1 -+#define WP_CHILD 2 - - static LRESULT WINAPI EN_LINK_ParentMsgCheckProcA(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) - { -- ENLINK* enlink = (ENLINK*)lParam; -- if(message == WM_NOTIFY && enlink->nmhdr.code == EN_LINK) -+ if(message == WM_NOTIFY && ((NMHDR*)lParam)->code == EN_LINK) - { -- cpMin_EN_LINK = enlink->chrg.cpMin; -- cpMax_EN_LINK = enlink->chrg.cpMax; -+ enlink = *(ENLINK*)lParam; - } - return DefWindowProcA(hwnd, message, wParam, lParam); - } - -+static void link_notify_test(const char *desc, int i, HWND hwnd, HWND parent, UINT msg, WPARAM wParam, BOOL notifies) -+{ -+ LPARAM lParam; -+ ENLINK junk_enlink; -+ -+ switch (msg) -+ { -+ case EM_LINESCROLL: -+ lParam = 1; -+ break; -+ case WM_LBUTTONDBLCLK: -+ case WM_LBUTTONDOWN: -+ case WM_LBUTTONUP: -+ case WM_MOUSEHOVER: -+ case WM_MOUSEMOVE: -+ case WM_MOUSEWHEEL: -+ case WM_RBUTTONDBLCLK: -+ case WM_RBUTTONDOWN: -+ case WM_RBUTTONUP: -+ lParam = MAKELPARAM(CURSOR_CLIENT_X, CURSOR_CLIENT_Y); -+ break; -+ case WM_SETCURSOR: -+ if (wParam == WP_PARENT) -+ wParam = (WPARAM)parent; -+ else if (wParam == WP_CHILD) -+ wParam = (WPARAM)hwnd; -+ /* fall through */ -+ default: -+ lParam = 0; -+ } -+ -+ memset(&junk_enlink, 0x23, sizeof(junk_enlink)); -+ enlink = junk_enlink; -+ -+ SendMessageA(hwnd, msg, wParam, lParam); -+ -+ if (notifies) -+ { -+ ok(enlink.nmhdr.hwndFrom == hwnd, -+ "%s test %i: Expected hwnd %p got %p\n", desc, i, hwnd, enlink.nmhdr.hwndFrom); -+ ok(enlink.nmhdr.idFrom == 0, -+ "%s test %i: Expected idFrom 0 got 0x%lx\n", desc, i, enlink.nmhdr.idFrom); -+ ok(enlink.msg == msg, -+ "%s test %i: Expected msg 0x%x got 0x%x\n", desc, i, msg, enlink.msg); -+ if (msg == WM_SETCURSOR) -+ { -+ ok(enlink.wParam == 0, -+ "%s test %i: Expected wParam 0 got 0x%lx\n", desc, i, enlink.wParam); -+ ok(enlink.lParam == MAKELPARAM(CURSOR_CLIENT_X, CURSOR_CLIENT_Y), -+ "%s test %i: Expected lParam 0x%lx got 0x%lx\n", -+ desc, i, MAKELPARAM(CURSOR_CLIENT_X, CURSOR_CLIENT_Y), enlink.lParam); -+ } -+ else -+ { -+ ok(enlink.wParam == wParam, -+ "%s test %i: Expected wParam 0x%lx got 0x%lx\n", desc, i, wParam, enlink.wParam); -+ ok(enlink.lParam == lParam, -+ "%s test %i: Expected lParam 0x%lx got 0x%lx\n", desc, i, lParam, enlink.lParam); -+ } -+ ok(enlink.chrg.cpMin == 0 && enlink.chrg.cpMax == 31, -+ "%s test %i: Expected link range [0,31) got [%i,%i)\n", desc, i, enlink.chrg.cpMin, enlink.chrg.cpMax); -+ } -+ else -+ { -+ ok(memcmp(&enlink, &junk_enlink, sizeof(enlink)) == 0, -+ "%s test %i: Expected enlink to remain unmodified\n", desc, i); -+ } -+} -+ - static void test_EN_LINK(void) - { -- HWND parent; -+ HWND hwnd, parent; - WNDCLASSA cls; -- HWND hwndRichedit_EN_LINK; - CHARFORMAT2A cf2; -+ POINT cursor_screen_pos = {CURSOR_CLIENT_X, CURSOR_CLIENT_Y}; -+ int i; -+ -+ static const struct -+ { -+ UINT msg; -+ WPARAM wParam; -+ BOOL notifies; -+ } -+ link_notify_tests[] = -+ { -+ /* hold down the left button and try some messages */ -+ { WM_LBUTTONDOWN, 0, TRUE }, /* 0 */ -+ { EM_LINESCROLL, 0, FALSE }, -+ { EM_SCROLL, SB_BOTTOM, FALSE }, -+ { WM_LBUTTONDBLCLK, 0, TRUE }, -+ { WM_MOUSEHOVER, 0, FALSE }, -+ { WM_MOUSEMOVE, 0, FALSE }, -+ { WM_MOUSEWHEEL, 0, FALSE }, -+ { WM_RBUTTONDBLCLK, 0, TRUE }, -+ { WM_RBUTTONDOWN, 0, TRUE }, -+ { WM_RBUTTONUP, 0, TRUE }, -+ { WM_SETCURSOR, 0, FALSE }, -+ { WM_SETCURSOR, WP_PARENT, FALSE }, -+ { WM_SETCURSOR, WP_CHILD, TRUE }, -+ { WM_VSCROLL, SB_BOTTOM, FALSE }, -+ { WM_LBUTTONUP, 0, TRUE }, -+ /* hold down the right button and try some messages */ -+ { WM_RBUTTONDOWN, 0, TRUE }, /* 15 */ -+ { EM_LINESCROLL, 0, FALSE }, -+ { EM_SCROLL, SB_BOTTOM, FALSE }, -+ { WM_LBUTTONDBLCLK, 0, TRUE }, -+ { WM_LBUTTONDOWN, 0, TRUE }, -+ { WM_LBUTTONUP, 0, TRUE }, -+ { WM_MOUSEHOVER, 0, FALSE }, -+ { WM_MOUSEMOVE, 0, TRUE }, -+ { WM_MOUSEWHEEL, 0, FALSE }, -+ { WM_RBUTTONDBLCLK, 0, TRUE }, -+ { WM_SETCURSOR, 0, FALSE }, -+ { WM_SETCURSOR, WP_PARENT, FALSE }, -+ { WM_SETCURSOR, WP_CHILD, TRUE }, -+ { WM_VSCROLL, SB_BOTTOM, FALSE }, -+ { WM_RBUTTONUP, 0, TRUE }, -+ /* try the messages with both buttons released */ -+ { EM_LINESCROLL, 0, FALSE }, /* 30 */ -+ { EM_SCROLL, SB_BOTTOM, FALSE }, -+ { WM_LBUTTONDBLCLK, 0, TRUE }, -+ { WM_LBUTTONDOWN, 0, TRUE }, -+ { WM_LBUTTONUP, 0, TRUE }, -+ { WM_MOUSEHOVER, 0, FALSE }, -+ { WM_MOUSEMOVE, 0, TRUE }, -+ { WM_MOUSEWHEEL, 0, FALSE }, -+ { WM_RBUTTONDBLCLK, 0, TRUE }, -+ { WM_RBUTTONDOWN, 0, TRUE }, -+ { WM_RBUTTONUP, 0, TRUE }, -+ { WM_SETCURSOR, 0, FALSE }, -+ { WM_SETCURSOR, WP_CHILD, TRUE }, -+ { WM_SETCURSOR, WP_PARENT, FALSE }, -+ { WM_VSCROLL, SB_BOTTOM, FALSE } -+ }; - - /* register class to capture WM_NOTIFY */ - cls.style = 0; -@@ -6042,21 +6171,38 @@ static void test_EN_LINK(void) - 0, 0, 200, 60, NULL, NULL, NULL, NULL); - ok(parent != 0, "Failed to create parent window\n"); - -- hwndRichedit_EN_LINK = new_richedit(parent); -- ok(hwndRichedit_EN_LINK != 0, "Failed to create edit window\n"); -+ hwnd = new_richedit(parent); -+ ok(hwnd != 0, "Failed to create edit window\n"); - -- SendMessageA(hwndRichedit_EN_LINK, EM_SETEVENTMASK, 0, ENM_LINK); -+ SendMessageA(hwnd, EM_SETEVENTMASK, 0, ENM_LINK); - - cf2.cbSize = sizeof(CHARFORMAT2A); - cf2.dwMask = CFM_LINK; - cf2.dwEffects = CFE_LINK; -- SendMessageA(hwndRichedit_EN_LINK, EM_SETCHARFORMAT, 0, (LPARAM)&cf2); -+ SendMessageA(hwnd, EM_SETCHARFORMAT, 0, (LPARAM)&cf2); - /* mixing letters and numbers causes runs to be split */ -- SendMessageA(hwndRichedit_EN_LINK, WM_SETTEXT, 0, (LPARAM)"link text with at least 2 runs"); -- SendMessageA(hwndRichedit_EN_LINK, WM_LBUTTONDOWN, 0, MAKELPARAM(5, 5)); -- ok(cpMin_EN_LINK == 0 && cpMax_EN_LINK == 31, "Expected link range [0,31) got [%i,%i)\n", cpMin_EN_LINK, cpMax_EN_LINK); -+ SendMessageA(hwnd, WM_SETTEXT, 0, (LPARAM)"link text with at least 2 runs"); - -- DestroyWindow(hwndRichedit_EN_LINK); -+ ok(SetCursorPos(0, 0), "SetCursorPos failed\n"); -+ -+ for (i = 0; i < sizeof(link_notify_tests)/sizeof(link_notify_tests[0]); i++) -+ { -+ link_notify_test("cursor position simulated", i, hwnd, parent, -+ link_notify_tests[i].msg, link_notify_tests[i].wParam, -+ link_notify_tests[i].msg == WM_SETCURSOR ? FALSE : link_notify_tests[i].notifies); -+ } -+ -+ ok(ClientToScreen(hwnd, &cursor_screen_pos), "ClientToScreen failed\n"); -+ ok(SetCursorPos(cursor_screen_pos.x, cursor_screen_pos.y), "SetCursorPos failed\n"); -+ -+ for (i = 0; i < sizeof(link_notify_tests)/sizeof(link_notify_tests[0]); i++) -+ { -+ link_notify_test("cursor position set", i, hwnd, parent, -+ link_notify_tests[i].msg, link_notify_tests[i].wParam, -+ link_notify_tests[i].notifies); -+ } -+ -+ DestroyWindow(hwnd); - DestroyWindow(parent); - } - --- -2.4.2 - diff --git a/patches/riched20-Link_Notification/definition b/patches/riched20-Link_Notification/definition deleted file mode 100644 index eb73d07d..00000000 --- a/patches/riched20-Link_Notification/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [35949] Fix link notification conditions for riched20