• Bug#1103204: rkward: diff for NMU version 0.8.0-4.1 (2/2)

    From Adrian Bunk@1:229/2 to All on Mon Jun 30 16:00:02 2025
    [continued from previous message]

    +- // well, this point of code is never reached with R up to 2.12.0. Instead failed user commands are handled in doError().
    +- RKRBackend::repl_status.user_command_status = RKRBackend::RKReplStatus::UserCommandFailed;
    +- }
    +- }
    +-
    +- return (Rboolean) true;
    +-}
    +-
    +-void RKInsertToplevelStatementFinishedCallback (void *) {
    +- RK_TRACE (RBACKEND);
    +-
    +- if (RKRBackend::this_pointer->r_running) {
    +- int pos;
    +- RFn::Rf_addTaskCallback(&RKToplevelStatementFinishedCallback, nullptr, &RKInsertToplevelStatementFinishedCallback, "_rkward_main_callback", &pos);
    +- }
    +-}
    +-
    + void RKTransmitNextUserCommandChunk (unsigned char* buf, int buflen) {
    + RK_TRACE (RBACKEND);
    +
    +@@ -284,7 +252,7 @@ int RReadConsole (const char* prompt, unsigned char* buf, int buflen, int hist)
    + // This can mean three different things:
    + // 1) User called readline ()
    + // 2) User called browser ()
    +- // 3) R jumped us back to toplevel behind our backs.
    ++ // 3) The user command has finished (successfully or not)
    + // Let's find out, which one it is.
    + if (hist && (RKRBackend::default_global_context != ROb(R_GlobalContext))) {
    + break; // this looks like a call to browser(). Will be handled below.
    +@@ -296,13 +264,13 @@ int RReadConsole (const char* prompt, unsigned char* buf, int buflen, int hist)
    + n_frames = dummy->intVector ().at (0); + }
    + // What the ??? Why does this simple version always return 0?
    +- //int n_frames = RKRSupport::SEXPToInt (RKRSupport::callSimpleFun0 (RFn::Rf_install ("sys.nframe"), ROb(R_GlobalEnv)));
    ++ //int n_frames = RKRSupport::SEXPToInt (RKRSupport::callSimpleFun0 (RFn::Rf_install ("sys.nframe"), ROb(R_GlobalEnv);
    + if (n_frames < 1) {
    +- // No active frames? This can't be a call to readline(), then, so probably R jumped us back to toplevel, behind our backs.
    +- // For safety, let's reset and start over.
    +- RKRBackend::this_pointer->current_command->status |= RCommand::Failed | RCommand::ErrorOther;
    +- RKRBackend::repl_status.user_command_status = RKRBackend::RKReplStatus::ReplIterationKilled;
    +- RFn::Rf_error(""); // to discard the buffer
    ++ // No active frames? This can't be a call to readline(), so the previous command must have finished.
    ++ if (RKRBackend::repl_status.user_command_completely_transmitted) {
    ++ RKRBackend::repl_status.user_command_status = RKRBackend::RKReplStatus::NoUserCommand;
    ++ RKRBackend::this_pointer->commandFinished ();
    ++ } else RKRBackend::repl_status.user_command_status = RKRBackend::RKReplStatus::UserCommandTransmitted;
    + } else {
    + // A call to readline(). Will be handled below
    + break;
    +@@ -1108,7 +1076,6 @@ bool RKRBackend::startR () {
    + RFn::R_registerRoutines(RFn::R_getEmbeddingDllInfo(), nullptr, callMethods, nullptr, nullptr);
    +
    + connectCallbacks();
    +- RKInsertToplevelStatementFinishedCallback(nullptr);
    + RKREventLoop::setRKEventHandler(doPendingPriorityCommands);
    + default_global_context = ROb(R_GlobalContext);
    + #ifdef Q_OS_WIN
    +--
    +2.30.2
    +
    diff -Nru rkward-0.8.0/debian/patches/0002-Adjust-to-hiding-for-R_checkActivityEx-in-R-devel-fo.patch rkward-0.8.0/debian/patches/0002-Adjust-to-hiding-for-R_checkActivityEx-in-R-devel-fo.patch
    --- rkward-0.8.0/debian/patches/0002-Adjust-to-hiding-for-R_checkActivityEx-in-R-devel-fo.patch 1970-01-01 02:00:00.000000000 +0200
    +++ rkward-0.8.0/debian/patches/0002-Adjust-to-hiding-for-R_checkActivityEx-in-R-devel-fo.patch 2025-06-30 15:44:28.000000000 +0300
    @@ -0,0 +1,39 @@
    +From 51b0b0bf5a15d742f20922713018125036df9aa3 Mon Sep 17 00:00:00 2001
    +From: Thomas Friedrichsmeier <[email protected]>
    +Date: Mon, 29 Jul 2024 14:58:22 +0200
    +Subject: Adjust to hiding for R_checkActivityEx in R-devel (for R 4.5)
    +
    +---
    + rkward/rbackend/rkrapi.h | 2 +-
    + rkward/rbackend/rkreventloop.cpp | 2 +-
    + 2 files changed, 2 insertions(+), 2 deletions(-)
    +
    +diff --git a/rkward/rbackend/rkrapi.h b/rkward/rbackend/rkrapi.h
    +index 643ac8983..e72f817e2 100644
    +--- a/rkward/rbackend/rkrapi.h
    ++++ b/rkward/rbackend/rkrapi.h
    +@@ -323,7 +323,7 @@ IMPORT_R_API(ptr_R_WriteConsoleEx);
    +
    + IMPORT_R_API(R_InputHandlers);
    + IMPORT_R_API(R_PolledEvents);
    +-IMPORT_R_API(R_checkActivityEx);
    ++I