Skip to content

Pushing Ctrl + C after running sendme send example_file.c results in terminal output breaking #94

@robertkirkman

Description

@robertkirkman
  • After the successful completion of previous issues (like Termux support #69), sendme is now nearly 100% functional and fully usable on both GNU/Linux and Android (Termux). On GNU/Linux both the stable release (currently 0.26.0) and the development branch can work, getting the stable branch using cargo install sendme, but on Termux, currently the development branch is necessary to resolve an error, using cargo install --git https://github.com/n0-computer/sendme to install sendme.

I was testing the program a little bit, and I ran into a small problem with the sending functionality of the program,

when using sendme send file.c, then pushing Ctrl + C after receiving the file on a different device, unfortunately, the terminal will get messed up in a way that makes stdout not work.

(large image hidden for readability - click to show) Image

so, you can still type commands, as shown, but you can't see what you type
restarting the terminal emulator or SSH connection makes the temporary problem disappear.
the problem is reproducible on Termux and on GNU/Linux and also with both the development and stable branches of the program.

When I test on multiple computers, I am able to reproduce this effect on both x86_64 and aarch64, on both GNU/Linux and Termux, and with both the development branch from github and the stable release from cargo install sendme.

Here are the brief specs of two computers where I reproduced this problem. On the GNU/Linux computer, the problem was reproduced using both the stable branch and the development branch, but on the Android device, the problem was reproduced using only the branch that works there at this time, the github development branch.

  • up to date Gentoo GNU/Linux with Kitty terminal, Xorg X11 server, and Rust 1.87.0, on an x86_64 computer

  • LineageOS 20 Android 13 running Termux 0.119.0-beta.1 with up-to-date packages and Rust 1.88.0, on an aarch64 Samsung Galaxy A70 SM-A705FN phone.

    • Android platform notes, just in case, for reference by anyone who has not used sendme with Termux, but has previously used sendme with another operating system:
      • Slightly older versions of Termux App and very old versions of Android are usually supported for an extended period of time because they are sometimes less convenient for users to update than Termux internal packages,
      • and as long as Termux's updateable internal packages are all up-to-date, older versions of Android are expected to work properly in most situations, and bugs reproducible on them are usually (but not always) reproducible on all Android versions.
      • Android versions 7.0 and newer are expected to mostly work with Termux
      • Termux App versions 0.118.0 and newer are supported, but upgrading to the newest Termux app is preferred.
      • Termux internal packages should always be kept up to date regularly using pkg upgrade,
      • and new upgrades of internal packages are supposed to be, and usually are, backwards compatible with Termux 0.118.0 and Android 7.0
      • This information is current to July 2025 and will eventually change in the future, because sometimes Termux discontinues support for receiving new package updates on old Termux Apps and very old Android versions.
  • May be in some way internally related to other, previously-reported Ctrl+C-related bugs:

I think it can be hoped that maybe, with some luck, if one or both of the preexisting Ctrl+C related issues were fixed, it's possible that the improved Ctrl+C handler might automatically prevent this third problem from happening as well. Unfortunately, I haven't read a lot of the sendme code yet, and I'm not sure if there's an easy way to fix this or not yet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions