Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package fzf for openSUSE:Factory checked in 
at 2021-04-10 15:27:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fzf (Old)
 and      /work/SRC/openSUSE:Factory/.fzf.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fzf"

Sat Apr 10 15:27:32 2021 rev:16 rq:883885 version:0.27.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/fzf/fzf.changes  2021-03-15 10:55:09.433241421 
+0100
+++ /work/SRC/openSUSE:Factory/.fzf.new.2401/fzf.changes        2021-04-10 
15:28:34.534463030 +0200
@@ -1,0 +2,21 @@
+Thu Apr  8 12:20:29 UTC 2021 - Paolo Stivanin <i...@paolostivanin.com>
+
+- Update to 0.27.0:
+  - More border options for `--preview-window`
+    ```sh
+    fzf --preview 'cat {}' --preview-window border-left
+    fzf --preview 'cat {}' --preview-window border-left --border horizontal
+    fzf --preview 'cat {}' --preview-window top:border-bottom
+    fzf --preview 'cat {}' --preview-window top:border-horizontal
+    ```
+  - Automatically set `/dev/tty` as STDIN on execute action
+    ```sh
+    # Redirect /dev/tty to suppress "Vim: Warning: Input is not from a 
terminal"
+    # ls | fzf --bind "enter:execute(vim {} < /dev/tty)"
+
+    # "< /dev/tty" part is no longer needed
+    ls | fzf --bind "enter:execute(vim {})"
+    ```
+  - Bug fixes and improvements
+  
+-------------------------------------------------------------------

Old:
----
  0.26.0.tar.gz

New:
----
  0.27.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ fzf.spec ++++++
--- /var/tmp/diff_new_pack.RX4hGq/_old  2021-04-10 15:28:35.342463980 +0200
+++ /var/tmp/diff_new_pack.RX4hGq/_new  2021-04-10 15:28:35.346463985 +0200
@@ -17,13 +17,12 @@
 
 
 Name:           fzf
-Version:        0.26.0
+Version:        0.27.0
 Release:        0
 Summary:        A command-line fuzzy finder
 License:        MIT
 Group:          Productivity/File utilities
 URL:            https://github.com/junegunn/fzf
-# Source0:        
https://github.com/junegunn/%%{name}/archive/%%{version}.tar.gz#/%%{name}-%%{version}.tar.gz
 Source0:        https://github.com/junegunn/%{name}/archive/%{version}.tar.gz
 # Run go build && go mod vendor to get vendor/ subdirectory
 Source1:        vendor.tar.xz

++++++ 0.26.0.tar.gz -> 0.27.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/.github/FUNDING.yml 
new/fzf-0.27.0/.github/FUNDING.yml
--- old/fzf-0.26.0/.github/FUNDING.yml  1970-01-01 01:00:00.000000000 +0100
+++ new/fzf-0.27.0/.github/FUNDING.yml  2021-04-06 15:53:59.000000000 +0200
@@ -0,0 +1 @@
+custom: ["https://paypal.me/junegunn";, "https://www.buymeacoffee.com/junegunn";]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/.github/workflows/linux.yml 
new/fzf-0.27.0/.github/workflows/linux.yml
--- old/fzf-0.26.0/.github/workflows/linux.yml  2021-03-13 07:13:31.000000000 
+0100
+++ new/fzf-0.27.0/.github/workflows/linux.yml  2021-04-06 15:53:59.000000000 
+0200
@@ -12,7 +12,7 @@
     runs-on: ubuntu-latest
     strategy:
       matrix:
-        go: [1.14, 1.15]
+        go: [1.14, 1.16]
     steps:
     - uses: actions/checkout@v2
       with:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/.github/workflows/macos.yml 
new/fzf-0.27.0/.github/workflows/macos.yml
--- old/fzf-0.26.0/.github/workflows/macos.yml  2021-03-13 07:13:31.000000000 
+0100
+++ new/fzf-0.27.0/.github/workflows/macos.yml  2021-04-06 15:53:59.000000000 
+0200
@@ -12,7 +12,7 @@
     runs-on: macos-latest
     strategy:
       matrix:
-        go: [1.14, 1.15]
+        go: [1.14, 1.16]
     steps:
     - uses: actions/checkout@v2
       with:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/.goreleaser.yml 
new/fzf-0.27.0/.goreleaser.yml
--- old/fzf-0.26.0/.goreleaser.yml      2021-03-13 07:13:31.000000000 +0100
+++ new/fzf-0.27.0/.goreleaser.yml      2021-04-06 15:53:59.000000000 +0200
@@ -12,27 +12,20 @@
       - darwin
     goarch:
       - amd64
+    ldflags:
+      - "-s -w -X main.version={{ .Version }} -X main.revision={{ .ShortCommit 
}}"
+
+  - id: fzf-macos-arm
+    binary: fzf
+    goos:
+      - darwin
+    goarch:
       - arm64
     ldflags:
       - "-s -w -X main.version={{ .Version }} -X main.revision={{ .ShortCommit 
}}"
-    hooks:
-      post: |-
-        sh -c '
-        cat > /tmp/fzf-gon.hcl << EOF
-        source = ["./dist/fzf-macos_darwin_{{ .Arch }}/fzf"]
-        bundle_id = "kr.junegunn.fzf"
-        apple_id {
-          username = "junegun...@gmail.com"
-          password = "@env:AC_PASSWORD"
-        }
-        sign {
-          application_identity = "Apple Development: junegun...@gmail.com"
-        }
-        EOF
-        gon /tmp/fzf-gon.hcl
-        '
 
-  - goos:
+  - id: fzf
+    goos:
       - linux
       - windows
       - freebsd
@@ -59,6 +52,8 @@
 
 archives:
   - name_template: "{{ .ProjectName }}-{{ .Version }}-{{ .Os }}_{{ .Arch }}{{ 
