Maximus5 / ConEmu

Customizable Windows terminal with tabs, splits, quake-style, hotkeys and more
https://conemu.github.io/
BSD 3-Clause "New" or "Revised" License
8.64k stars 580 forks source link

The corrupted insert from the clipboard #2344

Open Manriel opened 3 years ago

Manriel commented 3 years ago

Versions

ConEmu build: 210718 x64 (Alpha) OS version: Windows 10 Pro 21H1 19043.1110 Used shell version (Far Manager, git-bash, cmd, powershell, cygwin, whatever): git-bash, cmd, powershell, cygwin

Problem description

It swap random substrings during the paste a string from the clipboard. Also, it works as expected in normal run outside of ConEmu.

Steps to reproduce

  1. Run any term
  2. Paste a sufficiently long string from the clipboard by any method (The longer the line, the more often it happens.)

Actual results

Inserted string is the random mix of substrings from the target string swapped between each other. You can see example at the screenshot: the screenshot

Expected results

The inserted string is identical with the string from the clipboard.

Originally posted by @Manriel in https://github.com/Maximus5/ConEmu/issues/2286#issuecomment-894075003

merlin66 commented 3 years ago

I have run into this as well. I can no longer reliably paste git hash codes from gitk into the git shell running in ConEmu. I'm on version 210905 stable, and Windows 10 Pro 20H2 build 19042.1165.

Sometimes it pastes correctly, other times the pasted text starts in the middle of the copied text (and then possibly wraps around and pastes the beginning of the text at the end, or something).

tkalmar commented 3 years ago

I think this is an cygwin problem: see for example https://github.com/microsoft/vscode/issues/127699 this happens independent of conemu

merlin66 commented 3 years ago

Interesting. In my case it happens when pasting into a Git for Windows shell running in ConEmu, I don't have cygwin installed. I have not yet experienced it when pasting into a pure Git for Windows shell started by itself, outside ConEmu. This doesn't mean the problem is in ConEmu of course, ref your link.

Natrezim commented 3 years ago

Experiencing the same thing for msys2 console under ConEmu:

Versions

ConEmu build: 210912 x64 (Stable) OS version: Windows 10 x64 20H2, 19042.1288 Used shell version (Far Manager, git-bash, cmd, powershell, cygwin, whatever): msys2

Problem description

Paste text into the msys2 console is not exactly what was copied.

Happened after updating msys2 to newest version (msys2-x86_64-20210725). Working correctly in msys2 window outside of conemu.

Tried just short string npm run component-test. Paste multiple times, sometimes it is ok, sometimes it swaps substrings or insert random brackets, number and other character. It can happen even on the first paste.

console

lv-gh commented 2 years ago

Experiencing the same thing for msys2 console under ConEmu:

Confirming. MSys2/MinGW in ConEmu (ConEmu 210912 [64], OsVer: 10.0.19044.x64) paste is broken (random shuffle/mangle). Works perfectly directly in mintty.

Conemu/Msys2 (broken):

broken_paste_conemu_mingw

Mintty (correct):

correct_paste_mintty

dgeelen-uipath commented 2 years ago

Adding another +1 for this. This has been broken for years now, with many duplicate reports being closed for various reasons. Sometimes people claim it's fixed, while others say it's not fixed. Then people say the issue has 'returned'. So it is a really weird but very annoying issue.

For me: ConEmu version: 210912 (stable, preview, and alpha are all at this version at the time of writing) Test string:

Inserted string is the random mix of substrings from the target string swapped between each other.

Tested working (today) in:

NOT working (last couple (2+) of years, 3 different PCs/installations):

cbhushan commented 2 years ago

I am also facing this exact issue with ConEmu with {Bash::CygWin bash} task. I have not tested/used others tasks in ConEmu long enough to be able to comment. But certainly pasting works fine every time in Cygwin64 terminal (which I think is C:\cygwin64\bin\mintty.exe).

ConEmu version: 210912 stable

inertia666 commented 2 years ago

Here is my task in ConEmu 220418

set "PATH=%ProgramFiles%\Git\usr\bin;%PATH%" & %ProgramFiles%\Git\git-cmd.exe --no-cd --command=%ConEmuBaseDirShort%\conemu-msys2-64.exe /usr/bin/bash.exe -l -i -new_console:d:C:\xx

Experiencing this bug for ages now.

dgeelen-uipath commented 2 years ago

Still broken in 220807 alpha

UndeadKernel commented 2 years ago

I can confirm that this is still happening today.

leyooooo commented 1 year ago

I could not describe the issue better than this person : dgeelen-uipath

The only thing I can add is it really seem to happen more consistently (as in "mix up almost every time") when doing some resource-eating task, like a VS build Far fetched idea : looks like the paste is "typing", and I have encountered some "mixing" when typing commands fast in conemu while my computer has some heavy stuff to do. Could this mixy-pasty-thingy come from Conemu "typing" too fast for the interaction Conemu<->GitBash to happen properly/in sync ?

Tested in 210912 stable (every day work) Tested in 220807 alpha (just to see if that has been fixed. Failed on first paste, my computer was breathing heavily tho)

Here's my configuration (only using {Bash::Git bash} on a daily basis) : conemu_config.txt (txt but actually my unaltered xml config) W11 pro (version 21H2, build 22000.1219)

Good luck with this sucker

durandx commented 1 year ago

Yes this bug is more present when the CPU have load. Maybe there a lack of synchronized access on a shared buffer or a race condition bug. I can reproduce this bug at will (it happens only for msys2 with GitBash) : Just copy a string (the longer the better) ex : "0123456789 " In a new and proper {Bash::Git bash} just press and hold "Shift+Ins" for a couple of seconds : You will have this kind of outputs :

$ 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789^[[200~0123456789 0123456789 0123456789 ~0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 ^[ 012[201~^[[200~0123456789 0123456789 0123456789 0123456789 01234567893456789 0123456789 ^[[23456789 0123456789^[[200~0123456789 0123456789 0123456789 ~0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 012^[[200~0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 3456789 ~0123456789 0123456789 0123456789 0123456789 0123456789 012345678900123456789 9 ~Function Key 9 ~0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 [201~^[[200~0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 012^[[200~012345673456789 0123456789 0123456789 89 ~0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 [200~0123456789200~0123456789 ~0123456789 0123456789 0123456789 ~0123456789 0123456789 ~012200~0123456789 0123456789 0123456789 0123456789 0123456789 01234567893456789 0123456789[200~0123456 ~200~0123456789 ~0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 123456789 ~0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 123456789 ~0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 ~0123456789 ~0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 [201~^[[200~0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 ~0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 01456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789[201~^[[200~0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 01234789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 123456789 ~0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 01234789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789

Git Bash is launched with : set "PATH=%ConEmuDir%\..\Git\usr\bin;%PATH%" & %ConEmuDir%\..\Git\git-cmd.exe --no-cd --command=%ConEmuBaseDirShort%\conemu-msys2-64.exe /usr/bin/bash.exe -l -i -new_console:p

Balfa commented 1 year ago

The above reproduces it for me consistently on my work laptop, but it never happens on my personal machine. It also never happens with consoles other than git bash. It also never happens in the native "Git Bash" (mintty) installed by git for windows.

Both machines have the following launch commands for git bash: set "PATH=%ProgramFiles%\Git\usr\bin;%PATH%" & %ProgramFiles%\Git\git-cmd.exe --no-cd --command=%ConEmuBaseDirShort%\conemu-msys2-64.exe /usr/bin/bash.exe -l -i -new_console:p

And both machines are running ConEmu 220807

Balfa commented 1 year ago

Here's how it looks: gitbashcorruptedinput

That inverted color on the just-pasted text also only happens in the following conditions: ConEmu + Git Bash + work laptop.

dleepernoinc commented 11 months ago

This is still happening and drives me insane every few weeks, in case anyone was wondering