Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package fzf for openSUSE:Factory checked in 
at 2022-09-11 21:57:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fzf (Old)
 and      /work/SRC/openSUSE:Factory/.fzf.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fzf"

Sun Sep 11 21:57:35 2022 rev:25 rq:1002506 version:0.33.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/fzf/fzf.changes  2022-08-06 22:08:45.254760528 
+0200
+++ /work/SRC/openSUSE:Factory/.fzf.new.2083/fzf.changes        2022-09-11 
21:57:36.909672963 +0200
@@ -1,0 +2,25 @@
+Mon Sep  5 14:04:02 UTC 2022 - Jorik Cronenberg <jorik.cronenb...@suse.com>
+
+- Update to 0.33.0:
+  - Added --scheme=[default|path|history] option to choose scoring scheme
+    - (Experimental)
+    - We updated the scoring algorithm in 0.32.0, however we have learned that
+      this new scheme (default) is not always giving the optimal result
+    - path: Additional bonus point is only given to the the characters after
+      path separator. You might want to choose this scheme if you have many
+      files with spaces in their paths.
+    - history: No additional bonus points are given so that we give more
+      weight to the chronological ordering. This is equivalent to the scoring
+      scheme before 0.32.0. This also sets --tiebreak=index.
+
+  - ANSI color sequences with colon delimiters are now supported.
+     printf "\e[38;5;208mOption 1\e[m\nOption 2" | fzf --ansi
+     printf "\e[38:5:208mOption 1\e[m\nOption 2" | fzf --ansi
+
+  - Support border-{up,down} as the synonyms for border-{top,bottom} in
+    --preview-window
+  - Added support for ANSI strikethrough
+     printf "\e[9mdeleted" | fzf --ansi
+     fzf --color fg+:strikethrough
+
+-------------------------------------------------------------------

Old:
----
  fzf-0.32.0.tar.gz

New:
----
  fzf-0.33.0.tar.gz

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

Other differences:
------------------
++++++ fzf.spec ++++++
--- /var/tmp/diff_new_pack.qu30zH/_old  2022-09-11 21:57:37.449674483 +0200
+++ /var/tmp/diff_new_pack.qu30zH/_new  2022-09-11 21:57:37.457674505 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           fzf
-Version:        0.32.0
+Version:        0.33.0
 Release:        0
 Summary:        A command-line fuzzy finder
 License:        MIT
@@ -25,7 +25,7 @@
 URL:            https://github.com/junegunn/fzf
 Source0:        
https://github.com/junegunn/fzf/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz
 Source1:        vendor.tar.xz
-BuildRequires:  golang(API) = 1.18
+BuildRequires:  golang(API) >= 1.17
 
 %description
 fzf is an interactive Unix filter for command-line that can be used with any 
list; files,
@@ -104,7 +104,7 @@
 BUILDMOD="-buildmode=pie"
 %endif
 export RPM_OPT_FLAGS="%{optflags}"
-go build -v -x -mod=vendor $BUILDMOD -a -ldflags "-X main.revision=%{version}"
+go build -v -x -mod=vendor $BUILDMOD -a -ldflags "-s -X 
main.revision=%{version}"
 
 %install
 install -Dm755 fzf %{buildroot}%{_bindir}/fzf

++++++ fzf-0.32.0.tar.gz -> fzf-0.33.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/.github/workflows/linux.yml 
new/fzf-0.33.0/.github/workflows/linux.yml
--- old/fzf-0.32.0/.github/workflows/linux.yml  2022-08-02 14:56:14.000000000 
+0200
+++ new/fzf-0.33.0/.github/workflows/linux.yml  2022-08-29 00:23:14.000000000 
+0200
@@ -22,7 +22,7 @@
     - name: Set up Go
       uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab # v2
       with:
-        go-version: 1.18
+        go-version: 1.19
 
     - name: Setup Ruby
       uses: ruby/setup-ruby@ebaea52cb20fea395b0904125276395e37183dac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/.tool-versions 
new/fzf-0.33.0/.tool-versions
--- old/fzf-0.32.0/.tool-versions       2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/.tool-versions       2022-08-29 00:23:14.000000000 +0200
@@ -1 +1 @@
-golang 1.18
+golang 1.19
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/ADVANCED.md new/fzf-0.33.0/ADVANCED.md
--- old/fzf-0.32.0/ADVANCED.md  2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/ADVANCED.md  2022-08-29 00:23:14.000000000 +0200
@@ -1,7 +1,7 @@
 Advanced fzf examples
 ======================
 
-*(Last update: 2021/05/22)*
+*(Last update: 2022/08/25)*
 
 <!-- vim-markdown-toc GFM -->
 
@@ -496,9 +496,17 @@
 Key bindings for git objects
 ----------------------------
 