if .Arm }}v{{ .Arm }}{{ end }}"
+    builds:
+      - fzf
     format: tar.gz
     format_overrides:
       - goos: windows
@@ -66,12 +61,61 @@
     files:
       - non-existent*
 
+signs:
+  - id: fzf-macos-sign
+    ids: [fzf-macos]
+    artifacts: all
+    cmd: sh
+    args:
+      - "-c"
+      - |-
+        cat > /tmp/fzf-gon-amd64.hcl << EOF
+        source = ["./dist/fzf-macos_darwin_amd64/fzf"]
+        bundle_id = "kr.junegunn.fzf"
+        apple_id {
+          username = "junegun...@gmail.com"
+          password = "@env:AC_PASSWORD"
+        }
+        sign {
+          application_identity = "Developer ID Application: Junegunn Choi 
(Y254DRW44Z)"
+        }
+        zip {
+          output_path = "./dist/fzf-{{ .Version }}-darwin_amd64.zip"
+        }
+        EOF
+        gon /tmp/fzf-gon-amd64.hcl
+
+  - id: fzf-macos-arm-sign
+    ids: [fzf-macos-arm]
+    artifacts: all
+    cmd: sh
+    args:
+      - "-c"
+      - |-
+        cat > /tmp/fzf-gon-arm64.hcl << EOF
+        source = ["./dist/fzf-macos-arm_darwin_arm64/fzf"]
+        bundle_id = "kr.junegunn.fzf"
+        apple_id {
+          username = "junegun...@gmail.com"
+          password = "@env:AC_PASSWORD"
+        }
+        sign {
+          application_identity = "Developer ID Application: Junegunn Choi 
(Y254DRW44Z)"
+        }
+        zip {
+          output_path = "./dist/fzf-{{ .Version }}-darwin_arm64.zip"
+        }
+        EOF
+        gon /tmp/fzf-gon-arm64.hcl
+
 release:
   github:
     owner: junegunn
     name: fzf
   prerelease: auto
   name_template: '{{ .Tag }}'
+  extra_files:
+    - glob: ./dist/fzf-*darwin*.zip
 
 snapshot:
   name_template: "{{ .Tag }}-devel"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/CHANGELOG.md new/fzf-0.27.0/CHANGELOG.md
--- old/fzf-0.26.0/CHANGELOG.md 2021-03-13 07:13:31.000000000 +0100
+++ new/fzf-0.27.0/CHANGELOG.md 2021-04-06 15:53:59.000000000 +0200
@@ -1,6 +1,27 @@
 CHANGELOG
 =========
 
