Update vendoring for new ui
This commit is contained in:
parent
213d9475ba
commit
a616ac6c56
2
go.mod
2
go.mod
|
@ -9,5 +9,7 @@ require (
|
||||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||||
github.com/dietsche/rfsnotify v0.0.0-20200716145600-b37be6e4177f
|
github.com/dietsche/rfsnotify v0.0.0-20200716145600-b37be6e4177f
|
||||||
github.com/fsnotify/fsnotify v1.4.9 // indirect
|
github.com/fsnotify/fsnotify v1.4.9 // indirect
|
||||||
|
github.com/gdamore/tcell v1.4.0
|
||||||
|
github.com/rivo/tview v0.0.0-20200818120338-53d50e499bf9
|
||||||
gopkg.in/fsnotify.v1 v1.4.7 // indirect
|
gopkg.in/fsnotify.v1 v1.4.7 // indirect
|
||||||
)
|
)
|
||||||
|
|
24
go.sum
24
go.sum
|
@ -1,3 +1,4 @@
|
||||||
|
github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
|
||||||
github.com/d2r2/go-bh1750 v0.0.0-20181222061755-1195122364ab h1:8zeQTn3owfeyIA5KIhtvcj9wlMStdFaxbYwPkWhGVgo=
|
github.com/d2r2/go-bh1750 v0.0.0-20181222061755-1195122364ab h1:8zeQTn3owfeyIA5KIhtvcj9wlMStdFaxbYwPkWhGVgo=
|
||||||
github.com/d2r2/go-bh1750 v0.0.0-20181222061755-1195122364ab/go.mod h1:3atw7ac57A1fKlJIGeLBaeXdh80Revqk6uVl7bZyH10=
|
github.com/d2r2/go-bh1750 v0.0.0-20181222061755-1195122364ab/go.mod h1:3atw7ac57A1fKlJIGeLBaeXdh80Revqk6uVl7bZyH10=
|
||||||
github.com/d2r2/go-i2c v0.0.0-20191123181816-73a8a799d6bc h1:HLRSIWzUGMLCq4ldt0W1GLs3nnAxa5EGoP+9qHgh6j0=
|
github.com/d2r2/go-i2c v0.0.0-20191123181816-73a8a799d6bc h1:HLRSIWzUGMLCq4ldt0W1GLs3nnAxa5EGoP+9qHgh6j0=
|
||||||
|
@ -10,7 +11,30 @@ github.com/dietsche/rfsnotify v0.0.0-20200716145600-b37be6e4177f h1:b3QvpXLSx1U1
|
||||||
github.com/dietsche/rfsnotify v0.0.0-20200716145600-b37be6e4177f/go.mod h1:ztitxkMUaBsHRey1tS5xFCd4gm/zAQwA9yfCP5y4cAA=
|
github.com/dietsche/rfsnotify v0.0.0-20200716145600-b37be6e4177f/go.mod h1:ztitxkMUaBsHRey1tS5xFCd4gm/zAQwA9yfCP5y4cAA=
|
||||||
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
|
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
|
||||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||||
|
github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko=
|
||||||
|
github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg=
|
||||||
|
github.com/gdamore/tcell v1.3.0/go.mod h1:Hjvr+Ofd+gLglo7RYKxxnzCBmev3BzsS67MebKS4zMM=
|
||||||
|
github.com/gdamore/tcell v1.4.0 h1:vUnHwJRvcPQa3tzi+0QI4U9JINXYJlOz9yiaiPQ2wMU=
|
||||||
|
github.com/gdamore/tcell v1.4.0/go.mod h1:vxEiSDZdW3L+Uhjii9c3375IlDmR05bzxY404ZVSMo0=
|
||||||
|
github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s=
|
||||||
|
github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac=
|
||||||
|
github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
|
||||||
|
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
|
||||||
|
github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
|
||||||
|
github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
|
||||||
|
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
|
||||||
|
github.com/rivo/tview v0.0.0-20200818120338-53d50e499bf9 h1:csnip7QsoiE2Ee0RkELN1YggwejK2EFfcjU6tXOT0Q8=
|
||||||
|
github.com/rivo/tview v0.0.0-20200818120338-53d50e499bf9/go.mod h1:xV4Aw4WIX8cmhg71U7MUHBdpIQ7zSEXdRruGHLaEAOc=
|
||||||
|
github.com/rivo/uniseg v0.1.0 h1:+2KBaVoUmb9XzDsrx/Ct0W/EYOSFf/nWTauy++DprtY=
|
||||||
|
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||||
|
golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9 h1:L2auWcuQIvxz9xSEqzESnV/QN/gNRXNApHi3fYwl2w0=
|
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9 h1:L2auWcuQIvxz9xSEqzESnV/QN/gNRXNApHi3fYwl2w0=
|
||||||
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200817155316-9781c653f443 h1:X18bCaipMcoJGm27Nv7zr4XYPKGUy92GtqboKC2Hxaw=
|
||||||
|
golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
|
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
|
||||||
|
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
|
gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
|
||||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||||
|
|
13
vendor/github.com/gdamore/encoding/.appveyor.yml
generated
vendored
Normal file
13
vendor/github.com/gdamore/encoding/.appveyor.yml
generated
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
version: 1.0.{build}
|
||||||
|
clone_folder: c:\gopath\src\github.com\gdamore\encoding
|
||||||
|
environment:
|
||||||
|
GOPATH: c:\gopath
|
||||||
|
build_script:
|
||||||
|
- go version
|
||||||
|
- go env
|
||||||
|
- SET PATH=%LOCALAPPDATA%\atom\bin;%GOPATH%\bin;%PATH%
|
||||||
|
- go get -t ./...
|
||||||
|
- go build
|
||||||
|
- go install ./...
|
||||||
|
test_script:
|
||||||
|
- go test ./...
|
7
vendor/github.com/gdamore/encoding/.travis.yml
generated
vendored
Normal file
7
vendor/github.com/gdamore/encoding/.travis.yml
generated
vendored
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
language: go
|
||||||
|
|
||||||
|
go:
|
||||||
|
- 1.9.x
|
||||||
|
- 1.10.x
|
||||||
|
- 1.11.x
|
||||||
|
- tip
|
202
vendor/github.com/gdamore/encoding/LICENSE
generated
vendored
Normal file
202
vendor/github.com/gdamore/encoding/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,202 @@
|
||||||
|
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
19
vendor/github.com/gdamore/encoding/README.md
generated
vendored
Normal file
19
vendor/github.com/gdamore/encoding/README.md
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
## encoding
|
||||||
|
|
||||||
|
[![Linux Status](https://img.shields.io/travis/gdamore/encoding.svg?label=linux)](https://travis-ci.org/gdamore/encoding)
|
||||||
|
[![Windows Status](https://img.shields.io/appveyor/ci/gdamore/encoding.svg?label=windows)](https://ci.appveyor.com/project/gdamore/encoding)
|
||||||
|
[![Apache License](https://img.shields.io/badge/license-APACHE2-blue.svg)](https://github.com/gdamore/encoding/blob/master/LICENSE)
|
||||||
|
[![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](https://godoc.org/github.com/gdamore/encoding)
|
||||||
|
[![Go Report Card](http://goreportcard.com/badge/gdamore/encoding)](http://goreportcard.com/report/gdamore/encoding)
|
||||||
|
|
||||||
|
Package encoding provides a number of encodings that are missing from the
|
||||||
|
standard Go [encoding]("https://godoc.org/golang.org/x/text/encoding") package.
|
||||||
|
|
||||||
|
We hope that we can contribute these to the standard Go library someday. It
|
||||||
|
turns out that some of these are useful for dealing with I/O streams coming
|
||||||
|
from non-UTF friendly sources.
|
||||||
|
|
||||||
|
The UTF8 Encoder is also useful for situations where valid UTF-8 might be
|
||||||
|
carried in streams that contain non-valid UTF; in particular I use it for
|
||||||
|
helping me cope with terminals that embed escape sequences in otherwise
|
||||||
|
valid UTF-8.
|
36
vendor/github.com/gdamore/encoding/ascii.go
generated
vendored
Normal file
36
vendor/github.com/gdamore/encoding/ascii.go
generated
vendored
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
// Copyright 2015 Garrett D'Amore
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package encoding
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golang.org/x/text/encoding"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ASCII represents the 7-bit US-ASCII scheme. It decodes directly to
|
||||||
|
// UTF-8 without change, as all ASCII values are legal UTF-8.
|
||||||
|
// Unicode values less than 128 (i.e. 7 bits) map 1:1 with ASCII.
|
||||||
|
// It encodes runes outside of that to 0x1A, the ASCII substitution character.
|
||||||
|
var ASCII encoding.Encoding
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
amap := make(map[byte]rune)
|
||||||
|
for i := 128; i <= 255; i++ {
|
||||||
|
amap[byte(i)] = RuneError
|
||||||
|
}
|
||||||
|
|
||||||
|
cm := &Charmap{Map: amap}
|
||||||
|
cm.Init()
|
||||||
|
ASCII = cm
|
||||||
|
}
|
196
vendor/github.com/gdamore/encoding/charmap.go
generated
vendored
Normal file
196
vendor/github.com/gdamore/encoding/charmap.go
generated
vendored
Normal file
|
@ -0,0 +1,196 @@
|
||||||
|
// Copyright 2015 Garrett D'Amore
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package encoding
|
||||||
|
|
||||||
|
import (
|
||||||
|
"sync"
|
||||||
|
"unicode/utf8"
|
||||||
|
|
||||||
|
"golang.org/x/text/encoding"
|
||||||
|
"golang.org/x/text/transform"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// RuneError is an alias for the UTF-8 replacement rune, '\uFFFD'.
|
||||||
|
RuneError = '\uFFFD'
|
||||||
|
|
||||||
|
// RuneSelf is the rune below which UTF-8 and the Unicode values are
|
||||||
|
// identical. Its also the limit for ASCII.
|
||||||
|
RuneSelf = 0x80
|
||||||
|
|
||||||
|
// ASCIISub is the ASCII substitution character.
|
||||||
|
ASCIISub = '\x1a'
|
||||||
|
)
|
||||||
|
|
||||||
|
// Charmap is a structure for setting up encodings for 8-bit character sets,
|
||||||
|
// for transforming between UTF8 and that other character set. It has some
|
||||||
|
// ideas borrowed from golang.org/x/text/encoding/charmap, but it uses a
|
||||||
|
// different implementation. This implementation uses maps, and supports
|
||||||
|
// user-defined maps.
|
||||||
|
//
|
||||||
|
// We do assume that a character map has a reasonable substitution character,
|
||||||
|
// and that valid encodings are stable (exactly a 1:1 map) and stateless
|
||||||
|
// (that is there is no shift character or anything like that.) Hence this
|
||||||
|
// approach will not work for many East Asian character sets.
|
||||||
|
//
|
||||||
|
// Measurement shows little or no measurable difference in the performance of
|
||||||
|
// the two approaches. The difference was down to a couple of nsec/op, and
|
||||||
|
// no consistent pattern as to which ran faster. With the conversion to
|
||||||
|
// UTF-8 the code takes about 25 nsec/op. The conversion in the reverse
|
||||||
|
// direction takes about 100 nsec/op. (The larger cost for conversion
|
||||||
|
// from UTF-8 is most likely due to the need to convert the UTF-8 byte stream
|
||||||
|
// to a rune before conversion.
|
||||||
|
//
|
||||||
|
type Charmap struct {
|
||||||
|
transform.NopResetter
|
||||||
|
bytes map[rune]byte
|
||||||
|
runes [256][]byte
|
||||||
|
once sync.Once
|
||||||
|
|
||||||
|
// The map between bytes and runes. To indicate that a specific
|
||||||
|
// byte value is invalid for a charcter set, use the rune
|
||||||
|
// utf8.RuneError. Values that are absent from this map will
|
||||||
|
// be assumed to have the identity mapping -- that is the default
|
||||||
|
// is to assume ISO8859-1, where all 8-bit characters have the same
|
||||||
|
// numeric value as their Unicode runes. (Not to be confused with
|
||||||
|
// the UTF-8 values, which *will* be different for non-ASCII runes.)
|
||||||
|
//
|
||||||
|
// If no values less than RuneSelf are changed (or have non-identity
|
||||||
|
// mappings), then the character set is assumed to be an ASCII
|
||||||
|
// superset, and certain assumptions and optimizations become
|
||||||
|
// available for ASCII bytes.
|
||||||
|
Map map[byte]rune
|
||||||
|
|
||||||
|
// The ReplacementChar is the byte value to use for substitution.
|
||||||
|
// It should normally be ASCIISub for ASCII encodings. This may be
|
||||||
|
// unset (left to zero) for mappings that are strictly ASCII supersets.
|
||||||
|
// In that case ASCIISub will be assumed instead.
|
||||||
|
ReplacementChar byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type cmapDecoder struct {
|
||||||
|
transform.NopResetter
|
||||||
|
runes [256][]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type cmapEncoder struct {
|
||||||
|
transform.NopResetter
|
||||||
|
bytes map[rune]byte
|
||||||
|
replace byte
|
||||||
|
}
|
||||||
|
|
||||||
|
// Init initializes internal values of a character map. This should
|
||||||
|
// be done early, to minimize the cost of allocation of transforms
|
||||||
|
// later. It is not strictly necessary however, as the allocation
|
||||||
|
// functions will arrange to call it if it has not already been done.
|
||||||
|
func (c *Charmap) Init() {
|
||||||
|
c.once.Do(c.initialize)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Charmap) initialize() {
|
||||||
|
c.bytes = make(map[rune]byte)
|
||||||
|
ascii := true
|
||||||
|
|
||||||
|
for i := 0; i < 256; i++ {
|
||||||
|
r, ok := c.Map[byte(i)]
|
||||||
|
if !ok {
|
||||||
|
r = rune(i)
|
||||||
|
}
|
||||||
|
if r < 128 && r != rune(i) {
|
||||||
|
ascii = false
|
||||||
|
}
|
||||||
|
if r != RuneError {
|
||||||
|
c.bytes[r] = byte(i)
|
||||||
|
}
|
||||||
|
utf := make([]byte, utf8.RuneLen(r))
|
||||||
|
utf8.EncodeRune(utf, r)
|
||||||
|
c.runes[i] = utf
|
||||||
|
}
|
||||||
|
if ascii && c.ReplacementChar == '\x00' {
|
||||||
|
c.ReplacementChar = ASCIISub
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewDecoder returns a Decoder the converts from the 8-bit
|
||||||
|
// character set to UTF-8. Unknown mappings, if any, are mapped
|
||||||
|
// to '\uFFFD'.
|
||||||
|
func (c *Charmap) NewDecoder() *encoding.Decoder {
|
||||||
|
c.Init()
|
||||||
|
return &encoding.Decoder{Transformer: &cmapDecoder{runes: c.runes}}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewEncoder returns a Transformer that converts from UTF8 to the
|
||||||
|
// 8-bit character set. Unknown mappings are mapped to 0x1A.
|
||||||
|
func (c *Charmap) NewEncoder() *encoding.Encoder {
|
||||||
|
c.Init()
|
||||||
|
return &encoding.Encoder{
|
||||||
|
Transformer: &cmapEncoder{
|
||||||
|
bytes: c.bytes,
|
||||||
|
replace: c.ReplacementChar,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *cmapDecoder) Transform(dst, src []byte, atEOF bool) (int, int, error) {
|
||||||
|
var e error
|
||||||
|
var ndst, nsrc int
|
||||||
|
|
||||||
|
for _, c := range src {
|
||||||
|
b := d.runes[c]
|
||||||
|
l := len(b)
|
||||||
|
|
||||||
|
if ndst+l > len(dst) {
|
||||||
|
e = transform.ErrShortDst
|
||||||
|
break
|
||||||
|
}
|
||||||
|
for i := 0; i < l; i++ {
|
||||||
|
dst[ndst] = b[i]
|
||||||
|
ndst++
|
||||||
|
}
|
||||||
|
nsrc++
|
||||||
|
}
|
||||||
|
return ndst, nsrc, e
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *cmapEncoder) Transform(dst, src []byte, atEOF bool) (int, int, error) {
|
||||||
|
var e error
|
||||||
|
var ndst, nsrc int
|
||||||
|
for nsrc < len(src) {
|
||||||
|
if ndst >= len(dst) {
|
||||||
|
e = transform.ErrShortDst
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
r, sz := utf8.DecodeRune(src[nsrc:])
|
||||||
|
if r == utf8.RuneError && sz == 1 {
|
||||||
|
// If its inconclusive due to insufficient data in
|
||||||
|
// in the source, report it
|
||||||
|
if !atEOF && !utf8.FullRune(src[nsrc:]) {
|
||||||
|
e = transform.ErrShortSrc
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if c, ok := d.bytes[r]; ok {
|
||||||
|
dst[ndst] = c
|
||||||
|
} else {
|
||||||
|
dst[ndst] = d.replace
|
||||||
|
}
|
||||||
|
nsrc += sz
|
||||||
|
ndst++
|
||||||
|
}
|
||||||
|
|
||||||
|
return ndst, nsrc, e
|
||||||
|
}
|
17
vendor/github.com/gdamore/encoding/doc.go
generated
vendored
Normal file
17
vendor/github.com/gdamore/encoding/doc.go
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
// Copyright 2015 Garrett D'Amore
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
// Package encoding provides a few of the encoding structures that are
|
||||||
|
// missing from the Go x/text/encoding tree.
|
||||||
|
package encoding
|
273
vendor/github.com/gdamore/encoding/ebcdic.go
generated
vendored
Normal file
273
vendor/github.com/gdamore/encoding/ebcdic.go
generated
vendored
Normal file
|
@ -0,0 +1,273 @@
|
||||||
|
// Copyright 2015 Garrett D'Amore
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package encoding
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golang.org/x/text/encoding"
|
||||||
|
)
|
||||||
|
|
||||||
|
// EBCDIC represents the 8-bit EBCDIC scheme, found in some mainframe
|
||||||
|
// environments. If you don't know what this is, consider yourself lucky.
|
||||||
|
var EBCDIC encoding.Encoding
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
cm := &Charmap{
|
||||||
|
ReplacementChar: '\x3f',
|
||||||
|
Map: map[byte]rune{
|
||||||
|
// 0x00-0x03 match
|
||||||
|
0x04: RuneError,
|
||||||
|
0x05: '\t',
|
||||||
|
0x06: RuneError,
|
||||||
|
0x07: '\x7f',
|
||||||
|
0x08: RuneError,
|
||||||
|
0x09: RuneError,
|
||||||
|
0x0a: RuneError,
|
||||||
|
// 0x0b-0x13 match
|
||||||
|
0x14: RuneError,
|
||||||
|
0x15: '\x85', // Not in any ISO code
|
||||||
|
0x16: '\x08',
|
||||||
|
0x17: RuneError,
|
||||||
|
// 0x18-0x19 match
|
||||||
|
0x1a: RuneError,
|
||||||
|
0x1b: RuneError,
|
||||||
|
// 0x1c-0x1f match
|
||||||
|
0x20: RuneError,
|
||||||
|
0x21: RuneError,
|
||||||
|
0x22: RuneError,
|
||||||
|
0x23: RuneError,
|
||||||
|
0x24: RuneError,
|
||||||
|
0x25: '\n',
|
||||||
|
0x26: '\x17',
|
||||||
|
0x27: '\x1b',
|
||||||
|
0x28: RuneError,
|
||||||
|
0x29: RuneError,
|
||||||
|
0x2a: RuneError,
|
||||||
|
0x2b: RuneError,
|
||||||
|
0x2c: RuneError,
|
||||||
|
0x2d: '\x05',
|
||||||
|
0x2e: '\x06',
|
||||||
|
0x2f: '\x07',
|
||||||
|
0x30: RuneError,
|
||||||
|
0x31: RuneError,
|
||||||
|
0x32: '\x16',
|
||||||
|
0x33: RuneError,
|
||||||
|
0x34: RuneError,
|
||||||
|
0x35: RuneError,
|
||||||
|
0x36: RuneError,
|
||||||
|
0x37: '\x04',
|
||||||
|
0x38: RuneError,
|
||||||
|
0x39: RuneError,
|
||||||
|
0x3a: RuneError,
|
||||||
|
0x3b: RuneError,
|
||||||
|
0x3c: '\x14',
|
||||||
|
0x3d: '\x15',
|
||||||
|
0x3e: RuneError,
|
||||||
|
0x3f: '\x1a', // also replacement char
|
||||||
|
0x40: ' ',
|
||||||
|
0x41: '\xa0',
|
||||||
|
0x42: RuneError,
|
||||||
|
0x43: RuneError,
|
||||||
|
0x44: RuneError,
|
||||||
|
0x45: RuneError,
|
||||||
|
0x46: RuneError,
|
||||||
|
0x47: RuneError,
|
||||||
|
0x48: RuneError,
|
||||||
|
0x49: RuneError,
|
||||||
|
0x4a: RuneError,
|
||||||
|
0x4b: '.',
|
||||||
|
0x4c: '<',
|
||||||
|
0x4d: '(',
|
||||||
|
0x4e: '+',
|
||||||
|
0x4f: '|',
|
||||||
|
0x50: '&',
|
||||||
|
0x51: RuneError,
|
||||||
|
0x52: RuneError,
|
||||||
|
0x53: RuneError,
|
||||||
|
0x54: RuneError,
|
||||||
|
0x55: RuneError,
|
||||||
|
0x56: RuneError,
|
||||||
|
0x57: RuneError,
|
||||||
|
0x58: RuneError,
|
||||||
|
0x59: RuneError,
|
||||||
|
0x5a: '!',
|
||||||
|
0x5b: '$',
|
||||||
|
0x5c: '*',
|
||||||
|
0x5d: ')',
|
||||||
|
0x5e: ';',
|
||||||
|
0x5f: '¬',
|
||||||
|
0x60: '-',
|
||||||
|
0x61: '/',
|
||||||
|
0x62: RuneError,
|
||||||
|
0x63: RuneError,
|
||||||
|
0x64: RuneError,
|
||||||
|
0x65: RuneError,
|
||||||
|
0x66: RuneError,
|
||||||
|
0x67: RuneError,
|
||||||
|
0x68: RuneError,
|
||||||
|
0x69: RuneError,
|
||||||
|
0x6a: '¦',
|
||||||
|
0x6b: ',',
|
||||||
|
0x6c: '%',
|
||||||
|
0x6d: '_',
|
||||||
|
0x6e: '>',
|
||||||
|
0x6f: '?',
|
||||||
|
0x70: RuneError,
|
||||||
|
0x71: RuneError,
|
||||||
|
0x72: RuneError,
|
||||||
|
0x73: RuneError,
|
||||||
|
0x74: RuneError,
|
||||||
|
0x75: RuneError,
|
||||||
|
0x76: RuneError,
|
||||||
|
0x77: RuneError,
|
||||||
|
0x78: RuneError,
|
||||||
|
0x79: '`',
|
||||||
|
0x7a: ':',
|
||||||
|
0x7b: '#',
|
||||||
|
0x7c: '@',
|
||||||
|
0x7d: '\'',
|
||||||
|
0x7e: '=',
|
||||||
|
0x7f: '"',
|
||||||
|
0x80: RuneError,
|
||||||
|
0x81: 'a',
|
||||||
|
0x82: 'b',
|
||||||
|
0x83: 'c',
|
||||||
|
0x84: 'd',
|
||||||
|
0x85: 'e',
|
||||||
|
0x86: 'f',
|
||||||
|
0x87: 'g',
|
||||||
|
0x88: 'h',
|
||||||
|
0x89: 'i',
|
||||||
|
0x8a: RuneError,
|
||||||
|
0x8b: RuneError,
|
||||||
|
0x8c: RuneError,
|
||||||
|
0x8d: RuneError,
|
||||||
|
0x8e: RuneError,
|
||||||
|
0x8f: '±',
|
||||||
|
0x90: RuneError,
|
||||||
|
0x91: 'j',
|
||||||
|
0x92: 'k',
|
||||||
|
0x93: 'l',
|
||||||
|
0x94: 'm',
|
||||||
|
0x95: 'n',
|
||||||
|
0x96: 'o',
|
||||||
|
0x97: 'p',
|
||||||
|
0x98: 'q',
|
||||||
|
0x99: 'r',
|
||||||
|
0x9a: RuneError,
|
||||||
|
0x9b: RuneError,
|
||||||
|
0x9c: RuneError,
|
||||||
|
0x9d: RuneError,
|
||||||
|
0x9e: RuneError,
|
||||||
|
0x9f: RuneError,
|
||||||
|
0xa0: RuneError,
|
||||||
|
0xa1: '~',
|
||||||
|
0xa2: 's',
|
||||||
|
0xa3: 't',
|
||||||
|
0xa4: 'u',
|
||||||
|
0xa5: 'v',
|
||||||
|
0xa6: 'w',
|
||||||
|
0xa7: 'x',
|
||||||
|
0xa8: 'y',
|
||||||
|
0xa9: 'z',
|
||||||
|
0xaa: RuneError,
|
||||||
|
0xab: RuneError,
|
||||||
|
0xac: RuneError,
|
||||||
|
0xad: RuneError,
|
||||||
|
0xae: RuneError,
|
||||||
|
0xaf: RuneError,
|
||||||
|
0xb0: '^',
|
||||||
|
0xb1: RuneError,
|
||||||
|
0xb2: RuneError,
|
||||||
|
0xb3: RuneError,
|
||||||
|
0xb4: RuneError,
|
||||||
|
0xb5: RuneError,
|
||||||
|
0xb6: RuneError,
|
||||||
|
0xb7: RuneError,
|
||||||
|
0xb8: RuneError,
|
||||||
|
0xb9: RuneError,
|
||||||
|
0xba: '[',
|
||||||
|
0xbb: ']',
|
||||||
|
0xbc: RuneError,
|
||||||
|
0xbd: RuneError,
|
||||||
|
0xbe: RuneError,
|
||||||
|
0xbf: RuneError,
|
||||||
|
0xc0: '{',
|
||||||
|
0xc1: 'A',
|
||||||
|
0xc2: 'B',
|
||||||
|
0xc3: 'C',
|
||||||
|
0xc4: 'D',
|
||||||
|
0xc5: 'E',
|
||||||
|
0xc6: 'F',
|
||||||
|
0xc7: 'G',
|
||||||
|
0xc8: 'H',
|
||||||
|
0xc9: 'I',
|
||||||
|
0xca: '\xad', // NB: soft hyphen
|
||||||
|
0xcb: RuneError,
|
||||||
|
0xcc: RuneError,
|
||||||
|
0xcd: RuneError,
|
||||||
|
0xce: RuneError,
|
||||||
|
0xcf: RuneError,
|
||||||
|
0xd0: '}',
|
||||||
|
0xd1: 'J',
|
||||||
|
0xd2: 'K',
|
||||||
|
0xd3: 'L',
|
||||||
|
0xd4: 'M',
|
||||||
|
0xd5: 'N',
|
||||||
|
0xd6: 'O',
|
||||||
|
0xd7: 'P',
|
||||||
|
0xd8: 'Q',
|
||||||
|
0xd9: 'R',
|
||||||
|
0xda: RuneError,
|
||||||
|
0xdb: RuneError,
|
||||||
|
0xdc: RuneError,
|
||||||
|
0xdd: RuneError,
|
||||||
|
0xde: RuneError,
|
||||||
|
0xdf: RuneError,
|
||||||
|
0xe0: '\\',
|
||||||
|
0xe1: '\u2007', // Non-breaking space
|
||||||
|
0xe2: 'S',
|
||||||
|
0xe3: 'T',
|
||||||
|
0xe4: 'U',
|
||||||
|
0xe5: 'V',
|
||||||
|
0xe6: 'W',
|
||||||
|
0xe7: 'X',
|
||||||
|
0xe8: 'Y',
|
||||||
|
0xe9: 'Z',
|
||||||
|
0xea: RuneError,
|
||||||
|
0xeb: RuneError,
|
||||||
|
0xec: RuneError,
|
||||||
|
0xed: RuneError,
|
||||||
|
0xee: RuneError,
|
||||||
|
0xef: RuneError,
|
||||||
|
0xf0: '0',
|
||||||
|
0xf1: '1',
|
||||||
|
0xf2: '2',
|
||||||
|
0xf3: '3',
|
||||||
|
0xf4: '4',
|
||||||
|
0xf5: '5',
|
||||||
|
0xf6: '6',
|
||||||
|
0xf7: '7',
|
||||||
|
0xf8: '8',
|
||||||
|
0xf9: '9',
|
||||||
|
0xfa: RuneError,
|
||||||
|
0xfb: RuneError,
|
||||||
|
0xfc: RuneError,
|
||||||
|
0xfd: RuneError,
|
||||||
|
0xfe: RuneError,
|
||||||
|
0xff: RuneError,
|
||||||
|
}}
|
||||||
|
cm.Init()
|
||||||
|
EBCDIC = cm
|
||||||
|
}
|
5
vendor/github.com/gdamore/encoding/go.mod
generated
vendored
Normal file
5
vendor/github.com/gdamore/encoding/go.mod
generated
vendored
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
module github.com/gdamore/encoding
|
||||||
|
|
||||||
|
go 1.9
|
||||||
|
|
||||||
|
require golang.org/x/text v0.3.0
|
2
vendor/github.com/gdamore/encoding/go.sum
generated
vendored
Normal file
2
vendor/github.com/gdamore/encoding/go.sum
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
|
||||||
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
33
vendor/github.com/gdamore/encoding/latin1.go
generated
vendored
Normal file
33
vendor/github.com/gdamore/encoding/latin1.go
generated
vendored
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
// Copyright 2015 Garrett D'Amore
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package encoding
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golang.org/x/text/encoding"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ISO8859_1 represents the 8-bit ISO8859-1 scheme. It decodes directly to
|
||||||
|
// UTF-8 without change, as all ISO8859-1 values are legal UTF-8.
|
||||||
|
// Unicode values less than 256 (i.e. 8 bits) map 1:1 with 8859-1.
|
||||||
|
// It encodes runes outside of that to 0x1A, the ASCII substitution character.
|
||||||
|
var ISO8859_1 encoding.Encoding
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
cm := &Charmap{}
|
||||||
|
cm.Init()
|
||||||
|
|
||||||
|
// 8859-1 is the 8-bit identity map for Unicode.
|
||||||
|
ISO8859_1 = cm
|
||||||
|
}
|
35
vendor/github.com/gdamore/encoding/latin5.go
generated
vendored
Normal file
35
vendor/github.com/gdamore/encoding/latin5.go
generated
vendored
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
// Copyright 2015 Garrett D'Amore
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package encoding
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golang.org/x/text/encoding"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ISO8859_9 represents the 8-bit ISO8859-9 scheme.
|
||||||
|
var ISO8859_9 encoding.Encoding
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
cm := &Charmap{Map: map[byte]rune{
|
||||||
|
0xD0: 'Ğ',
|
||||||
|
0xDD: 'İ',
|
||||||
|
0xDE: 'Ş',
|
||||||
|
0xF0: 'ğ',
|
||||||
|
0xFD: 'ı',
|
||||||
|
0xFE: 'ş',
|
||||||
|
}}
|
||||||
|
cm.Init()
|
||||||
|
ISO8859_9 = cm
|
||||||
|
}
|
35
vendor/github.com/gdamore/encoding/utf8.go
generated
vendored
Normal file
35
vendor/github.com/gdamore/encoding/utf8.go
generated
vendored
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
// Copyright 2015 Garrett D'Amore
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package encoding
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golang.org/x/text/encoding"
|
||||||
|
)
|
||||||
|
|
||||||
|
type validUtf8 struct{}
|
||||||
|
|
||||||
|
// UTF8 is an encoding for UTF-8. All it does is verify that the UTF-8
|
||||||
|
// in is valid. The main reason for its existence is that it will detect
|
||||||
|
// and report ErrSrcShort or ErrDstShort, whereas the Nop encoding just
|
||||||
|
// passes every byte, blithely.
|
||||||
|
var UTF8 encoding.Encoding = validUtf8{}
|
||||||
|
|
||||||
|
func (validUtf8) NewDecoder() *encoding.Decoder {
|
||||||
|
return &encoding.Decoder{Transformer: encoding.UTF8Validator}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (validUtf8) NewEncoder() *encoding.Encoder {
|
||||||
|
return &encoding.Encoder{Transformer: encoding.UTF8Validator}
|
||||||
|
}
|
13
vendor/github.com/gdamore/tcell/.appveyor.yml
generated
vendored
Normal file
13
vendor/github.com/gdamore/tcell/.appveyor.yml
generated
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
version: 1.0.{build}
|
||||||
|
clone_folder: c:\gopath\src\github.com\gdamore\tcell
|
||||||
|
environment:
|
||||||
|
GOPATH: c:\gopath
|
||||||
|
build_script:
|
||||||
|
- go version
|
||||||
|
- go env
|
||||||
|
- SET PATH=%LOCALAPPDATA%\atom\bin;%GOPATH%\bin;%PATH%
|
||||||
|
- go get -t ./...
|
||||||
|
- go build
|
||||||
|
- go install ./...
|
||||||
|
test_script:
|
||||||
|
- go test ./...
|
1
vendor/github.com/gdamore/tcell/.gitignore
generated
vendored
Normal file
1
vendor/github.com/gdamore/tcell/.gitignore
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
coverage.txt
|
15
vendor/github.com/gdamore/tcell/.travis.yml
generated
vendored
Normal file
15
vendor/github.com/gdamore/tcell/.travis.yml
generated
vendored
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
language: go
|
||||||
|
|
||||||
|
go:
|
||||||
|
- 1.10.x
|
||||||
|
- 1.11.x
|
||||||
|
- master
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- go get -t -v ./...
|
||||||
|
|
||||||
|
script:
|
||||||
|
- go test -race -coverprofile=coverage.txt -covermode=atomic
|
||||||
|
|
||||||
|
after_success:
|
||||||
|
- bash <(curl -s https://codecov.io/bash)
|
4
vendor/github.com/gdamore/tcell/AUTHORS
generated
vendored
Normal file
4
vendor/github.com/gdamore/tcell/AUTHORS
generated
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
Garrett D'Amore <garrett@damore.org>
|
||||||
|
Zachary Yedidia <zyedidia@gmail.com>
|
||||||
|
Junegunn Choi <junegunn.c@gmail.com>
|
||||||
|
Staysail Systems, Inc. <info@staysail.tech>
|
202
vendor/github.com/gdamore/tcell/LICENSE
generated
vendored
Normal file
202
vendor/github.com/gdamore/tcell/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,202 @@
|
||||||
|
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
279
vendor/github.com/gdamore/tcell/README.adoc
generated
vendored
Normal file
279
vendor/github.com/gdamore/tcell/README.adoc
generated
vendored
Normal file
|
@ -0,0 +1,279 @@
|
||||||
|
= tcell
|
||||||
|
|
||||||
|
|
||||||
|
image:https://img.shields.io/travis/gdamore/tcell.svg?label=linux[Linux Status,link="https://travis-ci.org/gdamore/tcell"]
|
||||||
|
image:https://img.shields.io/appveyor/ci/gdamore/tcell.svg?label=windows[Windows Status,link="https://ci.appveyor.com/project/gdamore/tcell"]
|
||||||
|
image:https://img.shields.io/badge/license-APACHE2-blue.svg[Apache License,link="https://github.com/gdamore/tcell/blob/master/LICENSE"]
|
||||||
|
image:https://img.shields.io/badge/godoc-reference-blue.svg[GoDoc,link="https://godoc.org/github.com/gdamore/tcell"]
|
||||||
|
image:http://goreportcard.com/badge/gdamore/tcell[Go Report Card,link="http://goreportcard.com/report/gdamore/tcell"]
|
||||||
|
image:https://img.shields.io/discord/639503822733180969?label=discord[Discord,link="https://discord.gg/urTTxDN"]
|
||||||
|
image:https://codecov.io/gh/gdamore/tcell/branch/master/graph/badge.svg[codecov,link="https://codecov.io/gh/gdamore/tcell"]
|
||||||
|
|
||||||
|
[cols="2",grid="none"]
|
||||||
|
|===
|
||||||
|
|_Tcell_ is a _Go_ package that provides a cell based view for text terminals, like _xterm_.
|
||||||
|
It was inspired by _termbox_, but includes many additional improvements.
|
||||||
|
a|[.right]
|
||||||
|
image::logos/tcell.png[float="right"]
|
||||||
|
|===
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
* https://github.com/gdamore/proxima5[proxima5] - space shooter (https://youtu.be/jNxKTCmY_bQ[video])
|
||||||
|
* https://github.com/gdamore/govisor[govisor] - service management UI (http://2.bp.blogspot.com/--OsvnfzSNow/Vf7aqMw3zXI/AAAAAAAAARo/uOMtOvw4Sbg/s1600/Screen%2BShot%2B2015-09-20%2Bat%2B9.08.41%2BAM.png[screenshot])
|
||||||
|
* mouse demo - included mouse test (http://2.bp.blogspot.com/-fWvW5opT0es/VhIdItdKqJI/AAAAAAAAATE/7Ojc0L1SpB0/s1600/Screen%2BShot%2B2015-10-04%2Bat%2B11.47.13%2BPM.png[screenshot])
|
||||||
|
* https://github.com/gdamore/gomatrix[gomatrix] - converted from Termbox
|
||||||
|
* https://github.com/zyedidia/micro/[micro] - lightweight text editor with syntax-highlighting and themes
|
||||||
|
* https://github.com/viktomas/godu[godu] - simple golang utility helping to discover large files/folders.
|
||||||
|
* https://github.com/rivo/tview[tview] - rich interactive widgets for terminal UIs
|
||||||
|
* https://github.com/marcusolsson/tui-go[tui-go] - UI library for terminal apps (_deprecated_)
|
||||||
|
* https://github.com/rgm3/gomandelbrot[gomandelbrot] - Mandelbrot!
|
||||||
|
* https://github.com/senorprogrammer/wtf[WTF]- Personal information dashboard for your terminal
|
||||||
|
* https://github.com/browsh-org/browsh[browsh] - A fully-modern text-based browser, rendering to TTY and browsers (https://www.youtube.com/watch?v=HZq86XfBoRo[video])
|
||||||
|
* https://github.com/sachaos/go-life[go-life] - Conway's Game of Life.
|
||||||
|
* https://github.com/gcla/gowid[gowid] - compositional widgets for terminal UIs, inspired by urwid
|
||||||
|
* https://termshark.io[termshark] - a terminal UI for tshark, inspired by Wireshark, built on gowid
|
||||||
|
* https://github.com/MichaelS11/go-tetris[go-tetris] - Go Tetris with AI option
|
||||||
|
* https://github.com/junegunn/fzf[fzf] - A command-line fuzzy finder
|
||||||
|
* https://github.com/esimov/ascii-fluid[ascii-fluid] - A terminal based ASCII fluid simulation controlled by webcam
|
||||||
|
* https://gitlab.com/tslocum/cbind[cbind] - Provides key event encoding, decoding and handling
|
||||||
|
* https://github.com/spinzed/tpong[tpong] - The old-school Pong remade in terminal
|
||||||
|
|
||||||
|
## Pure Go Terminfo Database
|
||||||
|
|
||||||
|
_Tcell_ includes a full parser and expander for terminfo capability strings,
|
||||||
|
so that it can avoid hard coding escape strings for formatting. It also favors
|
||||||
|
portability, and includes support for all POSIX systems.
|
||||||
|
|
||||||
|
The database is also flexible & extensible, and can modified by either running
|
||||||
|
a program to build the entire database, or an entry for just a single terminal.
|
||||||
|
|
||||||
|
## More Portable
|
||||||
|
|
||||||
|
_Tcell_ is portable to a wide variety of systems.
|
||||||
|
_Tcell_ is believed
|
||||||
|
to work with all of the systems officially supported by golang with
|
||||||
|
the exception of nacl (which lacks any kind of a terminal interface).
|
||||||
|
(Plan9 is not supported by _Tcell_, but it is experimental status only
|
||||||
|
in golang.) _Tcell_ is pure Go, without any need for CGO.
|
||||||
|
|
||||||
|
## No Async IO
|
||||||
|
|
||||||
|
_Tcell_ is able to operate without requiring `SIGIO` signals (unlike _termbox_),
|
||||||
|
or asynchronous I/O, and can instead use standard Go file
|
||||||
|
objects and Go routines.
|
||||||
|
This means it should be safe, especially for
|
||||||
|
use with programs that use exec, or otherwise need to manipulate the
|
||||||
|
tty streams.
|
||||||
|
This model is also much closer to idiomatic Go, leading
|
||||||
|
to fewer surprises.
|
||||||
|
|
||||||
|
## Rich Unicode & non-Unicode support
|
||||||
|
|
||||||
|
_Tcell_ includes enhanced support for Unicode, including wide characters and
|
||||||
|
combining characters, provided your terminal can support them.
|
||||||
|
Note that
|
||||||
|
Windows terminals generally don't support the full Unicode repertoire.
|
||||||
|
|
||||||
|
It will also convert to and from Unicode locales, so that the program
|
||||||
|
can work with UTF-8 internally, and get reasonable output in other locales.
|
||||||
|
_Tcell_ tries hard to convert to native characters on both input and output, and
|
||||||
|
on output _Tcell_ even makes use of the alternate character set to facilitate
|
||||||
|
drawing certain characters.
|
||||||
|
|
||||||
|
## More Function Keys
|
||||||
|
|
||||||
|
_Tcell_ also has richer support for a larger number of special keys that some terminals can send.
|
||||||
|
|
||||||
|
## Better Color Handling
|
||||||
|
|
||||||
|
_Tcell_ will respect your terminal's color space as specified within your terminfo
|
||||||
|
entries, so that for example attempts to emit color sequences on VT100 terminals
|
||||||
|
won't result in unintended consequences.
|
||||||
|
|
||||||
|
In legacy Windows mode, _Tcell_ supports 16 colors, bold, dim, and reverse,
|
||||||
|
instead of just termbox's 8 colors with reverse. (Note that there is some
|
||||||
|
conflation with bold/dim and colors.)
|
||||||
|
Modern Windows 10 can benefit from much richer colors however.
|
||||||
|
|
||||||
|
_Tcell_ maps 16 colors down to 8, for terminals that need it.
|
||||||
|
(The upper 8 colors are just brighter versions of the lower 8.)
|
||||||
|
|
||||||
|
## Better Mouse Support
|
||||||
|
|
||||||
|
_Tcell_ supports enhanced mouse tracking mode, so your application can receive
|
||||||
|
regular mouse motion events, and wheel events, if your terminal supports it.
|
||||||
|
|
||||||
|
(Note: The Windows 10 Terminal application suffers from a flaw in this regard,
|
||||||
|
and does not support mouse interaction. The stock Windows 10 console host
|
||||||
|
fired up with cmd.exe or PowerShell works fine however.)
|
||||||
|
|
||||||
|
## _Termbox_ Compatibility
|
||||||
|
|
||||||
|
A compatibility layer for _termbox_ is provided in the `compat` directory.
|
||||||
|
To use it, try importing `github.com/gdamore/tcell/termbox` instead.
|
||||||
|
Most _termbox-go_ programs will probably work without further modification.
|
||||||
|
|
||||||
|
## Working With Unicode
|
||||||
|
|
||||||
|
Internally Tcell uses UTF-8, just like Go.
|
||||||
|
However, Tcell understands how to
|
||||||
|
convert to and from other character sets, using the capabilities of
|
||||||
|
the `golang.org/x/text/encoding packages`.
|
||||||
|
Your application must supply
|
||||||
|
them, as the full set of the most common ones bloats the program by about 2MB.
|
||||||
|
If you're lazy, and want them all anyway, see the `encoding` sub-directory.
|
||||||
|
|
||||||
|
## Wide & Combining Characters
|
||||||
|
|
||||||
|
The `SetContent()` API takes a primary rune, and an optional list of combining runes.
|
||||||
|
If any of the runes is a wide (East Asian) rune occupying two cells,
|
||||||
|
then the library will skip output from the following cell, but care must be
|
||||||
|
taken in the application to avoid explicitly attempting to set content in the
|
||||||
|
next cell, otherwise the results are undefined. (Normally wide character
|
||||||
|
is displayed, and the other character is not; do not depend on that behavior.)
|
||||||
|
|
||||||
|
Experience has shown that the vanilla Windows 8 console application does not
|
||||||
|
support any of these characters properly, but at least some options like
|
||||||
|
_ConEmu_ do support Wide characters.
|
||||||
|
|
||||||
|
## Colors
|
||||||
|
|
||||||
|
_Tcell_ assumes the ANSI/XTerm color model, including the 256 color map that
|
||||||
|
XTerm uses when it supports 256 colors. The terminfo guidance will be
|
||||||
|
honored, with respect to the number of colors supported. Also, only
|
||||||
|
terminals which expose ANSI style `setaf` and `setab` will support color;
|
||||||
|
if you have a color terminal that only has `setf` and `setb`, please let me
|
||||||
|
know; it wouldn't be hard to add that if there is need.
|
||||||
|
|
||||||
|
## 24-bit Color
|
||||||
|
|
||||||
|
_Tcell_ _supports true color_! (That is, if your terminal can support it,
|
||||||
|
_Tcell_ can accurately display 24-bit color.)
|
||||||
|
|
||||||
|
To use 24-bit color, you need to use a terminal that supports it. Modern
|
||||||
|
xterm and similar teminal emulators can support this. As terminfo lacks any
|
||||||
|
way to describe this capability, we fabricate the capability for
|
||||||
|
terminals with names ending in `*-truecolor`. The stock distribution ships
|
||||||
|
with a database that defines `xterm-truecolor`.
|
||||||
|
To try it out, set your
|
||||||
|
`TERM` variable to `xterm-truecolor`.
|
||||||
|
|
||||||
|
When using TrueColor, programs will display the colors that the programmer
|
||||||
|
intended, overriding any "`themes`" you may have set in your terminal
|
||||||
|
emulator. (For some cases, accurate color fidelity is more important
|
||||||
|
than respecting themes. For other cases, such as typical text apps that
|
||||||
|
only use a few colors, its more desirable to respect the themes that
|
||||||
|
the user has established.)
|
||||||
|
|
||||||
|
If you find this undesirable, you can either use a `TERM` variable
|
||||||
|
that lacks the `TRUECOLOR` setting, or set `TCELL_TRUECOLOR=disable` in your
|
||||||
|
environment.
|
||||||
|
|
||||||
|
## Performance
|
||||||
|
|
||||||
|
Reasonable attempts have been made to minimize sending data to terminals,
|
||||||
|
avoiding repeated sequences or drawing the same cell on refresh updates.
|
||||||
|
|
||||||
|
## Terminfo
|
||||||
|
|
||||||
|
(Not relevent for Windows users.)
|
||||||
|
|
||||||
|
The Terminfo implementation operates with two forms of database. The first
|
||||||
|
is the built-in go database, which contains a number of real database entries
|
||||||
|
that are compiled into the program directly. This should minimize calling
|
||||||
|
out to database file searches.
|
||||||
|
|
||||||
|
The second is in the form of JSON files, that contain the same information,
|
||||||
|
which can be located either by the `$TCELLDB` environment file, `$HOME/.tcelldb`,
|
||||||
|
or is located in the Go source directory as `database.json`.
|
||||||
|
|
||||||
|
These files (both the Go and the JSON files) can be generated using the
|
||||||
|
mkinfo.go program. If you need to regnerate the entire set for some reason,
|
||||||
|
run the mkdatabase.sh file. The generation uses the infocmp(1) program on
|
||||||
|
the system to collect the necessary information.
|
||||||
|
|
||||||
|
The `mkinfo.go` program can also be used to generate specific database entries
|
||||||
|
for named terminals, in case your favorite terminal is missing. (If you
|
||||||
|
find that this is the case, please let me know and I'll try to add it!)
|
||||||
|
|
||||||
|
_Tcell_ requires that the terminal support the `cup` mode of cursor addressing.
|
||||||
|
Terminals without absolute cursor addressability are not supported.
|
||||||
|
This is unlikely to be a problem; such terminals have not been mass produced
|
||||||
|
since the early 1970s.
|
||||||
|
|
||||||
|
## Mouse Support
|
||||||
|
|
||||||
|
Mouse support is detected via the `kmous` terminfo variable, however,
|
||||||
|
enablement/disablement and decoding mouse events is done using hard coded
|
||||||
|
sequences based on the XTerm X11 model. As of this writing all popular
|
||||||
|
terminals with mouse tracking support this model. (Full terminfo support
|
||||||
|
is not possible as terminfo sequences are not defined.)
|
||||||
|
|
||||||
|
On Windows, the mouse works normally.
|
||||||
|
|
||||||
|
Mouse wheel buttons on various terminals are known to work, but the support
|
||||||
|
in terminal emulators, as well as support for various buttons and
|
||||||
|
live mouse tracking, varies widely. Modern _xterm_, macOS _Terminal_, and _iTerm_ all work well.
|
||||||
|
|
||||||
|
## Testablity
|
||||||
|
|
||||||
|
There is a `SimulationScreen`, that can be used to simulate a real screen
|
||||||
|
for automated testing. The supplied tests do this. The simulation contains
|
||||||
|
event delivery, screen resizing support, and capabilities to inject events
|
||||||
|
and examine "`physical`" screen contents.
|
||||||
|
|
||||||
|
## Platforms
|
||||||
|
|
||||||
|
### POSIX (Linux, FreeBSD, macOS, Solaris, etc.)
|
||||||
|
|
||||||
|
For mainstream systems with a suitably well defined system call interface
|
||||||
|
to tty settings, everything works using pure Go.
|
||||||
|
|
||||||
|
For the remainder (right now means only Solaris/illumos) we use POSIX function
|
||||||
|
calls to manage termios, which implies that CGO is required on those platforms.
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
Windows console mode applications are supported. Unfortunately _mintty_
|
||||||
|
and other _cygwin_ style applications are not supported.
|
||||||
|
|
||||||
|
Modern console applications like ConEmu, as well as the Windows 10
|
||||||
|
console itself, support all the good features (resize, mouse tracking, etc.)
|
||||||
|
|
||||||
|
I haven't figured out how to cleanly resolve the dichotomy between cygwin
|
||||||
|
style termios and the Windows Console API; it seems that perhaps nobody else
|
||||||
|
has either. If anyone has suggestions, let me know! Really, if you're
|
||||||
|
using a Windows application, you should use the native Windows console or a
|
||||||
|
fully compatible console implementation.
|
||||||
|
|
||||||
|
### Plan9 and Native Client (Nacl)
|
||||||
|
|
||||||
|
The nacl and plan9 platforms won't work, but compilation stubs are supplied
|
||||||
|
for folks that want to include parts of this in software targetting those
|
||||||
|
platforms. The Simulation screen works, but as Tcell doesn't know how to
|
||||||
|
allocate a real screen object on those platforms, `NewScreen()` will fail.
|
||||||
|
|
||||||
|
If anyone has wisdom about how to improve support for either of these,
|
||||||
|
please let me know. PRs are especially welcome.
|
||||||
|
|
||||||
|
### Commercial Support
|
||||||
|
|
||||||
|
_Tcell_ is absolutely free, but if you want to obtain commercial, professional support, there are options.
|
||||||
|
|
||||||
|
[cols="2",align="center",frame="none", grid="none"]
|
||||||
|
|===
|
||||||
|
^.^|
|
||||||
|
image:logos/tidelift.png[100,100]
|
||||||
|
a|
|
||||||
|
https://tidelift.com/[Tidelift] subscriptions include support for _Tcell_, as well as many other open source packages.
|
||||||
|
|
||||||
|
^.^|
|
||||||
|
image:logos/staysail.png[100,100]
|
||||||
|
a|
|
||||||
|
mailto:info@staysail.tech[Staysail Systems, Inc.] offers direct support, and custom development around _Tcell_ on an hourly basis.
|
||||||
|
|
||||||
|
^.^|
|
||||||
|
image:logos/patreon.png[100,100]
|
||||||
|
a|I also welcome donations at https://www.patreon.com/gedamore/[Patreon], if you just want to make a contribution.
|
||||||
|
|===
|
33
vendor/github.com/gdamore/tcell/attr.go
generated
vendored
Normal file
33
vendor/github.com/gdamore/tcell/attr.go
generated
vendored
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
// Copyright 2015 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
// AttrMask represents a mask of text attributes, apart from color.
|
||||||
|
// Note that support for attributes may vary widely across terminals.
|
||||||
|
type AttrMask int
|
||||||
|
|
||||||
|
// Attributes are not colors, but affect the display of text. They can
|
||||||
|
// be combined.
|
||||||
|
const (
|
||||||
|
AttrBold AttrMask = 1 << (25 + iota)
|
||||||
|
AttrBlink
|
||||||
|
AttrReverse
|
||||||
|
AttrUnderline
|
||||||
|
AttrDim
|
||||||
|
AttrItalic
|
||||||
|
AttrNone AttrMask = 0 // Just normal text.
|
||||||
|
)
|
||||||
|
|
||||||
|
const attrAll = AttrBold | AttrBlink | AttrReverse | AttrUnderline | AttrDim | AttrItalic
|
177
vendor/github.com/gdamore/tcell/cell.go
generated
vendored
Normal file
177
vendor/github.com/gdamore/tcell/cell.go
generated
vendored
Normal file
|
@ -0,0 +1,177 @@
|
||||||
|
// Copyright 2019 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
import (
|
||||||
|
runewidth "github.com/mattn/go-runewidth"
|
||||||
|
)
|
||||||
|
|
||||||
|
type cell struct {
|
||||||
|
currMain rune
|
||||||
|
currComb []rune
|
||||||
|
currStyle Style
|
||||||
|
lastMain rune
|
||||||
|
lastStyle Style
|
||||||
|
lastComb []rune
|
||||||
|
width int
|
||||||
|
}
|
||||||
|
|
||||||
|
// CellBuffer represents a two dimensional array of character cells.
|
||||||
|
// This is primarily intended for use by Screen implementors; it
|
||||||
|
// contains much of the common code they need. To create one, just
|
||||||
|
// declare a variable of its type; no explicit initialization is necessary.
|
||||||
|
//
|
||||||
|
// CellBuffer is not thread safe.
|
||||||
|
type CellBuffer struct {
|
||||||
|
w int
|
||||||
|
h int
|
||||||
|
cells []cell
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetContent sets the contents (primary rune, combining runes,
|
||||||
|
// and style) for a cell at a given location.
|
||||||
|
func (cb *CellBuffer) SetContent(x int, y int,
|
||||||
|
mainc rune, combc []rune, style Style) {
|
||||||
|
|
||||||
|
if x >= 0 && y >= 0 && x < cb.w && y < cb.h {
|
||||||
|
c := &cb.cells[(y*cb.w)+x]
|
||||||
|
|
||||||
|
c.currComb = append([]rune{}, combc...)
|
||||||
|
|
||||||
|
if c.currMain != mainc {
|
||||||
|
c.width = runewidth.RuneWidth(mainc)
|
||||||
|
}
|
||||||
|
c.currMain = mainc
|
||||||
|
c.currStyle = style
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetContent returns the contents of a character cell, including the
|
||||||
|
// primary rune, any combining character runes (which will usually be
|
||||||
|
// nil), the style, and the display width in cells. (The width can be
|
||||||
|
// either 1, normally, or 2 for East Asian full-width characters.)
|
||||||
|
func (cb *CellBuffer) GetContent(x, y int) (rune, []rune, Style, int) {
|
||||||
|
var mainc rune
|
||||||
|
var combc []rune
|
||||||
|
var style Style
|
||||||
|
var width int
|
||||||
|
if x >= 0 && y >= 0 && x < cb.w && y < cb.h {
|
||||||
|
c := &cb.cells[(y*cb.w)+x]
|
||||||
|
mainc, combc, style = c.currMain, c.currComb, c.currStyle
|
||||||
|
if width = c.width; width == 0 || mainc < ' ' {
|
||||||
|
width = 1
|
||||||
|
mainc = ' '
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mainc, combc, style, width
|
||||||
|
}
|
||||||
|
|
||||||
|
// Size returns the (width, height) in cells of the buffer.
|
||||||
|
func (cb *CellBuffer) Size() (int, int) {
|
||||||
|
return cb.w, cb.h
|
||||||
|
}
|
||||||
|
|
||||||
|
// Invalidate marks all characters within the buffer as dirty.
|
||||||
|
func (cb *CellBuffer) Invalidate() {
|
||||||
|
for i := range cb.cells {
|
||||||
|
cb.cells[i].lastMain = rune(0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dirty checks if a character at the given location needs an
|
||||||
|
// to be refreshed on the physical display. This returns true
|
||||||
|
// if the cell content is different since the last time it was
|
||||||
|
// marked clean.
|
||||||
|
func (cb *CellBuffer) Dirty(x, y int) bool {
|
||||||
|
if x >= 0 && y >= 0 && x < cb.w && y < cb.h {
|
||||||
|
c := &cb.cells[(y*cb.w)+x]
|
||||||
|
if c.lastMain == rune(0) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if c.lastMain != c.currMain {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if c.lastStyle != c.currStyle {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if len(c.lastComb) != len(c.currComb) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
for i := range c.lastComb {
|
||||||
|
if c.lastComb[i] != c.currComb[i] {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetDirty is normally used to indicate that a cell has
|
||||||
|
// been displayed (in which case dirty is false), or to manually
|
||||||
|
// force a cell to be marked dirty.
|
||||||
|
func (cb *CellBuffer) SetDirty(x, y int, dirty bool) {
|
||||||
|
if x >= 0 && y >= 0 && x < cb.w && y < cb.h {
|
||||||
|
c := &cb.cells[(y*cb.w)+x]
|
||||||
|
if dirty {
|
||||||
|
c.lastMain = rune(0)
|
||||||
|
} else {
|
||||||
|
if c.currMain == rune(0) {
|
||||||
|
c.currMain = ' '
|
||||||
|
}
|
||||||
|
c.lastMain = c.currMain
|
||||||
|
c.lastComb = c.currComb
|
||||||
|
c.lastStyle = c.currStyle
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Resize is used to resize the cells array, with different dimensions,
|
||||||
|
// while preserving the original contents. The cells will be invalidated
|
||||||
|
// so that they can be redrawn.
|
||||||
|
func (cb *CellBuffer) Resize(w, h int) {
|
||||||
|
|
||||||
|
if cb.h == h && cb.w == w {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
newc := make([]cell, w*h)
|
||||||
|
for y := 0; y < h && y < cb.h; y++ {
|
||||||
|
for x := 0; x < w && x < cb.w; x++ {
|
||||||
|
oc := &cb.cells[(y*cb.w)+x]
|
||||||
|
nc := &newc[(y*w)+x]
|
||||||
|
nc.currMain = oc.currMain
|
||||||
|
nc.currComb = oc.currComb
|
||||||
|
nc.currStyle = oc.currStyle
|
||||||
|
nc.width = oc.width
|
||||||
|
nc.lastMain = rune(0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cb.cells = newc
|
||||||
|
cb.h = h
|
||||||
|
cb.w = w
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fill fills the entire cell buffer array with the specified character
|
||||||
|
// and style. Normally choose ' ' to clear the screen. This API doesn't
|
||||||
|
// support combining characters, or characters with a width larger than one.
|
||||||
|
func (cb *CellBuffer) Fill(r rune, style Style) {
|
||||||
|
for i := range cb.cells {
|
||||||
|
c := &cb.cells[i]
|
||||||
|
c.currMain = r
|
||||||
|
c.currComb = nil
|
||||||
|
c.currStyle = style
|
||||||
|
c.width = 1
|
||||||
|
}
|
||||||
|
}
|
21
vendor/github.com/gdamore/tcell/charset_stub.go
generated
vendored
Normal file
21
vendor/github.com/gdamore/tcell/charset_stub.go
generated
vendored
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
// +build plan9 nacl
|
||||||
|
|
||||||
|
// Copyright 2015 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
func getCharset() string {
|
||||||
|
return ""
|
||||||
|
}
|
49
vendor/github.com/gdamore/tcell/charset_unix.go
generated
vendored
Normal file
49
vendor/github.com/gdamore/tcell/charset_unix.go
generated
vendored
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
// +build !windows,!nacl,!plan9
|
||||||
|
|
||||||
|
// Copyright 2016 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func getCharset() string {
|
||||||
|
// Determine the character set. This can help us later.
|
||||||
|
// Per POSIX, we search for LC_ALL first, then LC_CTYPE, and
|
||||||
|
// finally LANG. First one set wins.
|
||||||
|
locale := ""
|
||||||
|
if locale = os.Getenv("LC_ALL"); locale == "" {
|
||||||
|
if locale = os.Getenv("LC_CTYPE"); locale == "" {
|
||||||
|
locale = os.Getenv("LANG")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if locale == "POSIX" || locale == "C" {
|
||||||
|
return "US-ASCII"
|
||||||
|
}
|
||||||
|
if i := strings.IndexRune(locale, '@'); i >= 0 {
|
||||||
|
locale = locale[:i]
|
||||||
|
}
|
||||||
|
if i := strings.IndexRune(locale, '.'); i >= 0 {
|
||||||
|
locale = locale[i+1:]
|
||||||
|
} else {
|
||||||
|
// Default assumption, and on Linux we can see LC_ALL
|
||||||
|
// without a character set, which we assume implies UTF-8.
|
||||||
|
return "UTF-8"
|
||||||
|
}
|
||||||
|
// XXX: add support for aliases
|
||||||
|
return locale
|
||||||
|
}
|
21
vendor/github.com/gdamore/tcell/charset_windows.go
generated
vendored
Normal file
21
vendor/github.com/gdamore/tcell/charset_windows.go
generated
vendored
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
// +build windows
|
||||||
|
|
||||||
|
// Copyright 2015 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
func getCharset() string {
|
||||||
|
return "UTF-16"
|
||||||
|
}
|
1019
vendor/github.com/gdamore/tcell/color.go
generated
vendored
Normal file
1019
vendor/github.com/gdamore/tcell/color.go
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
52
vendor/github.com/gdamore/tcell/colorfit.go
generated
vendored
Normal file
52
vendor/github.com/gdamore/tcell/colorfit.go
generated
vendored
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
// Copyright 2016 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/lucasb-eyer/go-colorful"
|
||||||
|
"math"
|
||||||
|
)
|
||||||
|
|
||||||
|
// FindColor attempts to find a given color, or the best match possible for it,
|
||||||
|
// from the palette given. This is an expensive operation, so results should
|
||||||
|
// be cached by the caller.
|
||||||
|
func FindColor(c Color, palette []Color) Color {
|
||||||
|
match := ColorDefault
|
||||||
|
dist := float64(0)
|
||||||
|
r, g, b := c.RGB()
|
||||||
|
c1 := colorful.Color{
|
||||||
|
R: float64(r) / 255.0,
|
||||||
|
G: float64(g) / 255.0,
|
||||||
|
B: float64(b) / 255.0,
|
||||||
|
}
|
||||||
|
for _, d := range palette {
|
||||||
|
r, g, b = d.RGB()
|
||||||
|
c2 := colorful.Color{
|
||||||
|
R: float64(r) / 255.0,
|
||||||
|
G: float64(g) / 255.0,
|
||||||
|
B: float64(b) / 255.0,
|
||||||
|
}
|
||||||
|
// CIE94 is more accurate, but really really expensive.
|
||||||
|
nd := c1.DistanceCIE76(c2)
|
||||||
|
if math.IsNaN(nd) {
|
||||||
|
nd = math.Inf(1)
|
||||||
|
}
|
||||||
|
if match == ColorDefault || nd < dist {
|
||||||
|
match = d
|
||||||
|
dist = nd
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return match
|
||||||
|
}
|
23
vendor/github.com/gdamore/tcell/console_stub.go
generated
vendored
Normal file
23
vendor/github.com/gdamore/tcell/console_stub.go
generated
vendored
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
// +build !windows
|
||||||
|
|
||||||
|
// Copyright 2015 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
// NewConsoleScreen returns a console based screen. This platform
|
||||||
|
// doesn't have support for any, so it returns nil and a suitable error.
|
||||||
|
func NewConsoleScreen() (Screen, error) {
|
||||||
|
return nil, ErrNoScreen
|
||||||
|
}
|
1170
vendor/github.com/gdamore/tcell/console_win.go
generated
vendored
Normal file
1170
vendor/github.com/gdamore/tcell/console_win.go
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
48
vendor/github.com/gdamore/tcell/doc.go
generated
vendored
Normal file
48
vendor/github.com/gdamore/tcell/doc.go
generated
vendored
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
// Copyright 2018 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
// Package tcell provides a lower-level, portable API for building
|
||||||
|
// programs that interact with terminals or consoles. It works with
|
||||||
|
// both common (and many uncommon!) terminals or terminal emulators,
|
||||||
|
// and Windows console implementations.
|
||||||
|
//
|
||||||
|
// It provides support for up to 256 colors, text attributes, and box drawing
|
||||||
|
// elements. A database of terminals built from a real terminfo database
|
||||||
|
// is provided, along with code to generate new database entries.
|
||||||
|
//
|
||||||
|
// Tcell offers very rich support for mice, dependent upon the terminal
|
||||||
|
// of course. (Windows, XTerm, and iTerm 2 are known to work very well.)
|
||||||
|
//
|
||||||
|
// If the environment is not Unicode by default, such as an ISO8859 based
|
||||||
|
// locale or GB18030, Tcell can convert input and output, so that your
|
||||||
|
// terminal can operate in whatever locale is most convenient, while the
|
||||||
|
// application program can just assume "everything is UTF-8". Reasonable
|
||||||
|
// defaults are used for updating characters to something suitable for
|
||||||
|
// display. Unicode box drawing characters will be converted to use the
|
||||||
|
// alternate character set of your terminal, if native conversions are
|
||||||
|
// not available. If no ACS is available, then some ASCII fallbacks will
|
||||||
|
// be used.
|
||||||
|
//
|
||||||
|
// Note that support for non-UTF-8 locales (other than C) must be enabled
|
||||||
|
// by the application using RegisterEncoding() -- we don't have them all
|
||||||
|
// enabled by default to avoid bloating the application unneccessarily.
|
||||||
|
// (These days UTF-8 is good enough for almost everyone, and nobody should
|
||||||
|
// be using legacy locales anymore.) Also, actual glyphs for various code
|
||||||
|
// point will only be displayed if your terminal or emulator (or the font
|
||||||
|
// the emulator is using) supports them.
|
||||||
|
//
|
||||||
|
// A rich set of keycodes is supported, with support for up to 65 function
|
||||||
|
// keys, and various other special keys.
|
||||||
|
//
|
||||||
|
package tcell
|
139
vendor/github.com/gdamore/tcell/encoding.go
generated
vendored
Normal file
139
vendor/github.com/gdamore/tcell/encoding.go
generated
vendored
Normal file
|
@ -0,0 +1,139 @@
|
||||||
|
// Copyright 2015 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strings"
|
||||||
|
"sync"
|
||||||
|
|
||||||
|
"golang.org/x/text/encoding"
|
||||||
|
|
||||||
|
gencoding "github.com/gdamore/encoding"
|
||||||
|
)
|
||||||
|
|
||||||
|
var encodings map[string]encoding.Encoding
|
||||||
|
var encodingLk sync.Mutex
|
||||||
|
var encodingFallback EncodingFallback = EncodingFallbackFail
|
||||||
|
|
||||||
|
// RegisterEncoding may be called by the application to register an encoding.
|
||||||
|
// The presence of additional encodings will facilitate application usage with
|
||||||
|
// terminal environments where the I/O subsystem does not support Unicode.
|
||||||
|
//
|
||||||
|
// Windows systems use Unicode natively, and do not need any of the encoding
|
||||||
|
// subsystem when using Windows Console screens.
|
||||||
|
//
|
||||||
|
// Please see the Go documentation for golang.org/x/text/encoding -- most of
|
||||||
|
// the common ones exist already as stock variables. For example, ISO8859-15
|
||||||
|
// can be registered using the following code:
|
||||||
|
//
|
||||||
|
// import "golang.org/x/text/encoding/charmap"
|
||||||
|
//
|
||||||
|
// ...
|
||||||
|
// RegisterEncoding("ISO8859-15", charmap.ISO8859_15)
|
||||||
|
//
|
||||||
|
// Aliases can be registered as well, for example "8859-15" could be an alias
|
||||||
|
// for "ISO8859-15".
|
||||||
|
//
|
||||||
|
// For POSIX systems, the tcell package will check the environment variables
|
||||||
|
// LC_ALL, LC_CTYPE, and LANG (in that order) to determine the character set.
|
||||||
|
// These are expected to have the following pattern:
|
||||||
|
//
|
||||||
|
// $language[.$codeset[@$variant]
|
||||||
|
//
|
||||||
|
// We extract only the $codeset part, which will usually be something like
|
||||||
|
// UTF-8 or ISO8859-15 or KOI8-R. Note that if the locale is either "POSIX"
|
||||||
|
// or "C", then we assume US-ASCII (the POSIX 'portable character set'
|
||||||
|
// and assume all other characters are somehow invalid.)
|
||||||
|
//
|
||||||
|
// Modern POSIX systems and terminal emulators may use UTF-8, and for those
|
||||||
|
// systems, this API is also unnecessary. For example, Darwin (MacOS X) and
|
||||||
|
// modern Linux running modern xterm generally will out of the box without
|
||||||
|
// any of this. Use of UTF-8 is recommended when possible, as it saves
|
||||||
|
// quite a lot processing overhead.
|
||||||
|
//
|
||||||
|
// Note that some encodings are quite large (for example GB18030 which is a
|
||||||
|
// superset of Unicode) and so the application size can be expected ot
|
||||||
|
// increase quite a bit as each encoding is added. The East Asian encodings
|
||||||
|
// have been seen to add 100-200K per encoding to the application size.
|
||||||
|
//
|
||||||
|
func RegisterEncoding(charset string, enc encoding.Encoding) {
|
||||||
|
encodingLk.Lock()
|
||||||
|
charset = strings.ToLower(charset)
|
||||||
|
encodings[charset] = enc
|
||||||
|
encodingLk.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
// EncodingFallback describes how the system behavees when the locale
|
||||||
|
// requires a character set that we do not support. The system always
|
||||||
|
// supports UTF-8 and US-ASCII. On Windows consoles, UTF-16LE is also
|
||||||
|
// supported automatically. Other character sets must be added using the
|
||||||
|
// RegisterEncoding API. (A large group of nearly all of them can be
|
||||||
|
// added using the RegisterAll function in the encoding sub package.)
|
||||||
|
type EncodingFallback int
|
||||||
|
|
||||||
|
const (
|
||||||
|
// EncodingFallbackFail behavior causes GetEncoding to fail
|
||||||
|
// when it cannot find an encoding.
|
||||||
|
EncodingFallbackFail = iota
|
||||||
|
|
||||||
|
// EncodingFallbackASCII behaviore causes GetEncoding to fall back
|
||||||
|
// to a 7-bit ASCII encoding, if no other encoding can be found.
|
||||||
|
EncodingFallbackASCII
|
||||||
|
|
||||||
|
// EncodingFallbackUTF8 behavior causes GetEncoding to assume
|
||||||
|
// UTF8 can pass unmodified upon failure. Note that this behavior
|
||||||
|
// is not recommended, unless you are sure your terminal can cope
|
||||||
|
// with real UTF8 sequences.
|
||||||
|
EncodingFallbackUTF8
|
||||||
|
)
|
||||||
|
|
||||||
|
// SetEncodingFallback changes the behavior of GetEncoding when a suitable
|
||||||
|
// encoding is not found. The default is EncodingFallbackFail, which
|
||||||
|
// causes GetEncoding to simply return nil.
|
||||||
|
func SetEncodingFallback(fb EncodingFallback) {
|
||||||
|
encodingLk.Lock()
|
||||||
|
encodingFallback = fb
|
||||||
|
encodingLk.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetEncoding is used by Screen implementors who want to locate an encoding
|
||||||
|
// for the given character set name. Note that this will return nil for
|
||||||
|
// either the Unicode (UTF-8) or ASCII encodings, since we don't use
|
||||||
|
// encodings for them but instead have our own native methods.
|
||||||
|
func GetEncoding(charset string) encoding.Encoding {
|
||||||
|
charset = strings.ToLower(charset)
|
||||||
|
encodingLk.Lock()
|
||||||
|
defer encodingLk.Unlock()
|
||||||
|
if enc, ok := encodings[charset]; ok {
|
||||||
|
return enc
|
||||||
|
}
|
||||||
|
switch encodingFallback {
|
||||||
|
case EncodingFallbackASCII:
|
||||||
|
return gencoding.ASCII
|
||||||
|
case EncodingFallbackUTF8:
|
||||||
|
return encoding.Nop
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
// We always support UTF-8 and ASCII.
|
||||||
|
encodings = make(map[string]encoding.Encoding)
|
||||||
|
encodings["utf-8"] = gencoding.UTF8
|
||||||
|
encodings["utf8"] = gencoding.UTF8
|
||||||
|
encodings["us-ascii"] = gencoding.ASCII
|
||||||
|
encodings["ascii"] = gencoding.ASCII
|
||||||
|
encodings["iso646"] = gencoding.ASCII
|
||||||
|
}
|
73
vendor/github.com/gdamore/tcell/errors.go
generated
vendored
Normal file
73
vendor/github.com/gdamore/tcell/errors.go
generated
vendored
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
// Copyright 2015 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/gdamore/tcell/terminfo"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
// ErrTermNotFound indicates that a suitable terminal entry could
|
||||||
|
// not be found. This can result from either not having TERM set,
|
||||||
|
// or from the TERM failing to support certain minimal functionality,
|
||||||
|
// in particular absolute cursor addressability (the cup capability)
|
||||||
|
// is required. For example, legacy "adm3" lacks this capability,
|
||||||
|
// whereas the slightly newer "adm3a" supports it. This failure
|
||||||
|
// occurs most often with "dumb".
|
||||||
|
ErrTermNotFound = terminfo.ErrTermNotFound
|
||||||
|
|
||||||
|
// ErrNoScreen indicates that no suitable screen could be found.
|
||||||
|
// This may result from attempting to run on a platform where there
|
||||||
|
// is no support for either termios or console I/O (such as nacl),
|
||||||
|
// or from running in an environment where there is no access to
|
||||||
|
// a suitable console/terminal device. (For example, running on
|
||||||
|
// without a controlling TTY or with no /dev/tty on POSIX platforms.)
|
||||||
|
ErrNoScreen = errors.New("no suitable screen available")
|
||||||
|
|
||||||
|
// ErrNoCharset indicates that the locale environment the
|
||||||
|
// program is not supported by the program, because no suitable
|
||||||
|
// encoding was found for it. This problem never occurs if
|
||||||
|
// the environment is UTF-8 or UTF-16.
|
||||||
|
ErrNoCharset = errors.New("character set not supported")
|
||||||
|
|
||||||
|
// ErrEventQFull indicates that the event queue is full, and
|
||||||
|
// cannot accept more events.
|
||||||
|
ErrEventQFull = errors.New("event queue full")
|
||||||
|
)
|
||||||
|
|
||||||
|
// An EventError is an event representing some sort of error, and carries
|
||||||
|
// an error payload.
|
||||||
|
type EventError struct {
|
||||||
|
t time.Time
|
||||||
|
err error
|
||||||
|
}
|
||||||
|
|
||||||
|
// When returns the time when the event was created.
|
||||||
|
func (ev *EventError) When() time.Time {
|
||||||
|
return ev.t
|
||||||
|
}
|
||||||
|
|
||||||
|
// Error implements the error.
|
||||||
|
func (ev *EventError) Error() string {
|
||||||
|
return ev.err.Error()
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewEventError creates an ErrorEvent with the given error payload.
|
||||||
|
func NewEventError(err error) *EventError {
|
||||||
|
return &EventError{t: time.Now(), err: err}
|
||||||
|
}
|
53
vendor/github.com/gdamore/tcell/event.go
generated
vendored
Normal file
53
vendor/github.com/gdamore/tcell/event.go
generated
vendored
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
// Copyright 2015 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Event is a generic interface used for passing around Events.
|
||||||
|
// Concrete types follow.
|
||||||
|
type Event interface {
|
||||||
|
// When reports the time when the event was generated.
|
||||||
|
When() time.Time
|
||||||
|
}
|
||||||
|
|
||||||
|
// EventTime is a simple base event class, suitable for easy reuse.
|
||||||
|
// It can be used to deliver actual timer events as well.
|
||||||
|
type EventTime struct {
|
||||||
|
when time.Time
|
||||||
|
}
|
||||||
|
|
||||||
|
// When returns the time stamp when the event occurred.
|
||||||
|
func (e *EventTime) When() time.Time {
|
||||||
|
return e.when
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetEventTime sets the time of occurrence for the event.
|
||||||
|
func (e *EventTime) SetEventTime(t time.Time) {
|
||||||
|
e.when = t
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetEventNow sets the time of occurrence for the event to the current time.
|
||||||
|
func (e *EventTime) SetEventNow() {
|
||||||
|
e.SetEventTime(time.Now())
|
||||||
|
}
|
||||||
|
|
||||||
|
// EventHandler is anything that handles events. If the handler has
|
||||||
|
// consumed the event, it should return true. False otherwise.
|
||||||
|
type EventHandler interface {
|
||||||
|
HandleEvent(Event) bool
|
||||||
|
}
|
11
vendor/github.com/gdamore/tcell/go.mod
generated
vendored
Normal file
11
vendor/github.com/gdamore/tcell/go.mod
generated
vendored
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
module github.com/gdamore/tcell
|
||||||
|
|
||||||
|
go 1.12
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/gdamore/encoding v1.0.0
|
||||||
|
github.com/lucasb-eyer/go-colorful v1.0.3
|
||||||
|
github.com/mattn/go-runewidth v0.0.7
|
||||||
|
golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756
|
||||||
|
golang.org/x/text v0.3.0
|
||||||
|
)
|
10
vendor/github.com/gdamore/tcell/go.sum
generated
vendored
Normal file
10
vendor/github.com/gdamore/tcell/go.sum
generated
vendored
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko=
|
||||||
|
github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg=
|
||||||
|
github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac=
|
||||||
|
github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
|
||||||
|
github.com/mattn/go-runewidth v0.0.7 h1:Ei8KR0497xHyKJPAv59M1dkC+rOZCMBJ+t3fZ+twI54=
|
||||||
|
github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
|
||||||
|
golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756 h1:9nuHUbU8dRnRRfj9KjWUVrJeoexdbeMjttk6Oh1rD10=
|
||||||
|
golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
|
||||||
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
41
vendor/github.com/gdamore/tcell/interrupt.go
generated
vendored
Normal file
41
vendor/github.com/gdamore/tcell/interrupt.go
generated
vendored
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
// Copyright 2015 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// EventInterrupt is a generic wakeup event. Its can be used to
|
||||||
|
// to request a redraw. It can carry an arbitrary payload, as well.
|
||||||
|
type EventInterrupt struct {
|
||||||
|
t time.Time
|
||||||
|
v interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// When returns the time when this event was created.
|
||||||
|
func (ev *EventInterrupt) When() time.Time {
|
||||||
|
return ev.t
|
||||||
|
}
|
||||||
|
|
||||||
|
// Data is used to obtain the opaque event payload.
|
||||||
|
func (ev *EventInterrupt) Data() interface{} {
|
||||||
|
return ev.v
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewEventInterrupt creates an EventInterrupt with the given payload.
|
||||||
|
func NewEventInterrupt(data interface{}) *EventInterrupt {
|
||||||
|
return &EventInterrupt{t: time.Now(), v: data}
|
||||||
|
}
|
464
vendor/github.com/gdamore/tcell/key.go
generated
vendored
Normal file
464
vendor/github.com/gdamore/tcell/key.go
generated
vendored
Normal file
|
@ -0,0 +1,464 @@
|
||||||
|
// Copyright 2016 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// EventKey represents a key press. Usually this is a key press followed
|
||||||
|
// by a key release, but since terminal programs don't have a way to report
|
||||||
|
// key release events, we usually get just one event. If a key is held down
|
||||||
|
// then the terminal may synthesize repeated key presses at some predefined
|
||||||
|
// rate. We have no control over that, nor visibility into it.
|
||||||
|
//
|
||||||
|
// In some cases, we can have a modifier key, such as ModAlt, that can be
|
||||||
|
// generated with a key press. (This usually is represented by having the
|
||||||
|
// high bit set, or in some cases, by sending an ESC prior to the rune.)
|
||||||
|
//
|
||||||
|
// If the value of Key() is KeyRune, then the actual key value will be
|
||||||
|
// available with the Rune() method. This will be the case for most keys.
|
||||||
|
// In most situations, the modifiers will not be set. For example, if the
|
||||||
|
// rune is 'A', this will be reported without the ModShift bit set, since
|
||||||
|
// really can't tell if the Shift key was pressed (it might have been CAPSLOCK,
|
||||||
|
// or a terminal that only can send capitals, or keyboard with separate
|
||||||
|
// capital letters from lower case letters).
|
||||||
|
//
|
||||||
|
// Generally, terminal applications have far less visibility into keyboard
|
||||||
|
// activity than graphical applications. Hence, they should avoid depending
|
||||||
|
// overly much on availability of modifiers, or the availability of any
|
||||||
|
// specific keys.
|
||||||
|
type EventKey struct {
|
||||||
|
t time.Time
|
||||||
|
mod ModMask
|
||||||
|
key Key
|
||||||
|
ch rune
|
||||||
|
}
|
||||||
|
|
||||||
|
// When returns the time when this Event was created, which should closely
|
||||||
|
// match the time when the key was pressed.
|
||||||
|
func (ev *EventKey) When() time.Time {
|
||||||
|
return ev.t
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rune returns the rune corresponding to the key press, if it makes sense.
|
||||||
|
// The result is only defined if the value of Key() is KeyRune.
|
||||||
|
func (ev *EventKey) Rune() rune {
|
||||||
|
return ev.ch
|
||||||
|
}
|
||||||
|
|
||||||
|
// Key returns a virtual key code. We use this to identify specific key
|
||||||
|
// codes, such as KeyEnter, etc. Most control and function keys are reported
|
||||||
|
// with unique Key values. Normal alphanumeric and punctuation keys will
|
||||||
|
// generally return KeyRune here; the specific key can be further decoded
|
||||||
|
// using the Rune() function.
|
||||||
|
func (ev *EventKey) Key() Key {
|
||||||
|
return ev.key
|
||||||
|
}
|
||||||
|
|
||||||
|
// Modifiers returns the modifiers that were present with the key press. Note
|
||||||
|
// that not all platforms and terminals support this equally well, and some
|
||||||
|
// cases we will not not know for sure. Hence, applications should avoid
|
||||||
|
// using this in most circumstances.
|
||||||
|
func (ev *EventKey) Modifiers() ModMask {
|
||||||
|
return ev.mod
|
||||||
|
}
|
||||||
|
|
||||||
|
// KeyNames holds the written names of special keys. Useful to echo back a key
|
||||||
|
// name, or to look up a key from a string value.
|
||||||
|
var KeyNames = map[Key]string{
|
||||||
|
KeyEnter: "Enter",
|
||||||
|
KeyBackspace: "Backspace",
|
||||||
|
KeyTab: "Tab",
|
||||||
|
KeyBacktab: "Backtab",
|
||||||
|
KeyEsc: "Esc",
|
||||||
|
KeyBackspace2: "Backspace2",
|
||||||
|
KeyDelete: "Delete",
|
||||||
|
KeyInsert: "Insert",
|
||||||
|
KeyUp: "Up",
|
||||||
|
KeyDown: "Down",
|
||||||
|
KeyLeft: "Left",
|
||||||
|
KeyRight: "Right",
|
||||||
|
KeyHome: "Home",
|
||||||
|
KeyEnd: "End",
|
||||||
|
KeyUpLeft: "UpLeft",
|
||||||
|
KeyUpRight: "UpRight",
|
||||||
|
KeyDownLeft: "DownLeft",
|
||||||
|
KeyDownRight: "DownRight",
|
||||||
|
KeyCenter: "Center",
|
||||||
|
KeyPgDn: "PgDn",
|
||||||
|
KeyPgUp: "PgUp",
|
||||||
|
KeyClear: "Clear",
|
||||||
|
KeyExit: "Exit",
|
||||||
|
KeyCancel: "Cancel",
|
||||||
|
KeyPause: "Pause",
|
||||||
|
KeyPrint: "Print",
|
||||||
|
KeyF1: "F1",
|
||||||
|
KeyF2: "F2",
|
||||||
|
KeyF3: "F3",
|
||||||
|
KeyF4: "F4",
|
||||||
|
KeyF5: "F5",
|
||||||
|
KeyF6: "F6",
|
||||||
|
KeyF7: "F7",
|
||||||
|
KeyF8: "F8",
|
||||||
|
KeyF9: "F9",
|
||||||
|
KeyF10: "F10",
|
||||||
|
KeyF11: "F11",
|
||||||
|
KeyF12: "F12",
|
||||||
|
KeyF13: "F13",
|
||||||
|
KeyF14: "F14",
|
||||||
|
KeyF15: "F15",
|
||||||
|
KeyF16: "F16",
|
||||||
|
KeyF17: "F17",
|
||||||
|
KeyF18: "F18",
|
||||||
|
KeyF19: "F19",
|
||||||
|
KeyF20: "F20",
|
||||||
|
KeyF21: "F21",
|
||||||
|
KeyF22: "F22",
|
||||||
|
KeyF23: "F23",
|
||||||
|
KeyF24: "F24",
|
||||||
|
KeyF25: "F25",
|
||||||
|
KeyF26: "F26",
|
||||||
|
KeyF27: "F27",
|
||||||
|
KeyF28: "F28",
|
||||||
|
KeyF29: "F29",
|
||||||
|
KeyF30: "F30",
|
||||||
|
KeyF31: "F31",
|
||||||
|
KeyF32: "F32",
|
||||||
|
KeyF33: "F33",
|
||||||
|
KeyF34: "F34",
|
||||||
|
KeyF35: "F35",
|
||||||
|
KeyF36: "F36",
|
||||||
|
KeyF37: "F37",
|
||||||
|
KeyF38: "F38",
|
||||||
|
KeyF39: "F39",
|
||||||
|
KeyF40: "F40",
|
||||||
|
KeyF41: "F41",
|
||||||
|
KeyF42: "F42",
|
||||||
|
KeyF43: "F43",
|
||||||
|
KeyF44: "F44",
|
||||||
|
KeyF45: "F45",
|
||||||
|
KeyF46: "F46",
|
||||||
|
KeyF47: "F47",
|
||||||
|
KeyF48: "F48",
|
||||||
|
KeyF49: "F49",
|
||||||
|
KeyF50: "F50",
|
||||||
|
KeyF51: "F51",
|
||||||
|
KeyF52: "F52",
|
||||||
|
KeyF53: "F53",
|
||||||
|
KeyF54: "F54",
|
||||||
|
KeyF55: "F55",
|
||||||
|
KeyF56: "F56",
|
||||||
|
KeyF57: "F57",
|
||||||
|
KeyF58: "F58",
|
||||||
|
KeyF59: "F59",
|
||||||
|
KeyF60: "F60",
|
||||||
|
KeyF61: "F61",
|
||||||
|
KeyF62: "F62",
|
||||||
|
KeyF63: "F63",
|
||||||
|
KeyF64: "F64",
|
||||||
|
KeyCtrlA: "Ctrl-A",
|
||||||
|
KeyCtrlB: "Ctrl-B",
|
||||||
|
KeyCtrlC: "Ctrl-C",
|
||||||
|
KeyCtrlD: "Ctrl-D",
|
||||||
|
KeyCtrlE: "Ctrl-E",
|
||||||
|
KeyCtrlF: "Ctrl-F",
|
||||||
|
KeyCtrlG: "Ctrl-G",
|
||||||
|
KeyCtrlJ: "Ctrl-J",
|
||||||
|
KeyCtrlK: "Ctrl-K",
|
||||||
|
KeyCtrlL: "Ctrl-L",
|
||||||
|
KeyCtrlN: "Ctrl-N",
|
||||||
|
KeyCtrlO: "Ctrl-O",
|
||||||
|
KeyCtrlP: "Ctrl-P",
|
||||||
|
KeyCtrlQ: "Ctrl-Q",
|
||||||
|
KeyCtrlR: "Ctrl-R",
|
||||||
|
KeyCtrlS: "Ctrl-S",
|
||||||
|
KeyCtrlT: "Ctrl-T",
|
||||||
|
KeyCtrlU: "Ctrl-U",
|
||||||
|
KeyCtrlV: "Ctrl-V",
|
||||||
|
KeyCtrlW: "Ctrl-W",
|
||||||
|
KeyCtrlX: "Ctrl-X",
|
||||||
|
KeyCtrlY: "Ctrl-Y",
|
||||||
|
KeyCtrlZ: "Ctrl-Z",
|
||||||
|
KeyCtrlSpace: "Ctrl-Space",
|
||||||
|
KeyCtrlUnderscore: "Ctrl-_",
|
||||||
|
KeyCtrlRightSq: "Ctrl-]",
|
||||||
|
KeyCtrlBackslash: "Ctrl-\\",
|
||||||
|
KeyCtrlCarat: "Ctrl-^",
|
||||||
|
}
|
||||||
|
|
||||||
|
// Name returns a printable value or the key stroke. This can be used
|
||||||
|
// when printing the event, for example.
|
||||||
|
func (ev *EventKey) Name() string {
|
||||||
|
s := ""
|
||||||
|
m := []string{}
|
||||||
|
if ev.mod&ModShift != 0 {
|
||||||
|
m = append(m, "Shift")
|
||||||
|
}
|
||||||
|
if ev.mod&ModAlt != 0 {
|
||||||
|
m = append(m, "Alt")
|
||||||
|
}
|
||||||
|
if ev.mod&ModMeta != 0 {
|
||||||
|
m = append(m, "Meta")
|
||||||
|
}
|
||||||
|
if ev.mod&ModCtrl != 0 {
|
||||||
|
m = append(m, "Ctrl")
|
||||||
|
}
|
||||||
|
|
||||||
|
ok := false
|
||||||
|
if s, ok = KeyNames[ev.key]; !ok {
|
||||||
|
if ev.key == KeyRune {
|
||||||
|
s = "Rune[" + string(ev.ch) + "]"
|
||||||
|
} else {
|
||||||
|
s = fmt.Sprintf("Key[%d,%d]", ev.key, int(ev.ch))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(m) != 0 {
|
||||||
|
if ev.mod&ModCtrl != 0 && strings.HasPrefix(s, "Ctrl-") {
|
||||||
|
s = s[5:]
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("%s+%s", strings.Join(m, "+"), s)
|
||||||
|
}
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewEventKey attempts to create a suitable event. It parses the various
|
||||||
|
// ASCII control sequences if KeyRune is passed for Key, but if the caller
|
||||||
|
// has more precise information it should set that specifically. Callers
|
||||||
|
// that aren't sure about modifier state (most) should just pass ModNone.
|
||||||
|
func NewEventKey(k Key, ch rune, mod ModMask) *EventKey {
|
||||||
|
if k == KeyRune && (ch < ' ' || ch == 0x7f) {
|
||||||
|
// Turn specials into proper key codes. This is for
|
||||||
|
// control characters and the DEL.
|
||||||
|
k = Key(ch)
|
||||||
|
if mod == ModNone && ch < ' ' {
|
||||||
|
switch Key(ch) {
|
||||||
|
case KeyBackspace, KeyTab, KeyEsc, KeyEnter:
|
||||||
|
// these keys are directly typeable without CTRL
|
||||||
|
default:
|
||||||
|
// most likely entered with a CTRL keypress
|
||||||
|
mod = ModCtrl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return &EventKey{t: time.Now(), key: k, ch: ch, mod: mod}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ModMask is a mask of modifier keys. Note that it will not always be
|
||||||
|
// possible to report modifier keys.
|
||||||
|
type ModMask int16
|
||||||
|
|
||||||
|
// These are the modifiers keys that can be sent either with a key press,
|
||||||
|
// or a mouse event. Note that as of now, due to the confusion associated
|
||||||
|
// with Meta, and the lack of support for it on many/most platforms, the
|
||||||
|
// current implementations never use it. Instead, they use ModAlt, even for
|
||||||
|
// events that could possibly have been distinguished from ModAlt.
|
||||||
|
const (
|
||||||
|
ModShift ModMask = 1 << iota
|
||||||
|
ModCtrl
|
||||||
|
ModAlt
|
||||||
|
ModMeta
|
||||||
|
ModNone ModMask = 0
|
||||||
|
)
|
||||||
|
|
||||||
|
// Key is a generic value for representing keys, and especially special
|
||||||
|
// keys (function keys, cursor movement keys, etc.) For normal keys, like
|
||||||
|
// ASCII letters, we use KeyRune, and then expect the application to
|
||||||
|
// inspect the Rune() member of the EventKey.
|
||||||
|
type Key int16
|
||||||
|
|
||||||
|
// This is the list of named keys. KeyRune is special however, in that it is
|
||||||
|
// a place holder key indicating that a printable character was sent. The
|
||||||
|
// actual value of the rune will be transported in the Rune of the associated
|
||||||
|
// EventKey.
|
||||||
|
const (
|
||||||
|
KeyRune Key = iota + 256
|
||||||
|
KeyUp
|
||||||
|
KeyDown
|
||||||
|
KeyRight
|
||||||
|
KeyLeft
|
||||||
|
KeyUpLeft
|
||||||
|
KeyUpRight
|
||||||
|
KeyDownLeft
|
||||||
|
KeyDownRight
|
||||||
|
KeyCenter
|
||||||
|
KeyPgUp
|
||||||
|
KeyPgDn
|
||||||
|
KeyHome
|
||||||
|
KeyEnd
|
||||||
|
KeyInsert
|
||||||
|
KeyDelete
|
||||||
|
KeyHelp
|
||||||
|
KeyExit
|
||||||
|
KeyClear
|
||||||
|
KeyCancel
|
||||||
|
KeyPrint
|
||||||
|
KeyPause
|
||||||
|
KeyBacktab
|
||||||
|
KeyF1
|
||||||
|
KeyF2
|
||||||
|
KeyF3
|
||||||
|
KeyF4
|
||||||
|
KeyF5
|
||||||
|
KeyF6
|
||||||
|
KeyF7
|
||||||
|
KeyF8
|
||||||
|
KeyF9
|
||||||
|
KeyF10
|
||||||
|
KeyF11
|
||||||
|
KeyF12
|
||||||
|
KeyF13
|
||||||
|
KeyF14
|
||||||
|
KeyF15
|
||||||
|
KeyF16
|
||||||
|
KeyF17
|
||||||
|
KeyF18
|
||||||
|
KeyF19
|
||||||
|
KeyF20
|
||||||
|
KeyF21
|
||||||
|
KeyF22
|
||||||
|
KeyF23
|
||||||
|
KeyF24
|
||||||
|
KeyF25
|
||||||
|
KeyF26
|
||||||
|
KeyF27
|
||||||
|
KeyF28
|
||||||
|
KeyF29
|
||||||
|
KeyF30
|
||||||
|
KeyF31
|
||||||
|
KeyF32
|
||||||
|
KeyF33
|
||||||
|
KeyF34
|
||||||
|
KeyF35
|
||||||
|
KeyF36
|
||||||
|
KeyF37
|
||||||
|
KeyF38
|
||||||
|
KeyF39
|
||||||
|
KeyF40
|
||||||
|
KeyF41
|
||||||
|
KeyF42
|
||||||
|
KeyF43
|
||||||
|
KeyF44
|
||||||
|
KeyF45
|
||||||
|
KeyF46
|
||||||
|
KeyF47
|
||||||
|
KeyF48
|
||||||
|
KeyF49
|
||||||
|
KeyF50
|
||||||
|
KeyF51
|
||||||
|
KeyF52
|
||||||
|
KeyF53
|
||||||
|
KeyF54
|
||||||
|
KeyF55
|
||||||
|
KeyF56
|
||||||
|
KeyF57
|
||||||
|
KeyF58
|
||||||
|
KeyF59
|
||||||
|
KeyF60
|
||||||
|
KeyF61
|
||||||
|
KeyF62
|
||||||
|
KeyF63
|
||||||
|
KeyF64
|
||||||
|
)
|
||||||
|
|
||||||
|
// These are the control keys. Note that they overlap with other keys,
|
||||||
|
// perhaps. For example, KeyCtrlH is the same as KeyBackspace.
|
||||||
|
const (
|
||||||
|
KeyCtrlSpace Key = iota
|
||||||
|
KeyCtrlA
|
||||||
|
KeyCtrlB
|
||||||
|
KeyCtrlC
|
||||||
|
KeyCtrlD
|
||||||
|
KeyCtrlE
|
||||||
|
KeyCtrlF
|
||||||
|
KeyCtrlG
|
||||||
|
KeyCtrlH
|
||||||
|
KeyCtrlI
|
||||||
|
KeyCtrlJ
|
||||||
|
KeyCtrlK
|
||||||
|
KeyCtrlL
|
||||||
|
KeyCtrlM
|
||||||
|
KeyCtrlN
|
||||||
|
KeyCtrlO
|
||||||
|
KeyCtrlP
|
||||||
|
KeyCtrlQ
|
||||||
|
KeyCtrlR
|
||||||
|
KeyCtrlS
|
||||||
|
KeyCtrlT
|
||||||
|
KeyCtrlU
|
||||||
|
KeyCtrlV
|
||||||
|
KeyCtrlW
|
||||||
|
KeyCtrlX
|
||||||
|
KeyCtrlY
|
||||||
|
KeyCtrlZ
|
||||||
|
KeyCtrlLeftSq // Escape
|
||||||
|
KeyCtrlBackslash
|
||||||
|
KeyCtrlRightSq
|
||||||
|
KeyCtrlCarat
|
||||||
|
KeyCtrlUnderscore
|
||||||
|
)
|
||||||
|
|
||||||
|
// Special values - these are fixed in an attempt to make it more likely
|
||||||
|
// that aliases will encode the same way.
|
||||||
|
|
||||||
|
// These are the defined ASCII values for key codes. They generally match
|
||||||
|
// with KeyCtrl values.
|
||||||
|
const (
|
||||||
|
KeyNUL Key = iota
|
||||||
|
KeySOH
|
||||||
|
KeySTX
|
||||||
|
KeyETX
|
||||||
|
KeyEOT
|
||||||
|
KeyENQ
|
||||||
|
KeyACK
|
||||||
|
KeyBEL
|
||||||
|
KeyBS
|
||||||
|
KeyTAB
|
||||||
|
KeyLF
|
||||||
|
KeyVT
|
||||||
|
KeyFF
|
||||||
|
KeyCR
|
||||||
|
KeySO
|
||||||
|
KeySI
|
||||||
|
KeyDLE
|
||||||
|
KeyDC1
|
||||||
|
KeyDC2
|
||||||
|
KeyDC3
|
||||||
|
KeyDC4
|
||||||
|
KeyNAK
|
||||||
|
KeySYN
|
||||||
|
KeyETB
|
||||||
|
KeyCAN
|
||||||
|
KeyEM
|
||||||
|
KeySUB
|
||||||
|
KeyESC
|
||||||
|
KeyFS
|
||||||
|
KeyGS
|
||||||
|
KeyRS
|
||||||
|
KeyUS
|
||||||
|
KeyDEL Key = 0x7F
|
||||||
|
)
|
||||||
|
|
||||||
|
// These keys are aliases for other names.
|
||||||
|
const (
|
||||||
|
KeyBackspace = KeyBS
|
||||||
|
KeyTab = KeyTAB
|
||||||
|
KeyEsc = KeyESC
|
||||||
|
KeyEscape = KeyESC
|
||||||
|
KeyEnter = KeyCR
|
||||||
|
KeyBackspace2 = KeyDEL
|
||||||
|
)
|
97
vendor/github.com/gdamore/tcell/mouse.go
generated
vendored
Normal file
97
vendor/github.com/gdamore/tcell/mouse.go
generated
vendored
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
// Copyright 2015 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// EventMouse is a mouse event. It is sent on either mouse up or mouse down
|
||||||
|
// events. It is also sent on mouse motion events - if the terminal supports
|
||||||
|
// it. We make every effort to ensure that mouse release events are delivered.
|
||||||
|
// Hence, click drag can be identified by a motion event with the mouse down,
|
||||||
|
// without any intervening button release. On some terminals only the initiating
|
||||||
|
// press and terminating release event will be delivered.
|
||||||
|
//
|
||||||
|
// Mouse wheel events, when reported, may appear on their own as individual
|
||||||
|
// impulses; that is, there will normally not be a release event delivered
|
||||||
|
// for mouse wheel movements.
|
||||||
|
//
|
||||||
|
// Most terminals cannot report the state of more than one button at a time --
|
||||||
|
// and some cannot report motion events unless a button is pressed.
|
||||||
|
//
|
||||||
|
// Applications can inspect the time between events to resolve double or
|
||||||
|
// triple clicks.
|
||||||
|
type EventMouse struct {
|
||||||
|
t time.Time
|
||||||
|
btn ButtonMask
|
||||||
|
mod ModMask
|
||||||
|
x int
|
||||||
|
y int
|
||||||
|
}
|
||||||
|
|
||||||
|
// When returns the time when this EventMouse was created.
|
||||||
|
func (ev *EventMouse) When() time.Time {
|
||||||
|
return ev.t
|
||||||
|
}
|
||||||
|
|
||||||
|
// Buttons returns the list of buttons that were pressed or wheel motions.
|
||||||
|
func (ev *EventMouse) Buttons() ButtonMask {
|
||||||
|
return ev.btn
|
||||||
|
}
|
||||||
|
|
||||||
|
// Modifiers returns a list of keyboard modifiers that were pressed
|
||||||
|
// with the mouse button(s).
|
||||||
|
func (ev *EventMouse) Modifiers() ModMask {
|
||||||
|
return ev.mod
|
||||||
|
}
|
||||||
|
|
||||||
|
// Position returns the mouse position in character cells. The origin
|
||||||
|
// 0, 0 is at the upper left corner.
|
||||||
|
func (ev *EventMouse) Position() (int, int) {
|
||||||
|
return ev.x, ev.y
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewEventMouse is used to create a new mouse event. Applications
|
||||||
|
// shouldn't need to use this; its mostly for screen implementors.
|
||||||
|
func NewEventMouse(x, y int, btn ButtonMask, mod ModMask) *EventMouse {
|
||||||
|
return &EventMouse{t: time.Now(), x: x, y: y, btn: btn, mod: mod}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ButtonMask is a mask of mouse buttons and wheel events. Mouse button presses
|
||||||
|
// are normally delivered as both press and release events. Mouse wheel events
|
||||||
|
// are normally just single impulse events. Windows supports up to eight
|
||||||
|
// separate buttons plus all four wheel directions, but XTerm can only support
|
||||||
|
// mouse buttons 1-3 and wheel up/down. Its not unheard of for terminals
|
||||||
|
// to support only one or two buttons (think Macs). Old terminals, and true
|
||||||
|
// emulations (such as vt100) won't support mice at all, of course.
|
||||||
|
type ButtonMask int16
|
||||||
|
|
||||||
|
// These are the actual button values.
|
||||||
|
const (
|
||||||
|
Button1 ButtonMask = 1 << iota // Usually left mouse button.
|
||||||
|
Button2 // Usually the middle mouse button.
|
||||||
|
Button3 // Usually the right mouse button.
|
||||||
|
Button4 // Often a side button (thumb/next).
|
||||||
|
Button5 // Often a side button (thumb/prev).
|
||||||
|
Button6
|
||||||
|
Button7
|
||||||
|
Button8
|
||||||
|
WheelUp // Wheel motion up/away from user.
|
||||||
|
WheelDown // Wheel motion down/towards user.
|
||||||
|
WheelLeft // Wheel motion to left.
|
||||||
|
WheelRight // Wheel motion to right.
|
||||||
|
ButtonNone ButtonMask = 0 // No button or wheel events.
|
||||||
|
)
|
42
vendor/github.com/gdamore/tcell/resize.go
generated
vendored
Normal file
42
vendor/github.com/gdamore/tcell/resize.go
generated
vendored
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
// Copyright 2015 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// EventResize is sent when the window size changes.
|
||||||
|
type EventResize struct {
|
||||||
|
t time.Time
|
||||||
|
w int
|
||||||
|
h int
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewEventResize creates an EventResize with the new updated window size,
|
||||||
|
// which is given in character cells.
|
||||||
|
func NewEventResize(width, height int) *EventResize {
|
||||||
|
return &EventResize{t: time.Now(), w: width, h: height}
|
||||||
|
}
|
||||||
|
|
||||||
|
// When returns the time when the Event was created.
|
||||||
|
func (ev *EventResize) When() time.Time {
|
||||||
|
return ev.t
|
||||||
|
}
|
||||||
|
|
||||||
|
// Size returns the new window size as width, height in character cells.
|
||||||
|
func (ev *EventResize) Size() (int, int) {
|
||||||
|
return ev.w, ev.h
|
||||||
|
}
|
111
vendor/github.com/gdamore/tcell/runes.go
generated
vendored
Normal file
111
vendor/github.com/gdamore/tcell/runes.go
generated
vendored
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
// Copyright 2015 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
// The names of these constants are chosen to match Terminfo names,
|
||||||
|
// modulo case, and changing the prefix from ACS_ to Rune. These are
|
||||||
|
// the runes we provide extra special handling for, with ASCII fallbacks
|
||||||
|
// for terminals that lack them.
|
||||||
|
const (
|
||||||
|
RuneSterling = '£'
|
||||||
|
RuneDArrow = '↓'
|
||||||
|
RuneLArrow = '←'
|
||||||
|
RuneRArrow = '→'
|
||||||
|
RuneUArrow = '↑'
|
||||||
|
RuneBullet = '·'
|
||||||
|
RuneBoard = '░'
|
||||||
|
RuneCkBoard = '▒'
|
||||||
|
RuneDegree = '°'
|
||||||
|
RuneDiamond = '◆'
|
||||||
|
RuneGEqual = '≥'
|
||||||
|
RunePi = 'π'
|
||||||
|
RuneHLine = '─'
|
||||||
|
RuneLantern = '§'
|
||||||
|
RunePlus = '┼'
|
||||||
|
RuneLEqual = '≤'
|
||||||
|
RuneLLCorner = '└'
|
||||||
|
RuneLRCorner = '┘'
|
||||||
|
RuneNEqual = '≠'
|
||||||
|
RunePlMinus = '±'
|
||||||
|
RuneS1 = '⎺'
|
||||||
|
RuneS3 = '⎻'
|
||||||
|
RuneS7 = '⎼'
|
||||||
|
RuneS9 = '⎽'
|
||||||
|
RuneBlock = '█'
|
||||||
|
RuneTTee = '┬'
|
||||||
|
RuneRTee = '┤'
|
||||||
|
RuneLTee = '├'
|
||||||
|
RuneBTee = '┴'
|
||||||
|
RuneULCorner = '┌'
|
||||||
|
RuneURCorner = '┐'
|
||||||
|
RuneVLine = '│'
|
||||||
|
)
|
||||||
|
|
||||||
|
// RuneFallbacks is the default map of fallback strings that will be
|
||||||
|
// used to replace a rune when no other more appropriate transformation
|
||||||
|
// is available, and the rune cannot be displayed directly.
|
||||||
|
//
|
||||||
|
// New entries may be added to this map over time, as it becomes clear
|
||||||
|
// that such is desirable. Characters that represent either letters or
|
||||||
|
// numbers should not be added to this list unless it is certain that
|
||||||
|
// the meaning will still convey unambiguously.
|
||||||
|
//
|
||||||
|
// As an example, it would be appropriate to add an ASCII mapping for
|
||||||
|
// the full width form of the letter 'A', but it would not be appropriate
|
||||||
|
// to do so a glyph representing the country China.
|
||||||
|
//
|
||||||
|
// Programs that desire richer fallbacks may register additional ones,
|
||||||
|
// or change or even remove these mappings with Screen.RegisterRuneFallback
|
||||||
|
// Screen.UnregisterRuneFallback methods.
|
||||||
|
//
|
||||||
|
// Note that Unicode is presumed to be able to display all glyphs.
|
||||||
|
// This is a pretty poor assumption, but there is no easy way to
|
||||||
|
// figure out which glyphs are supported in a given font. Hence,
|
||||||
|
// some care in selecting the characters you support in your application
|
||||||
|
// is still appropriate.
|
||||||
|
var RuneFallbacks = map[rune]string{
|
||||||
|
RuneSterling: "f",
|
||||||
|
RuneDArrow: "v",
|
||||||
|
RuneLArrow: "<",
|
||||||
|
RuneRArrow: ">",
|
||||||
|
RuneUArrow: "^",
|
||||||
|
RuneBullet: "o",
|
||||||
|
RuneBoard: "#",
|
||||||
|
RuneCkBoard: ":",
|
||||||
|
RuneDegree: "\\",
|
||||||
|
RuneDiamond: "+",
|
||||||
|
RuneGEqual: ">",
|
||||||
|
RunePi: "*",
|
||||||
|
RuneHLine: "-",
|
||||||
|
RuneLantern: "#",
|
||||||
|
RunePlus: "+",
|
||||||
|
RuneLEqual: "<",
|
||||||
|
RuneLLCorner: "+",
|
||||||
|
RuneLRCorner: "+",
|
||||||
|
RuneNEqual: "!",
|
||||||
|
RunePlMinus: "#",
|
||||||
|
RuneS1: "~",
|
||||||
|
RuneS3: "-",
|
||||||
|
RuneS7: "-",
|
||||||
|
RuneS9: "_",
|
||||||
|
RuneBlock: "#",
|
||||||
|
RuneTTee: "+",
|
||||||
|
RuneRTee: "+",
|
||||||
|
RuneLTee: "+",
|
||||||
|
RuneBTee: "+",
|
||||||
|
RuneULCorner: "+",
|
||||||
|
RuneURCorner: "+",
|
||||||
|
RuneVLine: "|",
|
||||||
|
}
|
213
vendor/github.com/gdamore/tcell/screen.go
generated
vendored
Normal file
213
vendor/github.com/gdamore/tcell/screen.go
generated
vendored
Normal file
|
@ -0,0 +1,213 @@
|
||||||
|
// Copyright 2019 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
// Screen represents the physical (or emulated) screen.
|
||||||
|
// This can be a terminal window or a physical console. Platforms implement
|
||||||
|
// this differerently.
|
||||||
|
type Screen interface {
|
||||||
|
// Init initializes the screen for use.
|
||||||
|
Init() error
|
||||||
|
|
||||||
|
// Fini finalizes the screen also releasing resources.
|
||||||
|
Fini()
|
||||||
|
|
||||||
|
// Clear erases the screen. The contents of any screen buffers
|
||||||
|
// will also be cleared. This has the logical effect of
|
||||||
|
// filling the screen with spaces, using the global default style.
|
||||||
|
Clear()
|
||||||
|
|
||||||
|
// Fill fills the screen with the given character and style.
|
||||||
|
Fill(rune, Style)
|
||||||
|
|
||||||
|
// SetCell is an older API, and will be removed. Please use
|
||||||
|
// SetContent instead; SetCell is implemented in terms of SetContent.
|
||||||
|
SetCell(x int, y int, style Style, ch ...rune)
|
||||||
|
|
||||||
|
// GetContent returns the contents at the given location. If the
|
||||||
|
// coordinates are out of range, then the values will be 0, nil,
|
||||||
|
// StyleDefault. Note that the contents returned are logical contents
|
||||||
|
// and may not actually be what is displayed, but rather are what will
|
||||||
|
// be displayed if Show() or Sync() is called. The width is the width
|
||||||
|
// in screen cells; most often this will be 1, but some East Asian
|
||||||
|
// characters require two cells.
|
||||||
|
GetContent(x, y int) (mainc rune, combc []rune, style Style, width int)
|
||||||
|
|
||||||
|
// SetContent sets the contents of the given cell location. If
|
||||||
|
// the coordinates are out of range, then the operation is ignored.
|
||||||
|
//
|
||||||
|
// The first rune is the primary non-zero width rune. The array
|
||||||
|
// that follows is a possible list of combining characters to append,
|
||||||
|
// and will usually be nil (no combining characters.)
|
||||||
|
//
|
||||||
|
// The results are not displayd until Show() or Sync() is called.
|
||||||
|
//
|
||||||
|
// Note that wide (East Asian full width) runes occupy two cells,
|
||||||
|
// and attempts to place character at next cell to the right will have
|
||||||
|
// undefined effects. Wide runes that are printed in the
|
||||||
|
// last column will be replaced with a single width space on output.
|
||||||
|
SetContent(x int, y int, mainc rune, combc []rune, style Style)
|
||||||
|
|
||||||
|
// SetStyle sets the default style to use when clearing the screen
|
||||||
|
// or when StyleDefault is specified. If it is also StyleDefault,
|
||||||
|
// then whatever system/terminal default is relevant will be used.
|
||||||
|
SetStyle(style Style)
|
||||||
|
|
||||||
|
// ShowCursor is used to display the cursor at a given location.
|
||||||
|
// If the coordinates -1, -1 are given or are otherwise outside the
|
||||||
|
// dimensions of the screen, the cursor will be hidden.
|
||||||
|
ShowCursor(x int, y int)
|
||||||
|
|
||||||
|
// HideCursor is used to hide the cursor. Its an alias for
|
||||||
|
// ShowCursor(-1, -1).
|
||||||
|
HideCursor()
|
||||||
|
|
||||||
|
// Size returns the screen size as width, height. This changes in
|
||||||
|
// response to a call to Clear or Flush.
|
||||||
|
Size() (int, int)
|
||||||
|
|
||||||
|
// PollEvent waits for events to arrive. Main application loops
|
||||||
|
// must spin on this to prevent the application from stalling.
|
||||||
|
// Furthermore, this will return nil if the Screen is finalized.
|
||||||
|
PollEvent() Event
|
||||||
|
|
||||||
|
// PostEvent tries to post an event into the event stream. This
|
||||||
|
// can fail if the event queue is full. In that case, the event
|
||||||
|
// is dropped, and ErrEventQFull is returned.
|
||||||
|
PostEvent(ev Event) error
|
||||||
|
|
||||||
|
// PostEventWait is like PostEvent, but if the queue is full, it
|
||||||
|
// blocks until there is space in the queue, making delivery
|
||||||
|
// reliable. However, it is VERY important that this function
|
||||||
|
// never be called from within whatever event loop is polling
|
||||||
|
// with PollEvent(), otherwise a deadlock may arise.
|
||||||
|
//
|
||||||
|
// For this reason, when using this function, the use of a
|
||||||
|
// Goroutine is recommended to ensure no deadlock can occur.
|
||||||
|
PostEventWait(ev Event)
|
||||||
|
|
||||||
|
// EnableMouse enables the mouse. (If your terminal supports it.)
|
||||||
|
EnableMouse()
|
||||||
|
|
||||||
|
// DisableMouse disables the mouse.
|
||||||
|
DisableMouse()
|
||||||
|
|
||||||
|
// HasMouse returns true if the terminal (apparently) supports a
|
||||||
|
// mouse. Note that the a return value of true doesn't guarantee that
|
||||||
|
// a mouse/pointing device is present; a false return definitely
|
||||||
|
// indicates no mouse support is available.
|
||||||
|
HasMouse() bool
|
||||||
|
|
||||||
|
// Colors returns the number of colors. All colors are assumed to
|
||||||
|
// use the ANSI color map. If a terminal is monochrome, it will
|
||||||
|
// return 0.
|
||||||
|
Colors() int
|
||||||
|
|
||||||
|
// Show makes all the content changes made using SetContent() visible
|
||||||
|
// on the display.
|
||||||
|
//
|
||||||
|
// It does so in the most efficient and least visually disruptive
|
||||||
|
// manner possible.
|
||||||
|
Show()
|
||||||
|
|
||||||
|
// Sync works like Show(), but it updates every visible cell on the
|
||||||
|
// physical display, assuming that it is not synchronized with any
|
||||||
|
// internal model. This may be both expensive and visually jarring,
|
||||||
|
// so it should only be used when believed to actually be necessary.
|
||||||
|
//
|
||||||
|
// Typically this is called as a result of a user-requested redraw
|
||||||
|
// (e.g. to clear up on screen corruption caused by some other program),
|
||||||
|
// or during a resize event.
|
||||||
|
Sync()
|
||||||
|
|
||||||
|
// CharacterSet returns information about the character set.
|
||||||
|
// This isn't the full locale, but it does give us the input/output
|
||||||
|
// character set. Note that this is just for diagnostic purposes,
|
||||||
|
// we normally translate input/output to/from UTF-8, regardless of
|
||||||
|
// what the user's environment is.
|
||||||
|
CharacterSet() string
|
||||||
|
|
||||||
|
// RegisterRuneFallback adds a fallback for runes that are not
|
||||||
|
// part of the character set -- for example one coudld register
|
||||||
|
// o as a fallback for ø. This should be done cautiously for
|
||||||
|
// characters that might be displayed ordinarily in language
|
||||||
|
// specific text -- characters that could change the meaning of
|
||||||
|
// of written text would be dangerous. The intention here is to
|
||||||
|
// facilitate fallback characters in pseudo-graphical applications.
|
||||||
|
//
|
||||||
|
// If the terminal has fallbacks already in place via an alternate
|
||||||
|
// character set, those are used in preference. Also, standard
|
||||||
|
// fallbacks for graphical characters in the ACSC terminfo string
|
||||||
|
// are registered implicitly.
|
||||||
|
|
||||||
|
// The display string should be the same width as original rune.
|
||||||
|
// This makes it possible to register two character replacements
|
||||||
|
// for full width East Asian characters, for example.
|
||||||
|
//
|
||||||
|
// It is recommended that replacement strings consist only of
|
||||||
|
// 7-bit ASCII, since other characters may not display everywhere.
|
||||||
|
RegisterRuneFallback(r rune, subst string)
|
||||||
|
|
||||||
|
// UnregisterRuneFallback unmaps a replacement. It will unmap
|
||||||
|
// the implicit ASCII replacements for alternate characters as well.
|
||||||
|
// When an unmapped char needs to be displayed, but no suitable
|
||||||
|
// glyph is available, '?' is emitted instead. It is not possible
|
||||||
|
// to "disable" the use of alternate characters that are supported
|
||||||
|
// by your terminal except by changing the terminal database.
|
||||||
|
UnregisterRuneFallback(r rune)
|
||||||
|
|
||||||
|
// CanDisplay returns true if the given rune can be displayed on
|
||||||
|
// this screen. Note that this is a best guess effort -- whether
|
||||||
|
// your fonts support the character or not may be questionable.
|
||||||
|
// Mostly this is for folks who work outside of Unicode.
|
||||||
|
//
|
||||||
|
// If checkFallbacks is true, then if any (possibly imperfect)
|
||||||
|
// fallbacks are registered, this will return true. This will
|
||||||
|
// also return true if the terminal can replace the glyph with
|
||||||
|
// one that is visually indistinguishable from the one requested.
|
||||||
|
CanDisplay(r rune, checkFallbacks bool) bool
|
||||||
|
|
||||||
|
// Resize does nothing, since its generally not possible to
|
||||||
|
// ask a screen to resize, but it allows the Screen to implement
|
||||||
|
// the View interface.
|
||||||
|
Resize(int, int, int, int)
|
||||||
|
|
||||||
|
// HasKey returns true if the keyboard is believed to have the
|
||||||
|
// key. In some cases a keyboard may have keys with this name
|
||||||
|
// but no support for them, while in others a key may be reported
|
||||||
|
// as supported but not actually be usable (such as some emulators
|
||||||
|
// that hijack certain keys). Its best not to depend to strictly
|
||||||
|
// on this function, but it can be used for hinting when building
|
||||||
|
// menus, displayed hot-keys, etc. Note that KeyRune (literal
|
||||||
|
// runes) is always true.
|
||||||
|
HasKey(Key) bool
|
||||||
|
|
||||||
|
// Beep attempts to sound an OS-dependent audible alert and returns an error
|
||||||
|
// when unsuccessful.
|
||||||
|
Beep() error
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewScreen returns a default Screen suitable for the user's terminal
|
||||||
|
// environment.
|
||||||
|
func NewScreen() (Screen, error) {
|
||||||
|
// Windows is happier if we try for a console screen first.
|
||||||
|
if s, _ := NewConsoleScreen(); s != nil {
|
||||||
|
return s, nil
|
||||||
|
} else if s, e := NewTerminfoScreen(); s != nil {
|
||||||
|
return s, nil
|
||||||
|
} else {
|
||||||
|
return nil, e
|
||||||
|
}
|
||||||
|
}
|
512
vendor/github.com/gdamore/tcell/simulation.go
generated
vendored
Normal file
512
vendor/github.com/gdamore/tcell/simulation.go
generated
vendored
Normal file
|
@ -0,0 +1,512 @@
|
||||||
|
// Copyright 2016 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
import (
|
||||||
|
"sync"
|
||||||
|
"unicode/utf8"
|
||||||
|
|
||||||
|
"golang.org/x/text/transform"
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewSimulationScreen returns a SimulationScreen. Note that
|
||||||
|
// SimulationScreen is also a Screen.
|
||||||
|
func NewSimulationScreen(charset string) SimulationScreen {
|
||||||
|
if charset == "" {
|
||||||
|
charset = "UTF-8"
|
||||||
|
}
|
||||||
|
s := &simscreen{charset: charset}
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
|
// SimulationScreen represents a screen simulation. This is intended to
|
||||||
|
// be a superset of normal Screens, but also adds some important interfaces
|
||||||
|
// for testing.
|
||||||
|
type SimulationScreen interface {
|
||||||
|
// InjectKeyBytes injects a stream of bytes corresponding to
|
||||||
|
// the native encoding (see charset). It turns true if the entire
|
||||||
|
// set of bytes were processed and delivered as KeyEvents, false
|
||||||
|
// if any bytes were not fully understood. Any bytes that are not
|
||||||
|
// fully converted are discarded.
|
||||||
|
InjectKeyBytes(buf []byte) bool
|
||||||
|
|
||||||
|
// InjectKey injects a key event. The rune is a UTF-8 rune, post
|
||||||
|
// any translation.
|
||||||
|
InjectKey(key Key, r rune, mod ModMask)
|
||||||
|
|
||||||
|
// InjectMouse injects a mouse event.
|
||||||
|
InjectMouse(x, y int, buttons ButtonMask, mod ModMask)
|
||||||
|
|
||||||
|
// SetSize resizes the underlying physical screen. It also causes
|
||||||
|
// a resize event to be injected during the next Show() or Sync().
|
||||||
|
// A new physical contents array will be allocated (with data from
|
||||||
|
// the old copied), so any prior value obtained with GetContents
|
||||||
|
// won't be used anymore
|
||||||
|
SetSize(width, height int)
|
||||||
|
|
||||||
|
// GetContents returns screen contents as an array of
|
||||||
|
// cells, along with the physical width & height. Note that the
|
||||||
|
// physical contents will be used until the next time SetSize()
|
||||||
|
// is called.
|
||||||
|
GetContents() (cells []SimCell, width int, height int)
|
||||||
|
|
||||||
|
// GetCursor returns the cursor details.
|
||||||
|
GetCursor() (x int, y int, visible bool)
|
||||||
|
|
||||||
|
Screen
|
||||||
|
}
|
||||||
|
|
||||||
|
// SimCell represents a simulated screen cell. The purpose of this
|
||||||
|
// is to track on screen content.
|
||||||
|
type SimCell struct {
|
||||||
|
// Bytes is the actual character bytes. Normally this is
|
||||||
|
// rune data, but it could be be data in another encoding system.
|
||||||
|
Bytes []byte
|
||||||
|
|
||||||
|
// Style is the style used to display the data.
|
||||||
|
Style Style
|
||||||
|
|
||||||
|
// Runes is the list of runes, unadulterated, in UTF-8.
|
||||||
|
Runes []rune
|
||||||
|
}
|
||||||
|
|
||||||
|
type simscreen struct {
|
||||||
|
physw int
|
||||||
|
physh int
|
||||||
|
fini bool
|
||||||
|
style Style
|
||||||
|
evch chan Event
|
||||||
|
quit chan struct{}
|
||||||
|
|
||||||
|
front []SimCell
|
||||||
|
back CellBuffer
|
||||||
|
clear bool
|
||||||
|
cursorx int
|
||||||
|
cursory int
|
||||||
|
cursorvis bool
|
||||||
|
mouse bool
|
||||||
|
charset string
|
||||||
|
encoder transform.Transformer
|
||||||
|
decoder transform.Transformer
|
||||||
|
fillchar rune
|
||||||
|
fillstyle Style
|
||||||
|
fallback map[rune]string
|
||||||
|
|
||||||
|
sync.Mutex
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) Init() error {
|
||||||
|
s.evch = make(chan Event, 10)
|
||||||
|
s.quit = make(chan struct{})
|
||||||
|
s.fillchar = 'X'
|
||||||
|
s.fillstyle = StyleDefault
|
||||||
|
s.mouse = false
|
||||||
|
s.physw = 80
|
||||||
|
s.physh = 25
|
||||||
|
s.cursorx = -1
|
||||||
|
s.cursory = -1
|
||||||
|
s.style = StyleDefault
|
||||||
|
|
||||||
|
if enc := GetEncoding(s.charset); enc != nil {
|
||||||
|
s.encoder = enc.NewEncoder()
|
||||||
|
s.decoder = enc.NewDecoder()
|
||||||
|
} else {
|
||||||
|
return ErrNoCharset
|
||||||
|
}
|
||||||
|
|
||||||
|
s.front = make([]SimCell, s.physw*s.physh)
|
||||||
|
s.back.Resize(80, 25)
|
||||||
|
|
||||||
|
// default fallbacks
|
||||||
|
s.fallback = make(map[rune]string)
|
||||||
|
for k, v := range RuneFallbacks {
|
||||||
|
s.fallback[k] = v
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) Fini() {
|
||||||
|
s.Lock()
|
||||||
|
s.fini = true
|
||||||
|
s.back.Resize(0, 0)
|
||||||
|
s.Unlock()
|
||||||
|
if s.quit != nil {
|
||||||
|
close(s.quit)
|
||||||
|
}
|
||||||
|
s.physw = 0
|
||||||
|
s.physh = 0
|
||||||
|
s.front = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) SetStyle(style Style) {
|
||||||
|
s.Lock()
|
||||||
|
s.style = style
|
||||||
|
s.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) Clear() {
|
||||||
|
s.Fill(' ', s.style)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) Fill(r rune, style Style) {
|
||||||
|
s.Lock()
|
||||||
|
s.back.Fill(r, style)
|
||||||
|
s.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) SetCell(x, y int, style Style, ch ...rune) {
|
||||||
|
|
||||||
|
if len(ch) > 0 {
|
||||||
|
s.SetContent(x, y, ch[0], ch[1:], style)
|
||||||
|
} else {
|
||||||
|
s.SetContent(x, y, ' ', nil, style)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) SetContent(x, y int, mainc rune, combc []rune, st Style) {
|
||||||
|
|
||||||
|
s.Lock()
|
||||||
|
s.back.SetContent(x, y, mainc, combc, st)
|
||||||
|
s.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) GetContent(x, y int) (rune, []rune, Style, int) {
|
||||||
|
var mainc rune
|
||||||
|
var combc []rune
|
||||||
|
var style Style
|
||||||
|
var width int
|
||||||
|
s.Lock()
|
||||||
|
mainc, combc, style, width = s.back.GetContent(x, y)
|
||||||
|
s.Unlock()
|
||||||
|
return mainc, combc, style, width
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) drawCell(x, y int) int {
|
||||||
|
|
||||||
|
mainc, combc, style, width := s.back.GetContent(x, y)
|
||||||
|
if !s.back.Dirty(x, y) {
|
||||||
|
return width
|
||||||
|
}
|
||||||
|
if x >= s.physw || y >= s.physh || x < 0 || y < 0 {
|
||||||
|
return width
|
||||||
|
}
|
||||||
|
simc := &s.front[(y*s.physw)+x]
|
||||||
|
|
||||||
|
if style == StyleDefault {
|
||||||
|
style = s.style
|
||||||
|
}
|
||||||
|
simc.Style = style
|
||||||
|
simc.Runes = append([]rune{mainc}, combc...)
|
||||||
|
|
||||||
|
// now emit runes - taking care to not overrun width with a
|
||||||
|
// wide character, and to ensure that we emit exactly one regular
|
||||||
|
// character followed up by any residual combing characters
|
||||||
|
|
||||||
|
simc.Bytes = nil
|
||||||
|
|
||||||
|
if x > s.physw-width {
|
||||||
|
simc.Runes = []rune{' '}
|
||||||
|
simc.Bytes = []byte{' '}
|
||||||
|
return width
|
||||||
|
}
|
||||||
|
|
||||||
|
lbuf := make([]byte, 12)
|
||||||
|
ubuf := make([]byte, 12)
|
||||||
|
nout := 0
|
||||||
|
|
||||||
|
for _, r := range simc.Runes {
|
||||||
|
|
||||||
|
l := utf8.EncodeRune(ubuf, r)
|
||||||
|
|
||||||
|
nout, _, _ = s.encoder.Transform(lbuf, ubuf[:l], true)
|
||||||
|
|
||||||
|
if nout == 0 || lbuf[0] == '\x1a' {
|
||||||
|
|
||||||
|
// skip combining
|
||||||
|
|
||||||
|
if subst, ok := s.fallback[r]; ok {
|
||||||
|
simc.Bytes = append(simc.Bytes,
|
||||||
|
[]byte(subst)...)
|
||||||
|
|
||||||
|
} else if r >= ' ' && r <= '~' {
|
||||||
|
simc.Bytes = append(simc.Bytes, byte(r))
|
||||||
|
|
||||||
|
} else if simc.Bytes == nil {
|
||||||
|
simc.Bytes = append(simc.Bytes, '?')
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
simc.Bytes = append(simc.Bytes, lbuf[:nout]...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
s.back.SetDirty(x, y, false)
|
||||||
|
return width
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) ShowCursor(x, y int) {
|
||||||
|
s.Lock()
|
||||||
|
s.cursorx, s.cursory = x, y
|
||||||
|
s.showCursor()
|
||||||
|
s.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) HideCursor() {
|
||||||
|
s.ShowCursor(-1, -1)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) showCursor() {
|
||||||
|
|
||||||
|
x, y := s.cursorx, s.cursory
|
||||||
|
if x < 0 || y < 0 || x >= s.physw || y >= s.physh {
|
||||||
|
s.cursorvis = false
|
||||||
|
} else {
|
||||||
|
s.cursorvis = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) hideCursor() {
|
||||||
|
// does not update cursor position
|
||||||
|
s.cursorvis = false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) Show() {
|
||||||
|
s.Lock()
|
||||||
|
s.resize()
|
||||||
|
s.draw()
|
||||||
|
s.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) clearScreen() {
|
||||||
|
// We emulate a hardware clear by filling with a specific pattern
|
||||||
|
for i := range s.front {
|
||||||
|
s.front[i].Style = s.fillstyle
|
||||||
|
s.front[i].Runes = []rune{s.fillchar}
|
||||||
|
s.front[i].Bytes = []byte{byte(s.fillchar)}
|
||||||
|
}
|
||||||
|
s.clear = false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) draw() {
|
||||||
|
s.hideCursor()
|
||||||
|
if s.clear {
|
||||||
|
s.clearScreen()
|
||||||
|
}
|
||||||
|
|
||||||
|
w, h := s.back.Size()
|
||||||
|
for y := 0; y < h; y++ {
|
||||||
|
for x := 0; x < w; x++ {
|
||||||
|
width := s.drawCell(x, y)
|
||||||
|
x += width - 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
s.showCursor()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) EnableMouse() {
|
||||||
|
s.mouse = true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) DisableMouse() {
|
||||||
|
s.mouse = false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) Size() (int, int) {
|
||||||
|
s.Lock()
|
||||||
|
w, h := s.back.Size()
|
||||||
|
s.Unlock()
|
||||||
|
return w, h
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) resize() {
|
||||||
|
w, h := s.physw, s.physh
|
||||||
|
ow, oh := s.back.Size()
|
||||||
|
if w != ow || h != oh {
|
||||||
|
s.back.Resize(w, h)
|
||||||
|
ev := NewEventResize(w, h)
|
||||||
|
s.PostEvent(ev)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) Colors() int {
|
||||||
|
return 256
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) PollEvent() Event {
|
||||||
|
select {
|
||||||
|
case <-s.quit:
|
||||||
|
return nil
|
||||||
|
case ev := <-s.evch:
|
||||||
|
return ev
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) PostEventWait(ev Event) {
|
||||||
|
s.evch <- ev
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) PostEvent(ev Event) error {
|
||||||
|
select {
|
||||||
|
case s.evch <- ev:
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
return ErrEventQFull
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) InjectMouse(x, y int, buttons ButtonMask, mod ModMask) {
|
||||||
|
ev := NewEventMouse(x, y, buttons, mod)
|
||||||
|
s.PostEvent(ev)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) InjectKey(key Key, r rune, mod ModMask) {
|
||||||
|
ev := NewEventKey(key, r, mod)
|
||||||
|
s.PostEvent(ev)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) InjectKeyBytes(b []byte) bool {
|
||||||
|
failed := false
|
||||||
|
|
||||||
|
outer:
|
||||||
|
for len(b) > 0 {
|
||||||
|
if b[0] >= ' ' && b[0] <= 0x7F {
|
||||||
|
// printable ASCII easy to deal with -- no encodings
|
||||||
|
ev := NewEventKey(KeyRune, rune(b[0]), ModNone)
|
||||||
|
s.PostEvent(ev)
|
||||||
|
b = b[1:]
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if b[0] < 0x80 {
|
||||||
|
mod := ModNone
|
||||||
|
// No encodings start with low numbered values
|
||||||
|
if Key(b[0]) >= KeyCtrlA && Key(b[0]) <= KeyCtrlZ {
|
||||||
|
mod = ModCtrl
|
||||||
|
}
|
||||||
|
ev := NewEventKey(Key(b[0]), 0, mod)
|
||||||
|
s.PostEvent(ev)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
utfb := make([]byte, len(b)*4) // worst case
|
||||||
|
for l := 1; l < len(b); l++ {
|
||||||
|
s.decoder.Reset()
|
||||||
|
nout, nin, _ := s.decoder.Transform(utfb, b[:l], true)
|
||||||
|
|
||||||
|
if nout != 0 {
|
||||||
|
r, _ := utf8.DecodeRune(utfb[:nout])
|
||||||
|
if r != utf8.RuneError {
|
||||||
|
ev := NewEventKey(KeyRune, r, ModNone)
|
||||||
|
s.PostEvent(ev)
|
||||||
|
}
|
||||||
|
b = b[nin:]
|
||||||
|
continue outer
|
||||||
|
}
|
||||||
|
}
|
||||||
|
failed = true
|
||||||
|
b = b[1:]
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
return !failed
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) Sync() {
|
||||||
|
s.Lock()
|
||||||
|
s.clear = true
|
||||||
|
s.resize()
|
||||||
|
s.back.Invalidate()
|
||||||
|
s.draw()
|
||||||
|
s.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) CharacterSet() string {
|
||||||
|
return s.charset
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) SetSize(w, h int) {
|
||||||
|
s.Lock()
|
||||||
|
newc := make([]SimCell, w*h)
|
||||||
|
for row := 0; row < h && row < s.physh; row++ {
|
||||||
|
for col := 0; col < w && col < s.physw; col++ {
|
||||||
|
newc[(row*w)+col] = s.front[(row*s.physw)+col]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
s.cursorx, s.cursory = -1, -1
|
||||||
|
s.physw, s.physh = w, h
|
||||||
|
s.front = newc
|
||||||
|
s.back.Resize(w, h)
|
||||||
|
s.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) GetContents() ([]SimCell, int, int) {
|
||||||
|
s.Lock()
|
||||||
|
cells, w, h := s.front, s.physw, s.physh
|
||||||
|
s.Unlock()
|
||||||
|
return cells, w, h
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) GetCursor() (int, int, bool) {
|
||||||
|
s.Lock()
|
||||||
|
x, y, vis := s.cursorx, s.cursory, s.cursorvis
|
||||||
|
s.Unlock()
|
||||||
|
return x, y, vis
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) RegisterRuneFallback(r rune, subst string) {
|
||||||
|
s.Lock()
|
||||||
|
s.fallback[r] = subst
|
||||||
|
s.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) UnregisterRuneFallback(r rune) {
|
||||||
|
s.Lock()
|
||||||
|
delete(s.fallback, r)
|
||||||
|
s.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) CanDisplay(r rune, checkFallbacks bool) bool {
|
||||||
|
|
||||||
|
if enc := s.encoder; enc != nil {
|
||||||
|
nb := make([]byte, 6)
|
||||||
|
ob := make([]byte, 6)
|
||||||
|
num := utf8.EncodeRune(ob, r)
|
||||||
|
|
||||||
|
enc.Reset()
|
||||||
|
dst, _, err := enc.Transform(nb, ob[:num], true)
|
||||||
|
if dst != 0 && err == nil && nb[0] != '\x1A' {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !checkFallbacks {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if _, ok := s.fallback[r]; ok {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) HasMouse() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) Resize(int, int, int, int) {}
|
||||||
|
|
||||||
|
func (s *simscreen) HasKey(Key) bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *simscreen) Beep() error {
|
||||||
|
return nil
|
||||||
|
}
|
132
vendor/github.com/gdamore/tcell/style.go
generated
vendored
Normal file
132
vendor/github.com/gdamore/tcell/style.go
generated
vendored
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
// Copyright 2015 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
// Style represents a complete text style, including both foreground
|
||||||
|
// and background color. We encode it in a 64-bit int for efficiency.
|
||||||
|
// The coding is (MSB): <7b flags><1b><24b fgcolor><7b attr><1b><24b bgcolor>.
|
||||||
|
// The <1b> is set true to indicate that the color is an RGB color, rather
|
||||||
|
// than a named index.
|
||||||
|
//
|
||||||
|
// This gives 24bit color options, if it ever becomes truly necessary.
|
||||||
|
// However, applications must not rely on this encoding.
|
||||||
|
//
|
||||||
|
// Note that not all terminals can display all colors or attributes, and
|
||||||
|
// many might have specific incompatibilities between specific attributes
|
||||||
|
// and color combinations.
|
||||||
|
//
|
||||||
|
// The intention is to extend styles to support paletting, in which case
|
||||||
|
// some flag bit(s) would be set, and the foreground and background colors
|
||||||
|
// would be replaced with a palette number and palette index.
|
||||||
|
//
|
||||||
|
// To use Style, just declare a variable of its type.
|
||||||
|
type Style int64
|
||||||
|
|
||||||
|
// StyleDefault represents a default style, based upon the context.
|
||||||
|
// It is the zero value.
|
||||||
|
const StyleDefault Style = 0
|
||||||
|
|
||||||
|
// styleFlags -- used internally for now.
|
||||||
|
const (
|
||||||
|
styleBgSet = 1 << (iota + 57)
|
||||||
|
styleFgSet
|
||||||
|
stylePalette
|
||||||
|
)
|
||||||
|
|
||||||
|
// Foreground returns a new style based on s, with the foreground color set
|
||||||
|
// as requested. ColorDefault can be used to select the global default.
|
||||||
|
func (s Style) Foreground(c Color) Style {
|
||||||
|
if c == ColorDefault {
|
||||||
|
return (s &^ (0x1ffffff00000000 | styleFgSet))
|
||||||
|
}
|
||||||
|
return (s &^ Style(0x1ffffff00000000)) |
|
||||||
|
((Style(c) & 0x1ffffff) << 32) | styleFgSet
|
||||||
|
}
|
||||||
|
|
||||||
|
// Background returns a new style based on s, with the background color set
|
||||||
|
// as requested. ColorDefault can be used to select the global default.
|
||||||
|
func (s Style) Background(c Color) Style {
|
||||||
|
if c == ColorDefault {
|
||||||
|
return (s &^ (0x1ffffff | styleBgSet))
|
||||||
|
}
|
||||||
|
return (s &^ (0x1ffffff)) | (Style(c) & 0x1ffffff) | styleBgSet
|
||||||
|
}
|
||||||
|
|
||||||
|
// Decompose breaks a style up, returning the foreground, background,
|
||||||
|
// and other attributes.
|
||||||
|
func (s Style) Decompose() (fg Color, bg Color, attr AttrMask) {
|
||||||
|
if s&styleFgSet != 0 {
|
||||||
|
fg = Color(s>>32) & 0x1ffffff
|
||||||
|
} else {
|
||||||
|
fg = ColorDefault
|
||||||
|
}
|
||||||
|
if s&styleBgSet != 0 {
|
||||||
|
bg = Color(s & 0x1ffffff)
|
||||||
|
} else {
|
||||||
|
bg = ColorDefault
|
||||||
|
}
|
||||||
|
attr = AttrMask(s) & attrAll
|
||||||
|
|
||||||
|
return fg, bg, attr
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s Style) setAttrs(attrs Style, on bool) Style {
|
||||||
|
if on {
|
||||||
|
return s | attrs
|
||||||
|
}
|
||||||
|
return s &^ attrs
|
||||||
|
}
|
||||||
|
|
||||||
|
// Normal returns the style with all attributes disabled.
|
||||||
|
func (s Style) Normal() Style {
|
||||||
|
return s &^ Style(attrAll)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bold returns a new style based on s, with the bold attribute set
|
||||||
|
// as requested.
|
||||||
|
func (s Style) Bold(on bool) Style {
|
||||||
|
return s.setAttrs(Style(AttrBold), on)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Blink returns a new style based on s, with the blink attribute set
|
||||||
|
// as requested.
|
||||||
|
func (s Style) Blink(on bool) Style {
|
||||||
|
return s.setAttrs(Style(AttrBlink), on)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dim returns a new style based on s, with the dim attribute set
|
||||||
|
// as requested.
|
||||||
|
func (s Style) Dim(on bool) Style {
|
||||||
|
return s.setAttrs(Style(AttrDim), on)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Italic returns a new style based on s, with the italic attribute set
|
||||||
|
// as requested.
|
||||||
|
func (s Style) Italic(on bool) Style {
|
||||||
|
return s.setAttrs(Style(AttrItalic), on)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reverse returns a new style based on s, with the reverse attribute set
|
||||||
|
// as requested. (Reverse usually changes the foreground and background
|
||||||
|
// colors.)
|
||||||
|
func (s Style) Reverse(on bool) Style {
|
||||||
|
return s.setAttrs(Style(AttrReverse), on)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Underline returns a new style based on s, with the underline attribute set
|
||||||
|
// as requested.
|
||||||
|
func (s Style) Underline(on bool) Style {
|
||||||
|
return s.setAttrs(Style(AttrUnderline), on)
|
||||||
|
}
|
1
vendor/github.com/gdamore/tcell/terminfo/.gitignore
generated
vendored
Normal file
1
vendor/github.com/gdamore/tcell/terminfo/.gitignore
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
mkinfo
|
25
vendor/github.com/gdamore/tcell/terminfo/README.md
generated
vendored
Normal file
25
vendor/github.com/gdamore/tcell/terminfo/README.md
generated
vendored
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
This package represents the parent for all terminals.
|
||||||
|
|
||||||
|
In older versions of tcell we had (a couple of) different
|
||||||
|
external file formats for the terminal database. Those are
|
||||||
|
now removed. All terminal definitions are supplied by
|
||||||
|
one of two methods:
|
||||||
|
|
||||||
|
1. Compiled Go code
|
||||||
|
|
||||||
|
2. For systems with terminfo and infocmp, dynamically
|
||||||
|
generated at runtime.
|
||||||
|
|
||||||
|
The Go code can be generated using the mkinfo utility in
|
||||||
|
this directory. The database entry should be generated
|
||||||
|
into a package in a directory named as the first character
|
||||||
|
of the package name. (This permits us to group them all
|
||||||
|
without having a huge directory of little packages.)
|
||||||
|
|
||||||
|
It may be desirable to add new packages to the extended
|
||||||
|
package, or -- rarely -- the base package.
|
||||||
|
|
||||||
|
Applications which want to have the large set of terminal
|
||||||
|
descriptions built into the binary can simply import the
|
||||||
|
extended package. Otherwise a smaller reasonable default
|
||||||
|
set (the base package) will be included instead.
|
7
vendor/github.com/gdamore/tcell/terminfo/TERMINALS.md
generated
vendored
Normal file
7
vendor/github.com/gdamore/tcell/terminfo/TERMINALS.md
generated
vendored
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
TERMINALS
|
||||||
|
=========
|
||||||
|
|
||||||
|
The best way to populate terminals on Debian is to install ncurses,
|
||||||
|
ncurses-term, screen, tmux, rxvt-unicode, and dvtm. This populates the
|
||||||
|
the terminfo database so that we can have a reasonable set of starting
|
||||||
|
terminals.
|
25
vendor/github.com/gdamore/tcell/terminfo/a/adm3a/term.go
generated
vendored
Normal file
25
vendor/github.com/gdamore/tcell/terminfo/a/adm3a/term.go
generated
vendored
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package adm3a
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// lsi adm3a
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "adm3a",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1a$<1/>",
|
||||||
|
PadChar: "\x00",
|
||||||
|
SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\v",
|
||||||
|
KeyUp: "\v",
|
||||||
|
KeyDown: "\n",
|
||||||
|
KeyRight: "\f",
|
||||||
|
KeyLeft: "\b",
|
||||||
|
})
|
||||||
|
}
|
81
vendor/github.com/gdamore/tcell/terminfo/a/aixterm/term.go
generated
vendored
Normal file
81
vendor/github.com/gdamore/tcell/terminfo/a/aixterm/term.go
generated
vendored
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package aixterm
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// IBM Aixterm Terminal Emulator
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "aixterm",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 25,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[J",
|
||||||
|
AttrOff: "\x1b[0;10m\x1b(B",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "jjkkllmmnnqqttuuvvwwxx",
|
||||||
|
EnterAcs: "\x1b(0",
|
||||||
|
ExitAcs: "\x1b(B",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[139q",
|
||||||
|
KeyDelete: "\x1b[P",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1b[H",
|
||||||
|
KeyEnd: "\x1b[146q",
|
||||||
|
KeyPgUp: "\x1b[150q",
|
||||||
|
KeyPgDn: "\x1b[154q",
|
||||||
|
KeyF1: "\x1b[001q",
|
||||||
|
KeyF2: "\x1b[002q",
|
||||||
|
KeyF3: "\x1b[003q",
|
||||||
|
KeyF4: "\x1b[004q",
|
||||||
|
KeyF5: "\x1b[005q",
|
||||||
|
KeyF6: "\x1b[006q",
|
||||||
|
KeyF7: "\x1b[007q",
|
||||||
|
KeyF8: "\x1b[008q",
|
||||||
|
KeyF9: "\x1b[009q",
|
||||||
|
KeyF10: "\x1b[010q",
|
||||||
|
KeyF11: "\x1b[011q",
|
||||||
|
KeyF12: "\x1b[012q",
|
||||||
|
KeyF13: "\x1b[013q",
|
||||||
|
KeyF14: "\x1b[014q",
|
||||||
|
KeyF15: "\x1b[015q",
|
||||||
|
KeyF16: "\x1b[016q",
|
||||||
|
KeyF17: "\x1b[017q",
|
||||||
|
KeyF18: "\x1b[018q",
|
||||||
|
KeyF19: "\x1b[019q",
|
||||||
|
KeyF20: "\x1b[020q",
|
||||||
|
KeyF21: "\x1b[021q",
|
||||||
|
KeyF22: "\x1b[022q",
|
||||||
|
KeyF23: "\x1b[023q",
|
||||||
|
KeyF24: "\x1b[024q",
|
||||||
|
KeyF25: "\x1b[025q",
|
||||||
|
KeyF26: "\x1b[026q",
|
||||||
|
KeyF27: "\x1b[027q",
|
||||||
|
KeyF28: "\x1b[028q",
|
||||||
|
KeyF29: "\x1b[029q",
|
||||||
|
KeyF30: "\x1b[030q",
|
||||||
|
KeyF31: "\x1b[031q",
|
||||||
|
KeyF32: "\x1b[032q",
|
||||||
|
KeyF33: "\x1b[033q",
|
||||||
|
KeyF34: "\x1b[034q",
|
||||||
|
KeyF35: "\x1b[035q",
|
||||||
|
KeyF36: "\x1b[036q",
|
||||||
|
KeyClear: "\x1b[144q",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
})
|
||||||
|
}
|
158
vendor/github.com/gdamore/tcell/terminfo/a/alacritty/term.go
generated
vendored
Normal file
158
vendor/github.com/gdamore/tcell/terminfo/a/alacritty/term.go
generated
vendored
Normal file
|
@ -0,0 +1,158 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package alacritty
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// alacritty terminal emulator
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "alacritty",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 256,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b[?1049h\x1b[22;0;0t",
|
||||||
|
ExitCA: "\x1b[?1049l\x1b[23;0;0t",
|
||||||
|
ShowCursor: "\x1b[?12l\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b(B\x1b[m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
|
||||||
|
SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",
|
||||||
|
SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m",
|
||||||
|
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x1b(0",
|
||||||
|
ExitAcs: "\x1b(B",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1bOH",
|
||||||
|
KeyEnd: "\x1bOF",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[1;2P",
|
||||||
|
KeyF14: "\x1b[1;2Q",
|
||||||
|
KeyF15: "\x1b[1;2R",
|
||||||
|
KeyF16: "\x1b[1;2S",
|
||||||
|
KeyF17: "\x1b[15;2~",
|
||||||
|
KeyF18: "\x1b[17;2~",
|
||||||
|
KeyF19: "\x1b[18;2~",
|
||||||
|
KeyF20: "\x1b[19;2~",
|
||||||
|
KeyF21: "\x1b[20;2~",
|
||||||
|
KeyF22: "\x1b[21;2~",
|
||||||
|
KeyF23: "\x1b[23;2~",
|
||||||
|
KeyF24: "\x1b[24;2~",
|
||||||
|
KeyF25: "\x1b[1;5P",
|
||||||
|
KeyF26: "\x1b[1;5Q",
|
||||||
|
KeyF27: "\x1b[1;5R",
|
||||||
|
KeyF28: "\x1b[1;5S",
|
||||||
|
KeyF29: "\x1b[15;5~",
|
||||||
|
KeyF30: "\x1b[17;5~",
|
||||||
|
KeyF31: "\x1b[18;5~",
|
||||||
|
KeyF32: "\x1b[19;5~",
|
||||||
|
KeyF33: "\x1b[20;5~",
|
||||||
|
KeyF34: "\x1b[21;5~",
|
||||||
|
KeyF35: "\x1b[23;5~",
|
||||||
|
KeyF36: "\x1b[24;5~",
|
||||||
|
KeyF37: "\x1b[1;6P",
|
||||||
|
KeyF38: "\x1b[1;6Q",
|
||||||
|
KeyF39: "\x1b[1;6R",
|
||||||
|
KeyF40: "\x1b[1;6S",
|
||||||
|
KeyF41: "\x1b[15;6~",
|
||||||
|
KeyF42: "\x1b[17;6~",
|
||||||
|
KeyF43: "\x1b[18;6~",
|
||||||
|
KeyF44: "\x1b[19;6~",
|
||||||
|
KeyF45: "\x1b[20;6~",
|
||||||
|
KeyF46: "\x1b[21;6~",
|
||||||
|
KeyF47: "\x1b[23;6~",
|
||||||
|
KeyF48: "\x1b[24;6~",
|
||||||
|
KeyF49: "\x1b[1;3P",
|
||||||
|
KeyF50: "\x1b[1;3Q",
|
||||||
|
KeyF51: "\x1b[1;3R",
|
||||||
|
KeyF52: "\x1b[1;3S",
|
||||||
|
KeyF53: "\x1b[15;3~",
|
||||||
|
KeyF54: "\x1b[17;3~",
|
||||||
|
KeyF55: "\x1b[18;3~",
|
||||||
|
KeyF56: "\x1b[19;3~",
|
||||||
|
KeyF57: "\x1b[20;3~",
|
||||||
|
KeyF58: "\x1b[21;3~",
|
||||||
|
KeyF59: "\x1b[23;3~",
|
||||||
|
KeyF60: "\x1b[24;3~",
|
||||||
|
KeyF61: "\x1b[1;4P",
|
||||||
|
KeyF62: "\x1b[1;4Q",
|
||||||
|
KeyF63: "\x1b[1;4R",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[1;2D",
|
||||||
|
KeyShfRight: "\x1b[1;2C",
|
||||||
|
KeyShfUp: "\x1b[1;2A",
|
||||||
|
KeyShfDown: "\x1b[1;2B",
|
||||||
|
KeyCtrlLeft: "\x1b[1;5D",
|
||||||
|
KeyCtrlRight: "\x1b[1;5C",
|
||||||
|
KeyCtrlUp: "\x1b[1;5A",
|
||||||
|
KeyCtrlDown: "\x1b[1;5B",
|
||||||
|
KeyMetaLeft: "\x1b[1;9D",
|
||||||
|
KeyMetaRight: "\x1b[1;9C",
|
||||||
|
KeyMetaUp: "\x1b[1;9A",
|
||||||
|
KeyMetaDown: "\x1b[1;9B",
|
||||||
|
KeyAltLeft: "\x1b[1;3D",
|
||||||
|
KeyAltRight: "\x1b[1;3C",
|
||||||
|
KeyAltUp: "\x1b[1;3A",
|
||||||
|
KeyAltDown: "\x1b[1;3B",
|
||||||
|
KeyAltShfLeft: "\x1b[1;4D",
|
||||||
|
KeyAltShfRight: "\x1b[1;4C",
|
||||||
|
KeyAltShfUp: "\x1b[1;4A",
|
||||||
|
KeyAltShfDown: "\x1b[1;4B",
|
||||||
|
KeyMetaShfLeft: "\x1b[1;10D",
|
||||||
|
KeyMetaShfRight: "\x1b[1;10C",
|
||||||
|
KeyMetaShfUp: "\x1b[1;10A",
|
||||||
|
KeyMetaShfDown: "\x1b[1;10B",
|
||||||
|
KeyCtrlShfLeft: "\x1b[1;6D",
|
||||||
|
KeyCtrlShfRight: "\x1b[1;6C",
|
||||||
|
KeyCtrlShfUp: "\x1b[1;6A",
|
||||||
|
KeyCtrlShfDown: "\x1b[1;6B",
|
||||||
|
KeyShfHome: "\x1b[1;2H",
|
||||||
|
KeyShfEnd: "\x1b[1;2F",
|
||||||
|
KeyCtrlHome: "\x1b[1;5H",
|
||||||
|
KeyCtrlEnd: "\x1b[1;5F",
|
||||||
|
KeyAltHome: "\x1b[1;9H",
|
||||||
|
KeyAltEnd: "\x1b[1;9F",
|
||||||
|
KeyCtrlShfHome: "\x1b[1;6H",
|
||||||
|
KeyCtrlShfEnd: "\x1b[1;6F",
|
||||||
|
KeyMetaShfHome: "\x1b[1;10H",
|
||||||
|
KeyMetaShfEnd: "\x1b[1;10F",
|
||||||
|
KeyAltShfHome: "\x1b[1;4H",
|
||||||
|
KeyAltShfEnd: "\x1b[1;4F",
|
||||||
|
KeyShfPgUp: "\x1b[5;2~",
|
||||||
|
KeyShfPgDn: "\x1b[6;2~",
|
||||||
|
})
|
||||||
|
}
|
41
vendor/github.com/gdamore/tcell/terminfo/a/ansi/term.go
generated
vendored
Normal file
41
vendor/github.com/gdamore/tcell/terminfo/a/ansi/term.go
generated
vendored
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package ansi
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// ansi/pc-term compatible with color
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "ansi",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[J",
|
||||||
|
AttrOff: "\x1b[0;10m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "+\x10,\x11-\x18.\x190\xdb`\x04a\xb1f\xf8g\xf1h\xb0j\xd9k\xbfl\xdam\xc0n\xc5o~p\xc4q\xc4r\xc4s_t\xc3u\xb4v\xc1w\xc2x\xb3y\xf3z\xf2{\xe3|\xd8}\x9c~\xfe",
|
||||||
|
EnterAcs: "\x1b[11m",
|
||||||
|
ExitAcs: "\x1b[10m",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\x1b[D",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[L",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1b[H",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
})
|
||||||
|
}
|
110
vendor/github.com/gdamore/tcell/terminfo/a/aterm/term.go
generated
vendored
Normal file
110
vendor/github.com/gdamore/tcell/terminfo/a/aterm/term.go
generated
vendored
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package aterm
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// AfterStep terminal
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "aterm",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b7\x1b[?47h",
|
||||||
|
ExitCA: "\x1b[2J\x1b[?47l\x1b8",
|
||||||
|
ShowCursor: "\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x0f",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b=",
|
||||||
|
ExitKeypad: "\x1b>",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b(B\x1b)0",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1b[7~",
|
||||||
|
KeyEnd: "\x1b[8~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[25~",
|
||||||
|
KeyF14: "\x1b[26~",
|
||||||
|
KeyF15: "\x1b[28~",
|
||||||
|
KeyF16: "\x1b[29~",
|
||||||
|
KeyF17: "\x1b[31~",
|
||||||
|
KeyF18: "\x1b[32~",
|
||||||
|
KeyF19: "\x1b[33~",
|
||||||
|
KeyF20: "\x1b[34~",
|
||||||
|
KeyF21: "\x1b[23$",
|
||||||
|
KeyF22: "\x1b[24$",
|
||||||
|
KeyF23: "\x1b[11^",
|
||||||
|
KeyF24: "\x1b[12^",
|
||||||
|
KeyF25: "\x1b[13^",
|
||||||
|
KeyF26: "\x1b[14^",
|
||||||
|
KeyF27: "\x1b[15^",
|
||||||
|
KeyF28: "\x1b[17^",
|
||||||
|
KeyF29: "\x1b[18^",
|
||||||
|
KeyF30: "\x1b[19^",
|
||||||
|
KeyF31: "\x1b[20^",
|
||||||
|
KeyF32: "\x1b[21^",
|
||||||
|
KeyF33: "\x1b[23^",
|
||||||
|
KeyF34: "\x1b[24^",
|
||||||
|
KeyF35: "\x1b[25^",
|
||||||
|
KeyF36: "\x1b[26^",
|
||||||
|
KeyF37: "\x1b[28^",
|
||||||
|
KeyF38: "\x1b[29^",
|
||||||
|
KeyF39: "\x1b[31^",
|
||||||
|
KeyF40: "\x1b[32^",
|
||||||
|
KeyF41: "\x1b[33^",
|
||||||
|
KeyF42: "\x1b[34^",
|
||||||
|
KeyF43: "\x1b[23@",
|
||||||
|
KeyF44: "\x1b[24@",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[d",
|
||||||
|
KeyShfRight: "\x1b[c",
|
||||||
|
KeyShfUp: "\x1b[a",
|
||||||
|
KeyShfDown: "\x1b[b",
|
||||||
|
KeyCtrlLeft: "\x1b[Od",
|
||||||
|
KeyCtrlRight: "\x1b[Oc",
|
||||||
|
KeyCtrlUp: "\x1b[Oa",
|
||||||
|
KeyCtrlDown: "\x1b[Ob",
|
||||||
|
KeyShfHome: "\x1b[7$",
|
||||||
|
KeyShfEnd: "\x1b[8$",
|
||||||
|
KeyCtrlHome: "\x1b[7^",
|
||||||
|
KeyCtrlEnd: "\x1b[8^",
|
||||||
|
})
|
||||||
|
}
|
54
vendor/github.com/gdamore/tcell/terminfo/b/beterm/term.go
generated
vendored
Normal file
54
vendor/github.com/gdamore/tcell/terminfo/b/beterm/term.go
generated
vendored
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package beterm
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// BeOS Terminal
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "beterm",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 25,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[J",
|
||||||
|
AttrOff: "\x1b[0;10m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?4h",
|
||||||
|
ExitKeypad: "\x1b[?4l",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1b[1~",
|
||||||
|
KeyEnd: "\x1b[4~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1b[11~",
|
||||||
|
KeyF2: "\x1b[12~",
|
||||||
|
KeyF3: "\x1b[13~",
|
||||||
|
KeyF4: "\x1b[14~",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[16~",
|
||||||
|
KeyF7: "\x1b[17~",
|
||||||
|
KeyF8: "\x1b[18~",
|
||||||
|
KeyF9: "\x1b[19~",
|
||||||
|
KeyF10: "\x1b[20~",
|
||||||
|
KeyF11: "\x1b[21~",
|
||||||
|
KeyF12: "\x1b[22~",
|
||||||
|
})
|
||||||
|
}
|
42
vendor/github.com/gdamore/tcell/terminfo/b/bsdos_pc/term.go
generated
vendored
Normal file
42
vendor/github.com/gdamore/tcell/terminfo/b/bsdos_pc/term.go
generated
vendored
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package bsdos_pc
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// IBM PC BSD/OS Console
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "bsdos-pc",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 25,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1bc",
|
||||||
|
AttrOff: "\x1b[0;10m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "+\x10,\x11-\x18.\x190\xdb`\x04a\xb1f\xf8g\xf1h\xb0j\xd9k\xbfl\xdam\xc0n\xc5o~p\xc4q\xc4r\xc4s_t\xc3u\xb4v\xc1w\xc2x\xb3y\xf3z\xf2{\xe3|\xd8}\x9c~\xfe",
|
||||||
|
EnterAcs: "\x1b[11m",
|
||||||
|
ExitAcs: "\x1b[10m",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[L",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1b[H",
|
||||||
|
KeyPgUp: "\x1b[I",
|
||||||
|
KeyPgDn: "\x1b[G",
|
||||||
|
})
|
||||||
|
}
|
32
vendor/github.com/gdamore/tcell/terminfo/base/base.go
generated
vendored
Normal file
32
vendor/github.com/gdamore/tcell/terminfo/base/base.go
generated
vendored
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
// Copyright 2019 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
// This is just a "minimalist" set of the base terminal descriptions.
|
||||||
|
// It should be sufficient for most applications.
|
||||||
|
|
||||||
|
// Package base contains the base terminal descriptions that are likely
|
||||||
|
// to be needed by any stock application. It is imported by default in the
|
||||||
|
// terminfo package, so terminal types listed here will be available to any
|
||||||
|
// tcell application.
|
||||||
|
package base
|
||||||
|
|
||||||
|
import (
|
||||||
|
// The following imports just register themselves --
|
||||||
|
// thse are the terminal types we aggregate in this package.
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/a/ansi"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/v/vt100"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/v/vt102"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/v/vt220"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/x/xterm"
|
||||||
|
)
|
63
vendor/github.com/gdamore/tcell/terminfo/c/cygwin/term.go
generated
vendored
Normal file
63
vendor/github.com/gdamore/tcell/terminfo/c/cygwin/term.go
generated
vendored
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package cygwin
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// ANSI emulation for Cygwin
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "cygwin",
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[J",
|
||||||
|
EnterCA: "\x1b7\x1b[?47h",
|
||||||
|
ExitCA: "\x1b[2J\x1b[?47l\x1b8",
|
||||||
|
AttrOff: "\x1b[0;10m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "+\x10,\x11-\x18.\x190\xdb`\x04a\xb1f\xf8g\xf1h\xb0j\xd9k\xbfl\xdam\xc0n\xc5o~p\xc4q\xc4r\xc4s_t\xc3u\xb4v\xc1w\xc2x\xb3y\xf3z\xf2{\xe3|\xd8}\x9c~\xfe",
|
||||||
|
EnterAcs: "\x1b[11m",
|
||||||
|
ExitAcs: "\x1b[10m",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1b[1~",
|
||||||
|
KeyEnd: "\x1b[4~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1b[[A",
|
||||||
|
KeyF2: "\x1b[[B",
|
||||||
|
KeyF3: "\x1b[[C",
|
||||||
|
KeyF4: "\x1b[[D",
|
||||||
|
KeyF5: "\x1b[[E",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[25~",
|
||||||
|
KeyF14: "\x1b[26~",
|
||||||
|
KeyF15: "\x1b[28~",
|
||||||
|
KeyF16: "\x1b[29~",
|
||||||
|
KeyF17: "\x1b[31~",
|
||||||
|
KeyF18: "\x1b[32~",
|
||||||
|
KeyF19: "\x1b[33~",
|
||||||
|
KeyF20: "\x1b[34~",
|
||||||
|
})
|
||||||
|
}
|
97
vendor/github.com/gdamore/tcell/terminfo/d/d200/term.go
generated
vendored
Normal file
97
vendor/github.com/gdamore/tcell/terminfo/d/d200/term.go
generated
vendored
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package d200
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// Data General DASHER D200
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "d200",
|
||||||
|
Aliases: []string{"d200-dg"},
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\f",
|
||||||
|
AttrOff: "\x0f\x15\x1d\x1eE",
|
||||||
|
Underline: "\x14",
|
||||||
|
Bold: "\x1eD\x14",
|
||||||
|
Dim: "\x1c",
|
||||||
|
Blink: "\x0e",
|
||||||
|
Reverse: "\x1eD",
|
||||||
|
PadChar: "\x00",
|
||||||
|
SetCursor: "\x10%p2%c%p1%c",
|
||||||
|
CursorBack1: "\x19",
|
||||||
|
CursorUp1: "\x17",
|
||||||
|
KeyUp: "\x17",
|
||||||
|
KeyDown: "\x1a",
|
||||||
|
KeyRight: "\x18",
|
||||||
|
KeyLeft: "\x19",
|
||||||
|
KeyHome: "\b",
|
||||||
|
KeyF1: "\x1eq",
|
||||||
|
KeyF2: "\x1er",
|
||||||
|
KeyF3: "\x1es",
|
||||||
|
KeyF4: "\x1et",
|
||||||
|
KeyF5: "\x1eu",
|
||||||
|
KeyF6: "\x1ev",
|
||||||
|
KeyF7: "\x1ew",
|
||||||
|
KeyF8: "\x1ex",
|
||||||
|
KeyF9: "\x1ey",
|
||||||
|
KeyF10: "\x1ez",
|
||||||
|
KeyF11: "\x1e{",
|
||||||
|
KeyF12: "\x1e|",
|
||||||
|
KeyF13: "\x1e}",
|
||||||
|
KeyF14: "\x1e~",
|
||||||
|
KeyF15: "\x1ep",
|
||||||
|
KeyF16: "\x1ea",
|
||||||
|
KeyF17: "\x1eb",
|
||||||
|
KeyF18: "\x1ec",
|
||||||
|
KeyF19: "\x1ed",
|
||||||
|
KeyF20: "\x1ee",
|
||||||
|
KeyF21: "\x1ef",
|
||||||
|
KeyF22: "\x1eg",
|
||||||
|
KeyF23: "\x1eh",
|
||||||
|
KeyF24: "\x1ei",
|
||||||
|
KeyF25: "\x1ej",
|
||||||
|
KeyF26: "\x1ek",
|
||||||
|
KeyF27: "\x1el",
|
||||||
|
KeyF28: "\x1em",
|
||||||
|
KeyF29: "\x1en",
|
||||||
|
KeyF30: "\x1e`",
|
||||||
|
KeyF31: "\x1e1",
|
||||||
|
KeyF32: "\x1e2",
|
||||||
|
KeyF33: "\x1e3",
|
||||||
|
KeyF34: "\x1e4",
|
||||||
|
KeyF35: "\x1e5",
|
||||||
|
KeyF36: "\x1e6",
|
||||||
|
KeyF37: "\x1e7",
|
||||||
|
KeyF38: "\x1e8",
|
||||||
|
KeyF39: "\x1e9",
|
||||||
|
KeyF40: "\x1e:",
|
||||||
|
KeyF41: "\x1e;",
|
||||||
|
KeyF42: "\x1e<",
|
||||||
|
KeyF43: "\x1e=",
|
||||||
|
KeyF44: "\x1e>",
|
||||||
|
KeyF45: "\x1e0",
|
||||||
|
KeyF46: "\x1e!",
|
||||||
|
KeyF47: "\x1e\"",
|
||||||
|
KeyF48: "\x1e#",
|
||||||
|
KeyF49: "\x1e$",
|
||||||
|
KeyF50: "\x1e%%",
|
||||||
|
KeyF51: "\x1e&",
|
||||||
|
KeyF52: "\x1e'",
|
||||||
|
KeyF53: "\x1e(",
|
||||||
|
KeyF54: "\x1e)",
|
||||||
|
KeyF55: "\x1e*",
|
||||||
|
KeyF56: "\x1e+",
|
||||||
|
KeyF57: "\x1e,",
|
||||||
|
KeyF58: "\x1e-",
|
||||||
|
KeyF59: "\x1e.",
|
||||||
|
KeyF60: "\x1e ",
|
||||||
|
KeyClear: "\f",
|
||||||
|
KeyShfLeft: "\x1e\x19",
|
||||||
|
KeyShfRight: "\x1e\x18",
|
||||||
|
KeyShfHome: "\x1e\b",
|
||||||
|
})
|
||||||
|
}
|
95
vendor/github.com/gdamore/tcell/terminfo/d/d210/term.go
generated
vendored
Normal file
95
vendor/github.com/gdamore/tcell/terminfo/d/d210/term.go
generated
vendored
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package d210
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// Data General DASHER D210 series
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "d210",
|
||||||
|
Aliases: []string{"d214"},
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[2J",
|
||||||
|
AttrOff: "\x1b[m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[4;7m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
PadChar: "\x00",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyHome: "\x1b[H",
|
||||||
|
KeyF1: "\x1b[001z",
|
||||||
|
KeyF2: "\x1b[002z",
|
||||||
|
KeyF3: "\x1b[003z",
|
||||||
|
KeyF4: "\x1b[004z",
|
||||||
|
KeyF5: "\x1b[005z",
|
||||||
|
KeyF6: "\x1b[006z",
|
||||||
|
KeyF7: "\x1b[007z",
|
||||||
|
KeyF8: "\x1b[008z",
|
||||||
|
KeyF9: "\x1b[009z",
|
||||||
|
KeyF10: "\x1b[010z",
|
||||||
|
KeyF11: "\x1b[011z",
|
||||||
|
KeyF12: "\x1b[012z",
|
||||||
|
KeyF13: "\x1b[013z",
|
||||||
|
KeyF14: "\x1b[014z",
|
||||||
|
KeyF15: "\x1b[000z",
|
||||||
|
KeyF16: "\x1b[101z",
|
||||||
|
KeyF17: "\x1b[102z",
|
||||||
|
KeyF18: "\x1b[103z",
|
||||||
|
KeyF19: "\x1b[104z",
|
||||||
|
KeyF20: "\x1b[105z",
|
||||||
|
KeyF21: "\x1b[106z",
|
||||||
|
KeyF22: "\x1b[107z",
|
||||||
|
KeyF23: "\x1b[108z",
|
||||||
|
KeyF24: "\x1b[109z",
|
||||||
|
KeyF25: "\x1b[110z",
|
||||||
|
KeyF26: "\x1b[111z",
|
||||||
|
KeyF27: "\x1b[112z",
|
||||||
|
KeyF28: "\x1b[113z",
|
||||||
|
KeyF29: "\x1b[114z",
|
||||||
|
KeyF30: "\x1b[100z",
|
||||||
|
KeyF31: "\x1b[201z",
|
||||||
|
KeyF32: "\x1b[202z",
|
||||||
|
KeyF33: "\x1b[203z",
|
||||||
|
KeyF34: "\x1b[204z",
|
||||||
|
KeyF35: "\x1b[205z",
|
||||||
|
KeyF36: "\x1b[206z",
|
||||||
|
KeyF37: "\x1b[207z",
|
||||||
|
KeyF38: "\x1b[208z",
|
||||||
|
KeyF39: "\x1b[209z",
|
||||||
|
KeyF40: "\x1b[210z",
|
||||||
|
KeyF41: "\x1b[211z",
|
||||||
|
KeyF42: "\x1b[212z",
|
||||||
|
KeyF43: "\x1b[213z",
|
||||||
|
KeyF44: "\x1b[214z",
|
||||||
|
KeyF45: "\x1b[200z",
|
||||||
|
KeyF46: "\x1b[301z",
|
||||||
|
KeyF47: "\x1b[302z",
|
||||||
|
KeyF48: "\x1b[303z",
|
||||||
|
KeyF49: "\x1b[304z",
|
||||||
|
KeyF50: "\x1b[305z",
|
||||||
|
KeyF51: "\x1b[306z",
|
||||||
|
KeyF52: "\x1b[307z",
|
||||||
|
KeyF53: "\x1b[308z",
|
||||||
|
KeyF54: "\x1b[309z",
|
||||||
|
KeyF55: "\x1b[310z",
|
||||||
|
KeyF56: "\x1b[311z",
|
||||||
|
KeyF57: "\x1b[312z",
|
||||||
|
KeyF58: "\x1b[313z",
|
||||||
|
KeyF59: "\x1b[314z",
|
||||||
|
KeyF60: "\x1b[300z",
|
||||||
|
KeyPrint: "\x1b[i",
|
||||||
|
KeyClear: "\x1b[2J",
|
||||||
|
})
|
||||||
|
}
|
67
vendor/github.com/gdamore/tcell/terminfo/d/dtterm/term.go
generated
vendored
Normal file
67
vendor/github.com/gdamore/tcell/terminfo/d/dtterm/term.go
generated
vendored
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package dtterm
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// CDE desktop terminal
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "dtterm",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[J",
|
||||||
|
ShowCursor: "\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x0f",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b(B\x1b)0",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1b[11~",
|
||||||
|
KeyF2: "\x1b[12~",
|
||||||
|
KeyF3: "\x1b[13~",
|
||||||
|
KeyF4: "\x1b[14~",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[25~",
|
||||||
|
KeyF14: "\x1b[26~",
|
||||||
|
KeyF15: "\x1b[28~",
|
||||||
|
KeyF16: "\x1b[29~",
|
||||||
|
KeyF17: "\x1b[31~",
|
||||||
|
KeyF18: "\x1b[32~",
|
||||||
|
KeyF19: "\x1b[33~",
|
||||||
|
KeyF20: "\x1b[34~",
|
||||||
|
KeyHelp: "\x1b[28~",
|
||||||
|
})
|
||||||
|
}
|
429
vendor/github.com/gdamore/tcell/terminfo/dynamic/dynamic.go
generated
vendored
Normal file
429
vendor/github.com/gdamore/tcell/terminfo/dynamic/dynamic.go
generated
vendored
Normal file
|
@ -0,0 +1,429 @@
|
||||||
|
// Copyright 2019 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
// The dynamic package is used to generate a terminal description dynamically,
|
||||||
|
// using infocmp. This is really a method of last resort, as the performance
|
||||||
|
// will be slow, and it requires a working infocmp. But, the hope is that it
|
||||||
|
// will assist folks who have to deal with a terminal description that isn't
|
||||||
|
// already built in. This requires infocmp to be in the user's path, and to
|
||||||
|
// support reasonably the -1 option.
|
||||||
|
|
||||||
|
package dynamic
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"errors"
|
||||||
|
"os/exec"
|
||||||
|
"regexp"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/gdamore/tcell/terminfo"
|
||||||
|
)
|
||||||
|
|
||||||
|
type termcap struct {
|
||||||
|
name string
|
||||||
|
desc string
|
||||||
|
aliases []string
|
||||||
|
bools map[string]bool
|
||||||
|
nums map[string]int
|
||||||
|
strs map[string]string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (tc *termcap) getnum(s string) int {
|
||||||
|
return (tc.nums[s])
|
||||||
|
}
|
||||||
|
|
||||||
|
func (tc *termcap) getflag(s string) bool {
|
||||||
|
return (tc.bools[s])
|
||||||
|
}
|
||||||
|
|
||||||
|
func (tc *termcap) getstr(s string) string {
|
||||||
|
return (tc.strs[s])
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
none = iota
|
||||||
|
control
|
||||||
|
escaped
|
||||||
|
)
|
||||||
|
|
||||||
|
var errNotAddressable = errors.New("terminal not cursor addressable")
|
||||||
|
|
||||||
|
func unescape(s string) string {
|
||||||
|
// Various escapes are in \x format. Control codes are
|
||||||
|
// encoded as ^M (carat followed by ASCII equivalent).
|
||||||
|
// escapes are: \e, \E - escape
|
||||||
|
// \0 NULL, \n \l \r \t \b \f \s for equivalent C escape.
|
||||||
|
buf := &bytes.Buffer{}
|
||||||
|
esc := none
|
||||||
|
|
||||||
|
for i := 0; i < len(s); i++ {
|
||||||
|
c := s[i]
|
||||||
|
switch esc {
|
||||||
|
case none:
|
||||||
|
switch c {
|
||||||
|
case '\\':
|
||||||
|
esc = escaped
|
||||||
|
case '^':
|
||||||
|
esc = control
|
||||||
|
default:
|
||||||
|
buf.WriteByte(c)
|
||||||
|
}
|
||||||
|
case control:
|
||||||
|
buf.WriteByte(c ^ 1<<6)
|
||||||
|
esc = none
|
||||||
|
case escaped:
|
||||||
|
switch c {
|
||||||
|
case 'E', 'e':
|
||||||
|
buf.WriteByte(0x1b)
|
||||||
|
case '0', '1', '2', '3', '4', '5', '6', '7':
|
||||||
|
if i+2 < len(s) && s[i+1] >= '0' && s[i+1] <= '7' && s[i+2] >= '0' && s[i+2] <= '7' {
|
||||||
|
buf.WriteByte(((c - '0') * 64) + ((s[i+1] - '0') * 8) + (s[i+2] - '0'))
|
||||||
|
i = i + 2
|
||||||
|
} else if c == '0' {
|
||||||
|
buf.WriteByte(0)
|
||||||
|
}
|
||||||
|
case 'n':
|
||||||
|
buf.WriteByte('\n')
|
||||||
|
case 'r':
|
||||||
|
buf.WriteByte('\r')
|
||||||
|
case 't':
|
||||||
|
buf.WriteByte('\t')
|
||||||
|
case 'b':
|
||||||
|
buf.WriteByte('\b')
|
||||||
|
case 'f':
|
||||||
|
buf.WriteByte('\f')
|
||||||
|
case 's':
|
||||||
|
buf.WriteByte(' ')
|
||||||
|
default:
|
||||||
|
buf.WriteByte(c)
|
||||||
|
}
|
||||||
|
esc = none
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (buf.String())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (tc *termcap) setupterm(name string) error {
|
||||||
|
cmd := exec.Command("infocmp", "-1", name)
|
||||||
|
output := &bytes.Buffer{}
|
||||||
|
cmd.Stdout = output
|
||||||
|
|
||||||
|
tc.strs = make(map[string]string)
|
||||||
|
tc.bools = make(map[string]bool)
|
||||||
|
tc.nums = make(map[string]int)
|
||||||
|
|
||||||
|
if err := cmd.Run(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now parse the output.
|
||||||
|
// We get comment lines (starting with "#"), followed by
|
||||||
|
// a header line that looks like "<name>|<alias>|...|<desc>"
|
||||||
|
// then capabilities, one per line, starting with a tab and ending
|
||||||
|
// with a comma and newline.
|
||||||
|
lines := strings.Split(output.String(), "\n")
|
||||||
|
for len(lines) > 0 && strings.HasPrefix(lines[0], "#") {
|
||||||
|
lines = lines[1:]
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ditch trailing empty last line
|
||||||
|
if lines[len(lines)-1] == "" {
|
||||||
|
lines = lines[:len(lines)-1]
|
||||||
|
}
|
||||||
|
header := lines[0]
|
||||||
|
if strings.HasSuffix(header, ",") {
|
||||||
|
header = header[:len(header)-1]
|
||||||
|
}
|
||||||
|
names := strings.Split(header, "|")
|
||||||
|
tc.name = names[0]
|
||||||
|
names = names[1:]
|
||||||
|
if len(names) > 0 {
|
||||||
|
tc.desc = names[len(names)-1]
|
||||||
|
names = names[:len(names)-1]
|
||||||
|
}
|
||||||
|
tc.aliases = names
|
||||||
|
for _, val := range lines[1:] {
|
||||||
|
if (!strings.HasPrefix(val, "\t")) ||
|
||||||
|
(!strings.HasSuffix(val, ",")) {
|
||||||
|
return (errors.New("malformed infocmp: " + val))
|
||||||
|
}
|
||||||
|
|
||||||
|
val = val[1:]
|
||||||
|
val = val[:len(val)-1]
|
||||||
|
|
||||||
|
if k := strings.SplitN(val, "=", 2); len(k) == 2 {
|
||||||
|
tc.strs[k[0]] = unescape(k[1])
|
||||||
|
} else if k := strings.SplitN(val, "#", 2); len(k) == 2 {
|
||||||
|
u, err := strconv.ParseUint(k[1], 0, 0)
|
||||||
|
if err != nil {
|
||||||
|
return (err)
|
||||||
|
}
|
||||||
|
tc.nums[k[0]] = int(u)
|
||||||
|
} else {
|
||||||
|
tc.bools[val] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// LoadTerminfo creates a Terminfo by for named terminal by attempting to parse
|
||||||
|
// the output from infocmp. This returns the terminfo entry, a description of
|
||||||
|
// the terminal, and either nil or an error.
|
||||||
|
func LoadTerminfo(name string) (*terminfo.Terminfo, string, error) {
|
||||||
|
var tc termcap
|
||||||
|
if err := tc.setupterm(name); err != nil {
|
||||||
|
if err != nil {
|
||||||
|
return nil, "", err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
t := &terminfo.Terminfo{}
|
||||||
|
// If this is an alias record, then just emit the alias
|
||||||
|
t.Name = tc.name
|
||||||
|
if t.Name != name {
|
||||||
|
return t, "", nil
|
||||||
|
}
|
||||||
|
t.Aliases = tc.aliases
|
||||||
|
t.Colors = tc.getnum("colors")
|
||||||
|
t.Columns = tc.getnum("cols")
|
||||||
|
t.Lines = tc.getnum("lines")
|
||||||
|
t.Bell = tc.getstr("bel")
|
||||||
|
t.Clear = tc.getstr("clear")
|
||||||
|
t.EnterCA = tc.getstr("smcup")
|
||||||
|
t.ExitCA = tc.getstr("rmcup")
|
||||||
|
t.ShowCursor = tc.getstr("cnorm")
|
||||||
|
t.HideCursor = tc.getstr("civis")
|
||||||
|
t.AttrOff = tc.getstr("sgr0")
|
||||||
|
t.Underline = tc.getstr("smul")
|
||||||
|
t.Bold = tc.getstr("bold")
|
||||||
|
t.Blink = tc.getstr("blink")
|
||||||
|
t.Dim = tc.getstr("dim")
|
||||||
|
t.Italic = tc.getstr("sitm")
|
||||||
|
t.Reverse = tc.getstr("rev")
|
||||||
|
t.EnterKeypad = tc.getstr("smkx")
|
||||||
|
t.ExitKeypad = tc.getstr("rmkx")
|
||||||
|
t.SetFg = tc.getstr("setaf")
|
||||||
|
t.SetBg = tc.getstr("setab")
|
||||||
|
t.SetCursor = tc.getstr("cup")
|
||||||
|
t.CursorBack1 = tc.getstr("cub1")
|
||||||
|
t.CursorUp1 = tc.getstr("cuu1")
|
||||||
|
t.KeyF1 = tc.getstr("kf1")
|
||||||
|
t.KeyF2 = tc.getstr("kf2")
|
||||||
|
t.KeyF3 = tc.getstr("kf3")
|
||||||
|
t.KeyF4 = tc.getstr("kf4")
|
||||||
|
t.KeyF5 = tc.getstr("kf5")
|
||||||
|
t.KeyF6 = tc.getstr("kf6")
|
||||||
|
t.KeyF7 = tc.getstr("kf7")
|
||||||
|
t.KeyF8 = tc.getstr("kf8")
|
||||||
|
t.KeyF9 = tc.getstr("kf9")
|
||||||
|
t.KeyF10 = tc.getstr("kf10")
|
||||||
|
t.KeyF11 = tc.getstr("kf11")
|
||||||
|
t.KeyF12 = tc.getstr("kf12")
|
||||||
|
t.KeyF13 = tc.getstr("kf13")
|
||||||
|
t.KeyF14 = tc.getstr("kf14")
|
||||||
|
t.KeyF15 = tc.getstr("kf15")
|
||||||
|
t.KeyF16 = tc.getstr("kf16")
|
||||||
|
t.KeyF17 = tc.getstr("kf17")
|
||||||
|
t.KeyF18 = tc.getstr("kf18")
|
||||||
|
t.KeyF19 = tc.getstr("kf19")
|
||||||
|
t.KeyF20 = tc.getstr("kf20")
|
||||||
|
t.KeyF21 = tc.getstr("kf21")
|
||||||
|
t.KeyF22 = tc.getstr("kf22")
|
||||||
|
t.KeyF23 = tc.getstr("kf23")
|
||||||
|
t.KeyF24 = tc.getstr("kf24")
|
||||||
|
t.KeyF25 = tc.getstr("kf25")
|
||||||
|
t.KeyF26 = tc.getstr("kf26")
|
||||||
|
t.KeyF27 = tc.getstr("kf27")
|
||||||
|
t.KeyF28 = tc.getstr("kf28")
|
||||||
|
t.KeyF29 = tc.getstr("kf29")
|
||||||
|
t.KeyF30 = tc.getstr("kf30")
|
||||||
|
t.KeyF31 = tc.getstr("kf31")
|
||||||
|
t.KeyF32 = tc.getstr("kf32")
|
||||||
|
t.KeyF33 = tc.getstr("kf33")
|
||||||
|
t.KeyF34 = tc.getstr("kf34")
|
||||||
|
t.KeyF35 = tc.getstr("kf35")
|
||||||
|
t.KeyF36 = tc.getstr("kf36")
|
||||||
|
t.KeyF37 = tc.getstr("kf37")
|
||||||
|
t.KeyF38 = tc.getstr("kf38")
|
||||||
|
t.KeyF39 = tc.getstr("kf39")
|
||||||
|
t.KeyF40 = tc.getstr("kf40")
|
||||||
|
t.KeyF41 = tc.getstr("kf41")
|
||||||
|
t.KeyF42 = tc.getstr("kf42")
|
||||||
|
t.KeyF43 = tc.getstr("kf43")
|
||||||
|
t.KeyF44 = tc.getstr("kf44")
|
||||||
|
t.KeyF45 = tc.getstr("kf45")
|
||||||
|
t.KeyF46 = tc.getstr("kf46")
|
||||||
|
t.KeyF47 = tc.getstr("kf47")
|
||||||
|
t.KeyF48 = tc.getstr("kf48")
|
||||||
|
t.KeyF49 = tc.getstr("kf49")
|
||||||
|
t.KeyF50 = tc.getstr("kf50")
|
||||||
|
t.KeyF51 = tc.getstr("kf51")
|
||||||
|
t.KeyF52 = tc.getstr("kf52")
|
||||||
|
t.KeyF53 = tc.getstr("kf53")
|
||||||
|
t.KeyF54 = tc.getstr("kf54")
|
||||||
|
t.KeyF55 = tc.getstr("kf55")
|
||||||
|
t.KeyF56 = tc.getstr("kf56")
|
||||||
|
t.KeyF57 = tc.getstr("kf57")
|
||||||
|
t.KeyF58 = tc.getstr("kf58")
|
||||||
|
t.KeyF59 = tc.getstr("kf59")
|
||||||
|
t.KeyF60 = tc.getstr("kf60")
|
||||||
|
t.KeyF61 = tc.getstr("kf61")
|
||||||
|
t.KeyF62 = tc.getstr("kf62")
|
||||||
|
t.KeyF63 = tc.getstr("kf63")
|
||||||
|
t.KeyF64 = tc.getstr("kf64")
|
||||||
|
t.KeyInsert = tc.getstr("kich1")
|
||||||
|
t.KeyDelete = tc.getstr("kdch1")
|
||||||
|
t.KeyBackspace = tc.getstr("kbs")
|
||||||
|
t.KeyHome = tc.getstr("khome")
|
||||||
|
t.KeyEnd = tc.getstr("kend")
|
||||||
|
t.KeyUp = tc.getstr("kcuu1")
|
||||||
|
t.KeyDown = tc.getstr("kcud1")
|
||||||
|
t.KeyRight = tc.getstr("kcuf1")
|
||||||
|
t.KeyLeft = tc.getstr("kcub1")
|
||||||
|
t.KeyPgDn = tc.getstr("knp")
|
||||||
|
t.KeyPgUp = tc.getstr("kpp")
|
||||||
|
t.KeyBacktab = tc.getstr("kcbt")
|
||||||
|
t.KeyExit = tc.getstr("kext")
|
||||||
|
t.KeyCancel = tc.getstr("kcan")
|
||||||
|
t.KeyPrint = tc.getstr("kprt")
|
||||||
|
t.KeyHelp = tc.getstr("khlp")
|
||||||
|
t.KeyClear = tc.getstr("kclr")
|
||||||
|
t.AltChars = tc.getstr("acsc")
|
||||||
|
t.EnterAcs = tc.getstr("smacs")
|
||||||
|
t.ExitAcs = tc.getstr("rmacs")
|
||||||
|
t.EnableAcs = tc.getstr("enacs")
|
||||||
|
t.Mouse = tc.getstr("kmous")
|
||||||
|
t.KeyShfRight = tc.getstr("kRIT")
|
||||||
|
t.KeyShfLeft = tc.getstr("kLFT")
|
||||||
|
t.KeyShfHome = tc.getstr("kHOM")
|
||||||
|
t.KeyShfEnd = tc.getstr("kEND")
|
||||||
|
|
||||||
|
// Terminfo lacks descriptions for a bunch of modified keys,
|
||||||
|
// but modern XTerm and emulators often have them. Let's add them,
|
||||||
|
// if the shifted right and left arrows are defined.
|
||||||
|
if t.KeyShfRight == "\x1b[1;2C" && t.KeyShfLeft == "\x1b[1;2D" {
|
||||||
|
t.KeyShfUp = "\x1b[1;2A"
|
||||||
|
t.KeyShfDown = "\x1b[1;2B"
|
||||||
|
t.KeyMetaUp = "\x1b[1;9A"
|
||||||
|
t.KeyMetaDown = "\x1b[1;9B"
|
||||||
|
t.KeyMetaRight = "\x1b[1;9C"
|
||||||
|
t.KeyMetaLeft = "\x1b[1;9D"
|
||||||
|
t.KeyAltUp = "\x1b[1;3A"
|
||||||
|
t.KeyAltDown = "\x1b[1;3B"
|
||||||
|
t.KeyAltRight = "\x1b[1;3C"
|
||||||
|
t.KeyAltLeft = "\x1b[1;3D"
|
||||||
|
t.KeyCtrlUp = "\x1b[1;5A"
|
||||||
|
t.KeyCtrlDown = "\x1b[1;5B"
|
||||||
|
t.KeyCtrlRight = "\x1b[1;5C"
|
||||||
|
t.KeyCtrlLeft = "\x1b[1;5D"
|
||||||
|
t.KeyAltShfUp = "\x1b[1;4A"
|
||||||
|
t.KeyAltShfDown = "\x1b[1;4B"
|
||||||
|
t.KeyAltShfRight = "\x1b[1;4C"
|
||||||
|
t.KeyAltShfLeft = "\x1b[1;4D"
|
||||||
|
|
||||||
|
t.KeyMetaShfUp = "\x1b[1;10A"
|
||||||
|
t.KeyMetaShfDown = "\x1b[1;10B"
|
||||||
|
t.KeyMetaShfRight = "\x1b[1;10C"
|
||||||
|
t.KeyMetaShfLeft = "\x1b[1;10D"
|
||||||
|
|
||||||
|
t.KeyCtrlShfUp = "\x1b[1;6A"
|
||||||
|
t.KeyCtrlShfDown = "\x1b[1;6B"
|
||||||
|
t.KeyCtrlShfRight = "\x1b[1;6C"
|
||||||
|
t.KeyCtrlShfLeft = "\x1b[1;6D"
|
||||||
|
|
||||||
|
t.KeyShfPgUp = "\x1b[5;2~"
|
||||||
|
t.KeyShfPgDn = "\x1b[6;2~"
|
||||||
|
}
|
||||||
|
// And also for Home and End
|
||||||
|
if t.KeyShfHome == "\x1b[1;2H" && t.KeyShfEnd == "\x1b[1;2F" {
|
||||||
|
t.KeyCtrlHome = "\x1b[1;5H"
|
||||||
|
t.KeyCtrlEnd = "\x1b[1;5F"
|
||||||
|
t.KeyAltHome = "\x1b[1;9H"
|
||||||
|
t.KeyAltEnd = "\x1b[1;9F"
|
||||||
|
t.KeyCtrlShfHome = "\x1b[1;6H"
|
||||||
|
t.KeyCtrlShfEnd = "\x1b[1;6F"
|
||||||
|
t.KeyAltShfHome = "\x1b[1;4H"
|
||||||
|
t.KeyAltShfEnd = "\x1b[1;4F"
|
||||||
|
t.KeyMetaShfHome = "\x1b[1;10H"
|
||||||
|
t.KeyMetaShfEnd = "\x1b[1;10F"
|
||||||
|
}
|
||||||
|
|
||||||
|
// And the same thing for rxvt and workalikes (Eterm, aterm, etc.)
|
||||||
|
// It seems that urxvt at least send escaped as ALT prefix for these,
|
||||||
|
// although some places seem to indicate a separate ALT key sesquence.
|
||||||
|
if t.KeyShfRight == "\x1b[c" && t.KeyShfLeft == "\x1b[d" {
|
||||||
|
t.KeyShfUp = "\x1b[a"
|
||||||
|
t.KeyShfDown = "\x1b[b"
|
||||||
|
t.KeyCtrlUp = "\x1b[Oa"
|
||||||
|
t.KeyCtrlDown = "\x1b[Ob"
|
||||||
|
t.KeyCtrlRight = "\x1b[Oc"
|
||||||
|
t.KeyCtrlLeft = "\x1b[Od"
|
||||||
|
}
|
||||||
|
if t.KeyShfHome == "\x1b[7$" && t.KeyShfEnd == "\x1b[8$" {
|
||||||
|
t.KeyCtrlHome = "\x1b[7^"
|
||||||
|
t.KeyCtrlEnd = "\x1b[8^"
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the kmous entry is present, then we need to record the
|
||||||
|
// the codes to enter and exit mouse mode. Sadly, this is not
|
||||||
|
// part of the terminfo databases anywhere that I've found, but
|
||||||
|
// is an extension. The escapedape codes are documented in the XTerm
|
||||||
|
// manual, and all terminals that have kmous are expected to
|
||||||
|
// use these same codes, unless explicitly configured otherwise
|
||||||
|
// vi XM. Note that in any event, we only known how to parse either
|
||||||
|
// x11 or SGR mouse events -- if your terminal doesn't support one
|
||||||
|
// of these two forms, you maybe out of luck.
|
||||||
|
t.MouseMode = tc.getstr("XM")
|
||||||
|
if t.Mouse != "" && t.MouseMode == "" {
|
||||||
|
// we anticipate that all xterm mouse tracking compatible
|
||||||
|
// terminals understand mouse tracking (1000), but we hope
|
||||||
|
// that those that don't understand any-event tracking (1003)
|
||||||
|
// will at least ignore it. Likewise we hope that terminals
|
||||||
|
// that don't understand SGR reporting (1006) just ignore it.
|
||||||
|
t.MouseMode = "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;" +
|
||||||
|
"\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c"
|
||||||
|
}
|
||||||
|
|
||||||
|
// We only support colors in ANSI 8 or 256 color mode.
|
||||||
|
if t.Colors < 8 || t.SetFg == "" {
|
||||||
|
t.Colors = 0
|
||||||
|
}
|
||||||
|
if t.SetCursor == "" {
|
||||||
|
return nil, "", errNotAddressable
|
||||||
|
}
|
||||||
|
|
||||||
|
// For padding, we lookup the pad char. If that isn't present,
|
||||||
|
// and npc is *not* set, then we assume a null byte.
|
||||||
|
t.PadChar = tc.getstr("pad")
|
||||||
|
if t.PadChar == "" {
|
||||||
|
if !tc.getflag("npc") {
|
||||||
|
t.PadChar = "\u0000"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// For terminals that use "standard" SGR sequences, lets combine the
|
||||||
|
// foreground and background together.
|
||||||
|
if strings.HasPrefix(t.SetFg, "\x1b[") &&
|
||||||
|
strings.HasPrefix(t.SetBg, "\x1b[") &&
|
||||||
|
strings.HasSuffix(t.SetFg, "m") &&
|
||||||
|
strings.HasSuffix(t.SetBg, "m") {
|
||||||
|
fg := t.SetFg[:len(t.SetFg)-1]
|
||||||
|
r := regexp.MustCompile("%p1")
|
||||||
|
bg := r.ReplaceAllString(t.SetBg[2:], "%p2")
|
||||||
|
t.SetFgBg = fg + ";" + bg
|
||||||
|
}
|
||||||
|
|
||||||
|
return t, tc.desc, nil
|
||||||
|
}
|
60
vendor/github.com/gdamore/tcell/terminfo/e/emacs/term.go
generated
vendored
Normal file
60
vendor/github.com/gdamore/tcell/terminfo/e/emacs/term.go
generated
vendored
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package emacs
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// gnu emacs term.el terminal emulation
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "eterm",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[J",
|
||||||
|
EnterCA: "\x1b7\x1b[?47h",
|
||||||
|
ExitCA: "\x1b[2J\x1b[?47l\x1b8",
|
||||||
|
AttrOff: "\x1b[m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
PadChar: "\x00",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
})
|
||||||
|
|
||||||
|
// Emacs term.el terminal emulator term-protocol-version 0.96
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "eterm-color",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[J",
|
||||||
|
AttrOff: "\x1b[m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
SetFg: "\x1b[%p1%{30}%+%dm",
|
||||||
|
SetBg: "\x1b[%p1%'('%+%dm",
|
||||||
|
SetFgBg: "\x1b[%p1%{30}%+%d;%p2%'('%+%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1b[1~",
|
||||||
|
KeyEnd: "\x1b[4~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
})
|
||||||
|
}
|
309
vendor/github.com/gdamore/tcell/terminfo/e/eterm/term.go
generated
vendored
Normal file
309
vendor/github.com/gdamore/tcell/terminfo/e/eterm/term.go
generated
vendored
Normal file
|
@ -0,0 +1,309 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package eterm
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// Eterm with xterm-style color support (X Window System)
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "Eterm",
|
||||||
|
Aliases: []string{"Eterm-color"},
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b7\x1b[?47h",
|
||||||
|
ExitCA: "\x1b[2J\x1b[?47l\x1b8",
|
||||||
|
ShowCursor: "\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x0f",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b)0",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1b[7~",
|
||||||
|
KeyEnd: "\x1b[8~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1b[11~",
|
||||||
|
KeyF2: "\x1b[12~",
|
||||||
|
KeyF3: "\x1b[13~",
|
||||||
|
KeyF4: "\x1b[14~",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[25~",
|
||||||
|
KeyF14: "\x1b[26~",
|
||||||
|
KeyF15: "\x1b[28~",
|
||||||
|
KeyF16: "\x1b[29~",
|
||||||
|
KeyF17: "\x1b[31~",
|
||||||
|
KeyF18: "\x1b[32~",
|
||||||
|
KeyF19: "\x1b[33~",
|
||||||
|
KeyF20: "\x1b[34~",
|
||||||
|
KeyF21: "\x1b[23$",
|
||||||
|
KeyF22: "\x1b[24$",
|
||||||
|
KeyF23: "\x1b[11^",
|
||||||
|
KeyF24: "\x1b[12^",
|
||||||
|
KeyF25: "\x1b[13^",
|
||||||
|
KeyF26: "\x1b[14^",
|
||||||
|
KeyF27: "\x1b[15^",
|
||||||
|
KeyF28: "\x1b[17^",
|
||||||
|
KeyF29: "\x1b[18^",
|
||||||
|
KeyF30: "\x1b[19^",
|
||||||
|
KeyF31: "\x1b[20^",
|
||||||
|
KeyF32: "\x1b[21^",
|
||||||
|
KeyF33: "\x1b[23^",
|
||||||
|
KeyF34: "\x1b[24^",
|
||||||
|
KeyF35: "\x1b[25^",
|
||||||
|
KeyF36: "\x1b[26^",
|
||||||
|
KeyF37: "\x1b[28^",
|
||||||
|
KeyF38: "\x1b[29^",
|
||||||
|
KeyF39: "\x1b[31^",
|
||||||
|
KeyF40: "\x1b[32^",
|
||||||
|
KeyF41: "\x1b[33^",
|
||||||
|
KeyF42: "\x1b[34^",
|
||||||
|
KeyF43: "\x1b[23@",
|
||||||
|
KeyF44: "\x1b[24@",
|
||||||
|
KeyHelp: "\x1b[28~",
|
||||||
|
KeyShfLeft: "\x1b[d",
|
||||||
|
KeyShfRight: "\x1b[c",
|
||||||
|
KeyShfUp: "\x1b[a",
|
||||||
|
KeyShfDown: "\x1b[b",
|
||||||
|
KeyCtrlLeft: "\x1b[Od",
|
||||||
|
KeyCtrlRight: "\x1b[Oc",
|
||||||
|
KeyCtrlUp: "\x1b[Oa",
|
||||||
|
KeyCtrlDown: "\x1b[Ob",
|
||||||
|
KeyShfHome: "\x1b[7$",
|
||||||
|
KeyShfEnd: "\x1b[8$",
|
||||||
|
KeyCtrlHome: "\x1b[7^",
|
||||||
|
KeyCtrlEnd: "\x1b[8^",
|
||||||
|
})
|
||||||
|
|
||||||
|
// Eterm with 88 colors
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "Eterm-88color",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 88,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b7\x1b[?47h",
|
||||||
|
ExitCA: "\x1b[2J\x1b[?47l\x1b8",
|
||||||
|
ShowCursor: "\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x0f",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
|
||||||
|
SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",
|
||||||
|
SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b)0",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1b[7~",
|
||||||
|
KeyEnd: "\x1b[8~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1b[11~",
|
||||||
|
KeyF2: "\x1b[12~",
|
||||||
|
KeyF3: "\x1b[13~",
|
||||||
|
KeyF4: "\x1b[14~",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[25~",
|
||||||
|
KeyF14: "\x1b[26~",
|
||||||
|
KeyF15: "\x1b[28~",
|
||||||
|
KeyF16: "\x1b[29~",
|
||||||
|
KeyF17: "\x1b[31~",
|
||||||
|
KeyF18: "\x1b[32~",
|
||||||
|
KeyF19: "\x1b[33~",
|
||||||
|
KeyF20: "\x1b[34~",
|
||||||
|
KeyF21: "\x1b[23$",
|
||||||
|
KeyF22: "\x1b[24$",
|
||||||
|
KeyF23: "\x1b[11^",
|
||||||
|
KeyF24: "\x1b[12^",
|
||||||
|
KeyF25: "\x1b[13^",
|
||||||
|
KeyF26: "\x1b[14^",
|
||||||
|
KeyF27: "\x1b[15^",
|
||||||
|
KeyF28: "\x1b[17^",
|
||||||
|
KeyF29: "\x1b[18^",
|
||||||
|
KeyF30: "\x1b[19^",
|
||||||
|
KeyF31: "\x1b[20^",
|
||||||
|
KeyF32: "\x1b[21^",
|
||||||
|
KeyF33: "\x1b[23^",
|
||||||
|
KeyF34: "\x1b[24^",
|
||||||
|
KeyF35: "\x1b[25^",
|
||||||
|
KeyF36: "\x1b[26^",
|
||||||
|
KeyF37: "\x1b[28^",
|
||||||
|
KeyF38: "\x1b[29^",
|
||||||
|
KeyF39: "\x1b[31^",
|
||||||
|
KeyF40: "\x1b[32^",
|
||||||
|
KeyF41: "\x1b[33^",
|
||||||
|
KeyF42: "\x1b[34^",
|
||||||
|
KeyF43: "\x1b[23@",
|
||||||
|
KeyF44: "\x1b[24@",
|
||||||
|
KeyHelp: "\x1b[28~",
|
||||||
|
KeyShfLeft: "\x1b[d",
|
||||||
|
KeyShfRight: "\x1b[c",
|
||||||
|
KeyShfUp: "\x1b[a",
|
||||||
|
KeyShfDown: "\x1b[b",
|
||||||
|
KeyCtrlLeft: "\x1b[Od",
|
||||||
|
KeyCtrlRight: "\x1b[Oc",
|
||||||
|
KeyCtrlUp: "\x1b[Oa",
|
||||||
|
KeyCtrlDown: "\x1b[Ob",
|
||||||
|
KeyShfHome: "\x1b[7$",
|
||||||
|
KeyShfEnd: "\x1b[8$",
|
||||||
|
KeyCtrlHome: "\x1b[7^",
|
||||||
|
KeyCtrlEnd: "\x1b[8^",
|
||||||
|
})
|
||||||
|
|
||||||
|
// Eterm with xterm 256-colors
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "Eterm-256color",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 256,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b7\x1b[?47h",
|
||||||
|
ExitCA: "\x1b[2J\x1b[?47l\x1b8",
|
||||||
|
ShowCursor: "\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x0f",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
|
||||||
|
SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",
|
||||||
|
SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b)0",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1b[7~",
|
||||||
|
KeyEnd: "\x1b[8~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1b[11~",
|
||||||
|
KeyF2: "\x1b[12~",
|
||||||
|
KeyF3: "\x1b[13~",
|
||||||
|
KeyF4: "\x1b[14~",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[25~",
|
||||||
|
KeyF14: "\x1b[26~",
|
||||||
|
KeyF15: "\x1b[28~",
|
||||||
|
KeyF16: "\x1b[29~",
|
||||||
|
KeyF17: "\x1b[31~",
|
||||||
|
KeyF18: "\x1b[32~",
|
||||||
|
KeyF19: "\x1b[33~",
|
||||||
|
KeyF20: "\x1b[34~",
|
||||||
|
KeyF21: "\x1b[23$",
|
||||||
|
KeyF22: "\x1b[24$",
|
||||||
|
KeyF23: "\x1b[11^",
|
||||||
|
KeyF24: "\x1b[12^",
|
||||||
|
KeyF25: "\x1b[13^",
|
||||||
|
KeyF26: "\x1b[14^",
|
||||||
|
KeyF27: "\x1b[15^",
|
||||||
|
KeyF28: "\x1b[17^",
|
||||||
|
KeyF29: "\x1b[18^",
|
||||||
|
KeyF30: "\x1b[19^",
|
||||||
|
KeyF31: "\x1b[20^",
|
||||||
|
KeyF32: "\x1b[21^",
|
||||||
|
KeyF33: "\x1b[23^",
|
||||||
|
KeyF34: "\x1b[24^",
|
||||||
|
KeyF35: "\x1b[25^",
|
||||||
|
KeyF36: "\x1b[26^",
|
||||||
|
KeyF37: "\x1b[28^",
|
||||||
|
KeyF38: "\x1b[29^",
|
||||||
|
KeyF39: "\x1b[31^",
|
||||||
|
KeyF40: "\x1b[32^",
|
||||||
|
KeyF41: "\x1b[33^",
|
||||||
|
KeyF42: "\x1b[34^",
|
||||||
|
KeyF43: "\x1b[23@",
|
||||||
|
KeyF44: "\x1b[24@",
|
||||||
|
KeyHelp: "\x1b[28~",
|
||||||
|
KeyShfLeft: "\x1b[d",
|
||||||
|
KeyShfRight: "\x1b[c",
|
||||||
|
KeyShfUp: "\x1b[a",
|
||||||
|
KeyShfDown: "\x1b[b",
|
||||||
|
KeyCtrlLeft: "\x1b[Od",
|
||||||
|
KeyCtrlRight: "\x1b[Oc",
|
||||||
|
KeyCtrlUp: "\x1b[Oa",
|
||||||
|
KeyCtrlDown: "\x1b[Ob",
|
||||||
|
KeyShfHome: "\x1b[7$",
|
||||||
|
KeyShfEnd: "\x1b[8$",
|
||||||
|
KeyCtrlHome: "\x1b[7^",
|
||||||
|
KeyCtrlEnd: "\x1b[8^",
|
||||||
|
})
|
||||||
|
}
|
69
vendor/github.com/gdamore/tcell/terminfo/extended/extended.go
generated
vendored
Normal file
69
vendor/github.com/gdamore/tcell/terminfo/extended/extended.go
generated
vendored
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
// Copyright 2019 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
// Package extended contains an extended set of terminal descriptions.
|
||||||
|
// Applications desiring to have a better chance of Just Working by
|
||||||
|
// default should include this package. This will significantly increase
|
||||||
|
// the size of the program.
|
||||||
|
package extended
|
||||||
|
|
||||||
|
import (
|
||||||
|
// The following imports just register themselves --
|
||||||
|
// these are the terminal types we aggregate in this package.
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/a/adm3a"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/a/aixterm"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/a/alacritty"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/a/ansi"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/a/aterm"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/b/beterm"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/b/bsdos_pc"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/c/cygwin"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/d/d200"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/d/d210"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/d/dtterm"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/e/emacs"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/e/eterm"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/g/gnome"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/h/hpterm"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/h/hz1500"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/k/konsole"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/k/kterm"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/l/linux"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/p/pcansi"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/r/rxvt"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/s/screen"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/s/simpleterm"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/s/sun"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/t/termite"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/t/tvi910"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/t/tvi912"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/t/tvi921"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/t/tvi925"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/t/tvi950"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/t/tvi970"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/v/vt100"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/v/vt102"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/v/vt220"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/v/vt320"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/v/vt400"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/v/vt420"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/v/vt52"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/w/wy50"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/w/wy60"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/w/wy99_ansi"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/x/xfce"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/x/xnuppc"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/x/xterm"
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/x/xterm_kitty"
|
||||||
|
)
|
312
vendor/github.com/gdamore/tcell/terminfo/g/gnome/term.go
generated
vendored
Normal file
312
vendor/github.com/gdamore/tcell/terminfo/g/gnome/term.go
generated
vendored
Normal file
|
@ -0,0 +1,312 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package gnome
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// GNOME Terminal
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "gnome",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b7\x1b[?47h",
|
||||||
|
ExitCA: "\x1b[2J\x1b[?47l\x1b8",
|
||||||
|
ShowCursor: "\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[0m\x0f",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Italic: "\x1b[3m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b)0",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1bOH",
|
||||||
|
KeyEnd: "\x1bOF",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1bO1;2P",
|
||||||
|
KeyF14: "\x1bO1;2Q",
|
||||||
|
KeyF15: "\x1bO1;2R",
|
||||||
|
KeyF16: "\x1bO1;2S",
|
||||||
|
KeyF17: "\x1b[15;2~",
|
||||||
|
KeyF18: "\x1b[17;2~",
|
||||||
|
KeyF19: "\x1b[18;2~",
|
||||||
|
KeyF20: "\x1b[19;2~",
|
||||||
|
KeyF21: "\x1b[20;2~",
|
||||||
|
KeyF22: "\x1b[21;2~",
|
||||||
|
KeyF23: "\x1b[23;2~",
|
||||||
|
KeyF24: "\x1b[24;2~",
|
||||||
|
KeyF25: "\x1bO1;5P",
|
||||||
|
KeyF26: "\x1bO1;5Q",
|
||||||
|
KeyF27: "\x1bO1;5R",
|
||||||
|
KeyF28: "\x1bO1;5S",
|
||||||
|
KeyF29: "\x1b[15;5~",
|
||||||
|
KeyF30: "\x1b[17;5~",
|
||||||
|
KeyF31: "\x1b[18;5~",
|
||||||
|
KeyF32: "\x1b[19;5~",
|
||||||
|
KeyF33: "\x1b[20;5~",
|
||||||
|
KeyF34: "\x1b[21;5~",
|
||||||
|
KeyF35: "\x1b[23;5~",
|
||||||
|
KeyF36: "\x1b[24;5~",
|
||||||
|
KeyF37: "\x1bO1;6P",
|
||||||
|
KeyF38: "\x1bO1;6Q",
|
||||||
|
KeyF39: "\x1bO1;6R",
|
||||||
|
KeyF40: "\x1bO1;6S",
|
||||||
|
KeyF41: "\x1b[15;6~",
|
||||||
|
KeyF42: "\x1b[17;6~",
|
||||||
|
KeyF43: "\x1b[18;6~",
|
||||||
|
KeyF44: "\x1b[19;6~",
|
||||||
|
KeyF45: "\x1b[20;6~",
|
||||||
|
KeyF46: "\x1b[21;6~",
|
||||||
|
KeyF47: "\x1b[23;6~",
|
||||||
|
KeyF48: "\x1b[24;6~",
|
||||||
|
KeyF49: "\x1bO1;3P",
|
||||||
|
KeyF50: "\x1bO1;3Q",
|
||||||
|
KeyF51: "\x1bO1;3R",
|
||||||
|
KeyF52: "\x1bO1;3S",
|
||||||
|
KeyF53: "\x1b[15;3~",
|
||||||
|
KeyF54: "\x1b[17;3~",
|
||||||
|
KeyF55: "\x1b[18;3~",
|
||||||
|
KeyF56: "\x1b[19;3~",
|
||||||
|
KeyF57: "\x1b[20;3~",
|
||||||
|
KeyF58: "\x1b[21;3~",
|
||||||
|
KeyF59: "\x1b[23;3~",
|
||||||
|
KeyF60: "\x1b[24;3~",
|
||||||
|
KeyF61: "\x1bO1;4P",
|
||||||
|
KeyF62: "\x1bO1;4Q",
|
||||||
|
KeyF63: "\x1bO1;4R",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[1;2D",
|
||||||
|
KeyShfRight: "\x1b[1;2C",
|
||||||
|
KeyShfUp: "\x1b[1;2A",
|
||||||
|
KeyShfDown: "\x1b[1;2B",
|
||||||
|
KeyCtrlLeft: "\x1b[1;5D",
|
||||||
|
KeyCtrlRight: "\x1b[1;5C",
|
||||||
|
KeyCtrlUp: "\x1b[1;5A",
|
||||||
|
KeyCtrlDown: "\x1b[1;5B",
|
||||||
|
KeyMetaLeft: "\x1b[1;9D",
|
||||||
|
KeyMetaRight: "\x1b[1;9C",
|
||||||
|
KeyMetaUp: "\x1b[1;9A",
|
||||||
|
KeyMetaDown: "\x1b[1;9B",
|
||||||
|
KeyAltLeft: "\x1b[1;3D",
|
||||||
|
KeyAltRight: "\x1b[1;3C",
|
||||||
|
KeyAltUp: "\x1b[1;3A",
|
||||||
|
KeyAltDown: "\x1b[1;3B",
|
||||||
|
KeyAltShfLeft: "\x1b[1;4D",
|
||||||
|
KeyAltShfRight: "\x1b[1;4C",
|
||||||
|
KeyAltShfUp: "\x1b[1;4A",
|
||||||
|
KeyAltShfDown: "\x1b[1;4B",
|
||||||
|
KeyMetaShfLeft: "\x1b[1;10D",
|
||||||
|
KeyMetaShfRight: "\x1b[1;10C",
|
||||||
|
KeyMetaShfUp: "\x1b[1;10A",
|
||||||
|
KeyMetaShfDown: "\x1b[1;10B",
|
||||||
|
KeyCtrlShfLeft: "\x1b[1;6D",
|
||||||
|
KeyCtrlShfRight: "\x1b[1;6C",
|
||||||
|
KeyCtrlShfUp: "\x1b[1;6A",
|
||||||
|
KeyCtrlShfDown: "\x1b[1;6B",
|
||||||
|
KeyShfHome: "\x1b[1;2H",
|
||||||
|
KeyShfEnd: "\x1b[1;2F",
|
||||||
|
KeyCtrlHome: "\x1b[1;5H",
|
||||||
|
KeyCtrlEnd: "\x1b[1;5F",
|
||||||
|
KeyAltHome: "\x1b[1;9H",
|
||||||
|
KeyAltEnd: "\x1b[1;9F",
|
||||||
|
KeyCtrlShfHome: "\x1b[1;6H",
|
||||||
|
KeyCtrlShfEnd: "\x1b[1;6F",
|
||||||
|
KeyMetaShfHome: "\x1b[1;10H",
|
||||||
|
KeyMetaShfEnd: "\x1b[1;10F",
|
||||||
|
KeyAltShfHome: "\x1b[1;4H",
|
||||||
|
KeyAltShfEnd: "\x1b[1;4F",
|
||||||
|
KeyShfPgUp: "\x1b[5;2~",
|
||||||
|
KeyShfPgDn: "\x1b[6;2~",
|
||||||
|
})
|
||||||
|
|
||||||
|
// GNOME Terminal with xterm 256-colors
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "gnome-256color",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 256,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b7\x1b[?47h",
|
||||||
|
ExitCA: "\x1b[2J\x1b[?47l\x1b8",
|
||||||
|
ShowCursor: "\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[0m\x0f",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Italic: "\x1b[3m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
|
||||||
|
SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",
|
||||||
|
SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b)0",
|
||||||
|
Mouse: "\x1b[<",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1bOH",
|
||||||
|
KeyEnd: "\x1bOF",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[1;2P",
|
||||||
|
KeyF14: "\x1b[1;2Q",
|
||||||
|
KeyF15: "\x1b[1;2R",
|
||||||
|
KeyF16: "\x1b[1;2S",
|
||||||
|
KeyF17: "\x1b[15;2~",
|
||||||
|
KeyF18: "\x1b[17;2~",
|
||||||
|
KeyF19: "\x1b[18;2~",
|
||||||
|
KeyF20: "\x1b[19;2~",
|
||||||
|
KeyF21: "\x1b[20;2~",
|
||||||
|
KeyF22: "\x1b[21;2~",
|
||||||
|
KeyF23: "\x1b[23;2~",
|
||||||
|
KeyF24: "\x1b[24;2~",
|
||||||
|
KeyF25: "\x1b[1;5P",
|
||||||
|
KeyF26: "\x1b[1;5Q",
|
||||||
|
KeyF27: "\x1b[1;5R",
|
||||||
|
KeyF28: "\x1b[1;5S",
|
||||||
|
KeyF29: "\x1b[15;5~",
|
||||||
|
KeyF30: "\x1b[17;5~",
|
||||||
|
KeyF31: "\x1b[18;5~",
|
||||||
|
KeyF32: "\x1b[19;5~",
|
||||||
|
KeyF33: "\x1b[20;5~",
|
||||||
|
KeyF34: "\x1b[21;5~",
|
||||||
|
KeyF35: "\x1b[23;5~",
|
||||||
|
KeyF36: "\x1b[24;5~",
|
||||||
|
KeyF37: "\x1b[1;6P",
|
||||||
|
KeyF38: "\x1b[1;6Q",
|
||||||
|
KeyF39: "\x1b[1;6R",
|
||||||
|
KeyF40: "\x1b[1;6S",
|
||||||
|
KeyF41: "\x1b[15;6~",
|
||||||
|
KeyF42: "\x1b[17;6~",
|
||||||
|
KeyF43: "\x1b[18;6~",
|
||||||
|
KeyF44: "\x1b[19;6~",
|
||||||
|
KeyF45: "\x1b[20;6~",
|
||||||
|
KeyF46: "\x1b[21;6~",
|
||||||
|
KeyF47: "\x1b[23;6~",
|
||||||
|
KeyF48: "\x1b[24;6~",
|
||||||
|
KeyF49: "\x1b[1;3P",
|
||||||
|
KeyF50: "\x1b[1;3Q",
|
||||||
|
KeyF51: "\x1b[1;3R",
|
||||||
|
KeyF52: "\x1b[1;3S",
|
||||||
|
KeyF53: "\x1b[15;3~",
|
||||||
|
KeyF54: "\x1b[17;3~",
|
||||||
|
KeyF55: "\x1b[18;3~",
|
||||||
|
KeyF56: "\x1b[19;3~",
|
||||||
|
KeyF57: "\x1b[20;3~",
|
||||||
|
KeyF58: "\x1b[21;3~",
|
||||||
|
KeyF59: "\x1b[23;3~",
|
||||||
|
KeyF60: "\x1b[24;3~",
|
||||||
|
KeyF61: "\x1b[1;4P",
|
||||||
|
KeyF62: "\x1b[1;4Q",
|
||||||
|
KeyF63: "\x1b[1;4R",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[1;2D",
|
||||||
|
KeyShfRight: "\x1b[1;2C",
|
||||||
|
KeyShfUp: "\x1b[1;2A",
|
||||||
|
KeyShfDown: "\x1b[1;2B",
|
||||||
|
KeyCtrlLeft: "\x1b[1;5D",
|
||||||
|
KeyCtrlRight: "\x1b[1;5C",
|
||||||
|
KeyCtrlUp: "\x1b[1;5A",
|
||||||
|
KeyCtrlDown: "\x1b[1;5B",
|
||||||
|
KeyMetaLeft: "\x1b[1;9D",
|
||||||
|
KeyMetaRight: "\x1b[1;9C",
|
||||||
|
KeyMetaUp: "\x1b[1;9A",
|
||||||
|
KeyMetaDown: "\x1b[1;9B",
|
||||||
|
KeyAltLeft: "\x1b[1;3D",
|
||||||
|
KeyAltRight: "\x1b[1;3C",
|
||||||
|
KeyAltUp: "\x1b[1;3A",
|
||||||
|
KeyAltDown: "\x1b[1;3B",
|
||||||
|
KeyAltShfLeft: "\x1b[1;4D",
|
||||||
|
KeyAltShfRight: "\x1b[1;4C",
|
||||||
|
KeyAltShfUp: "\x1b[1;4A",
|
||||||
|
KeyAltShfDown: "\x1b[1;4B",
|
||||||
|
KeyMetaShfLeft: "\x1b[1;10D",
|
||||||
|
KeyMetaShfRight: "\x1b[1;10C",
|
||||||
|
KeyMetaShfUp: "\x1b[1;10A",
|
||||||
|
KeyMetaShfDown: "\x1b[1;10B",
|
||||||
|
KeyCtrlShfLeft: "\x1b[1;6D",
|
||||||
|
KeyCtrlShfRight: "\x1b[1;6C",
|
||||||
|
KeyCtrlShfUp: "\x1b[1;6A",
|
||||||
|
KeyCtrlShfDown: "\x1b[1;6B",
|
||||||
|
KeyShfHome: "\x1b[1;2H",
|
||||||
|
KeyShfEnd: "\x1b[1;2F",
|
||||||
|
KeyCtrlHome: "\x1b[1;5H",
|
||||||
|
KeyCtrlEnd: "\x1b[1;5F",
|
||||||
|
KeyAltHome: "\x1b[1;9H",
|
||||||
|
KeyAltEnd: "\x1b[1;9F",
|
||||||
|
KeyCtrlShfHome: "\x1b[1;6H",
|
||||||
|
KeyCtrlShfEnd: "\x1b[1;6F",
|
||||||
|
KeyMetaShfHome: "\x1b[1;10H",
|
||||||
|
KeyMetaShfEnd: "\x1b[1;10F",
|
||||||
|
KeyAltShfHome: "\x1b[1;4H",
|
||||||
|
KeyAltShfEnd: "\x1b[1;4F",
|
||||||
|
KeyShfPgUp: "\x1b[5;2~",
|
||||||
|
KeyShfPgDn: "\x1b[6;2~",
|
||||||
|
})
|
||||||
|
}
|
18
vendor/github.com/gdamore/tcell/terminfo/gen.sh
generated
vendored
Normal file
18
vendor/github.com/gdamore/tcell/terminfo/gen.sh
generated
vendored
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
while read line
|
||||||
|
do
|
||||||
|
case "$line" in
|
||||||
|
*'|'*)
|
||||||
|
alias=${line#*|}
|
||||||
|
line=${line%|*}
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
alias=${line%%,*}
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
alias=${alias//-/_}
|
||||||
|
direc=${alias:0:1}
|
||||||
|
|
||||||
|
mkdir -p ${direc}/${alias}
|
||||||
|
go run mkinfo.go -P ${alias} -go ${direc}/${alias}/term.go ${line//,/ }
|
||||||
|
done < models.txt
|
50
vendor/github.com/gdamore/tcell/terminfo/h/hpterm/term.go
generated
vendored
Normal file
50
vendor/github.com/gdamore/tcell/terminfo/h/hpterm/term.go
generated
vendored
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package hpterm
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// hp X11 terminal emulator
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "hpterm",
|
||||||
|
Aliases: []string{"X-hpterm"},
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b&a0y0C\x1bJ",
|
||||||
|
AttrOff: "\x1b&d@\x0f",
|
||||||
|
Underline: "\x1b&dD",
|
||||||
|
Bold: "\x1b&dB",
|
||||||
|
Dim: "\x1b&dH",
|
||||||
|
Reverse: "\x1b&dB",
|
||||||
|
EnterKeypad: "\x1b&s1A",
|
||||||
|
ExitKeypad: "\x1b&s0A",
|
||||||
|
PadChar: "\x00",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
SetCursor: "\x1b&a%p1%dy%p2%dC",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1bA",
|
||||||
|
KeyUp: "\x1bA",
|
||||||
|
KeyDown: "\x1bB",
|
||||||
|
KeyRight: "\x1bC",
|
||||||
|
KeyLeft: "\x1bD",
|
||||||
|
KeyInsert: "\x1bQ",
|
||||||
|
KeyDelete: "\x1bP",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1bh",
|
||||||
|
KeyPgUp: "\x1bV",
|
||||||
|
KeyPgDn: "\x1bU",
|
||||||
|
KeyF1: "\x1bp",
|
||||||
|
KeyF2: "\x1bq",
|
||||||
|
KeyF3: "\x1br",
|
||||||
|
KeyF4: "\x1bs",
|
||||||
|
KeyF5: "\x1bt",
|
||||||
|
KeyF6: "\x1bu",
|
||||||
|
KeyF7: "\x1bv",
|
||||||
|
KeyF8: "\x1bw",
|
||||||
|
KeyClear: "\x1bJ",
|
||||||
|
})
|
||||||
|
}
|
26
vendor/github.com/gdamore/tcell/terminfo/h/hz1500/term.go
generated
vendored
Normal file
26
vendor/github.com/gdamore/tcell/terminfo/h/hz1500/term.go
generated
vendored
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package hz1500
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// hazeltine 1500
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "hz1500",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "~\x1c",
|
||||||
|
PadChar: "\x00",
|
||||||
|
SetCursor: "~\x11%p2%p2%?%{30}%>%t%' '%+%;%'`'%+%c%p1%'`'%+%c",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "~\f",
|
||||||
|
KeyUp: "~\f",
|
||||||
|
KeyDown: "\n",
|
||||||
|
KeyRight: "\x10",
|
||||||
|
KeyLeft: "\b",
|
||||||
|
KeyHome: "~\x12",
|
||||||
|
})
|
||||||
|
}
|
310
vendor/github.com/gdamore/tcell/terminfo/k/konsole/term.go
generated
vendored
Normal file
310
vendor/github.com/gdamore/tcell/terminfo/k/konsole/term.go
generated
vendored
Normal file
|
@ -0,0 +1,310 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package konsole
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// KDE console window
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "konsole",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 8,
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b7\x1b[?47h",
|
||||||
|
ExitCA: "\x1b[2J\x1b[?47l\x1b8",
|
||||||
|
ShowCursor: "\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[0m\x0f",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Italic: "\x1b[3m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b)0",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1bOH",
|
||||||
|
KeyEnd: "\x1bOF",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1bO2P",
|
||||||
|
KeyF14: "\x1bO2Q",
|
||||||
|
KeyF15: "\x1bO2R",
|
||||||
|
KeyF16: "\x1bO2S",
|
||||||
|
KeyF17: "\x1b[15;2~",
|
||||||
|
KeyF18: "\x1b[17;2~",
|
||||||
|
KeyF19: "\x1b[18;2~",
|
||||||
|
KeyF20: "\x1b[19;2~",
|
||||||
|
KeyF21: "\x1b[20;2~",
|
||||||
|
KeyF22: "\x1b[21;2~",
|
||||||
|
KeyF23: "\x1b[23;2~",
|
||||||
|
KeyF24: "\x1b[24;2~",
|
||||||
|
KeyF25: "\x1bO5P",
|
||||||
|
KeyF26: "\x1bO5Q",
|
||||||
|
KeyF27: "\x1bO5R",
|
||||||
|
KeyF28: "\x1bO5S",
|
||||||
|
KeyF29: "\x1b[15;5~",
|
||||||
|
KeyF30: "\x1b[17;5~",
|
||||||
|
KeyF31: "\x1b[18;5~",
|
||||||
|
KeyF32: "\x1b[19;5~",
|
||||||
|
KeyF33: "\x1b[20;5~",
|
||||||
|
KeyF34: "\x1b[21;5~",
|
||||||
|
KeyF35: "\x1b[23;5~",
|
||||||
|
KeyF36: "\x1b[24;5~",
|
||||||
|
KeyF37: "\x1bO6P",
|
||||||
|
KeyF38: "\x1bO6Q",
|
||||||
|
KeyF39: "\x1bO6R",
|
||||||
|
KeyF40: "\x1bO6S",
|
||||||
|
KeyF41: "\x1b[15;6~",
|
||||||
|
KeyF42: "\x1b[17;6~",
|
||||||
|
KeyF43: "\x1b[18;6~",
|
||||||
|
KeyF44: "\x1b[19;6~",
|
||||||
|
KeyF45: "\x1b[20;6~",
|
||||||
|
KeyF46: "\x1b[21;6~",
|
||||||
|
KeyF47: "\x1b[23;6~",
|
||||||
|
KeyF48: "\x1b[24;6~",
|
||||||
|
KeyF49: "\x1bO3P",
|
||||||
|
KeyF50: "\x1bO3Q",
|
||||||
|
KeyF51: "\x1bO3R",
|
||||||
|
KeyF52: "\x1bO3S",
|
||||||
|
KeyF53: "\x1b[15;3~",
|
||||||
|
KeyF54: "\x1b[17;3~",
|
||||||
|
KeyF55: "\x1b[18;3~",
|
||||||
|
KeyF56: "\x1b[19;3~",
|
||||||
|
KeyF57: "\x1b[20;3~",
|
||||||
|
KeyF58: "\x1b[21;3~",
|
||||||
|
KeyF59: "\x1b[23;3~",
|
||||||
|
KeyF60: "\x1b[24;3~",
|
||||||
|
KeyF61: "\x1bO4P",
|
||||||
|
KeyF62: "\x1bO4Q",
|
||||||
|
KeyF63: "\x1bO4R",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[1;2D",
|
||||||
|
KeyShfRight: "\x1b[1;2C",
|
||||||
|
KeyShfUp: "\x1b[1;2A",
|
||||||
|
KeyShfDown: "\x1b[1;2B",
|
||||||
|
KeyCtrlLeft: "\x1b[1;5D",
|
||||||
|
KeyCtrlRight: "\x1b[1;5C",
|
||||||
|
KeyCtrlUp: "\x1b[1;5A",
|
||||||
|
KeyCtrlDown: "\x1b[1;5B",
|
||||||
|
KeyMetaLeft: "\x1b[1;9D",
|
||||||
|
KeyMetaRight: "\x1b[1;9C",
|
||||||
|
KeyMetaUp: "\x1b[1;9A",
|
||||||
|
KeyMetaDown: "\x1b[1;9B",
|
||||||
|
KeyAltLeft: "\x1b[1;3D",
|
||||||
|
KeyAltRight: "\x1b[1;3C",
|
||||||
|
KeyAltUp: "\x1b[1;3A",
|
||||||
|
KeyAltDown: "\x1b[1;3B",
|
||||||
|
KeyAltShfLeft: "\x1b[1;4D",
|
||||||
|
KeyAltShfRight: "\x1b[1;4C",
|
||||||
|
KeyAltShfUp: "\x1b[1;4A",
|
||||||
|
KeyAltShfDown: "\x1b[1;4B",
|
||||||
|
KeyMetaShfLeft: "\x1b[1;10D",
|
||||||
|
KeyMetaShfRight: "\x1b[1;10C",
|
||||||
|
KeyMetaShfUp: "\x1b[1;10A",
|
||||||
|
KeyMetaShfDown: "\x1b[1;10B",
|
||||||
|
KeyCtrlShfLeft: "\x1b[1;6D",
|
||||||
|
KeyCtrlShfRight: "\x1b[1;6C",
|
||||||
|
KeyCtrlShfUp: "\x1b[1;6A",
|
||||||
|
KeyCtrlShfDown: "\x1b[1;6B",
|
||||||
|
KeyShfHome: "\x1b[1;2H",
|
||||||
|
KeyShfEnd: "\x1b[1;2F",
|
||||||
|
KeyCtrlHome: "\x1b[1;5H",
|
||||||
|
KeyCtrlEnd: "\x1b[1;5F",
|
||||||
|
KeyAltHome: "\x1b[1;9H",
|
||||||
|
KeyAltEnd: "\x1b[1;9F",
|
||||||
|
KeyCtrlShfHome: "\x1b[1;6H",
|
||||||
|
KeyCtrlShfEnd: "\x1b[1;6F",
|
||||||
|
KeyMetaShfHome: "\x1b[1;10H",
|
||||||
|
KeyMetaShfEnd: "\x1b[1;10F",
|
||||||
|
KeyAltShfHome: "\x1b[1;4H",
|
||||||
|
KeyAltShfEnd: "\x1b[1;4F",
|
||||||
|
KeyShfPgUp: "\x1b[5;2~",
|
||||||
|
KeyShfPgDn: "\x1b[6;2~",
|
||||||
|
})
|
||||||
|
|
||||||
|
// KDE console window with xterm 256-colors
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "konsole-256color",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 256,
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b7\x1b[?47h",
|
||||||
|
ExitCA: "\x1b[2J\x1b[?47l\x1b8",
|
||||||
|
ShowCursor: "\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[0m\x0f",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Italic: "\x1b[3m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
|
||||||
|
SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",
|
||||||
|
SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m",
|
||||||
|
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b)0",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1bOH",
|
||||||
|
KeyEnd: "\x1bOF",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1bO2P",
|
||||||
|
KeyF14: "\x1bO2Q",
|
||||||
|
KeyF15: "\x1bO2R",
|
||||||
|
KeyF16: "\x1bO2S",
|
||||||
|
KeyF17: "\x1b[15;2~",
|
||||||
|
KeyF18: "\x1b[17;2~",
|
||||||
|
KeyF19: "\x1b[18;2~",
|
||||||
|
KeyF20: "\x1b[19;2~",
|
||||||
|
KeyF21: "\x1b[20;2~",
|
||||||
|
KeyF22: "\x1b[21;2~",
|
||||||
|
KeyF23: "\x1b[23;2~",
|
||||||
|
KeyF24: "\x1b[24;2~",
|
||||||
|
KeyF25: "\x1bO5P",
|
||||||
|
KeyF26: "\x1bO5Q",
|
||||||
|
KeyF27: "\x1bO5R",
|
||||||
|
KeyF28: "\x1bO5S",
|
||||||
|
KeyF29: "\x1b[15;5~",
|
||||||
|
KeyF30: "\x1b[17;5~",
|
||||||
|
KeyF31: "\x1b[18;5~",
|
||||||
|
KeyF32: "\x1b[19;5~",
|
||||||
|
KeyF33: "\x1b[20;5~",
|
||||||
|
KeyF34: "\x1b[21;5~",
|
||||||
|
KeyF35: "\x1b[23;5~",
|
||||||
|
KeyF36: "\x1b[24;5~",
|
||||||
|
KeyF37: "\x1bO6P",
|
||||||
|
KeyF38: "\x1bO6Q",
|
||||||
|
KeyF39: "\x1bO6R",
|
||||||
|
KeyF40: "\x1bO6S",
|
||||||
|
KeyF41: "\x1b[15;6~",
|
||||||
|
KeyF42: "\x1b[17;6~",
|
||||||
|
KeyF43: "\x1b[18;6~",
|
||||||
|
KeyF44: "\x1b[19;6~",
|
||||||
|
KeyF45: "\x1b[20;6~",
|
||||||
|
KeyF46: "\x1b[21;6~",
|
||||||
|
KeyF47: "\x1b[23;6~",
|
||||||
|
KeyF48: "\x1b[24;6~",
|
||||||
|
KeyF49: "\x1bO3P",
|
||||||
|
KeyF50: "\x1bO3Q",
|
||||||
|
KeyF51: "\x1bO3R",
|
||||||
|
KeyF52: "\x1bO3S",
|
||||||
|
KeyF53: "\x1b[15;3~",
|
||||||
|
KeyF54: "\x1b[17;3~",
|
||||||
|
KeyF55: "\x1b[18;3~",
|
||||||
|
KeyF56: "\x1b[19;3~",
|
||||||
|
KeyF57: "\x1b[20;3~",
|
||||||
|
KeyF58: "\x1b[21;3~",
|
||||||
|
KeyF59: "\x1b[23;3~",
|
||||||
|
KeyF60: "\x1b[24;3~",
|
||||||
|
KeyF61: "\x1bO4P",
|
||||||
|
KeyF62: "\x1bO4Q",
|
||||||
|
KeyF63: "\x1bO4R",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[1;2D",
|
||||||
|
KeyShfRight: "\x1b[1;2C",
|
||||||
|
KeyShfUp: "\x1b[1;2A",
|
||||||
|
KeyShfDown: "\x1b[1;2B",
|
||||||
|
KeyCtrlLeft: "\x1b[1;5D",
|
||||||
|
KeyCtrlRight: "\x1b[1;5C",
|
||||||
|
KeyCtrlUp: "\x1b[1;5A",
|
||||||
|
KeyCtrlDown: "\x1b[1;5B",
|
||||||
|
KeyMetaLeft: "\x1b[1;9D",
|
||||||
|
KeyMetaRight: "\x1b[1;9C",
|
||||||
|
KeyMetaUp: "\x1b[1;9A",
|
||||||
|
KeyMetaDown: "\x1b[1;9B",
|
||||||
|
KeyAltLeft: "\x1b[1;3D",
|
||||||
|
KeyAltRight: "\x1b[1;3C",
|
||||||
|
KeyAltUp: "\x1b[1;3A",
|
||||||
|
KeyAltDown: "\x1b[1;3B",
|
||||||
|
KeyAltShfLeft: "\x1b[1;4D",
|
||||||
|
KeyAltShfRight: "\x1b[1;4C",
|
||||||
|
KeyAltShfUp: "\x1b[1;4A",
|
||||||
|
KeyAltShfDown: "\x1b[1;4B",
|
||||||
|
KeyMetaShfLeft: "\x1b[1;10D",
|
||||||
|
KeyMetaShfRight: "\x1b[1;10C",
|
||||||
|
KeyMetaShfUp: "\x1b[1;10A",
|
||||||
|
KeyMetaShfDown: "\x1b[1;10B",
|
||||||
|
KeyCtrlShfLeft: "\x1b[1;6D",
|
||||||
|
KeyCtrlShfRight: "\x1b[1;6C",
|
||||||
|
KeyCtrlShfUp: "\x1b[1;6A",
|
||||||
|
KeyCtrlShfDown: "\x1b[1;6B",
|
||||||
|
KeyShfHome: "\x1b[1;2H",
|
||||||
|
KeyShfEnd: "\x1b[1;2F",
|
||||||
|
KeyCtrlHome: "\x1b[1;5H",
|
||||||
|
KeyCtrlEnd: "\x1b[1;5F",
|
||||||
|
KeyAltHome: "\x1b[1;9H",
|
||||||
|
KeyAltEnd: "\x1b[1;9F",
|
||||||
|
KeyCtrlShfHome: "\x1b[1;6H",
|
||||||
|
KeyCtrlShfEnd: "\x1b[1;6F",
|
||||||
|
KeyMetaShfHome: "\x1b[1;10H",
|
||||||
|
KeyMetaShfEnd: "\x1b[1;10F",
|
||||||
|
KeyAltShfHome: "\x1b[1;4H",
|
||||||
|
KeyAltShfEnd: "\x1b[1;4F",
|
||||||
|
KeyShfPgUp: "\x1b[5;2~",
|
||||||
|
KeyShfPgDn: "\x1b[6;2~",
|
||||||
|
})
|
||||||
|
}
|
67
vendor/github.com/gdamore/tcell/terminfo/k/kterm/term.go
generated
vendored
Normal file
67
vendor/github.com/gdamore/tcell/terminfo/k/kterm/term.go
generated
vendored
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package kterm
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// kterm kanji terminal emulator (X window system)
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "kterm",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b7\x1b[?47h",
|
||||||
|
ExitCA: "\x1b[2J\x1b[?47l\x1b8",
|
||||||
|
AttrOff: "\x1b[m\x1b(B",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aajjkkllmmnnooppqqrrssttuuvvwwxx~~",
|
||||||
|
EnterAcs: "\x1b(0",
|
||||||
|
ExitAcs: "\x1b(B",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1b[11~",
|
||||||
|
KeyF2: "\x1b[12~",
|
||||||
|
KeyF3: "\x1b[13~",
|
||||||
|
KeyF4: "\x1b[14~",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[25~",
|
||||||
|
KeyF14: "\x1b[26~",
|
||||||
|
KeyF15: "\x1b[28~",
|
||||||
|
KeyF16: "\x1b[29~",
|
||||||
|
KeyF17: "\x1b[31~",
|
||||||
|
KeyF18: "\x1b[32~",
|
||||||
|
KeyF19: "\x1b[33~",
|
||||||
|
KeyF20: "\x1b[34~",
|
||||||
|
})
|
||||||
|
}
|
69
vendor/github.com/gdamore/tcell/terminfo/l/linux/term.go
generated
vendored
Normal file
69
vendor/github.com/gdamore/tcell/terminfo/l/linux/term.go
generated
vendored
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package linux
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// linux console
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "linux",
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[J",
|
||||||
|
ShowCursor: "\x1b[?25h\x1b[?0c",
|
||||||
|
HideCursor: "\x1b[?25l\x1b[?1c",
|
||||||
|
AttrOff: "\x1b[m\x0f",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "++,,--..00__``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}c~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b)0",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1b[1~",
|
||||||
|
KeyEnd: "\x1b[4~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1b[[A",
|
||||||
|
KeyF2: "\x1b[[B",
|
||||||
|
KeyF3: "\x1b[[C",
|
||||||
|
KeyF4: "\x1b[[D",
|
||||||
|
KeyF5: "\x1b[[E",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[25~",
|
||||||
|
KeyF14: "\x1b[26~",
|
||||||
|
KeyF15: "\x1b[28~",
|
||||||
|
KeyF16: "\x1b[29~",
|
||||||
|
KeyF17: "\x1b[31~",
|
||||||
|
KeyF18: "\x1b[32~",
|
||||||
|
KeyF19: "\x1b[33~",
|
||||||
|
KeyF20: "\x1b[34~",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
})
|
||||||
|
}
|
43
vendor/github.com/gdamore/tcell/terminfo/models.txt
generated
vendored
Normal file
43
vendor/github.com/gdamore/tcell/terminfo/models.txt
generated
vendored
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
adm3a
|
||||||
|
aixterm
|
||||||
|
ansi
|
||||||
|
aterm
|
||||||
|
beterm
|
||||||
|
bsdos-pc
|
||||||
|
cygwin
|
||||||
|
d200
|
||||||
|
d210
|
||||||
|
dtterm
|
||||||
|
eterm,eterm-color|emacs
|
||||||
|
Eterm,Eterm-88color,Eterm-256color|eterm
|
||||||
|
gnome,gnome-256color
|
||||||
|
hpterm
|
||||||
|
hz1500
|
||||||
|
konsole,konsole-256color
|
||||||
|
kterm
|
||||||
|
linux
|
||||||
|
pcansi
|
||||||
|
rxvt,rxvt-256color,rxvt-88color,rxvt-unicode,rxvt-unicode-256color
|
||||||
|
screen,screen-256color
|
||||||
|
st,st-256color|simpleterm
|
||||||
|
sun,sun-color
|
||||||
|
termite
|
||||||
|
tvi910
|
||||||
|
tvi912
|
||||||
|
tvi921
|
||||||
|
tvi925
|
||||||
|
tvi950
|
||||||
|
tvi970
|
||||||
|
vt52
|
||||||
|
vt100
|
||||||
|
vt102
|
||||||
|
vt220
|
||||||
|
vt320
|
||||||
|
vt400
|
||||||
|
vt420
|
||||||
|
wy50
|
||||||
|
wy60
|
||||||
|
wy99-ansi,wy99a-ansi
|
||||||
|
xfce
|
||||||
|
xnuppc
|
||||||
|
xterm,xterm-88color,xterm-256color
|
39
vendor/github.com/gdamore/tcell/terminfo/p/pcansi/term.go
generated
vendored
Normal file
39
vendor/github.com/gdamore/tcell/terminfo/p/pcansi/term.go
generated
vendored
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package pcansi
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// ibm-pc terminal programs claiming to be ansi
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "pcansi",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[J",
|
||||||
|
AttrOff: "\x1b[0;10m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "+\x10,\x11-\x18.\x190\xdb`\x04a\xb1f\xf8g\xf1h\xb0j\xd9k\xbfl\xdam\xc0n\xc5o~p\xc4q\xc4r\xc4s_t\xc3u\xb4v\xc1w\xc2x\xb3y\xf3z\xf2{\xe3|\xd8}\x9c~\xfe",
|
||||||
|
EnterAcs: "\x1b[12m",
|
||||||
|
ExitAcs: "\x1b[10m",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\x1b[D",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1b[H",
|
||||||
|
})
|
||||||
|
}
|
468
vendor/github.com/gdamore/tcell/terminfo/r/rxvt/term.go
generated
vendored
Normal file
468
vendor/github.com/gdamore/tcell/terminfo/r/rxvt/term.go
generated
vendored
Normal file
|
@ -0,0 +1,468 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package rxvt
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// rxvt terminal emulator (X Window System)
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "rxvt",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b7\x1b[?47h",
|
||||||
|
ExitCA: "\x1b[2J\x1b[?47l\x1b8",
|
||||||
|
ShowCursor: "\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x0f",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b=",
|
||||||
|
ExitKeypad: "\x1b>",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b(B\x1b)0",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1b[7~",
|
||||||
|
KeyEnd: "\x1b[8~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1b[11~",
|
||||||
|
KeyF2: "\x1b[12~",
|
||||||
|
KeyF3: "\x1b[13~",
|
||||||
|
KeyF4: "\x1b[14~",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[25~",
|
||||||
|
KeyF14: "\x1b[26~",
|
||||||
|
KeyF15: "\x1b[28~",
|
||||||
|
KeyF16: "\x1b[29~",
|
||||||
|
KeyF17: "\x1b[31~",
|
||||||
|
KeyF18: "\x1b[32~",
|
||||||
|
KeyF19: "\x1b[33~",
|
||||||
|
KeyF20: "\x1b[34~",
|
||||||
|
KeyF21: "\x1b[23$",
|
||||||
|
KeyF22: "\x1b[24$",
|
||||||
|
KeyF23: "\x1b[11^",
|
||||||
|
KeyF24: "\x1b[12^",
|
||||||
|
KeyF25: "\x1b[13^",
|
||||||
|
KeyF26: "\x1b[14^",
|
||||||
|
KeyF27: "\x1b[15^",
|
||||||
|
KeyF28: "\x1b[17^",
|
||||||
|
KeyF29: "\x1b[18^",
|
||||||
|
KeyF30: "\x1b[19^",
|
||||||
|
KeyF31: "\x1b[20^",
|
||||||
|
KeyF32: "\x1b[21^",
|
||||||
|
KeyF33: "\x1b[23^",
|
||||||
|
KeyF34: "\x1b[24^",
|
||||||
|
KeyF35: "\x1b[25^",
|
||||||
|
KeyF36: "\x1b[26^",
|
||||||
|
KeyF37: "\x1b[28^",
|
||||||
|
KeyF38: "\x1b[29^",
|
||||||
|
KeyF39: "\x1b[31^",
|
||||||
|
KeyF40: "\x1b[32^",
|
||||||
|
KeyF41: "\x1b[33^",
|
||||||
|
KeyF42: "\x1b[34^",
|
||||||
|
KeyF43: "\x1b[23@",
|
||||||
|
KeyF44: "\x1b[24@",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[d",
|
||||||
|
KeyShfRight: "\x1b[c",
|
||||||
|
KeyShfUp: "\x1b[a",
|
||||||
|
KeyShfDown: "\x1b[b",
|
||||||
|
KeyCtrlLeft: "\x1b[Od",
|
||||||
|
KeyCtrlRight: "\x1b[Oc",
|
||||||
|
KeyCtrlUp: "\x1b[Oa",
|
||||||
|
KeyCtrlDown: "\x1b[Ob",
|
||||||
|
KeyShfHome: "\x1b[7$",
|
||||||
|
KeyShfEnd: "\x1b[8$",
|
||||||
|
KeyCtrlHome: "\x1b[7^",
|
||||||
|
KeyCtrlEnd: "\x1b[8^",
|
||||||
|
})
|
||||||
|
|
||||||
|
// rxvt 2.7.9 with xterm 256-colors
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "rxvt-256color",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 256,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b7\x1b[?47h",
|
||||||
|
ExitCA: "\x1b[2J\x1b[?47l\x1b8",
|
||||||
|
ShowCursor: "\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x0f",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b=",
|
||||||
|
ExitKeypad: "\x1b>",
|
||||||
|
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
|
||||||
|
SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",
|
||||||
|
SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b(B\x1b)0",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1b[7~",
|
||||||
|
KeyEnd: "\x1b[8~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1b[11~",
|
||||||
|
KeyF2: "\x1b[12~",
|
||||||
|
KeyF3: "\x1b[13~",
|
||||||
|
KeyF4: "\x1b[14~",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[25~",
|
||||||
|
KeyF14: "\x1b[26~",
|
||||||
|
KeyF15: "\x1b[28~",
|
||||||
|
KeyF16: "\x1b[29~",
|
||||||
|
KeyF17: "\x1b[31~",
|
||||||
|
KeyF18: "\x1b[32~",
|
||||||
|
KeyF19: "\x1b[33~",
|
||||||
|
KeyF20: "\x1b[34~",
|
||||||
|
KeyF21: "\x1b[23$",
|
||||||
|
KeyF22: "\x1b[24$",
|
||||||
|
KeyF23: "\x1b[11^",
|
||||||
|
KeyF24: "\x1b[12^",
|
||||||
|
KeyF25: "\x1b[13^",
|
||||||
|
KeyF26: "\x1b[14^",
|
||||||
|
KeyF27: "\x1b[15^",
|
||||||
|
KeyF28: "\x1b[17^",
|
||||||
|
KeyF29: "\x1b[18^",
|
||||||
|
KeyF30: "\x1b[19^",
|
||||||
|
KeyF31: "\x1b[20^",
|
||||||
|
KeyF32: "\x1b[21^",
|
||||||
|
KeyF33: "\x1b[23^",
|
||||||
|
KeyF34: "\x1b[24^",
|
||||||
|
KeyF35: "\x1b[25^",
|
||||||
|
KeyF36: "\x1b[26^",
|
||||||
|
KeyF37: "\x1b[28^",
|
||||||
|
KeyF38: "\x1b[29^",
|
||||||
|
KeyF39: "\x1b[31^",
|
||||||
|
KeyF40: "\x1b[32^",
|
||||||
|
KeyF41: "\x1b[33^",
|
||||||
|
KeyF42: "\x1b[34^",
|
||||||
|
KeyF43: "\x1b[23@",
|
||||||
|
KeyF44: "\x1b[24@",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[d",
|
||||||
|
KeyShfRight: "\x1b[c",
|
||||||
|
KeyShfUp: "\x1b[a",
|
||||||
|
KeyShfDown: "\x1b[b",
|
||||||
|
KeyCtrlLeft: "\x1b[Od",
|
||||||
|
KeyCtrlRight: "\x1b[Oc",
|
||||||
|
KeyCtrlUp: "\x1b[Oa",
|
||||||
|
KeyCtrlDown: "\x1b[Ob",
|
||||||
|
KeyShfHome: "\x1b[7$",
|
||||||
|
KeyShfEnd: "\x1b[8$",
|
||||||
|
KeyCtrlHome: "\x1b[7^",
|
||||||
|
KeyCtrlEnd: "\x1b[8^",
|
||||||
|
})
|
||||||
|
|
||||||
|
// rxvt 2.7.9 with xterm 88-colors
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "rxvt-88color",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 88,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b7\x1b[?47h",
|
||||||
|
ExitCA: "\x1b[2J\x1b[?47l\x1b8",
|
||||||
|
ShowCursor: "\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x0f",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b=",
|
||||||
|
ExitKeypad: "\x1b>",
|
||||||
|
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
|
||||||
|
SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",
|
||||||
|
SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b(B\x1b)0",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1b[7~",
|
||||||
|
KeyEnd: "\x1b[8~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1b[11~",
|
||||||
|
KeyF2: "\x1b[12~",
|
||||||
|
KeyF3: "\x1b[13~",
|
||||||
|
KeyF4: "\x1b[14~",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[25~",
|
||||||
|
KeyF14: "\x1b[26~",
|
||||||
|
KeyF15: "\x1b[28~",
|
||||||
|
KeyF16: "\x1b[29~",
|
||||||
|
KeyF17: "\x1b[31~",
|
||||||
|
KeyF18: "\x1b[32~",
|
||||||
|
KeyF19: "\x1b[33~",
|
||||||
|
KeyF20: "\x1b[34~",
|
||||||
|
KeyF21: "\x1b[23$",
|
||||||
|
KeyF22: "\x1b[24$",
|
||||||
|
KeyF23: "\x1b[11^",
|
||||||
|
KeyF24: "\x1b[12^",
|
||||||
|
KeyF25: "\x1b[13^",
|
||||||
|
KeyF26: "\x1b[14^",
|
||||||
|
KeyF27: "\x1b[15^",
|
||||||
|
KeyF28: "\x1b[17^",
|
||||||
|
KeyF29: "\x1b[18^",
|
||||||
|
KeyF30: "\x1b[19^",
|
||||||
|
KeyF31: "\x1b[20^",
|
||||||
|
KeyF32: "\x1b[21^",
|
||||||
|
KeyF33: "\x1b[23^",
|
||||||
|
KeyF34: "\x1b[24^",
|
||||||
|
KeyF35: "\x1b[25^",
|
||||||
|
KeyF36: "\x1b[26^",
|
||||||
|
KeyF37: "\x1b[28^",
|
||||||
|
KeyF38: "\x1b[29^",
|
||||||
|
KeyF39: "\x1b[31^",
|
||||||
|
KeyF40: "\x1b[32^",
|
||||||
|
KeyF41: "\x1b[33^",
|
||||||
|
KeyF42: "\x1b[34^",
|
||||||
|
KeyF43: "\x1b[23@",
|
||||||
|
KeyF44: "\x1b[24@",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[d",
|
||||||
|
KeyShfRight: "\x1b[c",
|
||||||
|
KeyShfUp: "\x1b[a",
|
||||||
|
KeyShfDown: "\x1b[b",
|
||||||
|
KeyCtrlLeft: "\x1b[Od",
|
||||||
|
KeyCtrlRight: "\x1b[Oc",
|
||||||
|
KeyCtrlUp: "\x1b[Oa",
|
||||||
|
KeyCtrlDown: "\x1b[Ob",
|
||||||
|
KeyShfHome: "\x1b[7$",
|
||||||
|
KeyShfEnd: "\x1b[8$",
|
||||||
|
KeyCtrlHome: "\x1b[7^",
|
||||||
|
KeyCtrlEnd: "\x1b[8^",
|
||||||
|
})
|
||||||
|
|
||||||
|
// rxvt-unicode terminal (X Window System)
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "rxvt-unicode",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 88,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b[?1049h",
|
||||||
|
ExitCA: "\x1b[r\x1b[?1049l",
|
||||||
|
ShowCursor: "\x1b[?12l\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x1b(B",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Italic: "\x1b[3m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b=",
|
||||||
|
ExitKeypad: "\x1b>",
|
||||||
|
SetFg: "\x1b[38;5;%p1%dm",
|
||||||
|
SetBg: "\x1b[48;5;%p1%dm",
|
||||||
|
SetFgBg: "\x1b[38;5;%p1%d;48;5;%p2%dm",
|
||||||
|
AltChars: "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x1b(0",
|
||||||
|
ExitAcs: "\x1b(B",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1b[7~",
|
||||||
|
KeyEnd: "\x1b[8~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1b[11~",
|
||||||
|
KeyF2: "\x1b[12~",
|
||||||
|
KeyF3: "\x1b[13~",
|
||||||
|
KeyF4: "\x1b[14~",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[25~",
|
||||||
|
KeyF14: "\x1b[26~",
|
||||||
|
KeyF15: "\x1b[28~",
|
||||||
|
KeyF16: "\x1b[29~",
|
||||||
|
KeyF17: "\x1b[31~",
|
||||||
|
KeyF18: "\x1b[32~",
|
||||||
|
KeyF19: "\x1b[33~",
|
||||||
|
KeyF20: "\x1b[34~",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[d",
|
||||||
|
KeyShfRight: "\x1b[c",
|
||||||
|
KeyShfUp: "\x1b[a",
|
||||||
|
KeyShfDown: "\x1b[b",
|
||||||
|
KeyCtrlLeft: "\x1b[Od",
|
||||||
|
KeyCtrlRight: "\x1b[Oc",
|
||||||
|
KeyCtrlUp: "\x1b[Oa",
|
||||||
|
KeyCtrlDown: "\x1b[Ob",
|
||||||
|
KeyShfHome: "\x1b[7$",
|
||||||
|
KeyShfEnd: "\x1b[8$",
|
||||||
|
KeyCtrlHome: "\x1b[7^",
|
||||||
|
KeyCtrlEnd: "\x1b[8^",
|
||||||
|
})
|
||||||
|
|
||||||
|
// rxvt-unicode terminal with 256 colors (X Window System)
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "rxvt-unicode-256color",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 256,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b[?1049h",
|
||||||
|
ExitCA: "\x1b[r\x1b[?1049l",
|
||||||
|
ShowCursor: "\x1b[?12l\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x1b(B",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Italic: "\x1b[3m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b=",
|
||||||
|
ExitKeypad: "\x1b>",
|
||||||
|
SetFg: "\x1b[38;5;%p1%dm",
|
||||||
|
SetBg: "\x1b[48;5;%p1%dm",
|
||||||
|
SetFgBg: "\x1b[38;5;%p1%d;48;5;%p2%dm",
|
||||||
|
AltChars: "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x1b(0",
|
||||||
|
ExitAcs: "\x1b(B",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1b[7~",
|
||||||
|
KeyEnd: "\x1b[8~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1b[11~",
|
||||||
|
KeyF2: "\x1b[12~",
|
||||||
|
KeyF3: "\x1b[13~",
|
||||||
|
KeyF4: "\x1b[14~",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[25~",
|
||||||
|
KeyF14: "\x1b[26~",
|
||||||
|
KeyF15: "\x1b[28~",
|
||||||
|
KeyF16: "\x1b[29~",
|
||||||
|
KeyF17: "\x1b[31~",
|
||||||
|
KeyF18: "\x1b[32~",
|
||||||
|
KeyF19: "\x1b[33~",
|
||||||
|
KeyF20: "\x1b[34~",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[d",
|
||||||
|
KeyShfRight: "\x1b[c",
|
||||||
|
KeyShfUp: "\x1b[a",
|
||||||
|
KeyShfDown: "\x1b[b",
|
||||||
|
KeyCtrlLeft: "\x1b[Od",
|
||||||
|
KeyCtrlRight: "\x1b[Oc",
|
||||||
|
KeyCtrlUp: "\x1b[Oa",
|
||||||
|
KeyCtrlDown: "\x1b[Ob",
|
||||||
|
KeyShfHome: "\x1b[7$",
|
||||||
|
KeyShfEnd: "\x1b[8$",
|
||||||
|
KeyCtrlHome: "\x1b[7^",
|
||||||
|
KeyCtrlEnd: "\x1b[8^",
|
||||||
|
})
|
||||||
|
}
|
126
vendor/github.com/gdamore/tcell/terminfo/s/screen/term.go
generated
vendored
Normal file
126
vendor/github.com/gdamore/tcell/terminfo/s/screen/term.go
generated
vendored
Normal file
|
@ -0,0 +1,126 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package screen
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// VT 100/ANSI X3.64 virtual terminal
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "screen",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[J",
|
||||||
|
EnterCA: "\x1b[?1049h",
|
||||||
|
ExitCA: "\x1b[?1049l",
|
||||||
|
ShowCursor: "\x1b[34h\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x0f",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b(B\x1b)0",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1bM",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1b[1~",
|
||||||
|
KeyEnd: "\x1b[4~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
})
|
||||||
|
|
||||||
|
// GNU Screen with 256 colors
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "screen-256color",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 256,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[J",
|
||||||
|
EnterCA: "\x1b[?1049h",
|
||||||
|
ExitCA: "\x1b[?1049l",
|
||||||
|
ShowCursor: "\x1b[34h\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x0f",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
|
||||||
|
SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",
|
||||||
|
SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b(B\x1b)0",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1bM",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1b[1~",
|
||||||
|
KeyEnd: "\x1b[4~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
})
|
||||||
|
}
|
314
vendor/github.com/gdamore/tcell/terminfo/s/simpleterm/term.go
generated
vendored
Normal file
314
vendor/github.com/gdamore/tcell/terminfo/s/simpleterm/term.go
generated
vendored
Normal file
|
@ -0,0 +1,314 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package simpleterm
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// simpleterm
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "st",
|
||||||
|
Aliases: []string{"stterm"},
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b[?1049h",
|
||||||
|
ExitCA: "\x1b[?1049l",
|
||||||
|
ShowCursor: "\x1b[?12l\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[0m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Italic: "\x1b[3m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
AltChars: "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x1b(0",
|
||||||
|
ExitAcs: "\x1b(B",
|
||||||
|
EnableAcs: "\x1b)0",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1b[1~",
|
||||||
|
KeyEnd: "\x1b[4~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[1;2P",
|
||||||
|
KeyF14: "\x1b[1;2Q",
|
||||||
|
KeyF15: "\x1b[1;2R",
|
||||||
|
KeyF16: "\x1b[1;2S",
|
||||||
|
KeyF17: "\x1b[15;2~",
|
||||||
|
KeyF18: "\x1b[17;2~",
|
||||||
|
KeyF19: "\x1b[18;2~",
|
||||||
|
KeyF20: "\x1b[19;2~",
|
||||||
|
KeyF21: "\x1b[20;2~",
|
||||||
|
KeyF22: "\x1b[21;2~",
|
||||||
|
KeyF23: "\x1b[23;2~",
|
||||||
|
KeyF24: "\x1b[24;2~",
|
||||||
|
KeyF25: "\x1b[1;5P",
|
||||||
|
KeyF26: "\x1b[1;5Q",
|
||||||
|
KeyF27: "\x1b[1;5R",
|
||||||
|
KeyF28: "\x1b[1;5S",
|
||||||
|
KeyF29: "\x1b[15;5~",
|
||||||
|
KeyF30: "\x1b[17;5~",
|
||||||
|
KeyF31: "\x1b[18;5~",
|
||||||
|
KeyF32: "\x1b[19;5~",
|
||||||
|
KeyF33: "\x1b[20;5~",
|
||||||
|
KeyF34: "\x1b[21;5~",
|
||||||
|
KeyF35: "\x1b[23;5~",
|
||||||
|
KeyF36: "\x1b[24;5~",
|
||||||
|
KeyF37: "\x1b[1;6P",
|
||||||
|
KeyF38: "\x1b[1;6Q",
|
||||||
|
KeyF39: "\x1b[1;6R",
|
||||||
|
KeyF40: "\x1b[1;6S",
|
||||||
|
KeyF41: "\x1b[15;6~",
|
||||||
|
KeyF42: "\x1b[17;6~",
|
||||||
|
KeyF43: "\x1b[18;6~",
|
||||||
|
KeyF44: "\x1b[19;6~",
|
||||||
|
KeyF45: "\x1b[20;6~",
|
||||||
|
KeyF46: "\x1b[21;6~",
|
||||||
|
KeyF47: "\x1b[23;6~",
|
||||||
|
KeyF48: "\x1b[24;6~",
|
||||||
|
KeyF49: "\x1b[1;3P",
|
||||||
|
KeyF50: "\x1b[1;3Q",
|
||||||
|
KeyF51: "\x1b[1;3R",
|
||||||
|
KeyF52: "\x1b[1;3S",
|
||||||
|
KeyF53: "\x1b[15;3~",
|
||||||
|
KeyF54: "\x1b[17;3~",
|
||||||
|
KeyF55: "\x1b[18;3~",
|
||||||
|
KeyF56: "\x1b[19;3~",
|
||||||
|
KeyF57: "\x1b[20;3~",
|
||||||
|
KeyF58: "\x1b[21;3~",
|
||||||
|
KeyF59: "\x1b[23;3~",
|
||||||
|
KeyF60: "\x1b[24;3~",
|
||||||
|
KeyF61: "\x1b[1;4P",
|
||||||
|
KeyF62: "\x1b[1;4Q",
|
||||||
|
KeyF63: "\x1b[1;4R",
|
||||||
|
KeyClear: "\x1b[3;5~",
|
||||||
|
KeyShfLeft: "\x1b[1;2D",
|
||||||
|
KeyShfRight: "\x1b[1;2C",
|
||||||
|
KeyShfUp: "\x1b[1;2A",
|
||||||
|
KeyShfDown: "\x1b[1;2B",
|
||||||
|
KeyCtrlLeft: "\x1b[1;5D",
|
||||||
|
KeyCtrlRight: "\x1b[1;5C",
|
||||||
|
KeyCtrlUp: "\x1b[1;5A",
|
||||||
|
KeyCtrlDown: "\x1b[1;5B",
|
||||||
|
KeyMetaLeft: "\x1b[1;9D",
|
||||||
|
KeyMetaRight: "\x1b[1;9C",
|
||||||
|
KeyMetaUp: "\x1b[1;9A",
|
||||||
|
KeyMetaDown: "\x1b[1;9B",
|
||||||
|
KeyAltLeft: "\x1b[1;3D",
|
||||||
|
KeyAltRight: "\x1b[1;3C",
|
||||||
|
KeyAltUp: "\x1b[1;3A",
|
||||||
|
KeyAltDown: "\x1b[1;3B",
|
||||||
|
KeyAltShfLeft: "\x1b[1;4D",
|
||||||
|
KeyAltShfRight: "\x1b[1;4C",
|
||||||
|
KeyAltShfUp: "\x1b[1;4A",
|
||||||
|
KeyAltShfDown: "\x1b[1;4B",
|
||||||
|
KeyMetaShfLeft: "\x1b[1;10D",
|
||||||
|
KeyMetaShfRight: "\x1b[1;10C",
|
||||||
|
KeyMetaShfUp: "\x1b[1;10A",
|
||||||
|
KeyMetaShfDown: "\x1b[1;10B",
|
||||||
|
KeyCtrlShfLeft: "\x1b[1;6D",
|
||||||
|
KeyCtrlShfRight: "\x1b[1;6C",
|
||||||
|
KeyCtrlShfUp: "\x1b[1;6A",
|
||||||
|
KeyCtrlShfDown: "\x1b[1;6B",
|
||||||
|
KeyShfHome: "\x1b[1;2H",
|
||||||
|
KeyShfEnd: "\x1b[1;2F",
|
||||||
|
KeyCtrlHome: "\x1b[1;5H",
|
||||||
|
KeyCtrlEnd: "\x1b[1;5F",
|
||||||
|
KeyAltHome: "\x1b[1;9H",
|
||||||
|
KeyAltEnd: "\x1b[1;9F",
|
||||||
|
KeyCtrlShfHome: "\x1b[1;6H",
|
||||||
|
KeyCtrlShfEnd: "\x1b[1;6F",
|
||||||
|
KeyMetaShfHome: "\x1b[1;10H",
|
||||||
|
KeyMetaShfEnd: "\x1b[1;10F",
|
||||||
|
KeyAltShfHome: "\x1b[1;4H",
|
||||||
|
KeyAltShfEnd: "\x1b[1;4F",
|
||||||
|
KeyShfPgUp: "\x1b[5;2~",
|
||||||
|
KeyShfPgDn: "\x1b[6;2~",
|
||||||
|
})
|
||||||
|
|
||||||
|
// simpleterm with 256 colors
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "st-256color",
|
||||||
|
Aliases: []string{"stterm-256color"},
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 256,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b[?1049h",
|
||||||
|
ExitCA: "\x1b[?1049l",
|
||||||
|
ShowCursor: "\x1b[?12l\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[0m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Italic: "\x1b[3m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
|
||||||
|
SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",
|
||||||
|
SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m",
|
||||||
|
AltChars: "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x1b(0",
|
||||||
|
ExitAcs: "\x1b(B",
|
||||||
|
EnableAcs: "\x1b)0",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1b[1~",
|
||||||
|
KeyEnd: "\x1b[4~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[1;2P",
|
||||||
|
KeyF14: "\x1b[1;2Q",
|
||||||
|
KeyF15: "\x1b[1;2R",
|
||||||
|
KeyF16: "\x1b[1;2S",
|
||||||
|
KeyF17: "\x1b[15;2~",
|
||||||
|
KeyF18: "\x1b[17;2~",
|
||||||
|
KeyF19: "\x1b[18;2~",
|
||||||
|
KeyF20: "\x1b[19;2~",
|
||||||
|
KeyF21: "\x1b[20;2~",
|
||||||
|
KeyF22: "\x1b[21;2~",
|
||||||
|
KeyF23: "\x1b[23;2~",
|
||||||
|
KeyF24: "\x1b[24;2~",
|
||||||
|
KeyF25: "\x1b[1;5P",
|
||||||
|
KeyF26: "\x1b[1;5Q",
|
||||||
|
KeyF27: "\x1b[1;5R",
|
||||||
|
KeyF28: "\x1b[1;5S",
|
||||||
|
KeyF29: "\x1b[15;5~",
|
||||||
|
KeyF30: "\x1b[17;5~",
|
||||||
|
KeyF31: "\x1b[18;5~",
|
||||||
|
KeyF32: "\x1b[19;5~",
|
||||||
|
KeyF33: "\x1b[20;5~",
|
||||||
|
KeyF34: "\x1b[21;5~",
|
||||||
|
KeyF35: "\x1b[23;5~",
|
||||||
|
KeyF36: "\x1b[24;5~",
|
||||||
|
KeyF37: "\x1b[1;6P",
|
||||||
|
KeyF38: "\x1b[1;6Q",
|
||||||
|
KeyF39: "\x1b[1;6R",
|
||||||
|
KeyF40: "\x1b[1;6S",
|
||||||
|
KeyF41: "\x1b[15;6~",
|
||||||
|
KeyF42: "\x1b[17;6~",
|
||||||
|
KeyF43: "\x1b[18;6~",
|
||||||
|
KeyF44: "\x1b[19;6~",
|
||||||
|
KeyF45: "\x1b[20;6~",
|
||||||
|
KeyF46: "\x1b[21;6~",
|
||||||
|
KeyF47: "\x1b[23;6~",
|
||||||
|
KeyF48: "\x1b[24;6~",
|
||||||
|
KeyF49: "\x1b[1;3P",
|
||||||
|
KeyF50: "\x1b[1;3Q",
|
||||||
|
KeyF51: "\x1b[1;3R",
|
||||||
|
KeyF52: "\x1b[1;3S",
|
||||||
|
KeyF53: "\x1b[15;3~",
|
||||||
|
KeyF54: "\x1b[17;3~",
|
||||||
|
KeyF55: "\x1b[18;3~",
|
||||||
|
KeyF56: "\x1b[19;3~",
|
||||||
|
KeyF57: "\x1b[20;3~",
|
||||||
|
KeyF58: "\x1b[21;3~",
|
||||||
|
KeyF59: "\x1b[23;3~",
|
||||||
|
KeyF60: "\x1b[24;3~",
|
||||||
|
KeyF61: "\x1b[1;4P",
|
||||||
|
KeyF62: "\x1b[1;4Q",
|
||||||
|
KeyF63: "\x1b[1;4R",
|
||||||
|
KeyClear: "\x1b[3;5~",
|
||||||
|
KeyShfLeft: "\x1b[1;2D",
|
||||||
|
KeyShfRight: "\x1b[1;2C",
|
||||||
|
KeyShfUp: "\x1b[1;2A",
|
||||||
|
KeyShfDown: "\x1b[1;2B",
|
||||||
|
KeyCtrlLeft: "\x1b[1;5D",
|
||||||
|
KeyCtrlRight: "\x1b[1;5C",
|
||||||
|
KeyCtrlUp: "\x1b[1;5A",
|
||||||
|
KeyCtrlDown: "\x1b[1;5B",
|
||||||
|
KeyMetaLeft: "\x1b[1;9D",
|
||||||
|
KeyMetaRight: "\x1b[1;9C",
|
||||||
|
KeyMetaUp: "\x1b[1;9A",
|
||||||
|
KeyMetaDown: "\x1b[1;9B",
|
||||||
|
KeyAltLeft: "\x1b[1;3D",
|
||||||
|
KeyAltRight: "\x1b[1;3C",
|
||||||
|
KeyAltUp: "\x1b[1;3A",
|
||||||
|
KeyAltDown: "\x1b[1;3B",
|
||||||
|
KeyAltShfLeft: "\x1b[1;4D",
|
||||||
|
KeyAltShfRight: "\x1b[1;4C",
|
||||||
|
KeyAltShfUp: "\x1b[1;4A",
|
||||||
|
KeyAltShfDown: "\x1b[1;4B",
|
||||||
|
KeyMetaShfLeft: "\x1b[1;10D",
|
||||||
|
KeyMetaShfRight: "\x1b[1;10C",
|
||||||
|
KeyMetaShfUp: "\x1b[1;10A",
|
||||||
|
KeyMetaShfDown: "\x1b[1;10B",
|
||||||
|
KeyCtrlShfLeft: "\x1b[1;6D",
|
||||||
|
KeyCtrlShfRight: "\x1b[1;6C",
|
||||||
|
KeyCtrlShfUp: "\x1b[1;6A",
|
||||||
|
KeyCtrlShfDown: "\x1b[1;6B",
|
||||||
|
KeyShfHome: "\x1b[1;2H",
|
||||||
|
KeyShfEnd: "\x1b[1;2F",
|
||||||
|
KeyCtrlHome: "\x1b[1;5H",
|
||||||
|
KeyCtrlEnd: "\x1b[1;5F",
|
||||||
|
KeyAltHome: "\x1b[1;9H",
|
||||||
|
KeyAltEnd: "\x1b[1;9F",
|
||||||
|
KeyCtrlShfHome: "\x1b[1;6H",
|
||||||
|
KeyCtrlShfEnd: "\x1b[1;6F",
|
||||||
|
KeyMetaShfHome: "\x1b[1;10H",
|
||||||
|
KeyMetaShfEnd: "\x1b[1;10F",
|
||||||
|
KeyAltShfHome: "\x1b[1;4H",
|
||||||
|
KeyAltShfEnd: "\x1b[1;4F",
|
||||||
|
KeyShfPgUp: "\x1b[5;2~",
|
||||||
|
KeyShfPgDn: "\x1b[6;2~",
|
||||||
|
})
|
||||||
|
}
|
90
vendor/github.com/gdamore/tcell/terminfo/s/sun/term.go
generated
vendored
Normal file
90
vendor/github.com/gdamore/tcell/terminfo/s/sun/term.go
generated
vendored
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package sun
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// Sun Microsystems Inc. workstation console
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "sun",
|
||||||
|
Aliases: []string{"sun1", "sun2"},
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 34,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\f",
|
||||||
|
AttrOff: "\x1b[m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
PadChar: "\x00",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[247z",
|
||||||
|
KeyDelete: "\u007f",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1b[214z",
|
||||||
|
KeyEnd: "\x1b[220z",
|
||||||
|
KeyPgUp: "\x1b[216z",
|
||||||
|
KeyPgDn: "\x1b[222z",
|
||||||
|
KeyF1: "\x1b[224z",
|
||||||
|
KeyF2: "\x1b[225z",
|
||||||
|
KeyF3: "\x1b[226z",
|
||||||
|
KeyF4: "\x1b[227z",
|
||||||
|
KeyF5: "\x1b[228z",
|
||||||
|
KeyF6: "\x1b[229z",
|
||||||
|
KeyF7: "\x1b[230z",
|
||||||
|
KeyF8: "\x1b[231z",
|
||||||
|
KeyF9: "\x1b[232z",
|
||||||
|
KeyF10: "\x1b[233z",
|
||||||
|
KeyF11: "\x1b[234z",
|
||||||
|
KeyF12: "\x1b[235z",
|
||||||
|
})
|
||||||
|
|
||||||
|
// Sun Microsystems Workstation console with color support (IA systems)
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "sun-color",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 34,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\f",
|
||||||
|
AttrOff: "\x1b[m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[247z",
|
||||||
|
KeyDelete: "\u007f",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1b[214z",
|
||||||
|
KeyEnd: "\x1b[220z",
|
||||||
|
KeyPgUp: "\x1b[216z",
|
||||||
|
KeyPgDn: "\x1b[222z",
|
||||||
|
KeyF1: "\x1b[224z",
|
||||||
|
KeyF2: "\x1b[225z",
|
||||||
|
KeyF3: "\x1b[226z",
|
||||||
|
KeyF4: "\x1b[227z",
|
||||||
|
KeyF5: "\x1b[228z",
|
||||||
|
KeyF6: "\x1b[229z",
|
||||||
|
KeyF7: "\x1b[230z",
|
||||||
|
KeyF8: "\x1b[231z",
|
||||||
|
KeyF9: "\x1b[232z",
|
||||||
|
KeyF10: "\x1b[233z",
|
||||||
|
KeyF11: "\x1b[234z",
|
||||||
|
KeyF12: "\x1b[235z",
|
||||||
|
})
|
||||||
|
}
|
157
vendor/github.com/gdamore/tcell/terminfo/t/termite/term.go
generated
vendored
Normal file
157
vendor/github.com/gdamore/tcell/terminfo/t/termite/term.go
generated
vendored
Normal file
|
@ -0,0 +1,157 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package termite
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// VTE-based terminal
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "termite",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 256,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b[?1049h",
|
||||||
|
ExitCA: "\x1b[?1049l",
|
||||||
|
ShowCursor: "\x1b[?12l\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b(B\x1b[m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Italic: "\x1b[3m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
|
||||||
|
SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",
|
||||||
|
SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m",
|
||||||
|
AltChars: "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x1b(0",
|
||||||
|
ExitAcs: "\x1b(B",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1bOH",
|
||||||
|
KeyEnd: "\x1bOF",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[1;2P",
|
||||||
|
KeyF14: "\x1b[1;2Q",
|
||||||
|
KeyF15: "\x1b[1;2R",
|
||||||
|
KeyF16: "\x1b[1;2S",
|
||||||
|
KeyF17: "\x1b[15;2~",
|
||||||
|
KeyF18: "\x1b[17;2~",
|
||||||
|
KeyF19: "\x1b[18;2~",
|
||||||
|
KeyF20: "\x1b[19;2~",
|
||||||
|
KeyF21: "\x1b[20;2~",
|
||||||
|
KeyF22: "\x1b[21;2~",
|
||||||
|
KeyF23: "\x1b[23;2~",
|
||||||
|
KeyF24: "\x1b[24;2~",
|
||||||
|
KeyF25: "\x1b[1;5P",
|
||||||
|
KeyF26: "\x1b[1;5Q",
|
||||||
|
KeyF27: "\x1b[1;5R",
|
||||||
|
KeyF28: "\x1b[1;5S",
|
||||||
|
KeyF29: "\x1b[15;5~",
|
||||||
|
KeyF30: "\x1b[17;5~",
|
||||||
|
KeyF31: "\x1b[18;5~",
|
||||||
|
KeyF32: "\x1b[19;5~",
|
||||||
|
KeyF33: "\x1b[20;5~",
|
||||||
|
KeyF34: "\x1b[21;5~",
|
||||||
|
KeyF35: "\x1b[23;5~",
|
||||||
|
KeyF36: "\x1b[24;5~",
|
||||||
|
KeyF37: "\x1b[1;6P",
|
||||||
|
KeyF38: "\x1b[1;6Q",
|
||||||
|
KeyF39: "\x1b[1;6R",
|
||||||
|
KeyF40: "\x1b[1;6S",
|
||||||
|
KeyF41: "\x1b[15;6~",
|
||||||
|
KeyF42: "\x1b[17;6~",
|
||||||
|
KeyF43: "\x1b[18;6~",
|
||||||
|
KeyF44: "\x1b[19;6~",
|
||||||
|
KeyF45: "\x1b[20;6~",
|
||||||
|
KeyF46: "\x1b[21;6~",
|
||||||
|
KeyF47: "\x1b[23;6~",
|
||||||
|
KeyF48: "\x1b[24;6~",
|
||||||
|
KeyF49: "\x1b[1;3P",
|
||||||
|
KeyF50: "\x1b[1;3Q",
|
||||||
|
KeyF51: "\x1b[1;3R",
|
||||||
|
KeyF52: "\x1b[1;3S",
|
||||||
|
KeyF53: "\x1b[15;3~",
|
||||||
|
KeyF54: "\x1b[17;3~",
|
||||||
|
KeyF55: "\x1b[18;3~",
|
||||||
|
KeyF56: "\x1b[19;3~",
|
||||||
|
KeyF57: "\x1b[20;3~",
|
||||||
|
KeyF58: "\x1b[21;3~",
|
||||||
|
KeyF59: "\x1b[23;3~",
|
||||||
|
KeyF60: "\x1b[24;3~",
|
||||||
|
KeyF61: "\x1b[1;4P",
|
||||||
|
KeyF62: "\x1b[1;4Q",
|
||||||
|
KeyF63: "\x1b[1;4R",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[1;2D",
|
||||||
|
KeyShfRight: "\x1b[1;2C",
|
||||||
|
KeyShfUp: "\x1b[1;2A",
|
||||||
|
KeyShfDown: "\x1b[1;2B",
|
||||||
|
KeyCtrlLeft: "\x1b[1;5D",
|
||||||
|
KeyCtrlRight: "\x1b[1;5C",
|
||||||
|
KeyCtrlUp: "\x1b[1;5A",
|
||||||
|
KeyCtrlDown: "\x1b[1;5B",
|
||||||
|
KeyMetaLeft: "\x1b[1;9D",
|
||||||
|
KeyMetaRight: "\x1b[1;9C",
|
||||||
|
KeyMetaUp: "\x1b[1;9A",
|
||||||
|
KeyMetaDown: "\x1b[1;9B",
|
||||||
|
KeyAltLeft: "\x1b[1;3D",
|
||||||
|
KeyAltRight: "\x1b[1;3C",
|
||||||
|
KeyAltUp: "\x1b[1;3A",
|
||||||
|
KeyAltDown: "\x1b[1;3B",
|
||||||
|
KeyAltShfLeft: "\x1b[1;4D",
|
||||||
|
KeyAltShfRight: "\x1b[1;4C",
|
||||||
|
KeyAltShfUp: "\x1b[1;4A",
|
||||||
|
KeyAltShfDown: "\x1b[1;4B",
|
||||||
|
KeyMetaShfLeft: "\x1b[1;10D",
|
||||||
|
KeyMetaShfRight: "\x1b[1;10C",
|
||||||
|
KeyMetaShfUp: "\x1b[1;10A",
|
||||||
|
KeyMetaShfDown: "\x1b[1;10B",
|
||||||
|
KeyCtrlShfLeft: "\x1b[1;6D",
|
||||||
|
KeyCtrlShfRight: "\x1b[1;6C",
|
||||||
|
KeyCtrlShfUp: "\x1b[1;6A",
|
||||||
|
KeyCtrlShfDown: "\x1b[1;6B",
|
||||||
|
KeyShfHome: "\x1b[1;2H",
|
||||||
|
KeyShfEnd: "\x1b[1;2F",
|
||||||
|
KeyCtrlHome: "\x1b[1;5H",
|
||||||
|
KeyCtrlEnd: "\x1b[1;5F",
|
||||||
|
KeyAltHome: "\x1b[1;9H",
|
||||||
|
KeyAltEnd: "\x1b[1;9F",
|
||||||
|
KeyCtrlShfHome: "\x1b[1;6H",
|
||||||
|
KeyCtrlShfEnd: "\x1b[1;6F",
|
||||||
|
KeyMetaShfHome: "\x1b[1;10H",
|
||||||
|
KeyMetaShfEnd: "\x1b[1;10F",
|
||||||
|
KeyAltShfHome: "\x1b[1;4H",
|
||||||
|
KeyAltShfEnd: "\x1b[1;4F",
|
||||||
|
KeyShfPgUp: "\x1b[5;2~",
|
||||||
|
KeyShfPgDn: "\x1b[6;2~",
|
||||||
|
})
|
||||||
|
}
|
39
vendor/github.com/gdamore/tcell/terminfo/t/tvi910/term.go
generated
vendored
Normal file
39
vendor/github.com/gdamore/tcell/terminfo/t/tvi910/term.go
generated
vendored
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package tvi910
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// televideo model 910
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "tvi910",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1a",
|
||||||
|
AttrOff: "\x1bG0",
|
||||||
|
Underline: "\x1bG8",
|
||||||
|
Reverse: "\x1bG4",
|
||||||
|
PadChar: "\x00",
|
||||||
|
SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\v",
|
||||||
|
KeyUp: "\v",
|
||||||
|
KeyDown: "\n",
|
||||||
|
KeyRight: "\f",
|
||||||
|
KeyLeft: "\b",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1e",
|
||||||
|
KeyF1: "\x01@\r",
|
||||||
|
KeyF2: "\x01A\r",
|
||||||
|
KeyF3: "\x01B\r",
|
||||||
|
KeyF4: "\x01C\r",
|
||||||
|
KeyF5: "\x01D\r",
|
||||||
|
KeyF6: "\x01E\r",
|
||||||
|
KeyF7: "\x01F\r",
|
||||||
|
KeyF8: "\x01G\r",
|
||||||
|
KeyF9: "\x01H\r",
|
||||||
|
})
|
||||||
|
}
|
38
vendor/github.com/gdamore/tcell/terminfo/t/tvi912/term.go
generated
vendored
Normal file
38
vendor/github.com/gdamore/tcell/terminfo/t/tvi912/term.go
generated
vendored
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package tvi912
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// old televideo 912/914/920
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "tvi912",
|
||||||
|
Aliases: []string{"tvi914", "tvi920"},
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1a",
|
||||||
|
Underline: "\x1bl",
|
||||||
|
PadChar: "\x00",
|
||||||
|
SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\v",
|
||||||
|
KeyUp: "\v",
|
||||||
|
KeyDown: "\n",
|
||||||
|
KeyRight: "\f",
|
||||||
|
KeyLeft: "\b",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1e",
|
||||||
|
KeyF1: "\x01@\r",
|
||||||
|
KeyF2: "\x01A\r",
|
||||||
|
KeyF3: "\x01B\r",
|
||||||
|
KeyF4: "\x01C\r",
|
||||||
|
KeyF5: "\x01D\r",
|
||||||
|
KeyF6: "\x01E\r",
|
||||||
|
KeyF7: "\x01F\r",
|
||||||
|
KeyF8: "\x01G\r",
|
||||||
|
KeyF9: "\x01H\r",
|
||||||
|
})
|
||||||
|
}
|
34
vendor/github.com/gdamore/tcell/terminfo/t/tvi921/term.go
generated
vendored
Normal file
34
vendor/github.com/gdamore/tcell/terminfo/t/tvi921/term.go
generated
vendored
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package tvi921
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// televideo model 921 with sysline same as page & real vi function
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "tvi921",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Clear: "\x1a",
|
||||||
|
ShowCursor: "\x1b.3",
|
||||||
|
AttrOff: "\x1bG0",
|
||||||
|
Underline: "\x1bG8",
|
||||||
|
Reverse: "\x1bG4",
|
||||||
|
PadChar: "\x00",
|
||||||
|
EnterAcs: "\x1b$",
|
||||||
|
ExitAcs: "\x1b%%",
|
||||||
|
SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c$<3/>",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\v",
|
||||||
|
KeyUp: "\v",
|
||||||
|
KeyDown: "\x16",
|
||||||
|
KeyRight: "\f",
|
||||||
|
KeyLeft: "\b",
|
||||||
|
KeyInsert: "\x1bQ",
|
||||||
|
KeyDelete: "\x1bW",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyClear: "\x1a",
|
||||||
|
})
|
||||||
|
}
|
43
vendor/github.com/gdamore/tcell/terminfo/t/tvi925/term.go
generated
vendored
Normal file
43
vendor/github.com/gdamore/tcell/terminfo/t/tvi925/term.go
generated
vendored
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package tvi925
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// televideo 925
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "tvi925",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1a",
|
||||||
|
ShowCursor: "\x1b.4",
|
||||||
|
AttrOff: "\x1bG0",
|
||||||
|
Underline: "\x1bG8",
|
||||||
|
Reverse: "\x1bG4",
|
||||||
|
PadChar: "\x00",
|
||||||
|
SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\v",
|
||||||
|
KeyUp: "\v",
|
||||||
|
KeyDown: "\x16",
|
||||||
|
KeyRight: "\f",
|
||||||
|
KeyLeft: "\b",
|
||||||
|
KeyInsert: "\x1bQ",
|
||||||
|
KeyDelete: "\x1bW",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1e",
|
||||||
|
KeyF1: "\x01@\r",
|
||||||
|
KeyF2: "\x01A\r",
|
||||||
|
KeyF3: "\x01B\r",
|
||||||
|
KeyF4: "\x01C\r",
|
||||||
|
KeyF5: "\x01D\r",
|
||||||
|
KeyF6: "\x01E\r",
|
||||||
|
KeyF7: "\x01F\r",
|
||||||
|
KeyF8: "\x01G\r",
|
||||||
|
KeyF9: "\x01H\r",
|
||||||
|
KeyClear: "\x1a",
|
||||||
|
})
|
||||||
|
}
|
46
vendor/github.com/gdamore/tcell/terminfo/t/tvi950/term.go
generated
vendored
Normal file
46
vendor/github.com/gdamore/tcell/terminfo/t/tvi950/term.go
generated
vendored
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package tvi950
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// televideo 950
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "tvi950",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b*",
|
||||||
|
AttrOff: "\x1bG0",
|
||||||
|
Underline: "\x1bG8",
|
||||||
|
Reverse: "\x1bG4",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "b\tc\fd\re\ni\v",
|
||||||
|
EnterAcs: "\x15",
|
||||||
|
ExitAcs: "\x18",
|
||||||
|
SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\v",
|
||||||
|
KeyUp: "\v",
|
||||||
|
KeyDown: "\x16",
|
||||||
|
KeyRight: "\f",
|
||||||
|
KeyLeft: "\b",
|
||||||
|
KeyInsert: "\x1bQ",
|
||||||
|
KeyDelete: "\x1bW",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1e",
|
||||||
|
KeyF1: "\x01@\r",
|
||||||
|
KeyF2: "\x01A\r",
|
||||||
|
KeyF3: "\x01B\r",
|
||||||
|
KeyF4: "\x01C\r",
|
||||||
|
KeyF5: "\x01D\r",
|
||||||
|
KeyF6: "\x01E\r",
|
||||||
|
KeyF7: "\x01F\r",
|
||||||
|
KeyF8: "\x01G\r",
|
||||||
|
KeyF9: "\x01H\r",
|
||||||
|
KeyClear: "\x1b*",
|
||||||
|
KeyBacktab: "\x1bI",
|
||||||
|
})
|
||||||
|
}
|
40
vendor/github.com/gdamore/tcell/terminfo/t/tvi970/term.go
generated
vendored
Normal file
40
vendor/github.com/gdamore/tcell/terminfo/t/tvi970/term.go
generated
vendored
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package tvi970
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// televideo 970
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "tvi970",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b[?20l\x1b[?7h\x1b[1Q",
|
||||||
|
AttrOff: "\x1b[m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
PadChar: "\x00",
|
||||||
|
EnterAcs: "\x1b(B",
|
||||||
|
ExitAcs: "\x1b(B",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%df",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1bM",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1b[H",
|
||||||
|
KeyF1: "\x1b?a",
|
||||||
|
KeyF2: "\x1b?b",
|
||||||
|
KeyF3: "\x1b?c",
|
||||||
|
KeyF4: "\x1b?d",
|
||||||
|
KeyF5: "\x1b?e",
|
||||||
|
KeyF6: "\x1b?f",
|
||||||
|
KeyF7: "\x1b?g",
|
||||||
|
KeyF8: "\x1b?h",
|
||||||
|
KeyF9: "\x1b?i",
|
||||||
|
})
|
||||||
|
}
|
784
vendor/github.com/gdamore/tcell/terminfo/terminfo.go
generated
vendored
Normal file
784
vendor/github.com/gdamore/tcell/terminfo/terminfo.go
generated
vendored
Normal file
|
@ -0,0 +1,784 @@
|
||||||
|
// Copyright 2019 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package terminfo
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
"sync"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
// ErrTermNotFound indicates that a suitable terminal entry could
|
||||||
|
// not be found. This can result from either not having TERM set,
|
||||||
|
// or from the TERM failing to support certain minimal functionality,
|
||||||
|
// in particular absolute cursor addressability (the cup capability)
|
||||||
|
// is required. For example, legacy "adm3" lacks this capability,
|
||||||
|
// whereas the slightly newer "adm3a" supports it. This failure
|
||||||
|
// occurs most often with "dumb".
|
||||||
|
ErrTermNotFound = errors.New("terminal entry not found")
|
||||||
|
)
|
||||||
|
|
||||||
|
// Terminfo represents a terminfo entry. Note that we use friendly names
|
||||||
|
// in Go, but when we write out JSON, we use the same names as terminfo.
|
||||||
|
// The name, aliases and smous, rmous fields do not come from terminfo directly.
|
||||||
|
type Terminfo struct {
|
||||||
|
Name string
|
||||||
|
Aliases []string
|
||||||
|
Columns int // cols
|
||||||
|
Lines int // lines
|
||||||
|
Colors int // colors
|
||||||
|
Bell string // bell
|
||||||
|
Clear string // clear
|
||||||
|
EnterCA string // smcup
|
||||||
|
ExitCA string // rmcup
|
||||||
|
ShowCursor string // cnorm
|
||||||
|
HideCursor string // civis
|
||||||
|
AttrOff string // sgr0
|
||||||
|
Underline string // smul
|
||||||
|
Bold string // bold
|
||||||
|
Blink string // blink
|
||||||
|
Reverse string // rev
|
||||||
|
Dim string // dim
|
||||||
|
Italic string // sitm
|
||||||
|
EnterKeypad string // smkx
|
||||||
|
ExitKeypad string // rmkx
|
||||||
|
SetFg string // setaf
|
||||||
|
SetBg string // setab
|
||||||
|
SetCursor string // cup
|
||||||
|
CursorBack1 string // cub1
|
||||||
|
CursorUp1 string // cuu1
|
||||||
|
PadChar string // pad
|
||||||
|
KeyBackspace string // kbs
|
||||||
|
KeyF1 string // kf1
|
||||||
|
KeyF2 string // kf2
|
||||||
|
KeyF3 string // kf3
|
||||||
|
KeyF4 string // kf4
|
||||||
|
KeyF5 string // kf5
|
||||||
|
KeyF6 string // kf6
|
||||||
|
KeyF7 string // kf7
|
||||||
|
KeyF8 string // kf8
|
||||||
|
KeyF9 string // kf9
|
||||||
|
KeyF10 string // kf10
|
||||||
|
KeyF11 string // kf11
|
||||||
|
KeyF12 string // kf12
|
||||||
|
KeyF13 string // kf13
|
||||||
|
KeyF14 string // kf14
|
||||||
|
KeyF15 string // kf15
|
||||||
|
KeyF16 string // kf16
|
||||||
|
KeyF17 string // kf17
|
||||||
|
KeyF18 string // kf18
|
||||||
|
KeyF19 string // kf19
|
||||||
|
KeyF20 string // kf20
|
||||||
|
KeyF21 string // kf21
|
||||||
|
KeyF22 string // kf22
|
||||||
|
KeyF23 string // kf23
|
||||||
|
KeyF24 string // kf24
|
||||||
|
KeyF25 string // kf25
|
||||||
|
KeyF26 string // kf26
|
||||||
|
KeyF27 string // kf27
|
||||||
|
KeyF28 string // kf28
|
||||||
|
KeyF29 string // kf29
|
||||||
|
KeyF30 string // kf30
|
||||||
|
KeyF31 string // kf31
|
||||||
|
KeyF32 string // kf32
|
||||||
|
KeyF33 string // kf33
|
||||||
|
KeyF34 string // kf34
|
||||||
|
KeyF35 string // kf35
|
||||||
|
KeyF36 string // kf36
|
||||||
|
KeyF37 string // kf37
|
||||||
|
KeyF38 string // kf38
|
||||||
|
KeyF39 string // kf39
|
||||||
|
KeyF40 string // kf40
|
||||||
|
KeyF41 string // kf41
|
||||||
|
KeyF42 string // kf42
|
||||||
|
KeyF43 string // kf43
|
||||||
|
KeyF44 string // kf44
|
||||||
|
KeyF45 string // kf45
|
||||||
|
KeyF46 string // kf46
|
||||||
|
KeyF47 string // kf47
|
||||||
|
KeyF48 string // kf48
|
||||||
|
KeyF49 string // kf49
|
||||||
|
KeyF50 string // kf50
|
||||||
|
KeyF51 string // kf51
|
||||||
|
KeyF52 string // kf52
|
||||||
|
KeyF53 string // kf53
|
||||||
|
KeyF54 string // kf54
|
||||||
|
KeyF55 string // kf55
|
||||||
|
KeyF56 string // kf56
|
||||||
|
KeyF57 string // kf57
|
||||||
|
KeyF58 string // kf58
|
||||||
|
KeyF59 string // kf59
|
||||||
|
KeyF60 string // kf60
|
||||||
|
KeyF61 string // kf61
|
||||||
|
KeyF62 string // kf62
|
||||||
|
KeyF63 string // kf63
|
||||||
|
KeyF64 string // kf64
|
||||||
|
KeyInsert string // kich1
|
||||||
|
KeyDelete string // kdch1
|
||||||
|
KeyHome string // khome
|
||||||
|
KeyEnd string // kend
|
||||||
|
KeyHelp string // khlp
|
||||||
|
KeyPgUp string // kpp
|
||||||
|
KeyPgDn string // knp
|
||||||
|
KeyUp string // kcuu1
|
||||||
|
KeyDown string // kcud1
|
||||||
|
KeyLeft string // kcub1
|
||||||
|
KeyRight string // kcuf1
|
||||||
|
KeyBacktab string // kcbt
|
||||||
|
KeyExit string // kext
|
||||||
|
KeyClear string // kclr
|
||||||
|
KeyPrint string // kprt
|
||||||
|
KeyCancel string // kcan
|
||||||
|
Mouse string // kmous
|
||||||
|
MouseMode string // XM
|
||||||
|
AltChars string // acsc
|
||||||
|
EnterAcs string // smacs
|
||||||
|
ExitAcs string // rmacs
|
||||||
|
EnableAcs string // enacs
|
||||||
|
KeyShfRight string // kRIT
|
||||||
|
KeyShfLeft string // kLFT
|
||||||
|
KeyShfHome string // kHOM
|
||||||
|
KeyShfEnd string // kEND
|
||||||
|
|
||||||
|
// These are non-standard extensions to terminfo. This includes
|
||||||
|
// true color support, and some additional keys. Its kind of bizarre
|
||||||
|
// that shifted variants of left and right exist, but not up and down.
|
||||||
|
// Terminal support for these are going to vary amongst XTerm
|
||||||
|
// emulations, so don't depend too much on them in your application.
|
||||||
|
|
||||||
|
SetFgBg string // setfgbg
|
||||||
|
SetFgBgRGB string // setfgbgrgb
|
||||||
|
SetFgRGB string // setfrgb
|
||||||
|
SetBgRGB string // setbrgb
|
||||||
|
KeyShfUp string // shift-up
|
||||||
|
KeyShfDown string // shift-down
|
||||||
|
KeyShfPgUp string // shift-kpp
|
||||||
|
KeyShfPgDn string // shift-knp
|
||||||
|
KeyCtrlUp string // ctrl-up
|
||||||
|
KeyCtrlDown string // ctrl-left
|
||||||
|
KeyCtrlRight string // ctrl-right
|
||||||
|
KeyCtrlLeft string // ctrl-left
|
||||||
|
KeyMetaUp string // meta-up
|
||||||
|
KeyMetaDown string // meta-left
|
||||||
|
KeyMetaRight string // meta-right
|
||||||
|
KeyMetaLeft string // meta-left
|
||||||
|
KeyAltUp string // alt-up
|
||||||
|
KeyAltDown string // alt-left
|
||||||
|
KeyAltRight string // alt-right
|
||||||
|
KeyAltLeft string // alt-left
|
||||||
|
KeyCtrlHome string
|
||||||
|
KeyCtrlEnd string
|
||||||
|
KeyMetaHome string
|
||||||
|
KeyMetaEnd string
|
||||||
|
KeyAltHome string
|
||||||
|
KeyAltEnd string
|
||||||
|
KeyAltShfUp string
|
||||||
|
KeyAltShfDown string
|
||||||
|
KeyAltShfLeft string
|
||||||
|
KeyAltShfRight string
|
||||||
|
KeyMetaShfUp string
|
||||||
|
KeyMetaShfDown string
|
||||||
|
KeyMetaShfLeft string
|
||||||
|
KeyMetaShfRight string
|
||||||
|
KeyCtrlShfUp string
|
||||||
|
KeyCtrlShfDown string
|
||||||
|
KeyCtrlShfLeft string
|
||||||
|
KeyCtrlShfRight string
|
||||||
|
KeyCtrlShfHome string
|
||||||
|
KeyCtrlShfEnd string
|
||||||
|
KeyAltShfHome string
|
||||||
|
KeyAltShfEnd string
|
||||||
|
KeyMetaShfHome string
|
||||||
|
KeyMetaShfEnd string
|
||||||
|
}
|
||||||
|
|
||||||
|
type stackElem struct {
|
||||||
|
s string
|
||||||
|
i int
|
||||||
|
isStr bool
|
||||||
|
isInt bool
|
||||||
|
}
|
||||||
|
|
||||||
|
type stack []stackElem
|
||||||
|
|
||||||
|
func (st stack) Push(v string) stack {
|
||||||
|
e := stackElem{
|
||||||
|
s: v,
|
||||||
|
isStr: true,
|
||||||
|
}
|
||||||
|
return append(st, e)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (st stack) Pop() (string, stack) {
|
||||||
|
v := ""
|
||||||
|
if len(st) > 0 {
|
||||||
|
e := st[len(st)-1]
|
||||||
|
st = st[:len(st)-1]
|
||||||
|
if e.isStr {
|
||||||
|
v = e.s
|
||||||
|
} else {
|
||||||
|
v = strconv.Itoa(e.i)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return v, st
|
||||||
|
}
|
||||||
|
|
||||||
|
func (st stack) PopInt() (int, stack) {
|
||||||
|
if len(st) > 0 {
|
||||||
|
e := st[len(st)-1]
|
||||||
|
st = st[:len(st)-1]
|
||||||
|
if e.isInt {
|
||||||
|
return e.i, st
|
||||||
|
} else if e.isStr {
|
||||||
|
i, _ := strconv.Atoi(e.s)
|
||||||
|
return i, st
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0, st
|
||||||
|
}
|
||||||
|
|
||||||
|
func (st stack) PopBool() (bool, stack) {
|
||||||
|
if len(st) > 0 {
|
||||||
|
e := st[len(st)-1]
|
||||||
|
st = st[:len(st)-1]
|
||||||
|
if e.isStr {
|
||||||
|
if e.s == "1" {
|
||||||
|
return true, st
|
||||||
|
}
|
||||||
|
return false, st
|
||||||
|
} else if e.i == 1 {
|
||||||
|
return true, st
|
||||||
|
} else {
|
||||||
|
return false, st
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false, st
|
||||||
|
}
|
||||||
|
|
||||||
|
func (st stack) PushInt(i int) stack {
|
||||||
|
e := stackElem{
|
||||||
|
i: i,
|
||||||
|
isInt: true,
|
||||||
|
}
|
||||||
|
return append(st, e)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (st stack) PushBool(i bool) stack {
|
||||||
|
if i {
|
||||||
|
return st.PushInt(1)
|
||||||
|
}
|
||||||
|
return st.PushInt(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
func nextch(s string, index int) (byte, int) {
|
||||||
|
if index < len(s) {
|
||||||
|
return s[index], index + 1
|
||||||
|
}
|
||||||
|
return 0, index
|
||||||
|
}
|
||||||
|
|
||||||
|
// static vars
|
||||||
|
var svars [26]string
|
||||||
|
|
||||||
|
// paramsBuffer handles some persistent state for TParam. Technically we
|
||||||
|
// could probably dispense with this, but caching buffer arrays gives us
|
||||||
|
// a nice little performance boost. Furthermore, we know that TParam is
|
||||||
|
// rarely (never?) called re-entrantly, so we can just reuse the same
|
||||||
|
// buffers, making it thread-safe by stashing a lock.
|
||||||
|
type paramsBuffer struct {
|
||||||
|
out bytes.Buffer
|
||||||
|
buf bytes.Buffer
|
||||||
|
lk sync.Mutex
|
||||||
|
}
|
||||||
|
|
||||||
|
// Start initializes the params buffer with the initial string data.
|
||||||
|
// It also locks the paramsBuffer. The caller must call End() when
|
||||||
|
// finished.
|
||||||
|
func (pb *paramsBuffer) Start(s string) {
|
||||||
|
pb.lk.Lock()
|
||||||
|
pb.out.Reset()
|
||||||
|
pb.buf.Reset()
|
||||||
|
pb.buf.WriteString(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
// End returns the final output from TParam, but it also releases the lock.
|
||||||
|
func (pb *paramsBuffer) End() string {
|
||||||
|
s := pb.out.String()
|
||||||
|
pb.lk.Unlock()
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
|
// NextCh returns the next input character to the expander.
|
||||||
|
func (pb *paramsBuffer) NextCh() (byte, error) {
|
||||||
|
return pb.buf.ReadByte()
|
||||||
|
}
|
||||||
|
|
||||||
|
// PutCh "emits" (rather schedules for output) a single byte character.
|
||||||
|
func (pb *paramsBuffer) PutCh(ch byte) {
|
||||||
|
pb.out.WriteByte(ch)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PutString schedules a string for output.
|
||||||
|
func (pb *paramsBuffer) PutString(s string) {
|
||||||
|
pb.out.WriteString(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
var pb = ¶msBuffer{}
|
||||||
|
|
||||||
|
// TParm takes a terminfo parameterized string, such as setaf or cup, and
|
||||||
|
// evaluates the string, and returns the result with the parameter
|
||||||
|
// applied.
|
||||||
|
func (t *Terminfo) TParm(s string, p ...int) string {
|
||||||
|
var stk stack
|
||||||
|
var a, b string
|
||||||
|
var ai, bi int
|
||||||
|
var ab bool
|
||||||
|
var dvars [26]string
|
||||||
|
var params [9]int
|
||||||
|
|
||||||
|
pb.Start(s)
|
||||||
|
|
||||||
|
// make sure we always have 9 parameters -- makes it easier
|
||||||
|
// later to skip checks
|
||||||
|
for i := 0; i < len(params) && i < len(p); i++ {
|
||||||
|
params[i] = p[i]
|
||||||
|
}
|
||||||
|
|
||||||
|
nest := 0
|
||||||
|
|
||||||
|
for {
|
||||||
|
|
||||||
|
ch, err := pb.NextCh()
|
||||||
|
if err != nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
if ch != '%' {
|
||||||
|
pb.PutCh(ch)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
ch, err = pb.NextCh()
|
||||||
|
if err != nil {
|
||||||
|
// XXX Error
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ch {
|
||||||
|
case '%': // quoted %
|
||||||
|
pb.PutCh(ch)
|
||||||
|
|
||||||
|
case 'i': // increment both parameters (ANSI cup support)
|
||||||
|
params[0]++
|
||||||
|
params[1]++
|
||||||
|
|
||||||
|
case 'c', 's':
|
||||||
|
// NB: these, and 'd' below are special cased for
|
||||||
|
// efficiency. They could be handled by the richer
|
||||||
|
// format support below, less efficiently.
|
||||||
|
a, stk = stk.Pop()
|
||||||
|
pb.PutString(a)
|
||||||
|
|
||||||
|
case 'd':
|
||||||
|
ai, stk = stk.PopInt()
|
||||||
|
pb.PutString(strconv.Itoa(ai))
|
||||||
|
|
||||||
|
case '0', '1', '2', '3', '4', 'x', 'X', 'o', ':':
|
||||||
|
// This is pretty suboptimal, but this is rarely used.
|
||||||
|
// None of the mainstream terminals use any of this,
|
||||||
|
// and it would surprise me if this code is ever
|
||||||
|
// executed outside of test cases.
|
||||||
|
f := "%"
|
||||||
|
if ch == ':' {
|
||||||
|
ch, _ = pb.NextCh()
|
||||||
|
}
|
||||||
|
f += string(ch)
|
||||||
|
for ch == '+' || ch == '-' || ch == '#' || ch == ' ' {
|
||||||
|
ch, _ = pb.NextCh()
|
||||||
|
f += string(ch)
|
||||||
|
}
|
||||||
|
for (ch >= '0' && ch <= '9') || ch == '.' {
|
||||||
|
ch, _ = pb.NextCh()
|
||||||
|
f += string(ch)
|
||||||
|
}
|
||||||
|
switch ch {
|
||||||
|
case 'd', 'x', 'X', 'o':
|
||||||
|
ai, stk = stk.PopInt()
|
||||||
|
pb.PutString(fmt.Sprintf(f, ai))
|
||||||
|
case 'c', 's':
|
||||||
|
a, stk = stk.Pop()
|
||||||
|
pb.PutString(fmt.Sprintf(f, a))
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'p': // push parameter
|
||||||
|
ch, _ = pb.NextCh()
|
||||||
|
ai = int(ch - '1')
|
||||||
|
if ai >= 0 && ai < len(params) {
|
||||||
|
stk = stk.PushInt(params[ai])
|
||||||
|
} else {
|
||||||
|
stk = stk.PushInt(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'P': // pop & store variable
|
||||||
|
ch, _ = pb.NextCh()
|
||||||
|
if ch >= 'A' && ch <= 'Z' {
|
||||||
|
svars[int(ch-'A')], stk = stk.Pop()
|
||||||
|
} else if ch >= 'a' && ch <= 'z' {
|
||||||
|
dvars[int(ch-'a')], stk = stk.Pop()
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'g': // recall & push variable
|
||||||
|
ch, _ = pb.NextCh()
|
||||||
|
if ch >= 'A' && ch <= 'Z' {
|
||||||
|
stk = stk.Push(svars[int(ch-'A')])
|
||||||
|
} else if ch >= 'a' && ch <= 'z' {
|
||||||
|
stk = stk.Push(dvars[int(ch-'a')])
|
||||||
|
}
|
||||||
|
|
||||||
|
case '\'': // push(char)
|
||||||
|
ch, _ = pb.NextCh()
|
||||||
|
pb.NextCh() // must be ' but we don't check
|
||||||
|
stk = stk.Push(string(ch))
|
||||||
|
|
||||||
|
case '{': // push(int)
|
||||||
|
ai = 0
|
||||||
|
ch, _ = pb.NextCh()
|
||||||
|
for ch >= '0' && ch <= '9' {
|
||||||
|
ai *= 10
|
||||||
|
ai += int(ch - '0')
|
||||||
|
ch, _ = pb.NextCh()
|
||||||
|
}
|
||||||
|
// ch must be '}' but no verification
|
||||||
|
stk = stk.PushInt(ai)
|
||||||
|
|
||||||
|
case 'l': // push(strlen(pop))
|
||||||
|
a, stk = stk.Pop()
|
||||||
|
stk = stk.PushInt(len(a))
|
||||||
|
|
||||||
|
case '+':
|
||||||
|
bi, stk = stk.PopInt()
|
||||||
|
ai, stk = stk.PopInt()
|
||||||
|
stk = stk.PushInt(ai + bi)
|
||||||
|
|
||||||
|
case '-':
|
||||||
|
bi, stk = stk.PopInt()
|
||||||
|
ai, stk = stk.PopInt()
|
||||||
|
stk = stk.PushInt(ai - bi)
|
||||||
|
|
||||||
|
case '*':
|
||||||
|
bi, stk = stk.PopInt()
|
||||||
|
ai, stk = stk.PopInt()
|
||||||
|
stk = stk.PushInt(ai * bi)
|
||||||
|
|
||||||
|
case '/':
|
||||||
|
bi, stk = stk.PopInt()
|
||||||
|
ai, stk = stk.PopInt()
|
||||||
|
if bi != 0 {
|
||||||
|
stk = stk.PushInt(ai / bi)
|
||||||
|
} else {
|
||||||
|
stk = stk.PushInt(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'm': // push(pop mod pop)
|
||||||
|
bi, stk = stk.PopInt()
|
||||||
|
ai, stk = stk.PopInt()
|
||||||
|
if bi != 0 {
|
||||||
|
stk = stk.PushInt(ai % bi)
|
||||||
|
} else {
|
||||||
|
stk = stk.PushInt(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
case '&': // AND
|
||||||
|
bi, stk = stk.PopInt()
|
||||||
|
ai, stk = stk.PopInt()
|
||||||
|
stk = stk.PushInt(ai & bi)
|
||||||
|
|
||||||
|
case '|': // OR
|
||||||
|
bi, stk = stk.PopInt()
|
||||||
|
ai, stk = stk.PopInt()
|
||||||
|
stk = stk.PushInt(ai | bi)
|
||||||
|
|
||||||
|
case '^': // XOR
|
||||||
|
bi, stk = stk.PopInt()
|
||||||
|
ai, stk = stk.PopInt()
|
||||||
|
stk = stk.PushInt(ai ^ bi)
|
||||||
|
|
||||||
|
case '~': // bit complement
|
||||||
|
ai, stk = stk.PopInt()
|
||||||
|
stk = stk.PushInt(ai ^ -1)
|
||||||
|
|
||||||
|
case '!': // logical NOT
|
||||||
|
ai, stk = stk.PopInt()
|
||||||
|
stk = stk.PushBool(ai != 0)
|
||||||
|
|
||||||
|
case '=': // numeric compare or string compare
|
||||||
|
b, stk = stk.Pop()
|
||||||
|
a, stk = stk.Pop()
|
||||||
|
stk = stk.PushBool(a == b)
|
||||||
|
|
||||||
|
case '>': // greater than, numeric
|
||||||
|
bi, stk = stk.PopInt()
|
||||||
|
ai, stk = stk.PopInt()
|
||||||
|
stk = stk.PushBool(ai > bi)
|
||||||
|
|
||||||
|
case '<': // less than, numeric
|
||||||
|
bi, stk = stk.PopInt()
|
||||||
|
ai, stk = stk.PopInt()
|
||||||
|
stk = stk.PushBool(ai < bi)
|
||||||
|
|
||||||
|
case '?': // start conditional
|
||||||
|
|
||||||
|
case 't':
|
||||||
|
ab, stk = stk.PopBool()
|
||||||
|
if ab {
|
||||||
|
// just keep going
|
||||||
|
break
|
||||||
|
}
|
||||||
|
nest = 0
|
||||||
|
ifloop:
|
||||||
|
// this loop consumes everything until we hit our else,
|
||||||
|
// or the end of the conditional
|
||||||
|
for {
|
||||||
|
ch, err = pb.NextCh()
|
||||||
|
if err != nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if ch != '%' {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
ch, _ = pb.NextCh()
|
||||||
|
switch ch {
|
||||||
|
case ';':
|
||||||
|
if nest == 0 {
|
||||||
|
break ifloop
|
||||||
|
}
|
||||||
|
nest--
|
||||||
|
case '?':
|
||||||
|
nest++
|
||||||
|
case 'e':
|
||||||
|
if nest == 0 {
|
||||||
|
break ifloop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'e':
|
||||||
|
// if we got here, it means we didn't use the else
|
||||||
|
// in the 't' case above, and we should skip until
|
||||||
|
// the end of the conditional
|
||||||
|
nest = 0
|
||||||
|
elloop:
|
||||||
|
for {
|
||||||
|
ch, err = pb.NextCh()
|
||||||
|
if err != nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if ch != '%' {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
ch, _ = pb.NextCh()
|
||||||
|
switch ch {
|
||||||
|
case ';':
|
||||||
|
if nest == 0 {
|
||||||
|
break elloop
|
||||||
|
}
|
||||||
|
nest--
|
||||||
|
case '?':
|
||||||
|
nest++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
case ';': // endif
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return pb.End()
|
||||||
|
}
|
||||||
|
|
||||||
|
// TPuts emits the string to the writer, but expands inline padding
|
||||||
|
// indications (of the form $<[delay]> where [delay] is msec) to
|
||||||
|
// a suitable time (unless the terminfo string indicates this isn't needed
|
||||||
|
// by specifying npc - no padding). All Terminfo based strings should be
|
||||||
|
// emitted using this function.
|
||||||
|
func (t *Terminfo) TPuts(w io.Writer, s string) {
|
||||||
|
for {
|
||||||
|
beg := strings.Index(s, "$<")
|
||||||
|
if beg < 0 {
|
||||||
|
// Most strings don't need padding, which is good news!
|
||||||
|
io.WriteString(w, s)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
io.WriteString(w, s[:beg])
|
||||||
|
s = s[beg+2:]
|
||||||
|
end := strings.Index(s, ">")
|
||||||
|
if end < 0 {
|
||||||
|
// unterminated.. just emit bytes unadulterated
|
||||||
|
io.WriteString(w, "$<"+s)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
val := s[:end]
|
||||||
|
s = s[end+1:]
|
||||||
|
padus := 0
|
||||||
|
unit := time.Millisecond
|
||||||
|
dot := false
|
||||||
|
loop:
|
||||||
|
for i := range val {
|
||||||
|
switch val[i] {
|
||||||
|
case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
|
||||||
|
padus *= 10
|
||||||
|
padus += int(val[i] - '0')
|
||||||
|
if dot {
|
||||||
|
unit /= 10
|
||||||
|
}
|
||||||
|
case '.':
|
||||||
|
if !dot {
|
||||||
|
dot = true
|
||||||
|
} else {
|
||||||
|
break loop
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break loop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Curses historically uses padding to achieve "fine grained"
|
||||||
|
// delays. We have much better clocks these days, and so we
|
||||||
|
// do not rely on padding but simply sleep a bit.
|
||||||
|
if len(t.PadChar) > 0 {
|
||||||
|
time.Sleep(unit * time.Duration(padus))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TGoto returns a string suitable for addressing the cursor at the given
|
||||||
|
// row and column. The origin 0, 0 is in the upper left corner of the screen.
|
||||||
|
func (t *Terminfo) TGoto(col, row int) string {
|
||||||
|
return t.TParm(t.SetCursor, row, col)
|
||||||
|
}
|
||||||
|
|
||||||
|
// TColor returns a string corresponding to the given foreground and background
|
||||||
|
// colors. Either fg or bg can be set to -1 to elide.
|
||||||
|
func (t *Terminfo) TColor(fi, bi int) string {
|
||||||
|
rv := ""
|
||||||
|
// As a special case, we map bright colors to lower versions if the
|
||||||
|
// color table only holds 8. For the remaining 240 colors, the user
|
||||||
|
// is out of luck. Someday we could create a mapping table, but its
|
||||||
|
// not worth it.
|
||||||
|
if t.Colors == 8 {
|
||||||
|
if fi > 7 && fi < 16 {
|
||||||
|
fi -= 8
|
||||||
|
}
|
||||||
|
if bi > 7 && bi < 16 {
|
||||||
|
bi -= 8
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if t.Colors > fi && fi >= 0 {
|
||||||
|
rv += t.TParm(t.SetFg, fi)
|
||||||
|
}
|
||||||
|
if t.Colors > bi && bi >= 0 {
|
||||||
|
rv += t.TParm(t.SetBg, bi)
|
||||||
|
}
|
||||||
|
return rv
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
dblock sync.Mutex
|
||||||
|
terminfos = make(map[string]*Terminfo)
|
||||||
|
aliases = make(map[string]string)
|
||||||
|
)
|
||||||
|
|
||||||
|
// AddTerminfo can be called to register a new Terminfo entry.
|
||||||
|
func AddTerminfo(t *Terminfo) {
|
||||||
|
dblock.Lock()
|
||||||
|
terminfos[t.Name] = t
|
||||||
|
for _, x := range t.Aliases {
|
||||||
|
terminfos[x] = t
|
||||||
|
}
|
||||||
|
dblock.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
// LookupTerminfo attempts to find a definition for the named $TERM.
|
||||||
|
func LookupTerminfo(name string) (*Terminfo, error) {
|
||||||
|
if name == "" {
|
||||||
|
// else on windows: index out of bounds
|
||||||
|
// on the name[0] reference below
|
||||||
|
return nil, ErrTermNotFound
|
||||||
|
}
|
||||||
|
|
||||||
|
addtruecolor := false
|
||||||
|
switch os.Getenv("COLORTERM") {
|
||||||
|
case "truecolor", "24bit", "24-bit":
|
||||||
|
addtruecolor = true
|
||||||
|
}
|
||||||
|
dblock.Lock()
|
||||||
|
t := terminfos[name]
|
||||||
|
dblock.Unlock()
|
||||||
|
|
||||||
|
// If the name ends in -truecolor, then fabricate an entry
|
||||||
|
// from the corresponding -256color, -color, or bare terminal.
|
||||||
|
if t == nil && strings.HasSuffix(name, "-truecolor") {
|
||||||
|
|
||||||
|
suffixes := []string{
|
||||||
|
"-256color",
|
||||||
|
"-88color",
|
||||||
|
"-color",
|
||||||
|
"",
|
||||||
|
}
|
||||||
|
base := name[:len(name)-len("-truecolor")]
|
||||||
|
for _, s := range suffixes {
|
||||||
|
if t, _ = LookupTerminfo(base + s); t != nil {
|
||||||
|
addtruecolor = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if t == nil {
|
||||||
|
return nil, ErrTermNotFound
|
||||||
|
}
|
||||||
|
|
||||||
|
switch os.Getenv("TCELL_TRUECOLOR") {
|
||||||
|
case "":
|
||||||
|
case "disable":
|
||||||
|
addtruecolor = false
|
||||||
|
default:
|
||||||
|
addtruecolor = true
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the user has requested 24-bit color with $COLORTERM, then
|
||||||
|
// amend the value (unless already present). This means we don't
|
||||||
|
// need to have a value present.
|
||||||
|
if addtruecolor &&
|
||||||
|
t.SetFgBgRGB == "" &&
|
||||||
|
t.SetFgRGB == "" &&
|
||||||
|
t.SetBgRGB == "" {
|
||||||
|
|
||||||
|
// Supply vanilla ISO 8613-6:1994 24-bit color sequences.
|
||||||
|
t.SetFgRGB = "\x1b[38;2;%p1%d;%p2%d;%p3%dm"
|
||||||
|
t.SetBgRGB = "\x1b[48;2;%p1%d;%p2%d;%p3%dm"
|
||||||
|
t.SetFgBgRGB = "\x1b[38;2;%p1%d;%p2%d;%p3%d;" +
|
||||||
|
"48;2;%p4%d;%p5%d;%p6%dm"
|
||||||
|
}
|
||||||
|
|
||||||
|
return t, nil
|
||||||
|
}
|
48
vendor/github.com/gdamore/tcell/terminfo/v/vt100/term.go
generated
vendored
Normal file
48
vendor/github.com/gdamore/tcell/terminfo/v/vt100/term.go
generated
vendored
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package vt100
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// dec vt100 (w/advanced video)
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "vt100",
|
||||||
|
Aliases: []string{"vt100-am"},
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[J$<50>",
|
||||||
|
AttrOff: "\x1b[m\x0f$<2>",
|
||||||
|
Underline: "\x1b[4m$<2>",
|
||||||
|
Bold: "\x1b[1m$<2>",
|
||||||
|
Blink: "\x1b[5m$<2>",
|
||||||
|
Reverse: "\x1b[7m$<2>",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b(B\x1b)0",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH$<5>",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A$<2>",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1bOt",
|
||||||
|
KeyF6: "\x1bOu",
|
||||||
|
KeyF7: "\x1bOv",
|
||||||
|
KeyF8: "\x1bOl",
|
||||||
|
KeyF9: "\x1bOw",
|
||||||
|
KeyF10: "\x1bOx",
|
||||||
|
})
|
||||||
|
}
|
47
vendor/github.com/gdamore/tcell/terminfo/v/vt102/term.go
generated
vendored
Normal file
47
vendor/github.com/gdamore/tcell/terminfo/v/vt102/term.go
generated
vendored
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package vt102
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// dec vt102
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "vt102",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[J$<50>",
|
||||||
|
AttrOff: "\x1b[m\x0f$<2>",
|
||||||
|
Underline: "\x1b[4m$<2>",
|
||||||
|
Bold: "\x1b[1m$<2>",
|
||||||
|
Blink: "\x1b[5m$<2>",
|
||||||
|
Reverse: "\x1b[7m$<2>",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b(B\x1b)0",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH$<5>",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A$<2>",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1bOt",
|
||||||
|
KeyF6: "\x1bOu",
|
||||||
|
KeyF7: "\x1bOv",
|
||||||
|
KeyF8: "\x1bOl",
|
||||||
|
KeyF9: "\x1bOw",
|
||||||
|
KeyF10: "\x1bOx",
|
||||||
|
})
|
||||||
|
}
|
58
vendor/github.com/gdamore/tcell/terminfo/v/vt220/term.go
generated
vendored
Normal file
58
vendor/github.com/gdamore/tcell/terminfo/v/vt220/term.go
generated
vendored
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package vt220
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// dec vt220
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "vt220",
|
||||||
|
Aliases: []string{"vt200"},
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[J",
|
||||||
|
AttrOff: "\x1b[m\x1b(B",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x1b(0$<2>",
|
||||||
|
ExitAcs: "\x1b(B$<4>",
|
||||||
|
EnableAcs: "\x1b)0",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[25~",
|
||||||
|
KeyF14: "\x1b[26~",
|
||||||
|
KeyF17: "\x1b[31~",
|
||||||
|
KeyF18: "\x1b[32~",
|
||||||
|
KeyF19: "\x1b[33~",
|
||||||
|
KeyF20: "\x1b[34~",
|
||||||
|
KeyHelp: "\x1b[28~",
|
||||||
|
})
|
||||||
|
}
|
63
vendor/github.com/gdamore/tcell/terminfo/v/vt320/term.go
generated
vendored
Normal file
63
vendor/github.com/gdamore/tcell/terminfo/v/vt320/term.go
generated
vendored
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package vt320
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// dec vt320 7 bit terminal
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "vt320",
|
||||||
|
Aliases: []string{"vt300"},
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
ShowCursor: "\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x1b(B",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x1b(0",
|
||||||
|
ExitAcs: "\x1b(B",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1b[1~",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[25~",
|
||||||
|
KeyF14: "\x1b[26~",
|
||||||
|
KeyF15: "\x1b[28~",
|
||||||
|
KeyF16: "\x1b[29~",
|
||||||
|
KeyF17: "\x1b[31~",
|
||||||
|
KeyF18: "\x1b[32~",
|
||||||
|
KeyF19: "\x1b[33~",
|
||||||
|
KeyF20: "\x1b[34~",
|
||||||
|
})
|
||||||
|
}
|
46
vendor/github.com/gdamore/tcell/terminfo/v/vt400/term.go
generated
vendored
Normal file
46
vendor/github.com/gdamore/tcell/terminfo/v/vt400/term.go
generated
vendored
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package vt400
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// dec vt400 24x80 column autowrap
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "vt400",
|
||||||
|
Aliases: []string{"vt400-24", "dec-vt400"},
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Clear: "\x1b[H\x1b[J$<10/>",
|
||||||
|
ShowCursor: "\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x1b(B",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x1b(0",
|
||||||
|
ExitAcs: "\x1b(B",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
})
|
||||||
|
}
|
53
vendor/github.com/gdamore/tcell/terminfo/v/vt420/term.go
generated
vendored
Normal file
53
vendor/github.com/gdamore/tcell/terminfo/v/vt420/term.go
generated
vendored
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package vt420
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// DEC VT420
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "vt420",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J$<50>",
|
||||||
|
ShowCursor: "\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x1b(B$<2>",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m$<2>",
|
||||||
|
Blink: "\x1b[5m$<2>",
|
||||||
|
Reverse: "\x1b[7m$<2>",
|
||||||
|
EnterKeypad: "\x1b=",
|
||||||
|
ExitKeypad: "\x1b>",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x1b(0$<2>",
|
||||||
|
ExitAcs: "\x1b(B$<4>",
|
||||||
|
EnableAcs: "\x1b)0",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH$<10>",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1b[A",
|
||||||
|
KeyDown: "\x1b[B",
|
||||||
|
KeyRight: "\x1b[C",
|
||||||
|
KeyLeft: "\x1b[D",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[17~",
|
||||||
|
KeyF6: "\x1b[18~",
|
||||||
|
KeyF7: "\x1b[19~",
|
||||||
|
KeyF8: "\x1b[20~",
|
||||||
|
KeyF9: "\x1b[21~",
|
||||||
|
KeyF10: "\x1b[29~",
|
||||||
|
})
|
||||||
|
}
|
29
vendor/github.com/gdamore/tcell/terminfo/v/vt52/term.go
generated
vendored
Normal file
29
vendor/github.com/gdamore/tcell/terminfo/v/vt52/term.go
generated
vendored
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package vt52
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// dec vt52
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "vt52",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1bH\x1bJ",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "+h.k0affggolpnqprrss",
|
||||||
|
EnterAcs: "\x1bF",
|
||||||
|
ExitAcs: "\x1bG",
|
||||||
|
SetCursor: "\x1bY%p1%' '%+%c%p2%' '%+%c",
|
||||||
|
CursorBack1: "\x1bD",
|
||||||
|
CursorUp1: "\x1bA",
|
||||||
|
KeyUp: "\x1bA",
|
||||||
|
KeyDown: "\x1bB",
|
||||||
|
KeyRight: "\x1bC",
|
||||||
|
KeyLeft: "\x1bD",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
})
|
||||||
|
}
|
59
vendor/github.com/gdamore/tcell/terminfo/w/wy50/term.go
generated
vendored
Normal file
59
vendor/github.com/gdamore/tcell/terminfo/w/wy50/term.go
generated
vendored
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package wy50
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// Wyse 50
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "wy50",
|
||||||
|
Aliases: []string{"wyse50"},
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b+$<20>",
|
||||||
|
ShowCursor: "\x1b`1",
|
||||||
|
HideCursor: "\x1b`0",
|
||||||
|
AttrOff: "\x1b(\x1bH\x03",
|
||||||
|
Dim: "\x1b`7\x1b)",
|
||||||
|
Reverse: "\x1b`6\x1b)",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "0wa_h[jukslrmqnxqzttuyv]wpxv",
|
||||||
|
EnterAcs: "\x1bH\x02",
|
||||||
|
ExitAcs: "\x1bH\x03",
|
||||||
|
SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\v",
|
||||||
|
KeyUp: "\v",
|
||||||
|
KeyDown: "\n",
|
||||||
|
KeyRight: "\f",
|
||||||
|
KeyLeft: "\b",
|
||||||
|
KeyInsert: "\x1bQ",
|
||||||
|
KeyDelete: "\x1bW",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1e",
|
||||||
|
KeyPgUp: "\x1bJ",
|
||||||
|
KeyPgDn: "\x1bK",
|
||||||
|
KeyF1: "\x01@\r",
|
||||||
|
KeyF2: "\x01A\r",
|
||||||
|
KeyF3: "\x01B\r",
|
||||||
|
KeyF4: "\x01C\r",
|
||||||
|
KeyF5: "\x01D\r",
|
||||||
|
KeyF6: "\x01E\r",
|
||||||
|
KeyF7: "\x01F\r",
|
||||||
|
KeyF8: "\x01G\r",
|
||||||
|
KeyF9: "\x01H\r",
|
||||||
|
KeyF10: "\x01I\r",
|
||||||
|
KeyF11: "\x01J\r",
|
||||||
|
KeyF12: "\x01K\r",
|
||||||
|
KeyF13: "\x01L\r",
|
||||||
|
KeyF14: "\x01M\r",
|
||||||
|
KeyF15: "\x01N\r",
|
||||||
|
KeyF16: "\x01O\r",
|
||||||
|
KeyPrint: "\x1bP",
|
||||||
|
KeyBacktab: "\x1bI",
|
||||||
|
KeyShfHome: "\x1b{",
|
||||||
|
})
|
||||||
|
}
|
63
vendor/github.com/gdamore/tcell/terminfo/w/wy60/term.go
generated
vendored
Normal file
63
vendor/github.com/gdamore/tcell/terminfo/w/wy60/term.go
generated
vendored
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package wy60
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// Wyse 60
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "wy60",
|
||||||
|
Aliases: []string{"wyse60"},
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b+$<100>",
|
||||||
|
EnterCA: "\x1bw0",
|
||||||
|
ExitCA: "\x1bw1",
|
||||||
|
ShowCursor: "\x1b`1",
|
||||||
|
HideCursor: "\x1b`0",
|
||||||
|
AttrOff: "\x1b(\x1bH\x03\x1bG0\x1bcD",
|
||||||
|
Underline: "\x1bG8",
|
||||||
|
Dim: "\x1bGp",
|
||||||
|
Blink: "\x1bG2",
|
||||||
|
Reverse: "\x1bG4",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "+/,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~",
|
||||||
|
EnterAcs: "\x1bcE",
|
||||||
|
ExitAcs: "\x1bcD",
|
||||||
|
SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\v",
|
||||||
|
KeyUp: "\v",
|
||||||
|
KeyDown: "\n",
|
||||||
|
KeyRight: "\f",
|
||||||
|
KeyLeft: "\b",
|
||||||
|
KeyInsert: "\x1bQ",
|
||||||
|
KeyDelete: "\x1bW",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyHome: "\x1e",
|
||||||
|
KeyPgUp: "\x1bJ",
|
||||||
|
KeyPgDn: "\x1bK",
|
||||||
|
KeyF1: "\x01@\r",
|
||||||
|
KeyF2: "\x01A\r",
|
||||||
|
KeyF3: "\x01B\r",
|
||||||
|
KeyF4: "\x01C\r",
|
||||||
|
KeyF5: "\x01D\r",
|
||||||
|
KeyF6: "\x01E\r",
|
||||||
|
KeyF7: "\x01F\r",
|
||||||
|
KeyF8: "\x01G\r",
|
||||||
|
KeyF9: "\x01H\r",
|
||||||
|
KeyF10: "\x01I\r",
|
||||||
|
KeyF11: "\x01J\r",
|
||||||
|
KeyF12: "\x01K\r",
|
||||||
|
KeyF13: "\x01L\r",
|
||||||
|
KeyF14: "\x01M\r",
|
||||||
|
KeyF15: "\x01N\r",
|
||||||
|
KeyF16: "\x01O\r",
|
||||||
|
KeyPrint: "\x1bP",
|
||||||
|
KeyBacktab: "\x1bI",
|
||||||
|
KeyShfHome: "\x1b{",
|
||||||
|
})
|
||||||
|
}
|
114
vendor/github.com/gdamore/tcell/terminfo/w/wy99_ansi/term.go
generated
vendored
Normal file
114
vendor/github.com/gdamore/tcell/terminfo/w/wy99_ansi/term.go
generated
vendored
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package wy99_ansi
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// Wyse WY-99GT in ansi mode (int'l PC keyboard)
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "wy99-ansi",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 25,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[J$<200>",
|
||||||
|
ShowCursor: "\x1b[34h\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x0f\x1b[\"q",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h",
|
||||||
|
ExitKeypad: "\x1b[?1l",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b)0",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b$<1>",
|
||||||
|
CursorUp1: "\x1bM",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[M",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF17: "\x1b[K",
|
||||||
|
KeyF18: "\x1b[31~",
|
||||||
|
KeyF19: "\x1b[32~",
|
||||||
|
KeyF20: "\x1b[33~",
|
||||||
|
KeyF21: "\x1b[34~",
|
||||||
|
KeyF22: "\x1b[35~",
|
||||||
|
KeyF23: "\x1b[1~",
|
||||||
|
KeyF24: "\x1b[2~",
|
||||||
|
KeyBacktab: "\x1b[z",
|
||||||
|
})
|
||||||
|
|
||||||
|
// Wyse WY-99GT in ansi mode (US PC keyboard)
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "wy99a-ansi",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 25,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[J$<200>",
|
||||||
|
ShowCursor: "\x1b[34h\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[m\x0f\x1b[\"q",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h",
|
||||||
|
ExitKeypad: "\x1b[?1l",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b)0",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b$<1>",
|
||||||
|
CursorUp1: "\x1bM",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyBackspace: "\b",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[M",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF17: "\x1b[K",
|
||||||
|
KeyF18: "\x1b[31~",
|
||||||
|
KeyF19: "\x1b[32~",
|
||||||
|
KeyF20: "\x1b[33~",
|
||||||
|
KeyF21: "\x1b[34~",
|
||||||
|
KeyF22: "\x1b[35~",
|
||||||
|
KeyF23: "\x1b[1~",
|
||||||
|
KeyF24: "\x1b[2~",
|
||||||
|
KeyBacktab: "\x1b[z",
|
||||||
|
})
|
||||||
|
}
|
158
vendor/github.com/gdamore/tcell/terminfo/x/xfce/term.go
generated
vendored
Normal file
158
vendor/github.com/gdamore/tcell/terminfo/x/xfce/term.go
generated
vendored
Normal file
|
@ -0,0 +1,158 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package xfce
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// Xfce Terminal
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "xfce",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b7\x1b[?47h",
|
||||||
|
ExitCA: "\x1b[2J\x1b[?47l\x1b8",
|
||||||
|
ShowCursor: "\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b[0m\x0f",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x0e",
|
||||||
|
ExitAcs: "\x0f",
|
||||||
|
EnableAcs: "\x1b)0",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1bOH",
|
||||||
|
KeyEnd: "\x1bOF",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1bO1;2P",
|
||||||
|
KeyF14: "\x1bO1;2Q",
|
||||||
|
KeyF15: "\x1bO1;2R",
|
||||||
|
KeyF16: "\x1bO1;2S",
|
||||||
|
KeyF17: "\x1b[15;2~",
|
||||||
|
KeyF18: "\x1b[17;2~",
|
||||||
|
KeyF19: "\x1b[18;2~",
|
||||||
|
KeyF20: "\x1b[19;2~",
|
||||||
|
KeyF21: "\x1b[20;2~",
|
||||||
|
KeyF22: "\x1b[21;2~",
|
||||||
|
KeyF23: "\x1b[23;2~",
|
||||||
|
KeyF24: "\x1b[24;2~",
|
||||||
|
KeyF25: "\x1bO1;5P",
|
||||||
|
KeyF26: "\x1bO1;5Q",
|
||||||
|
KeyF27: "\x1bO1;5R",
|
||||||
|
KeyF28: "\x1bO1;5S",
|
||||||
|
KeyF29: "\x1b[15;5~",
|
||||||
|
KeyF30: "\x1b[17;5~",
|
||||||
|
KeyF31: "\x1b[18;5~",
|
||||||
|
KeyF32: "\x1b[19;5~",
|
||||||
|
KeyF33: "\x1b[20;5~",
|
||||||
|
KeyF34: "\x1b[21;5~",
|
||||||
|
KeyF35: "\x1b[23;5~",
|
||||||
|
KeyF36: "\x1b[24;5~",
|
||||||
|
KeyF37: "\x1bO1;6P",
|
||||||
|
KeyF38: "\x1bO1;6Q",
|
||||||
|
KeyF39: "\x1bO1;6R",
|
||||||
|
KeyF40: "\x1bO1;6S",
|
||||||
|
KeyF41: "\x1b[15;6~",
|
||||||
|
KeyF42: "\x1b[17;6~",
|
||||||
|
KeyF43: "\x1b[18;6~",
|
||||||
|
KeyF44: "\x1b[19;6~",
|
||||||
|
KeyF45: "\x1b[20;6~",
|
||||||
|
KeyF46: "\x1b[21;6~",
|
||||||
|
KeyF47: "\x1b[23;6~",
|
||||||
|
KeyF48: "\x1b[24;6~",
|
||||||
|
KeyF49: "\x1bO1;3P",
|
||||||
|
KeyF50: "\x1bO1;3Q",
|
||||||
|
KeyF51: "\x1bO1;3R",
|
||||||
|
KeyF52: "\x1bO1;3S",
|
||||||
|
KeyF53: "\x1b[15;3~",
|
||||||
|
KeyF54: "\x1b[17;3~",
|
||||||
|
KeyF55: "\x1b[18;3~",
|
||||||
|
KeyF56: "\x1b[19;3~",
|
||||||
|
KeyF57: "\x1b[20;3~",
|
||||||
|
KeyF58: "\x1b[21;3~",
|
||||||
|
KeyF59: "\x1b[23;3~",
|
||||||
|
KeyF60: "\x1b[24;3~",
|
||||||
|
KeyF61: "\x1bO1;4P",
|
||||||
|
KeyF62: "\x1bO1;4Q",
|
||||||
|
KeyF63: "\x1bO1;4R",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[1;2D",
|
||||||
|
KeyShfRight: "\x1b[1;2C",
|
||||||
|
KeyShfUp: "\x1b[1;2A",
|
||||||
|
KeyShfDown: "\x1b[1;2B",
|
||||||
|
KeyCtrlLeft: "\x1b[1;5D",
|
||||||
|
KeyCtrlRight: "\x1b[1;5C",
|
||||||
|
KeyCtrlUp: "\x1b[1;5A",
|
||||||
|
KeyCtrlDown: "\x1b[1;5B",
|
||||||
|
KeyMetaLeft: "\x1b[1;9D",
|
||||||
|
KeyMetaRight: "\x1b[1;9C",
|
||||||
|
KeyMetaUp: "\x1b[1;9A",
|
||||||
|
KeyMetaDown: "\x1b[1;9B",
|
||||||
|
KeyAltLeft: "\x1b[1;3D",
|
||||||
|
KeyAltRight: "\x1b[1;3C",
|
||||||
|
KeyAltUp: "\x1b[1;3A",
|
||||||
|
KeyAltDown: "\x1b[1;3B",
|
||||||
|
KeyAltShfLeft: "\x1b[1;4D",
|
||||||
|
KeyAltShfRight: "\x1b[1;4C",
|
||||||
|
KeyAltShfUp: "\x1b[1;4A",
|
||||||
|
KeyAltShfDown: "\x1b[1;4B",
|
||||||
|
KeyMetaShfLeft: "\x1b[1;10D",
|
||||||
|
KeyMetaShfRight: "\x1b[1;10C",
|
||||||
|
KeyMetaShfUp: "\x1b[1;10A",
|
||||||
|
KeyMetaShfDown: "\x1b[1;10B",
|
||||||
|
KeyCtrlShfLeft: "\x1b[1;6D",
|
||||||
|
KeyCtrlShfRight: "\x1b[1;6C",
|
||||||
|
KeyCtrlShfUp: "\x1b[1;6A",
|
||||||
|
KeyCtrlShfDown: "\x1b[1;6B",
|
||||||
|
KeyShfHome: "\x1b[1;2H",
|
||||||
|
KeyShfEnd: "\x1b[1;2F",
|
||||||
|
KeyCtrlHome: "\x1b[1;5H",
|
||||||
|
KeyCtrlEnd: "\x1b[1;5F",
|
||||||
|
KeyAltHome: "\x1b[1;9H",
|
||||||
|
KeyAltEnd: "\x1b[1;9F",
|
||||||
|
KeyCtrlShfHome: "\x1b[1;6H",
|
||||||
|
KeyCtrlShfEnd: "\x1b[1;6F",
|
||||||
|
KeyMetaShfHome: "\x1b[1;10H",
|
||||||
|
KeyMetaShfEnd: "\x1b[1;10F",
|
||||||
|
KeyAltShfHome: "\x1b[1;4H",
|
||||||
|
KeyAltShfEnd: "\x1b[1;4F",
|
||||||
|
KeyShfPgUp: "\x1b[5;2~",
|
||||||
|
KeyShfPgDn: "\x1b[6;2~",
|
||||||
|
})
|
||||||
|
}
|
34
vendor/github.com/gdamore/tcell/terminfo/x/xnuppc/term.go
generated
vendored
Normal file
34
vendor/github.com/gdamore/tcell/terminfo/x/xnuppc/term.go
generated
vendored
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package xnuppc
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// Darwin PowerPC Console (color)
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "xnuppc",
|
||||||
|
Aliases: []string{"darwin"},
|
||||||
|
Colors: 8,
|
||||||
|
Clear: "\x1b[H\x1b[J",
|
||||||
|
AttrOff: "\x1b[m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
PadChar: "\x00",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\x1b[D",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
})
|
||||||
|
}
|
462
vendor/github.com/gdamore/tcell/terminfo/x/xterm/term.go
generated
vendored
Normal file
462
vendor/github.com/gdamore/tcell/terminfo/x/xterm/term.go
generated
vendored
Normal file
|
@ -0,0 +1,462 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package xterm
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// X11 terminal emulator
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "xterm",
|
||||||
|
Aliases: []string{"xterm-debian"},
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 8,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b[?1049h\x1b[22;0;0t",
|
||||||
|
ExitCA: "\x1b[?1049l\x1b[23;0;0t",
|
||||||
|
ShowCursor: "\x1b[?12l\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b(B\x1b[m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Italic: "\x1b[3m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
SetFg: "\x1b[3%p1%dm",
|
||||||
|
SetBg: "\x1b[4%p1%dm",
|
||||||
|
SetFgBg: "\x1b[3%p1%d;4%p2%dm",
|
||||||
|
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x1b(0",
|
||||||
|
ExitAcs: "\x1b(B",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1bOH",
|
||||||
|
KeyEnd: "\x1bOF",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[1;2P",
|
||||||
|
KeyF14: "\x1b[1;2Q",
|
||||||
|
KeyF15: "\x1b[1;2R",
|
||||||
|
KeyF16: "\x1b[1;2S",
|
||||||
|
KeyF17: "\x1b[15;2~",
|
||||||
|
KeyF18: "\x1b[17;2~",
|
||||||
|
KeyF19: "\x1b[18;2~",
|
||||||
|
KeyF20: "\x1b[19;2~",
|
||||||
|
KeyF21: "\x1b[20;2~",
|
||||||
|
KeyF22: "\x1b[21;2~",
|
||||||
|
KeyF23: "\x1b[23;2~",
|
||||||
|
KeyF24: "\x1b[24;2~",
|
||||||
|
KeyF25: "\x1b[1;5P",
|
||||||
|
KeyF26: "\x1b[1;5Q",
|
||||||
|
KeyF27: "\x1b[1;5R",
|
||||||
|
KeyF28: "\x1b[1;5S",
|
||||||
|
KeyF29: "\x1b[15;5~",
|
||||||
|
KeyF30: "\x1b[17;5~",
|
||||||
|
KeyF31: "\x1b[18;5~",
|
||||||
|
KeyF32: "\x1b[19;5~",
|
||||||
|
KeyF33: "\x1b[20;5~",
|
||||||
|
KeyF34: "\x1b[21;5~",
|
||||||
|
KeyF35: "\x1b[23;5~",
|
||||||
|
KeyF36: "\x1b[24;5~",
|
||||||
|
KeyF37: "\x1b[1;6P",
|
||||||
|
KeyF38: "\x1b[1;6Q",
|
||||||
|
KeyF39: "\x1b[1;6R",
|
||||||
|
KeyF40: "\x1b[1;6S",
|
||||||
|
KeyF41: "\x1b[15;6~",
|
||||||
|
KeyF42: "\x1b[17;6~",
|
||||||
|
KeyF43: "\x1b[18;6~",
|
||||||
|
KeyF44: "\x1b[19;6~",
|
||||||
|
KeyF45: "\x1b[20;6~",
|
||||||
|
KeyF46: "\x1b[21;6~",
|
||||||
|
KeyF47: "\x1b[23;6~",
|
||||||
|
KeyF48: "\x1b[24;6~",
|
||||||
|
KeyF49: "\x1b[1;3P",
|
||||||
|
KeyF50: "\x1b[1;3Q",
|
||||||
|
KeyF51: "\x1b[1;3R",
|
||||||
|
KeyF52: "\x1b[1;3S",
|
||||||
|
KeyF53: "\x1b[15;3~",
|
||||||
|
KeyF54: "\x1b[17;3~",
|
||||||
|
KeyF55: "\x1b[18;3~",
|
||||||
|
KeyF56: "\x1b[19;3~",
|
||||||
|
KeyF57: "\x1b[20;3~",
|
||||||
|
KeyF58: "\x1b[21;3~",
|
||||||
|
KeyF59: "\x1b[23;3~",
|
||||||
|
KeyF60: "\x1b[24;3~",
|
||||||
|
KeyF61: "\x1b[1;4P",
|
||||||
|
KeyF62: "\x1b[1;4Q",
|
||||||
|
KeyF63: "\x1b[1;4R",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[1;2D",
|
||||||
|
KeyShfRight: "\x1b[1;2C",
|
||||||
|
KeyShfUp: "\x1b[1;2A",
|
||||||
|
KeyShfDown: "\x1b[1;2B",
|
||||||
|
KeyCtrlLeft: "\x1b[1;5D",
|
||||||
|
KeyCtrlRight: "\x1b[1;5C",
|
||||||
|
KeyCtrlUp: "\x1b[1;5A",
|
||||||
|
KeyCtrlDown: "\x1b[1;5B",
|
||||||
|
KeyMetaLeft: "\x1b[1;9D",
|
||||||
|
KeyMetaRight: "\x1b[1;9C",
|
||||||
|
KeyMetaUp: "\x1b[1;9A",
|
||||||
|
KeyMetaDown: "\x1b[1;9B",
|
||||||
|
KeyAltLeft: "\x1b[1;3D",
|
||||||
|
KeyAltRight: "\x1b[1;3C",
|
||||||
|
KeyAltUp: "\x1b[1;3A",
|
||||||
|
KeyAltDown: "\x1b[1;3B",
|
||||||
|
KeyAltShfLeft: "\x1b[1;4D",
|
||||||
|
KeyAltShfRight: "\x1b[1;4C",
|
||||||
|
KeyAltShfUp: "\x1b[1;4A",
|
||||||
|
KeyAltShfDown: "\x1b[1;4B",
|
||||||
|
KeyMetaShfLeft: "\x1b[1;10D",
|
||||||
|
KeyMetaShfRight: "\x1b[1;10C",
|
||||||
|
KeyMetaShfUp: "\x1b[1;10A",
|
||||||
|
KeyMetaShfDown: "\x1b[1;10B",
|
||||||
|
KeyCtrlShfLeft: "\x1b[1;6D",
|
||||||
|
KeyCtrlShfRight: "\x1b[1;6C",
|
||||||
|
KeyCtrlShfUp: "\x1b[1;6A",
|
||||||
|
KeyCtrlShfDown: "\x1b[1;6B",
|
||||||
|
KeyShfHome: "\x1b[1;2H",
|
||||||
|
KeyShfEnd: "\x1b[1;2F",
|
||||||
|
KeyCtrlHome: "\x1b[1;5H",
|
||||||
|
KeyCtrlEnd: "\x1b[1;5F",
|
||||||
|
KeyAltHome: "\x1b[1;9H",
|
||||||
|
KeyAltEnd: "\x1b[1;9F",
|
||||||
|
KeyCtrlShfHome: "\x1b[1;6H",
|
||||||
|
KeyCtrlShfEnd: "\x1b[1;6F",
|
||||||
|
KeyMetaShfHome: "\x1b[1;10H",
|
||||||
|
KeyMetaShfEnd: "\x1b[1;10F",
|
||||||
|
KeyAltShfHome: "\x1b[1;4H",
|
||||||
|
KeyAltShfEnd: "\x1b[1;4F",
|
||||||
|
KeyShfPgUp: "\x1b[5;2~",
|
||||||
|
KeyShfPgDn: "\x1b[6;2~",
|
||||||
|
})
|
||||||
|
|
||||||
|
// xterm with 88 colors
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "xterm-88color",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 88,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b[?1049h\x1b[22;0;0t",
|
||||||
|
ExitCA: "\x1b[?1049l\x1b[23;0;0t",
|
||||||
|
ShowCursor: "\x1b[?12l\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b(B\x1b[m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Italic: "\x1b[3m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
|
||||||
|
SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",
|
||||||
|
SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m",
|
||||||
|
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x1b(0",
|
||||||
|
ExitAcs: "\x1b(B",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1bOH",
|
||||||
|
KeyEnd: "\x1bOF",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[1;2P",
|
||||||
|
KeyF14: "\x1b[1;2Q",
|
||||||
|
KeyF15: "\x1b[1;2R",
|
||||||
|
KeyF16: "\x1b[1;2S",
|
||||||
|
KeyF17: "\x1b[15;2~",
|
||||||
|
KeyF18: "\x1b[17;2~",
|
||||||
|
KeyF19: "\x1b[18;2~",
|
||||||
|
KeyF20: "\x1b[19;2~",
|
||||||
|
KeyF21: "\x1b[20;2~",
|
||||||
|
KeyF22: "\x1b[21;2~",
|
||||||
|
KeyF23: "\x1b[23;2~",
|
||||||
|
KeyF24: "\x1b[24;2~",
|
||||||
|
KeyF25: "\x1b[1;5P",
|
||||||
|
KeyF26: "\x1b[1;5Q",
|
||||||
|
KeyF27: "\x1b[1;5R",
|
||||||
|
KeyF28: "\x1b[1;5S",
|
||||||
|
KeyF29: "\x1b[15;5~",
|
||||||
|
KeyF30: "\x1b[17;5~",
|
||||||
|
KeyF31: "\x1b[18;5~",
|
||||||
|
KeyF32: "\x1b[19;5~",
|
||||||
|
KeyF33: "\x1b[20;5~",
|
||||||
|
KeyF34: "\x1b[21;5~",
|
||||||
|
KeyF35: "\x1b[23;5~",
|
||||||
|
KeyF36: "\x1b[24;5~",
|
||||||
|
KeyF37: "\x1b[1;6P",
|
||||||
|
KeyF38: "\x1b[1;6Q",
|
||||||
|
KeyF39: "\x1b[1;6R",
|
||||||
|
KeyF40: "\x1b[1;6S",
|
||||||
|
KeyF41: "\x1b[15;6~",
|
||||||
|
KeyF42: "\x1b[17;6~",
|
||||||
|
KeyF43: "\x1b[18;6~",
|
||||||
|
KeyF44: "\x1b[19;6~",
|
||||||
|
KeyF45: "\x1b[20;6~",
|
||||||
|
KeyF46: "\x1b[21;6~",
|
||||||
|
KeyF47: "\x1b[23;6~",
|
||||||
|
KeyF48: "\x1b[24;6~",
|
||||||
|
KeyF49: "\x1b[1;3P",
|
||||||
|
KeyF50: "\x1b[1;3Q",
|
||||||
|
KeyF51: "\x1b[1;3R",
|
||||||
|
KeyF52: "\x1b[1;3S",
|
||||||
|
KeyF53: "\x1b[15;3~",
|
||||||
|
KeyF54: "\x1b[17;3~",
|
||||||
|
KeyF55: "\x1b[18;3~",
|
||||||
|
KeyF56: "\x1b[19;3~",
|
||||||
|
KeyF57: "\x1b[20;3~",
|
||||||
|
KeyF58: "\x1b[21;3~",
|
||||||
|
KeyF59: "\x1b[23;3~",
|
||||||
|
KeyF60: "\x1b[24;3~",
|
||||||
|
KeyF61: "\x1b[1;4P",
|
||||||
|
KeyF62: "\x1b[1;4Q",
|
||||||
|
KeyF63: "\x1b[1;4R",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[1;2D",
|
||||||
|
KeyShfRight: "\x1b[1;2C",
|
||||||
|
KeyShfUp: "\x1b[1;2A",
|
||||||
|
KeyShfDown: "\x1b[1;2B",
|
||||||
|
KeyCtrlLeft: "\x1b[1;5D",
|
||||||
|
KeyCtrlRight: "\x1b[1;5C",
|
||||||
|
KeyCtrlUp: "\x1b[1;5A",
|
||||||
|
KeyCtrlDown: "\x1b[1;5B",
|
||||||
|
KeyMetaLeft: "\x1b[1;9D",
|
||||||
|
KeyMetaRight: "\x1b[1;9C",
|
||||||
|
KeyMetaUp: "\x1b[1;9A",
|
||||||
|
KeyMetaDown: "\x1b[1;9B",
|
||||||
|
KeyAltLeft: "\x1b[1;3D",
|
||||||
|
KeyAltRight: "\x1b[1;3C",
|
||||||
|
KeyAltUp: "\x1b[1;3A",
|
||||||
|
KeyAltDown: "\x1b[1;3B",
|
||||||
|
KeyAltShfLeft: "\x1b[1;4D",
|
||||||
|
KeyAltShfRight: "\x1b[1;4C",
|
||||||
|
KeyAltShfUp: "\x1b[1;4A",
|
||||||
|
KeyAltShfDown: "\x1b[1;4B",
|
||||||
|
KeyMetaShfLeft: "\x1b[1;10D",
|
||||||
|
KeyMetaShfRight: "\x1b[1;10C",
|
||||||
|
KeyMetaShfUp: "\x1b[1;10A",
|
||||||
|
KeyMetaShfDown: "\x1b[1;10B",
|
||||||
|
KeyCtrlShfLeft: "\x1b[1;6D",
|
||||||
|
KeyCtrlShfRight: "\x1b[1;6C",
|
||||||
|
KeyCtrlShfUp: "\x1b[1;6A",
|
||||||
|
KeyCtrlShfDown: "\x1b[1;6B",
|
||||||
|
KeyShfHome: "\x1b[1;2H",
|
||||||
|
KeyShfEnd: "\x1b[1;2F",
|
||||||
|
KeyCtrlHome: "\x1b[1;5H",
|
||||||
|
KeyCtrlEnd: "\x1b[1;5F",
|
||||||
|
KeyAltHome: "\x1b[1;9H",
|
||||||
|
KeyAltEnd: "\x1b[1;9F",
|
||||||
|
KeyCtrlShfHome: "\x1b[1;6H",
|
||||||
|
KeyCtrlShfEnd: "\x1b[1;6F",
|
||||||
|
KeyMetaShfHome: "\x1b[1;10H",
|
||||||
|
KeyMetaShfEnd: "\x1b[1;10F",
|
||||||
|
KeyAltShfHome: "\x1b[1;4H",
|
||||||
|
KeyAltShfEnd: "\x1b[1;4F",
|
||||||
|
KeyShfPgUp: "\x1b[5;2~",
|
||||||
|
KeyShfPgDn: "\x1b[6;2~",
|
||||||
|
})
|
||||||
|
|
||||||
|
// xterm with 256 colors
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "xterm-256color",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 256,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b[?1049h\x1b[22;0;0t",
|
||||||
|
ExitCA: "\x1b[?1049l\x1b[23;0;0t",
|
||||||
|
ShowCursor: "\x1b[?12l\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b(B\x1b[m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Italic: "\x1b[3m",
|
||||||
|
Blink: "\x1b[5m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h\x1b=",
|
||||||
|
ExitKeypad: "\x1b[?1l\x1b>",
|
||||||
|
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
|
||||||
|
SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",
|
||||||
|
SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m",
|
||||||
|
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x1b(0",
|
||||||
|
ExitAcs: "\x1b(B",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\u007f",
|
||||||
|
KeyHome: "\x1bOH",
|
||||||
|
KeyEnd: "\x1bOF",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[1;2P",
|
||||||
|
KeyF14: "\x1b[1;2Q",
|
||||||
|
KeyF15: "\x1b[1;2R",
|
||||||
|
KeyF16: "\x1b[1;2S",
|
||||||
|
KeyF17: "\x1b[15;2~",
|
||||||
|
KeyF18: "\x1b[17;2~",
|
||||||
|
KeyF19: "\x1b[18;2~",
|
||||||
|
KeyF20: "\x1b[19;2~",
|
||||||
|
KeyF21: "\x1b[20;2~",
|
||||||
|
KeyF22: "\x1b[21;2~",
|
||||||
|
KeyF23: "\x1b[23;2~",
|
||||||
|
KeyF24: "\x1b[24;2~",
|
||||||
|
KeyF25: "\x1b[1;5P",
|
||||||
|
KeyF26: "\x1b[1;5Q",
|
||||||
|
KeyF27: "\x1b[1;5R",
|
||||||
|
KeyF28: "\x1b[1;5S",
|
||||||
|
KeyF29: "\x1b[15;5~",
|
||||||
|
KeyF30: "\x1b[17;5~",
|
||||||
|
KeyF31: "\x1b[18;5~",
|
||||||
|
KeyF32: "\x1b[19;5~",
|
||||||
|
KeyF33: "\x1b[20;5~",
|
||||||
|
KeyF34: "\x1b[21;5~",
|
||||||
|
KeyF35: "\x1b[23;5~",
|
||||||
|
KeyF36: "\x1b[24;5~",
|
||||||
|
KeyF37: "\x1b[1;6P",
|
||||||
|
KeyF38: "\x1b[1;6Q",
|
||||||
|
KeyF39: "\x1b[1;6R",
|
||||||
|
KeyF40: "\x1b[1;6S",
|
||||||
|
KeyF41: "\x1b[15;6~",
|
||||||
|
KeyF42: "\x1b[17;6~",
|
||||||
|
KeyF43: "\x1b[18;6~",
|
||||||
|
KeyF44: "\x1b[19;6~",
|
||||||
|
KeyF45: "\x1b[20;6~",
|
||||||
|
KeyF46: "\x1b[21;6~",
|
||||||
|
KeyF47: "\x1b[23;6~",
|
||||||
|
KeyF48: "\x1b[24;6~",
|
||||||
|
KeyF49: "\x1b[1;3P",
|
||||||
|
KeyF50: "\x1b[1;3Q",
|
||||||
|
KeyF51: "\x1b[1;3R",
|
||||||
|
KeyF52: "\x1b[1;3S",
|
||||||
|
KeyF53: "\x1b[15;3~",
|
||||||
|
KeyF54: "\x1b[17;3~",
|
||||||
|
KeyF55: "\x1b[18;3~",
|
||||||
|
KeyF56: "\x1b[19;3~",
|
||||||
|
KeyF57: "\x1b[20;3~",
|
||||||
|
KeyF58: "\x1b[21;3~",
|
||||||
|
KeyF59: "\x1b[23;3~",
|
||||||
|
KeyF60: "\x1b[24;3~",
|
||||||
|
KeyF61: "\x1b[1;4P",
|
||||||
|
KeyF62: "\x1b[1;4Q",
|
||||||
|
KeyF63: "\x1b[1;4R",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[1;2D",
|
||||||
|
KeyShfRight: "\x1b[1;2C",
|
||||||
|
KeyShfUp: "\x1b[1;2A",
|
||||||
|
KeyShfDown: "\x1b[1;2B",
|
||||||
|
KeyCtrlLeft: "\x1b[1;5D",
|
||||||
|
KeyCtrlRight: "\x1b[1;5C",
|
||||||
|
KeyCtrlUp: "\x1b[1;5A",
|
||||||
|
KeyCtrlDown: "\x1b[1;5B",
|
||||||
|
KeyMetaLeft: "\x1b[1;9D",
|
||||||
|
KeyMetaRight: "\x1b[1;9C",
|
||||||
|
KeyMetaUp: "\x1b[1;9A",
|
||||||
|
KeyMetaDown: "\x1b[1;9B",
|
||||||
|
KeyAltLeft: "\x1b[1;3D",
|
||||||
|
KeyAltRight: "\x1b[1;3C",
|
||||||
|
KeyAltUp: "\x1b[1;3A",
|
||||||
|
KeyAltDown: "\x1b[1;3B",
|
||||||
|
KeyAltShfLeft: "\x1b[1;4D",
|
||||||
|
KeyAltShfRight: "\x1b[1;4C",
|
||||||
|
KeyAltShfUp: "\x1b[1;4A",
|
||||||
|
KeyAltShfDown: "\x1b[1;4B",
|
||||||
|
KeyMetaShfLeft: "\x1b[1;10D",
|
||||||
|
KeyMetaShfRight: "\x1b[1;10C",
|
||||||
|
KeyMetaShfUp: "\x1b[1;10A",
|
||||||
|
KeyMetaShfDown: "\x1b[1;10B",
|
||||||
|
KeyCtrlShfLeft: "\x1b[1;6D",
|
||||||
|
KeyCtrlShfRight: "\x1b[1;6C",
|
||||||
|
KeyCtrlShfUp: "\x1b[1;6A",
|
||||||
|
KeyCtrlShfDown: "\x1b[1;6B",
|
||||||
|
KeyShfHome: "\x1b[1;2H",
|
||||||
|
KeyShfEnd: "\x1b[1;2F",
|
||||||
|
KeyCtrlHome: "\x1b[1;5H",
|
||||||
|
KeyCtrlEnd: "\x1b[1;5F",
|
||||||
|
KeyAltHome: "\x1b[1;9H",
|
||||||
|
KeyAltEnd: "\x1b[1;9F",
|
||||||
|
KeyCtrlShfHome: "\x1b[1;6H",
|
||||||
|
KeyCtrlShfEnd: "\x1b[1;6F",
|
||||||
|
KeyMetaShfHome: "\x1b[1;10H",
|
||||||
|
KeyMetaShfEnd: "\x1b[1;10F",
|
||||||
|
KeyAltShfHome: "\x1b[1;4H",
|
||||||
|
KeyAltShfEnd: "\x1b[1;4F",
|
||||||
|
KeyShfPgUp: "\x1b[5;2~",
|
||||||
|
KeyShfPgDn: "\x1b[6;2~",
|
||||||
|
})
|
||||||
|
}
|
157
vendor/github.com/gdamore/tcell/terminfo/x/xterm_kitty/term.go
generated
vendored
Normal file
157
vendor/github.com/gdamore/tcell/terminfo/x/xterm_kitty/term.go
generated
vendored
Normal file
|
@ -0,0 +1,157 @@
|
||||||
|
// Generated automatically. DO NOT HAND-EDIT.
|
||||||
|
|
||||||
|
package xterm_kitty
|
||||||
|
|
||||||
|
import "github.com/gdamore/tcell/terminfo"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
|
||||||
|
// KovIdTTY
|
||||||
|
terminfo.AddTerminfo(&terminfo.Terminfo{
|
||||||
|
Name: "xterm-kitty",
|
||||||
|
Columns: 80,
|
||||||
|
Lines: 24,
|
||||||
|
Colors: 256,
|
||||||
|
Bell: "\a",
|
||||||
|
Clear: "\x1b[H\x1b[2J",
|
||||||
|
EnterCA: "\x1b[?1049h",
|
||||||
|
ExitCA: "\x1b[?1049l",
|
||||||
|
ShowCursor: "\x1b[?12l\x1b[?25h",
|
||||||
|
HideCursor: "\x1b[?25l",
|
||||||
|
AttrOff: "\x1b(B\x1b[m",
|
||||||
|
Underline: "\x1b[4m",
|
||||||
|
Bold: "\x1b[1m",
|
||||||
|
Dim: "\x1b[2m",
|
||||||
|
Reverse: "\x1b[7m",
|
||||||
|
EnterKeypad: "\x1b[?1h",
|
||||||
|
ExitKeypad: "\x1b[?1l",
|
||||||
|
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
|
||||||
|
SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",
|
||||||
|
SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m",
|
||||||
|
AltChars: "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
|
||||||
|
EnterAcs: "\x1b(0",
|
||||||
|
ExitAcs: "\x1b(B",
|
||||||
|
Mouse: "\x1b[M",
|
||||||
|
MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c",
|
||||||
|
SetCursor: "\x1b[%i%p1%d;%p2%dH",
|
||||||
|
CursorBack1: "\b",
|
||||||
|
CursorUp1: "\x1b[A",
|
||||||
|
KeyUp: "\x1bOA",
|
||||||
|
KeyDown: "\x1bOB",
|
||||||
|
KeyRight: "\x1bOC",
|
||||||
|
KeyLeft: "\x1bOD",
|
||||||
|
KeyInsert: "\x1b[2~",
|
||||||
|
KeyDelete: "\x1b[3~",
|
||||||
|
KeyBackspace: "\xff",
|
||||||
|
KeyHome: "\x1bOH",
|
||||||
|
KeyEnd: "\x1bOF",
|
||||||
|
KeyPgUp: "\x1b[5~",
|
||||||
|
KeyPgDn: "\x1b[6~",
|
||||||
|
KeyF1: "\x1bOP",
|
||||||
|
KeyF2: "\x1bOQ",
|
||||||
|
KeyF3: "\x1bOR",
|
||||||
|
KeyF4: "\x1bOS",
|
||||||
|
KeyF5: "\x1b[15~",
|
||||||
|
KeyF6: "\x1b[17~",
|
||||||
|
KeyF7: "\x1b[18~",
|
||||||
|
KeyF8: "\x1b[19~",
|
||||||
|
KeyF9: "\x1b[20~",
|
||||||
|
KeyF10: "\x1b[21~",
|
||||||
|
KeyF11: "\x1b[23~",
|
||||||
|
KeyF12: "\x1b[24~",
|
||||||
|
KeyF13: "\x1b[1;2P",
|
||||||
|
KeyF14: "\x1b[1;2Q",
|
||||||
|
KeyF15: "\x1b[1;2R",
|
||||||
|
KeyF16: "\x1b[1;2S",
|
||||||
|
KeyF17: "\x1b[15;2~",
|
||||||
|
KeyF18: "\x1b[17;2~",
|
||||||
|
KeyF19: "\x1b[18;2~",
|
||||||
|
KeyF20: "\x1b[19;2~",
|
||||||
|
KeyF21: "\x1b[20;2~",
|
||||||
|
KeyF22: "\x1b[21;2~",
|
||||||
|
KeyF23: "\x1b[23;2~",
|
||||||
|
KeyF24: "\x1b[24;2~",
|
||||||
|
KeyF25: "\x1b[1;5P",
|
||||||
|
KeyF26: "\x1b[1;5Q",
|
||||||
|
KeyF27: "\x1b[1;5R",
|
||||||
|
KeyF28: "\x1b[1;5S",
|
||||||
|
KeyF29: "\x1b[15;5~",
|
||||||
|
KeyF30: "\x1b[17;5~",
|
||||||
|
KeyF31: "\x1b[18;5~",
|
||||||
|
KeyF32: "\x1b[19;5~",
|
||||||
|
KeyF33: "\x1b[20;5~",
|
||||||
|
KeyF34: "\x1b[21;5~",
|
||||||
|
KeyF35: "\x1b[23;5~",
|
||||||
|
KeyF36: "\x1b[24;5~",
|
||||||
|
KeyF37: "\x1b[1;6P",
|
||||||
|
KeyF38: "\x1b[1;6Q",
|
||||||
|
KeyF39: "\x1b[1;6R",
|
||||||
|
KeyF40: "\x1b[1;6S",
|
||||||
|
KeyF41: "\x1b[15;6~",
|
||||||
|
KeyF42: "\x1b[17;6~",
|
||||||
|
KeyF43: "\x1b[18;6~",
|
||||||
|
KeyF44: "\x1b[19;6~",
|
||||||
|
KeyF45: "\x1b[20;6~",
|
||||||
|
KeyF46: "\x1b[21;6~",
|
||||||
|
KeyF47: "\x1b[23;6~",
|
||||||
|
KeyF48: "\x1b[24;6~",
|
||||||
|
KeyF49: "\x1b[1;3P",
|
||||||
|
KeyF50: "\x1b[1;3Q",
|
||||||
|
KeyF51: "\x1b[1;3R",
|
||||||
|
KeyF52: "\x1b[1;3S",
|
||||||
|
KeyF53: "\x1b[15;3~",
|
||||||
|
KeyF54: "\x1b[17;3~",
|
||||||
|
KeyF55: "\x1b[18;3~",
|
||||||
|
KeyF56: "\x1b[19;3~",
|
||||||
|
KeyF57: "\x1b[20;3~",
|
||||||
|
KeyF58: "\x1b[21;3~",
|
||||||
|
KeyF59: "\x1b[23;3~",
|
||||||
|
KeyF60: "\x1b[24;3~",
|
||||||
|
KeyF61: "\x1b[1;4P",
|
||||||
|
KeyF62: "\x1b[1;4Q",
|
||||||
|
KeyF63: "\x1b[1;4R",
|
||||||
|
KeyBacktab: "\x1b[Z",
|
||||||
|
KeyShfLeft: "\x1b[1;2D",
|
||||||
|
KeyShfRight: "\x1b[1;2C",
|
||||||
|
KeyShfUp: "\x1b[1;2A",
|
||||||
|
KeyShfDown: "\x1b[1;2B",
|
||||||
|
KeyCtrlLeft: "\x1b[1;5D",
|
||||||
|
KeyCtrlRight: "\x1b[1;5C",
|
||||||
|
KeyCtrlUp: "\x1b[1;5A",
|
||||||
|
KeyCtrlDown: "\x1b[1;5B",
|
||||||
|
KeyMetaLeft: "\x1b[1;9D",
|
||||||
|
KeyMetaRight: "\x1b[1;9C",
|
||||||
|
KeyMetaUp: "\x1b[1;9A",
|
||||||
|
KeyMetaDown: "\x1b[1;9B",
|
||||||
|
KeyAltLeft: "\x1b[1;3D",
|
||||||
|
KeyAltRight: "\x1b[1;3C",
|
||||||
|
KeyAltUp: "\x1b[1;3A",
|
||||||
|
KeyAltDown: "\x1b[1;3B",
|
||||||
|
KeyAltShfLeft: "\x1b[1;4D",
|
||||||
|
KeyAltShfRight: "\x1b[1;4C",
|
||||||
|
KeyAltShfUp: "\x1b[1;4A",
|
||||||
|
KeyAltShfDown: "\x1b[1;4B",
|
||||||
|
KeyMetaShfLeft: "\x1b[1;10D",
|
||||||
|
KeyMetaShfRight: "\x1b[1;10C",
|
||||||
|
KeyMetaShfUp: "\x1b[1;10A",
|
||||||
|
KeyMetaShfDown: "\x1b[1;10B",
|
||||||
|
KeyCtrlShfLeft: "\x1b[1;6D",
|
||||||
|
KeyCtrlShfRight: "\x1b[1;6C",
|
||||||
|
KeyCtrlShfUp: "\x1b[1;6A",
|
||||||
|
KeyCtrlShfDown: "\x1b[1;6B",
|
||||||
|
KeyShfHome: "\x1b[1;2H",
|
||||||
|
KeyShfEnd: "\x1b[1;2F",
|
||||||
|
KeyCtrlHome: "\x1b[1;5H",
|
||||||
|
KeyCtrlEnd: "\x1b[1;5F",
|
||||||
|
KeyAltHome: "\x1b[1;9H",
|
||||||
|
KeyAltEnd: "\x1b[1;9F",
|
||||||
|
KeyCtrlShfHome: "\x1b[1;6H",
|
||||||
|
KeyCtrlShfEnd: "\x1b[1;6F",
|
||||||
|
KeyMetaShfHome: "\x1b[1;10H",
|
||||||
|
KeyMetaShfEnd: "\x1b[1;10F",
|
||||||
|
KeyAltShfHome: "\x1b[1;4H",
|
||||||
|
KeyAltShfEnd: "\x1b[1;4F",
|
||||||
|
KeyShfPgUp: "\x1b[5;2~",
|
||||||
|
KeyShfPgDn: "\x1b[6;2~",
|
||||||
|
})
|
||||||
|
}
|
23
vendor/github.com/gdamore/tcell/terms_default.go
generated
vendored
Normal file
23
vendor/github.com/gdamore/tcell/terms_default.go
generated
vendored
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
// +build !tcell_minimal
|
||||||
|
|
||||||
|
// Copyright 2019 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
import (
|
||||||
|
// This imports the default terminal entries. To disable, use the
|
||||||
|
// tcell_minimal build tag.
|
||||||
|
_ "github.com/gdamore/tcell/terminfo/extended"
|
||||||
|
)
|
37
vendor/github.com/gdamore/tcell/terms_dynamic.go
generated
vendored
Normal file
37
vendor/github.com/gdamore/tcell/terms_dynamic.go
generated
vendored
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
// +build !tcell_minimal,!nacl,!js,!zos,!plan9,!windows,!android
|
||||||
|
|
||||||
|
// Copyright 2019 The TCell Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the license at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tcell
|
||||||
|
|
||||||
|
import (
|
||||||
|
// This imports a dynamic version of the terminal database, which
|
||||||
|
// is built using infocmp. This relies on a working installation
|
||||||
|
// of infocmp (typically supplied with ncurses). We only do this
|
||||||
|
// for systems likely to have that -- i.e. UNIX based hosts. We
|
||||||
|
// also don't support Android here, because you really don't want
|
||||||
|
// to run external programs there. Generally the android terminals
|
||||||
|
// will be automatically included anyway.
|
||||||
|
"github.com/gdamore/tcell/terminfo"
|
||||||
|
"github.com/gdamore/tcell/terminfo/dynamic"
|
||||||
|
)
|
||||||
|
|
||||||
|
func loadDynamicTerminfo(term string) (*terminfo.Terminfo, error) {
|
||||||
|
ti, _, e := dynamic.LoadTerminfo(term)
|
||||||
|
if e != nil {
|
||||||
|
return nil, e
|
||||||
|
}
|
||||||
|
return ti, nil
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue