Am 19.12.2020 um 08:26 schrieb Brian Inglis:
On 2020-12-18 11:22, Bill shaffer via Cygwin wrote:
On Thursday, December 17, 2020 11:22 PM, Brian Inglis wrote:
On 2020-12-17 16:03, Bill Shaffer via Cygwin wrote:
I am using Cygwin 3.1.7 and xterm 360.1 on Windows 10.  I run the X server and work in xterm windows.  When I copy a selection from an Excel spreadsheet and paste it into a vi session in an xterm window, the spreadsheet columns are separated by spaces.  If I paste into a vi session in a cygwin 3.1.7 console, I get tabs as separators.  If I run xterm on another host and send the display to
my X Server, I get tabs.
In my previous version of Cygwin - which was probably about 2-3 years old - when I did this the columns were separated by tabs.  I still see tab separators in Cygwin 1.7.31 (Windows 8.1).  I can type tabs just fine in the 3.1.7 xterm.  It seems to be something in the local xterm that is converting the pasted tabs to spaces.  I don't think it's the copy portion of the operation, or I wouldn't get
tabs in the console.
Did something change at some point that would explain this behavior?  Is there a
way to get back to having the columns separated by tabs?
I understand that usually copying and pasting implies visible characters and that tabs are usually only visible as spaces, and this is the result I would expect when copying visible text separated by tabs. However, when pasting from Excel, the columns have always come across separated by tabs - and still do,
except for in xterm.
My TERM is xterm - I've tried vt100 and vt220 as well.  My TERM is also xterm in
the working examples above.

The consensus on X is that the characters copied are determined by the source, and Windows apps often offer their clipboard info in multiple formats, if you check using an app that allows you to choose the format pasted e.g LibreOffice. Having said that, editors also have settings that determine how pasted tabs are treated, and that may depend on the target window settings for the file type
when pasted.
On Cygwin and Linux that probably depends on the vim compatibility settings, and
settings in:
         $ strings -n5 /bin/vi | egrep '^[.~$/].*(ex|vim?)rc' | sort -u
         $HOME/.exrc
         $HOME/.virc
         .exrc
         .virc
         /etc/virc
         ~/.vim/vimrc
whereas BSD systems may still provide original n/vi.

Thank you for the response!  This got me looking in the right direction.  I agree with what you say that the clipboard contents are determined by the source. Given that I could paste (from the same buffer) into the console window and get tabs, I had to assume that the copy process was grabbing the tabs as expected. > So looking for editor and window settings, and looking in the xterm(1) man page, I found disallowedPasteControls, which says the default includes ASCII
tabs: ... > The default is
> BS,HT,DEL,ESC
> BS - ASCII backspace
> HT - ASCII tab
> DEL - ASCII delete
> ESC - ASCII escape
> ...
> I put the following line in my .Xdefaults, removing HT:
> xterm*disallowedPasteControls: BS,DEL,ESC
> and restarted Xwin server, and now my tabs paste as expected.
xrdb .Xdefaults and restart xterm would be sufficient
That entry doesn't even exist in my older installation's man page. I found a post indicating that it was added in xterm patch 333 in 2018, which would be newer than my previous install.
I am surprised that any terminal would remap normal input characters without an explicit non-default setting, and would expect all characters to be allowed unless there is some exceptional (compatibility/security) reason for blocking or remapping, so it never occurred to me to suggest that layer!

I notice that on the xterm(/vttest/ncurses/lynx/etc.) maintainer's web man page links:

https://invisible-island.net/xterm/manpage/xterm.html#VT100-Widget-Resources:disallowedPasteControls
This resource was introduced in xterm 333 (2018). Should the cygwin xterm package change the default?


this resource converts the listed characters to a space, whereas another positive resource:

https://invisible-island.net/xterm/manpage/xterm.html#VT100-Widget-Resources:allowPasteControls

allows control characters to be pasted, and yet another allows high ASCII characters:

https://invisible-island.net/xterm/manpage/xterm.html#VT100-Widget-Resources:allowC1Printable


--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to