+0.27.0
+------
+- More border options for `--preview-window`
+  ```sh
+  fzf --preview 'cat {}' --preview-window border-left
+  fzf --preview 'cat {}' --preview-window border-left --border horizontal
+  fzf --preview 'cat {}' --preview-window top:border-bottom
+  fzf --preview 'cat {}' --preview-window top:border-horizontal
+  ```
+- Automatically set `/dev/tty` as STDIN on execute action
+  ```sh
+  # Redirect /dev/tty to suppress "Vim: Warning: Input is not from a terminal"
+  # ls | fzf --bind "enter:execute(vim {} < /dev/tty)"
+
+  # "< /dev/tty" part is no longer needed
+  ls | fzf --bind "enter:execute(vim {})"
+  ```
+- Bug fixes and improvements
+- Signed and notarized macOS binaries
+  (Huge thanks to 
[BACKERS.md](https://github.com/junegunn/junegunn/blob/main/BACKERS.md)!)
+
 0.26.0
 ------
 - Added support for fixed header in preview window
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/README.md new/fzf-0.27.0/README.md
--- old/fzf-0.26.0/README.md    2021-03-13 07:13:31.000000000 +0100
+++ new/fzf-0.27.0/README.md    2021-04-06 15:53:59.000000000 +0200
@@ -572,8 +572,8 @@
 The following example uses fzf as the selector interface for ripgrep. We bound
 `reload` action to `change` event, so every time you type on fzf, the ripgrep
 process will restart with the updated query string denoted by the placeholder
-expression `{q}`. Also, note that we used `--phony` option so that fzf doesn't
-perform any secondary filtering.
+expression `{q}`. Also, note that we used `--disabled` option so that fzf 
+doesn't perform any secondary filtering.
 
 ```sh
 INITIAL_QUERY=""
@@ -615,7 +615,7 @@
 
 ```bash
 fzf --height 40% --layout reverse --info inline --border \
-    --preview 'file {}' --preview-window down:1:noborder \
+    --preview 'file {}' --preview-window up,1,border-horizontal \
     --color 
'fg:#bbccdd,fg+:#ddeeff,bg:#334455,preview-bg:#223344,border:#778899'
 ```
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/go.mod new/fzf-0.27.0/go.mod
--- old/fzf-0.26.0/go.mod       2021-03-13 07:13:31.000000000 +0100
+++ new/fzf-0.27.0/go.mod       2021-04-06 15:53:59.000000000 +0200
@@ -2,14 +2,16 @@
 
 require (
        github.com/gdamore/tcell v1.4.0
+       github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
        github.com/mattn/go-isatty v0.0.12
-       github.com/mattn/go-runewidth v0.0.9
-       github.com/mattn/go-shellwords v1.0.10
-       github.com/saracen/walker v0.1.1
-       golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897
-       golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 // indirect
-       golang.org/x/sys v0.0.0-20201026173827-119d4633e4d1
-       golang.org/x/text v0.3.3 // indirect
+       github.com/mattn/go-runewidth v0.0.12
+       github.com/mattn/go-shellwords v1.0.11
+       github.com/rivo/uniseg v0.2.0 // indirect
+       github.com/saracen/walker v0.1.2
+       golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
+       golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57
+       golang.org/x/term v0.0.0-20210317153231-de623e64d2a6
+       golang.org/x/text v0.3.6 // indirect
 )
 
 go 1.13
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/go.sum new/fzf-0.27.0/go.sum
--- old/fzf-0.26.0/go.sum       2021-03-13 07:13:31.000000000 +0100
+++ new/fzf-0.27.0/go.sum       2021-04-06 15:53:59.000000000 +0200
@@ -2,36 +2,32 @@
 github.com/gdamore/encoding v1.0.0/go.mod 
h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg=
 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.3 
h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac=
 github.com/lucasb-eyer/go-colorful v1.0.3/go.mod 
h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
+github.com/lucasb-eyer/go-colorful v1.2.0 
h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
+github.com/lucasb-eyer/go-colorful v1.2.0/go.mod 
h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
 github.com/mattn/go-isatty v0.0.12 
h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
 github.com/mattn/go-isatty v0.0.12/go.mod 
h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
 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/mattn/go-shellwords v1.0.10 
h1:Y7Xqm8piKOO3v10Thp7Z36h4FYFjt5xB//6XvOrs2Gw=
-github.com/mattn/go-shellwords v1.0.10/go.mod 
h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y=
-github.com/saracen/walker v0.1.1 
h1:Ou2QIKTWqo0QxhtuHVmtObbmhjMCEUyJ82xp0uV+MGI=
-github.com/saracen/walker v0.1.1/go.mod 
h1:0oKYMsKVhSJ+ful4p/XbjvXbMgLEkLITZaxozsl4CGE=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 
h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod 
h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897 
h1:pLI5jrR7OSLijeIDcmRxNmw2api+jEfxLoykJVice/E=
-golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 
h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod 
h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+github.com/mattn/go-runewidth v0.0.12 
h1:Y41i/hVW3Pgwr8gV+J23B9YEY0zxjptBuCWEaxmAOow=
+github.com/mattn/go-runewidth v0.0.12/go.mod 
h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
+github.com/mattn/go-shellwords v1.0.11 
h1:vCoR9VPpsk/TZFW2JwK5I9S0xdrtUq2bph6/YjEPnaw=
+github.com/mattn/go-shellwords v1.0.11/go.mod 
h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y=
+github.com/rivo/uniseg v0.1.0/go.mod 
h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
+github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
+github.com/rivo/uniseg v0.2.0/go.mod 
h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
+github.com/saracen/walker v0.1.2 
h1:/o1TxP82n8thLvmL4GpJXduYaRmJ7qXp8u9dSlV0zmo=
+github.com/saracen/walker v0.1.2/go.mod 
h1:0oKYMsKVhSJ+ful4p/XbjvXbMgLEkLITZaxozsl4CGE=
 golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 
h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck=
-golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756 
h1:9nuHUbU8dRnRRfj9KjWUVrJeoexdbeMjttk6Oh1rD10=
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c 
h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201026173827-119d4633e4d1 
h1:/DtoiOYKoQCcIFXQjz07RnWNPRCbqmSXSpgEzhC9ZHM=
-golang.org/x/sys v0.0.0-20201026173827-119d4633e4d1/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57 
h1:F5Gozwx4I1xtr/sr/8CFbb57iKi3297KFs0QDbGN60A=
+golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/term v0.0.0-20210317153231-de623e64d2a6 
h1:EC6+IGYTjPpRfv9a2b/6Puw0W+hLtAhkV1tPsXhutqs=
+golang.org/x/term v0.0.0-20210317153231-de623e64d2a6/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e 
h1:FDhOuMEY4JVRztM/gsbk+IKUQ8kj74bxZrgw87eMMVc=
+golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/install new/fzf-0.27.0/install
--- old/fzf-0.26.0/install      2021-03-13 07:13:31.000000000 +0100
+++ new/fzf-0.27.0/install      2021-04-06 15:53:59.000000000 +0200
@@ -2,7 +2,7 @@
 
 set -u
 
-version=0.26.0
+version=0.27.0
 auto_completion=
 key_bindings=
 update_config=2
@@ -168,8 +168,8 @@
 binary_available=1
 binary_error=""
 case "$archi" in
-# Darwin\ arm64)   download fzf-$version-darwin_arm64.tar.gz  ;; # TODO
-  Darwin\ x86_64)  download fzf-$version-darwin_amd64.tar.gz  ;;
+  Darwin\ arm64)   download fzf-$version-darwin_arm64.zip     ;;
+  Darwin\ x86_64)  download fzf-$version-darwin_amd64.zip     ;;
   Linux\ armv5*)   download fzf-$version-linux_armv5.tar.gz   ;;
   Linux\ armv6*)   download fzf-$version-linux_armv6.tar.gz   ;;
   Linux\ armv7*)   download fzf-$version-linux_armv7.tar.gz   ;;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/install.ps1 new/fzf-0.27.0/install.ps1
--- old/fzf-0.26.0/install.ps1  2021-03-13 07:13:31.000000000 +0100
+++ new/fzf-0.27.0/install.ps1  2021-04-06 15:53:59.000000000 +0200
@@ -1,4 +1,4 @@
-$version="0.26.0"
+$version="0.27.0"
 
 $fzf_base=Split-Path -Parent $MyInvocation.MyCommand.Definition
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/main.go new/fzf-0.27.0/main.go
--- old/fzf-0.26.0/main.go      2021-03-13 07:13:31.000000000 +0100
+++ new/fzf-0.27.0/main.go      2021-04-06 15:53:59.000000000 +0200
@@ -5,7 +5,7 @@
        "github.com/junegunn/fzf/src/protector"
 )
 
-var version string = "0.26"
+var version string = "0.27"
 var revision string = "devel"
 
 func main() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/man/man1/fzf-tmux.1 
new/fzf-0.27.0/man/man1/fzf-tmux.1
--- old/fzf-0.26.0/man/man1/fzf-tmux.1  2021-03-13 07:13:31.000000000 +0100
+++ new/fzf-0.27.0/man/man1/fzf-tmux.1  2021-04-06 15:53:59.000000000 +0200
@@ -21,7 +21,7 @@
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 ..
-.TH fzf-tmux 1 "Mar 2021" "fzf 0.26.0" "fzf-tmux - open fzf in tmux split pane"
+.TH fzf-tmux 1 "Apr 2021" "fzf 0.27.0" "fzf-tmux - open fzf in tmux split pane"
 
 .SH NAME
 fzf-tmux - open fzf in tmux split pane
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/man/man1/fzf.1 
new/fzf-0.27.0/man/man1/fzf.1
--- old/fzf-0.26.0/man/man1/fzf.1       2021-03-13 07:13:31.000000000 +0100
+++ new/fzf-0.27.0/man/man1/fzf.1       2021-04-06 15:53:59.000000000 +0200
@@ -21,7 +21,7 @@
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 ..
-.TH fzf 1 "Mar 2021" "fzf 0.26.0" "fzf - a command-line fuzzy finder"
+.TH fzf 1 "Apr 2021" "fzf 0.27.0" "fzf - a command-line fuzzy finder"
 
 .SH NAME
 fzf - a command-line fuzzy finder
@@ -203,6 +203,8 @@
 .br
 .BR right
 .br
+.BR none
+.br
 
 .TP
 .B "--no-unicode"
@@ -442,7 +444,7 @@
       done'\fR
 .RE
 .TP
-.BI "--preview-window=" 
"[POSITION][:SIZE[%]][:rounded|sharp|noborder][:[no]wrap][:[no]follow][:[no]cycle][:[no]hidden][:+SCROLL[OFFSETS][/DENOM]][:~HEADER_LINES][:default]"
+.BI "--preview-window=" 
"[POSITION][,SIZE[%]][,border-BORDER_OPT][,[no]wrap][,[no]follow][,[no]cycle][,[no]hidden][,+SCROLL[OFFSETS][/DENOM]][,~HEADER_LINES][,default]"
 
 .RS
 .B POSITION: (default: right)
@@ -477,8 +479,10 @@
 * Cyclic scrolling is enabled with \fB:cycle\fR flag.
 
 * To change the style of the border of the preview window, specify one of
-\fBrounded\fR (border with rounded edges, default), \fBsharp\fR (border with
-sharp edges), or \fBnoborder\fR (no border).
+the options for \fB--border\fR with \fBborder-\fR prefix.
+e.g. \fBborder-rounded\fR (border with rounded edges, default),
+\fBborder-sharp\fR (border with sharp edges), \fBborder-left\fR,
+\fBborder-none\fR, etc.
 
 * \fB[:+SCROLL[OFFSETS][/DENOM]]\fR determines the initial scroll offset of the
 preview window.
@@ -497,8 +501,8 @@
 .RS
 e.g.
      \fB# Non-default scroll window positions and sizes
-     fzf --preview="head {}" --preview-window=up:30%
-     fzf --preview="file {}" --preview-window=down:1
+     fzf --preview="head {}" --preview-window=up,30%
+     fzf --preview="file {}" --preview-window=down,1
 
      # Initial scroll offset is set to the line number of each line of
      # git grep output *minus* 5 lines (-5)
@@ -516,7 +520,7 @@
      git grep --line-number '' |
        fzf --delimiter : \\
            --preview 'bat --style=full --color=always --highlight-line {2} 
{1}' \\
-           --preview-window '~3:+{2}+3/2'
+           --preview-window '~3,+{2}+3/2'
 
      # Display top 3 lines as the fixed header
      fzf --preview 'bat --style=full --color=always {}' --preview-window 
'~3'\fR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/plugin/fzf.vim 
new/fzf-0.27.0/plugin/fzf.vim
--- old/fzf-0.26.0/plugin/fzf.vim       2021-03-13 07:13:31.000000000 +0100
+++ new/fzf-0.27.0/plugin/fzf.vim       2021-04-06 15:53:59.000000000 +0200
@@ -154,46 +154,79 @@
   endif
 endfunction
 
-function! s:version_requirement(val, min)
-  let val = split(a:val, '\.')
-  let min = split(a:min, '\.')
-  for idx in range(0, len(min) - 1)
-    let v = get(val, idx, 0)
-    if     v < min[idx] | return 0
-    elseif v > min[idx] | return 1
+let s:versions = {}
+function s:get_version(bin)
+  if has_key(s:versions, a:bin)
+    return s:versions[a:bin]
+  end
+  let command = a:bin . ' --version'
+  let output = systemlist(command)
+  if v:shell_error || empty(output)
+    return ''
+  endif
+  let ver = matchstr(output[-1], '[0-9.]\+')
+  let s:versions[a:bin] = ver
+  return ver
+endfunction
+
+function! s:compare_versions(a, b)
+  let a = split(a:a, '\.')
+  let b = split(a:b, '\.')
+  for idx in range(0, max([len(a), len(b)]) - 1)
+    let v1 = str2nr(get(a, idx, 0))
+    let v2 = str2nr(get(b, idx, 0))
+    if     v1 < v2 | return -1
+    elseif v1 > v2 | return 1
     endif
   endfor
-  return 1
+  return 0
+endfunction
+
+function! s:compare_binary_versions(a, b)
+  return s:compare_versions(s:get_version(a:a), s:get_version(a:b))
 endfunction
 
 let s:checked = {}
 function! fzf#exec(...)
   if !exists('s:exec')
+    let binaries = []
+    if executable('fzf')
+      call add(binaries, 'fzf')
+    endif
     if executable(s:fzf_go)
-      let s:exec = s:fzf_go
-    elseif executable('fzf')
-      let s:exec = 'fzf'
-    elseif input('fzf executable not found. Download binary? (y/n) ') =~? '^y'
-      redraw
-      call fzf#install()
-      return fzf#exec()
-    else
-      redraw
-      throw 'fzf executable not found'
+      call add(binaries, s:fzf_go)
+    endif
+
+    if empty(binaries)
+      if input('fzf executable not found. Download binary? (y/n) ') =~? '^y'
+        redraw
+        call fzf#install()
+        return fzf#exec()
+      else
+        redraw
+        throw 'fzf executable not found'
+      endif
+    elseif len(binaries) > 1
+      call sort(binaries, 's:compare_binary_versions')
     endif
+
+    let s:exec = binaries[-1]
   endif
 
   if a:0 && !has_key(s:checked, a:1)
-    let command = s:exec . ' --version'
-    let output = systemlist(command)
-    if v:shell_error || empty(output)
-      throw printf('Failed to run "%s": %s', command, output)
-    endif
-    let fzf_version = matchstr(output[-1], '[0-9.]\+')
-    if s:version_requirement(fzf_version, a:1)
+    let fzf_version = s:get_version(s:exec)
+    if empty(fzf_version)
+      let message = printf('Failed to run "%s --version"', s:exec)
+      unlet s:exec
+      throw message
+    end
+
+    if s:compare_versions(fzf_version, a:1) >= 0
       let s:checked[a:1] = 1
       return s:exec
     elseif a:0 < 2 && input(printf('You need fzf %s or above. Found: %s. 
Download binary? (y/n) ', a:1, fzf_version)) =~? '^y'
+      let s:versions = {}
+      unlet s:exec
       redraw
       call fzf#install()
       return fzf#exec(a:1, 1)
@@ -852,9 +885,6 @@
         let term_opts.curwin = 1
       endif
       let fzf.buf = term_start([&shell, &shellcmdflag, command], term_opts)
-      if exists('&termwinkey')
-        call setbufvar(fzf.buf, '&termwinkey', '<c-z>')
-      endif
       if is_popup && exists('#TerminalWinOpen')
         doautocmd <nomodeline> TerminalWinOpen
       endif
@@ -863,6 +893,9 @@
       endif
     endif
     tnoremap <buffer> <c-z> <nop>
+    if exists('&termwinkey') && (empty(&termwinkey) || &termwinkey =~? '<c-w>')
+      tnoremap <buffer> <c-w> <c-w>.
+    endif
   finally
     call s:dopopd()
   endtry
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/src/ansi.go new/fzf-0.27.0/src/ansi.go
--- old/fzf-0.26.0/src/ansi.go  2021-03-13 07:13:31.000000000 +0100
+++ new/fzf-0.27.0/src/ansi.go  2021-04-06 15:53:59.000000000 +0200
@@ -103,11 +103,11 @@
 }
 
 func matchControlSequence(s string) int {
-       // `\x1b[\\[()][0-9;]*[a-zA-Z@]`
-       //                   ^ match starting here
+       // `\x1b[\\[()][0-9;?]*[a-zA-Z@]`
+       //                    ^ match starting here
        //
        i := 2 // prefix matched in nextAnsiEscapeSequence()
-       for ; i < len(s) && (isNumeric(s[i]) || s[i] == ';'); i++ {
+       for ; i < len(s) && (isNumeric(s[i]) || s[i] == ';' || s[i] == '?'); 
i++ {
        }
        if i < len(s) {
                c := s[i]
@@ -125,7 +125,7 @@
 // nextAnsiEscapeSequence returns the ANSI escape sequence and is equivalent to
 // calling FindStringIndex() on the below regex (which was originally used):
 //
-// 
"(?:\x1b[\\[()][0-9;]*[a-zA-Z@]|\x1b][0-9];[[:print:]]+(?:\x1b\\\\|\x07)|\x1b.|[\x0e\x0f]|.\x08)"
+// 
"(?:\x1b[\\[()][0-9;?]*[a-zA-Z@]|\x1b][0-9];[[:print:]]+(?:\x1b\\\\|\x07)|\x1b.|[\x0e\x0f]|.\x08)"
 //
 func nextAnsiEscapeSequence(s string) (int, int) {
        // fast check for ANSI escape sequences
@@ -154,7 +154,7 @@
                                return i - n, i + 1
                        }
                case '\x1b':
-                       // match: `\x1b[\\[()][0-9;]*[a-zA-Z@]`
+                       // match: `\x1b[\\[()][0-9;?]*[a-zA-Z@]`
                        if i+2 < len(s) && isCtrlSeqStart(s[i+1]) {
                                if j := matchControlSequence(s[i:]); j != -1 {
                                        return i, i + j
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/src/options.go 
new/fzf-0.27.0/src/options.go
--- old/fzf-0.26.0/src/options.go       2021-03-13 07:13:31.000000000 +0100
+++ new/fzf-0.27.0/src/options.go       2021-04-06 15:53:59.000000000 +0200
@@ -58,7 +58,7 @@
     --layout=LAYOUT       Choose layout: [default|reverse|reverse-list]
     --border[=STYLE]      Draw border around the finder
                           [rounded|sharp|horizontal|vertical|
-                           top|bottom|left|right] (default: rounded)
+                           top|bottom|left|right|none] (default: rounded)
     --margin=MARGIN       Screen margin (TRBL | TB,RL | T,RL,B | T,R,B,L)
     --padding=PADDING     Padding inside border (TRBL | TB,RL | T,RL,B | 
T,R,B,L)
     --info=STYLE          Finder info style [default|inline|hidden]
@@ -81,11 +81,11 @@
   Preview
     --preview=COMMAND     Command to preview highlighted line ({})
     --preview-window=OPT  Preview window layout (default: right:50%)
-                          [up|down|left|right][:SIZE[%]]
-                          [:[no]wrap][:[no]cycle][:[no]follow][:[no]hidden]
-                          [:rounded|sharp|noborder]
-                          [:+SCROLL[OFFSETS][/DENOM]][:~HEADER_LINES]
-                          [:default]
+                          [up|down|left|right][,SIZE[%]]
+                          [,[no]wrap][,[no]cycle][,[no]follow][,[no]hidden]
+                          [,border-BORDER_OPT]
+                          [,+SCROLL[OFFSETS][/DENOM]][,~HEADER_LINES]
+                          [,default]
 
   Scripting
     -q, --query=STR       Start the finder with the given query
@@ -436,11 +436,13 @@
                return tui.BorderLeft
        case "right":
                return tui.BorderRight
+       case "none":
+               return tui.BorderNone
        default:
                if optional && str == "" {
                        return tui.BorderRounded
                }
-               errorExit("invalid border style (expected: 
rounded|sharp|horizontal|vertical|top|bottom|left|right)")
+               errorExit("invalid border style (expected: 
rounded|sharp|horizontal|vertical|top|bottom|left|right|none)")
        }
        return tui.BorderNone
 }
@@ -1076,10 +1078,11 @@
 }
 
 func parsePreviewWindow(opts *previewOpts, input string) {
-       tokens := strings.Split(input, ":")
+       delimRegex := regexp.MustCompile("[:,]") // : for backward compatibility
        sizeRegex := regexp.MustCompile("^[0-9]+%?$")
        offsetRegex := 
regexp.MustCompile(`^(\+{-?[0-9]+})?([+-][0-9]+)*(-?/[1-9][0-9]*)?$`)
        headerRegex := regexp.MustCompile("^~(0|[1-9][0-9]*)$")
+       tokens := delimRegex.Split(input, -1)
        for _, token := range tokens {
                switch token {
                case "":
@@ -1105,12 +1108,24 @@
                        opts.position = posLeft
                case "right":
                        opts.position = posRight
-               case "rounded", "border":
+               case "rounded", "border", "border-rounded":
                        opts.border = tui.BorderRounded
-               case "sharp":
+               case "sharp", "border-sharp":
                        opts.border = tui.BorderSharp
-               case "noborder":
+               case "noborder", "border-none":
                        opts.border = tui.BorderNone
+               case "border-horizontal":
+                       opts.border = tui.BorderHorizontal
+               case "border-vertical":
+                       opts.border = tui.BorderVertical
+               case "border-top":
+                       opts.border = tui.BorderTop
+               case "border-bottom":
+                       opts.border = tui.BorderBottom
+               case "border-left":
+                       opts.border = tui.BorderLeft
+               case "border-right":
+                       opts.border = tui.BorderRight
                case "follow":
                        opts.follow = true
                case "nofollow":
@@ -1368,7 +1383,7 @@
                        opts.Preview.command = ""
                case "--preview-window":
                        parsePreviewWindow(&opts.Preview,
-                               nextString(allArgs, &i, "preview window layout 
required: 
[up|down|left|right][:SIZE[%]][:rounded|sharp|noborder][:wrap][:cycle][:hidden][:+SCROLL[OFFSETS][/DENOM]][:~HEADER_LINES][:default]"))
+                               nextString(allArgs, &i, "preview window layout 
required: 
[up|down|left|right][,SIZE[%]][,border-BORDER_OPT][,wrap][,cycle][,hidden][,+SCROLL[OFFSETS][/DENOM]][,~HEADER_LINES][,default]"))
                case "--height":
                        opts.Height = parseHeight(nextString(allArgs, &i, 
"height required: HEIGHT[%]"))
                case "--min-height":
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/src/options_test.go 
new/fzf-0.27.0/src/options_test.go
--- old/fzf-0.26.0/src/options_test.go  2021-03-13 07:13:31.000000000 +0100
+++ new/fzf-0.27.0/src/options_test.go  2021-04-06 15:53:59.000000000 +0200
@@ -384,7 +384,7 @@
                opts.Preview.size.size == 50) {
                t.Error()
        }
-       opts = optsFor("--preview", "cat {}", 
"--preview-window=left:15:hidden:wrap:+{1}-/2")
+       opts = optsFor("--preview", "cat {}", 
"--preview-window=left:15,hidden,wrap:+{1}-/2")
        if !(opts.Preview.command == "cat {}" &&
                opts.Preview.hidden == true &&
                opts.Preview.wrap == true &&
@@ -394,7 +394,7 @@
                opts.Preview.size.size == 15) {
                t.Error(opts.Preview)
        }
-       opts = optsFor("--preview-window=up:15:wrap:hidden:+{1}+3-1-2/2", 
"--preview-window=down", "--preview-window=cycle")
+       opts = optsFor("--preview-window=up,15,wrap,hidden,+{1}+3-1-2/2", 
"--preview-window=down", "--preview-window=cycle")
        if !(opts.Preview.command == "" &&
                opts.Preview.hidden == true &&
                opts.Preview.wrap == true &&
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/src/terminal.go 
new/fzf-0.27.0/src/terminal.go
--- old/fzf-0.26.0/src/terminal.go      2021-03-13 07:13:31.000000000 +0100
+++ new/fzf-0.27.0/src/terminal.go      2021-04-06 15:53:59.000000000 +0200
@@ -831,16 +831,33 @@
                createPreviewWindow := func(y int, x int, w int, h int) {
                        pwidth := w
                        pheight := h
-                       if t.previewOpts.border != tui.BorderNone {
-                               previewBorder := 
tui.MakeBorderStyle(t.previewOpts.border, t.unicode)
-                               t.pborder = t.tui.NewWindow(y, x, w, h, true, 
previewBorder)
+                       var previewBorder tui.BorderStyle
+                       if t.previewOpts.border == tui.BorderNone {
+                               previewBorder = tui.MakeTransparentBorder()
+                       } else {
+                               previewBorder = 
tui.MakeBorderStyle(t.previewOpts.border, t.unicode)
+                       }
+                       t.pborder = t.tui.NewWindow(y, x, w, h, true, 
previewBorder)
+                       switch t.previewOpts.border {
+                       case tui.BorderSharp, tui.BorderRounded:
                                pwidth -= 4
                                pheight -= 2
                                x += 2
                                y += 1
-                       } else {
-                               previewBorder := tui.MakeTransparentBorder()
-                               t.pborder = t.tui.NewWindow(y, x, w, h, true, 
previewBorder)
+                       case tui.BorderLeft:
+                               pwidth -= 2
+                               x += 2
+                       case tui.BorderRight:
+                               pwidth -= 2
+                       case tui.BorderTop:
+                               pheight -= 1
+                               y += 1
+                       case tui.BorderBottom:
+                               pheight -= 1
+                       case tui.BorderHorizontal:
+                               pheight -= 2
+                               y += 1
+                       case tui.BorderVertical:
                                pwidth -= 4
                                x += 2
                        }
@@ -848,9 +865,13 @@
                }
                verticalPad := 2
                minPreviewHeight := 3
-               if t.previewOpts.border == tui.BorderNone {
+               switch t.previewOpts.border {
+               case tui.BorderNone, tui.BorderVertical, tui.BorderLeft, 
tui.BorderRight:
                        verticalPad = 0
                        minPreviewHeight = 1
+               case tui.BorderTop, tui.BorderBottom:
+                       verticalPad = 1
+                       minPreviewHeight = 2
                }
                switch t.previewOpts.position {
                case posUp:
@@ -1722,24 +1743,22 @@
        }
        command := t.replacePlaceholder(template, forcePlus, string(t.input), 
list)
        cmd := util.ExecCommand(command, false)
+       t.executing.Set(true)
        if !background {
-               cmd.Stdin = os.Stdin
+               cmd.Stdin = tui.TtyIn()
                cmd.Stdout = os.Stdout
                cmd.Stderr = os.Stderr
                t.tui.Pause(true)
-               t.executing.Set(true)
                cmd.Run()
-               t.executing.Set(false)
                t.tui.Resume(true, false)
                t.redraw()
                t.refresh()
        } else {
                t.tui.Pause(false)
-               t.executing.Set(true)
                cmd.Run()
-               t.executing.Set(false)
                t.tui.Resume(false, false)
        }
+       t.executing.Set(false)
        cleanTemporaryFiles()
 }
 
@@ -1970,6 +1989,7 @@
                                                }()
 
                                                // Goroutine 2 periodically 
requests rendering
+                                               rendered := 
util.NewAtomicBool(false)
                                                go func(version int64) {
                                                        lines := []string{}
                                                        spinner := 
makeSpinner(t.unicode)
@@ -1984,6 +2004,7 @@
                                                                                
if spinnerIndex >= 0 {
                                                                                
        spin := spinner[spinnerIndex%len(spinner)]
                                                                                
        t.reqBox.Set(reqPreviewDisplay, previewResult{version, lines, offset, 
spin})
+                                                                               
        rendered.Set(true)
                                                                                
        offset = -1
                                                                                
}
                                                                                
spinnerIndex++
@@ -2003,6 +2024,7 @@
                                                                        }
                                                                        if err 
!= nil {
                                                                                
t.reqBox.Set(reqPreviewDisplay, previewResult{version, lines, offset, ""})
+                                                                               
rendered.Set(true)
                                                                                
break Loop
                                                                        }
                                                                }
@@ -2024,7 +2046,13 @@
                                                                                
util.KillCommand(cmd)
                                                                                
t.eventBox.Set(EvtQuit, code)
                                                                        } else {
-                                                                               
timer := time.NewTimer(previewCancelWait)
+                                                                               
// We can immediately kill a long-running preview program
+                                                                               
// once we started rendering its partial output
+                                                                               
delay := previewCancelWait
+                                                                               
if rendered.Get() {
+                                                                               
        delay = 0
+                                                                               
}
+                                                                               
timer := time.NewTimer(delay)
                                                                                
select {
                                                                                
case <-timer.C:
                                                                                
        util.KillCommand(cmd)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/src/tui/light.go 
new/fzf-0.27.0/src/tui/light.go
--- old/fzf-0.26.0/src/tui/light.go     2021-03-13 07:13:31.000000000 +0100
+++ new/fzf-0.27.0/src/tui/light.go     2021-04-06 15:53:59.000000000 +0200
@@ -12,7 +12,7 @@
 
        "github.com/junegunn/fzf/src/util"
 
-       "golang.org/x/crypto/ssh/terminal"
+       "golang.org/x/term"
 )
 
 const (
@@ -74,7 +74,7 @@
        clickY        []int
        ttyin         *os.File
        buffer        []byte
-       origState     *terminal.State
+       origState     *term.State
        width         int
        height        int
        yoffset       int
@@ -693,13 +693,17 @@
 }
 
 func (w *LightWindow) drawBorderHorizontal(top, bottom bool) {
+       color := ColBorder
+       if w.preview {
+               color = ColPreviewBorder
+       }
        if top {
                w.Move(0, 0)
-               w.CPrint(ColBorder, repeat(w.border.horizontal, w.width))
+               w.CPrint(color, repeat(w.border.horizontal, w.width))
        }
        if bottom {
                w.Move(w.height-1, 0)
-               w.CPrint(ColBorder, repeat(w.border.horizontal, w.width))
+               w.CPrint(color, repeat(w.border.horizontal, w.width))
        }
 }
 
@@ -708,14 +712,18 @@
        if !left || !right {
                width++
        }
+       color := ColBorder
+       if w.preview {
+               color = ColPreviewBorder
+       }
        for y := 0; y < w.height; y++ {
                w.Move(y, 0)
                if left {
-                       w.CPrint(ColBorder, string(w.border.vertical))
+                       w.CPrint(color, string(w.border.vertical))
                }
-               w.CPrint(ColBorder, repeat(' ', width))
+               w.CPrint(color, repeat(' ', width))
                if right {
-                       w.CPrint(ColBorder, string(w.border.vertical))
+                       w.CPrint(color, string(w.border.vertical))
                }
        }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/src/tui/light_unix.go 
new/fzf-0.27.0/src/tui/light_unix.go
--- old/fzf-0.26.0/src/tui/light_unix.go        2021-03-13 07:13:31.000000000 
+0100
+++ new/fzf-0.27.0/src/tui/light_unix.go        2021-04-06 15:53:59.000000000 
+0200
@@ -10,7 +10,7 @@
        "syscall"
 
        "github.com/junegunn/fzf/src/util"
-       "golang.org/x/crypto/ssh/terminal"
+       "golang.org/x/term"
 )
 
 func IsLightRendererSupported() bool {
@@ -34,12 +34,12 @@
 
 func (r *LightRenderer) initPlatform() error {
        fd := r.fd()
-       origState, err := terminal.GetState(fd)
+       origState, err := term.GetState(fd)
        if err != nil {
                return err
        }
        r.origState = origState
-       terminal.MakeRaw(fd)
+       term.MakeRaw(fd)
        return nil
 }
 
@@ -63,15 +63,15 @@
 }
 
 func (r *LightRenderer) setupTerminal() {
-       terminal.MakeRaw(r.fd())
+       term.MakeRaw(r.fd())
 }
 
 func (r *LightRenderer) restoreTerminal() {
-       terminal.Restore(r.fd(), r.origState)
+       term.Restore(r.fd(), r.origState)
 }
 
 func (r *LightRenderer) updateTerminalSize() {
-       width, height, err := terminal.GetSize(r.fd())
+       width, height, err := term.GetSize(r.fd())
 
        if err == nil {
                r.width = width
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/src/tui/light_windows.go 
new/fzf-0.27.0/src/tui/light_windows.go
--- old/fzf-0.26.0/src/tui/light_windows.go     2021-03-13 07:13:31.000000000 
+0100
+++ new/fzf-0.27.0/src/tui/light_windows.go     2021-04-06 15:53:59.000000000 
+0200
@@ -5,11 +5,16 @@
 import (
        "os"
        "syscall"
+       "time"
 
        "github.com/junegunn/fzf/src/util"
        "golang.org/x/sys/windows"
 )
 
+const (
+       timeoutInterval = 10
+)
+
 var (
        consoleFlagsInput  = uint32(windows.ENABLE_VIRTUAL_TERMINAL_INPUT | 
windows.ENABLE_PROCESSED_INPUT | windows.ENABLE_EXTENDED_FLAGS)
        consoleFlagsOutput = uint32(windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING 
| windows.ENABLE_PROCESSED_OUTPUT | windows.DISABLE_NEWLINE_AUTO_RETURN)
@@ -60,7 +65,7 @@
 
        // channel for non-blocking reads. Buffer to make sure
        // we get the ESC sets:
-       r.ttyinChannel = make(chan byte, 12)
+       r.ttyinChannel = make(chan byte, 1024)
 
        // the following allows for non-blocking IO.
        // syscall.SetNonblock() is a NOOP under Windows.
@@ -68,9 +73,6 @@
                fd := int(r.inHandle)
                b := make([]byte, 1)
                for {
-                       // HACK: if run from PSReadline, something resets 
ConsoleMode to remove ENABLE_VIRTUAL_TERMINAL_INPUT.
-                       _ = windows.SetConsoleMode(windows.Handle(r.inHandle), 
consoleFlagsInput)
-
                        _, err := util.Read(fd, b)
                        if err == nil {
                                r.ttyinChannel <- b[0]
@@ -130,7 +132,7 @@
                select {
                case bc := <-r.ttyinChannel:
                        return int(bc), true
-               default:
+               case <-time.After(timeoutInterval * time.Millisecond):
                        return 0, false
                }
        } else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/src/tui/ttyname_unix.go 
new/fzf-0.27.0/src/tui/ttyname_unix.go
--- old/fzf-0.26.0/src/tui/ttyname_unix.go      2021-03-13 07:13:31.000000000 
+0100
+++ new/fzf-0.27.0/src/tui/ttyname_unix.go      2021-04-06 15:53:59.000000000 
+0200
@@ -4,6 +4,7 @@
 
 import (
        "io/ioutil"
+       "os"
        "syscall"
 )
 
@@ -29,3 +30,18 @@
        }
        return ""
 }
+
+// TtyIn returns terminal device to be used as STDIN, falls back to os.Stdin
+func TtyIn() *os.File {
+       in, err := os.OpenFile(consoleDevice, syscall.O_RDONLY, 0)
+       if err != nil {
+               tty := ttyname()
+               if len(tty) > 0 {
+                       if in, err := os.OpenFile(tty, syscall.O_RDONLY, 0); 
err == nil {
+                               return in
+                       }
+               }
+               return os.Stdin
+       }
+       return in
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.26.0/src/tui/ttyname_windows.go 
new/fzf-0.27.0/src/tui/ttyname_windows.go
--- old/fzf-0.26.0/src/tui/ttyname_windows.go   2021-03-13 07:13:31.000000000 
+0100
+++ new/fzf-0.27.0/src/tui/ttyname_windows.go   2021-04-06 15:53:59.000000000 
+0200
@@ -2,6 +2,13 @@
 
 package tui
 
+import "os"
+
 func ttyname() string {
        return ""
 }
+
+// TtyIn on Windows returns os.Stdin
+func TtyIn() *os.File {
+       return os.Stdin
+}

++++++ vendor.tar.xz ++++++
/work/SRC/openSUSE:Factory/fzf/vendor.tar.xz 
/work/SRC/openSUSE:Factory/.fzf.new.2401/vendor.tar.xz differ: char 1, line 1

Reply via email to