diff --git a/Gopkg.lock b/Gopkg.lock index 9211154d..52307702 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -38,13 +38,13 @@ revision = "b23993cbb6353f0e6aa98d0ee318a34728f628b9" [[projects]] + branch = "master" name = "github.com/gdamore/tcell" packages = [ ".", "terminfo" ] - revision = "061d51a604c546b48e92253cb65190d76cecf4c6" - version = "v1.0.0" + revision = "de7e78efa4a71b3f36c7154989c529dbdf9ae623" [[projects]] name = "github.com/golang/protobuf" @@ -56,7 +56,7 @@ branch = "master" name = "github.com/google/go-github" packages = ["github"] - revision = "60d040d2dafa18fa3e86cbf22fbc3208ef9ef1e0" + revision = "60f2773bd99aa86164bc80bf370be6ba63b47dea" [[projects]] branch = "master" @@ -119,10 +119,10 @@ version = "v1.2.2" [[projects]] - branch = "master" name = "github.com/xanzy/go-gitlab" packages = ["."] - revision = "6ada444068f460636db26ca0dd66cf2aa518fa8f" + revision = "79dad8e74fd097eb2e0fd0883f1978213e88107a" + version = "v0.10.7" [[projects]] branch = "master" @@ -137,7 +137,7 @@ "context", "context/ctxhttp" ] - revision = "e514e69ffb8bc3c76a71ae40de0118d794855992" + revision = "039a4258aec0ad3c79b905677cceeab13b296a77" [[projects]] branch = "master" @@ -173,7 +173,7 @@ "googleapi/internal/uritemplates", "sheets/v4" ] - revision = "082d671a2a341aa205b22b580fa69747dcc3cdc8" + revision = "1d2d9cc0ae74226e8076e2a87e211c8fea38a160" [[projects]] name = "google.golang.org/appengine" @@ -201,6 +201,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "a7a00554f9040d7617458773eafa64b82f9502eace145152cb50eb082800e936" + inputs-digest = "04892edb6b5f0be61b391ccead307ed15899532db05a17b9e28c00ee32a34861" solver-name = "gps-cdcl" solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml index 6221a4d7..f36a5e92 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -31,11 +31,11 @@ [[constraint]] name = "github.com/gdamore/tcell" - version = "1.0.0" + branch = "master" -[[constraint]] - name = "github.com/go-test/deep" - version = "1.0.1" +#[[constraint]] + #name = "github.com/go-test/deep" + #version = "1.0.1" [[constraint]] name = "github.com/google/go-github" @@ -54,36 +54,36 @@ version = "1.4.0" [[constraint]] - branch = "master" name = "github.com/olebedev/config" + branch = "master" [[constraint]] name = "github.com/radovskyb/watcher" version = "1.0.2" [[constraint]] - branch = "master" name = "github.com/rivo/tview" + branch = "master" [[constraint]] - branch = "master" name = "github.com/yfronto/newrelic" + branch = "master" [[constraint]] - branch = "master" name = "golang.org/x/oauth2" + branch = "master" [[constraint]] - branch = "master" name = "google.golang.org/api" + branch = "master" [[constraint]] name = "gopkg.in/yaml.v2" version = "2.2.1" [[constraint]] - branch = "master" name = "github.com/adlio/trello" + branch = "master" [prune] go-tests = true diff --git a/vendor/github.com/gdamore/tcell/.travis.yml b/vendor/github.com/gdamore/tcell/.travis.yml index d3fc7d43..e523b890 100644 --- a/vendor/github.com/gdamore/tcell/.travis.yml +++ b/vendor/github.com/gdamore/tcell/.travis.yml @@ -5,6 +5,8 @@ go: - 1.6.x - 1.7.x - 1.8.x + - 1.9.x + - 1.10.x - master before_install: diff --git a/vendor/github.com/gdamore/tcell/README.md b/vendor/github.com/gdamore/tcell/README.md index b3fcba90..d59a3ea0 100644 --- a/vendor/github.com/gdamore/tcell/README.md +++ b/vendor/github.com/gdamore/tcell/README.md @@ -1,4 +1,4 @@ -## tcell +## tcell [![Linux Status](https://img.shields.io/travis/gdamore/tcell.svg?label=linux)](https://travis-ci.org/gdamore/tcell) [![Windows Status](https://img.shields.io/appveyor/ci/gdamore/tcell.svg?label=windows)](https://ci.appveyor.com/project/gdamore/tcell) @@ -9,12 +9,6 @@ [![codecov](https://codecov.io/gh/gdamore/tcell/branch/master/graph/badge.svg)](https://codecov.io/gh/gdamore/tcell) -> _Tcell is a work in progress (Gamma). -> Please use with caution; interfaces may change in before final release. -> That said, our confidence in Tcell's stability is increasing. If you -> would like to use it in your own application, it is recommended that -> you drop a message to garrett@damore.org before commitment._ - Package tcell provides a cell based view for text terminals, like xterm. It was inspired by termbox, but differs from termbox in some important ways. It also adds substantial functionality beyond termbox. @@ -27,32 +21,30 @@ ways. It also adds substantial functionality beyond termbox. * [gomatrix](https://github.com/gdamore/gomatrix) - converted from Termbox * [micro](https://github.com/zyedidia/micro/) - lightweight text editor with syntax-highlighting and themes * [godu](https://github.com/viktomas/godu) - simple golang utility helping to discover large files/folders. +* [tview](https://github.com/rivo/tview) - rich interactive widgets for terminal UIs +* [tui-go](https://github.com/marcusolsson/tui-go) - UI library for terminal apps +* [gomandelbrot](https://github.com/rgm3/gomandelbrot) - Mandelbrot! +* [WTF](https://github.com/senorprogrammer/wtf)- Personal information dashboard for your terminal ## Pure Go Terminfo Database First, it 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, at the slight expense -of needing cgo support for terminal initializations. (This may be corrected -when Go provides standard support for terminal handling via termio ioctls on -all POSIX platforms.) The database itself, while built using CGO, as well -as the parser for it, is implemented in Pure Go. +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 database, or hand editing of simple JSON files. +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 wider variety of systems. It relies on standard -POSIX supported function calls (on POSIX platforms) for setting terminal -modes, which leads to improved support for a broader array of platforms. -This does come at the cost of requiring your code to be able to use CGO, but -we believe that the vastly improved portability justifies this -requirement. Note that the functions called are part of the standard C -library, so there shouldn't be any additional external requirements beyond -that required for every POSIX program. +Tcell is portable to a wider 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.) For all of these systems *except Solaris/illumos*, Tcell +is pure Go, with no need for CGO. -## No async IO +## 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 @@ -63,7 +55,7 @@ to fewer surprises. ## Richer Unicode & non-Unicode support -Tcell includes enhanced support for Unicode, include wide characters and +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. @@ -75,10 +67,10 @@ drawing certain characters. ## More Function Keys -It also has richer support for a larger number of -special keys that some terminals can send. +It also has richer support for a larger number of special keys that some +terminals can send. -## Better color handling +## 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 @@ -88,22 +80,15 @@ In 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.) -Tcell maps 16 colors down to 8, for Terminals that need it. (The upper +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 +## 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. -## Why not just patch termbox-go? - -I started this project originally by submitting patches to the author of -go-termbox, but due to some fundamental differences of opinion, I thought -it might be simpler just to start from scratch. At this point, Tcell has -far exceeded the capabilities of termbox. - -## Termbox compatibility +## Termbox Compatibility A compatibility layer for termbox is provided in the compat directory. To use it, try importing "github.com/gdamore/tcell/termbox" @@ -174,18 +159,18 @@ avoiding repeated sequences or drawing the same cell on refresh updates. (Not relevent for Windows users.) The Terminfo implementation operates with two forms of database. The first -is the database.go file, which contains a number of real database entries +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 a JSON file, that contains 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. +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 database.go and the database.json) file 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 terminfo routines on the system to populate the data files. +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 @@ -227,32 +212,27 @@ and examine "physical" screen contents. ## Platforms -### Systems (Linux, FreeBSD, MacOS, Solaris, etc.) +### POSIX (Linux, FreeBSD, MacOS, Solaris, etc.) -On POSIX systems, a POSIX termios implementation with /dev/tty is required. -On a small subset of these platforms (such as Solaris/illumos), we require -cgo to run, in order to access termios. (Note that Linux and BSD systems -do not require CGO for most purposes.) +For mainstream systems with a suitably well defined system call interface +to tty settings, everything works using pure Go. -(Note: CGO support is required if you wish to rebuild the terminal database -from the system's native terminfo binary files. This is because we use the -system's native libterminfo to access that binary data. We probably could -eliminate that in the future by using a terminfo decompiler such as infocmp.) +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 support all the good features -(resize, mouse tracking, etc.) +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. Hopefully the Windows 10 console -is more functional in this regard. +fully compatible console implementation. ### Plan9 and Native Client (Nacl) @@ -260,3 +240,15 @@ 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 + +This software is absolutely free, but if you want to obtain commercial +support (giving prioritized access to the developer, etc. on an hourly +rate), please drop a line to info@staysail.tech + +I also welcome donations at Patreon, if you just want to feel good about +defraying development costs: https://www.patreon.com/gedamore diff --git a/vendor/github.com/gdamore/tcell/cell.go b/vendor/github.com/gdamore/tcell/cell.go index b54abcbc..496f10f7 100644 --- a/vendor/github.com/gdamore/tcell/cell.go +++ b/vendor/github.com/gdamore/tcell/cell.go @@ -48,12 +48,13 @@ func (cb *CellBuffer) SetContent(x int, y int, if x >= 0 && y >= 0 && x < cb.w && y < cb.h { c := &cb.cells[(y*cb.w)+x] + c.currComb = append([]rune{}, combc...) i := 0 - for i < len(combc) { - r := combc[i] + for i < len(c.currComb) { + r := c.currComb[i] if runewidth.RuneWidth(r) != 0 { // not a combining character, yank it - combc = append(combc[:i-1], combc[i+1:]...) + c.currComb = append(c.currComb[:i-1], c.currComb[i+1:]...) continue } i++ @@ -63,7 +64,6 @@ func (cb *CellBuffer) SetContent(x int, y int, c.width = runewidth.RuneWidth(mainc) } c.currMain = mainc - c.currComb = combc c.currStyle = style } } diff --git a/vendor/github.com/gdamore/tcell/console_win.go b/vendor/github.com/gdamore/tcell/console_win.go index e27bf6a3..bd05fdf0 100644 --- a/vendor/github.com/gdamore/tcell/console_win.go +++ b/vendor/github.com/gdamore/tcell/console_win.go @@ -17,25 +17,25 @@ package tcell import ( + "errors" "sync" "syscall" "unicode/utf16" "unsafe" - "errors" ) type cScreen struct { - in syscall.Handle - out syscall.Handle + in syscall.Handle + out syscall.Handle cancelflag syscall.Handle - scandone chan struct{} - evch chan Event - quit chan struct{} - curx int - cury int - style Style - clear bool - fini bool + scandone chan struct{} + evch chan Event + quit chan struct{} + curx int + cury int + style Style + clear bool + fini bool w int h int @@ -117,7 +117,7 @@ var ( ) const ( - w32Infinite = ^uintptr(0) + w32Infinite = ^uintptr(0) w32WaitObject0 = uintptr(0) ) @@ -183,7 +183,7 @@ func (s *cScreen) CharacterSet() string { } func (s *cScreen) EnableMouse() { - s.setInMode(modeResizeEn | modeMouseEn) + s.setInMode(modeResizeEn | modeMouseEn | modeExtndFlg) } func (s *cScreen) DisableMouse() { @@ -530,7 +530,7 @@ func (s *cScreen) getConsoleInput() error { uintptr(pWaitObjects), uintptr(0), w32Infinite) - // WaitForMultipleObjects returns WAIT_OBJECT_0 + the index. + // WaitForMultipleObjects returns WAIT_OBJECT_0 + the index. switch rv { case w32WaitObject0: // s.cancelFlag return errors.New("cancelled") @@ -565,8 +565,14 @@ func (s *cScreen) getConsoleInput() error { if krec.ch != 0 { // synthesized key code for krec.repeat > 0 { - s.PostEvent(NewEventKey(KeyRune, rune(krec.ch), - mod2mask(krec.mod))) + // convert shift+tab to backtab + if mod2mask(krec.mod) == ModShift && krec.ch == vkTab { + s.PostEvent(NewEventKey(KeyBacktab, 0, + ModNone)) + } else { + s.PostEvent(NewEventKey(KeyRune, rune(krec.ch), + mod2mask(krec.mod))) + } krec.repeat-- } return nil @@ -920,6 +926,7 @@ func (s *cScreen) clearScreen(style Style) { } const ( + modeExtndFlg uint32 = 0x0080 modeMouseEn uint32 = 0x0010 modeResizeEn uint32 = 0x0008 modeWrapEOL uint32 = 0x0002 diff --git a/vendor/github.com/gdamore/tcell/doc.go b/vendor/github.com/gdamore/tcell/doc.go index 93ebecfd..b6719613 100644 --- a/vendor/github.com/gdamore/tcell/doc.go +++ b/vendor/github.com/gdamore/tcell/doc.go @@ -1,4 +1,4 @@ -// Copyright 2015 The TCell Authors +// 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. @@ -25,7 +25,7 @@ // 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 outupt, so that your +// 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 @@ -34,6 +34,14 @@ // 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. // diff --git a/vendor/github.com/gdamore/tcell/simulation.go b/vendor/github.com/gdamore/tcell/simulation.go index 73980239..850a7b3d 100644 --- a/vendor/github.com/gdamore/tcell/simulation.go +++ b/vendor/github.com/gdamore/tcell/simulation.go @@ -109,6 +109,7 @@ type simscreen struct { 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 @@ -369,7 +370,7 @@ func (s *simscreen) InjectMouse(x, y int, buttons ButtonMask, mod ModMask) { } func (s *simscreen) InjectKey(key Key, r rune, mod ModMask) { - ev := NewEventKey(KeyRune, r, ModNone) + ev := NewEventKey(key, r, mod) s.PostEvent(ev) } @@ -441,8 +442,10 @@ func (s *simscreen) SetSize(w, h int) { newc[(row*w)+col] = s.front[(row*s.physw)+col] } } - s.physw = w - s.physh = h + s.cursorx, s.cursory = -1, -1 + s.physw, s.physh = w, h + s.front = newc + s.back.Resize(w, h) s.Unlock() } diff --git a/vendor/github.com/gdamore/tcell/tcell.png b/vendor/github.com/gdamore/tcell/tcell.png new file mode 100644 index 00000000..24333c4a Binary files /dev/null and b/vendor/github.com/gdamore/tcell/tcell.png differ diff --git a/vendor/github.com/gdamore/tcell/tcell.svg b/vendor/github.com/gdamore/tcell/tcell.svg new file mode 100644 index 00000000..d8695d55 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/tcell.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + tcell + + diff --git a/vendor/github.com/gdamore/tcell/terminfo/README.md b/vendor/github.com/gdamore/tcell/terminfo/README.md new file mode 100644 index 00000000..b3337014 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/README.md @@ -0,0 +1,8 @@ +To run the database: + +./mkinfo -all + +You can also generate a single entry: + +./mkinfo -db + diff --git a/vendor/github.com/gdamore/tcell/terminfo/mkdatabase.sh b/vendor/github.com/gdamore/tcell/terminfo/mkdatabase.sh deleted file mode 100755 index fd968bdc..00000000 --- a/vendor/github.com/gdamore/tcell/terminfo/mkdatabase.sh +++ /dev/null @@ -1,189 +0,0 @@ -#!/bin/bash - -# Copyright 2017 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. - -# -# When called with no arguments, this shell script builds the Go database, -# which is somewhat minimal for size reasons (it only contains the most -# commonly used entries), and then builds the complete JSON database. -# -# To limit the action to only building one or more terminals, specify them -# on the command line: -# -# ./mkdatabase xterm -# -# The script will also find and update or add any terminal "aliases". -# It does not remove any old entries. -# -# To add to the set of terminals that we compile into the Go database, -# add their names to the models.txt file. -# - -# This script is not very efficient, but there isn't really a better way -# without writing code to decode the terminfo binary format directly. -# Its not worth worrying about. - -# This script also requires bash, although ksh93 should work as well, because -# we use arrays, which are not specified in POSIX. - -export LANG=C -export LC_CTYPE=C - -progress() -{ - typeset -i num=$1 - typeset -i tot=$2 - typeset -i x - typeset back - typeset s - - if (( tot < 1 )) - then - s=$(printf "[ %d ]" $num) - back="\b\b\b\b\b" - x=$num - while (( x >= 10 )) - do - back="${back}\b" - x=$(( x / 10 )) - done - - else - x=$(( num * 100 / tot )) - s=$(printf "<%3d%%>" $x) - back="\b\b\b\b\b\b" - fi - printf "%s${back}" "$s" -} - -ord() -{ - printf "%02x" "'$1'" -} - -goterms=( $(cat models.txt) ) -args=( $* ) -if (( ${#args[@]} == 0 )) -then - args=( $(toe -a | cut -f1) ) -fi - -printf "Scanning terminal definitions: " -i=0 -aliases=() -models=() -for term in ${args[@]} -do - case "${term}" in - *-truecolor) - line="${term}|24-bit color" - ;; - *) - line=$(infocmp $term | head -2 | tail -1) - if [[ -z "$line" ]] - then - echo "Cannot find terminfo for $term" - exit 1 - fi - # take off the trailing comma - line=${line%,} - esac - - # grab primary name - term=${line%%|*} - all+=( ${term} ) - - # should this be in our go terminals? - for model in ${goterms[@]} - do - if [[ "${model}" == "${term}" ]] - then - models+=( ${term} ) - fi - done - - # chop off primary name - line=${line#${term}} - line=${line#|} - # chop off description - line=${line%|*} - while [[ "$line" != "" ]] - do - a=${line%%|*} - aliases+=( ${a}=${term} ) - line=${line#$a} - line=${line#|} - done - i=$(( i + 1 )) - progress $i ${#args[@]} -done -echo -# make sure we have mkinfo -printf "Building mkinfo: " -go build mkinfo.go -echo "done." - -# Build all the go database files for the "interesting" terminals". -printf "Building Go database: " -i=0 -for model in ${models[@]} -do - safe=$(echo $model | tr - _) - file=term_${safe}.go - ./mkinfo -go $file $model - go fmt ${file} >/dev/null - i=$(( i + 1 )) - progress $i ${#models[@]} -done -echo - -printf "Building JSON database: " - -# The JSON files are located for each terminal in a file with the -# terminal name, in the following fashion "database/x/xterm.json - -i=0 -for model in ${all[@]} -do - letter=$(ord ${model:0:1}) - dir=database/${letter} - file=${dir}/${model}.gz - mkdir -p ${dir} - ./mkinfo -nofatal -quiet -gzip -json ${file} ${model} - i=$(( i + 1 )) - progress $i ${#all[@]} -done -echo - -printf "Building JSON aliases: " -i=0 -for model in ${aliases[@]} -do - canon=${model#*=} - model=${model%=*} - letter=$(ord ${model:0:1}) - cletter=$(ord ${canon:0:1}) - dir=database/${letter} - file=${dir}/${model} - if [[ -f database/${cletter}/${canon}.gz ]] - then - [[ -d ${dir} ]] || mkdir -p ${dir} - # Generally speaking the aliases are better uncompressed - ./mkinfo -nofatal -quiet -json ${file} ${model} - fi - i=$(( i + 1 )) - progress $i ${#aliases[@]} -done -echo diff --git a/vendor/github.com/gdamore/tcell/terminfo/mkinfo.go b/vendor/github.com/gdamore/tcell/terminfo/mkinfo.go index ba85330c..50d70f74 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/mkinfo.go +++ b/vendor/github.com/gdamore/tcell/terminfo/mkinfo.go @@ -1,6 +1,6 @@ // +build ignore -// Copyright 2017 The TCell Authors +// 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. @@ -22,6 +22,8 @@ // // mkinfo [-init] [-go file.go] [-json file.json] [-quiet] [-nofatal] [...] // +// -all scan terminfo to determine database entries to use +// -db generate database entries (database/*), implied for -all // -gzip specifies output should be compressed (json only) // -go specifies Go output into the named file. Use - for stdout. // -json specifies JSON output in the named file. Use - for stdout @@ -31,8 +33,10 @@ package main import ( + "bufio" "bytes" "compress/gzip" + "crypto/sha1" "encoding/json" "errors" "flag" @@ -40,6 +44,7 @@ import ( "io" "os" "os/exec" + "path" "regexp" "strconv" "strings" @@ -74,6 +79,8 @@ const ( ESC ) +var notaddressable = 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). @@ -101,8 +108,13 @@ func unescape(s string) string { switch c { case 'E', 'e': buf.WriteByte(0x1b) - case '0': - buf.WriteByte(0) + 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': @@ -126,6 +138,25 @@ func unescape(s string) string { return (buf.String()) } +func getallterms() ([]string, error) { + out := []string{} + cmd := exec.Command("toe", "-a") + output := &bytes.Buffer{} + cmd.Stdout = output + err := cmd.Run() + if err != nil { + return nil, err + } + lines := strings.Split(output.String(), "\n") + for _, l := range lines { + fields := strings.Fields(l) + if len(fields) > 0 { + out = append(out, fields[0]) + } + } + return out, nil +} + func (tc *termcap) setupterm(name string) error { cmd := exec.Command("infocmp", "-1", name) output := &bytes.Buffer{} @@ -178,7 +209,7 @@ func (tc *termcap) setupterm(name string) error { 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 { - if u, err := strconv.ParseUint(k[1], 10, 0); err != nil { + if u, err := strconv.ParseUint(k[1], 0, 0); err != nil { return (err) } else { tc.nums[k[0]] = int(u) @@ -428,7 +459,7 @@ func getinfo(name string) (*terminfo.Terminfo, string, error) { t.Colors = 0 } if t.SetCursor == "" { - return nil, "", errors.New("terminal not cursor addressable") + return nil, "", notaddressable } // For padding, we lookup the pad char. If that isn't present, @@ -672,13 +703,135 @@ func dotGoInfo(w io.Writer, t *terminfo.Terminfo, desc string) { fmt.Fprintln(w, "}") } +var packname = "terminfo" + +func dotGoFile(fname string, term *terminfo.Terminfo, desc string, makeDir bool) error { + w := os.Stdout + var e error + if fname != "-" && fname != "" { + if makeDir { + dname := path.Dir(fname) + _ = os.Mkdir(dname, 0777) + } + if w, e = os.Create(fname); e != nil { + return e + } + } + dotGoHeader(w, packname) + dotGoInfo(w, term, desc) + dotGoTrailer(w) + if w != os.Stdout { + w.Close() + } + cmd := exec.Command("go", "fmt", fname) + cmd.Run() + return nil +} + +func dotGzFile(fname string, term *terminfo.Terminfo, makeDir bool) error { + + var w io.WriteCloser = os.Stdout + var e error + if fname != "-" && fname != "" { + if makeDir { + dname := path.Dir(fname) + _ = os.Mkdir(dname, 0777) + } + if w, e = os.Create(fname); e != nil { + return e + } + } + + w = gzip.NewWriter(w) + + js, e := json.Marshal(term) + fmt.Fprintln(w, string(js)) + + if w != os.Stdout { + w.Close() + } + return nil +} + +func jsonFile(fname string, term *terminfo.Terminfo, makeDir bool) error { + w := os.Stdout + var e error + if fname != "-" && fname != "" { + if makeDir { + dname := path.Dir(fname) + _ = os.Mkdir(dname, 0777) + } + if w, e = os.Create(fname); e != nil { + return e + } + } + + js, e := json.Marshal(term) + fmt.Fprintln(w, string(js)) + + if w != os.Stdout { + w.Close() + } + return nil +} + +func dumpDatabase(terms map[string]*terminfo.Terminfo, descs map[string]string) { + + // Load models .text + mfile, e := os.Open("models.txt") + models := make(map[string]bool) + if e != nil { + fmt.Fprintf(os.Stderr, "Failed reading models.txt: %v", e) + } + scanner := bufio.NewScanner(mfile) + for scanner.Scan() { + models[scanner.Text()] = true + } + + for name, t := range terms { + + // If this is one of our builtin models, generate the GO file + if models[name] { + desc := descs[name] + safename := strings.Replace(name, "-", "_", -1) + goname := fmt.Sprintf("term_%s.go", safename) + e = dotGoFile(goname, t, desc, true) + if e != nil { + fmt.Fprintf(os.Stderr, "Failed creating %s: %v", goname, e) + os.Exit(1) + } + continue + } + + hash := fmt.Sprintf("%x", sha1.Sum([]byte(name))) + fname := fmt.Sprintf("%s.gz", hash[0:8]) + fname = path.Join("database", hash[0:2], fname) + e = dotGzFile(fname, t, true) + if e != nil { + fmt.Fprintf(os.Stderr, "Failed creating %s: %v", fname, e) + os.Exit(1) + } + + for _, a := range t.Aliases { + hash = fmt.Sprintf("%x", sha1.Sum([]byte(a))) + fname = path.Join("database", hash[0:2], hash[0:8]) + e = jsonFile(fname, &terminfo.Terminfo{Name: t.Name}, true) + if e != nil { + fmt.Fprintf(os.Stderr, "Failed creating %s: %v", fname, e) + os.Exit(1) + } + } + } +} + func main() { gofile := "" jsonfile := "" - packname := "terminfo" nofatal := false quiet := false dogzip := false + all := false + db := false flag.StringVar(&gofile, "go", "", "generate go source in named file") flag.StringVar(&jsonfile, "json", "", "generate json in named file") @@ -686,11 +839,21 @@ func main() { flag.BoolVar(&nofatal, "nofatal", false, "errors are not fatal") flag.BoolVar(&quiet, "quiet", false, "suppress error messages") flag.BoolVar(&dogzip, "gzip", false, "compress json output") + flag.BoolVar(&all, "all", false, "load all terminals from terminfo") + flag.BoolVar(&db, "db", false, "generate json db file in place") flag.Parse() var e error - js := []byte{} args := flag.Args() + if all { + db = true // implied + allterms, e := getallterms() + if e != nil { + fmt.Fprintf(os.Stderr, "Failed: %v", e) + os.Exit(1) + } + args = append(args, allterms...) + } if len(args) == 0 { args = []string{os.Getenv("TERM")} } @@ -700,6 +863,9 @@ func main() { for _, term := range args { if t, desc, e := getinfo(term); e != nil { + if all && e == notaddressable { + continue + } if !quiet { fmt.Fprintf(os.Stderr, "Failed loading %s: %v\n", term, e) @@ -717,53 +883,33 @@ func main() { // No data. os.Exit(0) } - if gofile != "" { - w := os.Stdout - if gofile != "-" { - if w, e = os.Create(gofile); e != nil { - fmt.Fprintf(os.Stderr, "Failed: %v", e) - os.Exit(1) - } - } - dotGoHeader(w, packname) + + if db { + dumpDatabase(tdata, descs) + } else if gofile != "" { for term, t := range tdata { if t.Name == term { - dotGoInfo(w, t, descs[term]) + e = dotGoFile(gofile, t, descs[term], false) + if e != nil { + fmt.Fprintf(os.Stderr, "Failed %s: %v", gofile, e) + os.Exit(1) + } } } - dotGoTrailer(w) - if w != os.Stdout { - w.Close() - } + } else { - o := os.Stdout - if jsonfile != "-" && jsonfile != "" { - if o, e = os.Create(jsonfile); e != nil { - fmt.Fprintf(os.Stderr, "Failed: %v", e) + for _, t := range tdata { + if dogzip { + if e = dotGzFile(jsonfile, t, false); e != nil { + fmt.Fprintf(os.Stderr, "Failed %s: %v", gofile, e) + os.Exit(1) + } + } else { + if e = jsonFile(jsonfile, t, false); e != nil { + fmt.Fprintf(os.Stderr, "Failed %s: %v", gofile, e) + os.Exit(1) + } } } - var w io.WriteCloser - w = o - if dogzip { - w = gzip.NewWriter(o) - } - for _, term := range args { - if t := tdata[term]; t != nil { - js, e = json.Marshal(t) - fmt.Fprintln(w, string(js)) - } - // arguably if there is more than one term, this - // should be a javascript array, but that's not how - // we load it. We marshal objects one at a time from - // the file. - } - if e != nil { - fmt.Fprintf(os.Stderr, "Failed: %v", e) - os.Exit(1) - } - w.Close() - if w != o { - o.Close() - } } } diff --git a/vendor/github.com/gdamore/tcell/terminfo/models.txt b/vendor/github.com/gdamore/tcell/terminfo/models.txt index ac0676d6..718eb9bc 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/models.txt +++ b/vendor/github.com/gdamore/tcell/terminfo/models.txt @@ -8,8 +8,6 @@ cygwin d200 d210 dtterm -Eterm -Eterm-256color eterm gnome gnome-256color diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_Eterm.go b/vendor/github.com/gdamore/tcell/terminfo/term_Eterm.go deleted file mode 100644 index 9290e32b..00000000 --- a/vendor/github.com/gdamore/tcell/terminfo/term_Eterm.go +++ /dev/null @@ -1,24 +0,0 @@ -// Generated automatically. DO NOT HAND-EDIT. - -package terminfo - -func init() { - // gnu emacs term.el terminal emulation - AddTerminfo(&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", - }) -} diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_Eterm_256color.go b/vendor/github.com/gdamore/tcell/terminfo/term_Eterm_256color.go deleted file mode 100644 index af2f5ff1..00000000 --- a/vendor/github.com/gdamore/tcell/terminfo/term_Eterm_256color.go +++ /dev/null @@ -1,105 +0,0 @@ -// Generated automatically. DO NOT HAND-EDIT. - -package terminfo - -func init() { - // Eterm with xterm 256-colors - AddTerminfo(&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\x0017", - 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: "\b", - 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^", - }) -} diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_adm3a.go b/vendor/github.com/gdamore/tcell/terminfo/term_adm3a.go index dc57809e..d8709dac 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_adm3a.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_adm3a.go @@ -9,7 +9,7 @@ func init() { Columns: 80, Lines: 24, Bell: "\a", - Clear: "\x0032$<1/>", + Clear: "\x1a$<1/>", PadChar: "\x00", SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c", CursorBack1: "\b", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_ansi.go b/vendor/github.com/gdamore/tcell/terminfo/term_ansi.go index 52a68ea4..a7909931 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_ansi.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_ansi.go @@ -20,7 +20,7 @@ func init() { SetBg: "\x1b[4%p1%dm", SetFgBg: "\x1b[3%p1%d;4%p2%dm", PadChar: "\x00", - AltChars: "+\x0020,\x0021-\x0030.\x190333`\x0004a261f370g361h260j331k277l332m300n305o~p304q304r304s_t303u264v301w302x263y363z362{343|330}234~376", + 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", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_aterm.go b/vendor/github.com/gdamore/tcell/terminfo/term_aterm.go index 94daaafa..77177a22 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_aterm.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_aterm.go @@ -15,7 +15,7 @@ func init() { ExitCA: "\x1b[2J\x1b[?47l\x1b8", ShowCursor: "\x1b[?25h", HideCursor: "\x1b[?25l", - AttrOff: "\x1b[m\x0017", + AttrOff: "\x1b[m\x0f", Underline: "\x1b[4m", Bold: "\x1b[1m", Blink: "\x1b[5m", @@ -41,7 +41,7 @@ func init() { KeyLeft: "\x1b[D", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "177", + KeyBackspace: "\u007f", KeyHome: "\x1b[7~", KeyEnd: "\x1b[8~", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_bsdos_pc.go b/vendor/github.com/gdamore/tcell/terminfo/term_bsdos_pc.go index 413ea649..c0561261 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_bsdos_pc.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_bsdos_pc.go @@ -20,7 +20,7 @@ func init() { SetBg: "\x1b[4%p1%dm", SetFgBg: "\x1b[3%p1%d;4%p2%dm", PadChar: "\x00", - AltChars: "+\x0020,\x0021-\x0030.\x190333`\x0004a261f370g361h260j331k277l332m300n305o~p304q304r304s_t303u264v301w302x263y363z362{343|330}234~376", + 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", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_cygwin.go b/vendor/github.com/gdamore/tcell/terminfo/term_cygwin.go index 1fdc571c..568bbe14 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_cygwin.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_cygwin.go @@ -19,7 +19,7 @@ func init() { SetBg: "\x1b[4%p1%dm", SetFgBg: "\x1b[3%p1%d;4%p2%dm", PadChar: "\x00", - AltChars: "+\x0020,\x0021-\x0030.\x190333`\x0004a261f370g361h260j331k277l332m300n305o~p304q304r304s_t303u264v301w302x263y363z362{343|330}234~376", + 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", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_d200.go b/vendor/github.com/gdamore/tcell/terminfo/term_d200.go index e8016797..611f6ee8 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_d200.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_d200.go @@ -11,14 +11,14 @@ func init() { Lines: 24, Bell: "\a", Clear: "\f", - AttrOff: "\x0017\x0025\x0035\x0036E", + AttrOff: "\x0f\x15\x1d\x1eE", Underline: "\x14", Bold: "\x1eD\x14", Dim: "\x1c", Blink: "\x0e", Reverse: "\x1eD", PadChar: "\x00", - SetCursor: "\x0020%p2%c%p1%c", + SetCursor: "\x10%p2%c%p1%c", CursorBack1: "\x19", CursorUp1: "\x17", KeyUp: "\x17", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_dtterm.go b/vendor/github.com/gdamore/tcell/terminfo/term_dtterm.go index c173d56b..9c563c50 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_dtterm.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_dtterm.go @@ -13,7 +13,7 @@ func init() { Clear: "\x1b[H\x1b[J", ShowCursor: "\x1b[?25h", HideCursor: "\x1b[?25l", - AttrOff: "\x1b[m\x0017", + AttrOff: "\x1b[m\x0f", Underline: "\x1b[4m", Bold: "\x1b[1m", Dim: "\x1b[2m", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_gnome.go b/vendor/github.com/gdamore/tcell/terminfo/term_gnome.go index 0b7b85a7..d7907f4c 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_gnome.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_gnome.go @@ -15,9 +15,10 @@ func init() { ExitCA: "\x1b[2J\x1b[?47l\x1b8", ShowCursor: "\x1b[?25h", HideCursor: "\x1b[?25l", - AttrOff: "\x1b[0m\x0017", + AttrOff: "\x1b[0m\x0f", Underline: "\x1b[4m", Bold: "\x1b[1m", + Dim: "\x1b[2m", Reverse: "\x1b[7m", EnterKeypad: "\x1b[?1h\x1b=", ExitKeypad: "\x1b[?1l\x1b>", @@ -40,7 +41,7 @@ func init() { KeyLeft: "\x1bOD", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "177", + KeyBackspace: "\u007f", KeyHome: "\x1bOH", KeyEnd: "\x1bOF", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_gnome_256color.go b/vendor/github.com/gdamore/tcell/terminfo/term_gnome_256color.go index 23834898..342699d4 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_gnome_256color.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_gnome_256color.go @@ -15,9 +15,10 @@ func init() { ExitCA: "\x1b[2J\x1b[?47l\x1b8", ShowCursor: "\x1b[?25h", HideCursor: "\x1b[?25l", - AttrOff: "\x1b[0m\x0017", + AttrOff: "\x1b[0m\x0f", Underline: "\x1b[4m", Bold: "\x1b[1m", + Dim: "\x1b[2m", Reverse: "\x1b[7m", EnterKeypad: "\x1b[?1h\x1b=", ExitKeypad: "\x1b[?1l\x1b>", @@ -40,7 +41,7 @@ func init() { KeyLeft: "\x1bOD", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "177", + KeyBackspace: "\u007f", KeyHome: "\x1bOH", KeyEnd: "\x1bOF", KeyPgUp: "\x1b[5~", @@ -57,10 +58,10 @@ func init() { KeyF10: "\x1b[21~", KeyF11: "\x1b[23~", KeyF12: "\x1b[24~", - KeyF13: "\x1bO1;2P", - KeyF14: "\x1bO1;2Q", - KeyF15: "\x1bO1;2R", - KeyF16: "\x1bO1;2S", + 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~", @@ -69,10 +70,10 @@ func init() { KeyF22: "\x1b[21;2~", KeyF23: "\x1b[23;2~", KeyF24: "\x1b[24;2~", - KeyF25: "\x1bO1;5P", - KeyF26: "\x1bO1;5Q", - KeyF27: "\x1bO1;5R", - KeyF28: "\x1bO1;5S", + 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~", @@ -81,10 +82,10 @@ func init() { KeyF34: "\x1b[21;5~", KeyF35: "\x1b[23;5~", KeyF36: "\x1b[24;5~", - KeyF37: "\x1bO1;6P", - KeyF38: "\x1bO1;6Q", - KeyF39: "\x1bO1;6R", - KeyF40: "\x1bO1;6S", + 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~", @@ -93,10 +94,10 @@ func init() { KeyF46: "\x1b[21;6~", KeyF47: "\x1b[23;6~", KeyF48: "\x1b[24;6~", - KeyF49: "\x1bO1;3P", - KeyF50: "\x1bO1;3Q", - KeyF51: "\x1bO1;3R", - KeyF52: "\x1bO1;3S", + 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~", @@ -105,9 +106,9 @@ func init() { KeyF58: "\x1b[21;3~", KeyF59: "\x1b[23;3~", KeyF60: "\x1b[24;3~", - KeyF61: "\x1bO1;4P", - KeyF62: "\x1bO1;4Q", - KeyF63: "\x1bO1;4R", + KeyF61: "\x1b[1;4P", + KeyF62: "\x1b[1;4Q", + KeyF63: "\x1b[1;4R", KeyBacktab: "\x1b[Z", KeyShfLeft: "\x1b[1;2D", KeyShfRight: "\x1b[1;2C", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_hz1500.go b/vendor/github.com/gdamore/tcell/terminfo/term_hz1500.go index 8af0eff5..34ef6efa 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_hz1500.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_hz1500.go @@ -11,7 +11,7 @@ func init() { Bell: "\a", Clear: "~\x1c", PadChar: "\x00", - SetCursor: "~\x0021%p2%p2%?%{30}%>%t%' '%+%;%'`'%+%c%p1%'`'%+%c", + SetCursor: "~\x11%p2%p2%?%{30}%>%t%' '%+%;%'`'%+%c%p1%'`'%+%c", CursorBack1: "\b", CursorUp1: "~\f", KeyUp: "~\f", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_konsole.go b/vendor/github.com/gdamore/tcell/terminfo/term_konsole.go index c2689de4..5c4e4ec4 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_konsole.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_konsole.go @@ -14,7 +14,7 @@ func init() { ExitCA: "\x1b[2J\x1b[?47l\x1b8", ShowCursor: "\x1b[?25h", HideCursor: "\x1b[?25l", - AttrOff: "\x1b[0m\x0017", + AttrOff: "\x1b[0m\x0f", Underline: "\x1b[4m", Bold: "\x1b[1m", Blink: "\x1b[5m", @@ -39,7 +39,7 @@ func init() { KeyLeft: "\x1bOD", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "177", + KeyBackspace: "\u007f", KeyHome: "\x1bOH", KeyEnd: "\x1bOF", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_konsole_256color.go b/vendor/github.com/gdamore/tcell/terminfo/term_konsole_256color.go index 7adc8ea2..cbe0314d 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_konsole_256color.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_konsole_256color.go @@ -14,7 +14,7 @@ func init() { ExitCA: "\x1b[2J\x1b[?47l\x1b8", ShowCursor: "\x1b[?25h", HideCursor: "\x1b[?25l", - AttrOff: "\x1b[0m\x0017", + AttrOff: "\x1b[0m\x0f", Underline: "\x1b[4m", Bold: "\x1b[1m", Blink: "\x1b[5m", @@ -39,7 +39,7 @@ func init() { KeyLeft: "\x1bOD", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "177", + KeyBackspace: "\u007f", KeyHome: "\x1bOH", KeyEnd: "\x1bOF", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_linux.go b/vendor/github.com/gdamore/tcell/terminfo/term_linux.go index e35a4775..a3d18720 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_linux.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_linux.go @@ -11,7 +11,7 @@ func init() { Clear: "\x1b[H\x1b[J", ShowCursor: "\x1b[?25h\x1b[?0c", HideCursor: "\x1b[?25l\x1b[?1c", - AttrOff: "\x1b[0;10m", + AttrOff: "\x1b[m\x0f", Underline: "\x1b[4m", Bold: "\x1b[1m", Dim: "\x1b[2m", @@ -21,9 +21,10 @@ func init() { SetBg: "\x1b[4%p1%dm", SetFgBg: "\x1b[3%p1%d;4%p2%dm", PadChar: "\x00", - AltChars: "+\x0020,\x0021-\x0030.\x190333`\x0004a261f370g361h260i316j331k277l332m300n305o~p304q304r304s_t303u264v301w302x263y363z362{343|330}234~376", - EnterAcs: "\x1b[11m", - ExitAcs: "\x1b[10m", + AltChars: "++,,--..00__``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}c~~", + 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", @@ -35,7 +36,7 @@ func init() { KeyLeft: "\x1b[D", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "177", + KeyBackspace: "\u007f", KeyHome: "\x1b[1~", KeyEnd: "\x1b[4~", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_pcansi.go b/vendor/github.com/gdamore/tcell/terminfo/term_pcansi.go index 055b3acf..270ee459 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_pcansi.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_pcansi.go @@ -20,7 +20,7 @@ func init() { SetBg: "\x1b[4%p1%dm", SetFgBg: "\x1b[3%p1%d;4%p2%dm", PadChar: "\x00", - AltChars: "+\x0020,\x0021-\x0030.\x190333`\x0004a261f370g361h260j331k277l332m300n305o~p304q304r304s_t303u264v301w302x263y363z362{343|330}234~376", + 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", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_rxvt.go b/vendor/github.com/gdamore/tcell/terminfo/term_rxvt.go index dab1758b..9ce8e805 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_rxvt.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_rxvt.go @@ -15,7 +15,7 @@ func init() { ExitCA: "\x1b[2J\x1b[?47l\x1b8", ShowCursor: "\x1b[?25h", HideCursor: "\x1b[?25l", - AttrOff: "\x1b[m\x0017", + AttrOff: "\x1b[m\x0f", Underline: "\x1b[4m", Bold: "\x1b[1m", Blink: "\x1b[5m", @@ -41,7 +41,7 @@ func init() { KeyLeft: "\x1b[D", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "\b", + KeyBackspace: "\u007f", KeyHome: "\x1b[7~", KeyEnd: "\x1b[8~", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_rxvt_256color.go b/vendor/github.com/gdamore/tcell/terminfo/term_rxvt_256color.go index 5aceb4ee..d2cd3108 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_rxvt_256color.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_rxvt_256color.go @@ -15,7 +15,7 @@ func init() { ExitCA: "\x1b[2J\x1b[?47l\x1b8", ShowCursor: "\x1b[?25h", HideCursor: "\x1b[?25l", - AttrOff: "\x1b[m\x0017", + AttrOff: "\x1b[m\x0f", Underline: "\x1b[4m", Bold: "\x1b[1m", Blink: "\x1b[5m", @@ -41,7 +41,7 @@ func init() { KeyLeft: "\x1b[D", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "\b", + KeyBackspace: "\u007f", KeyHome: "\x1b[7~", KeyEnd: "\x1b[8~", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_rxvt_unicode.go b/vendor/github.com/gdamore/tcell/terminfo/term_rxvt_unicode.go index 6da67b72..3aebf6b5 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_rxvt_unicode.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_rxvt_unicode.go @@ -39,7 +39,7 @@ func init() { KeyLeft: "\x1b[D", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "177", + KeyBackspace: "\u007f", KeyHome: "\x1b[7~", KeyEnd: "\x1b[8~", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_rxvt_unicode_256color.go b/vendor/github.com/gdamore/tcell/terminfo/term_rxvt_unicode_256color.go index ac87fb96..276f5808 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_rxvt_unicode_256color.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_rxvt_unicode_256color.go @@ -39,7 +39,7 @@ func init() { KeyLeft: "\x1b[D", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "177", + KeyBackspace: "\u007f", KeyHome: "\x1b[7~", KeyEnd: "\x1b[8~", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_screen.go b/vendor/github.com/gdamore/tcell/terminfo/term_screen.go index 17b6a0c8..d9dca02b 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_screen.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_screen.go @@ -15,9 +15,10 @@ func init() { ExitCA: "\x1b[?1049l", ShowCursor: "\x1b[34h\x1b[?25h", HideCursor: "\x1b[?25l", - AttrOff: "\x1b[m\x0017", + AttrOff: "\x1b[m\x0f", Underline: "\x1b[4m", Bold: "\x1b[1m", + Dim: "\x1b[2m", Blink: "\x1b[5m", Reverse: "\x1b[7m", EnterKeypad: "\x1b[?1h\x1b=", @@ -41,7 +42,7 @@ func init() { KeyLeft: "\x1bOD", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "\b", + KeyBackspace: "\u007f", KeyHome: "\x1b[1~", KeyEnd: "\x1b[4~", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_screen_256color.go b/vendor/github.com/gdamore/tcell/terminfo/term_screen_256color.go index fdc2c922..40fda226 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_screen_256color.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_screen_256color.go @@ -15,9 +15,10 @@ func init() { ExitCA: "\x1b[?1049l", ShowCursor: "\x1b[34h\x1b[?25h", HideCursor: "\x1b[?25l", - AttrOff: "\x1b[m\x0017", + AttrOff: "\x1b[m\x0f", Underline: "\x1b[4m", Bold: "\x1b[1m", + Dim: "\x1b[2m", Blink: "\x1b[5m", Reverse: "\x1b[7m", EnterKeypad: "\x1b[?1h\x1b=", @@ -41,7 +42,7 @@ func init() { KeyLeft: "\x1bOD", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "\b", + KeyBackspace: "\u007f", KeyHome: "\x1b[1~", KeyEnd: "\x1b[4~", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_st.go b/vendor/github.com/gdamore/tcell/terminfo/term_st.go index 04500529..272af39c 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_st.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_st.go @@ -3,9 +3,10 @@ package terminfo func init() { - // simpleterm + // simpleterm 0.4.1 AddTerminfo(&Terminfo{ Name: "st", + Aliases: []string{"stterm"}, Columns: 80, Lines: 24, Colors: 8, @@ -18,7 +19,6 @@ func init() { AttrOff: "\x1b[0m", Underline: "\x1b[4m", Bold: "\x1b[1m", - Dim: "\x1b[2m", Blink: "\x1b[5m", Reverse: "\x1b[7m", EnterKeypad: "\x1b[?1h\x1b=", @@ -26,7 +26,8 @@ func init() { SetFg: "\x1b[3%p1%dm", SetBg: "\x1b[4%p1%dm", SetFgBg: "\x1b[3%p1%d;4%p2%dm", - AltChars: "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + PadChar: "\x00", + AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", EnterAcs: "\x1b(0", ExitAcs: "\x1b(B", EnableAcs: "\x1b)0", @@ -41,7 +42,7 @@ func init() { KeyLeft: "\x1bOD", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "177", + KeyBackspace: "\u007f", KeyHome: "\x1b[1~", KeyEnd: "\x1b[4~", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_st_256color.go b/vendor/github.com/gdamore/tcell/terminfo/term_st_256color.go new file mode 100644 index 00000000..9b4256f3 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/term_st_256color.go @@ -0,0 +1,156 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package terminfo + +func init() { + // simpleterm with 256 colors + AddTerminfo(&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", + 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: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + 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~", + 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", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_st_meta.go b/vendor/github.com/gdamore/tcell/terminfo/term_st_meta.go index f1cfd792..1fd5f144 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_st_meta.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_st_meta.go @@ -41,7 +41,7 @@ func init() { KeyLeft: "\x1bOD", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "177", + KeyBackspace: "\u007f", KeyHome: "\x1b[1~", KeyEnd: "\x1b[4~", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_st_meta_256color.go b/vendor/github.com/gdamore/tcell/terminfo/term_st_meta_256color.go index 10909993..5f181b2a 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_st_meta_256color.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_st_meta_256color.go @@ -41,7 +41,7 @@ func init() { KeyLeft: "\x1bOD", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "177", + KeyBackspace: "\u007f", KeyHome: "\x1b[1~", KeyEnd: "\x1b[4~", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_sun.go b/vendor/github.com/gdamore/tcell/terminfo/term_sun.go index 5c0eaa49..5858b4c2 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_sun.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_sun.go @@ -21,7 +21,8 @@ func init() { KeyDown: "\x1b[B", KeyRight: "\x1b[C", KeyLeft: "\x1b[D", - KeyDelete: "177", + KeyInsert: "\x1b[247z", + KeyDelete: "\u007f", KeyBackspace: "\b", KeyHome: "\x1b[214z", KeyEnd: "\x1b[220z", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_sun_color.go b/vendor/github.com/gdamore/tcell/terminfo/term_sun_color.go index c5dd6ecc..e4ebe96b 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_sun_color.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_sun_color.go @@ -12,6 +12,7 @@ func init() { Bell: "\a", Clear: "\f", AttrOff: "\x1b[m", + Bold: "\x1b[1m", Reverse: "\x1b[7m", SetFg: "\x1b[3%p1%dm", SetBg: "\x1b[4%p1%dm", @@ -24,7 +25,8 @@ func init() { KeyDown: "\x1b[B", KeyRight: "\x1b[C", KeyLeft: "\x1b[D", - KeyDelete: "177", + KeyInsert: "\x1b[247z", + KeyDelete: "\u007f", KeyBackspace: "\b", KeyHome: "\x1b[214z", KeyEnd: "\x1b[220z", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_termite.go b/vendor/github.com/gdamore/tcell/terminfo/term_termite.go new file mode 100644 index 00000000..8e7f683c --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/term_termite.go @@ -0,0 +1,152 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package terminfo + +func init() { + // VTE-based terminal + AddTerminfo(&Terminfo{ + Name: "xterm-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", + Dim: "\x1b[2m", + 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: "\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", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_tvi950.go b/vendor/github.com/gdamore/tcell/terminfo/term_tvi950.go index b8222dc1..49d9e4ba 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_tvi950.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_tvi950.go @@ -14,7 +14,7 @@ func init() { Underline: "\x1bG8", Reverse: "\x1bG4", PadChar: "\x00", - AltChars: "b\x0011c\x0014d\re\ni\x0013", + AltChars: "b\tc\fd\re\ni\v", EnterAcs: "\x15", ExitAcs: "\x18", SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_vt100.go b/vendor/github.com/gdamore/tcell/terminfo/term_vt100.go index 47c4996b..8293cdaa 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_vt100.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_vt100.go @@ -11,7 +11,7 @@ func init() { Lines: 24, Bell: "\a", Clear: "\x1b[H\x1b[J$<50>", - AttrOff: "\x1b[m\x0017$<2>", + AttrOff: "\x1b[m\x0f$<2>", Underline: "\x1b[4m$<2>", Bold: "\x1b[1m$<2>", Blink: "\x1b[5m$<2>", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_vt102.go b/vendor/github.com/gdamore/tcell/terminfo/term_vt102.go index 0199eb61..414d36b3 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_vt102.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_vt102.go @@ -10,7 +10,7 @@ func init() { Lines: 24, Bell: "\a", Clear: "\x1b[H\x1b[J$<50>", - AttrOff: "\x1b[m\x0017$<2>", + AttrOff: "\x1b[m\x0f$<2>", Underline: "\x1b[4m$<2>", Bold: "\x1b[1m$<2>", Blink: "\x1b[5m$<2>", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_vt220.go b/vendor/github.com/gdamore/tcell/terminfo/term_vt220.go index a0a2b77a..5d0d7489 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_vt220.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_vt220.go @@ -29,6 +29,7 @@ func init() { KeyRight: "\x1b[C", KeyLeft: "\x1b[D", KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", KeyBackspace: "\b", KeyPgUp: "\x1b[5~", KeyPgDn: "\x1b[6~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_vt320.go b/vendor/github.com/gdamore/tcell/terminfo/term_vt320.go index cb4da0ae..7832e082 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_vt320.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_vt320.go @@ -33,7 +33,7 @@ func init() { KeyLeft: "\x1bOD", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "177", + KeyBackspace: "\u007f", KeyHome: "\x1b[1~", KeyPgUp: "\x1b[5~", KeyPgDn: "\x1b[6~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_vt420.go b/vendor/github.com/gdamore/tcell/terminfo/term_vt420.go index fbccd1f3..b8a4a1c2 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_vt420.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_vt420.go @@ -10,7 +10,9 @@ func init() { Lines: 24, Bell: "\a", Clear: "\x1b[H\x1b[2J$<50>", - AttrOff: "\x1b[m$<2>", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x1b(B$<2>", Underline: "\x1b[4m", Bold: "\x1b[1m$<2>", Blink: "\x1b[5m$<2>", @@ -21,6 +23,7 @@ func init() { 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", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_vt52.go b/vendor/github.com/gdamore/tcell/terminfo/term_vt52.go index a98d0fd3..2bf190b7 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_vt52.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_vt52.go @@ -11,7 +11,7 @@ func init() { Bell: "\a", Clear: "\x1bH\x1bJ", PadChar: "\x00", - AltChars: ".kffgghhompoqqss", + AltChars: "+h.k0affggolpnqprrss", EnterAcs: "\x1bF", ExitAcs: "\x1bG", SetCursor: "\x1bY%p1%' '%+%c%p2%' '%+%c", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_wy50.go b/vendor/github.com/gdamore/tcell/terminfo/term_wy50.go index 1294629c..022dda9d 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_wy50.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_wy50.go @@ -13,7 +13,7 @@ func init() { Clear: "\x1b+$<20>", ShowCursor: "\x1b`1", HideCursor: "\x1b`0", - AttrOff: "\x1b(\x1bH\x0003", + AttrOff: "\x1b(\x1bH\x03", Dim: "\x1b`7\x1b)", Reverse: "\x1b`6\x1b)", PadChar: "\x00", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_wy60.go b/vendor/github.com/gdamore/tcell/terminfo/term_wy60.go index 7427fdbf..a737bb85 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_wy60.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_wy60.go @@ -15,7 +15,7 @@ func init() { ExitCA: "\x1bw1", ShowCursor: "\x1b`1", HideCursor: "\x1b`0", - AttrOff: "\x1b(\x1bH\x0003\x1bG0\x1bcD", + AttrOff: "\x1b(\x1bH\x03\x1bG0\x1bcD", Underline: "\x1bG8", Dim: "\x1bGp", Blink: "\x1bG2", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_wy99_ansi.go b/vendor/github.com/gdamore/tcell/terminfo/term_wy99_ansi.go index 41e31c52..6bf0d69c 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_wy99_ansi.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_wy99_ansi.go @@ -12,7 +12,7 @@ func init() { Clear: "\x1b[H\x1b[J$<200>", ShowCursor: "\x1b[34h\x1b[?25h", HideCursor: "\x1b[?25l", - AttrOff: "\x1b[m\x0017\x1b[\"q", + AttrOff: "\x1b[m\x0f\x1b[\"q", Underline: "\x1b[4m", Bold: "\x1b[1m", Dim: "\x1b[2m", @@ -26,7 +26,7 @@ func init() { ExitAcs: "\x0f", EnableAcs: "\x1b)0", SetCursor: "\x1b[%i%p1%d;%p2%dH", - CursorBack1: "\x0010$<1>", + CursorBack1: "\b$<1>", CursorUp1: "\x1bM", KeyUp: "\x1bOA", KeyDown: "\x1bOB", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_wy99a_ansi.go b/vendor/github.com/gdamore/tcell/terminfo/term_wy99a_ansi.go index 6cdac0db..1d7f6f21 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_wy99a_ansi.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_wy99a_ansi.go @@ -12,7 +12,7 @@ func init() { Clear: "\x1b[H\x1b[J$<200>", ShowCursor: "\x1b[34h\x1b[?25h", HideCursor: "\x1b[?25l", - AttrOff: "\x1b[m\x0017\x1b[\"q", + AttrOff: "\x1b[m\x0f\x1b[\"q", Underline: "\x1b[4m", Bold: "\x1b[1m", Dim: "\x1b[2m", @@ -26,7 +26,7 @@ func init() { ExitAcs: "\x0f", EnableAcs: "\x1b)0", SetCursor: "\x1b[%i%p1%d;%p2%dH", - CursorBack1: "\x0010$<1>", + CursorBack1: "\b$<1>", CursorUp1: "\x1bM", KeyUp: "\x1bOA", KeyDown: "\x1bOB", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_xfce.go b/vendor/github.com/gdamore/tcell/terminfo/term_xfce.go index 3651dd70..bb39be95 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_xfce.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_xfce.go @@ -15,7 +15,7 @@ func init() { ExitCA: "\x1b[2J\x1b[?47l\x1b8", ShowCursor: "\x1b[?25h", HideCursor: "\x1b[?25l", - AttrOff: "\x1b[0m\x0017", + AttrOff: "\x1b[0m\x0f", Underline: "\x1b[4m", Bold: "\x1b[1m", Reverse: "\x1b[7m", @@ -40,7 +40,7 @@ func init() { KeyLeft: "\x1bOD", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "177", + KeyBackspace: "\u007f", KeyHome: "\x1bOH", KeyEnd: "\x1bOF", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_xnuppc.go b/vendor/github.com/gdamore/tcell/terminfo/term_xnuppc.go index d3d68820..b1dafd6b 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_xnuppc.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_xnuppc.go @@ -9,7 +9,7 @@ func init() { Aliases: []string{"darwin"}, Colors: 8, Clear: "\x1b[H\x1b[J", - AttrOff: "\x1b[m\x0017", + AttrOff: "\x1b[m", Underline: "\x1b[4m", Bold: "\x1b[1m", Reverse: "\x1b[7m", @@ -26,6 +26,6 @@ func init() { KeyDown: "\x1bOB", KeyRight: "\x1bOC", KeyLeft: "\x1bOD", - KeyBackspace: "177", + KeyBackspace: "\u007f", }) } diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_xterm.go b/vendor/github.com/gdamore/tcell/terminfo/term_xterm.go index 9cab4a20..1e4d296e 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_xterm.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_xterm.go @@ -3,9 +3,10 @@ package terminfo func init() { - // xterm terminal emulator (X Window System) + // X11 terminal emulator AddTerminfo(&Terminfo{ Name: "xterm", + Aliases: []string{"xterm-debian"}, Columns: 80, Lines: 24, Colors: 8, @@ -18,6 +19,7 @@ func init() { AttrOff: "\x1b(B\x1b[m", Underline: "\x1b[4m", Bold: "\x1b[1m", + Dim: "\x1b[2m", Blink: "\x1b[5m", Reverse: "\x1b[7m", EnterKeypad: "\x1b[?1h\x1b=", @@ -39,7 +41,7 @@ func init() { KeyLeft: "\x1bOD", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "\b", + KeyBackspace: "\u007f", KeyHome: "\x1bOH", KeyEnd: "\x1bOF", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/term_xterm_256color.go b/vendor/github.com/gdamore/tcell/terminfo/term_xterm_256color.go index d30ceeef..f95d21e8 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/term_xterm_256color.go +++ b/vendor/github.com/gdamore/tcell/terminfo/term_xterm_256color.go @@ -18,6 +18,7 @@ func init() { AttrOff: "\x1b(B\x1b[m", Underline: "\x1b[4m", Bold: "\x1b[1m", + Dim: "\x1b[2m", Blink: "\x1b[5m", Reverse: "\x1b[7m", EnterKeypad: "\x1b[?1h\x1b=", @@ -39,7 +40,7 @@ func init() { KeyLeft: "\x1bOD", KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~", - KeyBackspace: "\b", + KeyBackspace: "\u007f", KeyHome: "\x1bOH", KeyEnd: "\x1bOF", KeyPgUp: "\x1b[5~", diff --git a/vendor/github.com/gdamore/tcell/terminfo/terminfo.go b/vendor/github.com/gdamore/tcell/terminfo/terminfo.go index ea8c6d7b..881b9e01 100644 --- a/vendor/github.com/gdamore/tcell/terminfo/terminfo.go +++ b/vendor/github.com/gdamore/tcell/terminfo/terminfo.go @@ -1,4 +1,4 @@ -// Copyright 2017 The TCell Authors +// 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. @@ -17,12 +17,14 @@ package terminfo import ( "bytes" "compress/gzip" + "crypto/sha1" "encoding/json" "errors" "fmt" "io" "os" "path" + "path/filepath" "strconv" "strings" "sync" @@ -753,9 +755,23 @@ func loadFromFile(fname string, term string) (*Terminfo, error) { // LookupTerminfo attempts to find a definition for the named $TERM. // It first looks in the builtin database, which should cover just about // everyone. If it can't find one there, then it will attempt to read -// one from the JSON file located in either $TCELLDB, $HOME/.tcelldb -// or in this package's source directory as database.json). +// one from the JSON file located in either $TCELLDB, $HOME/.tcelldb, +// or as a database file. +// +// The database files are named by taking terminal name, hashing it through +// sha1, and then a subdirectory of the form database/hash[0:2]/hash[0:8] +// (with an optional .gz extension). +// +// For other local database files, we will look for the database file using +// the terminal name, so database/term[0:2]/term[0:8], again with optional +// .gz extension. func LookupTerminfo(name string) (*Terminfo, error) { + if name == "" { + // else on windows: index out of bounds + // on the name[0] reference below + return nil, ErrTermNotFound + } + dblock.Lock() t := terminfos[name] dblock.Unlock() @@ -766,38 +782,65 @@ func LookupTerminfo(name string) (*Terminfo, error) { letter := fmt.Sprintf("%02x", name[0]) gzfile := path.Join(letter, name+".gz") jsfile := path.Join(letter, name) + hash := fmt.Sprintf("%x", sha1.Sum([]byte(name))) + gzhfile := path.Join(hash[0:2], hash[0:8]+".gz") + jshfile := path.Join(hash[0:2], hash[0:8]) // Build up the search path. Old versions of tcell used a // single database file, whereas the new ones locate them // in JSON (optionally compressed) files. // - // The search path looks like: + // The search path for "xterm" (SHA1 sig e2e28a8e...) looks + // like this: // - // $TCELLDB/x/xterm.gz - // $TCELLDB/x/xterm + // $TCELLDB/78/xterm.gz + // $TCELLDB/78/xterm // $TCELLDB - // $HOME/.tcelldb/x/xterm.gz - // $HOME/.tcelldb/x/xterm + // $HOME/.tcelldb/e2/e2e28a8e.gz + // $HOME/.tcelldb/e2/e2e28a8e + // $HOME/.tcelldb/78/xterm.gz + // $HOME/.tcelldb/78/xterm // $HOME/.tcelldb - // $GOPATH/terminfo/database/x/xterm.gz - // $GOPATH/terminfo/database/x/xterm + // $GOPATH/terminfo/database/e2/e2e28a8e.gz + // $GOPATH/terminfo/database/e2/e2e28a8e + // $GOPATH/terminfo/database/78/xterm.gz + // $GOPATH/terminfo/database/78/xterm // + // Note that the legacy name lookups (78/xterm etc.) are + // provided for compatibility. We do not actually deliver + // any files with this style of naming, to avoid collisions + // on case insensitive filesystems. (*cough* mac *cough*). + + // If $GOPATH set, honor it, else assume $HOME/go just like + // modern golang does. + gopath := os.Getenv("GOPATH") + if gopath == "" { + gopath = path.Join(os.Getenv("HOME"), "go") + } if pth := os.Getenv("TCELLDB"); pth != "" { - files = append(files, path.Join(pth, gzfile)) - files = append(files, path.Join(pth, jsfile)) - files = append(files, pth) + files = append(files, + path.Join(pth, gzfile), + path.Join(pth, jsfile), + pth) } if pth := os.Getenv("HOME"); pth != "" { pth = path.Join(pth, ".tcelldb") - files = append(files, path.Join(pth, gzfile)) - files = append(files, path.Join(pth, jsfile)) - files = append(files, pth) + files = append(files, + path.Join(pth, gzhfile), + path.Join(pth, jshfile), + path.Join(pth, gzfile), + path.Join(pth, jsfile), + pth) } - for _, pth := range strings.Split(os.Getenv("GOPATH"), string(os.PathListSeparator)) { - pth = path.Join(pth, "src", "github.com", "gdamore", "tcell", "terminfo", "database") - files = append(files, path.Join(pth, gzfile)) - files = append(files, path.Join(pth, jsfile)) + for _, pth := range filepath.SplitList(gopath) { + pth = path.Join(pth, "src", "github.com", + "gdamore", "tcell", "terminfo", "database") + files = append(files, + path.Join(pth, gzhfile), + path.Join(pth, jshfile), + path.Join(pth, gzfile), + path.Join(pth, jsfile)) } for _, fname := range files { diff --git a/vendor/github.com/gdamore/tcell/tscreen.go b/vendor/github.com/gdamore/tcell/tscreen.go index 7e0d0b97..4c64e833 100644 --- a/vendor/github.com/gdamore/tcell/tscreen.go +++ b/vendor/github.com/gdamore/tcell/tscreen.go @@ -383,8 +383,10 @@ outer: } func (t *tScreen) Fini() { - ti := t.ti t.Lock() + defer t.Unlock() + + ti := t.ti t.cells.Resize(0, 0) t.TPuts(ti.ShowCursor) t.TPuts(ti.AttrOff) @@ -395,11 +397,15 @@ func (t *tScreen) Fini() { t.curstyle = Style(-1) t.clear = false t.fini = true - t.Unlock() - if t.quit != nil { + select { + case <-t.quit: + // do nothing, already closed + + default: close(t.quit) } + t.termioFini() } diff --git a/vendor/github.com/gdamore/tcell/tscreen_bsd.go b/vendor/github.com/gdamore/tcell/tscreen_bsd.go index cce510ec..86d749b7 100644 --- a/vendor/github.com/gdamore/tcell/tscreen_bsd.go +++ b/vendor/github.com/gdamore/tcell/tscreen_bsd.go @@ -1,6 +1,6 @@ -// +build darwin freebsd netbsd openbsd dragonfly +// +build freebsd netbsd openbsd dragonfly -// Copyright 2017 The TCell Authors +// 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. diff --git a/vendor/github.com/gdamore/tcell/tscreen_darwin.go b/vendor/github.com/gdamore/tcell/tscreen_darwin.go new file mode 100644 index 00000000..df51cb5f --- /dev/null +++ b/vendor/github.com/gdamore/tcell/tscreen_darwin.go @@ -0,0 +1,140 @@ +// +build darwin + +// 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 + +// The Darwin system is *almost* a real BSD system, but it suffers from +// a brain damaged TTY driver. This TTY driver does not actually +// wake up in poll() or similar calls, which means that we cannot reliably +// shut down the terminal without resorting to obscene custom C code +// and a dedicated poller thread. +// +// So instead, we do a best effort, and simply try to do the close in the +// background. Probably this will cause a leak of two goroutines and +// maybe also the file descriptor, meaning that applications on Darwin +// can't reinitialize the screen, but that's probably a very rare behavior, +// and accepting that is the best of some very poor alternative options. +// +// Maybe someday Apple will fix there tty driver, but its been broken for +// a long time (probably forever) so holding one's breath is contraindicated. + +import ( + "os" + "os/signal" + "syscall" + "unsafe" +) + +type termiosPrivate syscall.Termios + +func (t *tScreen) termioInit() error { + var e error + var newtios termiosPrivate + var fd uintptr + var tios uintptr + var ioc uintptr + t.tiosp = &termiosPrivate{} + + if t.in, e = os.OpenFile("/dev/tty", os.O_RDONLY, 0); e != nil { + goto failed + } + if t.out, e = os.OpenFile("/dev/tty", os.O_WRONLY, 0); e != nil { + goto failed + } + + tios = uintptr(unsafe.Pointer(t.tiosp)) + ioc = uintptr(syscall.TIOCGETA) + fd = uintptr(t.out.Fd()) + if _, _, e1 := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioc, tios, 0, 0, 0); e1 != 0 { + e = e1 + goto failed + } + + // On this platform (FreeBSD and family), the baud rate is stored + // directly as an integer in termios.c_ospeed. No bitmasking required. + t.baud = int(t.tiosp.Ospeed) + newtios = *t.tiosp + newtios.Iflag &^= syscall.IGNBRK | syscall.BRKINT | syscall.PARMRK | + syscall.ISTRIP | syscall.INLCR | syscall.IGNCR | + syscall.ICRNL | syscall.IXON + newtios.Oflag &^= syscall.OPOST + newtios.Lflag &^= syscall.ECHO | syscall.ECHONL | syscall.ICANON | + syscall.ISIG | syscall.IEXTEN + newtios.Cflag &^= syscall.CSIZE | syscall.PARENB + newtios.Cflag |= syscall.CS8 + + tios = uintptr(unsafe.Pointer(&newtios)) + + ioc = uintptr(syscall.TIOCSETA) + if _, _, e1 := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioc, tios, 0, 0, 0); e1 != 0 { + e = e1 + goto failed + } + + signal.Notify(t.sigwinch, syscall.SIGWINCH) + + if w, h, e := t.getWinSize(); e == nil && w != 0 && h != 0 { + t.cells.Resize(w, h) + } + + return nil + +failed: + if t.in != nil { + t.in.Close() + } + if t.out != nil { + t.out.Close() + } + return e +} + +func (t *tScreen) termioFini() { + + signal.Stop(t.sigwinch) + + <-t.indoneq + + if t.out != nil { + fd := uintptr(t.out.Fd()) + ioc := uintptr(syscall.TIOCSETAF) + tios := uintptr(unsafe.Pointer(t.tiosp)) + syscall.Syscall6(syscall.SYS_IOCTL, fd, ioc, tios, 0, 0, 0) + t.out.Close() + } + + // See above -- we background this call which might help, but + // really the tty is probably open. + + go func() { + if t.in != nil { + t.in.Close() + } + }() +} + +func (t *tScreen) getWinSize() (int, int, error) { + + fd := uintptr(t.out.Fd()) + dim := [4]uint16{} + dimp := uintptr(unsafe.Pointer(&dim)) + ioc := uintptr(syscall.TIOCGWINSZ) + if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, + fd, ioc, dimp, 0, 0, 0); err != 0 { + return -1, -1, err + } + return int(dim[1]), int(dim[0]), nil +} diff --git a/vendor/github.com/google/go-github/github/apps.go b/vendor/github.com/google/go-github/github/apps.go index c1f7f138..249a449b 100644 --- a/vendor/github.com/google/go-github/github/apps.go +++ b/vendor/github.com/google/go-github/github/apps.go @@ -126,23 +126,7 @@ func (s *AppsService) ListInstallations(ctx context.Context, opt *ListOptions) ( // // GitHub API docs: https://developer.github.com/v3/apps/#get-a-single-installation func (s *AppsService) GetInstallation(ctx context.Context, id int64) (*Installation, *Response, error) { - u := fmt.Sprintf("app/installations/%v", id) - - req, err := s.client.NewRequest("GET", u, nil) - if err != nil { - return nil, nil, err - } - - // TODO: remove custom Accept header when this API fully launches. - req.Header.Set("Accept", mediaTypeIntegrationPreview) - - i := new(Installation) - resp, err := s.client.Do(ctx, req, i) - if err != nil { - return nil, resp, err - } - - return i, resp, nil + return s.getInstallation(ctx, fmt.Sprintf("app/installations/%v", id)) } // ListUserInstallations lists installations that are accessible to the authenticated user. @@ -195,3 +179,42 @@ func (s *AppsService) CreateInstallationToken(ctx context.Context, id int64) (*I return t, resp, nil } + +// FindOrganizationInstallation finds the organization's installation information. +// +// GitHub API docs: https://developer.github.com/v3/apps/#find-organization-installation +func (s *AppsService) FindOrganizationInstallation(ctx context.Context, org string) (*Installation, *Response, error) { + return s.getInstallation(ctx, fmt.Sprintf("orgs/%v/installation", org)) +} + +// FindRepositoryInstallation finds the repository's installation information. +// +// GitHub API docs: https://developer.github.com/v3/apps/#find-repository-installation +func (s *AppsService) FindRepositoryInstallation(ctx context.Context, owner, repo string) (*Installation, *Response, error) { + return s.getInstallation(ctx, fmt.Sprintf("repos/%v/%v/installation", owner, repo)) +} + +// FindUserInstallation finds the user's installation information. +// +// GitHub API docs: https://developer.github.com/v3/apps/#find-repository-installation +func (s *AppsService) FindUserInstallation(ctx context.Context, user string) (*Installation, *Response, error) { + return s.getInstallation(ctx, fmt.Sprintf("users/%v/installation", user)) +} + +func (s *AppsService) getInstallation(ctx context.Context, url string) (*Installation, *Response, error) { + req, err := s.client.NewRequest("GET", url, nil) + if err != nil { + return nil, nil, err + } + + // TODO: remove custom Accept header when this API fully launches. + req.Header.Set("Accept", mediaTypeIntegrationPreview) + + i := new(Installation) + resp, err := s.client.Do(ctx, req, i) + if err != nil { + return nil, resp, err + } + + return i, resp, nil +} diff --git a/vendor/github.com/xanzy/go-gitlab/deployments.go b/vendor/github.com/xanzy/go-gitlab/deployments.go index a648605e..e43d1c4a 100644 --- a/vendor/github.com/xanzy/go-gitlab/deployments.go +++ b/vendor/github.com/xanzy/go-gitlab/deployments.go @@ -68,8 +68,8 @@ type Deployment struct { // https://docs.gitlab.com/ce/api/deployments.html#list-project-deployments type ListProjectDeploymentsOptions struct { ListOptions - OrderBy *OrderByValue `url:"order_by,omitempty" json:"order_by,omitempty"` - Sort *string `url:"sort,omitempty" json:"sort,omitempty"` + OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"` + Sort *string `url:"sort,omitempty" json:"sort,omitempty"` } // ListProjectDeployments gets a list of deployments in a project. diff --git a/vendor/github.com/xanzy/go-gitlab/gitlab.go b/vendor/github.com/xanzy/go-gitlab/gitlab.go index 6019d87a..65cb4198 100644 --- a/vendor/github.com/xanzy/go-gitlab/gitlab.go +++ b/vendor/github.com/xanzy/go-gitlab/gitlab.go @@ -186,19 +186,6 @@ var notificationLevelTypes = map[string]NotificationLevelValue{ "custom": CustomNotificationLevel, } -// OrderByValue represent in which order to sort the item -type OrderByValue string - -// These constants represent all valid order by values. -const ( - OrderByCreatedAt OrderByValue = "created_at" - OrderByID OrderByValue = "id" - OrderByIID OrderByValue = "iid" - OrderByRef OrderByValue = "ref" - OrderByStatus OrderByValue = "status" - OrderByUserID OrderByValue = "user_id" -) - // VisibilityValue represents a visibility level within GitLab. // // GitLab API docs: https://docs.gitlab.com/ce/api/ @@ -832,14 +819,6 @@ func NotificationLevel(v NotificationLevelValue) *NotificationLevelValue { return p } -// OrderBy is a helper routine that allocates a new OrderByValue -// to store v and returns a pointer to it. -func OrderBy(v OrderByValue) *OrderByValue { - p := new(OrderByValue) - *p = v - return p -} - // Visibility is a helper routine that allocates a new VisibilityValue // to store v and returns a pointer to it. func Visibility(v VisibilityValue) *VisibilityValue { diff --git a/vendor/github.com/xanzy/go-gitlab/pipelines.go b/vendor/github.com/xanzy/go-gitlab/pipelines.go index 0c736dd2..952d0d2c 100644 --- a/vendor/github.com/xanzy/go-gitlab/pipelines.go +++ b/vendor/github.com/xanzy/go-gitlab/pipelines.go @@ -87,7 +87,7 @@ type ListProjectPipelinesOptions struct { YamlErrors *bool `url:"yaml_errors,omitempty" json:"yaml_errors,omitempty"` Name *string `url:"name,omitempty" json:"name,omitempty"` Username *string `url:"username,omitempty" json:"username,omitempty"` - OrderBy *OrderByValue `url:"order_by,omitempty" json:"order_by,omitempty"` + OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"` Sort *string `url:"sort,omitempty" json:"sort,omitempty"` }