Hi Mike,
Thanks for your reply. Are are my thoughts.
> Using (std::)endl is actually a bug
Ah, thanks for the heads-up! I think in that case we should in fact remove all the endl instead of adding it :).
> Strictly speaking, though, this should not cause any issues
Why was I getting socket error then? I really hope everything got merged correctly now. Including my changes in the separate function.
Since all the changes together made my socket error from libssh disappear now.
> This code path is for old libssh versions only (pre-0.8) and still works there,
> so I don't see any reason to change it.
I got deprecation warnings on this function/line while compiling. Why not merge it and remove build warnings?
The change in within the #else, maybe if you think it should be in the #if you can apply the change in that section (but I think in my case the else part got compiled).
Nevertheless, it's a deprecation that needs to be solved anyway.
> Not changing return (...) vs. return ..., the actual change
> looks good though.
Why not changing the return(). This is wrong code, it's just a boolean! Bad practice, please don't it. Don't be afraid to change it.
A generic remark: I think X2Go is missing a good pipeline with testcases and other quality checks. Which also hopefully increases your *trust in the code* and enables refactoring as well.
I'm not afraid to refactor the code and clean-up the formatting, splitting functions and even into multiple files. If this all improve readability, debuggability and test-ability long-term.

That is why I raise a request to create a decent pipeline to allow the necessary changes in further improve code maturity and the needed changes to do so.
And maybe even a better diff tool to perform refactoring changes during review.

Any ideas or suggestions? I'm running a GitLab instance myself for example; which enables DevOps and CI/CD within all my projects.
Thanks once more!
Kind regards,
Melroy van den Berg