-I have [blogged](https://junegunn.kr/2016/07/fzf-git) about my fzf+git key
-bindings a few years ago. I'm going to show them here again, because they are
-seriously useful.
+Oftentimes, you want to put the identifiers of various Git object to the
+command-line. For example, it is common to write commands like these:
+
+```sh
+git checkout [SOME_COMMIT_HASH or BRANCH or TAG]
+git diff [SOME_COMMIT_HASH or BRANCH or TAG] [SOME_COMMIT_HASH or BRANCH or 
TAG]
+```
+
+[fzf-git.sh](https://github.com/junegunn/fzf-git.sh) project defines a set of
+fzf-based key bindings for Git objects. I strongly recommend that you check
+them out because they are seriously useful.
 
 ### Files listed in `git status`
 
@@ -518,9 +526,6 @@
 
 
![image](https://user-images.githubusercontent.com/700826/113473765-91692080-94a6-11eb-8d38-ed4d41f27ac1.png)
 
-
-The full source code can be found 
[here](https://gist.github.com/junegunn/8b572b8d4b5eddd8b85e5f4d40f17236).
-
 Color themes
 ------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/CHANGELOG.md new/fzf-0.33.0/CHANGELOG.md
--- old/fzf-0.32.0/CHANGELOG.md 2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/CHANGELOG.md 2022-08-29 00:23:14.000000000 +0200
@@ -1,6 +1,45 @@
 CHANGELOG
 =========
 
+0.33.0
+------
+- Added `--scheme=[default|path|history]` option to choose scoring scheme
+    - (Experimental)
+    - We updated the scoring algorithm in 0.32.0, however we have learned that
+      this new scheme (`default`) is not always giving the optimal result
+    - `path`: Additional bonus point is only given the the characters after
+      path separator. You might want to choose this scheme if you have many
+      files with spaces in their paths.
+    - `history`: No additional bonus points are given so that we give more
+      weight to the chronological ordering. This is equivalent to the scoring
+      scheme before 0.32.0. This also sets `--tiebreak=index`.
+- ANSI color sequences with colon delimiters are now supported.
+  ```sh
+  printf "\e[38;5;208mOption 1\e[m\nOption 2" | fzf --ansi
+  printf "\e[38:5:208mOption 1\e[m\nOption 2" | fzf --ansi
+  ```
+- Support `border-{up,down}` as the synonyms for `border-{top,bottom}` in
+  `--preview-window`
+- Added support for ANSI `strikethrough`
+  ```sh
+  printf "\e[9mdeleted" | fzf --ansi
+  fzf --color fg+:strikethrough
+  ```
+
+0.32.1
+------
+- Fixed incorrect ordering of `--tiebreak=chunk`
+- fzf-tmux will show fzf border instead of tmux popup border (requires tmux 
3.3)
+  ```sh
+  fzf-tmux -p70%
+  fzf-tmux -p70% --color=border:bright-red
+  fzf-tmux -p100%,60% --color=border:bright-yellow --border=horizontal 
--padding 1,5 --margin 1,0
+  fzf-tmux -p70%,100% --color=border:bright-green --border=vertical
+
+  # Key bindings (CTRL-T, CTRL-R, ALT-C) will use these options
+  export FZF_TMUX_OPTS='-p100%,60% --color=border:green --border=horizontal 
--padding 1,5 --margin 1,0'
+  ```
+
 0.32.0
 ------
 - Updated the scoring algorithm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/LICENSE new/fzf-0.33.0/LICENSE
--- old/fzf-0.32.0/LICENSE      2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/LICENSE      2022-08-29 00:23:14.000000000 +0200
@@ -1,6 +1,6 @@
 The MIT License (MIT)
 
-Copyright (c) 2013-2021 Junegunn Choi
+Copyright (c) 2013-2022 Junegunn Choi
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/README.md new/fzf-0.33.0/README.md
--- old/fzf-0.32.0/README.md    2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/README.md    2022-08-29 00:23:14.000000000 +0200
@@ -627,10 +627,7 @@
 
 See the man page (`man fzf`) for the full list of options.
 
-For more advanced examples, see [Key bindings for git with fzf][fzf-git]
-([code](https://gist.github.com/junegunn/8b572b8d4b5eddd8b85e5f4d40f17236)).
-
-[fzf-git]: https://junegunn.kr/2016/07/fzf-git/
+More advanced examples can be found 
[here](https://github.com/junegunn/fzf/blob/master/ADVANCED.md).
 
 ----
 
@@ -662,10 +659,10 @@
 
 ```sh
 # Feed the output of fd into fzf
-fd --type f | fzf
+fd --type f --strip-cwd-prefix | fzf
 
 # Setting fd as the default source for fzf
-export FZF_DEFAULT_COMMAND='fd --type f'
+export FZF_DEFAULT_COMMAND='fd --type f --strip-cwd-prefix'
 
 # Now fzf (w/o pipe) will use fd instead of find
 fzf
@@ -678,7 +675,7 @@
 hidden files, use the following command:
 
 ```sh
-export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
+export FZF_DEFAULT_COMMAND='fd --type f --strip-cwd-prefix --hidden --follow 
--exclude .git'
 ```
 
 #### Fish shell
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/bin/fzf-tmux new/fzf-0.33.0/bin/fzf-tmux
--- old/fzf-0.32.0/bin/fzf-tmux 2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/bin/fzf-tmux 2022-08-29 00:23:14.000000000 +0200
@@ -10,7 +10,6 @@
 fzf="$(command -v fzf 2> /dev/null)" || fzf="$(dirname "$0")/fzf"
 [[ -x "$fzf" ]] || fail 'fzf executable not found'
 
-tmux_args=()
 args=()
 opt=""
 skip=""
@@ -58,7 +57,7 @@
       ;;
     -p*|-w*|-h*|-x*|-y*|-d*|-u*|-r*|-l*)
       if [[ "$arg" =~ ^-[pwhxy] ]]; then
-        [[ "$opt" =~ "-K -E" ]] || opt="-K -E"
+        [[ "$opt" =~ "-E" ]] || opt="-E"
       elif [[ "$arg" =~ ^.[lr] ]]; then
         opt="-h"
         if [[ "$arg" =~ ^.l ]]; then
@@ -119,8 +118,6 @@
       # "--" can be used to separate fzf-tmux options from fzf options to
       # avoid conflicts
       skip=1
-      tmux_args=("${args[@]}")
-      args=()
       continue
       ;;
     *)
@@ -139,7 +136,7 @@
 args=("${args[@]}" "--no-height" "--bind=ctrl-z:ignore")
 
 # Handle zoomed tmux pane without popup options by moving it to a temp window
-if [[ ! "$opt" =~ "-K -E" ]] && tmux list-panes -F '#F' | grep -q Z; then
+if [[ ! "$opt" =~ "-E" ]] && tmux list-panes -F '#F' | grep -q Z; then
   zoomed_without_popup=1
   original_window=$(tmux display-message -p "#{window_id}")
   tmp_window=$(tmux new-window -d -P -F "#{window_id}" "bash -c 'while :; do 
for c in \\| / - '\\;' do sleep 0.2; printf \"\\r\$c fzf-tmux is running\\r\"; 
done; done'")
@@ -181,7 +178,14 @@
 trap 'cleanup' EXIT
 
 envs="export TERM=$TERM "
-[[ "$opt" =~ "-K -E" ]] && FZF_DEFAULT_OPTS="--margin 0,1 $FZF_DEFAULT_OPTS"
+if [[ "$opt" =~ "-E" ]]; then
+  FZF_DEFAULT_OPTS="--margin 0,1 $FZF_DEFAULT_OPTS"
+  tmux_verson=$(tmux -V)
+  if [[ ! $tmux_verson =~ 3\.2 ]]; then
+    FZF_DEFAULT_OPTS="--border $FZF_DEFAULT_OPTS"
+    opt="-B $opt"
+  fi
+fi
 [[ -n "$FZF_DEFAULT_OPTS"    ]] && envs="$envs FZF_DEFAULT_OPTS=$(printf %q 
"$FZF_DEFAULT_OPTS")"
 [[ -n "$FZF_DEFAULT_COMMAND" ]] && envs="$envs FZF_DEFAULT_COMMAND=$(printf %q 
"$FZF_DEFAULT_COMMAND")"
 echo "$envs;" > "$argsf"
@@ -195,7 +199,7 @@
 
 export TMUX=$(cut -d , -f 1,2 <<< "$TMUX")
 mkfifo -m o+w $fifo2
-if [[ "$opt" =~ "-K -E" ]]; then
+if [[ "$opt" =~ "-E" ]]; then
   cat $fifo2 &
   if [[ -n "$term" ]] || [[ -t 0 ]]; then
     cat <<< "\"$fzf\" $opts > $fifo2; out=\$? $close; exit \$out" >> $argsf
@@ -205,15 +209,7 @@
     cat <&0 > $fifo1 &
   fi
 
-  # tmux dropped the support for `-K`, `-R` to popup command
-  #   TODO: We can remove this once tmux 3.2 is released
-  if [[ ! "$(tmux popup --help 2>&1)" =~ '-R shell-command' ]]; then
-    opt="${opt/-K/}"
-  else
-    opt="${opt} -R"
-  fi
-
-  tmux popup -d "$PWD" "${tmux_args[@]}" $opt "bash $argsf" > /dev/null 2>&1
+  tmux popup -d "$PWD" $opt "bash $argsf" > /dev/null 2>&1
   exit $?
 fi
 
@@ -227,7 +223,7 @@
 fi
 tmux set-window-option synchronize-panes off \;\
   set-window-option remain-on-exit off \;\
-  split-window -c "$PWD" $opt "${tmux_args[@]}" "bash -c 'exec -a fzf bash 
$argsf'" $swap \
+  split-window -c "$PWD" $opt "bash -c 'exec -a fzf bash $argsf'" $swap \
   > /dev/null 2>&1 || { "$fzf" "${args[@]}"; exit $?; }
 cat $fifo2
 exit "$(cat $fifo3)"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/go.mod new/fzf-0.33.0/go.mod
--- old/fzf-0.32.0/go.mod       2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/go.mod       2022-08-29 00:23:14.000000000 +0200
@@ -1,7 +1,7 @@
 module github.com/junegunn/fzf
 
 require (
-       github.com/gdamore/tcell v1.4.0
+       github.com/gdamore/tcell/v2 v2.5.3
        github.com/mattn/go-isatty v0.0.14
        github.com/mattn/go-runewidth v0.0.13
        github.com/mattn/go-shellwords v1.0.12
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/go.sum new/fzf-0.33.0/go.sum
--- old/fzf-0.32.0/go.sum       2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/go.sum       2022-08-29 00:23:14.000000000 +0200
@@ -1,13 +1,11 @@
 github.com/gdamore/encoding v1.0.0 
h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko=
 github.com/gdamore/encoding v1.0.0/go.mod 
h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg=
-github.com/gdamore/tcell v1.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/go.mod 
h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
+github.com/gdamore/tcell/v2 v2.5.3 
h1:b9XQrT6QGbgI7JvZOJXFNczOQeIYbo8BfeSMzt2sAV0=
+github.com/gdamore/tcell/v2 v2.5.3/go.mod 
h1:wSkrPaXoiIWZqW/g7Px4xc79di6FTcpB8tvaKJ6uGBo=
 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.14 
h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
 github.com/mattn/go-isatty v0.0.14/go.mod 
h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
-github.com/mattn/go-runewidth v0.0.7/go.mod 
h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
 github.com/mattn/go-runewidth v0.0.13 
h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU=
 github.com/mattn/go-runewidth v0.0.13/go.mod 
h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
 github.com/mattn/go-shellwords v1.0.12 
h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk=
@@ -19,11 +17,13 @@
 golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 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-20201119102817-f84b799fce68/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220318055525-2edf467146b5/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220406163625-3f8b81556e12 
h1:QyVthZKMsyaQwBTJE04jdNN0Pp5Fn9Qga0mrgxyERQM=
 golang.org/x/sys v0.0.0-20220406163625-3f8b81556e12/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 
h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/install new/fzf-0.33.0/install
--- old/fzf-0.32.0/install      2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/install      2022-08-29 00:23:14.000000000 +0200
@@ -2,7 +2,7 @@
 
 set -u
 
-version=0.32.0
+version=0.33.0
 auto_completion=
 key_bindings=
 update_config=2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/install.ps1 new/fzf-0.33.0/install.ps1
--- old/fzf-0.32.0/install.ps1  2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/install.ps1  2022-08-29 00:23:14.000000000 +0200
@@ -1,4 +1,4 @@
-$version="0.32.0"
+$version="0.33.0"
 
 $fzf_base=Split-Path -Parent $MyInvocation.MyCommand.Definition
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/main.go new/fzf-0.33.0/main.go
--- old/fzf-0.32.0/main.go      2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/main.go      2022-08-29 00:23:14.000000000 +0200
@@ -5,7 +5,7 @@
        "github.com/junegunn/fzf/src/protector"
 )
 
-var version string = "0.32"
+var version string = "0.33"
 var revision string = "devel"
 
 func main() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/man/man1/fzf-tmux.1 
new/fzf-0.33.0/man/man1/fzf-tmux.1
--- old/fzf-0.32.0/man/man1/fzf-tmux.1  2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/man/man1/fzf-tmux.1  2022-08-29 00:23:14.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 "Aug 2022" "fzf 0.32.0" "fzf-tmux - open fzf in tmux split pane"
+.TH fzf-tmux 1 "Aug 2022" "fzf 0.33.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.32.0/man/man1/fzf.1 
new/fzf-0.33.0/man/man1/fzf.1
--- old/fzf-0.32.0/man/man1/fzf.1       2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/man/man1/fzf.1       2022-08-29 00:23:14.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 "Aug 2022" "fzf 0.32.0" "fzf - a command-line fuzzy finder"
+.TH fzf 1 "Aug 2022" "fzf 0.33.0" "fzf - a command-line fuzzy finder"
 
 .SH NAME
 fzf - a command-line fuzzy finder
@@ -51,6 +51,18 @@
 .B "--literal"
 Do not normalize latin script letters for matching.
 .TP
+.BI "--scheme=" SCHEME
+Choose scoring scheme tailored for different types of input.
+
+.br
+.BR default "  Generic scoring scheme designed to work well with any type of 
input"
+.br
+.BR path "     Scoring scheme for paths (additional bonus point only after 
path separator)
+.br
+.BR history "  Scoring scheme for command history (no additional bonus points).
+         Sets \fB--tiebreak=index\fR as well.
+.br
+.TP
 .BI "--algo=" TYPE
 Fuzzy matching algorithm (default: v2)
 
@@ -189,21 +201,21 @@
 A synonym for \fB--layout=reverse\fB
 
 .TP
-.BI "--border" [=STYLE]
+.BI "--border" [=BORDER_OPT]
 Draw border around the finder
 
 .br
-.BR rounded "     Border with rounded corners (default)"
+.BR rounded "       Border with rounded corners (default)"
 .br
-.BR sharp "       Border with sharp corners"
+.BR sharp "         Border with sharp corners"
 .br
-.BR horizontal "  Horizontal lines above and below the finder"
+.BR horizontal "    Horizontal lines above and below the finder"
 .br
-.BR vertical "    Vertical lines on each side of the finder"
+.BR vertical "      Vertical lines on each side of the finder"
 .br
-.BR top
+.BR top " (up)"
 .br
-.BR bottom
+.BR bottom " (down)"
 .br
 .BR left
 .br
@@ -378,6 +390,7 @@
     \fBreverse\fR
     \fBdim\fR
     \fBitalic\fR
+    \fBstrikethrough\fR
 
 .B EXAMPLES:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/shell/completion.bash 
new/fzf-0.33.0/shell/completion.bash
--- old/fzf-0.32.0/shell/completion.bash        2022-08-02 14:56:14.000000000 
+0200
+++ new/fzf-0.33.0/shell/completion.bash        2022-08-29 00:23:14.000000000 
+0200
@@ -181,7 +181,7 @@
         [[ -z "$dir" ]] && dir='.'
         [[ "$dir" != "/" ]] && dir="${dir/%\//}"
         matches=$(eval "$1 $(printf %q "$dir")" | FZF_DEFAULT_OPTS="--height 
${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore $FZF_DEFAULT_OPTS 
$FZF_COMPLETION_OPTS $2" __fzf_comprun "$4" -q "$leftover" | while read -r 
item; do
-          printf "%q$3 " "$item"
+          printf "%q " "${item%$3}$3"
         done)
         matches=${matches% }
         [[ -z "$3" ]] && [[ "$__fzf_nospace_commands" = *" ${COMP_WORDS[0]} "* 
]] && matches="$matches "
@@ -279,7 +279,7 @@
 
 _fzf_host_completion() {
   _fzf_complete +m -- "$@" < <(
-    command cat <(command tail -n +1 ~/.ssh/config ~/.ssh/config.d/* 
/etc/ssh/ssh_config 2> /dev/null | command grep -i '^\s*host\(name\)\? ' | awk 
'{for (i = 2; i <= NF; i++) print $1 " " $i}' | command grep -v '[*?]') \
+    command cat <(command tail -n +1 ~/.ssh/config ~/.ssh/config.d/* 
/etc/ssh/ssh_config 2> /dev/null | command grep -i '^\s*host\(name\)\? ' | awk 
'{for (i = 2; i <= NF; i++) print $1 " " $i}' | command grep -v '[*?%]') \
         <(command grep -oE '^[[a-z0-9.,:-]+' ~/.ssh/known_hosts | tr ',' '\n' 
| tr -d '[' | awk '{ print $1 " " $1 }') \
         <(command grep -v '^\s*\(#\|$\)' /etc/hosts | command grep -Fv 
'0.0.0.0') |
         awk '{if (length($2) > 0) {print $2}}' | sort -u
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/shell/completion.zsh 
new/fzf-0.33.0/shell/completion.zsh
--- old/fzf-0.32.0/shell/completion.zsh 2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/shell/completion.zsh 2022-08-29 00:23:14.000000000 +0200
@@ -146,7 +146,8 @@
       [ -z "$dir" ] && dir='.'
       [ "$dir" != "/" ] && dir="${dir/%\//}"
       matches=$(eval "$compgen $(printf %q "$dir")" | 
FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse 
--bind=ctrl-z:ignore $FZF_DEFAULT_OPTS $FZF_COMPLETION_OPTS" __fzf_comprun 
"$cmd" ${(Q)${(Z+n+)fzf_opts}} -q "$leftover" | while read item; do
-        echo -n "${(q)item}$suffix "
+        item="${item%$suffix}$suffix"
+        echo -n "${(q)item} "
       done)
       matches=${matches% }
       if [ -n "$matches" ]; then
@@ -224,7 +225,7 @@
 _fzf_complete_ssh() {
   _fzf_complete +m -- "$@" < <(
     setopt localoptions nonomatch
-    command cat <(command tail -n +1 ~/.ssh/config ~/.ssh/config.d/* 
/etc/ssh/ssh_config 2> /dev/null | command grep -i '^\s*host\(name\)\? ' | awk 
'{for (i = 2; i <= NF; i++) print $1 " " $i}' | command grep -v '[*?]') \
+    command cat <(command tail -n +1 ~/.ssh/config ~/.ssh/config.d/* 
/etc/ssh/ssh_config 2> /dev/null | command grep -i '^\s*host\(name\)\? ' | awk 
'{for (i = 2; i <= NF; i++) print $1 " " $i}' | command grep -v '[*?%]') \
         <(command grep -oE '^[[a-z0-9.,:-]+' ~/.ssh/known_hosts | tr ',' '\n' 
| tr -d '[' | awk '{ print $1 " " $1 }') \
         <(command grep -v '^\s*\(#\|$\)' /etc/hosts | command grep -Fv 
'0.0.0.0') |
         awk '{if (length($2) > 0) {print $2}}' | sort -u
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/shell/key-bindings.bash 
new/fzf-0.33.0/shell/key-bindings.bash
--- old/fzf-0.32.0/shell/key-bindings.bash      2022-08-02 14:56:14.000000000 
+0200
+++ new/fzf-0.33.0/shell/key-bindings.bash      2022-08-29 00:23:14.000000000 
+0200
@@ -50,7 +50,7 @@
 
 __fzf_history__() {
   local output opts script
-  opts="--height ${FZF_TMUX_HEIGHT:-40%} --bind=ctrl-z:ignore 
$FZF_DEFAULT_OPTS -n2..,.. --tiebreak=index --bind=ctrl-r:toggle-sort 
$FZF_CTRL_R_OPTS +m --read0"
+  opts="--height ${FZF_TMUX_HEIGHT:-40%} --bind=ctrl-z:ignore 
$FZF_DEFAULT_OPTS -n2..,.. --scheme=history --bind=ctrl-r:toggle-sort 
$FZF_CTRL_R_OPTS +m --read0"
   script='BEGIN { getc; $/ = "\n\t"; $HISTCOUNT = $ENV{last_hist} + 1 } s/^[ 
*]//; print $HISTCOUNT - $. . "\t$_" if !$seen{$_}++'
   output=$(
     builtin fc -lnr -2147483648 |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/shell/key-bindings.fish 
new/fzf-0.33.0/shell/key-bindings.fish
--- old/fzf-0.32.0/shell/key-bindings.fish      2022-08-02 14:56:14.000000000 
+0200
+++ new/fzf-0.33.0/shell/key-bindings.fish      2022-08-29 00:23:14.000000000 
+0200
@@ -53,7 +53,7 @@
   function fzf-history-widget -d "Show command history"
     test -n "$FZF_TMUX_HEIGHT"; or set FZF_TMUX_HEIGHT 40%
     begin
-      set -lx FZF_DEFAULT_OPTS "--height $FZF_TMUX_HEIGHT $FZF_DEFAULT_OPTS 
--tiebreak=index --bind=ctrl-r:toggle-sort,ctrl-z:ignore $FZF_CTRL_R_OPTS +m"
+      set -lx FZF_DEFAULT_OPTS "--height $FZF_TMUX_HEIGHT $FZF_DEFAULT_OPTS 
--scheme=history --bind=ctrl-r:toggle-sort,ctrl-z:ignore $FZF_CTRL_R_OPTS +m"
 
       set -l FISH_MAJOR (echo $version | cut -f1 -d.)
       set -l FISH_MINOR (echo $version | cut -f2 -d.)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/shell/key-bindings.zsh 
new/fzf-0.33.0/shell/key-bindings.zsh
--- old/fzf-0.32.0/shell/key-bindings.zsh       2022-08-02 14:56:14.000000000 
+0200
+++ new/fzf-0.33.0/shell/key-bindings.zsh       2022-08-29 00:23:14.000000000 
+0200
@@ -98,7 +98,7 @@
   local selected num
   setopt localoptions noglobsubst noposixbuiltins pipefail no_aliases 2> 
/dev/null
   selected=( $(fc -rl 1 | awk '{ cmd=$0; sub(/^[ \t]*[0-9]+\**[ \t]+/, "", 
cmd); if (!seen[cmd]++) print $0 }' |
-    FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} $FZF_DEFAULT_OPTS 
-n2..,.. --tiebreak=index --bind=ctrl-r:toggle-sort,ctrl-z:ignore 
$FZF_CTRL_R_OPTS --query=${(qqq)LBUFFER} +m" $(__fzfcmd)) )
+    FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} $FZF_DEFAULT_OPTS 
-n2..,.. --scheme=history --bind=ctrl-r:toggle-sort,ctrl-z:ignore 
$FZF_CTRL_R_OPTS --query=${(qqq)LBUFFER} +m" $(__fzfcmd)) )
   local ret=$?
   if [ -n "$selected" ]; then
     num=$selected[1]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/src/algo/algo.go 
new/fzf-0.33.0/src/algo/algo.go
--- old/fzf-0.32.0/src/algo/algo.go     2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/src/algo/algo.go     2022-08-29 00:23:14.000000000 +0200
@@ -80,6 +80,7 @@
 import (
        "bytes"
        "fmt"
+       "os"
        "strings"
        "unicode"
        "unicode/utf8"
@@ -89,7 +90,8 @@
 
 var DEBUG bool
 
-const delimiterChars = "/,:;|"
+var delimiterChars = "/,:;|"
+
 const whiteChars = " \t\n\v\f\r\x85\xA0"
 
 func indexAt(index int, max int, forward bool) int {
@@ -120,12 +122,6 @@
        // in web2 dictionary and my file system.
        bonusBoundary = scoreMatch / 2
 
-       // Extra bonus for word boundary after whitespace character or 
beginning of the string
-       bonusBoundaryWhite = bonusBoundary + 2
-
-       // Extra bonus for word boundary after slash, colon, semi-colon, and 
comma
-       bonusBoundaryDelimiter = bonusBoundary + 1
-
        // Although bonus point for non-word characters is non-contextual, we 
need it
        // for computing bonus points for consecutive chunks starting with a 
non-word
        // character.
@@ -149,6 +145,16 @@
        bonusFirstCharMultiplier = 2
 )
 
+var (
+       // Extra bonus for word boundary after whitespace character or 
beginning of the string
+       bonusBoundaryWhite int16 = bonusBoundary + 2
+
+       // Extra bonus for word boundary after slash, colon, semi-colon, and 
comma
+       bonusBoundaryDelimiter int16 = bonusBoundary + 1
+
+       initialCharClass charClass = charWhite
+)
+
 type charClass int
 
 const (
@@ -161,6 +167,29 @@
        charNumber
 )
 
+func Init(scheme string) bool {
+       switch scheme {
+       case "default":
+               bonusBoundaryWhite = bonusBoundary + 2
+               bonusBoundaryDelimiter = bonusBoundary + 1
+       case "path":
+               bonusBoundaryWhite = bonusBoundary
+               bonusBoundaryDelimiter = bonusBoundary + 1
+               if os.PathSeparator == '/' {
+                       delimiterChars = "/"
+               } else {
+                       delimiterChars = string([]rune{os.PathSeparator, '/'})
+               }
+               initialCharClass = charDelimiter
+       case "history":
+               bonusBoundaryWhite = bonusBoundary
+               bonusBoundaryDelimiter = bonusBoundary
+       default:
+               return false
+       }
+       return true
+}
+
 func posArray(withPos bool, len int) *[]int {
        if withPos {
                pos := make([]int, 0, len)
@@ -407,7 +436,7 @@
        // Phase 2. Calculate bonus for each point
        maxScore, maxScorePos := int16(0), 0
        pidx, lastIdx := 0, 0
-       pchar0, pchar, prevH0, prevClass, inGap := pattern[0], pattern[0], 
int16(0), charWhite, false
+       pchar0, pchar, prevH0, prevClass, inGap := pattern[0], pattern[0], 
int16(0), initialCharClass, false
        Tsub := T[idx:]
        H0sub, C0sub, Bsub := H0[idx:][:len(Tsub)], C0[idx:][:len(Tsub)], 
B[idx:][:len(Tsub)]
        for off, char := range Tsub {
@@ -910,8 +939,8 @@
                match = runesStr == string(pattern)
        }
        if match {
-               return Result{trimmedLen, trimmedLen + lenPattern, 
(scoreMatch+bonusBoundaryWhite)*lenPattern +
-                       (bonusFirstCharMultiplier-1)*bonusBoundaryWhite}, nil
+               return Result{trimmedLen, trimmedLen + lenPattern, 
(scoreMatch+int(bonusBoundaryWhite))*lenPattern +
+                       (bonusFirstCharMultiplier-1)*int(bonusBoundaryWhite)}, 
nil
        }
        return Result{-1, -1, 0}, nil
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/src/algo/algo_test.go 
new/fzf-0.33.0/src/algo/algo_test.go
--- old/fzf-0.32.0/src/algo/algo_test.go        2022-08-02 14:56:14.000000000 
+0200
+++ new/fzf-0.33.0/src/algo/algo_test.go        2022-08-29 00:23:14.000000000 
+0200
@@ -45,29 +45,29 @@
                        assertMatch(t, fn, false, forward, "fooBarbaz1", "oBZ", 
2, 9,
                                
scoreMatch*3+bonusCamel123+scoreGapStart+scoreGapExtension*3)
                        assertMatch(t, fn, false, forward, "foo bar baz", 
"fbb", 0, 9,
-                               
scoreMatch*3+bonusBoundaryWhite*bonusFirstCharMultiplier+
-                                       
bonusBoundaryWhite*2+2*scoreGapStart+4*scoreGapExtension)
+                               
scoreMatch*3+int(bonusBoundaryWhite)*bonusFirstCharMultiplier+
+                                       
int(bonusBoundaryWhite)*2+2*scoreGapStart+4*scoreGapExtension)
                        assertMatch(t, fn, false, forward, 
"/AutomatorDocument.icns", "rdoc", 9, 13,
                                scoreMatch*4+bonusCamel123+bonusConsecutive*2)
                        assertMatch(t, fn, false, forward, 
"/man1/zshcompctl.1", "zshc", 6, 10,
-                               
scoreMatch*4+bonusBoundaryDelimiter*bonusFirstCharMultiplier+bonusBoundaryDelimiter*3)
+                               
scoreMatch*4+int(bonusBoundaryDelimiter)*bonusFirstCharMultiplier+int(bonusBoundaryDelimiter)*3)
                        assertMatch(t, fn, false, forward, "/.oh-my-zsh/cache", 
"zshc", 8, 13,
-                               
scoreMatch*4+bonusBoundary*bonusFirstCharMultiplier+bonusBoundary*2+scoreGapStart+bonusBoundaryDelimiter)
+                               
scoreMatch*4+bonusBoundary*bonusFirstCharMultiplier+bonusBoundary*2+scoreGapStart+int(bonusBoundaryDelimiter))
                        assertMatch(t, fn, false, forward, "ab0123 456", 
"12356", 3, 10,
                                
scoreMatch*5+bonusConsecutive*3+scoreGapStart+scoreGapExtension)
                        assertMatch(t, fn, false, forward, "abc123 456", 
"12356", 3, 10,
                                
scoreMatch*5+bonusCamel123*bonusFirstCharMultiplier+bonusCamel123*2+bonusConsecutive+scoreGapStart+scoreGapExtension)
                        assertMatch(t, fn, false, forward, "foo/bar/baz", 
"fbb", 0, 9,
-                               
scoreMatch*3+bonusBoundaryWhite*bonusFirstCharMultiplier+
-                                       
bonusBoundaryDelimiter*2+2*scoreGapStart+4*scoreGapExtension)
+                               
scoreMatch*3+int(bonusBoundaryWhite)*bonusFirstCharMultiplier+
+                                       
int(bonusBoundaryDelimiter)*2+2*scoreGapStart+4*scoreGapExtension)
                        assertMatch(t, fn, false, forward, "fooBarBaz", "fbb", 
0, 7,
-                               
scoreMatch*3+bonusBoundaryWhite*bonusFirstCharMultiplier+
+                               
scoreMatch*3+int(bonusBoundaryWhite)*bonusFirstCharMultiplier+
                                        
bonusCamel123*2+2*scoreGapStart+2*scoreGapExtension)
                        assertMatch(t, fn, false, forward, "foo barbaz", "fbb", 
0, 8,
-                               
scoreMatch*3+bonusBoundaryWhite*bonusFirstCharMultiplier+bonusBoundaryWhite+
+                               
scoreMatch*3+int(bonusBoundaryWhite)*bonusFirstCharMultiplier+int(bonusBoundaryWhite)+
                                        scoreGapStart*2+scoreGapExtension*3)
                        assertMatch(t, fn, false, forward, "fooBar Baz", 
"foob", 0, 4,
-                               
scoreMatch*4+bonusBoundaryWhite*bonusFirstCharMultiplier+bonusBoundaryWhite*3)
+                               
scoreMatch*4+int(bonusBoundaryWhite)*bonusFirstCharMultiplier+int(bonusBoundaryWhite)*3)
                        assertMatch(t, fn, false, forward, "xFoo-Bar Baz", 
"foo-b", 1, 6,
                                
scoreMatch*5+bonusCamel123*bonusFirstCharMultiplier+bonusCamel123*2+
                                        bonusNonWord+bonusBoundary)
@@ -75,14 +75,14 @@
                        assertMatch(t, fn, true, forward, "fooBarbaz", "oBz", 
2, 9,
                                
scoreMatch*3+bonusCamel123+scoreGapStart+scoreGapExtension*3)
                        assertMatch(t, fn, true, forward, "Foo/Bar/Baz", "FBB", 
0, 9,
-                               
scoreMatch*3+bonusBoundaryWhite*bonusFirstCharMultiplier+bonusBoundaryDelimiter*2+
+                               
scoreMatch*3+int(bonusBoundaryWhite)*bonusFirstCharMultiplier+int(bonusBoundaryDelimiter)*2+
                                        scoreGapStart*2+scoreGapExtension*4)
                        assertMatch(t, fn, true, forward, "FooBarBaz", "FBB", 
0, 7,
-                               
scoreMatch*3+bonusBoundaryWhite*bonusFirstCharMultiplier+bonusCamel123*2+
+                               
scoreMatch*3+int(bonusBoundaryWhite)*bonusFirstCharMultiplier+bonusCamel123*2+
                                        scoreGapStart*2+scoreGapExtension*2)
                        assertMatch(t, fn, true, forward, "FooBar Baz", "FooB", 
0, 4,
-                               
scoreMatch*4+bonusBoundaryWhite*bonusFirstCharMultiplier+bonusBoundaryWhite*2+
-                                       util.Max(bonusCamel123, 
bonusBoundaryWhite))
+                               
scoreMatch*4+int(bonusBoundaryWhite)*bonusFirstCharMultiplier+int(bonusBoundaryWhite)*2+
+                                       util.Max(bonusCamel123, 
int(bonusBoundaryWhite)))
 
                        // Consecutive bonus updated
                        assertMatch(t, fn, true, forward, "foo-bar", "o-ba", 2, 
6,
@@ -98,10 +98,10 @@
 
 func TestFuzzyMatchBackward(t *testing.T) {
        assertMatch(t, FuzzyMatchV1, false, true, "foobar fb", "fb", 0, 4,
-               scoreMatch*2+bonusBoundaryWhite*bonusFirstCharMultiplier+
+               scoreMatch*2+int(bonusBoundaryWhite)*bonusFirstCharMultiplier+
                        scoreGapStart+scoreGapExtension)
        assertMatch(t, FuzzyMatchV1, false, false, "foobar fb", "fb", 7, 9,
-               
scoreMatch*2+bonusBoundaryWhite*bonusFirstCharMultiplier+bonusBoundaryWhite)
+               
scoreMatch*2+int(bonusBoundaryWhite)*bonusFirstCharMultiplier+int(bonusBoundaryWhite))
 }
 
 func TestExactMatchNaive(t *testing.T) {
@@ -114,9 +114,9 @@
                assertMatch(t, ExactMatchNaive, false, dir, 
"/AutomatorDocument.icns", "rdoc", 9, 13,
                        scoreMatch*4+bonusCamel123+bonusConsecutive*2)
                assertMatch(t, ExactMatchNaive, false, dir, 
"/man1/zshcompctl.1", "zshc", 6, 10,
-                       
scoreMatch*4+bonusBoundaryDelimiter*(bonusFirstCharMultiplier+3))
+                       
scoreMatch*4+int(bonusBoundaryDelimiter)*(bonusFirstCharMultiplier+3))
                assertMatch(t, ExactMatchNaive, false, dir, 
"/.oh-my-zsh/cache", "zsh/c", 8, 13,
-                       
scoreMatch*5+bonusBoundary*(bonusFirstCharMultiplier+3)+bonusBoundaryDelimiter)
+                       
scoreMatch*5+bonusBoundary*(bonusFirstCharMultiplier+3)+int(bonusBoundaryDelimiter))
        }
 }
 
@@ -128,7 +128,7 @@
 }
 
 func TestPrefixMatch(t *testing.T) {
-       score := scoreMatch*3 + bonusBoundaryWhite*bonusFirstCharMultiplier + 
bonusBoundaryWhite*2
+       score := scoreMatch*3 + 
int(bonusBoundaryWhite)*bonusFirstCharMultiplier + int(bonusBoundaryWhite)*2
 
        for _, dir := range []bool{true, false} {
                assertMatch(t, PrefixMatch, true, dir, "fooBarbaz", "Foo", -1, 
-1, 0)
@@ -159,7 +159,7 @@
 
                // Only when the pattern doesn't end with a space
                assertMatch(t, SuffixMatch, false, dir, "fooBarbaz ", "baz ", 
6, 10,
-                       scoreMatch*4+bonusConsecutive*2+bonusBoundaryWhite)
+                       scoreMatch*4+bonusConsecutive*2+int(bonusBoundaryWhite))
        }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/src/ansi.go new/fzf-0.33.0/src/ansi.go
--- old/fzf-0.32.0/src/ansi.go  2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/src/ansi.go  2022-08-29 00:23:14.000000000 +0200
@@ -55,6 +55,9 @@
        if s.attr&tui.Reverse > 0 {
                ret += "7;"
        }
+       if s.attr&tui.StrikeThrough > 0 {
+               ret += "9;"
+       }
        ret += toAnsiString(s.fg, 30) + toAnsiString(s.bg, 40)
 
        return "\x1b[" + strings.TrimSuffix(ret, ";") + "m"
@@ -85,7 +88,7 @@
 }
 
 func matchOperatingSystemCommand(s string) int {
-       // `\x1b][0-9];[[:print:]]+(?:\x1b\\\\|\x07)`
+       // `\x1b][0-9][;:][[:print:]]+(?:\x1b\\\\|\x07)`
        //                        ^ match starting here
        //
        i := 5 // prefix matched in nextAnsiEscapeSequence()
@@ -103,30 +106,37 @@
 }
 
 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] == ';' || s[i] == '?'); 
i++ {
-       }
-       if i < len(s) {
+       for ; i < len(s); i++ {
                c := s[i]
-               if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || c == '@' {
-                       return i + 1
+               switch c {
+               case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ';', 
':', '?':
+                       // ok
+               default:
+                       if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || c == 
'@' {
+                               return i + 1
+                       }
+                       return -1
                }
        }
        return -1
 }
 
 func isCtrlSeqStart(c uint8) bool {
-       return c == '\\' || c == '[' || c == '(' || c == ')'
+       switch c {
+       case '\\', '[', '(', ')':
+               return true
+       }
+       return false
 }
 
 // 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
        i := 0
@@ -154,16 +164,16 @@
                                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
                                }
                        }
 
-                       // match: `\x1b][0-9];[[:print:]]+(?:\x1b\\\\|\x07)`
+                       // match: `\x1b][0-9][;:][[:print:]]+(?:\x1b\\\\|\x07)`
                        if i+5 < len(s) && s[i+1] == ']' && isNumeric(s[i+2]) &&
-                               s[i+3] == ';' && isPrint(s[i+4]) {
+                               (s[i+3] == ';' || s[i+3] == ':') && 
isPrint(s[i+4]) {
 
                                if j := matchOperatingSystemCommand(s[i:]); j 
!= -1 {
                                        return i, i + j
@@ -280,9 +290,20 @@
        return trimmed, nil, state
 }
 
-func parseAnsiCode(s string) (int, string) {
+func parseAnsiCode(s string, delimiter byte) (int, byte, string) {
        var remaining string
-       if i := strings.IndexByte(s, ';'); i >= 0 {
+       i := -1
+       if delimiter == 0 {
+               // Faster than strings.IndexAny(";:")
+               i = strings.IndexByte(s, ';')
+               if i < 0 {
+                       i = strings.IndexByte(s, ':')
+               }
+       } else {
+               i = strings.IndexByte(s, delimiter)
+       }
+       if i >= 0 {
+               delimiter = s[i]
                remaining = s[i+1:]
                s = s[:i]
        }
@@ -294,14 +315,14 @@
                for _, ch := range []byte(s) {
                        ch -= '0'
                        if ch > 9 {
-                               return -1, remaining
+                               return -1, delimiter, remaining
                        }
                        code = code*10 + int(ch)
                }
-               return code, remaining
+               return code, delimiter, remaining
        }
 
-       return -1, remaining
+       return -1, delimiter, remaining
 }
 
 func interpretCode(ansiCode string, prevState *ansiState) ansiState {
@@ -329,9 +350,10 @@
        state256 := 0
        ptr := &state.fg
 
+       var delimiter byte = 0
        for len(ansiCode) != 0 {
                var num int
-               if num, ansiCode = parseAnsiCode(ansiCode); num != -1 {
+               if num, delimiter, ansiCode = parseAnsiCode(ansiCode, 
delimiter); num != -1 {
                        switch state256 {
                        case 0:
                                switch num {
@@ -357,6 +379,8 @@
                                        state.attr = state.attr | tui.Blink
                                case 7:
                                        state.attr = state.attr | tui.Reverse
+                               case 9:
+                                       state.attr = state.attr | 
tui.StrikeThrough
                                case 23: // tput rmso
                                        state.attr = state.attr &^ tui.Italic
                                case 24: // tput rmul
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/src/ansi_test.go 
new/fzf-0.33.0/src/ansi_test.go
--- old/fzf-0.32.0/src/ansi_test.go     2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/src/ansi_test.go     2022-08-29 00:23:14.000000000 +0200
@@ -15,14 +15,14 @@
 // testing nextAnsiEscapeSequence().
 //
 // References:
-//     - https://github.com/gnachman/iTerm2
-//     - 
https://web.archive.org/web/20090204053813/http://ascii-table.com/ansi-escape-sequences.php
-//      (archived from http://ascii-table.com/ansi-escape-sequences.php)
-//     - 
https://web.archive.org/web/20090227051140/http://ascii-table.com/ansi-escape-sequences-vt-100.php
-//      (archived from http://ascii-table.com/ansi-escape-sequences-vt-100.php)
-//     - http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x405.html
-//     - https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
-var ansiRegexReference = 
regexp.MustCompile("(?:\x1b[\\[()][0-9;]*[a-zA-Z@]|\x1b][0-9];[[:print:]]+(?:\x1b\\\\|\x07)|\x1b.|[\x0e\x0f]|.\x08)")
+//   - https://github.com/gnachman/iTerm2
+//   - 
https://web.archive.org/web/20090204053813/http://ascii-table.com/ansi-escape-sequences.php
+//     (archived from http://ascii-table.com/ansi-escape-sequences.php)
+//   - 
https://web.archive.org/web/20090227051140/http://ascii-table.com/ansi-escape-sequences-vt-100.php
+//     (archived from http://ascii-table.com/ansi-escape-sequences-vt-100.php)
+//   - http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x405.html
+//   - https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
+var ansiRegexReference = 
regexp.MustCompile("(?:\x1b[\\[()][0-9;:]*[a-zA-Z@]|\x1b][0-9][;:][[:print:]]+(?:\x1b\\\\|\x07)|\x1b.|[\x0e\x0f]|.\x08)")
 
 func testParserReference(t testing.TB, str string) {
        t.Helper()
@@ -358,6 +358,7 @@
        assert("\x1b[31m", &ansiState{fg: 4, bg: 4, lbg: -1}, "\x1b[31;44m")
        assert("\x1b[1;2;31m", &ansiState{fg: 2, bg: -1, attr: tui.Reverse, 
lbg: -1}, "\x1b[1;2;7;31;49m")
        assert("\x1b[38;5;100;48;5;200m", nil, "\x1b[38;5;100;48;5;200m")
+       assert("\x1b[38:5:100:48:5:200m", nil, "\x1b[38;5;100;48;5;200m")
        assert("\x1b[48;5;100;38;5;200m", nil, "\x1b[38;5;200;48;5;100m")
        assert("\x1b[48;5;100;38;2;10;20;30;1m", nil, 
"\x1b[1;38;2;10;20;30;48;5;100m")
        assert("\x1b[48;5;100;38;2;10;20;30;7m",
@@ -377,7 +378,7 @@
                {"-2", "", -1},
        }
        for _, x := range tests {
-               n, s := parseAnsiCode(x.In)
+               n, _, s := parseAnsiCode(x.In, 0)
                if n != x.N || s != x.Exp {
                        t.Fatalf("%q: got: (%d %q) want: (%d %q)", x.In, n, s, 
x.N, x.Exp)
                }
@@ -385,9 +386,9 @@
 }
 
 // kernel/bpf/preload/iterators/README
-const ansiBenchmarkString = 
"\x1b[38;5;81m\x1b[01;31m\x1b[Kkernel/\x1b[0m\x1b[38;5;81mbpf/" +
-       "\x1b[0m\x1b[38;5;81mpreload/\x1b[0m\x1b[38;5;81miterators/" +
-       "\x1b[0m\x1b[38;5;149mMakefile\x1b[m\x1b[K\x1b[0m"
+const ansiBenchmarkString = 
"\x1b[38;5;81m\x1b[01;31m\x1b[Kkernel/\x1b[0m\x1b[38:5:81mbpf/" +
+       "\x1b[0m\x1b[38:5:81mpreload/\x1b[0m\x1b[38;5;81miterators/" +
+       "\x1b[0m\x1b[38:5:149mMakefile\x1b[m\x1b[K\x1b[0m"
 
 func BenchmarkNextAnsiEscapeSequence(b *testing.B) {
        b.SetBytes(int64(len(ansiBenchmarkString)))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/src/core.go new/fzf-0.33.0/src/core.go
--- old/fzf-0.32.0/src/core.go  2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/src/core.go  2022-08-29 00:23:14.000000000 +0200
@@ -1,28 +1,4 @@
-/*
-Package fzf implements fzf, a command-line fuzzy finder.
-
-The MIT License (MIT)
-
-Copyright (c) 2013-2021 Junegunn Choi
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-*/
+// Package fzf implements fzf, a command-line fuzzy finder.
 package fzf
 
 import (
@@ -146,18 +122,20 @@
 
        // Matcher
        forward := true
-       for _, cri := range opts.Criteria[1:] {
-               if cri == byEnd {
+       withPos := false
+       for idx := len(opts.Criteria) - 1; idx > 0; idx-- {
+               switch opts.Criteria[idx] {
+               case byChunk:
+                       withPos = true
+               case byEnd:
                        forward = false
-                       break
-               }
-               if cri == byBegin {
-                       break
+               case byBegin:
+                       forward = true
                }
        }
        patternBuilder := func(runes []rune) *Pattern {
                return BuildPattern(
-                       opts.Fuzzy, opts.FuzzyAlgo, opts.Extended, opts.Case, 
opts.Normalize, forward,
+                       opts.Fuzzy, opts.FuzzyAlgo, opts.Extended, opts.Case, 
opts.Normalize, forward, withPos,
                        opts.Filter == nil, opts.Nth, opts.Delimiter, runes)
        }
        matcher := NewMatcher(patternBuilder, sort, opts.Tac, eventBox)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/src/options.go 
new/fzf-0.33.0/src/options.go
--- old/fzf-0.32.0/src/options.go       2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/src/options.go       2022-08-29 00:23:14.000000000 +0200
@@ -21,9 +21,9 @@
     -x, --extended        Extended-search mode
                           (enabled by default; +x or --no-extended to disable)
     -e, --exact           Enable Exact-match
-    --algo=TYPE           Fuzzy matching algorithm: [v1|v2] (default: v2)
     -i                    Case-insensitive match (default: smart-case match)
     +i                    Case-sensitive match
+    --scheme=SCHEME       Scoring scheme [default|path|history]
     --literal             Do not normalize latin script letters before matching
     -n, --nth=N[,..]      Comma-separated list of field index expressions
                           for limiting search scope. Each can be a non-zero
@@ -194,6 +194,7 @@
 type Options struct {
        Fuzzy       bool
        FuzzyAlgo   algo.Algo
+       Scheme      string
        Extended    bool
        Phony       bool
        Case        Case
@@ -259,6 +260,7 @@
        return &Options{
                Fuzzy:       true,
                FuzzyAlgo:   algo.FuzzyMatchV2,
+               Scheme:      "default",
                Extended:    true,
                Phony:       false,
                Case:        CaseSmart,
@@ -441,6 +443,15 @@
        return algo.FuzzyMatchV2
 }
 
+func processScheme(opts *Options) {
+       if !algo.Init(opts.Scheme) {
+               errorExit("invalid scoring scheme (expected: 
default|path|history)")
+       }
+       if opts.Scheme == "history" {
+               opts.Criteria = []criterion{byScore}
+       }
+}
+
 func parseBorder(str string, optional bool) tui.BorderShape {
        switch str {
        case "rounded":
@@ -700,6 +711,8 @@
                                                cattr.Attr |= tui.Blink
                                        case "reverse":
                                                cattr.Attr |= tui.Reverse
+                                       case "strikethrough":
+                                               cattr.Attr |= tui.StrikeThrough
                                        case "black":
                                                cattr.Color = tui.Color(0)
                                        case "red":
@@ -1228,9 +1241,9 @@
                        opts.border = tui.BorderHorizontal
                case "border-vertical":
                        opts.border = tui.BorderVertical
-               case "border-top":
+               case "border-up", "border-top":
                        opts.border = tui.BorderTop
-               case "border-bottom":
+               case "border-down", "border-bottom":
                        opts.border = tui.BorderBottom
                case "border-left":
                        opts.border = tui.BorderLeft
@@ -1343,6 +1356,8 @@
                        opts.Normalize = true
                case "--algo":
                        opts.FuzzyAlgo = parseAlgo(nextString(allArgs, &i, 
"algorithm required (v1|v2)"))
+               case "--scheme":
+                       opts.Scheme = strings.ToLower(nextString(allArgs, &i, 
"scoring scheme required (default|path|history)"))
                case "--expect":
                        for k, v := range parseKeyChords(nextString(allArgs, 
&i, "key names required"), "key names required") {
                                opts.Expect[k] = v
@@ -1544,9 +1559,13 @@
                        opts.ClearOnExit = false
                case "--version":
                        opts.Version = true
+               case "--":
+                       // Ignored
                default:
                        if match, value := optString(arg, "--algo="); match {
                                opts.FuzzyAlgo = parseAlgo(value)
+                       } else if match, value := optString(arg, "--scheme="); 
match {
+                               opts.Scheme = strings.ToLower(value)
                        } else if match, value := optString(arg, "-q", 
"--query="); match {
                                opts.Query = value
                        } else if match, value := optString(arg, "-f", 
"--filter="); match {
@@ -1748,6 +1767,10 @@
                theme.Cursor = boldify(theme.Cursor)
                theme.Spinner = boldify(theme.Spinner)
        }
+
+       if opts.Scheme != "default" {
+               processScheme(opts)
+       }
 }
 
 func expectsArbitraryString(opt string) bool {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/src/pattern.go 
new/fzf-0.33.0/src/pattern.go
--- old/fzf-0.32.0/src/pattern.go       2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/src/pattern.go       2022-08-29 00:23:14.000000000 +0200
@@ -51,6 +51,7 @@
        caseSensitive bool
        normalize     bool
        forward       bool
+       withPos       bool
        text          []rune
        termSets      []termSet
        sortable      bool
@@ -85,7 +86,7 @@
 
 // BuildPattern builds Pattern object from the given arguments
 func BuildPattern(fuzzy bool, fuzzyAlgo algo.Algo, extended bool, caseMode 
Case, normalize bool, forward bool,
-       cacheable bool, nth []Range, delimiter Delimiter, runes []rune) 
*Pattern {
+       withPos bool, cacheable bool, nth []Range, delimiter Delimiter, runes 
[]rune) *Pattern {
 
        var asString string
        if extended {
@@ -145,6 +146,7 @@
                caseSensitive: caseSensitive,
                normalize:     normalize,
                forward:       forward,
+               withPos:       withPos,
                text:          []rune(asString),
                termSets:      termSets,
                sortable:      sortable,
@@ -302,13 +304,13 @@
 
        if space == nil {
                for idx := 0; idx < chunk.count; idx++ {
-                       if match, _, _ := p.MatchItem(&chunk.items[idx], false, 
slab); match != nil {
+                       if match, _, _ := p.MatchItem(&chunk.items[idx], 
p.withPos, slab); match != nil {
                                matches = append(matches, *match)
                        }
                }
        } else {
                for _, result := range space {
-                       if match, _, _ := p.MatchItem(result.item, false, 
slab); match != nil {
+                       if match, _, _ := p.MatchItem(result.item, p.withPos, 
slab); match != nil {
                                matches = append(matches, *match)
                        }
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/src/pattern_test.go 
new/fzf-0.33.0/src/pattern_test.go
--- old/fzf-0.32.0/src/pattern_test.go  2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/src/pattern_test.go  2022-08-29 00:23:14.000000000 +0200
@@ -67,7 +67,7 @@
 func TestExact(t *testing.T) {
        defer clearPatternCache()
        clearPatternCache()
-       pattern := BuildPattern(true, algo.FuzzyMatchV2, true, CaseSmart, 
false, true, true,
+       pattern := BuildPattern(true, algo.FuzzyMatchV2, true, CaseSmart, 
false, true, false, true,
                []Range{}, Delimiter{}, []rune("'abc"))
        chars := util.ToChars([]byte("aabbcc abc"))
        res, pos := algo.ExactMatchNaive(
@@ -83,7 +83,7 @@
 func TestEqual(t *testing.T) {
        defer clearPatternCache()
        clearPatternCache()
-       pattern := BuildPattern(true, algo.FuzzyMatchV2, true, CaseSmart, 
false, true, true, []Range{}, Delimiter{}, []rune("^AbC$"))
+       pattern := BuildPattern(true, algo.FuzzyMatchV2, true, CaseSmart, 
false, true, false, true, []Range{}, Delimiter{}, []rune("^AbC$"))
 
        match := func(str string, sidxExpected int, eidxExpected int) {
                chars := util.ToChars([]byte(str))
@@ -106,17 +106,17 @@
 func TestCaseSensitivity(t *testing.T) {
        defer clearPatternCache()
        clearPatternCache()
-       pat1 := BuildPattern(true, algo.FuzzyMatchV2, false, CaseSmart, false, 
true, true, []Range{}, Delimiter{}, []rune("abc"))
+       pat1 := BuildPattern(true, algo.FuzzyMatchV2, false, CaseSmart, false, 
true, false, true, []Range{}, Delimiter{}, []rune("abc"))
        clearPatternCache()
-       pat2 := BuildPattern(true, algo.FuzzyMatchV2, false, CaseSmart, false, 
true, true, []Range{}, Delimiter{}, []rune("Abc"))
+       pat2 := BuildPattern(true, algo.FuzzyMatchV2, false, CaseSmart, false, 
true, false, true, []Range{}, Delimiter{}, []rune("Abc"))
        clearPatternCache()
-       pat3 := BuildPattern(true, algo.FuzzyMatchV2, false, CaseIgnore, false, 
true, true, []Range{}, Delimiter{}, []rune("abc"))
+       pat3 := BuildPattern(true, algo.FuzzyMatchV2, false, CaseIgnore, false, 
true, false, true, []Range{}, Delimiter{}, []rune("abc"))
        clearPatternCache()
-       pat4 := BuildPattern(true, algo.FuzzyMatchV2, false, CaseIgnore, false, 
true, true, []Range{}, Delimiter{}, []rune("Abc"))
+       pat4 := BuildPattern(true, algo.FuzzyMatchV2, false, CaseIgnore, false, 
true, false, true, []Range{}, Delimiter{}, []rune("Abc"))
        clearPatternCache()
-       pat5 := BuildPattern(true, algo.FuzzyMatchV2, false, CaseRespect, 
false, true, true, []Range{}, Delimiter{}, []rune("abc"))
+       pat5 := BuildPattern(true, algo.FuzzyMatchV2, false, CaseRespect, 
false, true, false, true, []Range{}, Delimiter{}, []rune("abc"))
        clearPatternCache()
-       pat6 := BuildPattern(true, algo.FuzzyMatchV2, false, CaseRespect, 
false, true, true, []Range{}, Delimiter{}, []rune("Abc"))
+       pat6 := BuildPattern(true, algo.FuzzyMatchV2, false, CaseRespect, 
false, true, false, true, []Range{}, Delimiter{}, []rune("Abc"))
 
        if string(pat1.text) != "abc" || pat1.caseSensitive != false ||
                string(pat2.text) != "Abc" || pat2.caseSensitive != true ||
@@ -129,7 +129,7 @@
 }
 
 func TestOrigTextAndTransformed(t *testing.T) {
-       pattern := BuildPattern(true, algo.FuzzyMatchV2, true, CaseSmart, 
false, true, true, []Range{}, Delimiter{}, []rune("jg"))
+       pattern := BuildPattern(true, algo.FuzzyMatchV2, true, CaseSmart, 
false, true, false, true, []Range{}, Delimiter{}, []rune("jg"))
        tokens := Tokenize("junegunn", Delimiter{})
        trans := Transform(tokens, []Range{{1, 1}})
 
@@ -164,7 +164,7 @@
 func TestCacheKey(t *testing.T) {
        test := func(extended bool, patStr string, expected string, cacheable 
bool) {
                clearPatternCache()
-               pat := BuildPattern(true, algo.FuzzyMatchV2, extended, 
CaseSmart, false, true, true, []Range{}, Delimiter{}, []rune(patStr))
+               pat := BuildPattern(true, algo.FuzzyMatchV2, extended, 
CaseSmart, false, true, false, true, []Range{}, Delimiter{}, []rune(patStr))
                if pat.CacheKey() != expected {
                        t.Errorf("Expected: %s, actual: %s", expected, 
pat.CacheKey())
                }
@@ -188,7 +188,7 @@
 func TestCacheable(t *testing.T) {
        test := func(fuzzy bool, str string, expected string, cacheable bool) {
                clearPatternCache()
-               pat := BuildPattern(fuzzy, algo.FuzzyMatchV2, true, CaseSmart, 
true, true, true, []Range{}, Delimiter{}, []rune(str))
+               pat := BuildPattern(fuzzy, algo.FuzzyMatchV2, true, CaseSmart, 
true, true, false, true, []Range{}, Delimiter{}, []rune(str))
                if pat.CacheKey() != expected {
                        t.Errorf("Expected: %s, actual: %s", expected, 
pat.CacheKey())
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/src/terminal.go 
new/fzf-0.33.0/src/terminal.go
--- old/fzf-0.32.0/src/terminal.go      2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/src/terminal.go      2022-08-29 00:23:14.000000000 +0200
@@ -25,14 +25,14 @@
 // import "github.com/pkg/profile"
 
 /*
-       Placeholder regex is used to extract placeholders from fzf's template
-       strings. Acts as input validation for parsePlaceholder function.
-       Describes the syntax, but it is fairly lenient.
+Placeholder regex is used to extract placeholders from fzf's template
+strings. Acts as input validation for parsePlaceholder function.
+Describes the syntax, but it is fairly lenient.
 
-       The following pseudo regex has been reverse engineered from the
-       implementation. It is overly strict, but better describes whats 
possible.
-       As such it is not useful for validation, but rather to generate test
-       cases for example.
+The following pseudo regex has been reverse engineered from the
+implementation. It is overly strict, but better describes whats possible.
+As such it is not useful for validation, but rather to generate test
+cases for example.
 
        \\?(?:                                      # escaped type
            {\+?s?f?RANGE(?:,RANGE)*}               # token type
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/src/terminal_test.go 
new/fzf-0.33.0/src/terminal_test.go
--- old/fzf-0.32.0/src/terminal_test.go 2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/src/terminal_test.go 2022-08-29 00:23:14.000000000 +0200
@@ -421,10 +421,10 @@
 }
 
 /*
-       Test typical valid placeholders and parsing of them.
+Test typical valid placeholders and parsing of them.
 
-       Also since the parser assumes the input is matched with `placeholder` 
regex,
-       the regex is tested here as well.
+Also since the parser assumes the input is matched with `placeholder` regex,
+the regex is tested here as well.
 */
 func TestParsePlaceholder(t *testing.T) {
        // give, want pairs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/src/tui/dummy.go 
new/fzf-0.33.0/src/tui/dummy.go
--- old/fzf-0.32.0/src/tui/dummy.go     2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/src/tui/dummy.go     2022-08-29 00:23:14.000000000 +0200
@@ -14,16 +14,17 @@
 
 const (
        AttrUndefined = Attr(0)
-       AttrRegular   = Attr(1 << 7)
-       AttrClear     = Attr(1 << 8)
+       AttrRegular   = Attr(1 << 8)
+       AttrClear     = Attr(1 << 9)
 
-       Bold      = Attr(1)
-       Dim       = Attr(1 << 1)
-       Italic    = Attr(1 << 2)
-       Underline = Attr(1 << 3)
-       Blink     = Attr(1 << 4)
-       Blink2    = Attr(1 << 5)
-       Reverse   = Attr(1 << 6)
+       Bold          = Attr(1)
+       Dim           = Attr(1 << 1)
+       Italic        = Attr(1 << 2)
+       Underline     = Attr(1 << 3)
+       Blink         = Attr(1 << 4)
+       Blink2        = Attr(1 << 5)
+       Reverse       = Attr(1 << 6)
+       StrikeThrough = Attr(1 << 7)
 )
 
 func (r *FullscreenRenderer) Init()             {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/src/tui/light.go 
new/fzf-0.33.0/src/tui/light.go
--- old/fzf-0.32.0/src/tui/light.go     2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/src/tui/light.go     2022-08-29 00:23:14.000000000 +0200
@@ -856,6 +856,9 @@
        if (attr & Reverse) > 0 {
                codes = append(codes, "7")
        }
+       if (attr & StrikeThrough) > 0 {
+               codes = append(codes, "9")
+       }
        return codes
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/src/tui/tcell.go 
new/fzf-0.33.0/src/tui/tcell.go
--- old/fzf-0.32.0/src/tui/tcell.go     2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/src/tui/tcell.go     2022-08-29 00:23:14.000000000 +0200
@@ -8,8 +8,8 @@
 
        "runtime"
 
-       "github.com/gdamore/tcell"
-       "github.com/gdamore/tcell/encoding"
+       "github.com/gdamore/tcell/v2"
+       "github.com/gdamore/tcell/v2/encoding"
 
        "github.com/mattn/go-runewidth"
        "github.com/rivo/uniseg"
@@ -19,12 +19,20 @@
        return true
 }
 
+func asTcellColor(color Color) tcell.Color {
+       value := uint64(tcell.ColorValid) + uint64(color)
+       if color.is24() {
+               value = value | uint64(tcell.ColorIsRGB)
+       }
+       return tcell.Color(value)
+}
+
 func (p ColorPair) style() tcell.Style {
        style := tcell.StyleDefault
-       return 
style.Foreground(tcell.Color(p.Fg())).Background(tcell.Color(p.Bg()))
+       return 
style.Foreground(asTcellColor(p.Fg())).Background(asTcellColor(p.Bg()))
 }
 
-type Attr tcell.Style
+type Attr int32
 
 type TcellWindow struct {
        color       bool
@@ -72,12 +80,13 @@
 }
 
 const (
-       Bold      Attr = Attr(tcell.AttrBold)
-       Dim            = Attr(tcell.AttrDim)
-       Blink          = Attr(tcell.AttrBlink)
-       Reverse        = Attr(tcell.AttrReverse)
-       Underline      = Attr(tcell.AttrUnderline)
-       Italic         = Attr(tcell.AttrItalic)
+       Bold          Attr = Attr(tcell.AttrBold)
+       Dim                = Attr(tcell.AttrDim)
+       Blink              = Attr(tcell.AttrBlink)
+       Reverse            = Attr(tcell.AttrReverse)
+       Underline          = Attr(tcell.AttrUnderline)
+       StrikeThrough      = Attr(tcell.AttrStrikeThrough)
+       Italic             = Attr(tcell.AttrItalic)
 )
 
 const (
@@ -561,6 +570,7 @@
                style = style.
                        Reverse(a&Attr(tcell.AttrReverse) != 0).
                        Underline(a&Attr(tcell.AttrUnderline) != 0).
+                       StrikeThrough(a&Attr(tcell.AttrStrikeThrough) != 0).
                        Italic(a&Attr(tcell.AttrItalic) != 0).
                        Blink(a&Attr(tcell.AttrBlink) != 0).
                        Dim(a&Attr(tcell.AttrDim) != 0)
@@ -612,6 +622,7 @@
                Dim(a&Attr(tcell.AttrDim) != 0).
                Reverse(a&Attr(tcell.AttrReverse) != 0).
                Underline(a&Attr(tcell.AttrUnderline) != 0).
+               StrikeThrough(a&Attr(tcell.AttrStrikeThrough) != 0).
                Italic(a&Attr(tcell.AttrItalic) != 0)
 
        gr := uniseg.NewGraphemes(text)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/src/tui/tcell_test.go 
new/fzf-0.33.0/src/tui/tcell_test.go
--- old/fzf-0.32.0/src/tui/tcell_test.go        2022-08-02 14:56:14.000000000 
+0200
+++ new/fzf-0.33.0/src/tui/tcell_test.go        2022-08-29 00:23:14.000000000 
+0200
@@ -5,7 +5,7 @@
 import (
        "testing"
 
-       "github.com/gdamore/tcell"
+       "github.com/gdamore/tcell/v2"
        "github.com/junegunn/fzf/src/util"
 )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fzf-0.32.0/test/test_go.rb 
new/fzf-0.33.0/test/test_go.rb
--- old/fzf-0.32.0/test/test_go.rb      2022-08-02 14:56:14.000000000 +0200
+++ new/fzf-0.33.0/test/test_go.rb      2022-08-29 00:23:14.000000000 +0200
@@ -756,7 +756,7 @@
 
   def test_tiebreak_chunk
     writelines(tempname, [
-                 '1 foobarbaz baz',
+                 '1 foobarbaz ba',
                  '2 foobar baz',
                  '3 foo barbaz'
                ])
@@ -764,8 +764,14 @@
     assert_equal [
       '3 foo barbaz',
       '2 foobar baz',
-      '1 foobarbaz baz'
+      '1 foobarbaz ba'
     ], `#{FZF} -fo --tiebreak=chunk < #{tempname}`.lines(chomp: true)
+
+    assert_equal [
+      '1 foobarbaz ba',
+      '2 foobar baz',
+      '3 foo barbaz'
+    ], `#{FZF} -fba --tiebreak=chunk < #{tempname}`.lines(chomp: true)
   end
 
   def test_invalid_cache

++++++ vendor.tar.xz ++++++
++++ 27441 lines of diff (skipped)

Reply via email to