With `irb --noreadline --nomultiline` there is an unnecessary newline before each prompt
Description
When running irb with the flags --noreadline --nomultiline, there is an unnecessary additional newline before each prompt, including the initial prompt.
I originally noticed this in Emacs (the inf-ruby package runs irb with those flags), but I can also reproduce it in a normal terminal with no Emacs involved. As shown in this screenshot:
The next screenshot shows it working as expected (when not using that combination of flags):
Result of irb_info
irb(main):001> irb_info
Ruby version: 3.3.4
IRB version: irb 1.14.0 (2024-07-06)
InputMethod: StdioInputMethod
Completion: off
RUBY_PLATFORM: x86_64-darwin21
LANG env: en_GB.UTF-8
East Asian Ambiguous Width: 1
Terminal Emulator
iTerm2 v3.5.4
Setting Files
Are you using
~/.irbrcand~/.inputrc?
No
Related to https://github.com/ruby/irb/pull/943
Maybe a temporary fix could be to not do the puts if the INSIDE_EMACS environment variable is defined.
That's definitely an option. @tompng ?
I think we need to do something. #907 was aimed at making the behavior more regular, needing fewer workarounds.
But because of the "test workaround", the latest Irb has been strictly worse in Emacs for the last 6 months, spanning 2 minor versions and 4 patch releases.